Erstelle einen Claude Code Skill, der reviewt, triagiert und committet

Wie du einen einzelnen Claude Code Skill baust, der deine Änderungen überprüft, Qualitätschecks durchführt, TODOs sortiert und jeden Abend auf GitHub committet.

Erstelle einen Claude Code Skill, der reviewt, triagiert und committet
Auch verfügbar auf English, Français, Español, Nederlands.

Es gibt eine bestimmte Art von Entwickler-Schuldgefühl, das gegen 18 Uhr zuschlägt. Du warst den ganzen Tag vertieft in Code, die Dinge funktionieren größtenteils, aber die Git-History ist ein Friedhof halbfertiger Commits. Da ist ein TODO drei Dateien tief, das du um 10 Uhr morgens mental markiert und komplett vergessen hast. Die README beschreibt noch die Architektur von vor drei Wochen.

Wir wollten das beheben, ohne ein weiteres Tool, einen weiteren Prozess oder eine weitere Sache zum Merken einzuführen. Einen Befehl am Ende des Tages eintippen, den KI-Coding-Partner den Rest erledigen lassen.

So haben wir /wrapup gebaut — ein Claude Code Skill, der genau das tut.

Wie eine ordentliche Tagesend-Übergabe aussieht

Ein guter Wrapup erledigt fünf Dinge:

  1. Prüft, was sich tatsächlich geändert hat — nicht nur ein git diff, sondern eine menschenlesbare Zusammenfassung, was sich bewegt hat und warum.
  2. Führt Qualitätsprüfungen durch — Lint, Typen, Tests, ein schneller Build. Fängt die peinlichen Sachen ab, bevor sie auf GitHub landen.
  3. Hält die Dokumentation ehrlich — aktualisiert CLAUDE.md, die README, ein Changelog falls vorhanden. Die Dinge, die immer durchrutschen.
  4. Triagiert offene Issues — scannt nach TODOs und offenen GitHub Issues, führt ein kurzes Q&A zu allem Wichtigen durch, schreibt eine priorisierte Agenda für den nächsten Morgen.
  5. Committet und pusht — automatisch für saubere oder risikoarme Änderungen, mit einer Pause für menschliche Prüfung nur wenn etwas Kritisches ungelöst ist.

Das Ergebnis ist eine Git-History, die eine zusammenhängende Geschichte erzählt, eine CLAUDE.md, die aktuell bleibt, und ein ## Next Session-Block, der bedeutet, dass du morgen früh das Projekt öffnest und bereits weißt, wo du anfangen musst.

Wie der Skill funktioniert

Der Skill ist eine Markdown-Datei. Das ist wirklich alles. Claude Code liest sie, lädt die Anweisungen in den Kontext und befolgt sie, wenn du den Befehl aufrufst.

Hier ist die vollständige Abfolge:

Phase 1 — Änderungen prüfen. Führt git status, git diff HEAD und git log --oneline -10 aus. Erstellt eine Zusammenfassung in Klartext, was sich heute geändert hat.

Phase 2 — Qualitätsprüfungen. Erkennt die Toolchain des Projekts aus package.json oder CLAUDE.md und führt das Passende aus: ESLint oder Ruff für Linting, tsc --noEmit oder Mypy für Typen, die Test-Suite, einen Build-Check. Kleinere Probleme wie verirrte console.log-Anweisungen werden automatisch behoben. Größere Probleme werden als TODOs markiert und dokumentiert, statt sie mitten im Wrapup zu reparieren.

Phase 3 — Memory und Docs aktualisieren. Prüft, ob etwas Neues in CLAUDE.md aufgenommen werden muss — neue Befehle, Konventionen, Umgebungsvariablen. Aktualisiert die README, wenn sich nutzerrelevantes Verhalten geändert hat. Ergänzt ein Changelog, falls eines existiert.

Phase 4 — Issues und TODOs triagieren. Das ist der Teil, den wir am wertvollsten finden. Er durchsucht die gesamte Codebase nach TODO, FIXME, HACK und XXX und ruft offene GitHub Issues über die gh-CLI ab. Für jedes wichtige Element führt er ein kurzes Q&A durch: Was ist das Problem, gibt es eine klare Lösung, wie hoch ist der Aufwand, gibt es Blocker? Alles wird in drei Kategorien sortiert — kritisch, wichtig, Backlog — und ein ## Next Session-Block wird in CLAUDE.md geschrieben mit den Prioritäten für morgen in der richtigen Reihenfolge.

Phase 5 — Commit vorbereiten. Stagt Änderungen und verfasst eine konventionelle Commit-Nachricht. Falls ungelöste kritische Issues bestehen, pausiert er und zeigt den gestagten Diff zur Überprüfung. Andernfalls fährt er automatisch fort.

Phase 6 — Committen und pushen. Committet, pusht zum aktuellen Tracking-Branch und gibt eine Zusammenfassung auf einem Bildschirm aus: Was wurde ausgeliefert, was ist kritisch für morgen, welche Docs wurden aktualisiert und der Commit-Hash.

Was ist ein Claude Code Skill genau?

