Çok adımlı bir görev için spec veya gereksinimleriniz varsa, koda başlamadan önce kullanın.
cd ~/.claude/skills
git clone https://github.com/obra/superpowers.git superpowers mkdir -p ~/.claude/skills/writing-plans
curl -fsSL https://raw.githubusercontent.com/obra/superpowers/HEAD/skills/writing-plans/SKILL.md \
-o ~/.claude/skills/writing-plans/SKILL.md Mühendisinin kod tabanımız hakkında sıfır bağlamı olduğunu ve şüpheli zevki olduğunu varsayarak kapsamlı uygulama planları yazın. Bilmeleri gereken her şeyi belgeleyin: her görev için hangi dosyalara dokunacakları, kod, test, kontrol etmeleri gereken belgeler, nasıl test edecekleri. Planın tamamını yönetilebilir görevler olarak sunun. DRY. YAGNI. TDD. Sık commit'ler.
Yetenekli bir geliştirici olduklarını varsayın, ancak araç setimiz veya problem alanımız hakkında neredeyse hiçbir şey bilmediklerini varsayın. İyi test tasarımı konusunda çok bilgili olmadıklarını varsayın.
Başında Duyur: "Uygulama planını oluşturmak için writing-plans skill'ini kullanıyorum."
Bağlam: İzole bir worktree'de çalışıyorsanız, bu çalışma zamanında superpowers:using-git-worktrees skill'i aracılığıyla oluşturulmuş olmalıdır.
Planları Kaydet: docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md
Spec birden fazla bağımsız alt sistemi kapsıyorsa, beyin fırtınası sırasında alt-proje spec'lerine bölünmüş olmalıdır. Bölünmediyse, bunu ayrı planlara bölmeyi öneriniz — alt sistem başına bir plan. Her plan kendi başına çalışan, test edilebilir yazılım üretmelidir.
Görevleri tanımlamadan önce, hangi dosyaların oluşturulacağını veya değiştirileceğini ve her birinin ne sorumlu olduğunu eşleştirin. Burası ayrıştırma kararlarının kilitlendiği yerdir.
Bu yapı, görev ayrıştırmasını bilgilendirir. Her görev bağımsız olarak anlamlı olan kendi içinde yeterli değişiklikler üretmelidir.
Bir görev kendi test döngüsünü taşıyan ve taze bir gözden geçiren kapısına değer olan en küçük birimdir. Görev sınırlarını çizerken: kurulum, konfigürasyon, iskele oluşturma ve dokümantasyon adımlarını çıktısına ihtiyaç duyan görevin içine katlayın; bir gözden geçiren bir görevi anlamlı bir şekilde reddedebilirken komşusunu onaylayabileceği yerlerde sadece bölün. Her görev bağımsız olarak test edilebilir bir çıktı ile sona erer.
Her adım bir işlem (2-5 dakika):
Her plan BU başlıkla başlamalıdır:
# [Özellik Adı] Uygulama Planı
> **Agentic workers için:** GEREKLI ALT-SKİLL: superpowers:subagent-driven-development (önerilir) veya superpowers:executing-plans kullanın. Adımlar izleme için checkbox (`- [ ]`) sözdizimini kullanır.
**Hedef:** [Bu yapının ne olduğunu açıklayan bir cümle]
**Mimari:** [Yaklaşım hakkında 2-3 cümle]
**Teknoloji Yığını:** [Önemli teknolojiler/kütüphaneler]
## Küresel Kısıtlamalar
[Spec'in proje çapında gereksinimleri — sürüm tabanları, bağımlılık sınırları,
adlandırma ve kopya kuralları, platform gereksinimleri — tam değerlerle
spec'ten kelime kelime kopyalanmış, her biri bir satır. Her görevin
gereksinimleri bu bölümü örtülü olarak içerir.]
---
### Görev N: [Bileşen Adı]
**Dosyalar:**
- Oluştur: `exact/path/to/file.py`
- Değiştir: `exact/path/to/existing.py:123-145`
- Test: `tests/exact/path/to/test.py`
**Arayüzler:**
- Kullanır: [bu görevin önceki görevlerden kullandığı şey — tam imzalar]
- Üretir: [daha sonraki görevlerin güvendiği şey — tam fonksiyon adları, parametre
ve dönüş türleri. Bir görevin uygulayıcısı sadece kendi görevini görür; bu
blok komşu görevlerin kullandığı adları ve türleri nasıl öğreneceklerini açıklar.]
- [ ] **Adım 1: Başarısız test yazın**
```python
def test_specific_behavior():
result = function(input)
assert result == expected
```
- [ ] **Adım 2: Başarısız olduğunu doğrulamak için test çalıştırın**
Çalıştır: `pytest tests/path/test.py::test_name -v`
Beklenen: BAŞARISIZ "function not defined" ile
- [ ] **Adım 3: Minimal uygulama yazın**
```python
def function(input):
return expected
```
- [ ] **Adım 4: Geçtiğini doğrulamak için test çalıştırın**
Çalıştır: `pytest tests/path/test.py::test_name -v`
Beklenen: BAŞARILI
- [ ] **Adım 5: Commit**
```bash
git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"
```
Her adım mühendisinin ihtiyaç duyduğu gerçek içeriği içermelidir. Bunlar plan başarısızlıklarıdır — asla yazma:
Tam planı yazdıktan sonra, spec'e taze gözlerle bakın ve planı buna karşı kontrol edin. Bu kendin çalıştırdığın bir kontrol listesidir — alt ajan gönderisi değil.
1. Spec kapsamı: Spec'teki her bölümü/gereksinimi hızlı geçerek oku. Onu uygulayan bir görev gösterebilir misin? Boşlukları listele.
2. Yer tutucu taraması: Planında kırmızı bayraklarını ara — "Yer Tutucu Yok" bölümünün desenlerinden herhangi biri. Düzelt.
3. Tür tutarlılığı: Daha sonraki görevlerde kullandığın tipler, yöntem imzaları ve mülk adları önceki görevlerde tanımlanmış olanlara karşılık geliyor mu? Task 3'te clearLayers() olarak çağrılan ancak Task 7'de clearFullLayers() olarak çağrılan bir fonksiyon bir hatadır.
Sorunlar bulursan, satır içinde düzelt. Yeniden incelemeye gerek yok — sadece düzelt ve devam et. Bir spec gereksinimi bulursan görev olmasa, görevi ekle.
Planı kaydettikten sonra, yürütme seçeneği sun:
"Plan tamamlandı ve docs/superpowers/plans/<filename>.md adresine kaydedildi. İki yürütme seçeneği:
1. Subagent-Tarafından Yönetilen (önerilir) - Her görev için taze bir subagent gönderir, görevler arasında gözden geçiri, hızlı yineleme
2. Satır İçi Yürütme - Bu oturumda executing-plans kullanarak görevleri yürüt, kontrol noktalarıyla toplu yürütme
Hangi yaklaşım?"
Subagent-Tarafından Yönetilen seçilirse:
Satır İçi Yürütme seçilirse:
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.