Claude Code Skills: Wie Sie wiederkehrende Abläufe als Skill festhalten
Skills in Claude Code sind Ordner mit einer Datei SKILL.md, in der ein Ablauf für eine wiederkehrende Aufgabe beschrieben ist, etwa Deployment, Review oder Release. Zu Beginn der Sitzung gelangen nur Name und Beschreibung des Skills in den Kontext, den vollständigen Text lädt der Agent, sobald die Aufgabe dazu passt. So blähen seltene Anweisungen die CLAUDE.md nicht auf und binden keine Aufmerksamkeit des Agenten.
Was Skills in Claude Code sind
Ein Skill (Fähigkeit oder Ablauf) ist ein Ordner mit einer Datei SKILL.md, in der eine Anweisung für einen bestimmten Aufgabentyp steht: wie ein Projekt ausgeliefert wird, wie ein Review abläuft, wie ein Release entsteht. Der Agent kennt den Skill vom Beginn der Sitzung an, liest ihn aber erst vollständig, wenn die Aufgabe das tatsächlich verlangt.
Skills lösen ein Problem, das jeder kennt, der lange eine CLAUDE.md pflegt: Die Datei wächst. Ein Deployment-Ablauf mit 80 Zeilen wird einmal pro Woche gebraucht, belegt aber in jeder Sitzung Platz im Kontext — auch dann, wenn Sie nur einen Tippfehler im README korrigieren. Ein Skill lagert solche Abläufe aus dem ständigen Kontext aus und bindet sie bei Bedarf ein.
Aus was ein Skill besteht
Ein minimaler Skill ist ein Ordner und eine Datei. Projektbezogene Skills liegen im Repository, persönliche im Home-Verzeichnis des Benutzers:
.claude/skills/deploy/SKILL.md # Skill des Projekts, für das Team über git geteilt
~/.claude/skills/review/SKILL.md # persönlicher Skill, in allen Projekten verfügbar
Neben der SKILL.md können Sie Hilfsdateien ablegen: Vorlagen, Skripte, Nachschlagewerke. Der Agent öffnet sie nur, wenn der Haupttext auf sie verweist und sie gebraucht werden:
.claude/skills/deploy/
├── SKILL.md # Hauptanleitung
├── checklist.md # ausführliche Checkliste, wird über den Verweis gelesen
└── rollback.sh # Skript für den Rollback
Frontmatter: name und description
Die Datei beginnt mit einem YAML-Block zwischen den Zeilen ---. Zwei Felder sind wichtiger als alle anderen: name — der kurze Name des Skills, und description — die Beschreibung, was der Skill tut und wann er anzuwenden ist.
---
name: deploy
description: Deployment der Website auf den Hosting-Server per FTP. Verwenden, wenn Änderungen auf den Server müssen, Abweichungen zum Server geprüft werden sollen oder ein Deployment zurückgerollt werden muss.
---
# Deployment
1. Zuerst einen Probelauf: `./deploy.sh -n`.
2. Die Dateiliste prüfen: Sie darf keine Geheimnisse und Testskripte enthalten.
3. Hochladen: `./deploy.sh`.
4. Die geänderten Seiten öffnen und sicherstellen, dass sie mit 200 antworten.
Rollback — siehe rollback.sh in diesem Ordner.
Unterhalb des Frontmatters steht gewöhnliches Markdown: Schritte, Befehle, Einschränkungen, Verweise auf Nachbardateien. Schreiben Sie es so, wie Sie eine Anleitung für einen neuen Kollegen schreiben würden, der diese Aufgabe zum ersten Mal erledigt.
Wann der Agent einen Skill lädt
Zu Beginn der Sitzung gelangen nur Name und Beschreibung jedes verfügbaren Skills in den Kontext. Das sind wenige Zeilen pro Skill, deshalb können Sie dutzende davon halten. Stimmt die Anfrage des Benutzers oder der aktuelle Schritt der Arbeit mit der Beschreibung überein, ruft der Agent den Skill auf — und erst dann wird der vollständige Text der SKILL.md geladen.
Daraus folgt die wichtigste praktische Regel: Ein Skill wird über seine Beschreibung ausgelöst. Der Agent sieht den Text des Skills nicht, bevor er entschieden hat, ihn zu öffnen. Steht in der description »Hilfsskill«, versteht der Agent nicht, wann er gebraucht wird. Steht dort »Deployment auf den Hosting-Server; verwenden, wenn Änderungen auf den Server müssen oder ein Rollback nötig ist«, dann versteht er es.
Neben der automatischen Auswahl können Sie einen Skill auch direkt aufrufen — per Name mit einem Schrägstrich, etwa /deploy. Das ist praktisch, wenn Sie genau wissen, welcher Ablauf nötig ist, und nicht darauf vertrauen wollen, dass der Agent die Anfrage selbst zuordnet.
Wie Sie die description so schreiben, dass der Skill ausgelöst wird
- Was er tut — in einem Satz, mit einem Verb: »Deployment der Website«, »Review der Änderungen vor dem Commit«.
- Wann er verwendet wird — nennen Sie die Formulierungen, mit denen der Benutzer diese Aufgabe tatsächlich beschreibt: »lade auf den Server hoch«, »veröffentliche«, »rolle zurück«.
- Wann er nicht verwendet wird, wenn der Skill leicht mit einem benachbarten verwechselt wird: »nicht für das Deployment des Bots, nur für die Website«.
- Keine allgemeinen Floskeln wie »nützlicher Skill« oder »hilft bei der Arbeit« — sie tragen kein Signal.
Schrittweises Laden
Skills folgen dem Prinzip des schrittweisen Offenlegens (progressive disclosure): Die Informationen werden in Schichten bereitgestellt, und jede folgende Schicht wird erst geladen, wenn sie gebraucht wird.
| Schicht | Was es ist | Wann es in den Kontext gelangt |
|---|---|---|
| 1 | name und description | immer, ab Beginn der Sitzung |
| 2 | Text der SKILL.md | sobald der Agent entschieden hat, den Skill zu nutzen |
| 3 | Hilfsdateien und Skripte | wenn die Anleitung auf sie verweist und sie gebraucht werden |
Das ist dieselbe Idee wie ein Wegweiser statt einer Papierflut in der Anweisungsdatei: eine kurze Übersicht ist immer griffbereit, die Details liegen hinter einem Verweis. Der Unterschied ist, dass der Skill dieses Laden zum festen Mechanismus macht und nicht darauf setzt, dass der Agent das richtige Dokument selbst öffnet. Ein weiterer Vorteil: Ein Skript aus der dritten Schicht kann der Agent einfach ausführen, ohne seinen gesamten Code in den Kontext zu laden.
Skills, CLAUDE.md und Slash-Befehle: Der Unterschied
Alle drei Mechanismen geben dem Agenten Anweisungen, aber zu unterschiedlichen Zeitpunkten und mit unterschiedlichen Kosten für den Kontext.
| CLAUDE.md | Skill | Slash-Befehl | |
|---|---|---|---|
| Wann geladen | immer, zu Beginn der Sitzung | Beschreibung immer, Text bei Bedarf | wenn der Benutzer ihn aufruft |
| Wer entscheidet | niemand, wird automatisch geladen | der Agent anhand der Beschreibung oder der Benutzer per Name | der Benutzer |
| Was dort hineingehört | Projektübersicht, Prüfbefehle, harte Verbote | Abläufe für einzelne Aufgabentypen | häufig wiederholte Anfrage als Vorlage |
| Hilfsdateien | Verweise auf Dokumente | Ordner des Skills: Vorlagen, Skripte | meist eine Datei |
Die Auswahlregel ist einfach. Wird eine Anweisung in fast jeder Aufgabe gebraucht, gehört sie in die CLAUDE.md. Wird sie in Aufgaben eines bestimmten Typs gebraucht, ist es ein Skill. Tippen Sie jedes Mal denselben langen Auftrag ein, ist das ein Kandidat für einen Befehl oder einen manuell aufrufbaren Skill.
Harte Verbote gehören nicht in einen Skill. Der Skill wird vielleicht gar nicht geladen, die Regel »committe niemals Geheimnisse« muss aber immer gelten. Solche unveränderlichen Vorgaben bleiben in der CLAUDE.md und werden nach Möglichkeit durch Mechanik abgesichert: Hooks, Zugriffsrechte, Prüfungen in der CI.
Wie Sie einen Skill für Claude Code schreiben: Schritt für Schritt
- Finden Sie den wiederkehrenden Ablauf. Ein gutes Zeichen: Sie haben dem Agenten dreimal dasselbe erklärt, oder die CLAUDE.md enthält einen Abschnitt, der nur in einer von zehn Aufgaben gebraucht wird.
- Legen Sie den Ordner
.claude/skills/<name>/und darin eine DateiSKILL.mdan. - Schreiben Sie das Frontmatter mit
nameunddescription, in der ausdrücklich steht, wann der Skill anzuwenden ist. - Beschreiben Sie die Schritte mit konkreten Befehlen und Kriterien der Fertigstellung: was zu prüfen ist und welches Ergebnis als Erfolg gilt.
- Lagern Sie Langes aus in Nachbardateien und verweisen Sie aus dem Haupttext darauf.
- Entfernen Sie die Dublette aus der CLAUDE.md und lassen Sie nur eine Verweiszeile stehen: »Deployment — Skill deploy«.
- Prüfen Sie es: Bitten Sie in einer neuen Sitzung um die Aufgabe mit eigenen Worten, ohne den Namen des Skills zu nennen, und sehen Sie nach, ob der Agent ihn aufgreift. Wenn nicht, schreiben Sie die Beschreibung um.
Beispiele für Skills
Skill für das Deployment
Ein klassischer Kandidat: Der Ablauf ist selten, lang und gefährlich, und ein Fehler kostet viel. Im Skill stehen die Reihenfolge der Schritte (zuerst Probelauf, dann Hochladen), was nicht hochgeladen werden darf, wie das Ergebnis zu prüfen ist und wie man zurückrollt. Der Agent muss das bei jeder Codeänderung nicht im Kopf behalten — nur dann, wenn es um den Server geht.
Skill für das Review
---
name: review
description: Review der aktuellen Änderungen vor dem Commit. Verwenden, wenn der Diff geprüft werden soll, Fehler in den Änderungen gesucht werden oder Änderungen für einen Commit vorbereitet werden.
---
# Review der Änderungen
1. Diff holen: `git diff` und `git diff --staged`.
2. Für jede geänderte Datei prüfen:
- Benutzereingaben werden bei der Ausgabe maskiert;
- SQL-Abfragen sind parametrisiert;
- keine Debug-Ausgaben und keine temporären Dateien.
3. Tests und Linter des Projekts starten (Befehle stehen in der CLAUDE.md).
4. Bericht: Liste der Probleme mit Datei und Zeile, von den schweren zu den kleinen. Gibt es keine Probleme, das so schreiben, ohne erfundene Anmerkungen.
Ein solcher Skill macht aus »schau, ob alles in Ordnung ist« eine wiederholbare Prüfung mit jedes Mal derselben Punkteliste.
Skill für das Beenden der Sitzung
Ein weiterer nützlicher Typ ist das Ritual am Ende der Arbeit: die lokale Umgebung anhalten, temporäre Dateien löschen, im Fortschrittsjournal festhalten, was erledigt ist und was noch offen ist, und einen Commit mit ausführlicher Beschreibung machen. Das behebt direkt den Kontextverlust zwischen Sitzungen: Die nächste Sitzung beginnt mit dem aktuellen Stand des Repositorys und nicht mit Vermutungen.
Typische Fehler
- Unscharfe Beschreibung. Der Skill existiert, aber der Agent ruft ihn nicht auf. Abhilfe: die
descriptionmit konkreten Auslösern neu formulieren. - Skill als Textwand. Der gesamte alte Abschnitt mit 400 Zeilen wurde in die
SKILL.mdübertragen. Das Problem des aufgeblähten Kontexts ist zurück, nur später. Halten Sie den Haupttext kurz und die Details in Nachbardateien. - Doppelung mit der CLAUDE.md. Derselbe Ablauf steht an zwei Stellen und driftet mit der Zeit auseinander. Es muss eine einzige Quelle der Wahrheit geben.
- Überlappende Skills. Zwei Skills mit ähnlichen Beschreibungen — der Agent wählt zufällig. Trennen Sie sie durch klare Angaben »verwenden / nicht verwenden«.
- Veraltete Befehle. Ein Skript wurde umbenannt, der Skill verweist aber noch auf den alten Namen. Der Skill ist Teil des Projektcodes: Aktualisieren Sie ihn im selben Commit wie den Ablauf.
Wann Sie einen Abschnitt in einen Skill auslagern sollten
Gehen Sie die CLAUDE.md regelmäßig durch und fragen Sie bei jedem Abschnitt: In welchem Anteil der gewöhnlichen Aufgaben wird er tatsächlich gebraucht? Wird er fast immer gebraucht, gehört er dorthin. Wird er in einer von zehn Aufgaben gebraucht, ist er ein Kandidat für einen Skill.
Ein zweites Signal ist die Länge. Ein Abschnitt, der nicht auf einen Bildschirm passt, beschreibt fast sicher einen Ablauf und keine Regel. Abläufe liest man besser vollständig im Moment der Ausführung, als sie während der ganzen Sitzung im Hintergrund zu halten.
Ein drittes Signal sind wiederholte Erklärungen. Wenn Sie dem Agenten immer wieder dieselben Ergänzungen zu derselben Aufgabe geben, schreiben Sie sie einmal in einen Skill. Schauen Sie nach einer Woche nach, ob die manuellen Korrekturen zurückgegangen sind: Das ist der Nachweis, dass der Skill funktioniert.
Fazit
Skills in Claude Code sind eine Möglichkeit, Abläufe neben dem Projekt aufzubewahren, ohne in jeder Sitzung Kontext dafür zu bezahlen. Die Beschreibung eines Skills ist immer sichtbar, der Text wird bei Bedarf geladen, Hilfsdateien noch später. In der CLAUDE.md bleiben die Übersicht über das Projekt und die harten Regeln, in Skills wandern Deployment, Review, Releases und andere Aufgaben eines bestimmten Typs. Aufbau der Dateien mit Anweisungen und schrittweises Laden des Kontexts behandeln wir im Kurs zum Harness Engineering praktisch.
Häufige Fragen
Wie viele Skills kann ich in einem Projekt haben?
Eine feste Grenze spürt man in der Praxis meist nicht: In den ständigen Kontext gelangen nur Namen und Beschreibungen. Die eigentliche Grenze ist inhaltlich — je mehr ähnliche Skills es gibt, desto schwerer fällt dem Agenten die Wahl des richtigen.
Kann ich ein Skript in einen Skill legen?
Ja, neben der SKILL.md können Sie Skripte und Vorlagen ablegen. Die Anleitung sagt, wann das Skript zu starten ist, und der Agent führt es wie einen gewöhnlichen Befehl aus.
Muss ich den Ordner .claude/skills in git committen?
Projektbezogene Skills ja, dann funktionieren sie für das ganze Team gleich. Persönliche Skills, die nur Sie brauchen, halten Sie im Home-Verzeichnis unter ~/.claude/skills.
Warum ruft der Agent meinen Skill nicht auf?
Meist liegt es an der Beschreibung: Sie enthält nicht die Formulierungen, mit denen Sie die Aufgabe stellen. Ergänzen Sie in der description konkrete Auslöser oder rufen Sie den Skill direkt per Name mit dem Schrägstrich auf.
Funktionieren Skills nur in Claude Code?
Das Format SKILL.md mit Frontmatter unterstützen auch andere Produkte von Anthropic, die Details der Einbindung unterscheiden sich aber. Für andere Agenten lässt sich dieselbe Idee über eine AGENTS.md mit Verweisen auf thematische Dokumente umsetzen.
Dieses Thema wird im Kurs „Harness Engineering: инженерия надёжности AI-агентов“ ausführlich mit Praxis behandelt.
- Карта репозитория для AI-агента: структура проекта и состояние без памяти между сессиями
- AGENTS.md: почему большой файл инструкций не работает и как устроить роутер