re_struct/CLAUDE.md

84 lines
4.3 KiB
Markdown

# Projekt re:struct ein Framework zur "Planung der Planung"
## 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 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.
Der rote Faden war durchgehend: Struktur vor Inhalt. Das Gerüst steht, bevor die eigentliche Arbeit beginnt.
## Legacy-Code
Liegt in: legacy/
Regel: Keine Datei in legacy/ wird verändert. Nur lesen.
## Regeln
@rules/framework-constraints.md
@rules/session-protocol.md
@rules/parallel-agents.md
@rules/language-conventions.md
@rules/discovery-waves.md
## Aktiver Scope
Aktuelle Phase: 1 — Discovery
Arbeitsverzeichnis: docs/A_discovery/
Schreibrechte: docs/A_discovery/**, docs/B_planning/decisions-log.md
Keine Änderungen an: src/**, legacy/**, docs/templates/**
## Konventionen
- Sprache: Deutsch mit dem User, Englisch für technische Artefakte und Quellcode (siehe @rules/language-conventions.md)
- Entscheidungen immer in decisions-log.md eintragen (oben anfügen, nie editieren)
- Jede Session endet mit aktuellem status.md
- Offene Fragen explizit notieren, nicht stillschweigend überspringen
## Verzeichnisstruktur
```
legacy/ — Legacy-Code (read-only)
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
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
templates/ — Vorlagen (read-only, nie direkt editieren)
rules/ — Regeln für Claude (automatisch geladen)
.claude/commands/ — Projekt-Commands (/project:...)
```
## Workflow-Commands
- `/project:session-start` — Session beginnen (Kontext laden, Session-Ziel klären)
- `/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
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)
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
3. In task.md abgeschlossene Punkte markieren
4. Offene Fragen oder nächste Schritte explizit notieren
## Phasenwechsel
Ein Phasenwechsel erfolgt über `/project:phase-transition` wenn:
- Alle Definition-of-Done-Punkte in task.md der aktuellen Phase [x] sind
- Der User den Wechsel bestätigt
Dabei wird: Decision-Log-Eintrag erstellt, neue Phase vorbereitet, CLAUDE.md aktualisiert.