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 dieselben Anweisungen, Checklisten oder mehrstufige Verfahren immer wieder 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 Text eines Skills nur geladen, wenn er verwendet wird, sodass umfangreiches Referenzmaterial fast nichts kostet, bis Sie es benötigen.
Informationen zu integrierten Befehlen wie
/help und /compact sowie zu gebündelten Skills wie /debug und /code-review finden Sie in der 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 bieten optionale Funktionen: ein Verzeichnis für unterstützende Dateien, Frontmatter zur Kontrolle, ob Sie oder Claude sie aufrufen, und die Möglichkeit für Claude, sie automatisch zu laden, wenn sie relevant sind.Gebündelte Skills
Claude Code enthält eine Reihe von gebündelten Skills wie/doctor, /code-review, /batch, /debug, /loop und /claude-api. Gebündelte Skills sind prompt-basiert: Sie geben Claude detaillierte Anweisungen und ermöglichen es ihm, die Arbeit mit seinen Tools zu orchestrieren. Die meisten integrierten Befehle führen stattdessen direkt eine feste Logik aus.
Sie rufen einen mitgelieferten Skill auf, indem Sie / gefolgt vom Skill-Namen eingeben. Claude ruft einige mitgelieferte Skills automatisch auf, wenn sie relevant sind; andere, einschließlich /verify, werden nur ausgeführt, wenn Sie sie aufrufen.
Die meisten gebündelten Skills sind in jeder Sitzung verfügbar. Einige hängen von einer bestimmten Funktion ab: /workflow-authoring ist beispielsweise nur verfügbar, wenn dynamische Workflows aktiviert sind.
Um gebündelte Skills auszuschalten, verwenden Sie die Einstellung disableBundledSkills.
Die Einrichtungsüberprüfung
/doctor bleibt eingebbar, wenn disableBundledSkills aktiviert ist. Um sie auszublenden, setzen Sie die Umgebungsvariable DISABLE_DOCTOR_COMMAND oder einen skillOverrides-Eintrag von "doctor": "off".Überprüfen Sie Ihre Einrichtung mit /doctor
Führen Sie /doctor an der Claude Code-Eingabeaufforderung aus, um eine Einrichtungsüberprüfung zu starten, die Probleme diagnostiziert und beheben kann. Claude meldet zuerst seine Ergebnisse und bittet um Bestätigung, bevor etwas geändert wird. Die Überprüfung umfasst folgende Bereiche:
- Zustand der Installation: doppelte oder übrig gebliebene Installationen,
PATH-Probleme, nicht parsebare Einstellungsdateien und ob auf Ihrem Release-Kanal eine neuere Version verfügbar ist - Erweiterungen: nicht genutzte Skills, MCP-Server und Plugins im Vergleich zu ihren Kontextkosten sowie langsame Hooks
CLAUDE.md-Dateien: lokaleCLAUDE.md-Dateien, die eingecheckte Dateien duplizieren, eingecheckteCLAUDE.md-Inhalte, die Claude aus der Codebasis ableiten könnte, sowie die verbleibenden, stets geladenen Anweisungen, die Claude in Skills und verschachtelteCLAUDE.md-Dateien zu migrieren anbietet, die bei Bedarf geladen werden- Berechtigungen: ein Angebot, den Auto-Modus zu Ihrem Standard-Berechtigungsmodus zu machen und nur lesende Befehle, die Sie häufig ablehnen, vorab zu genehmigen
- Nutzung: bei einem Pro-, Max-, Ultra-, Team- oder Enterprise-Plan die Änderungen, die
/usageempfiehlt, um Ihre Plan-Nutzung zu senken, gemessen über die letzten 7 Tage. Claude schlägt die Änderungen vor, die es selbst vornehmen kann, und meldet den Rest als Hinweis, etwa einen Befehl, den Sie ausführen sollen. Die Nutzungsprüfung erfordert Claude Code v2.1.305 oder später, und/doctorlässt sie aus, solange Remote Control verbunden ist.
claude doctor in Ihrem Terminal aus.
Um statt Ihrer Einrichtung Ihre Anweisungen zu prüfen, führen Sie /doctor prompt-audit an der Claude Code-Eingabeaufforderung aus. Claude prüft Ihre CLAUDE.md-Dateien, Skills und andere Konfiguration auf veraltete oder widersprüchliche Anweisungen, anstatt die Einrichtungsüberprüfung auszuführen. Der Unterbefehl prompt-audit erfordert Claude Code v2.1.283 oder später.
Führen Sie Ihre App aus und überprüfen Sie sie
Drei mitgelieferte Skills arbeiten zusammen, um Ihre App zu starten und Änderungen gegen die laufende App zu bestätigen, anstatt nur gegen Tests:/run und /verify funktionieren ohne Einrichtung. Sie leiten den Start von Ihrem Projekttyp ab (CLI, Server, TUI, Browser-gesteuert) und von dem, was sich in Ihrer README, package.json oder Makefile befindet. Diese Ableitung wird unzuverlässig für Projekte, die mehr als einen Standard-Start benötigen: eine Datenbank, eine Env-Datei, eine grafische Sitzung, einen mehrstufigen Build.
/run-skill-generator zeichnet stattdessen das Rezept auf. Es bringt Ihre App aus einer sauberen Umgebung zum Laufen, erfasst, was funktioniert hat (die Installationsbefehle, die Umgebungsvariablen, das Startskript), und speichert es als projektspezifischen Skill unter .claude/skills/run-<name>/. Danach folgen /run, /verify und alle anderen Agenten im Repository dem aufgezeichneten Rezept, anstatt es neu zu entdecken. Führen Sie /run-skill-generator einmal pro Projekt aus, und erneut, wenn sich der Build- oder Startprozess ändert.
/verify kann auch sein eigenes Rezept aufzeichnen. Wenn es Ihre App ohne ein aufgezeichnetes Rezept erstellen und steuern muss, schreibt es, was funktioniert hat, in .claude/skills/verify/SKILL.md im Repository-Root oder im betroffenen Paketverzeichnis in einem Monorepo, damit spätere Läufe und andere Agenten die gleichen Schritte befolgen. Im Repository-Root ersetzt der aufgezeichnete Skill den mitgelieferten /verify.
Claude bearbeitet die aufgezeichnete Datei nur, wenn es einen Lauf falsch gesteuert hat, z. B. einen Befehl, der fehlgeschlagen ist, oder einen fehlenden Schritt, damit Sie die Datei ohne sitzungsspezifische Diffs committen können.
Führen Sie Ihre Prüfungen vor jedem Commit aus
Wenn eine Sitzung mit einem vorhandenen Skill namensverify oder simplify startet, weisen die Commit-Anweisungen von Claude Code Claude an, ihn unmittelbar vor jedem Commit auszuführen, außer bei Änderungen an Dokumentation oder Tests. Dies erfordert Claude Code v2.1.286 oder später. Claude erhält diese Anweisung, wenn zu Beginn der Sitzung die folgenden Bedingungen erfüllt sind:
- Speicherort: Der Skill wird aus dem Enterprise-, persönlichen, Projekt- oder zusätzlichen Verzeichnis-Speicherort geladen oder aus einer
.claude/commands/-Datei mit diesem Namen. Das Rezept, das/verifyin Ihrem Repository-Root aufzeichnet, ist ein Projekt-Skill und zählt daher. Die mitgelieferten Skills/verifyund/simplify, Plugin-Skills und Skills aus Ihrem claude.ai-Konto zählen nicht. - Aufruf: Claude kann den Skill aufrufen. Wenn Sie Claude daran gehindert haben, ihn aufzurufen, zum Beispiel mit
disable-model-invocation: true, erhält Claude die Anweisung nicht. - Git-Anweisungen: Sie haben
includeGitInstructionsnicht ausgeschaltet. Wenn Sie es ausschalten, wird diese Anweisung zusammen mit den übrigen integrierten Commit- und PR-Anweisungen entfernt.
Arbeiten Sie an Claude API-Projekten
Der gebündelte/claude-api-Skill lädt Claude API und Managed Agents-Referenzmaterial für die Sprache Ihres Projekts. Claude aktiviert ihn auch automatisch, wenn Ihr Code anthropic oder @anthropic-ai/sdk importiert.
Um einen der Workflows des Skills zu starten, geben Sie einen Unterbefehl nach dem Skill-Namen an der Claude Code-Eingabeaufforderung ein, z. B. /claude-api migrate. Die Tabelle listet auf, was jeder Unterbefehl tut, und die früheste Claude Code-Version, die ihn enthält. migrate und managed-agents-onboard stammen aus einer Zeit vor v2.1.221, der ältesten Version, die die Tabelle verfolgt.
Erste Schritte
Erstellen Sie Ihre erste Skill
Dieses Beispiel erstellt eine Skill, die die nicht committeten Änderungen in Ihrem Git-Repository zusammenfasst und alles Riskante kennzeichnet. Sie zieht den Live-Diff in den Prompt, bevor Claude ihn liest, sodass die Antwort in Ihrem tatsächlichen Arbeitsbaum verankert ist, anstatt auf dem, was Claude aus offenen Dateien erraten kann. Claude lädt die Skill automatisch, wenn Sie nach Ihren Änderungen fragen, oder Sie können sie direkt mit/summarize-changes aufrufen.
1
Erstellen Sie das Skill-Verzeichnis
Erstellen Sie ein Verzeichnis für die Skill in Ihrem persönlichen Skills-Ordner. Persönliche Skills sind in allen Ihren Projekten verfügbar.
2
Schreiben Sie SKILL.md
Jede Skill benötigt eine Die Zeile
SKILL.md-Datei mit zwei Teilen: YAML-Frontmatter zwischen ----Markierungen, das Claude mitteilt, wann die Skill verwendet werden soll, und Markdown-Inhalt mit den Anweisungen, die Claude befolgt, wenn die Skill ausgeführt wird. Der Verzeichnisname wird zum Befehl, den Sie eingeben, und die description hilft Claude zu entscheiden, wann die 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 durch seine Ausgabe, bevor Claude den Skill-Inhalt sieht, sodass die Anweisungen mit dem aktuellen Diff bereits inline ankommen.3
Testen Sie die 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 sie 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 die Skill auf zwei Arten testen.Lassen Sie Claude sie automatisch aufrufen, indem Sie etwas eingeben, das der Beschreibung entspricht:Wählen Sie, wo Skills geladen werden
Wo Sie einen Skill speichern, entscheidet, welche Sitzungen ihn laden. Speichern Sie ihn in Ihrem Home-Verzeichnis, um ihn in jedem Projekt zu erhalten, committen Sie ihn in ein Repository, um ihn mit allen zu teilen, die dort arbeiten, oder verteilen Sie ihn über ein Plugin oder verwaltete Einstellungen, um ein ganzes Team zu erreichen.
Skill-Ordner folgen auch diesen Regeln:
- Symverlinkte Ordner: Ein
<skill-name>-Eintrag am Enterprise-, Personal- oder Projekt-Speicherort kann ein Symlink zu einem Verzeichnis an anderer Stelle auf der Festplatte sein. Claude Code liestSKILL.mdaus dem Ziel und lädt den Skill einmal, auch wenn mehrere Speicherorte auf dasselbe Ziel verweisen. Plugin-Skills handhaben Symlinks anders. - Reservierter Name
synced: Benennen Sie einen Skill-Ordner nichtsynced, in keiner Schreibweise. Claude Code verwendet~/.claude/skills/synced/für Skills, die von claude.ai heruntergeladen werden und überspringt einen Skill, den Sie unter diesem Namen am Enterprise-, Personal- und Projekt-Speicherort erstellen. - Reservierter Name
anthropic-skills: Außerhalb eines Plugins wird ein Skill-Ordner oder eine Befehlsdatei mit dem Namenanthropic-skillsoder einem Namen, der mitanthropic-skills:beginnt, nicht geladen. Siehe Namen, die für synchronisierte Skills reserviert sind. - Zeichen im Namen: Außerhalb eines Plugins wird ein Skill-Ordner nicht geladen, wenn sein Name ein Zeichen wie ein Leerzeichen mit Nullbreite oder
<enthält. Siehe Zeichen, die ein Skill-Name nicht enthalten kann. - Befehlsdateien: Eine Markdown-Datei in
.claude/commands/ist das ältere Format und funktioniert immer noch. Sie unterstützt dieselbe Frontmatter außernameundpaths. Um den Namen zu finden, den Sie eingeben, um ihn aufzurufen, siehe Wie ein Skill seinen Befehlsnamen erhält. Bevorzugen Sie einen Skill für neue Arbeiten, da Skills auch unterstützende Dateien unterstützen. - Skill-Ordner als Plugin: Fügen Sie einem persönlichen oder Projekt-Skill-Ordner eine
.claude-plugin/plugin.jsonhinzu, dann kann Claude Code ihn als Plugin mit dem Namen<name>@skills-dirmit eigenen Agenten, Hooks und MCP-Servern laden. In.claude/skills/eines Projekts müssen Sie dafür zuerst den Workspace-Trust-Dialog akzeptieren, und an beiden Speicherorten setzt dies voraus, dass Ihr Administrator Plugins aus Skill-Verzeichnissen nicht blockiert hat.
Skills in Monorepos und Unterverzeichnissen laden
Claude Code lädt Projekt-Skills aus.claude/skills/ in dem Verzeichnis, in dem Sie ihn starten, und in jedem übergeordneten Verzeichnis bis zur Repository-Root, sodass das Starten in packages/frontend/ immer noch Skills aufgreift, die in der Root definiert sind. Wenn Sie die Sitzung mit /cd verschieben auf v2.1.246 oder später, fügt Claude Code die Projekt-Skills des neuen Verzeichnisses hinzu.
In einer Sitzung, die in einem verknüpften Git Worktree läuft, den Sie mit --worktree oder git worktree add erstellt haben, durchsucht Claude Code übergeordnete Verzeichnisse nur bis zur Worktree-Root. Auf Claude Code v2.1.277 oder später lädt Claude Code, wenn der Worktree-Checkout kein .claude/skills-Verzeichnis in seiner Root hat, stattdessen die Projekt-Skills des Haupt-Checkouts. Siehe Was Worktrees mit dem Haupt-Checkout teilen.
Skills in einem .claude/skills/-Verzeichnis unterhalb des Ortes, an dem Sie gestartet haben, werden beim Start nicht geladen. Sie werden geladen, wenn Claude zum ersten Mal eine Datei in diesem Unterverzeichnis liest oder bearbeitet, und bleiben für den Rest der Sitzung verfügbar. Bis dahin erscheinen sie nicht im /-Menü und Sie können sie nicht nach Name aufrufen. Um sie früher zu laden, führen Sie /add-dir mit dem Pfad des Unterverzeichnisses aus, was Claude Code v2.1.257 oder später erfordert. Für eine Worktree-Sitzung, die Sie aus der Desktop-App starten, siehe Was Worktrees mit dem Haupt-Checkout teilen.
Wenn ein verschachtelter Skill denselben Namen wie ein anderer Skill hat, bleiben beide verfügbar. Mit einem deploy-Skill in der Repository-Root und einem anderen in apps/web/.claude/skills/:
/deployführt den Root-Skill aus. Claude Code listet auch die verzeichnisqualifizierten Varianten für Claude auf, mit einer Anweisung, denjenigen aufzurufen, dessen Verzeichnis die Dateien enthält, an denen es arbeitet, sodass der verschachtelte Skill immer noch auf Arbeiten inapps/web/angewendet wird./apps/web:deployführt den verschachtelten Skill eigenständig aus. Seine Beschreibung benennt das Verzeichnis, auf das es angewendet wird.
Skills aus einem Verzeichnis außerhalb des Projekts laden
Wenn Sie ein Verzeichnis mit--add-dir oder /add-dir hinzufügen, lädt Claude Code die Skills in .claude/skills/ dieses Verzeichnisses zusammen mit .claude/commands/ und .claude/agents/. Verzeichnisse, die das Agent SDK durch additionalDirectories in TypeScript oder add_dirs in Python hinzufügt, werden auf die gleiche Weise geladen, da das SDK sie als --add-dir übergibt. Die Einstellung permissions.additionalDirectories in settings.json gewährt nur Dateizugriff und lädt keine dieser.
Claude Code überwacht .claude/skills/ in einem Verzeichnis, das Sie mit --add-dir beim Start übergeben, wie Einen Skill während einer Sitzung bearbeiten beschreibt. Es überwacht nicht das .claude/commands/ oder .claude/agents/ des hinzugefügten Verzeichnisses, daher starten Sie die Sitzung neu, nachdem Sie eine Datei dort geändert haben.
Diese Ladevorgänge hängen von der project-Einstellungsquelle ab, die standardmäßig aktiviert ist. Eine strictPluginOnlyCustomization-Richtlinie, Bare Mode und --safe-mode beschränken sie weiter, wie diese Seiten beschreiben. Siehe Zusätzliche Verzeichnisse gewähren Dateizugriff, keine Konfiguration für die vollständige Tabelle, was ein hinzugefügtes Verzeichnis lädt, einschließlich CLAUDE.md und Plugin-Einstellungen.
Einen gleichnamigen Skill aus einem hinzugefügten Verzeichnis ausführen
Ein Skill aus einem hinzugefügten Verzeichnis erhält ein Präfix, wenn sein Ordnername mit einem Enterprise-, persönlichen oder Projekt-Skill kollidiert oder mit einem Skill in einem zuvor hinzugefügten Verzeichnis. Um ihn auszuführen, geben Sie/<prefix>:<skill-name> im Eingabefeld von Claude Code ein. Das /-Menü listet den Skill unter seinem Namen mit Präfix auf, und Wie ein Skill seinen Befehlsnamen erhält beschreibt, woher das Präfix stammt. Dieser Name erfordert Claude Code v2.1.309 oder später.
Zum Beispiel mit --add-dir ../cli und einem verify-Skill sowohl in Ihrem Projekt als auch in ../cli:
/verifyführt den Skill Ihres Projekts aus/cli:verifyführt den Skill aus../cliaus
Skills auflösen, die denselben Namen haben
Wenn zwei Skills denselben Verzeichnis- oder Dateinamen haben, entscheidet, woher jeder kam, welchen/name ausführt. Für einen Namen, der durch das Frontmatter-Feld name festgelegt wird, siehe Wie ein Skill seinen Befehlsnamen erhält.
Skills in Cowork- und Cloud-Sitzungen verwenden
Cowork-Sitzungen und Cloud-Sitzungen, einschließlich geplanter Aufgaben in der Cloud, lesen nicht~/.claude/skills/ auf Ihrer Maschine. Sowohl interaktive als auch geplante Cowork-Sitzungen laden die Skills, die für Ihr claude.ai-Konto aktiviert sind, synchronisiert beim Sitzungsstart. Verwalten Sie sie über Customize in der Desktop-App-Seitenleiste oder in den Skill-Einstellungen auf claude.ai.
Wenn ein Skill nur in ~/.claude/skills/ auf Ihrer Maschine vorhanden ist, meldet Claude Code, dass der Skill nicht gefunden wurde, wenn eine geplante Aufgabe in der Cloud ihn aufruft. Das liegt daran, dass jede Ausführung als frische Cloud-Sitzung startet. Um einen persönlichen Skill in diesen Sitzungen verfügbar zu machen:
- Für Cowork-Sitzungen, Cloud-Sitzungen und Cloud-Threads in einem Projekt aktivieren Sie den Skill für Ihr claude.ai-Konto. In einem Cloud-Thread eines Projekts sind Skills, die in
.claude/skills/eines Repositorys committet sind, nicht verfügbar. Einige Sitzungen in einer selbst gehosteten Umgebung laden die Skills Ihres Kontos nicht. - Für Cloud-Sitzungen außer Projekt-Threads können Sie den Skill stattdessen in
.claude/skills/des Repositorys committen. Plugins, die in.claude/settings.jsondes Repositorys deklariert sind, und Plugins, die nur in Ihren Benutzereinstellungen aktiviert sind, werden nicht in Cloud-Sitzungen geladen.
~/.claude/skills/.
Skills, die von claude.ai synchronisiert werden
Dieser Abschnitt gilt für Sie, wenn Sie Cowork- oder Cloud-Sitzungen verwenden oder sich in Ihrem Terminal mit einem claude.ai-Konto bei Claude Code anmelden. In diesen Sitzungen lädt Claude Code die Skills, die für Ihr claude.ai-Konto aktiviert sind, ohne Setup auf Ihrer Seite, wie Wo synchronisierte Skills geladen werden beschreibt. Diese Skills umfassen die, die Sie in Ihren claude.ai-Einstellungen erstellen oder aktivieren, Skills, die Ihre Organisation dort bereitstellt, und Anthropic’s integrierte Skills wiepdf und xlsx.
Claude Code lädt einen synchronisierten Skill von Ihrem Konto herunter, anstatt eine Datei zu lesen, die Sie auf der Maschine geschrieben haben, auf der die Sitzung läuft, daher wendet es Regeln auf synchronisierte Skills an, die nicht auf die Skills angewendet werden, die Sie in den Skill-Speicherorten speichern.
Wo synchronisierte Skills geladen werden
In einer Cowork- oder Cloud-Sitzung lädt Claude Code die Skills, die für Ihr claude.ai-Konto aktiviert sind, und Skills in Cowork- und Cloud-Sitzungen sagt, wie Sie wählen, welche Skills diese Sitzungen erhalten. In Ihrem Terminal synchronisiert Claude Code diese Skills in Sitzungen, in denen Sie sich mit Ihrem claude.ai-Konto anmelden. Wenn die Sitzung startet, lädt Claude Code Ihre Account-Skills im Hintergrund in~/.claude/skills/synced/ herunter und prüft dann, während die Sitzung läuft, auf claude.ai auf Änderungen. Wenn eine Prüfung feststellt, dass ein Skill auf claude.ai hinzugefügt, bearbeitet oder deaktiviert wurde, fügt Claude Code ihn in der laufenden Sitzung hinzu, aktualisiert oder entfernt ihn ohne Neustart. Die Synchronisierung in Terminal-Sitzungen erfordert Claude Code v2.1.273 oder später.
Während die Sitzung inaktiv ist, laufen die Prüfungen seltener:
- Während Sie oder Claude in der Sitzung arbeiten: Etwa alle 10 Minuten wird eine Prüfung ausgeführt.
- Während die Sitzung inaktiv ist: Etwa alle 40 Minuten wird eine Prüfung ausgeführt. Wenn Sie wieder in der Sitzung tippen, prüft Claude Code innerhalb weniger Minuten, sofern die letzte Prüfung mehr als 10 Minuten zurückliegt.
CLAUDE_CODE_SYNC_SKILLS auf 1. Vor v2.1.273 luden Terminal-Sitzungen sie nur in einem -p-Lauf mit gesetzter Variable herunter.
Claude Code synchronisiert nur in einer Sitzung, die sich mit Ihrem claude.ai-Konto anmeldet und Feature-Flags von Anthropic abruft. Es synchronisiert nicht in diesen Sitzungen:
- Eine Sitzung, die keine Anmeldung verwendet, die von
/logingespeichert wurde, wie eine, die sich mit einem API-Schlüssel authentifiziert, oder eine, bei derANTHROPIC_AUTH_TOKEN,CLAUDE_CODE_OAUTH_TOKENoder einapiKeyHelper-Skript die Anmeldedaten bereitstellt - Eine Sitzung, die keine Feature-Flags abruft, wie eine auf Amazon Bedrock oder eine, bei der Sie
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICsetzen - Eine Sitzung in Bare Mode oder eine, die Sie mit
--safe-modestarten - Eine Sitzung, bei der die verwalteten Einstellungen Ihrer Organisation Skills auf Plugin-Quellen sperren, oder eine, die Sie mit einer
--setting-sources-Liste starten, dieuserauslässt
/login anmelden, starten Sie Claude Code neu, um die Synchronisierung zu starten.
Skills, die eine frühere Sitzung synchronisiert hat, bleiben auf der Festplatte. Claude Code lädt sie in späteren Sitzungen, die sich bei demselben Konto anmelden, auch wenn es claude.ai nicht erreichen kann.
Claude Code lädt synchronisierte Skills herunter und lädt sie niemals hoch. Wenn Sie oder Claude eine Datei unter ~/.claude/skills/synced/ bearbeiten, wird die Änderung nicht in Ihrem claude.ai-Konto gespeichert, und eine spätere Synchronisierung kann sie überschreiben oder entfernen. Um einen synchronisierten Skill zu ändern, aktualisieren Sie ihn auf claude.ai; die nächste Synchronisierung lädt die neue Version herunter.
Um zu sehen, welche Skills synchronisiert wurden, führen Sie /skills aus. Das Menü listet sie unter claude.ai sync auf.
Einige von Anthropic’s Skills, wie pdf und xlsx, werden immer synchronisiert. Für die übrigen aktivieren oder deaktivieren Sie einen Skill in Ihren Skill-Einstellungen auf claude.ai, um zu ändern, ob er synchronisiert wird.
Um die Synchronisierung auf einer Maschine zu stoppen, setzen Sie syncClaudeAiSkills in Ihren Benutzereinstellungen auf false. Claude Code stoppt das Herunterladen, und beim nächsten Start verschiebt es die Skills, die es bereits synchronisiert hat, in ~/.claude/skills/.trash/ und lädt sie nicht mehr. Ihre Organisation kann die Synchronisierung für alle ausschalten, indem sie Skills auf claude.ai ausschaltet. Um die Synchronisierung zu stoppen, während Skills eingeschaltet bleiben, kann sie denselben Schlüssel in verwalteten Einstellungen setzen.
Wenn Ihre Organisation Skills auf claude.ai ausschaltet, entfernt Claude Code die heruntergeladenen Skills und sie werden nicht mehr geladen. Die entfernten Skills werden in ~/.claude/skills/.trash/ verschoben, wo Sie die Dateien wiederherstellen können, bis die Aufbewahrungslöschung sie löscht. Sobald Ihre Organisation Skills wieder einschaltet, lädt Claude Code die Skills herunter, die Sie bei der nächsten Synchronisierung aktiviert haben.
Wenn ein synchronisierter Skill-Name mit einem anderen Befehl übereinstimmt
Sie können einen synchronisierten Skill mit seinem Kurznamen/<name> oder mit seinem vollständigen Namen /anthropic-skills:<name> aufrufen. Wenn ein anderer Befehl den Kurznamen verwendet, führt /<name> den anderen Befehl aus, und der synchronisierte Skill wird nur als /anthropic-skills:<name> ausgeführt. Mit einem lokalen deploy-Skill und einem synchronisierten deploy führt /deploy den lokalen Skill aus und /anthropic-skills:deploy führt den synchronisierten aus. Vor v2.1.269 hatte ein synchronisierter Skill nur seinen Kurznamen.
Im /-Menü, /skills und /context wird ein synchronisierter Skill unter seinem Kurznamen angezeigt, oder unter seinem vollständigen Namen, während ein anderer Befehl den Kurznamen verwendet. Führen Sie /skills in Ihrer Sitzung aus. Eine Notiz unter der Liste erklärt jeden synchronisierten Skill, der seinen Kurznamen verloren hat. Wenn einer Ihrer persönlichen Skills oder Befehlsdateien in ~/.claude/ den Namen verwendet, sagt die Notiz auch, was Sie umbenennen oder löschen müssen, um ihn freizugeben.
Von v2.1.269 bis v2.1.280 zeigten diese Listen jeden synchronisierten Skill unter seinem vollständigen Namen an, und /skills hatte keine solche Notiz; beides änderte sich in v2.1.281.
Der Befehl, der den Kurznamen verwendet, kann einer dieser sein:
- Ein integrierter Befehl oder ein gebündelter Skill, einschließlich eines, der in Ihrer Sitzung nicht verfügbar ist, zum Beispiel nachdem Sie gebündelte Skills ausschalten
- Ein Skill auf einer beliebigen lokalen Ebene oder eine Datei in
.claude/commands/ - Ein Plugin-Skill
- Eine MCP-Eingabeaufforderung
/skills-Menü und /context gruppieren synchronisierte Skills unter claude.ai sync, und das /-Befehlsmenü kennzeichnet sie als von claude.ai stammend.
Beim Vergleich von Namen ignoriert Claude Code Groß-/Kleinschreibung, Abstände und unsichtbare Zeichen und behandelt Kompatibilitätsformen wie Vollbreitenbuchstaben und Bindestrich-Varianten als ihre einfachen Äquivalente. Zum Beispiel zählen ein synchronisierter Skill mit dem Namen Commit und ein lokaler Skill mit dem Namen commit als derselbe Name, daher führt /commit weiterhin Ihren lokalen Skill aus.
Ein Name, der sich nur durch einen ähnlich aussehenden Buchstaben aus einem anderen Alphabet unterscheidet, zählt als ein anderer Name, und die claude.ai sync-Kennzeichnung ist, wie Sie die beiden unterscheiden. Diese Prüfungen und Kennzeichnungen erfordern Claude Code v2.1.228 oder später.
Namen, die für synchronisierte Skills reserviert sind
Claude Code reserviert den Namenanthropic-skills und jeden Namen in diesem Namespace wie anthropic-skills:pdf für Skills, die von claude.ai synchronisiert werden, daher führt der vollständige Name eines synchronisierten Skills niemals etwas anderes aus. Der Name ist in jeder Sitzung reserviert, unabhängig davon, ob Sie sich mit einem claude.ai-Konto anmelden oder nicht.
- Ein Skill-Ordner, eine Frontmatter
name, eine Datei oder ein Unterordner in.claude/commands/oder ein gespeicherter Workflow: er wird nicht geladen. Eine Startup-Benachrichtigung benennt das erste Element zum Umbenennen oder Bearbeiten. - Ein Plugin mit dem Namen
anthropic-skills: es wird geladen. Wenn einer seiner Skills und ein synchronisierter Skill beide<name>genannt werden, führt/anthropic-skills:<name>den synchronisierten Skill aus. - Ein MCP-Server mit dem Namen
anthropic-skills: er verbindet sich und seine Tools funktionieren, aber seine Eingabeaufforderungen erscheinen nicht als Befehle. Benennen Sie den Server in Ihrer MCP-Konfiguration um, um sie aufzulisten.
Wie Claude Code die Frontmatter eines synchronisierten Skills handhabt
Claude Code wendet zwei Regeln auf die Frontmatter eines synchronisierten Skills an:- Das Frontmatter gilt in jeder Art von Sitzung, daher durchläuft eine
allowed-tools-Gewährung den normalen Berechtigungsfluss. Wenn Ihre OrganisationallowManagedPermissionRulesOnlysetzt, gilt die Gewährung nicht. - Claude Code bereinigt den Anzeigetext, den der Skill bereitstellt, wie seine Beschreibung. Es entfernt Steuerzeichen, und in Text, der Claude erreicht, wie die Beschreibung, maskiert es auch spitzklammern, damit der Text Claude Code’s interne Formatierung nicht imitieren kann. Diese Bereinigung erfordert Claude Code v2.1.228 oder später.
Wie Claude Code den Body eines synchronisierten Skills handhabt
Was Claude Code mit dem Body eines synchronisierten Skills macht, hängt davon ab, wo die Sitzung läuft:- In einer Cloud-Sitzung behält der Body das Verhalten, das ein lokaler Skill hat, da die Sitzung in einem isolierten Container läuft.
- In einer Cowork-Sitzung auf Ihrem Desktop behält der Body das Verhalten, das ein lokaler Skill hat, außer dass Claude Code jede
!-Befehlszeile durch dendisableSkillShellExecution-Platzhalter ersetzt, wie es für jeden Skill tut, den Sie dort bereitstellen. - In jeder anderen Sitzung auf Ihrer Maschine führt Claude Code keine
!-Befehle aus, hängt nicht die Dateien an, die@-Referenzen benennen, wie es für einen lokalen Skill tut, und ersetzt nicht die Platzhalter${CLAUDE_PROJECT_DIR}und${CLAUDE_SESSION_ID}, daher erreichen die@-Referenzen und beide Platzhalter Claude als wörtlicher Text. Eine!-Befehlszeile erreicht Claude auch als wörtlicher Text oder als dieser Platzhalter, wenndisableSkillShellExecutionaktiviert ist. Diese Handhabung erfordert Claude Code v2.1.228 oder später.
Einen Skill während einer Sitzung bearbeiten
Claude Code überwacht Skill-Verzeichnisse auf Dateiänderungen, außer in Bare Mode. Wenn Sie einen Skill unter~/.claude/skills/, dem Projekt .claude/skills/ oder einem .claude/skills/ in einem --add-dir-Verzeichnis hinzufügen, bearbeiten oder entfernen, nimmt Claude Code die Änderung innerhalb der aktuellen Sitzung auf, ohne einen Neustart.
Wenn Sie ein Top-Level-Skills-Verzeichnis erstellen, das beim Start der Sitzung nicht vorhanden war, führen Sie /reload-skills aus, um die Skills zu laden, die Sie dort eingefügt haben. Claude Code überwacht dieses Verzeichnis noch nicht, daher führen Sie /reload-skills erneut aus, nachdem Sie später Änderungen dort vornehmen.
Die Live-Änderungserkennung deckt nur SKILL.md-Text ab. Für einen Skill-Ordner, der auch ein Plugin ist, benötigen Änderungen an hooks/, .mcp.json, agents/ und output-styles/ /reload-plugins, um wirksam zu werden.
Einen Skill entfernen
Wie Sie einen Skill entfernen, hängt davon ab, woher er kam:- Persönlicher oder Projekt-Skill: Löschen Sie das Verzeichnis des Skills,
~/.claude/skills/<skill-name>/oder.claude/skills/<skill-name>/. Claude Code entfernt ihn aus/skillsin der aktuellen Sitzung; Inhalte, die Claude Code bereits daraus geladen hat, folgen dem Skill-Content-Lebenszyklus. - Enterprise-Skill: Ein Administrator löscht das Verzeichnis des Skills aus
.claude/skills/im Verzeichnis für verwaltete Einstellungen, zum Beispiel/etc/claude-code/.claude/skills/<skill-name>/auf Linux. - Plugin-Skill: Deaktivieren oder deinstallieren Sie das Plugin, das ihn bereitstellt, aus dem
/plugin-Menü oder mit/plugin uninstall <plugin-name>@<marketplace-name>. Claude Code entlädt die Skills des Plugins, wenn die Änderung angewendet wird oder wenn Sie neu starten. - Skill, der von claude.ai synchronisiert wird: Schalten Sie den Skill für Ihr claude.ai-Konto aus, an derselben Stelle, an der Sie ihn aktiviert haben. Claude Code entfernt ihn aus
~/.claude/skills/synced/beim nächsten Mal, wenn es Ihre Skills synchronisiert. Wenn Sie das Verzeichnis stattdessen von Hand löschen, lädt die nächste Synchronisierung es erneut herunter, während der Skill auf claude.ai aktiviert bleibt. - Gebündelter Skill: Setzen Sie
disableBundledSkillsauftrue, um gebündelte Skills auszuschalten, oder setzen Sie einen Skill auf"off"inskillOverrides, um ihn auszublenden.
disable-model-invocation: true in seiner Frontmatter oder "user-invocable-only" in skillOverrides, wenn Sie die Datei nicht bearbeiten möchten.
Fähigkeiten konfigurieren
Fähigkeiten werden durch YAML-Frontmatter am Anfang vonSKILL.md und den darauffolgenden Markdown-Inhalt konfiguriert.
Arten von Fähigkeitsinhalten
Fähigkeitsdateien können beliebige Anweisungen enthalten, aber das Nachdenken darüber, wie Sie sie aufrufen möchten, hilft bei der Entscheidung, was Sie einbeziehen: Referenzinhalte fügen Wissen hinzu, das Claude auf Ihre aktuelle Arbeit anwendet. Konventionen, Muster, Stilrichtlinien, Domänenwissen. Dieser Inhalt wird inline ausgeführt, sodass Claude ihn zusammen mit 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. Das folgende Beispiel fügt context: fork hinzu, das die Fähigkeit in ihrem eigenen Subagent-Kontext ausführt; siehe Fähigkeiten in einem Subagent ausführen.
Frontmatter-Referenz
Konfigurieren Sie eine Fähigkeit mit YAML-Frontmatter zwischen----Markierungen am Anfang von SKILL.md, und schreiben Sie die Anweisungen der Fähigkeit als Markdown nach dem schließenden ---. Feldnamen verwenden Kleinbuchstaben-Wörter, die durch Bindestriche getrennt sind, außer when_to_use. Eine Befehlsdatei in .claude/commands/ akzeptiert die gleichen Felder außer name und paths. Dieses Beispiel setzt vier Felder:
description wird empfohlen, damit Claude weiß, wann der Skill verwendet werden soll. Ein Feldname muss genau mit der Tabelle übereinstimmen, Bindestriche eingeschlossen: Claude Code ignoriert ein Feld, das es nicht erkennt, ohne einen Fehler zu melden. Boolesche Felder akzeptieren yes, no, on, off, 1 und 0 in beliebiger Schreibweise, zusätzlich zu true und false.
Claude Code liest das Frontmatter nur, wenn die öffnende --- die erste Zeile der Datei ist. Andernfalls behandelt es die gesamte Datei, einschließlich ----Markierungen, als Fähigkeitsinhalt. Wenn das YAML zwischen den Markierungen nicht analysiert wird, wird die Fähigkeit immer noch geladen, ohne dass Felder gesetzt werden; siehe Fähigkeit wird nicht ausgelöst, um den Fehler zu finden und zu beheben.
Fähigkeits-Frontmatter außerhalb von Claude Code verwenden
Claude Code akzeptiert jedes Feld in der obigen Tabelle. Außerhalb von Claude Code können Sie nur die Felder in der Agent Skills-Spezifikation verwenden:
Wenn Sie einen persönlichen Skill für Ihr claude.ai-Konto aktivieren, um ihn beispielsweise in Cowork- und Cloud-Sitzungen und geplanten Aufgaben zu verwenden, laden Sie ihn auf claude.ai hoch. Für diesen Upload gelten die gleichen Regeln.
Wenn Sie ein Feld einbeziehen, das die Spezifikation nicht zulässt, schlägt die Verpackung oder der Upload mit einem schwerwiegenden Fehler fehl, anstatt das Feld zu ignorieren:
Wie eine Fähigkeit ihren Befehlsnamen erhält
Der Befehl, den Sie eingeben, um eine Fähigkeit aufzurufen, kommt von dem Ort, an dem die Fähigkeitsdatei lebt, und für Fähigkeitsverzeichnisse und Plugin-Fähigkeiten auch vom Frontmatter-Feldname. In einer persönlichen oder Projektfähigkeit setzt name den Befehl, den das /-Menü anzeigt und den Sie eingeben, es sei denn, ein anderer Befehl verwendet bereits diesen Namen. Der Verzeichnisname ruft auch die Fähigkeit auf. In einer Plugin-Fähigkeit setzt name das letzte Segment des Befehls und das Plugin-Präfix bleibt bestehen.
Die folgende Tabelle zeigt, woher der Befehlsname für jedes Layout kommt:
In einer Plugin-Fähigkeit ersetzt das Frontmatter-Feld
name den Verzeichnisnamen im letzten Segment des Befehls, sodass my-plugin/skills/review/SKILL.md mit name: fancy zu /my-plugin:fancy wird. Der bloße /fancy ruft die Fähigkeit auch auf, es sei denn, ein anderer Befehl verwendet bereits diesen Namen. Wenn der name, den Sie schreiben, bereits mit dem eigenen Präfix des Plugins beginnt, fügt Claude Code das Präfix nicht erneut auf v2.1.246 oder später hinzu. Zum Beispiel wird name: my-plugin:fancy immer noch zu /my-plugin:fancy. Von v2.1.216 bis v2.1.245 verdoppelte Claude Code das Präfix, wenn der name es bereits trug.
In nicht-interaktiven Sitzungen sind die Namen help und feedback nicht für ihre nur-Terminal-Befehle reserviert, sodass eine Plugin-Fähigkeit mit einem dieser Namen ihren bloßen Befehl dort behält. Jeder andere nur-Terminal-Befehl, wie /login, bleibt reserviert, obwohl der Befehl in diesen Sitzungen nicht ausgeführt werden kann.
Für eine Plugin-Root SKILL.md gibt es kein Fähigkeitsverzeichnis, aus dem der Name genommen werden kann, sodass name das ganze letzte Segment liefert. Ohne ein name-Feld fällt Claude Code auf den Plugin-Verzeichnisnamen zurück.
Zeichen, die ein Skill-Name nicht enthalten darf
Wenn ein Skill oder benutzerdefinierter Befehl im/-Menü fehlt oder das Menü den Frontmatter-name eines Skills nicht anzeigt, überprüfen Sie den Namen. Claude Code lehnt einen Befehlsnamen oder einen Frontmatter-name ab, der Zeichen wie die folgenden enthält:
- Ein Leerzeichen mit Nullbreite oder ein Steuerzeichen
- Ein Zeichen aus dem privaten Nutzungsbereich oder ein nicht zugewiesenes Zeichen, z. B. ein Glyph aus einer Icon-Schriftart
- Ein Zeichen, das die Richtung des umgebenden Textes ändert
- Ein Leerraum, der kein einzelnes normales Leerzeichen zwischen Wörtern ist, z. B. ein geschütztes Leerzeichen, zwei Leerzeichen hintereinander oder ein Leerzeichen am Anfang oder Ende
<oder>
name befinden:
- Ordner im
skills/-Verzeichnis eines Plugins oder in denskills-Pfaden seines Manifests: Sie müssen den Ordner nicht umbenennen. Diese Zeichen werden im Befehlsnamen des Skills zu Bindestrichen, geben Sie den Befehl also mit den Bindestrichen ein. - Frontmatter
name: Das/-Menü zeigt denname-Wert nicht an, und die Eingabe dieses Werts ruft den Skill nicht auf. Bearbeiten Sie die Zeilename:, um die Zeichen zu entfernen.
claude --debug und durchsuchen Sie das Debug-Log nach [names]. In einer interaktiven Sitzung weist Sie außerdem ein Hinweis beim Start darauf hin, dass Namen abgelehnt wurden. Starten Sie nach einer Umbenennung oder einer Änderung an name: die Sitzung neu, es sei denn, die Datei befindet sich in einem Verzeichnis, das Claude Code auf Änderungen überwacht.
Verfügbare Zeichenkettensubstitutionen
Fähigkeiten unterstützen Zeichenkettensubstitution für dynamische Werte im Fähigkeitsinhalt:
Claude Code ersetzt
${CLAUDE_SKILL_DIR} und ${CLAUDE_PROJECT_DIR} an zwei Stellen: im Markdown-Inhalt der Fähigkeit und in Bash-Regeln im allowed-tools-Frontmatter. In einer Plugin-Fähigkeit ersetzt Claude Code ${CLAUDE_PLUGIN_ROOT} und ${CLAUDE_PLUGIN_DATA} an den gleichen zwei Stellen. Die Verwendung der gleichen Variable an beiden Stellen ermöglicht es einer Fähigkeit, ein gebündeltes Skript ohne Genehmigungsaufforderung auszuführen. Die folgende Fähigkeit zeigt das Muster:
~/.claude/skills/render-chart/ installiert ist, expandieren beide Vorkommen von ${CLAUDE_SKILL_DIR} zu diesem Verzeichnis. Die allowed-tools-Regel stimmt dann mit dem genauen Befehl überein, den der Fähigkeitstext Claude ausführen sagt, sodass das Skript ohne Aufforderung ausgeführt wird.
Indizierte Argumente verwenden Shell-ähnliche Anführungszeichen, sodass mehrteilige Werte in Anführungszeichen einschließen, um sie als einzelnes Argument zu übergeben. Zum Beispiel macht /my-skill "hello world" second $0 zu hello world und $1 zu second. Der $ARGUMENTS-Platzhalter expandiert immer zur vollständigen Argumentzeichenkette wie eingegeben.
Ein indizierter Platzhalter ohne entsprechendes Argument, z. B. $2, wenn nur ein Argument übergeben wurde, bleibt im Inhalt unverändert. Ein benannter Platzhalter aus dem arguments-Frontmatter ohne übereinstimmendes Argument expandiert zu einer leeren Zeichenkette.
Wenn Sie einen Argumentwert übergeben, der selbst Text wie $1 oder $ARGUMENTS enthält, fügt Claude Code ihn als Literaltext ein und expandiert ihn nicht. Zum Beispiel, wenn der Fähigkeitstext Summarize $0 enthält und Sie /summarize "$ARGUMENTS from yesterday" ausführen, empfängt Claude Summarize $ARGUMENTS from yesterday. Claude Code ersetzt immer noch ${CLAUDE_*}-Variablen wie ${CLAUDE_SKILL_DIR}, nachdem es die Argumente eingefügt hat.
Um ein Literal $ vor einer Ziffer, ARGUMENTS oder einem deklarierten Argumentnamen einzubeziehen, z. B. $1.00 in Prosa, maskieren Sie es mit einem Backslash: \$1.00. Ein Backslash vor jedem anderen $ bleibt unverändert. Nur ein einzelner Backslash direkt vor dem Token maskiert ihn. Ein verdoppelter Backslash wie \\$1 lässt beide Backslashes an Ort und Stelle, und $1 expandiert immer noch zum Argumentwert. Die Backslash-Maskierung deckt nur diese Argumentplatzhalter ab. Ein Backslash verhindert nicht die Substitution einer ${CLAUDE_*}-Variable, wo die Variable angewendet wird.
Beispiel mit Substitutionen:
Unterstützende Dateien hinzufügen
Fähigkeiten können mehrere Dateien in ihrem Verzeichnis enthalten. Dies hältSKILL.md auf das Wesentliche konzentriert, während Claude auf detailliertes Referenzmaterial nur bei Bedarf zugreifen kann. Große Referenzdokumente, API-Spezifikationen oder Beispielsammlungen müssen nicht jedes Mal geladen werden, wenn die Fähigkeit ausgeführt wird.
SKILL.md, damit Claude weiß, was jede Datei enthält und wann sie geladen werden soll:
Kontrollieren Sie, wer eine Fähigkeit aufruft
Standardmäßig können Sie und Claude jede Fähigkeit aufrufen. Sie können/skill-name eingeben, um sie direkt aufzurufen, und Claude kann sie automatisch laden, wenn sie für Ihr Gespräch relevant ist. Zwei Frontmatter-Felder ermöglichen es Ihnen, dies einzuschränken:
-
disable-model-invocation: true: Claude kann den Skill nicht von sich aus aufrufen. Verwenden Sie dies für Workflows mit Nebenwirkungen oder solche, deren Zeitpunkt Sie selbst steuern möchten, wie/commit,/deployoder/send-slack-message. Sie möchten nicht, dass Claude entscheidet zu deployen, weil Ihr Code fertig aussieht. -
user-invocable: false: Nur Claude kann die Fähigkeit aufrufen. Verwenden Sie dies für Hintergrundwissen, das nicht als Befehl umsetzbar ist. Einelegacy-system-context-Fähigkeit erklärt, wie ein altes System funktioniert. Claude sollte dies kennen, wenn relevant, aber/legacy-system-contextist keine aussagekräftige Aktion für Benutzer.
disable-model-invocation: true setzen, kann Claude den Skill nicht automatisch ausführen:
/deploy selbst auszuführen.
Hier ist, wie die beiden Felder Aufrufe und Kontextladung beeinflussen:
In einer regulären Sitzung werden Fähigkeitsbeschreibungen in den Kontext geladen, damit Claude weiß, was verfügbar ist, aber vollständiger Fähigkeitsinhalt wird nur beim Aufrufen geladen. Subagents mit vorgeladenen Fähigkeiten funktionieren anders: Der vollständige Fähigkeitsinhalt wird beim Start eingespritzt.
Wo Sie den Namen des Skills schreiben
Um einen Skill direkt auszuführen, setzen Sie seinen Namen an den Anfang Ihrer Nachricht. Nach normalem Text erteilt der Name Claude die Erlaubnis, den Skill auszuführen, führt ihn aber nicht aus:
Um über den Skill zu schreiben, ohne eine Ausführung zu erlauben, lassen Sie den Schrägstrich weg.
Fähigkeitsinhalts-Lebenszyklus
Wenn Sie oder Claude eine Fähigkeit aufrufen, tritt der gerenderteSKILL.md-Inhalt als einzelne Nachricht in das Gespräch ein und bleibt über spätere Turns hinweg bestehen. Diese Persistenz gilt für die Anweisungen der Fähigkeit, nicht ihre Berechtigungen: Eine allowed-tools-Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Claude Code liest die Fähigkeitsdatei bei späteren Turns nicht erneut, daher schreiben Sie Anleitung, die während einer Aufgabe gelten sollte, als stehende Anweisungen anstelle von einmaligen Schritten.
Wenn Claude eine Fähigkeit erneut aufruft, deren gerenderter Inhalt identisch mit der bereits im Kontext vorhandenen Kopie ist, fügt Claude Code einen kurzen Hinweis hinzu, dass die Fähigkeit bereits geladen ist, anstatt eine zweite Kopie des Inhalts zu erstellen. Wenn sich der gerenderte Inhalt unterscheidet, weil sich die Argumente geändert haben oder ein dynamischer Kontext-Befehl neue Ausgabe erzeugt hat, hängt Claude Code den vollständigen Inhalt erneut an.
Auto-Komprimierung trägt aufgerufene Fähigkeiten innerhalb eines Token-Budgets vorwärts. Wenn das Gespräch zusammengefasst wird, um Kontext freizugeben, hängt Claude Code die neueste Aufrufinvokation jeder Fähigkeit nach der Zusammenfassung erneut an, wobei die ersten 5.000 Token jeder beibehalten werden. Erneut angehängte Fähigkeiten teilen sich ein kombiniertes Budget von 25.000 Token. Claude Code füllt dieses Budget beginnend mit der zuletzt aufgerufenen Fähigkeit, sodass ältere Fähigkeiten vollständig gelöscht werden können, nachdem die Komprimierung erfolgt ist, wenn Sie viele in einer Sitzung aufgerufen haben.
Wenn Claude stops following a skill partway through a session, see Claude stops following a skill.
Tools für eine Fähigkeit vorab genehmigen
Das Feldallowed-tools gewährt Genehmigung für die aufgelisteten Tools während des Turns, der die Fähigkeit aufruft, sodass Claude sie ohne Genehmigungsaufforderung verwenden kann. Die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden, obwohl der Fähigkeitsinhalt im Kontext bleibt; das erneute Aufrufen der Fähigkeit wendet es für diesen Turn erneut an. Es schränkt nicht ein, welche Tools verfügbar sind: Jedes Tool bleibt aufrufbar, und Ihre Berechtigungseinstellungen regieren immer noch Tools, die nicht aufgelistet sind. Um Tools für die ganze Sitzung vorab zu genehmigen, anstatt einen einzelnen Turn, fügen Sie stattdessen Zulassungsregeln zu diesen Berechtigungseinstellungen hinzu.
Workspace-Vertrauen hat keinen Einfluss auf dieses Feld. Claude Code wendet die allowed-tools eines Projekt-Skills selbst in einem -p-Lauf in einem Ordner an, dem Sie nie vertraut haben. Ein Skill kann sich selbst weitreichenden Tool-Zugriff gewähren, überprüfen Sie daher die allowed-tools von Skills, die in ein Repository eingecheckt sind, bevor Sie Claude Code dort ausführen. Wie Sie das Feld für Repository-Skills in Ihrer gesamten Organisation unwirksam machen, erfahren Sie unter Wenn nur verwaltete Berechtigungsregeln gelten.
Diese Fähigkeit ermöglicht es Claude, Git-Befehle ohne Genehmigung pro Verwendung auszuführen, wann immer Sie sie aufrufen:
disallowed-tools im Frontmatter der Fähigkeit auf. Die Einschränkung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Wie Ablehnungsregeln kann das Feld EndConversation nicht entfernen, während ein anderes Tool verfügbar bleibt. Um Tools über alle Fähigkeiten und Eingabeaufforderungen hinweg zu blockieren, fügen Sie Ablehnungsregeln in Ihren Berechtigungseinstellungen hinzu.
Wenn verwaltete Einstellungen Hooks auf Plugins beschränken
Wenn die verwalteten Einstellungen Ihrer Organisationhooks in strictPluginOnlyCustomization aufführen, verliert ein persönlicher oder Projekt-Skill, dessen Frontmatter hooks deklariert, seine allowed-tools-Vorabgenehmigung, abgesehen von den Skills, die sie behalten.
- Prüfen: Geben Sie
/statusin einer Claude Code-Sitzung ein. Wenn/statusEnterprise managed settingsanzeigt, fragen Sie Ihren Administrator, obstrictPluginOnlyCustomizationhooksaufführt. - Beheben: Entfernen Sie
hooksaus dem Frontmatter des Skills, da seine Hooks unter dieser Einstellung nicht ausgeführt werden. Um sie beizubehalten, verschieben Sie den Skill in ein Plugin, das Sie aus einem Marketplace installieren.
Wenn nur verwaltete Berechtigungsregeln gelten
Wenn Ihre OrganisationallowManagedPermissionRulesOnly in den verwalteten Einstellungen setzt, ignoriert Claude Code allowed-tools in Projekt- und persönlichen Skills sowie in den weiteren Quellen, die der Eintrag der Einstellung aufführt. Dies erfordert Claude Code v2.1.282 oder später.
Die Tools, die ein betroffener Skill auflistet, durchlaufen stattdessen die verwalteten Regeln Ihrer Organisation und die normale Berechtigungsabfrage. Führen Sie /status aus, um jeden Skill aufzulisten, dessen allowed-tools Claude Code in der Sitzung bisher ignoriert hat. Für einen eingefügten Befehl im Skill, den keine verwaltete Regel erlaubt, gilt Berechtigungsprüfungen für eingefügte Befehle.
Argumente an Fähigkeiten übergeben
Sowohl Sie als auch Claude können Argumente beim Aufrufen einer Fähigkeit übergeben. Argumente sind über den$ARGUMENTS-Platzhalter verfügbar.
Diese Fähigkeit behebt ein GitHub-Problem nach Nummer. Der $ARGUMENTS-Platzhalter wird durch alles ersetzt, das dem Fähigkeitsnamen folgt:
/fix-issue 123 ausführen, empfängt Claude „Fix GitHub issue 123 following our coding standards…“
Wenn Sie eine Fähigkeit mit Argumenten aufrufen, aber kein Platzhalter im Fähigkeitsinhalt ein Argument empfängt, hängt Claude Code ARGUMENTS: <your input> am Ende des Fähigkeitsinhalts an, damit Claude immer noch sieht, was Sie eingegeben haben. Ein Platzhalter ist $ARGUMENTS, eine indizierte Form wie $1 oder ein benanntes Argument. Ein indizierter Platzhalter ohne Argument an seiner Position bleibt als Literaltext und zählt nicht als empfangen. Ein benannter Platzhalter zählt auch, wenn seine Position kein Argument hat, weil er zu einer leeren Zeichenkette expandiert.
Um auf einzelne Argumente nach Position zuzugreifen, verwenden Sie $ARGUMENTS[N] oder die kürzere $N:
/migrate-component SearchBar JavaScript TypeScript ersetzt $ARGUMENTS[0] durch SearchBar, $ARGUMENTS[1] durch JavaScript und $ARGUMENTS[2] durch TypeScript. Die gleiche Fähigkeit mit der $N-Kurzform:
Mehrere Skills in einer Nachricht stapeln
Wenn Sie im Prompt von Claude Code in Ihrem Terminal tippen, können Sie mehrere Skills am Anfang einer Nachricht stapeln. Über das Agent SDK oderclaude -p lädt Claude Code nur den ersten Skill und verwendet den Rest der Zeile als dessen Argumente. Im Terminal-Prompt lädt die Eingabe von /write-tests /fix-issue 123 beide Skills und übergibt den nachfolgenden Text 123 als $ARGUMENTS an jeden von ihnen.
Claude Code expandiert den ersten Skill plus bis zu fünf weitere, die danach gestapelt sind. Die Expansion stoppt beim ersten Token, das kein inline ausgeführter, vom Benutzer aufrufbarer Skill ist. Wenn Sie einen Skill stapeln, der als verzweigter Subagent ausgeführt wird, wie /code-review, oder einen, dessen Argumente mit einem anderen Befehl beginnen können, wie /loop, endet die Expansion dort. Dieses Token und alles danach werden zum Argumenttext für jeden expandierten Skill.
Fortgeschrittene Muster
Dynamischen Kontext einfügen
Die Syntax!`<command>` führt Shell-Befehle aus, bevor der Skill-Inhalt an Claude gesendet wird. Die Ausgabe des Befehls ersetzt den Platzhalter, sodass Claude tatsächliche Daten erhält und nicht den Befehl selbst. Claude Code führt diese Befehle nicht auf Ihrem Rechner aus, wenn der Skill aus Ihrem claude.ai-Konto synchronisiert wurde. Diese Einschränkung erfordert Claude Code v2.1.228 oder höher.
Dieser Skill fasst einen Pull Request zusammen, indem er aktuelle PR-Daten mit der GitHub CLI abruft. Der Befehl !`gh pr diff` und die anderen Befehle werden zuerst ausgeführt, und ihre Ausgabe wird in den Prompt eingefügt:
!`<command>`-Platzhaltern durchsucht, sodass ein Befehl keinen Platzhalter ausgeben kann, der in einem späteren Durchlauf expandiert wird.
Die Inline-Form wird nur erkannt, wenn ! am Anfang einer Zeile oder unmittelbar nach einem Leerraum steht. Folgt ! auf ein anderes Zeichen, wie in KEY=!`cmd`, bleibt der Platzhalter als wörtlicher Text stehen und der Befehl wird nicht ausgeführt.
Verwenden Sie für mehrzeilige Befehle statt der Inline-Form einen eingezäunten Codeblock, der mit ```! geöffnet wird:
"disableSkillShellExecution": true in den Einstellungen. Jeder Befehl wird dann durch [shell command execution disabled by policy] ersetzt, statt ausgeführt zu werden. Mitgelieferte und verwaltete Skills sind davon nicht betroffen. Diese Einstellung ist vor allem in verwalteten Einstellungen nützlich, wo Benutzer sie nicht überschreiben können.
Claude Code führt diese Befehle unabhängig von dieser Einstellung niemals auf Ihrem Rechner aus, wenn sie in Skills vorkommen, die aus Ihrem claude.ai-Konto synchronisiert wurden. Diese Einschränkung erfordert Claude Code v2.1.228 oder höher. Unter Wie Claude Code den Inhalt eines synchronisierten Skills behandelt erfahren Sie, was Claude in jeder Art von Sitzung anstelle des Befehls erhält.
Wie eingefügte Befehle ausgeführt werden
Claude Code wählt das Tool, das die eingefügten Befehle eines Skills ausführt, anhand des Schlüsselsshell im Frontmatter des Skills und Ihrer Umgebung. Jede Kombination führt die Befehle über das Bash-Tool oder das PowerShell-Tool aus, mit Ausnahme einer, bei der der Aufruf sofort fehlschlägt:
shell: powershell, bei aktiviertem PowerShell-Tool: Die Befehle werden über das PowerShell-Tool ausgeführt.shell: bash, wenn bash nicht verfügbar ist: Der Aufruf schlägt fehl, bevor ein Befehl ausgeführt wird. Das passiert unter Windows ohne Git Bash. Claude Code zeigtSkill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not foundan.- Jede andere Kombination: Die Befehle werden über das Bash-Tool ausgeführt, wenn bash verfügbar ist. Andernfalls werden sie über das PowerShell-Tool ausgeführt.
- Arbeitsverzeichnis: Claude Code führt jeden Befehl im aktuellen Arbeitsverzeichnis der Sitzungs-Shell aus. Dieses Verzeichnis ändert sich, wenn Claude
cdausführt. Verwenden Sie${CLAUDE_SKILL_DIR}oder${CLAUDE_PROJECT_DIR}in Pfaden, die jedes Mal gleich aufgelöst werden müssen. - stderr: Bei der Standard-Shell
bashführt Claude Code stderr mit stdout zusammen. Alles, was der Befehl nach stderr schreibt, erscheint im eingefügten Text. - Timeout: Jeder Befehl läuft unter dem standardmäßigen 2-Minuten-Timeout des Bash-Tools. Wenn das Bash-Tool einen Befehl mit Zeitüberschreitung in den Hintergrund verschiebt, wird der Skill trotzdem gerendert. Der eingefügte Text meldet die Verschiebung und nennt die Hintergrundaufgabe sowie die Datei, in der die Ausgabe des Befehls gesammelt wird. Handelt es sich um einen Befehl, den das Bash-Tool nie automatisch in den Hintergrund verschiebt, beendet Claude Code ihn beim Timeout. Dieser Fehler bricht den Aufruf ab.
- Ausgabegröße: Ausgabe jenseits der Inline-Obergrenze des Bash-Tools kommt als Dateipfad plus kurze Vorschau an, nicht als gekürzter Text. Ausgabelimits beschreibt die Obergrenze und wie Sie jede Grenze anpassen.
Wenn ein eingefügter Befehl fehlschlägt
Ein fehlgeschlagener Befehl bricht den gesamten Skill-Aufruf ab, nicht nur seinen eigenen Platzhalter. Claude sieht den Skill-Inhalt für diesen Aufruf nie. Beim Abbruch wirdShell command failed for pattern "..." angezeigt. Die Fehlermeldung enthält die Ausgabe des Befehls.
Bei der Standard-Shell bash gilt jeder Exit-Code ungleich null als Fehler. Es gibt eine Ausnahme: Claude Code behandelt den Exit-Code 1 von Such- und Vergleichsbefehlen als normales Ergebnis und fügt deren Ausgabe ein. Exit-Codes von 2 oder höher gelten auch bei diesen Befehlen als Fehler.
Welche Befehle unter die Ausnahme fallen, hängt von der Shell ab:
- Standard-Shell
bash: die unter Ausgabelimits aufgeführten Befehle shell: powershell, wenn das PowerShell-Tool aktiviert ist: eine andere Menge, diegrepundgit diffenthält, aber nichtfindoderdiff
bash || true an jeden anderen Befehl an, bei dem Sie einen Exit-Code ungleich null erwarten. Ein Prüfskript, das mit 1 endet, wenn es Probleme findet, ist ein Beispiel dafür.
Wenn kein Shell-Befehl ausgeführt wurde
No shell command in <name> was run bedeutet, dass einer seiner Shell-Befehle ein Zeichen enthält, das das Tool nicht akzeptiert. Wie Sie das Zeichen finden und entfernen, erfahren Sie in der Fehlerreferenz.
Berechtigungsprüfungen bei eingefügten Befehlen
Eingefügte Befehle lösen nie eine Berechtigungsabfrage aus, während der Skill gerendert wird. Claude Code prüft jeden zunächst anhand Ihrer Berechtigungsregeln. Ein Befehl, auf den eine deny-Regel zutrifft, bricht den Aufruf mitShell command permission check failed for pattern "..." ab.
Außerhalb des Auto-Modus bricht Claude Code den Aufruf mit demselben Fehler ab, wenn die Berechtigungsprüfung eines Befehls etwas anderes als allow ergibt. Dazu gehört auch eine Regel, die Sie normalerweise fragen würde. Damit ein nicht erfasster Befehl hier nicht zum Abbruch führt, genehmigen Sie ihn vorab mit allowed-tools. Wenn Ihre Organisation Berechtigungsregeln auf verwaltete Einstellungen beschränkt, siehe Wenn nur verwaltete Berechtigungsregeln gelten. deny- und ask-Regeln überschreiben allowed-tools weiterhin. Siehe Berechtigungen verwalten.
Im Auto-Modus bricht ein Befehl, der sonst Ihre Genehmigung erfordern würde, den Aufruf nicht ab. Der Skill wird mit einer Anweisung geladen, die Claude auffordert, den Befehl zuerst auszuführen, und Claudes eigener Aufruf durchläuft dann die üblichen Prüfungen des Auto-Modus. Der Aufruf wird dennoch abgebrochen in einem geforkten Skill, der agent setzt, sowie in einer Sitzung, in der Claude nicht über das Shell-Tool verfügt, das eingefügte Befehle ausführt.
Skills in einem Subagenten ausführen
Fügen Sie Ihrem Frontmattercontext: fork hinzu, wenn ein Skill isoliert ausgeführt werden soll. Claude Code startet einen neuen Subagenten des im Feld agent festgelegten Typs und übergibt ihm den Skill-Inhalt als Prompt. Der Subagent sieht Ihren Konversationsverlauf nicht, daher müssen die Anweisungen des Skills für sich allein stehen.
Trotz des Namens läuft ein Skill mit
context: fork nicht in einem Fork der aktuellen Konversation, der dem Subagenten alles übergeben würde, was Sie bisher besprochen haben. Wenn die Aufgabe von diesem Verlauf abhängt, forken Sie die Konversation, statt context: fork zu verwenden.background: false im Frontmatter, um stattdessen im Turn, der den Skill aufgerufen hat, auf das Ergebnis zu warten.
Claude Code wartet auch dann auf das Ergebnis, wenn der Skill background: false nicht setzt, etwa in folgenden Fällen:
- Im nicht interaktiven Modus, mit dem Flag
-poder dem Agent SDK - Wenn Sie
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSauf1setzen, wodurch auch andere Funktionen für Hintergrundaufgaben deaktiviert werden - Wenn Sie einen geforkten Skill aufrufen, während ein früherer Aufruf desselben Skills noch läuft
- Wenn eine sitzungsbezogene geplante Aufgabe mit dem Skill als Prompt ausgelöst wird
background: false nicht setzt. Vor v2.1.295 wartete dieser Agent nicht auf den Skill, wenn er im Hintergrund lief. Das Ergebnis des Skills erschien dann in Ihrer Hauptkonversation, statt den Agenten zu erreichen.
Ein in den Hintergrund verschobener Fork läuft außerdem mit der eingeschränkteren Tool-Menge, die für Hintergrund-Subagenten gilt: Der Subagent des Skills ist ein regulärer Agententyp, daher greift die Ausnahme für Subagenten, die die Konversation forken, hier nicht. Wenn die Schritte Ihres Skills von einem Tool außerhalb dieser Menge abhängen, setzen Sie background: false, um die vollständige Tool-Menge zu behalten.
Ein geforkter Skill, der im Hintergrund läuft, wendet seine Änderungen außerhalb der Checkpoints Ihrer Sitzung an. Danach stellt /rewind nur die Dateien wieder her, die Claude bereits in Ihrer Konversation bearbeitet hatte. Die Änderungen des Skills an anderen Dateien bleiben bestehen, verwenden Sie also git, um sie rückgängig zu machen.
Skills und Subagenten arbeiten in zwei Richtungen zusammen:
Mit
context: fork schreiben Sie die Aufgabe in Ihren Skill und wählen einen Agententyp, der sie ausführt. Die integrierten Agenten Explore und Plan starten ohne CLAUDE.md und git status, um ihren Kontext klein zu halten. Legen Sie alles, was die Aufgabe benötigt, in Ihre SKILL.md. Ein geforkter Skill mit agent: Explore startet mit diesem Inhalt und dem eigenen System-Prompt des Agenten, aber ohne eine Ihrer CLAUDE.md-Dateien.
Für den umgekehrten Fall, in dem Sie einen benutzerdefinierten Subagenten definieren, der Skills als Referenzmaterial verwendet, siehe Subagenten.
Beispiel: Recherche-Skill mit dem Explore-Agenten
Dieser Skill führt eine Recherche in einem geforkten Explore-Agenten aus. Der Skill-Inhalt wird zur Aufgabe, und der Agent stellt nur lesende Tools bereit, die für die Erkundung der Codebasis optimiert sind:- Ein neuer isolierter Kontext wird erstellt
- Der Subagent erhält den Skill-Inhalt als Prompt (die Anweisungen „Research $ARGUMENTS thoroughly“)
- Das Feld
agentbestimmt die Ausführungsumgebung (Modell, Tools und Berechtigungen) - Der Subagent fasst seine Ergebnisse zusammen und gibt sie an Ihre Hauptkonversation zurück, wenn er fertig ist
agent legt fest, welche Subagenten-Konfiguration verwendet wird. Zur Auswahl stehen integrierte Agenten (Explore, Plan, general-purpose) oder jeder benutzerdefinierte Subagent aus .claude/agents/. Wird es weggelassen, wird general-purpose verwendet.
Claudes Zugriff auf Skills einschränken
Standardmäßig kann Claude jeden Skill aufrufen, für den nichtdisable-model-invocation: true gesetzt ist. Skills, die allowed-tools definieren, gewähren Claude während des Turns, der den Skill aufruft, Zugriff auf diese Tools ohne Genehmigung bei jeder Verwendung; die Freigabe erlischt, wenn Sie Ihre nächste Nachricht senden. Ihre Berechtigungseinstellungen regeln weiterhin das grundlegende Genehmigungsverhalten für alle anderen Tools. Einige integrierte Befehle sind ebenfalls über das Skill-Tool verfügbar, darunter /init und /security-review. Andere integrierte Befehle wie /compact sind es nicht.
Drei Möglichkeiten, zu steuern, welche Skills Claude aufrufen kann:
Alle Skills deaktivieren, indem Sie das Skill-Tool in /permissions verweigern:
Skill(name) für eine exakte Übereinstimmung, Skill(name *) für eine Präfixübereinstimmung mit beliebigen Argumenten.
Die Tabelle zeigt, was eine deny-Regel über den von Ihnen geschriebenen Namen hinaus blockiert, abhängig von der Art des Namens in der Regel.
Vor v2.1.260 blockierte Claude Code einen verschachtelten Skill, der unter seinem qualifizierten Namen aufgeführt war, nicht, wenn die deny-Regel nur den nicht qualifizierten Namen nannte.
Claude Code gleicht eine
allow-Regel nur mit dem eigenen Namen des Skills und dem Namen in Claudes Aufruf ab. Um einen synchronisierten Skill ohne Berechtigungsabfrage zu genehmigen, nennen Sie ihn innerhalb seines reservierten Namensraums:
Skill(anthropic-skills:pdf)genehmigt den synchronisierten SkillpdfSkill(anthropic-skills *)genehmigt jeden synchronisierten SkillSkill(anthropic *)decktanthropic-skills:pdfnicht ab, da ein Präfix außerhalb des Namensraums nicht auf die Namen darin zutrifft
disable-model-invocation: true hinzufügen. Dadurch wird der Skill vollständig aus Claudes Kontext entfernt.
Mit
user-invocable: false können Sie den Skill nicht aufrufen, Claude jedoch schon. Um zu verhindern, dass Claude ihn über das Skill-Tool aufruft, setzen Sie disable-model-invocation: true.Skill-Sichtbarkeit über Einstellungen überschreiben
Die EinstellungskillOverrides steuert die Sichtbarkeit von Skills über Ihre Einstellungen statt über das eigene Frontmatter des Skills. Verwenden Sie sie für Skills, deren SKILL.md Sie nicht bearbeiten möchten, etwa solche, die in ein gemeinsames Projekt-Repository eingecheckt sind. Das Menü /skills schreibt sie für Sie: Markieren Sie einen Skill und drücken Sie Space, um die Zustände durchzuschalten, und anschließend Esc, um in .claude/settings.local.json zu speichern.
Jeder Schlüssel ist ein Skill-Name und jeder Wert einer von vier Zuständen:
Das Menü
/skills bezeichnet den Zustand "user-invocable-only" als user-only.
"off" blendet den Skill zusätzlich zum /-Menü im Terminal auch aus den Befehlslisten aus, die Remote Control-Clients und Aufrufern des Agent SDK angeboten werden. Wenn Sie einen ausgeblendeten Skill über seinen vollständigen Namen aufrufen, wird der skillOverrides-Fehler zurückgegeben, statt ihn auszuführen.
Ein Skill, der in skillOverrides fehlt, wird als "on" behandelt. Das folgende Beispiel reduziert einen Skill auf seinen Namen und schaltet einen anderen vollständig aus:
checkup für /doctor. Wenn Sie einen skillOverrides-Eintrag unter einem Alias in verwalteten Einstellungen oder in einer Datei setzen, die Sie mit dem Flag --settings übergeben, wendet Claude Code ihn auf den Skill hinter dem Alias an. Über einen Alias können Sie einen Skill nur weiter einschränken, niemals sichtbarer machen, und wenn Sie in verwalteten Einstellungen auch einen Eintrag unter dem eigenen Namen des Skills setzen, hat dieser Eintrag Vorrang. Vor v2.1.260 wendete Claude Code einen Eintrag unter einem Alias in keiner Einstellungsquelle auf den Skill an.
In Benutzer-, Projekt- und lokalen Einstellungen gleicht Claude Code Einträge nur mit Skill-Namen ab. Wenn Sie dort einen Eintrag für review setzen, gilt er für einen Skill namens review, nicht für das mitgelieferte /code-review über seinen Alias /review.
Plugin-Skills sind von skillOverrides nicht betroffen. Verwalten Sie diese stattdessen über /plugin.
Ungenutzte Skills finden
Jeder Skill in der Skill-Liste vergrößert Ihren Kontext in jedem Turn, unabhängig davon, ob Claude ihn jemals verwendet. Führen Sie/skill-doctor aus, um zu sehen, was jeder Ihrer Skills kostet und wie oft er verwendet wird, damit Sie entscheiden können, welche Sie ausschalten. In einer interaktiven Sitzung öffnet sich der Bericht im Tab Stats des /plugin-Managers. Im nicht interaktiven Modus mit -p gibt Claude Code ihn als Text aus.
Der Bericht umfasst die Skills in Ihrer Sitzung mit Ausnahme mitgelieferter Skills und Enterprise-Skills. Er kennzeichnet Skills in der Liste, die noch nie aufgerufen wurden, und gibt an, wo Sie sie ausschalten können. Beginnen Sie unter den Skills, für die er angibt, wo Sie sie ausschalten können, mit denen mit den höchsten Kontextkosten. Der Bericht listet außerdem Plugins auf, die Sie in letzter Zeit nicht verwendet haben.
/skill-doctor erfordert Claude Code v2.1.252 oder höher und ist in Sitzungen, die das Abrufen von Feature-Flags überspringen, nicht verfügbar. Wenn Sie /skill-doctor über Remote Control von Ihrem Telefon oder Browser aus ausführen, antwortet Claude Code stattdessen mit Skill usage reports are not available on this connection.. Führen Sie /skill-doctor im Terminal auf dem Rechner aus, auf dem die Sitzung läuft.
Skill evaluieren und iterieren
Das Sehen eines Skill-Triggers zeigt dir, dass Claude ihn gefunden hat, nicht dass er das getan hat, was du beabsichtigt hast. Um zu wissen, dass ein Skill funktioniert, musst du zwei Dinge separat messen: ob Claude ihn bei den Prompts aufruft, bei denen er sollte, und ob die Ausgabe dem entspricht, was du erwartest, wenn er es tut. Die Überprüfung beider ist ein Baseline-Vergleich. Sammle ein paar realistische Prompts, führe jeden in einer neuen Sitzung mit dem verfügbaren Skill aus und wiederhole dies mit ihm deaktiviert, und vergleiche die Ergebnisse. Eine neue Sitzung ist wichtig, da der verbleibende Kontext aus der Erstellung des Skills Lücken in den geschriebenen Anweisungen verdeckt. Wie du den Skill für den zweiten Durchlauf deaktivierst, hängt davon ab, woher er kommt:- Persönlicher oder Projekt-Skill: Setze ihn auf
"off"inskillOverrides. - Skill, den ein Plugin bereitstellt:
skillOverridesgilt nicht für Plugin-Skills. Verwende stattdessenclaude plugin eval, das jeden Durchlauf ohne geladenes Plugin wiederholt.
claude plugin eval jeden Prompt in einer isolierten Sitzung mit und ohne das Plugin aus, bewertet ihn mit Gradern, die du definierst oder die er für dich schreibt, und beendet sich mit einem Nicht-Null-Wert unterhalb eines Schwellwerts, sodass du CI darauf abstimmen kannst. Um an einem einzelnen Skill in einer Claude Code-Konversation zu iterieren, führt das unten stehende skill-creator-Plugin eine ähnliche Schleife mit seinem eigenen evals/evals.json-Format aus. Die beiden Formate sind nicht austauschbar.
Evals mit skill-creator ausführen
Dasskill-creator-Plugin automatisiert die Vergleichsschleife in Claude Code. Installieren Sie es in der VS Code-Erweiterung oder der Desktop-App vom offiziellen Marketplace, indem Sie Plugin installieren folgen. Starten Sie Claude Code in einem Terminal mit claude und geben Sie dann Folgendes in dessen Eingabeaufforderung ein:
Marketplace "claude-plugins-official" not found: Füge den Marketplace mit/plugin marketplace add anthropics/claude-plugins-officialhinzu und versuche dann die Installation erneut.Plugin "<name>" not found in marketplace "claude-plugins-official": Ihre lokale Kopie des Marketplace-Katalogs ist möglicherweise veraltet. Aktualisieren Sie sie mit/plugin marketplace update claude-plugins-officialund versuchen Sie die Installation dann erneut. Wenn der erneute Versuch dieselbe Meldung ausgibt, lesen Sie Plugin nicht im Marketplace gefunden.
Run /reload-plugins to apply. meldet, führt Claude Code diesen Reload anschließend für Sie aus. Wenn der Reload warnt, dass Ihre nächste Nachricht die Konversation erneut einlesen würde, führen Sie /reload-plugins --force aus, um die Skills des Plugins in der aktuellen Sitzung verfügbar zu machen. Bitten Sie Claude dann, einen vorhandenen Skill zu evaluieren, zum Beispiel evaluate my summarize-changes skill with skill-creator. Das Plugin führt Sie durch das Schreiben von Testfällen und führt die Schleife aus:
- Testfälle: speichert Prompts, Eingabedateien und erwartetes Verhalten in
evals/evals.jsonim Skill-Verzeichnis - Isolierte Ausführungen: spawnt einen Subagent pro Testfall, sodass jede Ausführung mit einem sauberen Kontext beginnt, und zeichnet Token-Anzahl und Dauer auf
- Bewertung: überprüft jede Assertion gegen die Ausgabe und schreibt Bestanden oder Nicht bestanden mit Beweis in
grading.json - Benchmark: aggregiert Erfolgsquote, Zeit und Tokens für mit-Skill versus ohne-Skill in
benchmark.json, sodass du die Verbesserung der Erfolgsquote gegen den Token- und Zeit-Overhead vergleichen kannst - Versionsvergleich: führt einen blinden A/B zwischen zwei Versionen des Skills durch, sodass du bestätigen kannst, dass eine Bearbeitung eine Verbesserung ist, bevor du sie commitest
- Beschreibungsoptimierung: generiert sollte-auslösen und sollte-nicht-auslösen Prompts, misst die Trefferquote und schlägt Beschreibungsbearbeitungen vor, wenn der Skill bei falschen Anfragen aktiviert wird
- Review-Viewer: öffnet einen HTML-Bericht, in dem du jede Ausgabe inspizieren und qualitatives Feedback aufzeichnen kannst, das die nächste Iteration liest
Fähigkeiten teilen
Fähigkeiten können je nach Zielgruppe in verschiedenen Bereichen verteilt werden:- Projektfähigkeiten: Commit
.claude/skills/zur Versionskontrolle - Plugins: Erstellen Sie ein
skills/-Verzeichnis in Ihrem Plugin - Verwaltet: Bereitstellung organisationsweit über verwaltete Einstellungen
Visuelle Ausgabe generieren
Fähigkeiten können Skripte in jeder Sprache bündeln und ausführen und Claude Funktionen geben, die über das hinausgehen, was in einer einzelnen Eingabeaufforderung möglich ist. Ein Muster ist die Generierung visueller Ausgabe: interaktive HTML-Dateien, die in Ihrem Browser geöffnet werden, um Daten zu erkunden, Fehler zu beheben oder Berichte zu erstellen. Dieses Beispiel erstellt einen Codebase-Explorer: eine interaktive Baumansicht, in der Sie Verzeichnisse erweitern und reduzieren können, Dateigröße auf einen Blick sehen und Dateitypen nach Farbe identifizieren können. Erstellen Sie das Fähigkeitsverzeichnis:~/.claude/skills/codebase-visualizer/SKILL.md. Die Beschreibung teilt Claude mit, wann diese Fähigkeit aktiviert werden soll, und die Anweisungen teilen Claude mit, das gebündelte Skript auszuführen. Der Skriptpfad verwendet ${CLAUDE_SKILL_DIR}, damit er korrekt aufgelöst wird, unabhängig davon, ob die Fähigkeit auf persönlicher, Projekt- oder Plugin-Ebene installiert ist:
~/.claude/skills/codebase-visualizer/scripts/visualize.py. Dieses Skript scannt einen Verzeichnisbaum und generiert eine in sich geschlossene HTML-Datei mit:
- Eine Zusammenfassungs-Seitenleiste mit Dateianzahl, Verzeichnisanzahl, Gesamtgröße und Anzahl der Dateitypen
- Ein Balkendiagramm, das die Codebase nach Dateityp aufschlüsselt (Top 8 nach Größe)
- Ein zusammenklappbarer Baum, in dem Sie Verzeichnisse erweitern und reduzieren können, mit farbcodierten Dateityp-Indikatoren
Generated /path/to/codebase-map.html, und öffnet es in Ihrem Browser. Wenn Sie in einer Umgebung ohne Kopf arbeiten, in der kein Browser geöffnet wird, bestätigt der gedruckte Pfad, dass das Skript erfolgreich war.
Dieses Muster funktioniert für jede visuelle Ausgabe: Abhängigkeitsgraphen, Testabdeckungsberichte, API-Dokumentation oder Datenbankschema-Visualisierungen. Das gebündelte Skript erledigt die Arbeit, während Claude die Orchestrierung übernimmt.
Fehlerbehebung
Skill wird nicht ausgelöst
Wenn Claude Ihren Skill nicht wie erwartet verwendet:- Überprüfen Sie, dass die Beschreibung Schlüsselwörter enthält, die Benutzer natürlicherweise sagen würden
- Stellen Sie sicher, dass der Skill in
What skills are available?angezeigt wird - Versuchen Sie, Ihre Anfrage umzuformulieren, um sie besser an die Beschreibung anzupassen
- Rufen Sie ihn direkt mit
/skill-nameauf, wenn der Skill vom Benutzer aufgerufen werden kann - Wenn auch
/skill-namenicht erkannt wird, prüfen Sie, ob Claude Code den Namen des Skills abgelehnt hat - Wenn der Skill
pathsfestlegt, prüfen Sie, ob sich die Dateien, die Claude liest, bearbeitet oder schreibt, im aktuellen Arbeitsverzeichnis von Claude befinden. Für Dateien außerhalb davon wird der Skill nicht aktiviert, etwa für Dateien in einem benachbarten Git-Worktree, selbst wenn Sie diesen mit/add-dirhinzugefügt haben. Damit der Skill für diese Dateien aktiviert wird, starten Sie Claude Code in diesem Worktree oder verschieben Sie die Sitzung mit/cddorthin.
/skill-name weiterhin funktioniert, aber Claude keine description zum Abgleichen hat. Führen Sie mit --debug aus, um den Parse-Fehler zu sehen.
Wenn der Skill in einem Plugin enthalten ist, können Sie messen, wie oft er bei realistischen Prompts ausgelöst wird, anstatt ihn einzeln zu überprüfen: Schreiben Sie einen Eval-Fall mit einem tool_used: Skill Grader und führen Sie ihn mit claude plugin eval nach jeder Beschreibungsänderung aus.
Um SKILL.md-Dateien zu finden, deren Frontmatter nicht geparst wird, führen Sie claude plugin validate im Skills-Verzeichnis aus, beispielsweise claude plugin validate .claude/skills für Projekt-Skills oder claude plugin validate ~/.claude/skills für persönliche Skills. Erfordert Claude Code v2.1.233 oder später.
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
Claude folgt einem Skill nicht mehr
Wenn Claude einem Skill in seiner ersten Antwort folgt und später damit aufhört, beginnen Sie mit dem Fall, der passt:- Claude hat eine Regel übersprungen, die jedes Mal gelten muss: Verschieben Sie die Regel in einen Hook. Claude Code führt einen Hook jedes Mal aus, wenn sein Ereignis auftritt, z. B. vor jeder Dateibearbeitung, unabhängig davon, ob Claude dem Skill folgt oder nicht. Um die Regel mit dem Skill zu behalten, definieren Sie den Hook in der
hooksFrontmatter des Skills. Dieser Hook gilt ab dem Zeitpunkt, an dem der Skill aufgerufen wird, bis die Sitzung endet. - Claude hat Anleitung übersprungen, die es mit Urteilsvermögen anwenden sollte: Formulieren Sie die Anleitung so, dass sie für die gesamte Aufgabe gilt, z. B. „Tests nach jeder Bearbeitung ausführen“ anstelle von „Tests ausführen“. Claude Code fügt den Inhalt des Skills zum Gespräch hinzu, wenn der Skill aufgerufen wird, und liest die Datei später nicht erneut.
- Das Gespräch wurde komprimiert: Rufen Sie den Skill erneut auf, um seinen vollständigen Inhalt wiederherzustellen. Nach Komprimierung kann Claude Code nur den Anfang eines aufgerufenen Skills behalten, daher platzieren Sie die wichtigsten Anweisungen oben in
SKILL.md.
Skill-Beschreibungen werden gekürzt
Claude Code lädt eine Auflistung von Skill-Namen und Beschreibungen in den Kontext, damit Claude weiß, was verfügbar ist. Die Auflistung enthält immer jeden Skill-Namen, aber wenn Sie viele Skills haben, kürzt Claude Code die Beschreibungen, um in das Zeichenbudget der Auflistung zu passen, was die Schlüsselwörter entfernen kann, die Claude zum Abgleichen Ihrer Anfrage benötigt. Das Budget skaliert mit 1 % des Kontextfensters des Modells. Wenn die Auflistung überläuft, löscht Claude Code Beschreibungen beginnend mit den Skills, die Sie am wenigsten aufrufen, sodass die Skills, die Sie am meisten verwenden, ihren vollständigen Text behalten. Führen Sie/doctor aus, um eine Schätzung der Kontextkosten der Auflistung und ihrer größten Beitragenden zu erhalten. Um Skills zu finden, die sich lohnen auszuschalten, führen Sie /skill-doctor aus. Wenn die Auflistung ihr Budget überschreitet, schreibt Claude Code auch eine Warnung in das Debug-Protokoll, das mit --debug sichtbar ist.
Die Skills-Zeile in /context meldet die Größe der Auflistung nach Anwendung des Budgets, sodass sie dem entspricht, was das Modell erhält. Vor v2.1.196 zählte die Zeile den vollständigen Text jeder Beschreibung und konnte einen Wert anzeigen, der mehrmals größer als das konfigurierte Budget war.
Um das Budget zu erhöhen, legen Sie die Einstellung skillListingBudgetFraction (z. B. 0.02 = 2 %) oder die Umgebungsvariable SLASH_COMMAND_TOOL_CHAR_BUDGET auf eine feste Zeichenanzahl fest. Um Budget für andere Skills freizugeben, legen Sie Einträge mit niedriger Priorität auf "name-only" in skillOverrides fest, sodass 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 zuerst, da der kombinierte Text jedes Eintrags unabhängig vom Budget auf 1.536 Zeichen begrenzt ist. Die Obergrenze ist mit skillListingMaxDescChars konfigurierbar.
Spitze Klammern in einer Skill-Beschreibung werden als < und > angezeigt
Claude Code zeigt < und > in den Feldern description und when_to_use als < und > an. Um einen Platzhalter wie <branch> anzuzeigen, verwenden Sie eckige Klammern oder argument-hint:
- Eckige Klammern: Ersetzen Sie
<branch>durch[branch], was so angezeigt wird, wie es eingegeben wurde argument-hint: Verschieben Sie den Platzhalter in eine neue Zeileargument-hint: <branch>. Er wird nach dem Befehlsnamen angezeigt. Wenn Sie den Skill auch auf claude.ai oder in die Skills API hochladen, prüfen Sie zuerst, obargument-hintdort akzeptiert wird.
Persönliche Skills sind verschwunden
Wenn Skill-Ordner, die Sie in~/.claude/skills/ erstellt haben, weg sind, schauen Sie in ~/.claude/skills/.trash/. Wenn Claude Code Skills von claude.ai synchronisiert, lädt es sie in den separaten synced-Unterordner herunter und verschiebt oder löscht nicht die Ordner, die Sie erstellen.
Vor v2.1.280 führte eine Datei namens manifest.json in ~/.claude/skills/ dazu, dass Claude Code die Skill-Ordner, die diese Datei auflistete, in einen mit Zeitstempel versehenen Ordner unter ~/.claude/skills/.trash/ verschob, und diese Skills wurden nicht mehr geladen.
Um einen Skill wiederherzustellen, verschieben Sie seinen Ordner aus dem mit Zeitstempel versehenen Ordner zurück in ~/.claude/skills/. Tun Sie dies vor dem Aufbewahrungssweep, der Trash-Einträge löscht, standardmäßig 30 Tage nach dem Verschieben in den Papierkorb.
Verwandte Ressourcen
- Debuggen Sie Ihre Konfiguration: Diagnostizieren Sie, warum ein Skill nicht angezeigt oder ausgelöst wird
- Evaluating skill output quality: das Eval-Dateiformat und Iterations-Workflow auf agentskills.io
- Skill authoring best practices: Schreibanleitung, die über Claude-Produkte hinweg gilt
- 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
- Claude Tag Skills: Projekt-Skills, die in ein Repository übernommen wurden, werden auch geladen, wenn dieses Repository in einem Claude Tag-Kanal verwendet wird