84 lines
4.3 KiB
Markdown
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.
|