Eigene Skills erstellen
Das 6-Schritte-Framework
Einen guten Skill zu bauen ist wie ein gutes Rezept zu schreiben: Du brauchst die richtigen Zutaten, klare Anweisungen und ein paar Testläufe. Hier ist ein bewährtes Framework in sechs Schritten.
Schritt 1: Problem identifizieren
Frag dich: Was wiederhole ich ständig? Die besten Skills entstehen aus realer Frustration:
- "Ich tippe jedes Mal die gleichen Setup-Schritte für neue Komponenten"
- "Ich vergesse immer einen Schritt beim Deployment"
- "Meine Code-Reviews folgen keiner einheitlichen Struktur"
*Dreimal-Regel
Wenn du eine Aufgabe zum dritten Mal manuell durchführst, ist es Zeit für einen Skill. Notiere dir wiederkehrende Muster in deinem Alltag -- das sind deine Skill-Kandidaten.
Schritt 2: Context Design
Bevor du die SKILL.md schreibst, kläre drei Fragen:
- Inputs -- Was braucht Claude, um die Aufgabe zu erledigen? Dateinamen, Parameter, Konfiguration?
- Constraints -- Welche Regeln müssen eingehalten werden? Namenskonventionen, Sicherheitsrichtlinien, Stil?
- Output-Format -- Was soll am Ende rauskommen? Code, Bericht, Datei, Terminal-Ausgabe?
Schritt 3: Trigger Design
Entscheide, wie der Skill ausgelöst werden soll:
- Per
/command-- Du rufst den Skill explizit auf - Automatisch -- Claude erkennt anhand der
description, dass der Skill passt - Nur Claude-intern -- Als Hilfs-Skill für andere Skills (
user-invocable: false)
!False Positives vermeiden
Eine zu allgemeine description führt dazu, dass der Skill bei unpassenden Aufgaben ausgelöst wird. "Helps with code" ist zu vage. "Generate React components following our design system with Storybook stories" ist präzise genug.
Schritt 4: SKILL.md schreiben
Jetzt kommt die eigentliche Datei. Struktur:
---
name: my-skill
description: Präzise Beschreibung, wann der Skill greifen soll
argument-hint: [parameter]
model: sonnet
---
# Skill-Name
## Kontext
Was Claude über die Aufgabe wissen muss.
## Schritte
1. Erster Schritt
2. Zweiter Schritt
3. Dritter Schritt
## Regeln
- Regel 1
- Regel 2
## Output
Beschreibung des erwarteten Ergebnisses.
Best Practices für die Anweisungen:
- Schreibe klar und direkt -- keine Höflichkeitsfloskeln
- Nummeriere Schritte -- Claude folgt nummerierten Listen zuverlässiger
- Definiere Negativbeispiele -- "Tue NICHT X" ist oft klarer als "Tue Y"
- Halte die Anweisungen unter 500 Zeilen -- kürzere Skills sind präziser
Schritt 5: Testen
Ein Skill ist erst gut, wenn er in der Praxis funktioniert. Teste mit mindestens 5 realen Prompts:
- Happy Path -- Der Standardfall, für den der Skill gebaut wurde
- Edge Case -- Ungewöhnliche Eingaben oder Randfälle
- Falscher Kontext -- Wird der Skill fälschlicherweise ausgelöst?
- Fehlende Eingaben -- Was passiert ohne Argumente?
- Komplexer Fall -- Eine realistische, anspruchsvolle Aufgabe
> /my-skill standard-component
> /my-skill edge-case-with-generics
> Eine völlig andere Aufgabe (sollte den Skill NICHT triggern)
Schritt 6: Iterieren
Nach den Tests wirst du fast immer Anpassungen brauchen:
- Trigger zu breit? -- Description einschränken oder
pathshinzufügen - Trigger zu eng? -- Description erweitern oder Keywords ergänzen
- Ergebnis inkonsistent? -- Anweisungen präzisieren, Beispiele hinzufügen
- Zu langsam? -- Auf
model: sonnetodermodel: haikuwechseln
Der Skill Creator
Du musst Skills nicht komplett von Hand bauen. Claude Code hat einen eingebauten Skill Creator:
> /skill-creator
Dieser interaktive Assistent führt dich durch den Erstellungsprozess:
- Fragt nach dem Ziel deines Skills
- Schlägt einen passenden Skill-Typ vor
- Generiert die SKILL.md mit Frontmatter
- Hilft beim Testen und Verfeinern
*Skill Creator als Startpunkt
Auch wenn du Skills lieber manuell schreibst -- der Skill Creator ist ein guter Startpunkt. Du bekommst ein solides Grundgerüst, das du dann anpassen kannst.
Evals und Trigger Tuning
Für wichtige Skills lohnt sich systematisches Qualitäts-Tracking:
- Führe Evals durch -- Definiere Testfälle mit erwarteten Ergebnissen und prüfe regelmäßig
- Tracke False Positives -- Wann wird der Skill fälschlicherweise ausgelöst?
- Tracke False Negatives -- Wann wird er nicht ausgelöst, obwohl er sollte?
- Iteriere die Description -- Das ist der wichtigste Hebel für Auto-Discovery
Entscheidungsmatrix: Skill vs. Plugin vs. Python
Nicht jede Automatisierung braucht einen Skill. Hier die Abgrenzung:
| Kriterium | Skill | Python/Bash | Plugin |
|---|---|---|---|
| Claude-Reasoning nötig? | Ja | Nein | Ja |
| Automatisches Triggern? | Ja | Nein | Ja |
| Teilbar via Git? | Ja | Ja | Ja |
| 100% deterministisch? | Nein | Ja | Nein |
| Grosse Dateien (>1MB)? | Schwierig | Ja | Möglich |
| Externe APIs? | Via Tools | Direkt | Via MCP |
| Mehrere Skills bündeln? | Nein | Nein | Ja |
| MCP-Server integrieren? | Nein | Nein | Ja |
Faustregel:
- Skill -- Wenn Claude nachdenken und entscheiden muss
- Python/Bash -- Wenn das Ergebnis zu 100% vorhersagbar sein muss
- Plugin -- Wenn du mehrere Skills, Agenten und MCP-Server bündeln willst
iPlugins im Detail
Plugins sind das Thema eines eigenen Moduls. Dort lernst du, wie du Skills, MCP-Server und Agent-Konfigurationen in einem teilbaren Paket zusammenfasst.
Du baust einen Skill, der fälschlicherweise bei fast jedem Prompt ausgelöst wird. Was ist die wahrscheinlichste Ursache?