re_struct/CLAUDE.md

4.7 KiB

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 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. 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 @rules/batch-orchestration.md

Aktiver Scope

Aktuelle Phase: 1 — Discovery Arbeitsverzeichnis: docs/A_discovery/ Schreibrechte: docs/A_discovery/, docs/C_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_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)
  D_integration/                 — Phase 4: 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)
  • /project:run-batch — Batch von geplanten Tasks semi-autonom abarbeiten (Checkpoints, Parallelisierung)

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/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/C_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 sind
  • Der User den Wechsel bestätigt Dabei wird: Decision-Log-Eintrag erstellt, neue Phase vorbereitet, CLAUDE.md aktualisiert.