Go to file
beo3000 acba1a2da0 planning 2026-03-21 10:28:52 +01:00
.claude feat: add project-level permissions for batch orchestration 2026-03-21 10:20:34 +01:00
docs planning 2026-03-21 10:28:52 +01:00
legacy refactoring framework 2026-03-20 11:43:23 +01:00
rules feat: add batch orchestration rules 2026-03-21 10:14:18 +01:00
CLAUDE.md docs: reference batch orchestration rule and command in CLAUDE.md 2026-03-21 10:20:43 +01:00
README.md docs: add batch orchestrator section to README 2026-03-21 10:23:46 +01:00

README.md

Reverse-Engineering Framework for Claude Code

A project scaffold for multi-session reverse-engineering projects with Claude Code. Keeps context coherent across sessions by storing everything in files — not in chat history.

Quick Start

  1. Copy this entire folder to your new project
  2. Put your legacy code into legacy/ (read-only, never modified)
  3. Adapt CLAUDE.md to your project (update the goal description)
  4. Adapt docs/A_discovery/task.md to your specific discovery goals
  5. Start your first session with /project:session-start

How It Works

The project has three 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

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.

Session Workflow

Start a session: /project:session-start

  • Claude reads the project state, summarizes it, and asks you for your session goal.

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.

Switch phases: /project:phase-transition

  • Only when all Definition-of-Done items in the current phase are checked off.

Batch-Modus: Mehrere Tasks automatisiert abarbeiten

Wenn die nächsten Schritte bereits geplant sind (z.B. Discovery-Waves, User Stories schreiben, Module analysieren), erspart der Batch-Modus den manuellen Session-Zyklus:

Vorher:  session-start → Aufgabe → session-end → clear → commit → repeat (pro Task)
Nachher: /project:run-batch → N Tasks laufen durch → Review → fertig

So funktioniert's

Starten: /project:run-batch oder natürlichsprachlich ("Arbeite die nächsten 3 Tasks ab").

Claude liest die task.md der aktiven Phase, zeigt die offenen Tasks, und fragt nach:

  • Welche Tasks? — alle, bestimmte Nummern, oder eine Gruppe
  • Checkpoint-Modus? — wann soll für Review pausiert werden

Checkpoint-Modi

Modus Verhalten Wann verwenden
after-each (Standard) Pause nach jeder Gruppe, Zusammenfassung zeigen Neue/unsichere Tasks
after-batch:N N Gruppen durchlaufen, dann pausieren "Mach 3, dann schau ich"
at-end Alles durchlaufen, am Ende Review Gut verstandene Tasks

Parallelisierung

Tasks sind in task.md unter ###-Überschriften gruppiert:

  • Tasks unter dem gleichen Heading laufen parallel (z.B. 3 Module gleichzeitig)
  • Zwischen Gruppen wird sequenziell gearbeitet (Wave 2 wartet auf Wave 1)

Was passiert im Hintergrund

  1. Pro Task wird ein Subagent mit frischem Context gestartet
  2. Jeder Subagent schreibt sein Ergebnis in eine eigene Output-Datei
  3. Die Output-Dateien sind sofort in VS Code sichtbar — du kannst sie während des Laufs beobachten
  4. Am Checkpoint zeigt Claude eine Tabelle mit Status und Zusammenfassung pro Task
  5. Du entscheidest: weiter, stopp, oder zeig mir [datei]
  6. Am Ende: Claude aktualisiert task.md, status.md und decisions-log.md und schlägt einen Commit vor

Sicherheitsregeln

  • Phasengrenze ist ein harter Stopp — der Batch läuft nie automatisch in die nächste Phase
  • Fehlgeschlagene Tasks bleiben offen ([ ]) und werden beim Checkpoint gemeldet
  • Ohne bestätigte Parameter startet kein Batch — Claude fragt immer nach

Beispiel

Du: /project:run-batch

Claude: Ich sehe 5 offene Tasks in Phase 1 — Discovery:
  1. [ ] structure-map.md (Wave 1)
  2. [ ] entry-points.md (Wave 2)
  3. [ ] Module: auth (Wave 3)
  4. [ ] Module: invoicing (Wave 3)
  5. [ ] Module: reporting (Wave 3)

  Welche Tasks? (alle / Nummern / Gruppe)
  Checkpoint-Modus? (after-each / after-batch:N / at-end)

Du: alle, after-each

Claude: [dispatcht Wave 1 → Checkpoint → Wave 2 → Checkpoint → Wave 3 parallel → Checkpoint]
Claude: Batch abgeschlossen. 5/5 erfolgreich. Soll ich committen?

Permissions

Damit der Batch nicht an Berechtigungsdialogen hängen bleibt, müssen die nötigen Tools in .claude/settings.json freigeschaltet sein. Das Projekt enthält bereits eine passende Konfiguration. Falls nicht vorhanden:

{ "permissions": { "allow": ["Read", "Write", "Edit", "Glob", "Grep", "Agent"] } }

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.
  • Structure before content. The scaffold exists before any analysis begins.
  • Legacy code is read-only. The legacy/ folder is never modified.
  • Templates are read-only. docs/templates/ contains structural references, not working documents.
  • Decisions are append-only. Once logged, entries in decisions-log.md are never edited.

File Overview

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
  templates/                     — Document templates (read-only reference)
rules/                           — Constraints Claude follows automatically
  batch-orchestration.md         — Rules for batch/subagent execution
.claude/commands/                — Slash commands for session workflow
  run-batch.md                   — Batch orchestrator command
.claude/settings.json            — Project-level tool permissions

Remakrs

How to use it?

Der Ablauf wäre:

  1. Session 1: Legacy-Code ins Projekt, CLAUDE.md anpassen, task.md der Phase 1 mit ersten DoD-Punkten füllen
  2. Session 2-N: Discovery-Arbeit — je ein DoD-Punkt pro Session (oder mehrere kleine)
  3. Wenn alle DoD-Punkte : Phasenwechsel zu Phase 2

Das Session-Protokoll ist kein Extra-Overhead für spezielle Anlässe — es ist der Standardrhythmus für jede Sitzung. Es stellt sicher, dass:

  • Der Kontext vom letzten Mal wiederhergestellt wird
  • Am Ende nichts verloren geht
  • Entscheidungen dokumentiert werden

Die task.md muss auch nicht in Session 1 perfekt sein. Du kannst mit 2-3 DoD-Punkten starten und sie in späteren Sessions erweitern, wenn du den Legacy-Code besser verstehst.

Kurz: Jede Interaktion = eine Session. Das Protokoll ist der Herzschlag des Frameworks, nicht ein Sonderereignis.

Wann Session-Workflow, wann Batch?

Situation Empfehlung
Erkundend, unklar was als nächstes kommt /project:session-start → manuell arbeiten
Nächste Schritte klar, Tasks in task.md definiert /project:run-batch
Ein einzelner, klar definierter Task Manuell oder Batch mit einem Item
Viele unabhängige Module analysieren Batch mit Parallelisierung

Der Batch-Modus ergänzt den Session-Workflow — er ersetzt ihn nicht grundsätzlich. Für explorative Arbeit bleibt der manuelle Zyklus der richtige Ansatz.