Frontend arayüzünü tasarlamak, yeniden tasarlamak, şekillendirmek, gözden geçirmek, denetlemek, iyileştirmek, açıklığa kavuşturmak, optimize etmek, uyarlamak, animasyon eklemek, renklendirmek, çıkarmak veya başka şekillerde geliştirmek istediğinizde kullanın. Web siteleri, landing page'ler, dashboard'lar, ürün UI'ları, app shell'ler, component'ler, formlar, ayarlar, onboarding ve boş durumları kapsar. UX review, görsel hiyerarşi, information architecture, bilişsel yük ve erişilebilirlik konularını ele alır.
cd ~/.claude/skills
git clone https://github.com/pbakaus/impeccable.git impeccable mkdir -p ~/.claude/skills/impeccable
curl -fsSL https://raw.githubusercontent.com/pbakaus/impeccable/HEAD/.agents/skills/impeccable/SKILL.md \
-o ~/.claude/skills/impeccable/SKILL.md Üretim kalitesinde ön uç arayüzleri tasarlar ve yineler. Gerçek çalışan kod, bilinçli tasarım seçimleri, olağanüstü işçilik.
Devam etmeden önce bu adımları MUTLAKA yapmalısınız:
node .agents/skills/impeccable/scripts/context.mjs dosyasını oturumda bir kez çalıştırın. Bu konuşmada çıktısını zaten görmüşseniz, tekrar çalıştırmayın. Script, projenin PRODUCT.md'sini (ve varsa DESIGN.md'sini) markdown bloğu olarak yazdırır ya da eksik olduğunu söyler. Yazdırdığını takip edin. Eğer NO_PRODUCT_MD rapor ederse, durun ve başka bir şey yapmadan önce reference/init.md dosyasını takip edin. Çıktı UPDATE_AVAILABLE yönergesiyle biterse, bunu takip edin (kullanıcıya bir kez güncellemek hakkında sorun, sonra devam edin). Asla mevcut görevi engellemez.craft, shape, audit, polish, ...), bundan sonra reference/<command>.md dosyasını MUTLAKA okuyun. İsteğe bağlı değil. Referans, komutun akışını tanımlar; onsuz kullanıcının beklediği adımları atlayacaksınız.reference/brand.md dosyasını okuyun. Uygulama UI, yönetim, pano ya da araç ise (tasarım ÜRÜNE hizmet eder), reference/product.md dosyasını okuyun. İlk eşleşmeyi seçin: (1) görev ipucu ("açılış sayfası" vs "pano"); (2) odaklanılan yüzey (çalışılan sayfa, dosya ya da rota); (3) PRODUCT.md'deki register alanı.node .agents/skills/impeccable/scripts/palette.mjs dosyasını çalıştırın ve bir marka tohum rengi ile bileşim rehberi alın. Bu, birincil marka renginiz için ankordur. Yönergelere göre geri kalan paleti (bg, surface, ink, accent, muted) buna göre oluşturun. Boyunca OKLCH kullanın. Bu adımı yalnızca 3. adım mevcut tokens'de taahhüt edilmiş renkler bulduğunda atlayın; bu durumda kimlik koruması kazanır.Prototype ya da başlangıç noktası değil, göndermeye hazır, üretim kalitesinde kod üretin. Kullanıcı istemediği sürece kısayol almayın (kuşkuya düştüğünüzde sorun). Tam bir uygulama (güzel, duyarlı, hızlı, kesin, hatasız, markaya uygun) gelene kadar durmayın. Detaya dikkat etmeyi ciddiye alırsınız: hazırlanan her sayfa, bölüm ya da bileşen elinizdeki araçlar kullanılarak test edilir (tarayıcı ekran görüntüsü, bilgisayar kullanımı, vb.). GPT olağanüstü çalışmalar yapabilir. Geri tutmayın.
text-wrap: balance kullanın eşit satır uzunlukları için; uzun düz metin üzerinde text-wrap: pretty kullanın yetim azaltmak için.Mevcut olarak kaçırdığınız bir zor tipografik tavan:
flex-wrap daha basit olduğunda Grid'e varsayılan olarak gitmeyin.repeat(auto-fit, minmax(280px, 1fr)).@media (prefers-reduced-motion: reduce) alternatifi gerekir: genellikle solma veya anında geçiş.overflow: hidden ya da overflow: auto kapsayıcı içinde position: absolute ile oluşturulan açılır menüler kesilecektir. Yerel <dialog> / popover API, position: fixed ya da yığın bağlamını kaçmak için portal kullanın.--paper, --cream, --sand, --bone, --flour, --linen, --parchment, --wheat, --biscuit, --ivory gibi kendileri işarettir. Kısa öz "ılık, geleneksel, aile-kıyı-İtalyan" ya da "dergi-ılık" ya da "editorial-ılılık" ise, bunu neredeyse beyaz ılık tintili arka plana çevirmeyin; bu AI harekettir. Seçin: (a) gövde olarak doymuş marka rengi (teracotta, oxblood, derin oker, neredeyse siyah), (b) chroma 0'da doğru off-beyaz (ya da chroma markanın kendi rengi doğru, varsayılan ılılık doğru değil), ya da (c) açıkça markanın kendisine ait daha koyu orta ton tintili nötr. Markanın "ılılığı" gövde arka planı değil başlık + tipografi + görüntü tarafından taşınır.Eşleştir ve reddet. Aşağıdakilerden birini yazmak üzere olsaydınız, öğeyi farklı yapı ile yeniden yazın.
border-left ya da border-right kartlar, liste öğeleri, açıklamalar ya da uyarılar üzerinde renkli aksent olarak 1px'den büyük. Hiçbir zaman kasıtlı. Tam sınırlar, arka plan tintleri, baştaki numaralar/simgeler ya da hiçbir şey ile yeniden yazın.background-clip: text gradient arka planla birleştirilmiş. Dekoratif, hiçbir zaman anlamsal. Tek bir katı renk kullanın. Ağırlık ya da boyut ile vurgulama.01 · Hakkında / 02 · Süreç / 03 · Fiyatlandırma koymak, kaşı trope'u bir katman daha derin: "açılış sayfaları bunu yapar" ve reflek tarafından yapı iskelesi çünkü bunu yaparsınız. Sayılar, bölüm gerçekten bir dizi OLDUĞU zaman ve sıra okuyucunun ihtiyaç duyduğu bilgiyi taşıdığı zaman (gerçek 3 adımlı bir işlem, sıralı bir akış, yazılan bir zaman çizelgesi) yerini kazanır. Bir sayfa üzerinde bir kasıtlı numaralandırılmış dizi ses; siteler arasında her bölüm üzerinde numaralandırılmış kaşlar AI dilbilgisi.Codex'e özgü kusurlar (en sık görülen giveaway'lar; yeniden yazma ile reddet):
border: 1px solid X + box-shadow: 0 Npx Mpx ... aynı elemanla M ≥ 16px. "Ghost-kart" deseni: 1px sınır artı düğmeler ve kartlar üzerinde yumuşak geniş düşürme gölgesi. Bunları eşleştirmeyin. Birini seçin (marka renginde tek bir katı sınır YA DA en fazla 8px bulanıklığında tanımlanmış gölge), hiçbir zaman ikisi de dekorasyon olarak.border-radius: 32px+ kartlar / bölümler / girdiler üzerinde. Çok fazla yuvarlaksınız. Kartlar 12–16px'de karşılaştırılır; tam hap etiketler/düğmeler için gayet iyi. Bir kart üzerinde 24/28/32/40px seçmek codex söyleme; hiçbir marka "çılgınca yuvarlak" istemiyor.loose-sketch, *-sketch, doodle, wavy gibi sınıf adları; feTurbulence / feDisplacementMap "kağıt tahıl" filtreleri; 5 ile 30 yol ham sahneler somut bir konu tasvir etmek için (bir otter, bir tablo ve çatal, bir albüm kapağı). Bunların tümü amatörce, neşeli değil. Sahneyi gerçek varlıklarla oluşturamazsanız, görseli göndermeyip yeniden yazın. El ile çizilmiş SVG'yi fallback olarak denemeyin.repeating-linear-gradient(...) şerit arka planları. body:before ya da bölüm arka planlarında çapraz şeritler saf codex dekorasyonu. Yapmayın.Eğer birisi bu arayüze bakabilir ve kuşkusuz "AI bunu yaptı" diyebilirse, başarısız olmuştur. Çapraz kayıt başarısızlıkları yukarıdaki mutlak yasaklardır. Kayıt'a özgü başarısızlıklar her referansta yaşar.
Kategori reflek kontrolü. İki irtifada çalıştırın; ikincisi birincinin kaçırdığını yakalar.
| Komut | Kategori | Açıklama | Referans |
|---|---|---|---|
craft [feature] |
İnşa | Bir özelliği planla, sonra uçtan uca oluştur | reference/craft.md |
shape [feature] |
İnşa | Kod yazmadan UX/UI planlayın | reference/shape.md |
init |
İnşa | Proje bağlamını ayarlayın: PRODUCT.md, DESIGN.md, canlı yapılandırma, sonraki adımlar | reference/init.md |
document |
İnşa | Mevcut proje kodundan DESIGN.md oluşturun | reference/document.md |
extract [target] |
İnşa | Yeniden kullanılabilir tokens ve bileşenleri tasarım sistemine çekin | reference/extract.md |
critique [target] |
Değerlendir | Sezgisel puanlama ile UX tasarım incelemesi | reference/critique.md |
audit [target] |
Değerlendir | Teknik kalite kontrolleri (a11y, perf, responsive) | reference/audit.md |
polish [target] |
İyileştir | Göndermeden önce son kalite geçişi | reference/polish.md |
bolder [target] |
İyileştir | Güvenli ya da sıkıcı tasarımları güçlendir | reference/bolder.md |
quieter [target] |
İyileştir | Saldırgan ya da aşırı uyarıcı tasarımları azalt | reference/quieter.md |
distill [target] |
İyileştir | Özüne soyundu, karmaşıklığı kaldır | reference/distill.md |
harden [target] |
İyileştir | Üretim'e hazır: hatalar, i18n, sınır durumları | reference/harden.md |
onboard [target] |
İyileştir | Tasarım ilk çalışma akışları, boş durumlar, aktivasyon | reference/onboard.md |
animate [target] |
Geliştir | Kasıtlı animasyonlar ve hareket ekleyin | reference/animate.md |
colorize [target] |
Geliştir | Monokromatik UI'lara stratejik renk ekleyin | reference/colorize.md |
typeset [target] |
Geliştir | Tipografi hiyerarşisini ve fontları iyileştirin | reference/typeset.md |
layout [target] |
Geliştir | Aralığı, ritimleri ve görsel hiyerarşiyi düzeltin | reference/layout.md |
delight [target] |
Geliştir | Kişilik ve akılda kalıcı dokunuşlar ekleyin | reference/delight.md |
overdrive [target] |
Geliştir | Geleneksel sınırların ötesine itin | reference/overdrive.md |
clarify [target] |
Düzelt | UX kopyasını, etiketleri ve hata mesajlarını iyileştirin | reference/clarify.md |
adapt [target] |
Düzelt | Farklı cihazlar ve ekran boyutları için uyarlayın | reference/adapt.md |
optimize [target] |
Düzelt | UI performansını tanılayın ve düzeltin | reference/optimize.md |
live |
Tekrarla | Görsel varyant modu: tarayıcıda öğeleri seçin, alternatifler oluşturun | reference/live.md |
Artı üç yönetim komutu: pin <command>, unpin <command>, ve hooks <on|off|status|...>, aşağıda ayrıntılı.
Bağımsız değişken yok: kullanıcı "ne yapmalıyım?" diye soruyor. Menu'yu statik yerine bağlam farkında yapın. Kurulum zaten context.mjs çalıştırmıştır; eğer bu NO_PRODUCT_MD rapor ettiyse, zaten init'tesiniz (kurulum), bunu bitirin ve bunu atlayın. Aksi takdirde node .agents/skills/impeccable/scripts/context-signals.mjs dosyasını bir kez çalıştırın ve JSON'unu okuyun, ardından sinyallerden çekilen bir satırlık nedenle 2-3 en yüksek değere sahip sonraki komutla başlayın, bunu tam menu'yle (kategoriye göre gruplandırılmış yukarıdaki tablo) izleyin. Hiçbir zaman otomatik olarak bir komut çalıştırmayın; tavsiye, kullanıcının onaylayacağı bir öneritir.
Sinyallerle sebep verin; hiç puan yoktur:
setup.hasDesign yanlış setup.hasCode doğruyken → document (görsel sistemi yakala).critique.latest boş → proje hiçbir zaman eleştirilmemiş; gerçek yüzeyli kurulmuş bir proje için, $impeccable critique <surface> sunmak güçlü varsayılandır.critique.latest düşük score ya da sıfır olmayan p0 / p1 ile → polish (bu anlık görüntüyü arka planı olarak okur), ya da anlık görüntü eski görünüyorsa yeniden çalıştırın critique.git.changedFiles bir yüzeye işaret ediyor → audit ya da polish'ı bu dosyalara özel olarak, onları adlandırarak kapsam edin.devServer.running doğu → live tarayıcıda yineleme için kullanılabilir; yanlışsa, live ile başlamayın.setup.register'a uyarlanmış.scan.targets boş olmayansa, node .agents/skills/impeccable/scripts/detect.mjs --json <scan.targets boşlukla birleştirilmiş> dosyasını bir kez çalıştırın (yerel dosyalar üzerinde paketlenmiş dedektör: ağ yok, npx yok). scan.via ne olduklarını söyler: git-changes (kirli ağaçtaki işaretleme/stil dosyaları, en alakalı set), source-dir (ör. src, app), html, ya da root. Vurguları seçimlerinize katın: birçok kalite / kontrast vurgusu → audit ya da polish; belirli slop ailesi → eşleşen komut (gradient metin ya da kaşlar → quieter / typeset, düz ya da gri palet → colorize, vb.). Bu gerçek, mevcut sinyal tahminle daha iyi. Detect hata verirse ya da ağaç büyükse ve yavaşsa, atla ve kullanıcıya audit kendi başlarına çalıştırmasını öner; asla öneriyi engellemesi için engelle.
Tam komut yazacak 2-3 işaret seçimi tutun. Menu fallback kalır; tavsiye lede.
İlk kelime bir komutu eşleşir (yukarıdaki tablo YA DA pin / unpin / hooks): referans dosyasını yükle ve talimatlarını takip et. Komut adından sonraki her şey hedef olur.
İlk kelime eşleşmez, ama niyet açıkça bir komuta eşlenir (ör. "aralığı düzelt" → layout, "bu hata mesajını yeniden yaz" → clarify, "renkler düz hissettiriliyor" → colorize): o komutun referansını yükle ve çağrılmış gibi devam et. İki komut uyabilirse, bir kez sorun.
Net komut eşleşmesi yok: genel tasarım çağırma. Kurulum adımlarını, Genel kuralları ve yüklenen kayıt referansını uygula, bağımsız değişkeni tam bağlam olarak kullanarak.
Kurulum (bağlam toplama, kayıt) daha sonra zaten yüklenir; alt komutlar $impeccable yeniden çağırmaz.
İlk kelime craft ise, kurulum yine de çalışır, ancak reference/craft.md geri kalan akışına sahiptir. Kurulum init'i bloklayıcı olarak çağırdıysa, init'i bitir, bağlamı yenile, sonra orijinal komutu ve hedefi devam ettir.
teach, init için kullanımdan kaldırılan takma addır: kullanıcı yazarsa, reference/init.md dosyasını yükle ve init çağırmış gibi devam et.
Sabitle, $<command> $impeccable <command>'i doğrudan çağırması için bağımsız kısayol oluşturur. Sabitlemeyi Kaldır bunu kaldırır. Script, projede mevcut olan her harness dizinine yazar.
node .agents/skills/impeccable/scripts/pin.mjs <pin|unpin> <command>
Geçerli <command> yukarıdaki tablodan herhangi bir komuttur. Script'in sonucunu kısaca raporlayın. Başarı sonrası yeni kısayolu onaylayın, hata sonrası stderr verbatim olarak iletir.
$impeccable hooks <on|off|status|ignore-rule|ignore-file|ignore-value|reset> bu proje için tasarım dedektörü hook'unu yönetir. Hook'u doğrudan UI dosyası düzenlemesinden sonra otomatik olarak çalıştırır ve bulgular sistem hatırlatmaları olarak yüzeylendirir. Tam akış reference/hooks.md'de; kullanıcı $impeccable hooks herhangi bir bağımsız değişken ile çağırdığında yükle.
Herhangi bir yaratıcı çalışmaya başlamadan önce bunu mutlaka kullanın - feature oluştururken, component inşa ederken, functionality eklerken veya davranış değiştirirken. Kullanıcı niyetini, gereksinimleri ve tasarımı implementation öncesinde araştırır.
Uygulama tamamlandığında, tüm testler geçtiğinde ve çalışmanızı nasıl entegre edeceğinize karar vermeniz gerektiğinde kullanın - merge, PR veya cleanup seçeneklerini sunarak geliştirme sürecinin tamamlanmasını rehberlik eder.
Kod incelemesi geri bildirimi alırken, önerileri uygulamadan önce kullanın; özellikle geri bildirim belirsiz veya teknik olarak şüpheli görünüyorsa - performatif anlaşmadan veya körü körüne uygulamadan ziyade teknik titizlik ve doğrulama gerekir.
Görevleri tamamlarken, büyük özellikleri hayata geçirirken veya merge etmeden önce çalışmanın gereksinimleri karşıladığını doğrulamak için kullanın.
Yeni bir feature üzerinde çalışmaya başlarken veya implementasyon planını yürütmeden önce kullanın - native araçlar veya git worktree fallback aracılığıyla izole edilmiş bir workspace sağlar.
Herhangi bir konuşma başlatırken kullanın - skill'lerin nasıl bulunacağını ve kullanılacağını belirler, clarification soruları da dahil olmak üzere HERHANGİ bir yanıt vermeden önce skill invocation gerektirir.