henning thies.

Projektkontext

Skills, Agents & Commands

Claude erweitern und automatisieren

Claude erweitern und automatisieren

CLAUDE.md ist der Anfang. Aber Claude Code bietet noch mehr: Commands, Skills, Agents und Hooks ermöglichen dir, wiederkehrende Workflows zu automatisieren.

Stell dir vor: Ein einziger Befehl wie /deploy führt deinen kompletten Deployment-Prozess aus. Das ist die Macht dieser Erweiterungen.

Die vier Ebenen

Jedes dieser Features lädt anders – das ist der entscheidende Unterschied:

Konzept Wie es lädt Wann nutzen
Commands Explizit per Slash-Befehl Schnelle, wiederholbare Prompts
Skills On-demand, semantisch via Description Domänen-Wissen, das bei passenden Tasks aktiv wird
Agents Delegiert in eigenen Context Isolierte Tasks, Parallelisierung
Hooks Event-getrieben (Tool-Calls, File-Saves) Automatische Side-Effects, Guardrails

Merkregel: CLAUDE.md gilt immer, Skills gelten wenn relevant, Commands feuerst du selbst, Hooks feuern bei Events.

Commands: Die Basics

Commands sind Markdown-Dateien in .claude/commands/, die als Slash-Befehle verfügbar werden.

Beispiel: /commit Command

# .claude/commands/commit.md

---
description: Committe Änderungen mit guter Message
---

Analysiere die aktuellen Änderungen mit `git diff --staged`.

Erstelle eine Commit-Message nach diesem Format:
- Beginne mit Verb (Add, Fix, Update, Refactor)
- Maximal 50 Zeichen für die erste Zeile
- Erkläre das "Warum" im Body wenn nötig

Führe dann `git commit` aus.

Jetzt kannst du /commit tippen und Claude führt den gesamten Workflow aus.

Parameter mit $ARGUMENTS

# .claude/commands/test.md

---
description: Führe Tests aus
---

Führe Tests aus für: $ARGUMENTS

Wenn keine Argumente: Führe die gesamte Test-Suite aus.
Bei Fehlern: Analysiere und zeige mögliche Fixes.

Nutzung: /test models/user oder einfach /test

Skills: Domänen-Wissen

Skills sind mächtiger als Commands. Sie bündeln Wissen, Kontext und Workflows zu einem Themenbereich.

Der entscheidende Mechanismus: Claude liest die Description aus dem Frontmatter jedes verfügbaren Skills und entscheidet anhand deines Prompts selbst, welcher Skill geladen wird. Du musst ihn nicht explizit aufrufen – eine gute Description ist wichtiger als ein guter Name. Damit füllt ein Skill deinen Context nur, wenn er gebraucht wird.

Struktur eines Skills

.claude/skills/
└── api-development/
    ├── SKILL.md          # Haupt-Instruktionen
    ├── conventions.md    # API-Konventionen
    └── workflows/
        ├── new-endpoint.md
        └── document.md

SKILL.md Beispiel

# .claude/skills/api-development/SKILL.md

---
name: api-development
description: REST API Entwicklung nach unseren Konventionen
---

# API Development

Du hilfst bei der Entwicklung unserer REST API.

## Konventionen
- Lies @conventions.md für unsere Standards
- URLs in kebab-case
- JSON Properties in camelCase
- Immer Pagination für Listen
- Versionierung in URL (/v1/, /v2/)

## Workflows
- /api:new-endpoint - Neuen Endpoint erstellen
- /api:document - API dokumentieren

Claude lädt diesen Skill automatisch wenn du an API-Code arbeitest, oder du rufst ihn explizit mit /api-development auf.

Agents: Spezialisierte Assistenten

Agents sind eigenständige Claude-Instanzen mit eigenem Kontext und eigenen Tools. Sie arbeiten isoliert und berichten zurück.

Wann Agents nutzen?

  • Exploration: Viele Dateien lesen ohne den Hauptkontext zu füllen
  • Review: Code mit frischem Blick prüfen
  • Parallelisierung: Mehrere Tasks gleichzeitig
  • Spezialisierung: Fokussierte Aufgaben (Security, Performance)

