diff --git a/.claude/commands/decision.md b/.claude/commands/decision.md index 52cdd0f..e8aa068 100644 --- a/.claude/commands/decision.md +++ b/.claude/commands/decision.md @@ -7,5 +7,5 @@ Erstelle einen neuen Eintrag im Entscheidungsprotokoll. - Welche Alternativen wurden verworfen und warum? - Ist die Entscheidung endgültig oder revisierbar? 3. Fülle das Template mit den Antworten aus -4. Füge den Eintrag OBEN in docs/B_planning/decisions-log.md ein (nach dem Header) +4. Füge den Eintrag OBEN in docs/C_planning/decisions-log.md ein (nach dem Header) 5. Bestehende Einträge werden NIEMALS verändert diff --git a/.claude/commands/new-user-story.md b/.claude/commands/new-user-story.md index effe179..2b4f7dc 100644 --- a/.claude/commands/new-user-story.md +++ b/.claude/commands/new-user-story.md @@ -2,13 +2,13 @@ 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/ + - Lies bestehende Dateien in docs/B_target/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 +4. Erstelle die Datei als docs/B_target/user-stories/US-NNN-kurztitel.md 5. Setze das Erstelldatum auf heute -6. Trage einen Verweis in docs/B_planning/status.md ein +6. Trage einen Verweis in docs/B_target/status.md ein diff --git a/.claude/commands/phase-transition.md b/.claude/commands/phase-transition.md index da96a4a..6864e84 100644 --- a/.claude/commands/phase-transition.md +++ b/.claude/commands/phase-transition.md @@ -6,7 +6,7 @@ Führe einen Phasenwechsel durch. 3. Falls nein: Liste die offenen Punkte und frage den User, ob trotzdem gewechselt werden soll ## Phasenwechsel durchführen -1. Erstelle einen Eintrag in docs/B_planning/decisions-log.md: +1. Erstelle einen Eintrag in docs/C_planning/decisions-log.md: - Typ: Prozess - Entscheidung: "Phase N abgeschlossen, Wechsel zu Phase N+1" - Offene Punkte aus der alten Phase dokumentieren diff --git a/.claude/commands/session-end.md b/.claude/commands/session-end.md index f0e8973..6bd0395 100644 --- a/.claude/commands/session-end.md +++ b/.claude/commands/session-end.md @@ -9,7 +9,7 @@ Führe den Session-Abschluss durch. Lies zuerst CLAUDE.md um die aktive Phase zu 2. **Entscheidungen protokollieren** — Falls in dieser Session Entscheidungen getroffen wurden: - Erstelle für jede Entscheidung einen Eintrag nach docs/templates/decisions-log-entry.md - - Füge ihn oben in docs/B_planning/decisions-log.md ein + - Füge ihn oben in docs/C_planning/decisions-log.md ein 3. **task.md aktualisieren** — Markiere abgeschlossene Definition-of-Done-Punkte mit [x] diff --git a/.claude/commands/session-start.md b/.claude/commands/session-start.md index 8215aa7..477d3f2 100644 --- a/.claude/commands/session-start.md +++ b/.claude/commands/session-start.md @@ -2,7 +2,7 @@ Lies folgende Dateien in dieser Reihenfolge, ohne sofort zu handeln: 1. CLAUDE.md 2. task.md der aktiven Phase (siehe "Aktiver Scope" in CLAUDE.md) 3. status.md der aktiven Phase -4. docs/B_planning/decisions-log.md (nur die letzten 5 Einträge) +4. docs/C_planning/decisions-log.md (nur die letzten 5 Einträge) Fasse danach in 3-5 Sätzen zusammen: - Was ist das Gesamtziel des Projekts? diff --git a/CLAUDE.md b/CLAUDE.md index 63ea9f9..426f8c1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -3,7 +3,7 @@ ## Ziel Das Ziel dieses Projektes ist die Planung der Planung für ein Reverse-Engineering-Projekt — also nicht das eigentliche Reverse-Engineering-Projekt, sondern die Frage: Wie strukturiere ich ein komplexes, multi-session Claude Code Projekt so, dass es kohärent bleibt? Konkret erarbeitet haben wir: -Ein Projektgerüst mit drei Clustern (Discovery, Planung, Umsetzung), einer zentralen CLAUDE.md als Projekt-Gedächtnis, und dem Prinzip dass das Projekt in Dateien lebt — nicht in Sessions. +Ein Projektgerüst mit vier Phasen (Discovery, Zielbild, Planung, Umsetzung), einer zentralen CLAUDE.md als Projekt-Gedächtnis, und dem Prinzip dass das Projekt in Dateien lebt — nicht in Sessions. Ein Session-Protokoll mit festem Einstiegs- und Abschluss-Muster, das den Kontext jeder Session zuverlässig wiederherstellt. Die konkreten ersten Schritte, um von einem leeren Ordner mit Legacy-Code zu einem startbereiten Projektgerüst zu kommen — bevor auch nur eine Zeile Legacy-Code angefasst wird. Und schließlich Templates für die wiederkehrenden Dokumente, die Claude Code als Vorlage nutzt und nie selbst verändert. @@ -24,7 +24,7 @@ Regel: Keine Datei in legacy/ wird verändert. Nur lesen. ## Aktiver Scope Aktuelle Phase: 1 — Discovery Arbeitsverzeichnis: docs/A_discovery/ -Schreibrechte: docs/A_discovery/**, docs/B_planning/decisions-log.md +Schreibrechte: docs/A_discovery/**, docs/C_planning/decisions-log.md Keine Änderungen an: src/**, legacy/**, docs/templates/** ## Konventionen @@ -40,12 +40,15 @@ docs/ A_discovery/ — Phase 1: Analyse des Legacy-Codes task.md — Aufgabendefinition & Definition of Done status.md — Aktueller Stand (wird jede Session aktualisiert) - B_planning/ — Phase 2: Architektur & Entscheidungen + B_target/ — Phase 2: Zielbild (technologieunabhängig) + task.md — Aufgabendefinition & Definition of Done + status.md — Aktueller Stand + user-stories/ — User Stories (eine Datei pro Story) + C_planning/ — Phase 3: Architektur & Technologie-Entscheidungen 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 + D_integration/ — Phase 4: Umsetzung task.md — Aufgabendefinition & Definition of Done status.md — Aktueller Stand templates/ — Vorlagen (read-only, nie direkt editieren) @@ -67,14 +70,14 @@ Nutze `/project:session-start` oder manuell: 1. Diese Datei lesen 2. task.md der aktiven Phase lesen 3. status.md der aktiven Phase lesen -4. docs/B_planning/decisions-log.md lesen (letzte 5 Einträge) +4. docs/C_planning/decisions-log.md lesen (letzte 5 Einträge) 5. Kurze Zusammenfassung, dann Session-Ziel mit dem User klären 6. Auf Bestätigung warten ## Session-Ende Nutze `/project:session-end` oder manuell: 1. status.md der aktiven Phase aktualisieren -2. Entscheidungen in docs/B_planning/decisions-log.md eintragen +2. Entscheidungen in docs/C_planning/decisions-log.md eintragen 3. In task.md abgeschlossene Punkte markieren 4. Offene Fragen oder nächste Schritte explizit notieren diff --git a/README.md b/README.md index 44c3cad..aeea693 100644 --- a/README.md +++ b/README.md @@ -13,16 +13,17 @@ Keeps context coherent across sessions by storing everything in files — not in ## How It Works -The project has three phases, each in its own directory: +The project has four phases, each in its own directory: | Phase | Directory | Purpose | |-------|-----------|---------| -| 1 — Discovery | `docs/A_discovery/` | Understand the legacy system | -| 2 — Planning | `docs/B_planning/` | Design the new system | -| 3 — Integration | `docs/C_integration/` | Build and migrate | +| 1 — Discovery | `docs/A_discovery/` | Understand the legacy system (What IS?) | +| 2 — Zielbild | `docs/B_target/` | Define the target vision, technology-agnostic (What SHOULD be?) | +| 3 — Planning | `docs/C_planning/` | Architecture and technology decisions (HOW to build it?) | +| 4 — Integration | `docs/D_integration/` | Build and migrate (DO it) | Each phase has a `task.md` (what needs to be done) and a `status.md` (where we are). -Decisions are tracked in `docs/B_planning/decisions-log.md` across all phases. +Decisions are tracked in `docs/C_planning/decisions-log.md` across all phases. ## Session Workflow @@ -119,13 +120,13 @@ eine passende Konfiguration. Falls nicht vorhanden: ## User Stories -User stories are created during Phase 2 (Planning) and bridge the gap between +User stories are created during Phase 2 (Zielbild) 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. +**Where they live:** `docs/B_target/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. @@ -155,9 +156,10 @@ CLAUDE.md — Project memory (Claude reads this first) README.md — You are here legacy/ — Legacy code (read-only) docs/ - A_discovery/ — Phase 1 working directory - B_planning/ — Phase 2 working directory + decisions log - C_integration/ — Phase 3 working directory + A_discovery/ — Phase 1: Understand the legacy system + B_target/ — Phase 2: Target vision (technology-agnostic) + C_planning/ — Phase 3: Architecture & technology decisions + D_integration/ — Phase 4: Build and migrate templates/ — Document templates (read-only reference) rules/ — Constraints Claude follows automatically batch-orchestration.md — Rules for batch/subagent execution diff --git a/docs/B_planning/task.md b/docs/B_planning/task.md deleted file mode 100644 index 91e83ec..0000000 --- a/docs/B_planning/task.md +++ /dev/null @@ -1,16 +0,0 @@ -# Phase 2 — Planung - -## Ziel -Auf Basis der Discovery-Ergebnisse die Architektur, Technologie-Entscheidungen -und den Umsetzungsplan für das neue System definieren. - -## Ergebnisse (Definition of Done) -- [ ] 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 -- Implementierung von Code -- KI-Modell-Training oder -Evaluation diff --git a/docs/B_planning/status.md b/docs/B_target/status.md similarity index 74% rename from docs/B_planning/status.md rename to docs/B_target/status.md index 3f3eb2f..82315c8 100644 --- a/docs/B_planning/status.md +++ b/docs/B_target/status.md @@ -1,4 +1,4 @@ -# Status — Phase 2: Planung +# Status — Phase 2: Zielbild Letzte Aktualisierung: — Session-Nr.: 0 @@ -11,7 +11,7 @@ Wartet auf Abschluss von Phase 1 (Discovery). ## Nächste Schritte 1. Phase 1 abschließen -2. Discovery-Ergebnisse als Input für Architekturentscheidungen nutzen +2. Discovery-Ergebnisse als Input für User Stories und Anforderungen nutzen ## Offene Fragen / Blocker - Abhängig von Phase 1 diff --git a/docs/B_target/task.md b/docs/B_target/task.md new file mode 100644 index 0000000..9633aaa --- /dev/null +++ b/docs/B_target/task.md @@ -0,0 +1,17 @@ +# Phase 2 — Zielbild + +## Ziel +Auf Basis der Discovery-Ergebnisse ein technologieunabhängiges Zielbild definieren: +Was soll das neue System können? Für wen? Mit welchen Prioritäten? + +## Ergebnisse (Definition of Done) +- [ ] docs/B_target/user-stories/ — User Stories aus Discovery-Ergebnissen und neuen Anforderungen +- [ ] docs/B_target/requirements.md — Funktionale und nicht-funktionale Anforderungen +- [ ] docs/B_target/ai-strategy.md — KI-Integrationsstrategie (welche Prozesse, welche Daten) +- [ ] docs/B_target/migration-scope.md — Was bleibt, was wird neu, was fällt weg +- [ ] docs/B_target/priorities.md — Priorisierung (Must/Should/Could/Won't) + +## Nicht in Scope +- Technologie-Entscheidungen (Tech-Stack, Frameworks) +- Systemarchitektur +- Implementierung von Code diff --git a/docs/B_planning/user-stories/.gitkeep b/docs/B_target/user-stories/.gitkeep similarity index 100% rename from docs/B_planning/user-stories/.gitkeep rename to docs/B_target/user-stories/.gitkeep diff --git a/docs/B_planning/decisions-log.md b/docs/C_planning/decisions-log.md similarity index 100% rename from docs/B_planning/decisions-log.md rename to docs/C_planning/decisions-log.md diff --git a/docs/C_planning/status.md b/docs/C_planning/status.md new file mode 100644 index 0000000..abb4ae8 --- /dev/null +++ b/docs/C_planning/status.md @@ -0,0 +1,20 @@ +# Status — Phase 3: Planung + +Letzte Aktualisierung: — +Session-Nr.: 0 + +## Erledigtes +— Phase noch nicht gestartet — + +## Aktueller Stand +Wartet auf Abschluss von Phase 2 (Zielbild). + +## Nächste Schritte +1. Phase 2 abschließen +2. Zielbild-Ergebnisse als Input für Architekturentscheidungen nutzen + +## Offene Fragen / Blocker +- Abhängig von Phase 2 + +## Nicht angefasst (bewusst ausgeklammert) +- Noch keine diff --git a/docs/C_planning/task.md b/docs/C_planning/task.md new file mode 100644 index 0000000..bf93c97 --- /dev/null +++ b/docs/C_planning/task.md @@ -0,0 +1,15 @@ +# Phase 3 — Planung + +## Ziel +Auf Basis des Zielbilds die Architektur, Technologie-Entscheidungen +und den Umsetzungsplan für das neue System definieren. + +## Ergebnisse (Definition of Done) +- [ ] docs/C_planning/architecture.md — Systemarchitektur, Komponenten, Schnittstellen +- [ ] docs/C_planning/tech-stack.md — Technologie-Entscheidungen mit Begründung +- [ ] docs/C_planning/migration-strategy.md — Wie wird vom alten zum neuen System migriert? +- [ ] docs/C_planning/implementation-plan.md — Priorisierte Arbeitspakete + +## Nicht in Scope +- Implementierung von Code +- KI-Modell-Training oder -Evaluation diff --git a/docs/C_integration/.gitkeep b/docs/C_planning/user-stories/.gitkeep similarity index 100% rename from docs/C_integration/.gitkeep rename to docs/C_planning/user-stories/.gitkeep diff --git a/docs/D_integration/.gitkeep b/docs/D_integration/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/docs/C_integration/status.md b/docs/D_integration/status.md similarity index 68% rename from docs/C_integration/status.md rename to docs/D_integration/status.md index c015319..1e1e024 100644 --- a/docs/C_integration/status.md +++ b/docs/D_integration/status.md @@ -1,4 +1,4 @@ -# Status — Phase 3: Umsetzung +# Status — Phase 4: Umsetzung Letzte Aktualisierung: — Session-Nr.: 0 @@ -7,14 +7,14 @@ Session-Nr.: 0 — Phase noch nicht gestartet — ## Aktueller Stand -Wartet auf Abschluss von Phase 2 (Planung). +Wartet auf Abschluss von Phase 3 (Planung). ## Nächste Schritte -1. Phase 2 abschließen +1. Phase 3 abschließen 2. Implementierung gemäß Umsetzungsplan beginnen ## Offene Fragen / Blocker -- Abhängig von Phase 2 +- Abhängig von Phase 3 ## Nicht angefasst (bewusst ausgeklammert) - Noch keine diff --git a/docs/C_integration/task.md b/docs/D_integration/task.md similarity index 73% rename from docs/C_integration/task.md rename to docs/D_integration/task.md index 8d44c9c..69e6016 100644 --- a/docs/C_integration/task.md +++ b/docs/D_integration/task.md @@ -1,14 +1,14 @@ -# Phase 3 — Umsetzung +# Phase 4 — Umsetzung ## Ziel Das neue System auf Basis der Planungsergebnisse implementieren, den Legacy-Code ablösen und die Migration durchführen. ## Ergebnisse (Definition of Done) -- [ ] Neues System implementiert gemäß Architektur aus Phase 2 +- [ ] Neues System implementiert gemäß Architektur aus Phase 3 - [ ] Datenmigration durchgeführt und verifiziert - [ ] Legacy-Funktionalität vollständig abgedeckt - [ ] Dokumentation aktualisiert ## Nicht in Scope -- Wird in Phase 2 definiert +- Wird in Phase 3 definiert diff --git a/docs/templates/discovery-document.md b/docs/templates/discovery-document.md index 4a14145..9dfd59a 100644 --- a/docs/templates/discovery-document.md +++ b/docs/templates/discovery-document.md @@ -36,7 +36,7 @@ Dinge, die unklar geblieben sind oder nur vermutet werden. ## Querverweise Welche anderen Discovery-Dokumente oder Entscheidungen hängen damit zusammen? - docs/A_discovery/___ -- docs/B_planning/decisions-log.md → Eintrag vom ___ +- docs/C_planning/decisions-log.md → Eintrag vom ___ ## Nächste Schritte Was muss auf Basis dieses Dokuments als nächstes passieren? diff --git a/docs/templates/session_end_static.md b/docs/templates/session_end_static.md index a008201..3aa6ff8 100644 --- a/docs/templates/session_end_static.md +++ b/docs/templates/session_end_static.md @@ -1,5 +1,5 @@ Am Ende der Session, bevor du aufhörst: 1. Aktualisiere docs/A_discovery/status.md (bzw. aktive Phase) mit dem aktuellen Stand -2. Trage getroffene Entscheidungen in docs/B_planning/decisions-log.md ein +2. Trage getroffene Entscheidungen in docs/C_planning/decisions-log.md ein 3. Markiere in task.md der aktiven Phase, was abgeschlossen ist 4. Notiere offene Fragen oder nächste Schritte explizit diff --git a/docs/templates/session_start_static.md b/docs/templates/session_start_static.md index 1a46e7d..3220311 100644 --- a/docs/templates/session_start_static.md +++ b/docs/templates/session_start_static.md @@ -2,7 +2,7 @@ Lies zunächst diese Dateien in dieser Reihenfolge, ohne sofort zu handeln: 1. CLAUDE.md 2. docs/A_discovery/task.md (bzw. aktive Phase) 3. docs/A_discovery/status.md (bzw. aktive Phase) -4. docs/B_planning/decisions-log.md (nur die letzten 5 Einträge) +4. docs/C_planning/decisions-log.md (nur die letzten 5 Einträge) Fasse danach in 3-5 Sätzen zusammen: - Was ist das Gesamtziel des Projekts? diff --git a/rules/framework-constraints.md b/rules/framework-constraints.md index 09882b1..5f6c125 100644 --- a/rules/framework-constraints.md +++ b/rules/framework-constraints.md @@ -1,7 +1,7 @@ - Never write to legacy/ — read-only, no exceptions - Never write to docs/templates/ — read-only, use as reference only - Only write to the active phase directory defined in CLAUDE.md "Aktiver Scope" -- docs/B_planning/decisions-log.md is always writable (append-only, never edit existing entries) +- docs/C_planning/decisions-log.md is always writable (append-only, never edit existing entries) - Before any file write: verify target path is within allowed scope - CLAUDE.md is only modified during phase transitions - Never delete or rename existing discovery documents or decision entries