Eigene Befehle schreiben: Wiederkehrende Prompts speichern
Ein eigener Slash-Befehl ist eine gespeicherte Markdown-Datei: einmal geschrieben, reicht danach /dein-befehl statt einem langen Prompt.
Die Grundidee
Tippst du denselben Prompt immer wieder – "Fasse meine Änderungen zusammen", "Prüfe diese Datei" –, kannst du ihn als eigenen Befehl speichern. Claude Code kennt dafür zwei Formate: eine Markdown-Datei unter .claude/commands/ oder einen Skill-Ordner unter .claude/skills/. Beide erzeugen denselben Slash-Befehl: deploy.md und deploy/SKILL.md werden beide zu /deploy. Custom Commands wurden offiziell in Skills zusammengeführt; alte Command-Dateien funktionieren weiter.
Aufbau der Datei
Die Datei beginnt optional mit YAML-Frontmatter zwischen zwei ----Zeilen. Das wichtigste Feld ist description: Daran erkennt Claude, wann der Befehl zur Aufgabe passt, und kann ihn dann sogar automatisch laden. Nach dem Frontmatter folgt der eigentliche Prompt-Text.
Argumente
Mit dem Platzhalter $ARGUMENTS übernimmst du alles, was du hinter den Befehl tippst: Bei /fix-issue 123 wird $ARGUMENTS zu 123. Einzelne Argumente erreichst du 0-basiert über $0, $1 und so weiter.
Eigener Befehl oder CLAUDE.md-Regel?
Die Faustregel aus der Doku: Regeln, die immer gelten sollen ("nie auf main pushen"), gehören in die CLAUDE.md – sie wird bei jeder Session komplett geladen. Prozeduren, die du nur manchmal brauchst, gehören in einen Befehl oder Skill: Deren Text lädt erst beim Aufruf und kostet vorher fast keinen Kontext. Wächst ein CLAUDE.md-Abschnitt zu einer ganzen Prozedur heran, ist das laut Doku genau der Moment für einen eigenen Befehl.
BEISPIEL
Datei `.claude/skills/fix-issue/SKILL.md`: --- description: Behebt ein GitHub-Issue anhand der Nummer disable-model-invocation: true --- Behebe GitHub-Issue $ARGUMENTS: Lies das Issue, implementiere den Fix, schreibe Tests. Aufruf danach: `/fix-issue 123`
🛠️ ÜBUNG — MACH DAS BEI DIR
Baue deinen ersten eigenen Befehl und teste beide Aufruf-Wege.
- Lege die Datei .claude/skills/zusammenfassen/SKILL.md an – mit einer description ('Fasst uncommittete Änderungen zusammen') und dem Prompt 'Fasse den aktuellen git diff in 3 Stichpunkten zusammen.'
- Starte Claude Code, ändere eine Datei und rufe /zusammenfassen direkt auf.
- Frage danach in normaler Sprache 'Was habe ich geändert?' und beobachte, ob Claude den Skill von selbst lädt.
✅ SELBST-CHECK
- ☐ Weißt du, warum das description-Feld für das automatische Laden entscheidend ist?
- ☐ Kannst du erklären, wann derselbe Text besser in die CLAUDE.md gehört hätte?
- ☐ Hast du verstanden, wie du mit $ARGUMENTS Argumente übernehmen würdest?
KURZ-QUIZ
Was passiert technisch, wenn du einen eigenen Befehl wie `/fix-issue 123` aufrufst?
QUELLEN
- Claude Code Doku: Skills (inkl. Custom Commands) ↗ code.claude.com
- Claude Code Doku: Slash Commands ↗ code.claude.com
- Claude Code Doku: CLAUDE.md und Memory ↗ code.claude.com