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 gebündelten Skill auf die gleiche Weise auf wie jeden anderen Skill, indem Sie / gefolgt vom Skill-Namen eingeben. Claude ruft einige gebündelte Skills automatisch auf, wenn sie relevant sind; andere, einschließlich /verify, werden nur ausgeführt, wenn Sie sie aufrufen, was Ihnen die Kontrolle darüber gibt, wann diese längeren Überprüfungen Zeit und Token aufwenden.
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 eingabbar, wenn disableBundledSkills aktiviert ist, in Claude Code v2.1.205 und später. Um sie auszublenden, setzen Sie die Umgebungsvariable DISABLE_DOCTOR_COMMAND oder einen skillOverrides-Eintrag von "doctor": "off". Vor v2.1.205 war /doctor ein integrierter Befehl und kein gebündelter Skill.Führen Sie Ihre App aus und überprüfen Sie sie
Drei gebündelte 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 das aufgezeichnete Skill den gebündelten /verify. Dies erfordert Claude Code v2.1.200 oder später.
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. Vor v2.1.205 sagte der gebündelte Skill Claude, dass es alles einbeziehen sollte, was ein Lauf gelernt hat, was häufige Merge-Konflikte verursachte.
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. - 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 eine
.claude-plugin/plugin.jsonzu einem Skill-Ordner hinzu und er wird als Plugin mit dem Namen<name>@skills-dirgeladen, sodass er Agents, Hooks und MCP-Server bündeln kann. In einem Projekt’s.claude/skills/ist dies erforderlich, um zuerst das Workspace-Trust-Dialogfeld zu akzeptieren.
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, 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.
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.
Skills auflösen, die denselben Namen haben
Wenn zwei Skills denselben Namen haben, entscheidet, woher jeder kam, welcher/name ausführt. Für einen Namen, der durch das Frontmatter-Feld name festgelegt wird, siehe Wie ein Skill seinen Befehlsnamen erhält. Die Tabelle behandelt die Enterprise-, Personal-, Projekt-, verschachtelte, Plugin- und claude.ai-Speicherorte, gebündelte Skills und Befehlsdateien:
Skills in Cowork- und Cloud-Sitzungen verwenden
Cowork-Sitzungen und Cloud-Sitzungen, einschließlich Routinen, 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. Cloud-Sitzungen laden zusätzlich Projekt-Skills, die in .claude/skills/ des geklonten Repositorys committet sind.
Wenn ein Skill nur in ~/.claude/skills/ auf Ihrer Maschine vorhanden ist, meldet Claude Code, dass der Skill nicht gefunden wurde, wenn eine Routine ihn aufruft, da jede Routine-Ausführung als frische Cloud-Sitzung startet. Um einen persönlichen Skill in diesen Sitzungen verfügbar zu machen:
- Für Cowork- und Cloud-Sitzungen aktivieren Sie den Skill für Ihr claude.ai-Konto.
- Für Cloud-Sitzungen 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 etwa alle 10 Minuten auf Änderungen auf claude.ai, während die Sitzung läuft. 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.
Die Synchronisierung verzögert niemals den Start, da Claude auf den Download eines Skills nur wartet, wenn er diesen Skill aufruft. Ein kurzer nicht-interaktiver Lauf kann daher beendet werden, bevor ein neu hinzugefügter Skill heruntergeladen wird. In diesem Fall lädt eine spätere Sitzung ihn herunter. Um einen nicht-interaktiven Lauf dazu zu bringen, Ihre Skills herunterzuladen und auf die Liste zu warten, bevor er die Eingabeaufforderung beantwortet, setzen Sie CLAUDE_CODE_SYNC_SKILLS auf 1.
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:- Claude Code respektiert die Frontmatter in jeder Art von Sitzung, daher geht eine
allowed-tools-Gewährung durch den normalen Berechtigungsfluss. - 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 die Fähigkeit 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.
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.
Boolesche Felder akzeptieren yes, no, on, off, 1 und 0 in beliebiger Schreibweise, zusätzlich zu true und false. Vor v2.1.218 erkannte Claude Code nur true und false.
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 eine persönliche Fähigkeit für Ihr claude.ai-Konto aktivieren, um sie beispielsweise in Cowork- und Cloud-Sitzungen und Routinen zu verwenden, laden Sie sie auf claude.ai hoch, sodass die gleichen Regeln gelten.
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.
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.
Die ${CLAUDE_PROJECT_DIR}-Substitution erfordert Claude Code v2.1.196 oder später.
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: Nur Sie können die Fähigkeit aufrufen. Verwenden Sie dies für Workflows mit Nebenwirkungen oder die Sie zeitlich kontrollieren 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 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 die Fähigkeit 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.
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 eine Fähigkeit nach der ersten Antwort zu beeinflussen zu stoppen 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 der Fähigkeit, damit das Modell sie weiterhin bevorzugt, oder verwenden Sie Hooks, um Verhalten deterministisch zu erzwingen. Wenn die Fähigkeit groß ist oder Sie mehrere andere danach aufgerufen haben, rufen Sie sie nach der Komprimierung erneut auf, um den vollständigen Inhalt wiederherzustellen.
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 gatet dieses Feld nicht. Claude Code wendet die allowed-tools einer Projektfähigkeit an, wann immer Sie oder Claude die Fähigkeit aufrufen, einschließlich in einem -p-Lauf in einem Ordner, dem Sie nie vertraut haben. Eine Fähigkeit kann sich selbst breiten Tool-Zugriff gewähren, daher überprüfen Sie die allowed-tools von Fähigkeiten, die in ein Repository eingecheckt sind, bevor Sie Claude Code dort ausführen.
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.
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.
Sie können auch mehrere Fähigkeiten am Anfang einer Nachricht stapeln. Das Eingeben von /write-tests /fix-issue 123 lädt beide Fähigkeiten und übergibt den nachfolgenden Text 123 als $ARGUMENTS an jede von ihnen. Vor v2.1.199 wurde nur die erste Fähigkeit geladen und erhielt /fix-issue 123 als Literalargumenttext.
Claude Code expandiert die erste Fähigkeit plus bis zu fünf weitere, die danach gestapelt sind. Die Expansion stoppt beim ersten Token, das keine Inline-Benutzer-aufgerufene Fähigkeit ist, sodass eine Fähigkeit, die als verzweigter Subagent ausgeführt wird, wie /code-review, oder eine, deren Argumente selbst mit einem Schrägstrich-Befehl beginnen können, wie /loop, auch dort endet. Dieser Token und alles danach werden der Argumenttext für jede expandierte Fähigkeit. /code-review wird ab v2.1.218 als verzweigter Subagent ausgeführt; in früheren Versionen wurde es inline ausgeführt und gestapelt.
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:
Erweiterte Muster
Dynamischen Kontext injizieren
Die Syntax!`<command>` 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. Claude Code führt diese Befehle auf Ihrem Computer nicht aus, wenn der Skill von Ihrem claude.ai-Konto synchronisiert wird. Diese Einschränkung erfordert Claude Code v2.1.228 oder später.
Dieser Skill fasst einen Pull Request zusammen, indem er Live-PR-Daten mit der GitHub CLI abruft. Die Befehle !`gh pr diff` und andere werden zuerst ausgeführt, und ihre Ausgabe wird in den Prompt eingefügt:
!`<command>`-Platzhaltern gescannt, sodass ein Befehl keinen Platzhalter für einen späteren Durchgang ausgeben kann.
Die Inline-Form wird nur erkannt, wenn ! am Anfang einer Zeile oder unmittelbar nach Leerzeichen erscheint. Wenn ! auf ein anderes Zeichen folgt, wie in KEY=!`cmd`, wird der Platzhalter als Literaltext belassen und der Befehl wird nicht ausgeführt.
Verwenden Sie für mehrzeilige Befehle einen eingezäunten Code-Block, der mit ```! statt der Inline-Form geöffnet wird:
"disableSkillShellExecution": true in settings. Jeder Befehl wird durch [shell command execution disabled by policy] ersetzt, anstatt ausgeführt zu werden. Gebündelte und verwaltete Skills sind nicht betroffen. Diese Einstellung ist am nützlichsten in verwalteten Einstellungen, wo Benutzer sie nicht überschreiben können.
Claude Code führt diese Befehle auf Ihrem Computer niemals aus, wenn sie in Skills von Ihrem claude.ai-Konto synchronisiert werden, unabhängig von dieser Einstellung. Diese Einschränkung erfordert Claude Code v2.1.228 oder später. Wie Claude Code den Text eines synchronisierten Skills verarbeitet sagt, was Claude anstelle des Befehls in jeder Art von Sitzung erhält.
Wie injizierte Befehle ausgeführt werden
Claude Code wählt das Tool, das die injizierte Befehle eines Skills ausführt, aus demshell-Schlüssel in der Frontmatter des Skills und Ihrer Umgebung aus. Jede Kombination führt die Befehle durch das Bash-Tool oder das PowerShell-Tool aus, mit Ausnahme einer Kombination, die den Aufruf sofort fehlschlagen lässt:
shell: powershell, mit dem PowerShell-Tool aktiviert: Die Befehle werden durch das PowerShell-Tool ausgeführt.shell: bash, wenn bash nicht verfügbar ist: Der Aufruf schlägt fehl, bevor ein Befehl ausgeführt wird. Dies geschieht unter Windows ohne Git Bash. Claude Code zeigtSkill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found.- Jede andere Kombination: Die Befehle werden durch das Bash-Tool ausgeführt, wenn bash verfügbar ist. Wenn nicht, werden sie durch das PowerShell-Tool ausgeführt.
- Arbeitsverzeichnis: Claude Code führt jeden Befehl im aktuellen Arbeitsverzeichnis der Session-Shell aus. Dieses Verzeichnis wechselt, wenn Claude
cdausführt. Verwenden Sie${CLAUDE_SKILL_DIR}oder${CLAUDE_PROJECT_DIR}in Pfaden, die sich jedes Mal auf die gleiche Weise auflösen müssen. - stderr: Mit der Standard-
bash-Shell führt Claude Code stderr in stdout zusammen. Alles, was der Befehl in stderr schreibt, erscheint im eingefügten Text. - Timeout: Jeder Befehl wird unter dem Standard-2-Minuten-Timeout des Bash-Tools ausgeführt. Wenn das Bash-Tool einen Befehl mit Timeout in den Hintergrund verschiebt, wird der Skill trotzdem gerendert. Der eingefügte Text meldet die Verschiebung und nennt die Hintergrund-Task und die Datei, die die Ausgabe des Befehls sammelt. Wenn der Befehl einer ist, den das Bash-Tool niemals automatisch in den Hintergrund verschiebt, beendet Claude Code ihn beim Timeout. Dieser Fehler bricht den Aufruf ab.
- Ausgabegröße: Ausgabe, die die Inline-Obergrenze des Bash-Tools überschreitet, kommt als Dateipfad plus kurze Vorschau an, nicht als gekürzter Text. Ausgabegrenzen behandelt die Obergrenze und wie man jede Grenze anpasst.
Wenn ein injizierter 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. Der Abbruch zeigtShell command failed for pattern "...". Die Fehlermeldung enthält die Ausgabe des Befehls unter [stderr].
Mit der Standard-bash-Shell zählt jeder Exit-Code ungleich Null als Fehler. Eine Ausnahme gilt: Claude Code behandelt Exit-Code 1 von Such- und Vergleichsbefehlen als normales Ergebnis und fügt ihre Ausgabe ein. Exit-Codes von 2 oder höher schlagen auch für diese Befehle fehl.
Welche Befehle die Ausnahme erhalten, hängt von der Shell ab:
- Standard-
bash-Shell: Die Befehle, die unter Ausgabegrenzen aufgelistet sind shell: powershell, wenn das PowerShell-Tool aktiviert ist: Ein anderer Satz, dergrepundgit diffenthält, aber nichtfindoderdiff
bash-Shell fügen Sie || true an jeden anderen Befehl an, von dem Sie erwarten, dass er mit einem Exit-Code ungleich Null endet. Ein Überprüfungsskript, das 1 beendet, wenn es Probleme findet, ist ein Beispiel.
Berechtigungsprüfungen für injizierte Befehle
Injizierte Befehle fordern niemals Genehmigung an, während der Skill gerendert wird. Claude Code prüft jeden gegen Ihre Berechtigungsregeln zuerst. Ein Befehl, den eine Deny-Regel erfasst, bricht den Aufruf mitShell command permission check failed for pattern "..." ab.
Außerhalb des Auto-Modus, wenn die Berechtigungsprüfung eines Befehls etwas anderes als Zulassung zurückgibt, bricht Claude Code den Aufruf ab. Dies schließt eine Regel ein, die normalerweise fragen würde. Um zu verhindern, dass ein nicht übereinstimmender Befehl hier abbricht, genehmigen Sie ihn vorher mit allowed-tools. Deny- und Ask-Regeln überschreiben immer noch allowed-tools. Siehe Berechtigungen verwalten.
Im Auto-Modus bricht ein Befehl, der sonst Ihre Genehmigung benötigen würde, den Aufruf nicht ab. Der Skill wird mit einer Anweisung geladen, die Claude anweist, den Befehl zuerst auszuführen, und Claudes eigener Aufruf wird dann durch die üblichen Prüfungen des Auto-Modus durchgeführt. Der Aufruf bricht immer noch in einem verzweigten Skill ab, der agent setzt, und in einer Sitzung, in der Claude nicht das Shell-Tool hat, das injizierte Befehle ausführt.
Skills in einem Subagenten ausführen
Fügen Siecontext: fork zu Ihrer Frontmatter hinzu, wenn Sie möchten, dass ein Skill isoliert ausgeführt wird. Claude Code startet einen neuen Subagenten des im agent-Feld festgelegten Typs und gibt ihm den Skill-Inhalt als seinen Prompt. Der Subagent sieht Ihren Gesprächsverlauf nicht, daher müssen die Anweisungen des Skills eigenständig sein.
Trotz des Namens wird ein Skill mit
context: fork nicht in einer Verzweigung des aktuellen Gesprächs ausgeführt, was dem Subagenten alles geben würde, das Sie bisher besprochen haben. Wenn die Task von diesem Verlauf abhängt, verzweigen Sie das Gespräch, anstatt context: fork zu verwenden.background: false in der Frontmatter, um stattdessen auf das Ergebnis in dem Zug zu warten, der den Skill aufgerufen hat. Vor v2.1.218 blockierten verzweigte Skills den Zug immer, bis sie fertig waren.
Claude Code wartet auch auf das Ergebnis, selbst wenn der Skill background: false nicht setzt, in Fällen wie diesen:
- Im nicht-interaktiven Modus mit dem
-p-Flag oder dem Agent SDK - Wenn Sie
CLAUDE_CODE_DISABLE_BACKGROUND_TASKSauf1setzen, was auch alle anderen Hintergrund-Task-Funktionen ausschaltet - Wenn Sie einen verzweigten Skill aufrufen, während ein früherer Aufruf desselben Skills noch läuft
- Wenn eine geplante Task mit dem Skill als Prompt ausgelöst wird
background: false, um das vollständige Tool-Set beizubehalten.
Ein verzweigter Skill, der im Hintergrund läuft, wendet seine Änderungen außerhalb der Checkpoints Ihrer Session an, sodass /rewind sie nicht rückgängig macht; verwenden Sie git, um sie rückgängig zu machen.
Skills und Subagenten arbeiten in zwei Richtungen zusammen:
Mit
context: fork schreiben Sie die Task in Ihren Skill und wählen einen Agent-Typ aus, um sie auszuführen. Die integrierten Explore- und Plan-Agenten überspringen CLAUDE.md und git status, um ihren Kontext klein zu halten, sodass ein verzweigter Skill mit agent: Explore nur den SKILL.md-Inhalt und den eigenen System-Prompt des Agenten sieht. Für das Gegenteil, bei dem Sie einen benutzerdefinierten Subagenten definieren, 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 Task, und der Agent bietet schreibgeschützte Tools, die für die Codebase-Exploration optimiert sind:- Ein neuer isolierter Kontext wird erstellt
- Der Subagent erhält den Skill-Inhalt als seinen Prompt (die „Research $ARGUMENTS thoroughly…”-Anweisungen)
- Das
agent-Feld bestimmt die Ausführungsumgebung (Modell, Tools und Berechtigungen) - Der Subagent fasst seine Ergebnisse zusammen und gibt sie an Ihr Hauptgespräch zurück, wenn er fertig ist
agent-Feld gibt an, welche Subagenten-Konfiguration verwendet werden soll. Optionen sind integrierte Agenten (Explore, Plan, general-purpose) oder ein beliebiger benutzerdefinierter Subagent aus .claude/agents/. Wenn nicht angegeben, wird general-purpose verwendet.
Claudes Skill-Zugriff einschränken
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 während des Zugs, der den Skill aufruft; die Genehmigung wird gelöscht, wenn Sie Ihre nächste Nachricht senden. Ihre Berechtigungseinstellungen regeln immer noch das Baseline-Genehmigungsverhalten für alle anderen Tools. Einige integrierte Befehle sind auch über das Skill-Tool verfügbar, einschließlich /init und /security-review. Andere integrierte Befehle wie /compact sind nicht verfügbar.
Drei Möglichkeiten, um zu kontrollieren, welche Skills Claude aufrufen kann:
Alle Skills deaktivieren, indem Sie das Skill-Tool in /permissions ablehnen:
Skill(name) für exakte Übereinstimmung, Skill(name *) für Präfix-Übereinstimmung mit beliebigen Argumenten. In einer allow-Regel stimmt ein Präfix außerhalb des für synchronisierte Skills reservierten Namespace nicht mit den Namen darin überein: Skill(anthropic *) deckt nicht anthropic-skills:pdf ab.
Wenn Ihre deny-Regel einen Alias oder einen unqualifizierten Namen anstelle des eigenen Namens des Skills benennt, blockiert Claude Code den Skill trotzdem: Mit Skill(review) blockiert es den gebündelten /code-review durch seinen /review-Alias, und mit Skill(deploy) blockiert es einen verschachtelten Skill, der als apps/web:deploy aufgelistet ist, durch seinen unqualifizierten Namen. Vor v2.1.260 blockierte Claude Code einen verschachtelten Skill, der unter seinem qualifizierten Namen aufgelistet ist, nicht, wenn die deny-Regel nur den unqualifizierten Namen benannte.
Claude Code stimmt einer allow-Regel nur gegen den eigenen Namen des Skills und den Namen in Claudes Aufruf ab.
Um einen synchronisierten Skill ohne Aufforderung zu genehmigen, benennen Sie ihn in seinem reservierten Namespace: Skill(anthropic-skills:pdf) genehmigt den synchronisierten pdf-Skill, und Skill(anthropic-skills *) genehmigt jeden synchronisierten Skill.
Einzelne Skills ausblenden, indem Sie disable-model-invocation: true zu ihrer Frontmatter hinzufügen. Dies entfernt den Skill vollständig aus Claudes Kontext.
Mit
user-invocable: false können Sie den Skill nicht aufrufen, aber Claude kann. Um zu verhindern, dass Claude ihn über das Skill-Tool aufruft, setzen Sie disable-model-invocation: true.Skill-Sichtbarkeit aus Einstellungen überschreiben
DieskillOverrides-Einstellung steuert die Skill-Sichtbarkeit aus Ihren Einstellungen anstelle der eigenen Frontmatter des Skills. Verwenden Sie sie für Skills, deren SKILL.md Sie nicht bearbeiten möchten, wie z. B. solche, die in ein gemeinsames Projekt-Repo eingecheckt sind. Das /skills-Menü schreibt es für Sie: Markieren Sie einen Skill und drücken Sie Space, um die Zustände zu durchlaufen, dann Esc, um in .claude/settings.local.json zu speichern.
Jeder Schlüssel ist ein Skill-Name und jeder Wert ist einer von vier Zuständen:
Das
/skills-Menü kennzeichnet den "user-invocable-only"-Zustand als user-only.
Ab v2.1.199 versteckt "off" den Skill auch vor den Befehlslisten, die Remote Control-Clients und Agent SDK-Aufrufer erhalten, zusätzlich zum Terminal-/-Menü. Das Aufrufen eines versteckten Skills mit seinem vollständigen Namen gibt stattdessen den skillOverrides-Fehler zurück, anstatt 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 ganz aus:
checkup für /doctor. Wenn Sie einen skillOverrides-Eintrag unter einem Alias in verwalteten Einstellungen oder in einer Datei, die Sie mit dem --settings-Flag übergeben, festlegen, wendet Claude Code ihn auf den Skill hinter dem Alias an. Sie können einen Skill nur durch einen Alias weiter einschränken, ihn niemals sichtbarer machen, und wenn Sie auch einen Eintrag unter dem eigenen Namen des Skills in verwalteten Einstellungen festlegen, hat dieser Eintrag Vorrang. Vor v2.1.260 wendete Claude Code einen Eintrag unter einem Alias nicht auf den Skill in einer Einstellungsquelle an.
In Benutzer-, Projekt- und lokalen Einstellungen stimmt Claude Code Einträge nur gegen Skill-Namen ab. Wenn Sie dort einen Eintrag für review festlegen, gilt er für einen Skill namens review, nicht für den gebündelten /code-review durch seinen /review-Alias.
Plugin-Skills sind nicht von skillOverrides betroffen. Verwalten Sie diese stattdessen über /plugin.
Ungenutzte Skills finden
Jeder Skill in der Skill-Auflistung trägt zu Ihrem Kontext bei jedem Zug bei, 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 möchten. In einer interaktiven Sitzung wird der Bericht in der Registerkarte Stats des /plugin-Managers geöffnet. Im nicht-interaktiven Modus mit -p gibt Claude Code ihn als Text aus.
Der Bericht behandelt die Skills in Ihrer Sitzung außer gebündelten Skills und Enterprise-Skills. Er kennzeichnet Skills in der Auflistung, die nie aufgerufen wurden, und sagt, wo man sie ausschalten kann. Von den Skills, bei denen er sagt, wo man sie ausschalten kann, beginnen Sie mit denen, die die höchsten Kontextkosten haben. Der Bericht listet auch Plugins auf, die Sie kürzlich nicht verwendet haben.
/skill-doctor erfordert Claude Code v2.1.252 oder später und ist nicht in Sitzungen verfügbar, die Feature-Flag-Abruf überspringen. Wenn Sie /skill-doctor über Remote Control von Ihrem Telefon oder Browser aus ausführen, antwortet Claude Code stattdessen Skill usage reports are not available on this connection.. Führen Sie /skill-doctor im Terminal auf dem Computer 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. Zwei Tools automatisieren diesen Vergleich. Für einen Skill, der in einem Plugin ausgeliefert wird, führtclaude 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. Installiere es vom offiziellen Marketplace:
Marketplace "claude-plugins-official" not found: Füge den Marketplace mit/plugin marketplace add anthropics/claude-plugins-officialhinzu und versuche dann die Installation erneut.- Das Plugin wird nicht im Marketplace gefunden: Überprüfe den Plugin-Namen.
Run /reload-plugins to activate. meldet, führt Claude Code dann diesen Reload für dich aus. Wenn der Reload warnt, dass deine nächste Nachricht die Konversation erneut lesen würde, führe /reload-plugins --force aus, um die Skills des Plugins in der aktuellen Sitzung verfügbar zu machen. Bitte dann Claude, einen vorhandenen Skill zu evaluieren, zum Beispiel evaluate my summarize-changes skill with skill-creator. Das Plugin führt dich 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
/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
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.
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