Claude Code hat persistente, wiederverwendbare Anweisungen, die seine Fähigkeiten erweitern. CLAUDE.md behandelt den immer aktiven Projektkontext. Skills behandeln spezifische, wiederholbare Workflows, die du bei Bedarf aufrufst.

Ein Skill ist ein Verzeichnis mit einer SKILL.md-Datei. Diese Datei hat zwei Teile:

---
name: wrapup
description: End-of-day review, triage, and commit. Run before closing the project.
allowed-tools: Read, Write, Bash(git:*), Bash(gh:*), Bash(grep:*), Bash(npm:*), Bash(ruff:*), Bash(tsc:*)
---

# End-of-Day Wrapup

## Phase 1 — Review changes
Run `git status`, `git diff HEAD`, and `git log --oneline -10`.
Summarise what changed today in plain language.

## Phase 2 — Quality checks
Detect the toolchain from package.json or CLAUDE.md.
Run lint, type checks, tests, and build. Fix minor issues automatically.
Flag larger issues as TODOs rather than attempting repairs mid-wrapup.

## Phase 3 — Update memory and docs
...

Das YAML-Frontmatter teilt Claude Code den Namen des Skills mit (der zum /slash-command wird), eine Beschreibung, anhand derer entschieden wird, wann er automatisch geladen wird, und welche Tools er verwenden darf. Der Markdown-Body ist der Prompt — Klartext, strukturiert wie es für die Aufgabe sinnvoll ist.

Wenn du /wrapup eingibst, lädt Claude Code den Skill in den Kontext und befolgt die Anweisungen. Er kann Bash-Befehle ausführen, Dateien lesen und schreiben, die gh-CLI aufrufen, in Git committen — alles, was die allowed-tools-Liste erlaubt.

Skills sind Teil des offenen Agent Skills-Standards und funktionieren daher in Claude Code, Claude im Web und Claude Desktop. Einmal definieren, überall verwenden.

Drei Wege, einen Skill zu installieren

Global (in jedem Projekt verfügbar)

Am besten geeignet, wenn der Skill universell einsetzbar ist und du ihn unabhängig vom Repo haben willst. /wrapup passt hierhin.

mkdir -p ~/.claude/skills/wrapup
nano ~/.claude/skills/wrapup/SKILL.md

Skill-Inhalt einfügen, speichern. Kein Neustart nötig — Claude Code erkennt Skill-Änderungen live.

Projektbezogen (ins Repo committet)

Am besten geeignet, wenn der Skill projektspezifisch ist oder das ganze Team ihn haben soll.

mkdir -p .claude/skills/wrapup
nano .claude/skills/wrapup/SKILL.md

Dann committen:

git add .claude/skills/wrapup/SKILL.md
git commit -m "chore: add /wrapup end-of-day skill"
git push

Jeder, der das Repo klont, bekommt den Skill automatisch.

Persönliche Projekt-Überschreibung (nicht committet)

Für projektspezifische Skills, die nicht in die gemeinsame Codebase gehören — eigenwillige Commit-Message-Stile, persönliche Triage-Kriterien, Stack-spezifische Abkürzungen, die dein Team nicht nutzt.

mkdir -p .claude/commands
echo ".claude/commands/" >> .gitignore
nano .claude/commands/wrapup.md

Den Skill aufrufen

Tippe / in Claude Code und wrapup erscheint in der Autovervollständigung:

/wrapup

Oder mit dem Projekt-Namespace-Präfix, falls es einen Namenskonflikt gibt:

/project:wrapup

Du kannst überprüfen, ob er registriert ist, indem du /help ausführst — alle verfügbaren Skills werden mit ihren Beschreibungen angezeigt. Falls wrapup fehlt, prüfe den SKILL.md-Pfad und validiere das YAML-Frontmatter.

Warum der Commit bei kritischen Issues pausiert

Eine Designentscheidung, die es wert ist, erklärt zu werden: Der Skill committet und pusht automatisch bei normaler Arbeit, pausiert aber, wenn ungelöste kritische Issues bestehen.

Die Logik in den Skill-Anweisungen:

## Phase 5 — Prepare the commit

Stage all changes with `git add -A`.
Compose a conventional commit message summarising today's work.

If any CRITICAL issues remain unresolved:
  - Print the staged diff
  - Print the proposed commit message
  - Wait for explicit confirmation before proceeding

Otherwise:
  - Commit and push without interruption

Die Pause soll dich nicht am Ausliefern hindern. Sie stellt sicher, dass du bewusst entscheidest, in einem Zustand zu pushen, in dem etwas Wichtiges kaputt ist. Oft wirst du trotzdem pushen — die Arbeit hat nichts mit dem kritischen Issue zu tun — aber du tust es absichtlich statt versehentlich.

Ein automatisiertes Tool, das stillschweigend kaputten Zustand ausliefert, ist schlimmer als gar keine Automatisierung. Die Pause ist die Anerkennung des Skills, dass er nicht den vollständigen Kontext hat, und gibt genau diese Entscheidung an dich zurück.

CLAUDE.md als Arbeitsgedächtnis

