diff --git a/.claude/commands/new-user-story.md b/.claude/commands/new-user-story.md new file mode 100644 index 0000000..effe179 --- /dev/null +++ b/.claude/commands/new-user-story.md @@ -0,0 +1,14 @@ +Erstelle eine neue User Story. + +1. Lies docs/templates/user-story.md als Vorlage +2. Ermittle die nächste freie Story-Nummer: + - Lies bestehende Dateien in docs/B_planning/user-stories/ + - Nächste Nummer = höchste vorhandene + 1 (oder US-001 wenn noch keine existiert) +3. Frage den User (sofern nicht aus dem Kontext bekannt): + - Wer ist die Rolle (z.B. Sachbearbeiter, Administrator)? + - Was soll die Funktion sein? + - Welchen Nutzen bringt das? + - Aus welchem Teil des Legacy-Systems leitet sich das ab? +4. Erstelle die Datei als docs/B_planning/user-stories/US-NNN-kurztitel.md +5. Setze das Erstelldatum auf heute +6. Trage einen Verweis in docs/B_planning/status.md ein diff --git a/CLAUDE.md b/CLAUDE.md index e50557f..021b1ea 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,6 +39,7 @@ docs/ task.md — Aufgabendefinition & Definition of Done status.md — Aktueller Stand decisions-log.md — Entscheidungsprotokoll (append-only) + user-stories/ — User Stories (eine Datei pro Story) C_integration/ — Phase 3: Umsetzung task.md — Aufgabendefinition & Definition of Done status.md — Aktueller Stand @@ -52,6 +53,7 @@ rules/ — Regeln für Claude (automatisch geladen) - `/project:session-end` — Session abschließen (Status, Entscheidungen, offene Fragen) - `/project:decision` — Neue Entscheidung im Log protokollieren - `/project:new-discovery` — Neues Discovery-Dokument aus Template anlegen +- `/project:new-user-story` — Neue User Story aus Template anlegen - `/project:phase-transition` — Phasenwechsel durchführen (DoD prüfen, CLAUDE.md aktualisieren) ## Session-Einstieg diff --git a/README.md b/README.md index 5045ec8..6161e6e 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,7 @@ Decisions are tracked in `docs/B_planning/decisions-log.md` across all phases. **During a session:** Work normally. Use these as needed: - `/project:decision` — Record an architectural or process decision - `/project:new-discovery` — Create a new discovery document from template +- `/project:new-user-story` — Create a new user story from template **End a session:** `/project:session-end` - Claude updates status, logs decisions, marks completed tasks, and lists open questions. @@ -39,6 +40,29 @@ Decisions are tracked in `docs/B_planning/decisions-log.md` across all phases. **Switch phases:** `/project:phase-transition` - Only when all Definition-of-Done items in the current phase are checked off. +## User Stories + +User stories are created during Phase 2 (Planning) and bridge the gap between +"what the legacy system does" (Discovery) and "what we build" (Integration). + +**Creating stories:** Use `/project:new-user-story`. Claude will ask for the role, +the desired capability, and the business value — then generate a story file from template. + +**Where they live:** `docs/B_planning/user-stories/US-NNN-short-title.md` — one file per story. + +**Numbering:** Stories are numbered sequentially (US-001, US-002, ...). Claude picks the next +free number automatically. + +**Each story includes:** +- The story itself (As a ... I want ... so that ...) +- Testable acceptance criteria +- Traceability back to a discovery document or legacy function +- Explicit scope boundaries (what does NOT belong to this story) +- Priority using MoSCoW (Must / Should / Could / Won't) + +**When to write them:** After Discovery has produced enough understanding of the legacy system. +Don't write stories before you know what the system actually does — that's what Phase 1 is for. + ## Key Principles - **Project lives in files, not sessions.** Every insight, decision, and status update is written down. diff --git a/docs/B_planning/task.md b/docs/B_planning/task.md index 13b89b9..91e83ec 100644 --- a/docs/B_planning/task.md +++ b/docs/B_planning/task.md @@ -8,6 +8,7 @@ und den Umsetzungsplan für das neue System definieren. - [ ] docs/B_planning/architecture.md — Systemarchitektur, Komponenten, Schnittstellen - [ ] docs/B_planning/tech-stack.md — Technologie-Entscheidungen mit Begründung - [ ] docs/B_planning/migration-strategy.md — Wie wird vom alten zum neuen System migriert? +- [ ] docs/B_planning/user-stories/ — User Stories aus Discovery-Ergebnissen abgeleitet - [ ] docs/B_planning/implementation-plan.md — Priorisierte Arbeitspakete ## Nicht in Scope diff --git a/docs/B_planning/user-stories/.gitkeep b/docs/B_planning/user-stories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/templates/user-story.md b/docs/templates/user-story.md new file mode 100644 index 0000000..9429b33 --- /dev/null +++ b/docs/templates/user-story.md @@ -0,0 +1,33 @@ + + +# US-NNN: [Kurztitel] + +## Story +Als [Rolle] +möchte ich [Funktion/Fähigkeit], +damit [Nutzen/Geschäftswert]. + +## Akzeptanzkriterien +- [ ] [Konkretes, testbares Kriterium] +- [ ] [Konkretes, testbares Kriterium] +- [ ] [Konkretes, testbares Kriterium] + +## Herkunft +Aus welchem Teil des Legacy-Systems leitet sich diese Story ab? +- Discovery-Dokument: docs/A_discovery/___ +- Legacy-Funktion/Modul: ___ + +## Abgrenzung +Was gehört explizit NICHT zu dieser Story? + +## Offene Fragen +- [ ] [Frage] → Klärung nötig durch: ___ + +## Priorität +[ ] Must [ ] Should [ ] Could [ ] Won't (this time)