Yeni beceriler oluştururken, mevcut becerileri düzenlerken veya dağıtımdan önce becerileri doğrularken kullanın.
cd ~/.claude/skills
git clone https://github.com/obra/superpowers.git superpowers mkdir -p ~/.claude/skills/writing-skills
curl -fsSL https://raw.githubusercontent.com/obra/superpowers/HEAD/skills/writing-skills/SKILL.md \
-o ~/.claude/skills/writing-skills/SKILL.md Yazma becerisi, Test-Driven Development'ın süreç belgelerine uygulanmasıdır.
Kişisel beceriler, runtime'ınızın skills dizininde yaşar — yolunuzu bulmak için claude-code-tools.md, codex-tools.md, copilot-tools.md veya gemini-tools.md dosyalarına bakın. Codex, Copilot CLI ve Gemini CLI, ~/.agents/skills/ klasörünü çapraz-runtime takma adı olarak da tanıyor.
Test senaryoları yazarsınız (subagentlarla baskı senaryoları), başarısız olmalarını izlersiniz (temel davranış), beceri yazarsınız (belgeleme), testlerin geçmesini izlersiniz (agentlar uyuyor) ve refactor edersiniz (açıkları kapatırsınız).
Temel ilke: Bir agentin beceri olmadan başarısız olmasını izlemediyseniz, becerinin doğru şeyi öğretip öğretmediğini bilemezsiniz.
GEREKLI ARKA PLAN: Bu beceriyi kullanmadan önce superpowers:test-driven-development'ı ANLAMALIsınız. O beceri temel RED-GREEN-REFACTOR döngüsünü tanımlar. Bu beceri TDD'yi belgelemeye uyarlar.
Resmi rehberlik: Anthropic'in resmi beceri yazma en iyi uygulamaları için, anthropic-best-practices.md dosyasına bakın. Bu belge, bu beceriye odaklanan TDD yaklaşımını tamamlayan ek kalıplar ve yönergeler sağlar.
Beceri, kanıtlanmış teknikler, kalıplar veya araçlar için bir referans kılavuzudur. Beceriler, gelecekteki agentlerin etkili yaklaşımları bulmasına ve uygulamasına yardımcı olur.
Beceriler şunlardır: Yeniden kullanılabilir teknikler, kalıplar, araçlar, referans kılavuzları
Beceriler DEĞILDIR: Bir sorunu bir kez nasıl çözdüğünüze dair anlatılar
| TDD Konsepti | Beceri Oluşturma |
|---|---|
| Test senaryosu | Subagentla baskı senaryosu |
| Production kodu | Beceri belgesi (SKILL.md) |
| Test başarısız (RED) | Beceri olmadan agent kuralı ihlal eder (temel) |
| Test başarılı (GREEN) | Beceri mevcut olduğunda agent uyuyor |
| Refactor | Uyumu korurken açıkları kapatın |
| Test'i önce yazın | Beceri yazmadan ÖNCE temel senaryoyu çalıştırın |
| Başarısız olmasını izleyin | Agent'ın tam olarak hangi haklı gösterişleri kullandığını belgelendirin |
| Minimal kod | Beceriyi sadece o belirli ihlalları ele alan şekilde yazın |
| Başarılı olmasını izleyin | Agent'ın şimdi uyduğunu doğrulayın |
| Refactor döngüsü | Yeni haklı gösterişleri bul → kapat → yeniden doğrula |
Tüm beceri oluşturma süreci RED-GREEN-REFACTOR'u takip eder.
Şu zaman oluşturun:
Şu durumlarda oluşturmayın:
İzlenecek adımlarla somut yöntem (condition-based-waiting, root-cause-tracing)
Sorunları düşünme şekli (flatten-with-flags, test-invariants)
API dokümanları, syntax kılavuzları, araç belgeleri (office docs)
skills/
skill-name/
SKILL.md # Ana referans (gerekli)
supporting-file.* # Yalnızca gerekiyorsa
Düz namespace - tüm beceriler bir aranabilir namespace'de
Ayrı dosyalar için:
Satır içinde tutun:
Frontmatter (YAML):
name ve description (tüm desteklenen alanlar için agentskills.io/specification bakın)name: Sadece harfler, rakamlar ve tire kullanın (parantez, özel karakterler yok)description: Üçüncü kişi, SADECE ne zaman kullanılacağını açıklar (NE yaptığını değil)
---
name: Skill-Name-With-Hyphens
description: Use when [specific triggering conditions and symptoms]
---
# Skill Name
## Overview
Bu nedir? Temel ilke 1-2 cümlede.
## When to Use
[Karar belirgin değilse küçük satır içi akış şeması]
Semptomlar ve kullanım durumlarıyla madde listesi
Ne zaman kullanmayın
## Core Pattern (teknikler/kalıplar için)
Önce/sonra kod karşılaştırması
## Quick Reference
Tarama için tablo veya madde işaretleri
## Implementation
Basit kalıplar için satır içi kod
Ağır referans veya yeniden kullanılabilir araçlar için dosyaya bağlantı
## Common Mistakes
Neler yanlış gider + düzeltmeler
## Real-World Impact (isteğe bağlı)
Somut sonuçlar
Keşif için kritik: Gelecekteki agentlerin becerilerinizi BULMASI gerekir
Amaç: Agentiniz, belirli bir görev için hangi becerileri yükleyeceğine karar vermek üzere tanımı okur. Cevapla: "Bu beceriyi şu anda mı okumalıyım?"
Format: Tetikleme koşullarına odaklanmak için "Use when..." ile başlayın
KRITIK: Tanım = Ne Zaman Kullanılır, Beceri Ne Yapar DEĞİL
Açıklama SADECE tetikleme koşullarını açıklamalıdır. Becerinin sürecini veya iş akışını tanımda ÖZET HALINE GETİRMEYİN.
Neden bu önemli: Testing, bir tanım becerinin iş akışını özetlediğinde, agentın tanımı takip edebileceğini (tam beceri içeriğini okuması yerine) ortaya çıkardı. "Görevler arasında kod gözden geçirmeli görevleri yürütme" diyen bir tanım, akış şemasında açıkça iki gözden geçirme gösterilse de (spec uyumluluğu sonra kod kalitesi), agentın BİR gözden geçirme yapmasına neden oldu.
Tanım sadece "Geçerli oturumda bağımsız görevlerle uygulama planlarını yürütürken kullan" (iş akışı özeti yok) olarak değiştirildiğinde, agent doğru şekilde akış şemasını okudu ve iki aşamalı gözden geçirme sürecini takip etti.
Tuzak: İş akışını özetleyen açıklamalar, agentlerin atacağı kısayollar oluşturur. Beceri gövdesi, agentlerin atladığı belgelendirme haline gelir.
# ❌ KÖTÜ: İş akışını özetler - agentlar bunu okumak yerine takip edebilir
description: Use when executing plans - dispatches subagent per task with code review between tasks
# ❌ KÖTÜ: Çok fazla süreç detayı
description: Use for TDD - write test first, watch it fail, write minimal code, refactor
# ✅ İYİ: Sadece tetikleme koşulları, iş akışı özeti yok
description: Use when executing implementation plans with independent tasks in the current session
# ✅ İYİ: Sadece tetikleme koşulları
description: Use when implementing any feature or bugfix, before writing implementation code
İçerik:
# ❌ KÖTÜ: Çok soyut, muğlak, ne zaman kullanılacağını içermiyor
description: For async testing
# ❌ KÖTÜ: Birinci kişi
description: I can help you with async tests when they're flaky
# ❌ KÖTÜ: Teknolojiyi adlandırır ama beceri buna özgü değil
description: Use when tests use setTimeout/sleep and are flaky
# ✅ İYİ: "Use when" ile başlar, sorunu açıklar, iş akışı yok
description: Use when tests have race conditions, timing dependencies, or pass/fail inconsistently
# ✅ İYİ: Teknoloji-spesifik beceri açık tetikleyiciyle
description: Use when using React Router and handling authentication redirects
Agentın arayabileceği sözcükleri kullanın:
Aktif ses, fiil-önce kullanın:
creating-skills değil skill-creationcondition-based-waiting değil async-test-helpersSorun: getting-started ve sık referans alınan beceriler HER konuşmaya yüklenir. Her token sayılır.
Hedef sözcük sayıları:
Teknikler:
Ayrıntıları araç yardımına taşıyın:
# ❌ KÖTÜ: Tüm bayrakları SKILL.md'de belgelendir
search-conversations supports --text, --both, --after DATE, --before DATE, --limit N
# ✅ İYİ: --help'i referans alın
search-conversations supports multiple modes and filters. Run --help for details.
Çapraz referansları kullanın:
# ❌ KÖTÜ: İş akışı detaylarını tekrarla
When searching, dispatch subagent with template...
[20 satır tekrarlanmış talimatlar]
# ✅ İYİ: Diğer beceriyi referans alın
Always use subagents (50-100x context savings). REQUIRED: Use [other-skill-name] for workflow.
Örnekleri sıkıştırın:
# ❌ KÖTÜ: Ayrıntılı örnek (42 sözcük)
your human partner: "How did we handle authentication errors in React Router before?"
You: I'll search past conversations for React Router authentication patterns.
[Dispatch subagent with search query: "React Router authentication error handling 401"]
# ✅ İYİ: Minimal örnek (20 sözcük)
Partner: "How did we handle auth errors in React Router?"
You: Searching...
[Dispatch subagent → synthesis]
Fazlalığı ortadan kaldırın:
Doğrulama:
wc -w skills/path/SKILL.md
# getting-started iş akışları: <150 hedefle
# Diğer sık yüklenen: <200 toplam hedefle
Ne yaptığınız veya temel fikir ile adlandırın:
condition-based-waiting > async-test-helpersusing-skills değil skill-usageflatten-with-flags > data-structure-refactoringroot-cause-tracing > debugging-techniquesGerundler (-ing) süreçler için iyi çalışır:
creating-skills, testing-skills, debugging-with-logsDiğer beceriler referans alan belgeleme yazarken:
Beceri adını yalnızca, açık gereklilik işaretçileriyle kullanın:
**REQUIRED SUB-SKILL:** Use superpowers:test-driven-development**REQUIRED BACKGROUND:** You MUST understand superpowers:systematic-debuggingSee skills/testing/test-driven-development (gerekli olup olmadığı belirsiz)@skills/testing/test-driven-development/SKILL.md (zorla yükler, bağlamı tüketir)Neden @ bağlantıları yok: @ sözdizimi dosyaları hemen yükler, ihtiyaç duyulmadan önce 200k+ bağlamı tüketir.
digraph when_flowchart {
"Need to show information?" [shape=diamond];
"Decision where I might go wrong?" [shape=diamond];
"Use markdown" [shape=box];
"Small inline flowchart" [shape=box];
"Need to show information?" -> "Decision where I might go wrong?" [label="yes"];
"Decision where I might go wrong?" -> "Small inline flowchart" [label="yes"];
"Decision where I might go wrong?" -> "Use markdown" [label="no"];
}
Akış şemaları SADECE şunlar için kullanın:
Akış şemaları ASLA şunlar için kullanmayın:
Bu dizindeki graphviz-conventions.dot dosyasına graphviz stil kuralları için bakın.
İnsan ortağınız için görselleştirme: Bir becerinin akış şemalarını SVG'ye işlemek için bu dizindeki render-graphs.js dosyasını kullanın:
./render-graphs.js ../some-skill # Her diyagram ayrı
./render-graphs.js ../some-skill --combine # Tüm diyagramlar bir SVG'de
Bir mükemmel örnek, birçok ortadörtü örneğinden daha iyi
En ilgili dili seçin:
İyi örnek:
Şunları yapmayın:
Portlama konusunda iyi olduğunuz için - bir harika örnek yeterli.
defense-in-depth/
SKILL.md # Her şey satır içi
Ne zaman: Tüm içerik uyduğunda, ağır referansa ihtiyaç yokken
condition-based-waiting/
SKILL.md # Genel bakış + kalıplar
example.ts # Uyarlanacak çalışan yardımcı programlar
Ne zaman: Araç yeniden kullanılabilir kod olduğunda, sadece anlatı değilken
pptx/
SKILL.md # Genel bakış + iş akışları
pptxgenjs.md # 600 satır API referansı
ooxml.md # 500 satır XML yapısı
scripts/ # Çalıştırılabilir araçlar
Ne zaman: Referans malzemesi satır içi için çok büyükken
BAŞARILI BİR TEST OLMADAN BECERİ YOK
Bu YENİ beceriler ve MEVCUT beceriler için DÜZENLEMELERİ için geçerli.
Beceriyi testing olmadan yazın? Silin. Baştan başlayın. Beceriyi test olmadan düzenleyin? Aynı ihlal.
İstisnalar yok:
GEREKLI ARKA PLAN: superpowers:test-driven-development becerisi bunun neden önemli olduğunu açıklar. Aynı ilkeler belgelendirmeye de uygulanır.
Farklı beceri türleri farklı test yaklaşımları gerektirir:
Örnekler: TDD, verification-before-completion, designing-before-coding
Test edin:
Başarı kriterleri: Agent maksimum baskı altında kural takip eder
Örnekler: condition-based-waiting, root-cause-tracing, defensive-programming
Test edin:
Başarı kriterleri: Agent tekniği başarıyla yeni senaryoya uygular
Örnekler: reducing-complexity, information-hiding konseptleri
Test edin:
Başarı kriterleri: Agent doğru şekilde ne zaman/nasıl uygulanacağını tanımlar
Örnekler: API belgelendirmesi, komut referansları, kütüphane kılavuzları
Test edin:
Başarı kriterleri: Agent referans bilgisini bulur ve doğru uygulanır
| Mazeret | Gerçek |
|---|---|
| "Beceri açıkça anlaşılır" | Size açık ≠ diğer agentlara açık. Test et. |
| "Sadece bir referans" | Referanslar boşluk ve belirsiz bölümlere sahip olabilir. Almayı test et. |
| "Testing aşırı" | Test edilmemiş beceriler sorunlu olur. Her zaman. 15 dakika testing saatleri tasarrufu sağlar. |
| "Sorunlar ortaya çıkarsa test ederim" | Sorunlar = agentlar beceri kullanamaz. KULLANMADAN ÖNCE test et. |
| "Çok sıkıcı test etmek" | Testing yapmak, production'da kötü beceriyi debug etmekten daha az sıkıcı. |
| "Bunun iyi olduğundan eminiz" | Aşırı güven sorunları garantiler. Yine de test et. |
| "Akademik gözden geçirme yeterli" | Okuma ≠ kullanma. Uygulama senaryoları test et. |
| "Test etmeye zaman yok" | Test edilmemiş beceriyi dağıt = daha sonra düzeltmek için zaman israf. |
Tüm bunlar şu anlama gelir: Dağıtmadan önce test et. İstisnalar yok.
Rehberlik yazmadan önce, temel hatayı sınıflandırın. Bir başarısızlık türünü mermilemek olan form, ölçülebilir şekilde başka bir türde geri tepmez.
| Temel başarısızlık | Doğru form | Yanlış form |
|---|---|---|
| Baskı altında bir kuralı atlar/ihlal eder (daha iyi bilir, yine de yapar) | Yasaklama + haklı gösterişler tablosu + kırmızı bayraklar (aşağıdaki Bulletproofing bakın) | Yumuşak rehberlik ("tercih et...", "düşün...") |
| Uyuyor ama çıktı yanlış şekildedir (şişkin istem, gömülü karar, tekrarlanan spec) | Pozitif tarif veya anlaşma: çıktının NE OLDUĞUNU açıklayın — parçaları, sırayla | Yasaklama listesi ("tekrarlama", "hiçbir zaman anlatma") |
| Zaten ürettikleri şeyden gerekli bir öğeyi atlar | Yapısal: GEREKLI alan veya doldurdukları şablondaki yuvası | Şablon yakınında düzyazı hatırlatıcılar |
| Davranış bir koşula bağlı olmalı | "Eğer kısa özet varsa, referans al" gözlenebilir bir yükleme ("koşul varsa...") | Koşulsuz kural + istisna cümleleri |
Yasaklamalar neden şekillendirme sorunlarıyla geri tepmez: rekabet eden bir teşvik altında ("istemi kendine yetecek yap"), agentlar "X yapma" ile görüşür. dispatch-prompt rehberliğine ilişkin head-to-head sözcük testlerinde, yasaklama kolu açıkça istenmemiş içeriğin daha fazlasını üretti (tam ayrılmış dağılımlar) ve hiçbir rehberlik kontrol bile elden daha kötü eğilim gösterdi — kendi durumunuzda mikro-test'i varsaymayın, ama varsayılan olarak yasaklamaya asla uzanmayın. Tarif çıktıyı yapısına göre yapıştırır: belirtilen şekille eşleşir veya eşleşmez.
Seçtiğiniz hangi form olursa olsun kurallar:
Disiplini uygulayan beceriler (TDD gibi) haklı gösterilişlere karşı direnç gerektirir. Agentlar zekidir ve baskı altında açıklar bulacaklar.
Kapsam: Bu araç takımı disiplin başarısızlıkları içindir — bir kuralı bilen ve baskı altında atlayan bir agent. Yanlış şekilde çıktı veya atlanmış öğeler için, yasaklama tabanlı bulletproofing geri tepmez; yerine Match the Form to the Failure'daki formları kullanın.
Psikoloji notu: Neden ikna teknikleri çalıştığını anlamak, bunları sistematik olarak uygulamanıza yardımcı olur. İkna ilkeleri hakkında araştırma temeli (Cialdini, 2021; Meincke et al., 2025) için persuasion-principles.md bakın; otorite, bağlılık, kıtlık, sosyal kanıt ve birlik ilkeleri.
Kuralı belirtmeyin - belirli workaround'ları yasaklayın:
İstisnalar yok:
</Good>
### "Ruh vs Harf" Argümanlarını Ele Alın
Temel ilkeyi erken ekleyin:
```markdown
**Kuralların harfini ihlal etmek, kuralların ruhunu ihlal etmektir.**
Bu, tüm "Ruhunu takip ediyorum" haklı gösterişler sınıfını kesintiye uğratır.
Temel testingden haklı gösterilişleri yakala (Testing bölümü altında bakın). Her mazeret agentler yapsa tabloya gider:
| Mazeret | Gerçek |
|--------|--------|
| "Çok basit test etmek için" | Basit kod kırılır. Test 30 saniye alır. |
| "Sonra test ederim" | Sonra testler = "bunu ne yapıyor?" Önce testler = "bunu ne yapmalı?" |
| "Sonra testler aynı hedeflere ulaşır" | Sonra testler = "bu ne yapar?" Önce testler = "ne yapmalı?" |
Agentlerin haklı gösterişlerini kendi kendine kontrol ederken durmasını kolaylaştırın:
## Red Flags - STOP and Start Over
- Test önce kod
- "Zaten elle test ettim"
- "Sonra testler aynı amaca ulaşır"
- "Bu ruh hakkında değil ritual"
- "Bu farklı çünkü..."
**Tüm bunlar şu anlama gelir: Kodu sil. TDD ile baştan başla.**
Açıklamaya ekle: kuralı İHLAL ETMEK ÜZERESİYKEN semptomlar:
description: use when implementing any feature or bugfix, before writing implementation code
TDD döngüsünü takip edin:
Beceri OLMADAN subagentla baskı senaryosu çalıştırın. Tam davranışı belgelendirin:
Bu "testin başarısız olmasını izle" — beceriyi yazmadan ÖNCE agentlerin doğal olarak ne yaptığını görmelisiniz.
Beceriyi bu belirli haklı gösterişleri ele alan şekilde yazın. Varsayımsal durumlar için ekstra içerik eklemeyin.
Beceri İLE aynı senaryoları çalıştırın. Agent şimdi uymalı.
Agent yeni haklı gösterişi buldu? Açık karşıt ekle. Bulletproof olana kadar yeniden test et.
Tam baskı-senaryo çalıştırmaları son kapıdır, ancak yineleme başına yavaş ve pahalıdır. Sözcüğün kendisini ilk önce mikro-testlerle doğrulayın:
Mikro-testler sözcüğü doğrula; disiplin becerileri için tam baskı senaryoları yerine koymaz.
Testing metodolojisi: Tam testing metodolojisi için testing-skills-with-subagents.md dosyasına bakın:
"Seans 2025-10-03'te, boş projectDir'in neden olduğunu bulduk..." Neden kötü: Çok spesifik, yeniden kullanılamaz
example-js.js, example-py.py, example-go.go Neden kötü: Ortadörtü kalite, bakım yükü
step1 [label="import fs"];
step2 [label="read file"];
Neden kötü: Kopyalaşalamaz, okumak zor
helper1, helper2, step3, pattern4 Neden kötü: Etiketler anlamlandırılmış anlama sahip olmalı
HERHANGİ beceri yazdıktan sonra, dağıtım sürecini tamamlamak için DURMALSINIZ.
YAPMAYIN:
Aşağıdaki dağıtım kontrol listesi HER BECERİ için ZORUNLUDUR.
Test edilmemiş becerileri dağıtmak = test edilmemiş kod dağıtmak. Kalite standartlarının ihlali.
ÖNEMLİ: Aşağıdaki kontrol listesi ÖĞESİ her biri için bir todo oluşturun.
RED Fazı - Başarısız Test Yaz:
GREEN Fazı - Minimal Beceri Yaz:
name ve description alanlarıyla YAML frontmatter (maksimum 1024 karakter; spec bak)REFACTOR Fazı - Açıkları Kapatın:
Kalite Kontrolleri:
Dağıtım:
Gelecekteki agentler becerilerinizi nasıl bulur:
Bu akışı optimize edin - aranabilir terimleri erken ve sık kullanın.
Becerileri oluşturmak, süreç belgelendirmesi İÇİN TDD'YE AYIRDIR.
Aynı Demir Kural: Başarısız test olmadan beceri yok. Aynı döngü: RED (temel) → GREEN (beceri yaz) → REFACTOR (açıkları kapat). Aynı faydalar: Daha iyi kalite, daha az sürprizler, bulletproof sonuçlar.
TDD'yi kod için takip ederseniz, becerileri takip edin. Belgelendirmeye uygulanmış aynı disiplindir.
2 veya daha fazla bağımsız görevin paralel olarak yürütülebileceği ve aralarında state paylaşımı ya da sıralı bağımlılık olmadığı durumlarda kullanın.
Ayrı bir oturumda inceleme kontrol noktaları ile yürütülecek yazılı bir uygulama planınız olduğunda kullanın.
Mevcut oturumda bağımsız görevlerle uygulama planlarını yürütürken kullanın
Herhangi bir hata, test başarısızlığı veya beklenmeyen davranışla karşılaştığınızda, çözüm önerisi sunmadan önce kullanın.
Herhangi bir feature ya da bugfix uygulamaya başlamadan önce kullanın.
Claude API / Anthropic SDK için referans — model kimlikleri, fiyatlandırma, parametreler, streaming, tool use, MCP, agents, caching, token sayma ve model migration hakkında bilgiler içerir. ÖNEMLİ — hedef dosyayı açmadan önce okuyun; Claude/Anthropic ile ilgili herhangi bir isim geçtiğinde (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*` vb.) bu referansı atlayın.