Skills erweitern das, was Claude tun kann. Erstellen Sie eineDocumentation Index
Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
SKILL.md-Datei mit Anweisungen, und Claude fügt sie zu seinem Toolkit hinzu. Claude verwendet Skills, wenn sie relevant sind, oder Sie können einen direkt mit /skill-name aufrufen.
Erstellen Sie einen Skill, wenn Sie immer wieder die gleichen Anweisungen, eine Checkliste oder ein mehrstufiges Verfahren in den Chat einfügen, oder wenn ein Abschnitt von CLAUDE.md zu einem Verfahren statt zu einer Tatsache geworden ist. Im Gegensatz zu CLAUDE.md-Inhalten wird der Body eines Skills nur geladen, wenn er verwendet wird, sodass lange Referenzmaterialien fast nichts kosten, bis Sie sie benötigen.
Für integrierte Befehle wie
/help und /compact sowie gebündelte Skills wie /debug und /simplify siehe die Befehlsreferenz.Benutzerdefinierte Befehle wurden in Skills zusammengeführt. Eine Datei unter .claude/commands/deploy.md und ein Skill unter .claude/skills/deploy/SKILL.md erstellen beide /deploy und funktionieren auf die gleiche Weise. Ihre vorhandenen .claude/commands/-Dateien funktionieren weiterhin. Skills fügen optionale Funktionen hinzu: ein Verzeichnis für unterstützende Dateien, Frontmatter zum Steuern, wer einen Skill aufruft, und die Möglichkeit für Claude, sie automatisch zu laden, wenn sie relevant sind.Gebündelte Skills
Claude Code wird mit einer Reihe von gebündelten Skills ausgeliefert, die in jeder Sitzung verfügbar sind, einschließlich/simplify, /batch, /debug, /loop und /claude-api. Im Gegensatz zu den meisten integrierten Befehlen, die direkt feste Logik ausführen, sind gebündelte Skills prompt-basiert: Sie geben Claude detaillierte Anweisungen und lassen es die Arbeit mit seinen Tools orchestrieren. Sie rufen sie auf die gleiche Weise auf wie jeden anderen Skill, indem Sie / gefolgt vom Skill-Namen eingeben.
Gebündelte Skills sind in der Befehlsreferenz neben integrierten Befehlen aufgelistet und mit Skill in der Spalte „Zweck” gekennzeichnet.
Erste Schritte
Erstellen Sie Ihren ersten Skill
Dieses Beispiel erstellt einen Skill, der die nicht committeten Änderungen in Ihrem Git-Repository zusammenfasst und alles Riskante kennzeichnet. Es zieht den Live-Diff in den Prompt, bevor Claude ihn liest, sodass die Antwort in Ihrem tatsächlichen Arbeitsbaum verankert ist, anstatt auf dem zu basieren, was Claude aus offenen Dateien erraten kann. Claude lädt den Skill automatisch, wenn Sie nach Ihren Änderungen fragen, oder Sie können ihn direkt mit/summarize-changes aufrufen.
Erstellen Sie das Skill-Verzeichnis
Erstellen Sie ein Verzeichnis für den Skill in Ihrem persönlichen Skills-Ordner. Persönliche Skills sind über alle Ihre Projekte hinweg verfügbar.
Schreiben Sie SKILL.md
Jeder Skill benötigt eine Die Zeile
SKILL.md-Datei mit zwei Teilen: YAML-Frontmatter zwischen ----Markierungen, das Claude mitteilt, wann der Skill verwendet werden soll, und Markdown-Inhalt mit Anweisungen, die Claude befolgt, wenn der Skill ausgeführt wird. Das Verzeichnisname wird zum Befehl, den Sie eingeben, und die description hilft Claude zu entscheiden, wann der Skill automatisch geladen werden soll.Speichern Sie dies unter ~/.claude/skills/summarize-changes/SKILL.md:!`git diff HEAD` verwendet dynamische Kontextinjektion: Claude Code führt den Befehl aus und ersetzt die Zeile mit seiner Ausgabe, bevor Claude den Skill-Inhalt sieht, sodass die Anweisungen mit dem aktuellen Diff bereits inline ankommen.Testen Sie den Skill
Öffnen Sie ein Git-Projekt, nehmen Sie eine kleine Änderung an einer beliebigen Datei vor, und starten Sie Claude Code, indem Sie Oder rufen Sie ihn direkt auf mit dem Skill-Namen:In beiden Fällen sollte Claude mit einer kurzen Zusammenfassung Ihrer Änderung und einer Liste von Risiken antworten.
claude ausführen. Sie können den Skill auf zwei Arten testen.Lassen Sie Claude ihn automatisch aufrufen, indem Sie etwas eingeben, das der Beschreibung entspricht:Wo Skills leben
Wo Sie einen Skill speichern, bestimmt, wer ihn verwenden kann:| Ort | Pfad | Gilt für |
|---|---|---|
| Unternehmen | Siehe verwaltete Einstellungen | Alle Benutzer in Ihrer Organisation |
| Persönlich | ~/.claude/skills/<skill-name>/SKILL.md | Alle Ihre Projekte |
| Projekt | .claude/skills/<skill-name>/SKILL.md | Nur dieses Projekt |
| Plugin | <plugin>/skills/<skill-name>/SKILL.md | Wo das Plugin aktiviert ist |
plugin-name:skill-name-Namespace, sodass sie nicht mit anderen Ebenen in Konflikt geraten können. Wenn Sie Dateien in .claude/commands/ haben, funktionieren diese auf die gleiche Weise, aber wenn ein Skill und ein Befehl denselben Namen haben, hat der Skill Vorrang.
Live-Änderungserkennung
Claude Code überwacht Skill-Verzeichnisse auf Dateiänderungen. Das Hinzufügen, Bearbeiten oder Entfernen eines Skills unter~/.claude/skills/, dem Projekt .claude/skills/ oder einem .claude/skills/ in einem --add-dir-Verzeichnis wird in der aktuellen Sitzung wirksam, ohne Claude Code neu zu starten. Das Erstellen eines Skill-Verzeichnisses auf oberster Ebene, das nicht vorhanden war, als die Sitzung gestartet wurde, erfordert einen Neustart von Claude Code, damit das neue Verzeichnis überwacht werden kann.
Automatische Erkennung aus übergeordneten und verschachtelten Verzeichnissen
Projekt-Skills werden aus.claude/skills/ in Ihrem Startverzeichnis und in jedem übergeordneten Verzeichnis bis zur Repository-Root geladen, sodass das Starten von Claude in einem Unterverzeichnis immer noch Skills erfasst, die in der Root definiert sind. Wenn Sie mit Dateien in Unterverzeichnissen unter Ihrem Startverzeichnis arbeiten, erkennt Claude Code auch Skills aus verschachtelten .claude/skills/-Verzeichnissen bei Bedarf. Wenn Sie beispielsweise eine Datei in packages/frontend/ bearbeiten, sucht Claude Code auch nach Skills in packages/frontend/.claude/skills/. Dies unterstützt Monorepo-Setups, bei denen Pakete ihre eigenen Skills haben.
Jeder Skill ist ein Verzeichnis mit SKILL.md als Einstiegspunkt:
SKILL.md enthält die Hauptanweisungen und ist erforderlich. Andere Dateien sind optional und ermöglichen es Ihnen, leistungsfähigere Skills zu erstellen: Vorlagen für Claude zum Ausfüllen, Beispielausgaben, die das erwartete Format zeigen, Scripts, die Claude ausführen kann, oder detaillierte Referenzdokumentation. Verweisen Sie auf diese Dateien von Ihrer SKILL.md aus, damit Claude weiß, was sie enthalten und wann sie geladen werden sollen. Siehe Unterstützende Dateien hinzufügen für weitere Details.
Dateien in
.claude/commands/ funktionieren weiterhin und unterstützen das gleiche Frontmatter. Skills werden empfohlen, da sie zusätzliche Funktionen wie unterstützende Dateien unterstützen.Skills aus zusätzlichen Verzeichnissen
Das Flag--add-dir gewährt Dateizugriff statt Konfigurationserkennung, aber Skills sind eine Ausnahme: .claude/skills/ in einem hinzugefügten Verzeichnis wird automatisch geladen. Siehe Live-Änderungserkennung für die Aufnahme von Änderungen während einer Sitzung.
Andere .claude/-Konfigurationen wie Subagenten, Befehle und Ausgabestile werden nicht aus zusätzlichen Verzeichnissen geladen. Siehe die Ausnahmetabelle für die vollständige Liste dessen, was geladen wird und was nicht, sowie die empfohlenen Wege zum Teilen von Konfigurationen über Projekte hinweg.
CLAUDE.md-Dateien aus
--add-dir-Verzeichnissen werden standardmäßig nicht geladen. Um sie zu laden, setzen Sie CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1. Siehe Aus zusätzlichen Verzeichnissen laden.Skills konfigurieren
Skills werden durch YAML-Frontmatter oben inSKILL.md und den Markdown-Inhalt, der folgt, konfiguriert.
Arten von Skill-Inhalten
Skill-Dateien können beliebige Anweisungen enthalten, aber das Nachdenken darüber, wie Sie sie aufrufen möchten, hilft zu leiten, was Sie einbeziehen: Referenzinhalt fügt Wissen hinzu, das Claude auf Ihre aktuelle Arbeit anwendet. Konventionen, Muster, Stilhandbücher, Domänenwissen. Dieser Inhalt wird inline ausgeführt, sodass Claude ihn neben Ihrem Gesprächskontext verwenden kann./skill-name aufrufen möchten, anstatt Claude entscheiden zu lassen, wann sie ausgeführt werden. Fügen Sie disable-model-invocation: true hinzu, um zu verhindern, dass Claude sie automatisch auslöst.
SKILL.md kann alles enthalten, aber das Nachdenken darüber, wie Sie den Skill aufrufen möchten (von Ihnen, von Claude oder von beiden) und wo Sie ihn ausführen möchten (inline oder in einem Subagent) hilft zu leiten, was Sie einbeziehen. Für komplexe Skills können Sie auch unterstützende Dateien hinzufügen, um den Hauptskill fokussiert zu halten.
Halten Sie den Text selbst prägnant. Sobald ein Skill geladen ist, bleibt sein Inhalt über Züge hinweg im Kontext, sodass jede Zeile eine wiederkehrende Token-Kosten darstellt. Geben Sie an, was zu tun ist, anstatt zu erzählen, wie oder warum, und wenden Sie denselben Prägnanz-Test an, den Sie für CLAUDE.md-Inhalt verwenden würden.
Frontmatter-Referenz
Über den Markdown-Inhalt hinaus können Sie das Skill-Verhalten mit YAML-Frontmatter-Feldern zwischen----Markierungen oben in Ihrer SKILL.md-Datei konfigurieren:
description wird empfohlen, damit Claude weiß, wann der Skill verwendet werden soll.
| Feld | Erforderlich | Beschreibung |
|---|---|---|
name | Nein | Anzeigename für den Skill. Falls weggelassen, wird der Verzeichnisname verwendet. Nur Kleinbuchstaben, Zahlen und Bindestriche (max. 64 Zeichen). |
description | Empfohlen | Was der Skill tut und wann er verwendet werden soll. Claude verwendet dies, um zu entscheiden, wann der Skill angewendet werden soll. Falls weggelassen, wird der erste Absatz des Markdown-Inhalts verwendet. Stellen Sie den wichtigsten Anwendungsfall an den Anfang: Der kombinierte Text description und when_to_use wird in der Skill-Auflistung bei 1.536 Zeichen gekürzt, um die Kontextnutzung zu reduzieren. |
when_to_use | Nein | Zusätzlicher Kontext für den Zeitpunkt, zu dem Claude den Skill aufrufen sollte, z. B. Trigger-Phrasen oder Beispielanfragen. An description in der Skill-Auflistung angehängt und zählt zur 1.536-Zeichen-Obergrenze. |
argument-hint | Nein | Hinweis, der während der Autovervollständigung angezeigt wird, um erwartete Argumente anzuzeigen. Beispiel: [issue-number] oder [filename] [format]. |
arguments | Nein | Benannte positionelle Argumente für $name-Substitution im Skill-Inhalt. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. Namen werden in Reihenfolge auf Argumentpositionen abgebildet. |
disable-model-invocation | Nein | Setzen Sie auf true, um zu verhindern, dass Claude diesen Skill automatisch lädt. Verwenden Sie für Workflows, die Sie manuell mit /name auslösen möchten. Verhindert auch, dass der Skill in Subagenten vorgeladen wird. Standard: false. |
user-invocable | Nein | Setzen Sie auf false, um aus dem /-Menü auszublenden. Verwenden Sie für Hintergrundwissen, das Benutzer nicht direkt aufrufen sollten. Standard: true. |
allowed-tools | Nein | Tools, die Claude ohne Genehmigung verwenden kann, wenn dieser Skill aktiv ist. Akzeptiert eine durch Leerzeichen getrennte Zeichenkette oder eine YAML-Liste. |
model | Nein | Modell, das verwendet werden soll, wenn dieser Skill aktiv ist. Die Überschreibung gilt für den Rest des aktuellen Zuges und wird nicht in den Einstellungen gespeichert; das Sitzungsmodell wird bei Ihrer nächsten Eingabe fortgesetzt. Akzeptiert die gleichen Werte wie /model oder inherit, um das aktive Modell beizubehalten. |
effort | Nein | Anstrengungsstufe wenn dieser Skill aktiv ist. Überschreibt die Anstrengungsstufe der Sitzung. Standard: erbt von Sitzung. Optionen: low, medium, high, xhigh, max; verfügbare Stufen hängen vom Modell ab. |
context | Nein | Setzen Sie auf fork, um in einem verzweigten Subagent-Kontext ausgeführt zu werden. |
agent | Nein | Welcher Subagent-Typ verwendet werden soll, wenn context: fork gesetzt ist. |
hooks | Nein | Hooks, die auf den Lebenszyklus dieses Skills beschränkt sind. Siehe Hooks in Skills und Agenten für das Konfigurationsformat. |
paths | Nein | Glob-Muster, die begrenzen, wann dieser Skill aktiviert wird. Akzeptiert eine kommagetrennte Zeichenkette oder eine YAML-Liste. Wenn gesetzt, lädt Claude den Skill automatisch nur, wenn mit Dateien arbeitet, die den Mustern entsprechen. Verwendet das gleiche Format wie pfadspezifische Regeln. |
shell | Nein | Shell, die für !`command` und ```! Blöcke in diesem Skill verwendet werden soll. Akzeptiert bash (Standard) oder powershell. Das Setzen von powershell führt Inline-Shell-Befehle über PowerShell unter Windows aus. Erfordert CLAUDE_CODE_USE_POWERSHELL_TOOL=1. |
Verfügbare String-Substitutionen
Skills unterstützen String-Substitution für dynamische Werte im Skill-Inhalt:| Variable | Beschreibung |
|---|---|
$ARGUMENTS | Alle Argumente, die beim Aufrufen des Skills übergeben werden. Wenn $ARGUMENTS nicht im Inhalt vorhanden ist, werden Argumente als ARGUMENTS: <value> angehängt. |
$ARGUMENTS[N] | Greifen Sie auf ein bestimmtes Argument nach 0-basiertem Index zu, z. B. $ARGUMENTS[0] für das erste Argument. |
$N | Kurzform für $ARGUMENTS[N], z. B. $0 für das erste Argument oder $1 für das zweite. |
$name | Benanntes Argument, das in der arguments-Frontmatter-Liste deklariert ist. Namen werden in Reihenfolge auf Positionen abgebildet, daher wird mit arguments: [issue, branch] der Platzhalter $issue zum ersten Argument erweitert und $branch zum zweiten. |
${CLAUDE_SESSION_ID} | Die aktuelle Sitzungs-ID. Nützlich zum Protokollieren, Erstellen sitzungsspezifischer Dateien oder Korrelieren der Skill-Ausgabe mit Sitzungen. |
${CLAUDE_EFFORT} | Die aktuelle Anstrengungsstufe: low, medium, high, xhigh oder max. Verwenden Sie dies, um Skill-Anweisungen an die aktive Anstrengungseinstellung anzupassen. |
${CLAUDE_SKILL_DIR} | Das Verzeichnis, das die SKILL.md-Datei des Skills enthält. Für Plugin-Skills ist dies das Skill-Unterverzeichnis im Plugin, nicht das Plugin-Root. Verwenden Sie dies in Bash-Injektionsbefehlen, um auf Scripts oder Dateien zu verweisen, die mit dem Skill gebündelt sind, unabhängig vom aktuellen Arbeitsverzeichnis. |
/my-skill "hello world" second $0 zu hello world und $1 zu second. Der $ARGUMENTS-Platzhalter wird immer zur vollständigen Argumentzeichenkette erweitert, wie eingegeben.
Beispiel mit Substitutionen:
Unterstützende Dateien hinzufügen
Skills können mehrere Dateien in ihrem Verzeichnis enthalten. Dies hältSKILL.md auf das Wesentliche konzentriert, während Claude detailliertes Referenzmaterial nur bei Bedarf abrufen kann. Große Referenzdokumente, API-Spezifikationen oder Beispielsammlungen müssen nicht jedes Mal geladen werden, wenn der Skill ausgeführt wird.
SKILL.md aus, damit Claude weiß, was jede Datei enthält und wann sie geladen werden soll:
Steuern Sie, wer einen Skill aufruft
Standardmäßig können sowohl Sie als auch Claude jeden Skill aufrufen. Sie können/skill-name eingeben, um ihn direkt aufzurufen, und Claude kann ihn automatisch laden, wenn er für Ihr Gespräch relevant ist. Zwei Frontmatter-Felder ermöglichen es Ihnen, dies einzuschränken:
-
disable-model-invocation: true: Nur Sie können den Skill aufrufen. Verwenden Sie dies für Workflows mit Nebenwirkungen oder die Sie zeitlich steuern möchten, wie/commit,/deployoder/send-slack-message. Sie möchten nicht, dass Claude bereitstellt, weil Ihr Code bereit aussieht. -
user-invocable: false: Nur Claude kann den Skill aufrufen. Verwenden Sie dies für Hintergrundwissen, das nicht als Befehl umsetzbar ist. Einlegacy-system-context-Skill erklärt, wie ein altes System funktioniert. Claude sollte dies kennen, wenn es relevant ist, aber/legacy-system-contextist keine aussagekräftige Aktion für Benutzer.
disable-model-invocation: true-Feld verhindert, dass Claude ihn automatisch ausführt:
| Frontmatter | Sie können aufrufen | Claude kann aufrufen | Wann in Kontext geladen |
|---|---|---|---|
| (Standard) | Ja | Ja | Beschreibung immer im Kontext, vollständiger Skill wird beim Aufrufen geladen |
disable-model-invocation: true | Ja | Nein | Beschreibung nicht im Kontext, vollständiger Skill wird geladen, wenn Sie aufrufen |
user-invocable: false | Nein | Ja | Beschreibung immer im Kontext, vollständiger Skill wird beim Aufrufen geladen |
In einer regulären Sitzung werden Skill-Beschreibungen in den Kontext geladen, damit Claude weiß, was verfügbar ist, aber vollständiger Skill-Inhalt wird nur beim Aufrufen geladen. Subagenten mit vorgeladenen Skills funktionieren anders: Der vollständige Skill-Inhalt wird beim Start eingespritzt.
Skill-Inhalts-Lebenszyklus
Wenn Sie oder Claude einen Skill aufrufen, wird der gerenderteSKILL.md-Inhalt als einzelne Nachricht in das Gespräch eingegeben und bleibt dort für den Rest der Sitzung. Claude Code liest die Skill-Datei bei späteren Zügen nicht erneut, daher schreiben Sie Anleitung, die während einer Aufgabe gelten sollte, als stehende Anweisungen statt als einmalige Schritte.
Auto-Komprimierung trägt aufgerufene Skills innerhalb eines Token-Budgets weiter. Wenn das Gespräch zusammengefasst wird, um Kontext freizugeben, hängt Claude Code die neueste Aufrufe jedes Skills nach der Zusammenfassung wieder an und behält die ersten 5.000 Token jedes Skills. Wieder angehängte Skills teilen sich ein kombiniertes Budget von 25.000 Token. Claude Code füllt dieses Budget ab dem zuletzt aufgerufenen Skill, sodass ältere Skills vollständig gelöscht werden können, wenn Sie viele in einer Sitzung aufgerufen haben.
Wenn ein Skill das Verhalten nach der ersten Antwort nicht mehr zu beeinflussen scheint, ist der Inhalt normalerweise immer noch vorhanden und das Modell wählt andere Tools oder Ansätze. Stärken Sie die description und Anweisungen des Skills, damit das Modell es weiterhin bevorzugt, oder verwenden Sie Hooks, um Verhalten deterministisch zu erzwingen. Wenn der Skill groß ist oder Sie mehrere andere danach aufgerufen haben, rufen Sie ihn nach der Komprimierung erneut auf, um den vollständigen Inhalt wiederherzustellen.
Tools für einen Skill vorab genehmigen
Dasallowed-tools-Feld gewährt Berechtigung für die aufgelisteten Tools, während der Skill aktiv ist, sodass Claude sie verwenden kann, ohne Sie um Genehmigung zu bitten. Es schränkt nicht ein, welche Tools verfügbar sind: Jedes Tool bleibt aufrufbar, und Ihre Berechtigungseinstellungen regeln weiterhin Tools, die nicht aufgelistet sind.
Für Skills, die in das Verzeichnis .claude/skills/ eines Projekts eingecheckt werden, tritt allowed-tools in Kraft, nachdem Sie den Workspace-Trust-Dialog für diesen Ordner akzeptiert haben, genauso wie Berechtigungsregeln in .claude/settings.json. Überprüfen Sie Projekt-Skills vor dem Vertrauen in ein Repository, da ein Skill sich selbst breiten Tool-Zugriff gewähren kann.
Dieser Skill lässt Claude Git-Befehle ohne Genehmigung pro Verwendung ausführen, wenn Sie ihn aufrufen:
Argumente an Skills übergeben
Sowohl Sie als auch Claude können Argumente beim Aufrufen eines Skills übergeben. Argumente sind über den$ARGUMENTS-Platzhalter verfügbar.
Dieser Skill behebt ein GitHub-Problem nach Nummer. Der $ARGUMENTS-Platzhalter wird durch alles ersetzt, was dem Skill-Namen folgt:
/fix-issue 123 ausführen, erhält Claude „Fix GitHub issue 123 following our coding standards…”
Wenn Sie einen Skill mit Argumenten aufrufen, aber der Skill $ARGUMENTS nicht enthält, hängt Claude Code ARGUMENTS: <your input> am Ende des Skill-Inhalts an, damit Claude immer noch sieht, was Sie eingegeben haben.
Um auf einzelne Argumente nach Position zuzugreifen, verwenden Sie $ARGUMENTS[N] oder die kürzere Form $N:
/migrate-component SearchBar React Vue ausführen, wird $ARGUMENTS[0] durch SearchBar, $ARGUMENTS[1] durch React und $ARGUMENTS[2] durch Vue ersetzt. Der gleiche Skill mit der $N-Kurzform:
Fortgeschrittene Muster
Dynamischen Kontext einspritzen
Die!`<command>` Syntax führt Shell-Befehle aus, bevor der Skill-Inhalt an Claude gesendet wird. Die Befehlsausgabe ersetzt den Platzhalter, sodass Claude tatsächliche Daten erhält, nicht den Befehl selbst.
Dieser Skill fasst einen Pull Request zusammen, indem er Live-PR-Daten mit der GitHub CLI abruft. Die !`gh pr diff` und andere Befehle werden zuerst ausgeführt, und ihre Ausgabe wird in den Prompt eingefügt:
- Jeder
!`<command>`wird sofort ausgeführt (bevor Claude etwas sieht) - Die Ausgabe ersetzt den Platzhalter im Skill-Inhalt
- Claude erhält den vollständig gerenderten Prompt mit tatsächlichen PR-Daten
!`<command>` Platzhalter gescannt, sodass ein Befehl keinen Platzhalter für einen späteren Durchgang ausgeben kann.
Für mehrzeilige Befehle verwenden Sie einen Codeblock, der mit ```! statt der Inline-Form geöffnet wird:
"disableSkillShellExecution": true in Einstellungen. Jeder Befehl wird stattdessen durch [shell command execution disabled by policy] ersetzt. Gebündelte und verwaltete Skills sind nicht betroffen. Diese Einstellung ist am nützlichsten in verwalteten Einstellungen, wo Benutzer sie nicht überschreiben können.
Skills in einem Subagent ausführen
Fügen Siecontext: fork zu Ihrem Frontmatter hinzu, wenn Sie möchten, dass ein Skill isoliert ausgeführt wird. Der Skill-Inhalt wird zum Prompt, der den Subagent antreibt. Er hat keinen Zugriff auf Ihren Gesprächsverlauf.
Skills und Subagenten funktionieren in zwei Richtungen zusammen:
| Ansatz | System-Prompt | Aufgabe | Lädt auch |
|---|---|---|---|
Skill mit context: fork | Vom Agent-Typ (Explore, Plan, etc.) | SKILL.md-Inhalt | CLAUDE.md |
Subagent mit skills-Feld | Subagent-Markdown-Body | Claudes Delegationsnachricht | Vorgeladene Skills + CLAUDE.md |
context: fork schreiben Sie die Aufgabe in Ihren Skill und wählen einen Agent-Typ aus, um sie auszuführen. Für das Inverse (Definieren eines benutzerdefinierten Subagenten, der Skills als Referenzmaterial verwendet), siehe Subagenten.
Beispiel: Research-Skill mit Explore-Agent
Dieser Skill führt Recherchen in einem verzweigten Explore-Agent aus. Der Skill-Inhalt wird zur Aufgabe, und der Agent bietet schreibgeschützte Tools, die für die Codebase-Erkundung optimiert sind:- Ein neuer isolierter Kontext wird erstellt
- Der Subagent erhält den Skill-Inhalt als seinen Prompt („Research $ARGUMENTS thoroughly…”)
- Das
agent-Feld bestimmt die Ausführungsumgebung (Modell, Tools und Berechtigungen) - Ergebnisse werden zusammengefasst und an Ihr Hauptgespräch zurückgegeben
agent-Feld gibt an, welche Subagent-Konfiguration verwendet werden soll. Optionen umfassen integrierte Agenten (Explore, Plan, general-purpose) oder jeden benutzerdefinierten Subagenten aus .claude/agents/. Falls weggelassen, wird general-purpose verwendet.
Beschränken Sie Claudes Skill-Zugriff
Standardmäßig kann Claude jeden Skill aufrufen, der nichtdisable-model-invocation: true gesetzt hat. Skills, die allowed-tools definieren, gewähren Claude Zugriff auf diese Tools ohne Genehmigung pro Verwendung, wenn der Skill aktiv ist. Ihre Berechtigungseinstellungen regeln weiterhin das Baseline-Genehmigungsverhalten für alle anderen Tools. Einige integrierte Befehle sind auch über das Skill-Tool verfügbar, einschließlich /init, /review und /security-review. Andere integrierte Befehle wie /compact sind nicht verfügbar.
Drei Möglichkeiten, um zu steuern, welche Skills Claude aufrufen kann:
Deaktivieren Sie alle Skills, indem Sie das Skill-Tool in /permissions ablehnen:
Skill(name) für exakte Übereinstimmung, Skill(name *) für Präfixübereinstimmung mit beliebigen Argumenten.
Verstecken Sie einzelne Skills, indem Sie disable-model-invocation: true zu ihrem Frontmatter hinzufügen. Dies entfernt den Skill vollständig aus Claudes Kontext.
Das
user-invocable-Feld steuert nur die Menüsichtbarkeit, nicht den Skill-Tool-Zugriff. Verwenden Sie disable-model-invocation: true, um die programmgesteuerte Aufrufe zu blockieren.Skill-Sichtbarkeit aus Einstellungen überschreiben
DieskillOverrides-Einstellung steuert die Skill-Sichtbarkeit aus Ihren Einstellungen statt aus dem Frontmatter des Skills selbst. Verwenden Sie sie für Skills, deren SKILL.md Sie nicht bearbeiten möchten, z. B. solche, die in ein gemeinsames Projekt-Repository eingecheckt sind oder von einem MCP-Server bereitgestellt werden. Das /skills-Menü schreibt es für Sie: Markieren Sie einen Skill und drücken Sie Space, um die Zustände zu durchlaufen, dann Enter, um in .claude/settings.local.json zu speichern.
Jeder Schlüssel ist ein Skill-Name und jeder Wert ist einer von vier Zuständen:
| Wert | Aufgelistet für Claude | Im /-Menü |
|---|---|---|
"on" | Name und Beschreibung | Ja |
"name-only" | Nur Name | Ja |
"user-invocable-only" | Versteckt | Ja |
"off" | Versteckt | Versteckt |
skillOverrides fehlt, wird als "on" behandelt. Das folgende Beispiel reduziert einen Skill auf seinen Namen und deaktiviert einen anderen vollständig:
skillOverrides betroffen. Verwalten Sie diese stattdessen über /plugin.
Skills teilen
Skills können je nach Ihrer Zielgruppe in verschiedenen Bereichen verteilt werden:- Projekt-Skills: Committen Sie
.claude/skills/zur Versionskontrolle - Plugins: Erstellen Sie ein
skills/-Verzeichnis in Ihrem Plugin - Verwaltet: Stellen Sie organisationsweit über verwaltete Einstellungen bereit
Visuelle Ausgabe generieren
Skills können Scripts in jeder Sprache bündeln und ausführen, was Claude Funktionen gibt, die über das hinausgehen, was in einem einzelnen Prompt möglich ist. Ein leistungsstarkes Muster ist die Generierung visueller Ausgabe: interaktive HTML-Dateien, die in Ihrem Browser geöffnet werden, um Daten zu erkunden, zu debuggen oder Berichte zu erstellen. Dieses Beispiel erstellt einen Codebase-Explorer: eine interaktive Baumansicht, in der Sie Verzeichnisse erweitern und reduzieren, Dateigröße auf einen Blick sehen und Dateitypen nach Farbe identifizieren können. Erstellen Sie das Skill-Verzeichnis:~/.claude/skills/codebase-visualizer/SKILL.md. Die Beschreibung teilt Claude mit, wann dieser Skill aktiviert werden soll, und die Anweisungen teilen Claude mit, das gebündelte Script auszuführen. Der Script-Pfad verwendet ${CLAUDE_SKILL_DIR}, damit er korrekt aufgelöst wird, unabhängig davon, ob der Skill auf persönlicher, Projekt- oder Plugin-Ebene installiert ist:
~/.claude/skills/codebase-visualizer/scripts/visualize.py. Dieses Script scannt einen Verzeichnisbaum und generiert eine eigenständige HTML-Datei mit:
- Eine Zusammenfassungs-Seitenleiste, die Dateianzahl, Verzeichnisanzahl, Gesamtgröße und Anzahl der Dateitypen anzeigt
- Ein Balkendiagramm, das die Codebasis nach Dateityp aufschlüsselt (Top 8 nach Größe)
- Einen zusammenklappbaren Baum, in dem Sie Verzeichnisse erweitern und reduzieren können, mit farbcodierten Dateityp-Indikatoren
codebase-map.html und öffnet es in Ihrem Browser.
Dieses Muster funktioniert für jede visuelle Ausgabe: Abhängigkeitsgraphen, Test-Coverage-Berichte, API-Dokumentation oder Datenbankschema-Visualisierungen. Das gebündelte Script erledigt die schwere Arbeit, während Claude die Orchestrierung übernimmt.
Fehlerbehebung
Skill wird nicht ausgelöst
Wenn Claude Ihren Skill nicht verwendet, wenn erwartet:- Überprüfen Sie, ob die Beschreibung Schlüsselwörter enthält, die Benutzer natürlicherweise sagen würden
- Überprüfen Sie, ob der Skill in
What skills are available?angezeigt wird - Versuchen Sie, Ihre Anfrage umzuformulieren, um die Beschreibung besser zu treffen
- Rufen Sie ihn direkt mit
/skill-nameauf, wenn der Skill vom Benutzer aufgerufen werden kann
Skill wird zu oft ausgelöst
Wenn Claude Ihren Skill verwendet, wenn Sie das nicht möchten:- Machen Sie die Beschreibung spezifischer
- Fügen Sie
disable-model-invocation: truehinzu, wenn Sie nur manuelle Aufrufe möchten
Skill-Beschreibungen werden gekürzt
Skill-Beschreibungen werden in den Kontext geladen, damit Claude weiß, was verfügbar ist. Alle Skill-Namen sind immer enthalten, aber wenn Sie viele Skills haben, werden Beschreibungen gekürzt, um in das Zeichenbudget zu passen, was die Schlüsselwörter entfernen kann, die Claude benötigt, um Ihre Anfrage zu erfüllen. Das Budget skaliert bei 1% des Kontextfensters des Modells. Wenn es überläuft, werden Beschreibungen für die Skills, die Sie am wenigsten aufrufen, zuerst gelöscht, sodass die Skills, die Sie tatsächlich verwenden, ihren vollständigen Text behalten. Führen Sie/doctor aus, um zu sehen, ob das Budget überläuft und welche Skills betroffen sind.
Um das Budget zu erhöhen, setzen Sie die Einstellung skillListingBudgetFraction (z. B. 0.02 = 2%) oder die Umgebungsvariable SLASH_COMMAND_TOOL_CHAR_BUDGET auf eine feste Zeichenanzahl. Um Budget für andere Skills freizugeben, setzen Sie Einträge mit niedriger Priorität auf "name-only" in skillOverrides, damit sie ohne Beschreibung aufgelistet werden. Sie können auch den Text description und when_to_use an der Quelle kürzen: Stellen Sie den wichtigsten Anwendungsfall an den Anfang, da der kombinierte Text jedes Eintrags unabhängig vom Budget auf 1.536 Zeichen begrenzt ist. Die Obergrenze ist mit maxSkillDescriptionChars konfigurierbar.
Verwandte Ressourcen
- Debuggen Sie Ihre Konfiguration: Diagnostizieren Sie, warum ein Skill nicht angezeigt oder ausgelöst wird
- Subagenten: Delegieren Sie Aufgaben an spezialisierte Agenten
- Plugins: Packen und verteilen Sie Skills mit anderen Erweiterungen
- Hooks: Automatisieren Sie Workflows um Tool-Ereignisse
- Memory: Verwalten Sie CLAUDE.md-Dateien für persistenten Kontext
- Befehle: Referenz für integrierte Befehle und gebündelte Skills
- Berechtigungen: Steuern Sie Tool- und Skill-Zugriff