Power Features: Skills, Subagents, Hooks und Settings
# Power Features: Skills, Subagents, Hooks und Settings
Der Unterschied zwischen Claude Code als Chatbox im Terminal und Claude Code als konfigurierte Engineering-Umgebung liegt in fünf Features: eigene Slash Commands und Skills, Subagents für paralleles Arbeiten, Hooks, die Ihre Skripte bei Events auslösen, MCP-Server, die an Ihr Projekt angebunden sind, und die settings.json, die alles davon steuert. Diese Lektion geht bei jedem davon in die Tiefe.
Slash Commands und Skills
Sie wissen bereits, dass Claude Code eingebaute Slash Commands wie /clear und /init mitbringt. Der Power Move ist, eigene zu schreiben.
Ein eigener Slash Command ist nichts als eine Markdown-Datei. Legen Sie eine Datei unter .claude/commands/<name>.md in Ihrem Repo ab, und sie wird in diesem Projekt zu /<name>. Legen Sie sie in ~/.claude/commands/, funktioniert sie überall. Der Dateiinhalt ist der Prompt; Claude führt ihn mit Ihrem Projektkontext aus.
Hier ist eine review.md, die dem Team einen einheitlichen Code Review verschafft:
---
description: Review staged changes for bugs, security issues, and style
allowed-tools: Bash(git diff:*), Read
---
Review the staged diff below. Flag:
1. Logic bugs and edge cases
2. Security issues (injection, secrets, auth gaps)
3. Style deviations from CLAUDE.md
Be terse. Cite file:line. Skip praise.
Staged changes:
!`git diff --cached`Zwei Dinge fallen auf. Das Präfix ! führt einen Shell-Befehl aus und schiebt dessen Output in den Prompt. Das Frontmatter allowed-tools begrenzt, worauf dieser Command zugreifen darf, damit /review nicht abschweift und Dateien bearbeitet. Argumente kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Sie mit $ARGUMENTS oder positionell mit $1, $2 übergeben.
Skills sind der schwerere, wiederverwendbare Verwandte. Ein Skill ist ein Ordner mit einer SKILL.md plus allen Skripten, Templates oder Referenzdokumenten, die Claude laden soll, wenn die Aufgabe es verlangt. Wo ein Slash Command ein Prompt ist, den Sie manuell auslösen, ist ein Skill eine verpackte Fähigkeit, die Claude bei Relevanz automatisch hinzuzieht: etwa „unser Rechnungs-Template ausfüllen“ oder „aus diesen Daten ein PDF erzeugen“. Dasselbe Skills-Format funktioniert in Claude Code, in den Claude Apps und über die APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen →, ein einmal gebauter Skill begleitet Sie also überall. Siehe die offizielle Übersicht unter docs.claude.com/en/docs/agents-and-tools/agent-skills.
Faustregel: Greifen Sie zum Slash Command, wenn *Sie* entscheiden, wann ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → läuft. Bauen Sie einen Skill, wenn Claude entscheiden soll und wenn die Fähigkeit gebündelte Dateien und Skripte braucht.
Subagents für paralleles Arbeiten
Ein Subagent ist eine separate Claude-Instanz mit eigenem Context WindowContext WindowThe context window is the maximum amount of text (measured in tokens) a language model can process at once, including both the input prompt and the generated output.Vollständige Definition ansehen →, eigenem System Prompt und eigenem eingeschränkten Tool-Set, die Ihre Hauptsession für eine fokussierte Aufgabe startet. Der Punkt ist Isolation: Der Subagent arbeitet eine lärmende Aufgabe ab (40 Dateien lesen, eine Test Suite laufen lassen) und liefert nur das Ergebnis zurück, sodass Ihr Hauptkontext sauber bleibt.
Subagents definieren Sie genauso wie Commands, mit Markdown-Dateien in .claude/agents/. Jede deklariert einen Namen, eine Description, die Claude sagt, *wann* delegiert werden soll, und die Tools, die ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → verwenden darf.
---
name: test-runner
description: Runs the test suite and diagnoses failures. Use after code changes.
tools: Bash, Read, Grep
---
You are a test specialist. Run the project's test command, read failing
output, locate the root cause, and report a concise fix. Do not edit
files unless explicitly asked.Jetzt kann Ihre Hauptsession abgeben: „use the test-runner to check this.“ Claude liest die Description, matcht die Aufgabe und delegiert. Weil der Subagent sein eigenes Window hat, verschmutzen tausend Zeilen Stack Traces nie Ihre Hauptkonversation.
Der eigentliche Hebel ist Parallelität. Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen Claude Arbeit auf mehrere Subagents gleichzeitig verteilen lassen: einer prüft Dependencies, einer schreibt Docs, einer refactored ein Modul. Sie laufen unabhängig und melden zurück. Das ist dasselbe Delegationsmuster, das das Claude Agent SDK programmatisch bereitstellt, nur vom Terminal aus gesteuert. Halten Sie die Tool-Rechte pro Subagent knapp; ein Docs-Writer hat mit Bash nichts zu schaffen.
Hooks, die Ihre Skripte bei Events ausführen
Subagents und Commands rufen Sie auf. Hooks sind das Gegenteil: Shell-Befehle, die Claude Code an definierten Punkten seines Lifecycles *automatisch* ausführt, ohne Aufforderung. So erzwingen Sie Regeln, anstatt zu hoffen, dass Claude sie befolgt.
Die zentralen Lifecycle-Events:
PreToolUse: vor dem Ausführen eines Tools (Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen es blocken)PostToolUse: nachdem ein Tool erfolgreich warUserPromptSubmit: wenn Sie Enter drückenStop: wenn Claude seine Antwort beendetSessionStart: wenn eine Session geöffnet wird
Der Klassiker: jede von Claude bearbeitete Datei automatisch formatieren. Fügen Sie das Ihrer settings.json hinzu:
{
"hooks": {
"PostToolUse": [
{
"matcher": "Edit|Write",
"hooks": [
{
"type": "command",
"command": "prettier --write \"$CLAUDE_FILE_PATHS\" 2>/dev/null"
}
]
}
]
}
}Nachdem Claude eine Datei bearbeitet oder geschrieben hat, formatiert Prettier sie. Claude muss sich Ihre Style-Regeln nie merken, weil der Hook sie unverhandelbar macht. Der matcher ist eine Regex auf Tool-Namen, und Claude Code übergibt Kontext (etwa die bearbeiteten Dateipfade) über Umgebungsvariablen.
PreToolUse ist noch mächtiger, weil es blocken kann. Ein Hook, der bei PreToolUse mit einem Status ungleich null endet, bricht den Tool-Call ab. Teams nutzen das, um Änderungen an secrets/ zu verbieten, git push --force zu blocken oder ein erfolgreiches Lint vor einem Commit zu verlangen. Der Hook ist Ihr Guardrail und läuft deterministisch außerhalb des Urteilsvermögens des Modells.
Eine Warnung: Hooks führen echte Shell-Befehle mit Ihren Rechten aus. Lesen Sie, was Sie einfügen. Ein Hook aus einem nicht vertrauenswürdigen Repo kann alles tun, was Sie tun kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen. Die vollständige Event-Referenz und das JSON, das Ihre Hooks ausgeben kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen, finden Sie unter docs.claude.com/en/docs/claude-code/hooks.
Claude Code Hooks: Automate Your Workflow
MCP-Server in Claude Code
Das Model Context Protocol kennen Sie als Konzept: ein Standard, um Tools und Daten jedem AI-Client bereitzustellen. Claude Code ist ein MCP-Client, das heißt Sie kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen dieselben Server, die Sie in der Claude Desktop App nutzen würden, direkt in Ihre Terminal-Sessions einstecken.
Einen hinzufügen per CLI:
claude mcp add github -- npx -y @modelcontextprotocol/server-githubDas registriert einen GitHub-MCP-Server. Einmal verbunden, kann Claude Issues öffnen, PRs lesen und Repos inspizieren, als native Tools, ohne Glue Code. Die Server, die Sie hinzufügen, kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen auf ein einzelnes Projekt begrenzt oder global verfügbar sein, und projektbezogene Server kkThe average number of new users each existing user generates through referrals. Above 1.0, growth compounds on itself and becomes exponential.Vollständige Definition ansehen →önnen ins Repo eingecheckt werden, damit Ihr ganzes Team dieselben Integrationen bekommt.
Das ist die BrBrThe percentage of visitors who leave after viewing only one page, often a signal of poor relevance, mismatched intent, or weak user experience.Vollständige Definition ansehen →ücke zwischen Claude Code und dem weiteren Ökosystem. Die Connectors, die Sie in den Claude Apps und im Connector-Marketplace sehen, sind unter der Haube MCP, und dieselbe Protokollspezifikation ist unter modelcontextprotocol.io dokumentiert. Bauen Sie einen Server einmal, und ererThe ratio of interactions (likes, comments, shares) to reach for a given piece of content, used to gauge how well audiences respond relative to how many people saw it.Vollständige Definition ansehen → funktioniert in Claude Code, in der Desktop App und in allem anderen, das MCP spricht.
Wissenscheck
1. Was ist ein eigener Slash Command in Claude Code im Kern?
2. Wann sollten Sie laut der Faustregel der Lektion einen Skill statt eines Slash Commands bauen?
3. Warum enthält die Beispiel-review.md einen `allowed-tools`-Eintrag im Frontmatter?
4. Wählen Sie ALLE Aussagen, die korrekt beschreiben, wie sich Skills von eigenen Slash Commands unterscheiden.
Wählen Sie alle richtigen Antworten aus.
5. Wählen Sie ALLE korrekten Aussagen zum Schreiben eigener Slash-Command-Dateien.
Wählen Sie alle richtigen Antworten aus.
settings.json: die Control Plane
Alles oben Genannte wird über eine Datei konfiguriert, und das Verständnis ihrer Schichtung unterscheidet ein saubereres Setup von einem verwirrenden. Claude Code liest Settings von mehreren Orten, das Spezifischste gewinnt:
~/.claude/settings.json: Ihre persönlichen Defaults, alle Projekte.claude/settings.json: Projekt-Settings, in Git eingecheckt, mit dem Team geteilt.claude/settings.local.json: Ihre persönlichen Projekt-Overrides, von Git ignoriert
Diese Schichtung ist wichtig. Legen Sie teamweite Guardrails (den Format-Hook, die erlaubten MCP-Server) in die geteilte .claude/settings.json, damit sie alle erben. Legen Sie Ihre persönlichen Präferenzen und maschinenspezifische Pfade in settings.local.json, damit Sie nicht in der Versionskontrolle mit Ihren Teammates kollidieren.
Der wichtigste Key ist permissions, der steuert, was Claude tun darf, ohne nachzufragen. Sie erlauben, fragen nach oder verweigern Tool-Patterns:
{
"permissions": {
"allow": [
"Bash(npm run test:*)",
"Read",
"Edit"
],
"deny": [
"Bash(rm -rf:*)",
"Read(./.env)",
"Read(./secrets/**)"
]
}
}Damit darf Claude Ihre Test-Skripte ausführen und Dateien frei bearbeiten, liest nie Ihre .env oder Secrets und verweigert gefährliche Löschvorgänge. Stellen Sie das einmal ein, und Sie hören auf, Bestätigungsdialoge für harmlose Operationen zu babysitten, während um die gefährlichen eine harte Wand bleibt.
Weitere Keys, die man kennen sollte: env schiebt Umgebungsvariablen in jede Session, model fixiert, welches Claude-Modell das Projekt nutzt, und hooks (siehe oben) wohnt hier ebenfalls. Halten Sie die geteilte Datei minimal und bewusst, denn jeder, der das Repo klont, erbt sie. Das vollständige SchemaSchemaA schema is the formal blueprint that defines how data is structured, named, typed, and related within a database, file, or message.Vollständige Definition ansehen → steht unter docs.claude.com/en/docs/claude-code/settings.
Wie die Teile zusammenspielen
Diese Features sind kein Spielzeug für sich; sie stapeln sich. Ein echtes Setup sieht so aus:
Ein SessionStart-Hook lädt die Projektkonventionen. Ihr permissions-Block gibt den Test-Befehl frei und mauert Secrets ab. Ein /review Slash Command führt auf Abruf Ihren standardisierten Code Review aus. Einem test-runner-Subagent wird die lärmende Arbeit übergeben, die Suite laufen zu lassen und zu diagnostizieren. Ein PostToolUse-Hook formatiert jede Datei, die Claude anfasst. Ein GitHub-MCP-Server lässt Claude am Ende den PR öffnen. Alles definiert in Dateien, die im Repo liegen, sodass ein neuer Teammate klont und ab Tag eins exakt dasselbe konfigurierte Claude bekommt.
Diese Reproduzierbarkeit ist der ganze Punkt. Sie prompten keinen Assistenten; Sie liefern eine konfigurierte Engineering-Umgebung zusammen mit Ihrem Code aus.
Key Takeaways
- Schreiben Sie Slash Commands für Aufgaben, die Sie auslösen; bauen Sie Skills für Fähigkeiten, die Claude selbst aufruft. Ein Command ist ein Markdown-Prompt in
.claude/commands/; ein Skill ist ein gebündelter Ordner, der in Claude Code, den Apps und der APIAPIApplication Programming Interface: a standardised interface that lets applications communicate and exchange data without knowing each other's internal workings.Vollständige Definition ansehen → funktioniert. - Nutzen Sie Subagents, um Ihren Hauptkontext zu schützen. Delegieren Sie lärmende, fokussierte Aufgaben an isolierte Agents mit knappen Tool-Rechten, und verteilen Sie sie für unabhängige Arbeit parallel.
- Machen Sie Regeln mit Hooks deterministisch.
PostToolUsefür Auto-Formatierung,PreToolUsezum Blocken verbotener Aktionen. Hooks führen echte Shell-Befehle mit Ihren Rechten aus, prüfen Sie also alles, was Sie nicht selbst geschrieben haben. - Behandeln Sie MCP als Ihre Integrationsschicht.
claude mcp addbindet dieselben Server und Connectors, die im Anthropic-Ökosystem genutzt werden, in Ihr Terminal ein, projektbezogen und teilbar. - Committen Sie Ihre `settings.json` und planen Sie die Schichtung. Geteilte Guardrails und Permissions in die Team-Datei, persönliche Overrides in
settings.local.json, damit das Klonen des Repos die komplette konfigurierte Umgebung reproduziert.
Was Sie aus dieser Lektion umsetzen
Diese Maßnahmen sind im Playbook der Rolle zusammengefasst.
- Schreiben Sie teilbare Slash Commands für Aufgaben, die Sie wiederholt auslösen
- Deterministische Regeln mit PreToolUse- und PostToolUse-Hooks durchsetzen
- settings.json für gemeinsame Guardrails committen, persönliche Overrides lokal halten