Der ## Next Session-Block, der am Ende von Phase 3b geschrieben wird, verdient einen eigenen Abschnitt.

Weil Claude Code CLAUDE.md automatisch am Anfang jeder Sitzung lädt, weiß Claude morgen früh bereits die drei Dinge, die passieren müssen, in der richtigen Prioritätsreihenfolge. Du musst keinen Kontext erneut erklären, deine eigenen Notizen nicht nochmal lesen oder fünfzehn Minuten damit verbringen, dich zu erinnern, wo du aufgehört hast.

Der Block sieht nach einem typischen Wrapup so aus:

## Next Session

**Last updated:** 2025-01-14 18:03

### Critical
- [ ] Fix auth token expiry not being caught in `api/middleware.ts` — users hitting 401s silently
- [ ] The `/export` endpoint times out for datasets > 10k rows — needs investigation

### Important
- [ ] Migrate remaining fetch calls in `dashboard/` to the new API client
- [ ] Write tests for the CSV parser edge cases (empty rows, quoted commas)

### Backlog
- [ ] Update the deployment docs — still references the old Docker setup
- [ ] TODO in `utils/date.ts:47` — handle timezone offsets properly

Jede Sitzung endet mit einer Übergabe an die nächste. Mit der Zeit wird CLAUDE.md zu einem lebendigen Dokument, das den aktuellen Zustand des Projekts widerspiegelt — nicht nur die Architektur, sondern auch die laufende Arbeit. Wenn du einen neuen Mitarbeiter einarbeitest oder nach zwei Wochen zu einem Projekt zurückkehrst, erzählt diese Datei die vollständige Geschichte.

Wie die Ausgabe aussieht

Nachdem /wrapup gelaufen ist, wird die finale Zusammenfassung im Terminal ausgegeben:

── Wrapup complete ──────────────────────────────────────

Commit: a3f91c2
Branch: main → origin/main

Changed
  Modified  src/api/middleware.ts
  Modified  src/dashboard/index.tsx
  Added     src/utils/csv-parser.ts
  Modified  README.md

Quality checks
  ESLint      passed
  TypeScript  passed
  Tests       47 passed, 0 failed
  Build       passed
  Fixed       2 stray console.log statements

Docs updated
  CLAUDE.md   Next Session block updated
  README.md   Updated /export endpoint docs

Critical for tomorrow
  1. Auth token expiry silent failure — api/middleware.ts
  2. /export timeout on large datasets

─────────────────────────────────────────────────────────

Ein Bildschirm. Alles, was du brauchst, um den Laptop zuzuklappen.

Mach ihn zu deinem

Der Wrapup-Skill hat etwa eine Stunde zum Schreiben gebraucht und ist seitdem Teil unserer täglichen Routine. Die Git-History ist sauberer. Die Docs sind genauer. Jeder Morgen beginnt mit einer klaren Liste, die bereits in den Kontext geladen ist.

Er ist auch ein gutes Beispiel dafür, wofür Skills generell gut sind: Einen mehrstufigen, kontextabhängigen Workflow, den du sonst manuell erledigen — oder überspringen — würdest, einmal in einer Markdown-Datei zu kodieren. Claude Code übernimmt die Ausführung. Du tippst ein Wort.

Die Kosten einer guten Tagesend-Routine sind nicht die Arbeit selbst. Es ist die Reibung, daran zu denken und zu wissen, wo man anfangen soll. Ein Skill eliminiert beides. Kopiere die Datei, tausche npm test gegen pytest, tausche ESLint gegen Ruff, füge projektspezifische Checks hinzu — und führe heute Abend /wrapup aus.

Falls du beim Anpassen des Skills an deinen Stack auf Probleme stößt, füge die URL dieses Beitrags in Claude Code oder deinen KI-Assistenten deiner Wahl ein. Er hat den vollständigen Kontext, um dir beim Debuggen zu helfen.


Lade die bewährte SKILL.md hier herunter:

Wichtig: Prüfe einen Skill immer, bevor du ihm blind vertraust. Skills enthalten keinen komplizierten Code und sind in Klartext leicht verständlich.


Wo du das ausführen kannst

Du brauchst eine Maschine, auf der Claude Code und Git verfügbar sind — also jede Linux-Box mit einem Terminal. Falls du Entwicklungsumgebungen auf einem VPS betreibst, bekommst du bei Hetzner einen CX22 für 4,85 €/Monat mit 10 € Startguthaben. Auf diesem Server läuft auch dieser Blog.

Falls du lieber auf die Server-Verwaltung verzichten und eine gehostete Umgebung für KI-Workflows nutzen willst, übernimmt xCloud die Infrastruktur, damit du dich auf die Skills selbst konzentrieren kannst.

Für Teams, die Monitoring für die Services brauchen, zu denen Claude committet, bietet UptimeRobot im kostenlosen Tarif 50 Monitore mit 5-Minuten-Intervallen — nützlich, um die /export-Timeout-Probleme zu erkennen, bevor deine Nutzer es tun.

(Affiliate-Links — wir erhalten eine kleine Provision, wenn du dich anmeldest, ohne Mehrkosten für dich.)