initial: claude code workflow bundle (plan-start, status, handoff, adr)

This commit is contained in:
Kristian
2026-04-17 07:28:49 +02:00
commit 20a0ab38f2
16 changed files with 978 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
---
name: handoff
description: Schreibt am Ende einer Arbeitssession einen Session-Log nach docs/sessions/YYYY-MM-DD-<slug>.md und aktualisiert docs/90-status.md. Erzwingt eine kurze Reflexion des Nutzers (drei Fragen), bevor geschrieben wird — bewusst NICHT autonom aus dem Sitzungskontext ableiten.
disable-model-invocation: true
argument-hint: "<optional: kurzer slug für den log-dateinamen>"
allowed-tools:
- Read
- Write
- Edit
- Bash
---
# handoff — Sessionende
## Warum es diesen Skill überhaupt gibt
Die Disziplin des ganzen Workflows liegt nicht in den anderen Skills, sondern
in diesem hier. Wer `handoff` am Sessionende überspringt, hat nach drei
Sessions wieder das alte Problem: Kontext verdunstet, „wo war ich stehen-
geblieben?" ist Rateraten.
Und: `handoff` fragt **explizit nach**, statt autonom zusammenzufassen. Das ist
gegen die LLM-Intuition („kann ich doch selbst"), aber genau der Punkt.
Automatisch generierte Session-Logs sind nach drei Wochen formal korrekt und
inhaltlich beliebig. Die fünf Sekunden Reflexion pro Session sind die
Investition, die das System überhaupt tragbar macht.
## Wann der Skill läuft
Auf expliziten Aufruf am Ende einer Session. Vorher prüfen: existiert
`docs/90-status.md`? Wenn nicht → melden „Kein initialisiertes Projekt", abbrechen.
## Was der Skill tut
### Schritt 1 — Drei Fragen an den Nutzer
Nacheinander, nicht als Liste. Auf jede Antwort kurz warten, nicht selbst
vorschlagen. Die Fragen sind bewusst stumpf und weit, damit der Nutzer
reflektiert:
1. **„Was hast du in dieser Session konkret erledigt?"**
(Faktisch. Nicht „wir haben über X gesprochen", sondern „Datei Y angelegt,
Test Z bestanden, Entscheidung A getroffen".)
2. **„Was hast du angefangen und nicht beendet?"**
(Die Dinge, die sonst vergessen werden. Halbe Edits, offene Branches,
angetestete Hypothesen ohne Ergebnis.)
3. **„Was sind die nächsten 13 konkreten Schritte, wenn du das Projekt
wieder aufnimmst?"**
(Klein, prüfbar. Nicht „Feature X bauen", sondern „Funktion `parse_header`
um Content-Type erweitern, dann Test dafür schreiben".)
Zusätzlich darf der Skill **nur wenn nötig** nachfragen:
- Gab es eine größere Entscheidung, die einen ADR verdient? (Falls ja: den
Nutzer an `adr <titel>` erinnern — **nicht** selbst anlegen.)
- Ist der aktuelle Fokus in `docs/10-plan.md` noch korrekt? (Wenn nein: Notiz
machen, dass der Nutzer das beim nächsten Mal anpassen sollte. Nicht selbst
editieren.)
### Schritt 2 — Slug und Dateiname bauen
- Datum: `date +%F``YYYY-MM-DD`.
- Slug: aus `$ARGUMENTS`, sonst aus der Antwort auf Frage 1 automatisch
ableiten (24 Wörter, lowercase, Bindestriche, keine Sonderzeichen).
- Dateiname: `docs/sessions/YYYY-MM-DD-<slug>.md`.
- Kollision vermeiden: wenn die Datei existiert, suffix `-2`, `-3`, … anhängen.
### Schritt 3 — Session-Log schreiben
Nach dem Template `templates/session-log.md.tmpl` (liegt im Skill-Ordner).
Platzhalter füllen:
| Platzhalter | Quelle |
|---|---|
| `{{SESSION_DATE}}` | aktuelles Datum `YYYY-MM-DD` |
| `{{SESSION_SLUG}}` | der Slug von oben |
| `{{WHAT_DONE}}` | Antwort auf Frage 1, als Bulletpoints |
| `{{WHAT_OPEN}}` | Antwort auf Frage 2, als Bulletpoints |
| `{{NEXT_STEPS}}` | Antwort auf Frage 3, als nummerierte Liste |
| `{{DURATION}}` | optional, wenn der Nutzer ihn nennt, sonst weglassen |
### Schritt 4 — `docs/90-status.md` aktualisieren
Keine komplette Neuschreibung. Gezielt:
- Zeitstempel „Letzte Aktualisierung" auf heute setzen.
- Abschnitt **„Aktueller Stand"** ersetzen durch eine Destillation aus Frage 1
+ Frage 2 (24 Sätze).
- Abschnitt **„Nächste Schritte"** ersetzen durch die Antwort auf Frage 3.
- Abschnitt **„Offene Entscheidungen / Blocker"**: nur anfassen, wenn der
Nutzer im Gespräch explizit eine Entscheidung oder einen Blocker erwähnt
hat. Sonst unverändert lassen.
- Abschnitt **„Zuletzt geändert durch"**: auf
`handoff — <slug> am <datum>` setzen.
### Schritt 5 — Kurze Bestätigung
Dem Nutzer in 23 Zeilen zurückmelden: welche Datei wurde geschrieben, was
wurde in `90-status.md` aktualisiert. Keine Zusammenfassung der Zusammenfassung
— der Nutzer weiß, was er gerade gesagt hat.
Optional, wenn relevant: Hinweis auf einen anzulegenden ADR, falls in Schritt 1
eine Architektur-Entscheidung genannt wurde.
## Harte Regeln
- **Nicht automatisch zusammenfassen** ohne die drei Fragen zu stellen. Auch
dann nicht, wenn der Sitzungsverlauf scheinbar alles klar macht. Die Fragen
sind Pflicht.
- **Nichts in `30-decisions/` schreiben.** Dafür gibt's `adr`. Der Nutzer wird
daran erinnert, aber er entscheidet.
- **Nie `git commit`.** Der Nutzer entscheidet, ob und wann.
- **Niemals einen bestehenden Session-Log überschreiben.** Bei Kollision
Suffix anhängen.
## Template
Siehe `./templates/session-log.md.tmpl`.