Agent Definition

# .claude/agents/security-reviewer.md

---
name: security-reviewer
description: Prüft Code auf Sicherheitslücken
tools: Read, Grep, Glob
model: opus
---

Du bist ein erfahrener Security Engineer.

Prüfe Code auf:
- SQL Injection
- XSS Vulnerabilities
- Authentication/Authorization Fehler
- Secrets im Code
- Unsichere Datenverarbeitung

Gib konkrete Zeilenreferenzen und Lösungsvorschläge.

Agent aufrufen

" Nutze einen Subagent um diesen PR auf Security-Probleme zu prüfen. "

Der Agent arbeitet in eigenem Kontext, liest die relevanten Dateien, und liefert einen Bericht zurück – ohne deinen Hauptkontext zu füllen.

Hooks: Reaktion auf Events

Während Commands, Skills und Agents alle von Claude aufgerufen werden, sind Hooks Shell-Befehle, die der Harness automatisch bei bestimmten Events ausführt – unabhängig davon, was Claude gerade vorhat. Sie sind das Werkzeug für Guardrails und Side-Effects.

Typische Anwendungen:

  • PostToolUse: Linter oder Formatter nach jedem File-Edit ausführen
  • PreToolUse: Gefährliche Befehle abfangen (z.B. rm -rf blocken)
  • Stop: Tests laufen lassen, bevor eine Session endet
  • UserPromptSubmit: Kontext-Snippets in jeden Prompt injizieren

Konfiguriert werden Hooks in .claude/settings.json:

// .claude/settings.json
{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          { "type": "command", "command": "bin/rubocop -A" }
        ]
      }
    ]
  }
}

Wichtig: Hooks laufen ohne Claudes Zustimmung. Sie sind deterministisch – das macht sie ideal, um Regeln zu erzwingen, die du nicht der Wahrscheinlichkeit eines Sprachmodells überlassen willst.

Praktische Beispiele

Feature-Workflow als Skill

# .claude/skills/feature/workflows/implement.md

---
name: feature:implement
description: Feature nach Spec implementieren
---

Implementiere das Feature: $ARGUMENTS

1. Lies die Spec in specs/$ARGUMENTS.md
2. Erstelle einen Branch: feature/$ARGUMENTS
3. Implementiere nach der Spec
4. Schreibe Tests
5. Verifiziere dass alle Tests grün sind
6. Committe mit aussagekräftiger Message
7. Erstelle PR-Beschreibung

Nutzung: /feature:implement user-notifications

Daily Standup Agent

# .claude/agents/standup.md

---
name: standup
description: Erstellt Standup-Summary
tools: Read, Bash
---

Erstelle eine Standup-Summary:

1. Git log der letzten 24h
2. Offene PRs
3. Geänderte Dateien
4. Offene TODOs im Code

Formatiere als kurze Bullet-Points.

Wo speichern?

Projekt-spezifisch (Git)

.claude/commands/, .claude/skills/, .claude/agents/

→ Teile sie mit dem Team

Persönlich (Global)

~/.claude/commands/, ~/.claude/skills/, ~/.claude/agents/

→ Verfügbar in allen Projekten

Best Practices

Tipp

Start simple. Beginne mit Commands für häufige Aufgaben. Skills und Agents erst wenn du merkst, dass du mehr Struktur brauchst.
  • Commands für schnelle, atomare Aktionen (/commit, /test, /lint)
  • Skills für Domänen-Wissen und komplexere Workflows
  • Agents für isolierte, parallelisierbare Tasks
  • Hooks für deterministische Guardrails (Linter, Test-Gates)
  • Dokumentiere was jeder Command/Skill macht
  • Iteriere – verfeinere basierend auf Nutzung

Zusammenfassung

  • Commands – Einfache, wiederholbare Prompts als Slash-Befehle
  • Skills – Domänen-Wissen mit strukturierten Workflows
  • Agents – Isolierte Assistenten für spezialisierte Tasks
  • Hooks – Event-getriebene Guardrails über settings.json
  • Im Projekt oder global – je nach Wiederverwendbarkeit
  • Start simple – Commands zuerst, dann Skills, dann Agents