Skill-Typen & Anatomie
Die drei Skill-Typen
Nicht jeder Skill ist gleich aufgebaut. Je nachdem, was du automatisieren willst, brauchst du einen anderen Typ. Claude Code kennt drei Skill-Typen, die aufeinander aufbauen:
1. Knowledge Skills -- Reine Anweisungen
Der einfachste Typ: Eine SKILL.md-Datei mit Anweisungen, sonst nichts. Claude bekommt Regeln und Wissen, braucht aber keine externen Dateien oder Scripts.
Typische Einsatzgebiete:
- Kreative Workflows ("Schreibe Blogposts in meinem Stil")
- Research-Prozesse ("Analysiere Libraries nach diesen Kriterien")
- Code-Review-Checklisten ("Prüfe immer diese 5 Punkte")
---
name: blog-post
description: Write a blog post following our editorial guidelines
argument-hint: [topic]
---
# Blog Post Skill
Schreibe Blogposts nach diesen Regeln:
- Maximal 800 Wörter
- Titel mit Frage formulieren
- Drei Zwischenüberschriften
- Zusammenfassung am Ende
2. Reference Skills -- Anweisungen + Referenzdateien
Knowledge Skills plus Referenzmaterial. Die SKILL.md verweist auf Dateien im selben Verzeichnis -- Templates, Style Guides, Beispieldateien.
Typische Einsatzgebiete:
- Template-basierte Generierung ("Erstelle Komponenten nach diesem Template")
- Style-spezifische Aufgaben ("Formatiere Code nach unserem Styleguide")
- Dokumentations-Workflows ("Nutze unsere Doku-Vorlage")
---
name: react-component
description: Create React components following our project template
argument-hint: [component-name]
---
# React Component Skill
Erstelle eine neue React-Komponente basierend auf dem Template
in `template.tsx` im selben Verzeichnis.
Beachte die Namenskonventionen in `conventions.md`.
3. Script Skills -- Anweisungen + Scripts
Die mächtigste Variante: Die SKILL.md orchestriert Python- oder Bash-Scripts, die im selben Verzeichnis liegen. Claude führt die Scripts aus und verarbeitet die Ergebnisse.
Typische Einsatzgebiete:
- Datenverarbeitung ("Parse diese CSV und erstelle einen Report")
- Automatisierte Analysen ("Führe Performance-Tests durch")
- Build- und Deploy-Workflows ("Baue und deploye das Projekt")
---
name: perf-report
description: Run performance benchmarks and generate a report
---
# Performance Report Skill
1. Führe `benchmark.sh` aus
2. Parse die Ergebnisse
3. Erstelle einen Markdown-Report mit Vergleich zum letzten Run
*Welchen Typ wählen?
Starte immer mit einem Knowledge Skill. Erst wenn du merkst, dass Claude Referenzmaterial oder Scripts braucht, steige auf den nächsten Typ um. Einfachheit gewinnt.
SKILL.md Anatomie -- Das Frontmatter
Jede SKILL.md beginnt mit einem YAML-Frontmatter-Block zwischen ---. Hier definierst du, wie der Skill sich verhält. Die Anweisungen danach bestimmen, was der Skill tut.
SKILL.md Anatomie
Klicke auf die hervorgehobenen Felder für Details
1---2name: deploy-preview3description: Deploy a preview environment for the current branch4argument-hint: "[environment]"5model: sonnet6context: fork7agent: Explore8allowed-tools: Read, Bash, Grep9hooks:10 PostToolUse:11 - matcher: "Bash"12 hooks:13 - type: command14 command: "echo 'Deployed!'"15---1617# Deploy Preview18191. Check current branch and changes202. Run tests: `npm test`213. Build: `npm run build`224. Deploy to preview URLKlicke auf ein Feld im YAML-Frontmatter
Die wichtigsten Frontmatter-Felder
Identität und Aufruf:
name-- Der Slash-Command-Name. Wird zu/name. Muss eindeutig sein, nutze kebab-case.description-- Steuert Auto-Discovery. Claude liest dieses Feld, um zu entscheiden, ob der Skill zu einer Aufgabe passt. Je präziser, desto weniger Fehlzuordnungen.argument-hint-- Autocomplete-Hinweis im Terminal, z.B.[branch] [--force]. Rein kosmetisch.
Ausführungskontrolle:
model-- Welches Modell soll der Skill nutzen?sonnetfür schnelle Aufgaben,opusfür komplexe Reasoning-Aufgaben,haikufür simple Transformationen. Spart Kosten und Zeit.context: fork-- Der Skill läuft in einem eigenen Subagent-Kontext. Perfekt für Aufgaben, die den Haupt-Context nicht belasten sollen.allowed-tools-- Beschränkt die verfügbaren Tools. Ein Analyse-Skill braucht vielleicht nur Lesezugriff:allowed-tools: [read, glob, grep].
Trigger-Steuerung:
disable-model-invocation-- Der Skill wird nur per/commandausgelöst, nie automatisch. Nutze das für destruktive Operationen wie Deployments.user-invocable: false-- Nur Claude selbst kann den Skill aufrufen, nicht der Nutzer. Für interne Hilfs-Skills.
Kontext-Filter:
paths-- Der Skill ist nur aktiv, wenn du in bestimmten Dateipfaden arbeitest. Beispiel:paths: ["src/components/**"]aktiviert den Skill nur für Komponenten-Dateien.
Lifecycle:
hooks-- Lifecycle-Hooks im Skill, z.B. Pre-/Post-Execution-Commands.
!Auto-Discovery und Context
Beim Start lädt Claude Code nur das Frontmatter aller Skills -- nicht den vollständigen Inhalt. Erst wenn ein Skill tatsächlich aufgerufen wird (manuell oder automatisch), wird der komplette Inhalt geladen. Das spart wertvollen Context.
Speicherorte
Skills können an drei Orten liegen:
| Ort | Geltungsbereich | Geteilt via Git? |
|---|---|---|
~/.claude/skills/ | Global -- gilt für alle Projekte | Nein |
.claude/skills/ | Projekt-spezifisch | Ja |
Plugin skills/ | Via Plugin installiert | Ja (Plugin-Repo) |
Die Reihenfolge bestimmt die Priorität: Projekt-Skills überschreiben globale Skills mit gleichem Namen.
String-Substitutionen
In SKILL.md-Dateien kannst du Platzhalter nutzen, die zur Laufzeit ersetzt werden:
$ARGUMENTS-- Alles, was nach dem/commandkommt$0-- Das erste Argument${CLAUDE_SESSION_ID}-- Eindeutige Session-ID${CLAUDE_SKILL_DIR}-- Absoluter Pfad zum Skill-Verzeichnis (nützlich für Script Skills)
---
name: deploy
description: Deploy to a specific environment
argument-hint: [environment]
---
Deploy branch to $0 environment.
Use scripts in ${CLAUDE_SKILL_DIR}/scripts/ for the deployment.
Warum lädt Claude Code beim Start nur das Frontmatter der Skills und nicht den vollständigen Inhalt?