Bir modül için birbirinden çok farklı arayüz tasarımları oluşturmak üzere paralel alt-ajanlar kullanın. Kullanıcı bir API tasarlamak, arayüz seçeneklerini keşfetmek, modül şekillerini karşılaştırmak istediğinde veya "bunu iki kez tasarla" dediğinde kullanın.
cd ~/.claude/skills
git clone https://github.com/mattpocock/skills.git skills mkdir -p ~/.claude/skills/design-an-interface
curl -fsSL https://raw.githubusercontent.com/mattpocock/skills/HEAD/skills/deprecated/design-an-interface/SKILL.md \
-o ~/.claude/skills/design-an-interface/SKILL.md "A Philosophy of Software Design" kitabındaki "Design It Twice" (İki Kez Tasarla) ilkesine dayanarak: ilk fikriniz muhtemelen en iyisi olmayacaktır. Birden fazla radikal şekilde farklı tasarım oluştur, sonra karşılaştır.
Tasarlamadan önce anla:
Sor: "Bu modülün ne yapması gerekir? Kim bunu kullanacak?"
3+ alt ajanı Task aracını kullanarak eş zamanlı olarak başlat. Her biri radikal şekilde farklı bir yaklaşım üretmelidir.
Her alt ajan için istem şablonu:
Design an interface for: [module description]
Requirements: [gathered requirements]
Constraints for this design: [assign a different constraint to each agent]
- Agent 1: "Minimize method count - aim for 1-3 methods max"
- Agent 2: "Maximize flexibility - support many use cases"
- Agent 3: "Optimize for the most common case"
- Agent 4: "Take inspiration from [specific paradigm/library]"
Output format:
1. Interface signature (types/methods)
2. Usage example (how caller uses it)
3. What this design hides internally
4. Trade-offs of this approach
Her tasarımı şunlarla sunumla:
Tasarımları sırasıyla sunumla ki kullanıcı her yaklaşımı karşılaştırmadan önce özümsesin.
Tüm tasarımları sununduktan sonra şunlara göre karşılaştır:
Ticari tablolarda değil, açıklayıcı metinde trade-off'ları tartış. Tasarımların en çok nerede ayrıldığını vurgula.
Genellikle en iyi tasarım, birden fazla seçenekten içgörüleri birleştirir. Sor:
"A Philosophy of Software Design" kitabından:
Arayüz sadeliği: Daha az metod, daha basit parametreler = öğrenmesi ve doğru kullanması daha kolay.
Genel amaçlı: Gelecekteki kullanım durumlarını değişiklik olmadan ele alabilir. Ancak aşırı genelleştirmeye dikkat et.
Uygulama verimliliği: Arayüz şekli verimli uygulamaya izin veriyor mu? Yoksa garip içerikleri zorluyor mu?
Derinlik: Az arayüz, önemli karmaşıklığı gizler = derin modül (iyi). Geniş arayüz, ince uygulama = sığ modül (kaçın).
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.