Erstelle deinen ersten Skill
Dieses Beispiel erstellt einen persönlichen Skill, der Claude beibringt, Code mit visuellen Diagrammen und Analogien zu erklären. Im Gegensatz zu Claudes Standarderklärungen stellt dieser Skill sicher, dass jede Erklärung ein ASCII-Diagramm und eine reale Analogie enthält.1
Überprüfe verfügbare Skills
Bevor du einen Skill erstellst, schau dir an, auf welche Skills Claude bereits Zugriff hat:Claude listet alle derzeit geladenen Skills auf. Du siehst möglicherweise keine oder Skills von Plugins oder deiner Organisation.
2
Erstelle das Skill-Verzeichnis
Erstelle ein Verzeichnis für den Skill in deinem persönlichen Skills-Ordner. Persönliche Skills sind über alle deine Projekte hinweg verfügbar. (Du kannst auch Projekt-Skills in
.claude/skills/ erstellen, um sie mit deinem Team zu teilen.)3
Schreibe SKILL.md
Jeder Skill benötigt eine
SKILL.md-Datei. Die Datei beginnt mit YAML-Metadaten zwischen ----Markierungen und muss einen name und eine description enthalten, gefolgt von Markdown-Anweisungen, die Claude befolgt, wenn der Skill aktiv ist.Die description ist besonders wichtig, da Claude sie verwendet, um zu entscheiden, wann der Skill angewendet werden soll.Erstelle ~/.claude/skills/explaining-code/SKILL.md:4
Lade den Skill und überprüfe ihn
Skills werden automatisch geladen, wenn sie erstellt oder geändert werden. Überprüfe, ob der Skill in der Liste angezeigt wird:Du solltest
explaining-code in der Liste mit seiner Beschreibung sehen.5
Teste den Skill
Öffne eine beliebige Datei in deinem Projekt und stelle Claude eine Frage, die der Beschreibung des Skills entspricht:Claude sollte fragen, ob er den
explaining-code Skill verwenden darf, und dann eine Analogie und ein ASCII-Diagramm in seiner Erklärung einbeziehen. Wenn der Skill nicht ausgelöst wird, versuche, die Frage umzuformulieren und mehr Schlüsselwörter aus der Beschreibung einzubeziehen, wie „explain how this works”.Wie Skills funktionieren
Skills sind modellgesteuert: Claude entscheidet, welche Skills verwendet werden sollen, basierend auf deiner Anfrage. Du musst einen Skill nicht explizit aufrufen. Claude wendet relevante Skills automatisch an, wenn deine Anfrage ihrer Beschreibung entspricht. Wenn du eine Anfrage sendest, folgt Claude diesen Schritten, um relevante Skills zu finden und zu verwenden:1
Erkennung
Beim Start lädt Claude nur den Namen und die Beschreibung jedes verfügbaren Skills. Dies hält den Start schnell, während Claude genug Kontext hat, um zu wissen, wann jeder Skill relevant sein könnte.
2
Aktivierung
Wenn deine Anfrage der Beschreibung eines Skills entspricht, fragt Claude, ob er den Skill verwenden darf. Du siehst eine Bestätigungsaufforderung, bevor die vollständige
SKILL.md in den Kontext geladen wird. Da Claude diese Beschreibungen liest, um relevante Skills zu finden, schreibe Beschreibungen, die Schlüsselwörter enthalten, die Benutzer natürlicherweise sagen würden.3
Ausführung
Claude befolgt die Anweisungen des Skills und lädt referenzierte Dateien oder führt gebündelte Skripte nach Bedarf aus.
Wo Skills gespeichert werden
Der Speicherort eines Skills bestimmt, wer ihn verwenden kann:| Standort | Pfad | Gilt für |
|---|---|---|
| Enterprise | Siehe verwaltete Einstellungen | Alle Benutzer in deiner Organisation |
| Persönlich | ~/.claude/skills/ | Du, über alle Projekte hinweg |
| Projekt | .claude/skills/ | Jeder, der in diesem Repository arbeitet |
| Plugin | Gebündelt mit Plugins | Jeder mit dem installierten Plugin |
Wann Skills versus andere Optionen verwendet werden
Claude Code bietet mehrere Möglichkeiten, das Verhalten anzupassen. Der Hauptunterschied: Skills werden automatisch von Claude ausgelöst basierend auf deiner Anfrage, während Schrägstrich-Befehle erfordern, dass du/command explizit eingibst.
| Verwende dies | Wenn du möchtest… | Wenn es ausgeführt wird |
|---|---|---|
| Skills | Claude spezialisiertes Wissen geben (z. B. „überprüfe PRs nach unseren Standards”) | Claude wählt, wenn relevant |
| Schrägstrich-Befehle | Wiederverwendbare Prompts erstellen (z. B. /deploy staging) | Du gibst /command ein, um es auszuführen |
| CLAUDE.md | Projektweite Anweisungen festlegen (z. B. „verwende TypeScript strict mode”) | Wird in jedes Gespräch geladen |
| Subagenten | Aufgaben an einen separaten Kontext mit seinen eigenen Tools delegieren | Claude delegiert oder du rufst explizit auf |
| Hooks | Skripte bei Ereignissen ausführen (z. B. Lint beim Speichern von Dateien) | Wird bei bestimmten Tool-Ereignissen ausgelöst |
| MCP-Server | Verbinde Claude mit externen Tools und Datenquellen | Claude ruft MCP-Tools nach Bedarf auf |
Für einen tieferen Einblick in die Architektur und reale Anwendungen von Agent Skills lies Equipping agents for the real world with Agent Skills.
Konfiguriere Skills
Dieser Abschnitt behandelt die Skill-Dateistruktur, unterstützende Dateien, Tool-Einschränkungen und Verteilungsoptionen.Schreibe SKILL.md
DieSKILL.md-Datei ist die einzige erforderliche Datei in einem Skill. Sie hat zwei Teile: YAML-Metadaten (der Abschnitt zwischen ----Markierungen) oben und Markdown-Anweisungen, die Claude beibringen, wie der Skill verwendet wird:
Verfügbare Metadatenfelder
Du kannst die folgenden Felder in der YAML-Präambel verwenden:| Feld | Erforderlich | Beschreibung |
|---|---|---|
name | Ja | Skill-Name. Muss nur Kleinbuchstaben, Zahlen und Bindestriche verwenden (max. 64 Zeichen). Sollte dem Verzeichnisnamen entsprechen. |
description | Ja | Was der Skill macht und wann er verwendet werden soll (max. 1024 Zeichen). Claude verwendet dies, um zu entscheiden, wann der Skill angewendet werden soll. |
allowed-tools | Nein | Tools, die Claude ohne Genehmigung verwenden kann, wenn dieser Skill aktiv ist. Unterstützt kommagetrennte Werte oder YAML-ähnliche Listen. Siehe Beschränke Tool-Zugriff. |
model | Nein | Modell, das verwendet werden soll, wenn dieser Skill aktiv ist (z. B. claude-sonnet-4-20250514). Standardmäßig das Modell des Gesprächs. |
context | Nein | Auf fork setzen, um den Skill in einem abgespaltenen Sub-Agent-Kontext mit seiner eigenen Gesprächshistorie auszuführen. |
agent | Nein | Geben Sie an, welcher Agent-Typ verwendet werden soll, wenn context: fork gesetzt ist (z. B. Explore, Plan, general-purpose oder ein benutzerdefinierter Agent-Name aus .claude/agents/). Standardmäßig general-purpose, wenn nicht angegeben. Nur anwendbar, wenn mit context: fork kombiniert. |
hooks | Nein | Definiere Hooks, die auf den Lebenszyklus dieses Skills beschränkt sind. Unterstützt PreToolUse, PostToolUse und Stop Ereignisse. |
user-invocable | Nein | Steuert, ob der Skill im Schrägstrich-Befehlsmenü angezeigt wird. Beeinflusst nicht das Skill-Tool oder die automatische Erkennung. Standardmäßig true. Siehe Steuere Skill-Sichtbarkeit. |
Aktualisiere oder lösche einen Skill
Um einen Skill zu aktualisieren, bearbeite seineSKILL.md-Datei direkt. Um einen Skill zu entfernen, lösche sein Verzeichnis. Änderungen werden sofort wirksam.
Füge unterstützende Dateien mit progressiver Offenlegung hinzu
Skills teilen Claudes Kontextfenster mit Gesprächshistorie, anderen Skills und deiner Anfrage. Um den Kontext fokussiert zu halten, verwende progressive Offenlegung: Lege wesentliche Informationen inSKILL.md und detailliertes Referenzmaterial in separaten Dateien ab, die Claude nur bei Bedarf liest.
Dieser Ansatz ermöglicht es dir, umfassende Dokumentation, Beispiele und Skripte zu bündeln, ohne den Kontext im Voraus zu verbrauchen. Claude lädt zusätzliche Dateien nur, wenn die Aufgabe sie erfordert.
Beispiel: Multi-Datei-Skill-Struktur
Claude entdeckt unterstützende Dateien durch Links in deinerSKILL.md. Das folgende Beispiel zeigt einen Skill mit detaillierter Dokumentation in separaten Dateien und Utility-Skripten, die Claude ausführen kann, ohne sie zu lesen:
SKILL.md-Datei referenziert diese unterstützenden Dateien, damit Claude weiß, dass sie existieren:
- Komplexe Validierungslogik, die in Prosa ausführlich wäre
- Datenverarbeitung, die als getesteter Code zuverlässiger ist als generierter Code
- Operationen, die von Konsistenz über Verwendungen hinweg profitieren
SKILL.md sage Claude, dass er das Skript ausführen soll, anstatt es zu lesen:
Beschränke Tool-Zugriff mit allowed-tools
Verwende dasallowed-tools Frontmatter-Feld, um zu begrenzen, welche Tools Claude verwenden kann, wenn ein Skill aktiv ist. Du kannst Tools als kommagetrennte Zeichenkette oder YAML-Liste angeben:
- Schreibgeschützte Skills, die keine Dateien ändern sollten
- Skills mit begrenztem Umfang: zum Beispiel nur Datenanalyse, kein Dateischreiben
- Sicherheitsempfindliche Workflows, bei denen du Fähigkeiten einschränken möchtest
allowed-tools weggelassen wird, beschränkt der Skill Tools nicht. Claude verwendet sein Standardberechtigungsmodell und kann dich auffordern, Tool-Verwendung zu genehmigen.
allowed-tools wird nur für Skills in Claude Code unterstützt.Führe Skills in einem abgespaltenen Kontext aus
Verwendecontext: fork, um einen Skill in einem isolierten Sub-Agent-Kontext mit seiner eigenen Gesprächshistorie auszuführen. Dies ist nützlich für Skills, die komplexe mehrstufige Operationen durchführen, ohne das Hauptgespräch zu beeinträchtigen:
Definiere Hooks für Skills
Skills können Hooks definieren, die während des Lebenszyklus des Skills ausgeführt werden. Verwende dashooks-Feld, um PreToolUse, PostToolUse oder Stop Handler anzugeben:
once: true Option führt den Hook nur einmal pro Sitzung aus. Nach der ersten erfolgreichen Ausführung wird der Hook entfernt.
Hooks, die in einem Skill definiert sind, sind auf die Ausführung dieses Skills beschränkt und werden automatisch bereinigt, wenn der Skill beendet wird.
Siehe Hooks für das vollständige Hook-Konfigurationsformat.
Steuere Skill-Sichtbarkeit
Skills können auf drei Arten aufgerufen werden:- Manuelle Invokation: Du gibst
/skill-namein die Eingabeaufforderung ein - Programmatische Invokation: Claude ruft es über das
Skill-Tool auf - Automatische Erkennung: Claude liest die Beschreibung des Skills und lädt ihn, wenn er für das Gespräch relevant ist
user-invocable Feld steuert nur die manuelle Invokation. Wenn auf false gesetzt, ist der Skill im Schrägstrich-Befehlsmenü verborgen, aber Claude kann ihn immer noch programmatisch aufrufen oder automatisch erkennen.
Um die programmatische Invokation über das Skill-Tool zu blockieren, verwende stattdessen disable-model-invocation: true.
Wann jede Einstellung verwendet wird
| Einstellung | Schrägstrich-Menü | Skill-Tool | Auto-Erkennung | Anwendungsfall |
|---|---|---|---|---|
user-invocable: true (Standard) | Sichtbar | Erlaubt | Ja | Skills, die Benutzer direkt aufrufen möchten |
user-invocable: false | Verborgen | Erlaubt | Ja | Skills, die Claude verwenden kann, aber Benutzer nicht manuell aufrufen sollten |
disable-model-invocation: true | Sichtbar | Blockiert | Ja | Skills, die Benutzer aufrufen möchten, aber Claude nicht programmatisch |
Beispiel: Nur-Modell-Skill
Setzeuser-invocable: false, um einen Skill aus dem Schrägstrich-Menü zu verbergen, während du Claude weiterhin erlaubst, ihn programmatisch aufzurufen:
/-Menü, aber Claude kann ihn immer noch über das Skill-Tool aufrufen oder automatisch basierend auf dem Kontext erkennen.
Skills und Subagenten
Es gibt zwei Möglichkeiten, wie Skills und Subagenten zusammenarbeiten können:Gib einem Subagenten Zugriff auf Skills
Subagenten erben Skills aus dem Hauptgespräch nicht automatisch. Um einem benutzerdefinierten Subagenten Zugriff auf bestimmte Skills zu geben, liste sie imskills-Feld des Subagenten auf:
skills-Feld weggelassen wird, werden keine Skills für diesen Subagenten vorgeladen.
Integrierte Agenten (Explore, Plan, general-purpose) haben keinen Zugriff auf deine Skills. Nur benutzerdefinierte Subagenten, die du in
.claude/agents/ mit einem expliziten skills-Feld definierst, können Skills verwenden.Führe einen Skill in einem Subagenten-Kontext aus
Verwendecontext: fork und agent, um einen Skill in einem abgespaltenen Subagenten mit seinem eigenen separaten Kontext auszuführen. Siehe Führe Skills in einem abgespaltenen Kontext aus für Details.
Verteile Skills
Du kannst Skills auf mehrere Arten teilen:- Projekt-Skills: Committe
.claude/skills/zur Versionskontrolle. Jeder, der das Repository klont, erhält die Skills. - Plugins: Um Skills über mehrere Repositories zu teilen, erstelle ein
skills/-Verzeichnis in deinem Plugin mit Skill-Ordnern, dieSKILL.md-Dateien enthalten. Verteile über einen Plugin-Marketplace. - Verwaltet: Administratoren können Skills organisationsweit über verwaltete Einstellungen bereitstellen. Siehe Wo Skills gespeichert werden für verwaltete Skill-Pfade.
Beispiele
Diese Beispiele zeigen häufige Skill-Muster, von minimalen Single-File-Skills bis zu Multi-File-Skills mit unterstützender Dokumentation und Skripten.Einfacher Skill (einzelne Datei)
Ein minimaler Skill benötigt nur eineSKILL.md-Datei mit Frontmatter und Anweisungen. Dieses Beispiel hilft Claude, Commit-Nachrichten zu generieren, indem es bereitgestellte Änderungen untersucht:
Verwende mehrere Dateien
Für komplexe Skills verwende progressive Offenlegung, um die HauptdateiSKILL.md fokussiert zu halten, während du detaillierte Dokumentation in unterstützenden Dateien bereitstellst. Dieser PDF-Verarbeitungs-Skill enthält Referenzdokumentation, Utility-Skripte und verwendet allowed-tools, um Claude auf bestimmte Tools zu beschränken:
SKILL.md:
Wenn dein Skill externe Pakete benötigt, liste sie in der Beschreibung auf. Pakete müssen in deiner Umgebung installiert sein, bevor Claude sie verwenden kann.
Fehlerbehebung
Zeige und teste Skills
Um zu sehen, auf welche Skills Claude Zugriff hat, stelle Claude eine Frage wie „What Skills are available?” Claude lädt alle verfügbaren Skill-Namen und Beschreibungen in das Kontextfenster, wenn ein Gespräch startet, damit es die Skills auflisten kann, auf die es derzeit Zugriff hat. Um einen bestimmten Skill zu testen, bitte Claude, eine Aufgabe auszuführen, die der Beschreibung des Skills entspricht. Zum Beispiel, wenn dein Skill die Beschreibung „Reviews pull requests for code quality” hat, bitte Claude, „Review the changes in my current branch” zu machen. Claude verwendet den Skill automatisch, wenn die Anfrage seiner Beschreibung entspricht.Skill wird nicht ausgelöst
Das Beschreibungsfeld ist, wie Claude entscheidet, ob dein Skill verwendet werden soll. Vage Beschreibungen wie „Helps with documents” geben Claude nicht genug Informationen, um deinen Skill mit relevanten Anfragen abzugleichen. Eine gute Beschreibung beantwortet zwei Fragen:- Was macht dieser Skill? Liste die spezifischen Fähigkeiten auf.
- Wann sollte Claude ihn verwenden? Beziehe Trigger-Begriffe ein, die Benutzer erwähnen würden.
Skill wird nicht geladen
Überprüfe den Dateipfad. Skills müssen sich im richtigen Verzeichnis mit dem genauen DateinamenSKILL.md (Groß-/Kleinschreibung beachtet) befinden:
| Typ | Pfad |
|---|---|
| Persönlich | ~/.claude/skills/my-skill/SKILL.md |
| Projekt | .claude/skills/my-skill/SKILL.md |
| Enterprise | Siehe Wo Skills gespeichert werden für plattformspezifische Pfade |
| Plugin | skills/my-skill/SKILL.md im Plugin-Verzeichnis |
--- auf Zeile 1 beginnen (keine Leerzeilen davor), mit --- vor dem Markdown-Inhalt enden und Leerzeichen zur Einrückung verwenden (keine Tabulatoren).
Führe den Debug-Modus aus. Verwende claude --debug, um Skill-Ladefehler zu sehen.
Skill hat Fehler
Überprüfe, dass Abhängigkeiten installiert sind. Wenn dein Skill externe Pakete verwendet, müssen sie in deiner Umgebung installiert sein, bevor Claude sie verwenden kann. Überprüfe Skript-Berechtigungen. Skripte benötigen Ausführungsberechtigungen:chmod +x scripts/*.py
Überprüfe Dateipfade. Verwende Schrägstriche (Unix-Stil) in allen Pfaden. Verwende scripts/helper.py, nicht scripts\helper.py.
Mehrere Skills in Konflikt
Wenn Claude den falschen Skill verwendet oder zwischen ähnlichen Skills verwirrt zu sein scheint, sind die Beschreibungen wahrscheinlich zu ähnlich. Mache jede Beschreibung unterschiedlich, indem du spezifische Trigger-Begriffe verwendest. Zum Beispiel, anstatt zwei Skills mit „data analysis” in beiden Beschreibungen zu haben, unterscheide sie: eine für „sales data in Excel files and CRM exports” und eine andere für „log files and system metrics”. Je spezifischer deine Trigger-Begriffe sind, desto einfacher ist es für Claude, den richtigen Skill mit deiner Anfrage abzugleichen.Plugin-Skills werden nicht angezeigt
Symptom: Du hast ein Plugin von einem Marketplace installiert, aber seine Skills werden nicht angezeigt, wenn du Claude fragst „What Skills are available?” Lösung: Leere den Plugin-Cache und installiere neu:skills/-Verzeichnis an der Plugin-Wurzel befinden: