Skill: Socratic Code-Theory Recovery

Das Semantic-Anchors-Projekt liefert einen Claude Code Skill aus, der den Brownfield-Workflow als installierbares Artefakt verpackt. Einmal installiert, führt der Skill einen kompatiblen AI-Coding-Assistenten durch die zweiphasige Wiederherstellung der "Theorie" eines Programms (Naur 1985) aus dem Quellcode.

Was er macht

Stellt Dokumentation aus einem Brownfield-Codebase wieder her, ohne die Lücken zu halluzinieren, die der Code nicht beantworten kann. Der Skill erzwingt eine prüfbare Trennung zwischen aus Code ableitbaren Fakten und offenen Fragen, die Menschen beantworten müssen.

Phase 1 — Question Tree aufbauen

Der Skill weist das LLM an, aus fünf Wurzelfragen zum Bounded Context (Problem/User, Spezifikation, Architektur, Qualitätsziele, Risiken) einen Question Tree zu bauen. Ihre zweite Ebene ist fix — jeder Lauf erzeugt dieselben enumerierten Knoten (Q1.1–Q5.5: sechs PRD-Elemente, sechs Spezifikationskategorien, die zwölf arc42-Kapitel, die acht ISO/IEC-25010-Merkmale plus eine Prioritätsfrage, fünf Risikokategorien), sodass Q-IDs stabil sind und Bäume verschiedener Läufe Knoten für Knoten verglichen werden können. Adaptive, code-getriebene Zerlegung passiert nur unterhalb dieser fixen Ebene — ein Knoten wird so lange zerlegt, bis jedes Blatt auf eine konkrete file:line zeigt, sodass die Baumtiefe der Code-Dichte folgt und ein großer Bounded Context einen tieferen Baum ergibt. Jedes Blatt wird klassifiziert:

  • [ANSWERED] — das LLM hat es im Code gefunden, mit <file>:<line>-Evidenz

  • [OPEN] — die Antwort steckt nicht im Code; mit Category und der Rolle markiert, die antworten muss (Product Owner, Architect, Developer, Domain Expert, Operations)

Output sind zwei AsciiDoc-Dateien, mit dem Bounded-Context-Namen als Suffix, damit sequenzielle Läufe einander nie überschreiben: QUESTION_TREE-<context>.adoc (vollständige Begründungs-Spur) und OPEN_QUESTIONS-<context>.adoc (Handoff, nach Rolle gruppiert).

Zwischen den Phasen — Team beantwortet die OPEN-Leafs

OPEN_QUESTIONS-<context>.adoc wird rollenweise an Menschen geleitet. Sie schreiben Antworten direkt in die Datei. Verschobene Fragen bekommen einen expliziten (deferred)-Marker, keine Erfindung.

Phase 2 — Dokumentation synthetisieren

Der Skill nimmt den beantworteten Baum und erzeugt ein PRD, Cockburn Use Cases, eine arc42-Architekturbeschreibung und Nygard-ADRs mit Pugh-Matrix. Code-basierte Aussagen zitieren die file:line-Evidenz aus ihrem [ANSWERED]-Leaf, team-gegebene Fakten sind mit (team answer) markiert. Der Question Tree ist temporäres Gerüst, daher landen Q-IDs nicht in den finalen Dokumenten.

Wann zu verwenden

Den Skill verwenden, wenn:

  • Dokumentation fehlt, veraltet ist oder nicht vertrauenswürdig, und eine Änderung ansteht.

  • Du Dokumentation willst, der ein Auditor oder neues Team-Mitglied trauen kann — jede Aussage führt zurück entweder auf Code oder auf eine benannte Team-Antwort.

  • Du die offenen Fragen im System sichtbar machen willst, statt sie mit plausibel klingendem Text zu überschreiben.

Nicht verwenden, wenn:

  • Du Greenfield-Entwicklung machst — dafür den Spec-Driven-Workflow.

  • Du das ganze System auf einmal reverse-engineeren willst — der Skill ist auf einen Bounded Context nach dem anderen ausgelegt.

  • Der Code nicht lauffähig ist — das zuerst beheben.

Installation

Der Skill folgt der agentskills.io-Spezifikation. Verweise aus der Instruction-Datei deines Projekts auf den Skill, je nach AI-Tool:

Claude Code

Empfohlen: Installation über den Claude-Code-Plugin-Marketplace. Dieses Repository ist als Claude-Code-Marketplace veröffentlicht; das Plugin bündelt alle Semantic-Anchors-Skills (Translator, Onboarding, Socratic Code-Theory Recovery) in einer Installation.

In einer Claude-Code-Session ausführen:

/plugin marketplace add LLM-Coding/Semantic-Anchors
/plugin install semantic-anchors@semantic-anchors

Die Skills sind sofort verfügbar — Claude Code erkennt den socratic-code-theory-recovery-Skill aus dem installierten Plugin, ohne dass CLAUDE.md angepasst werden muss.

Alternative: Skill manuell in CLAUDE.md referenzieren, wenn der Marketplace-Weg nicht passt (Corporate-Installationen, gepinnte Versionen, eigene Skill-Verzeichnisse):

## Skills

Use the socratic-code-theory-recovery skill from
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery
when recovering documentation from a brownfield bounded context.

Phase 1 prompt:
https://github.com/LLM-Coding/Semantic-Anchors/blob/main/skill/socratic-code-theory-recovery/prompts/phase-1-question-tree.md

Phase 2 prompt:
https://github.com/LLM-Coding/Semantic-Anchors/blob/main/skill/socratic-code-theory-recovery/prompts/phase-2-synthesize.md

Codex

Codex unterstützt AGENTS.md für Repo-Anweisungen:

## Documentation Recovery

When working on a brownfield bounded context without documentation, use
the Socratic Code-Theory Recovery skill:
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery

The skill enforces a two-phase workflow: build a Question Tree first
([ANSWERED] with code evidence vs [OPEN] with role), let the team answer
the OPEN leaves, then synthesize self-contained documentation that traces
every claim to code evidence or a team answer.

Gemini CLI

In GEMINI.md ergänzen:

## Brownfield Documentation Recovery

For recovering documentation from existing code, follow the
Socratic Code-Theory Recovery workflow:
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery

Build a Question Tree before writing any documentation. Mark each leaf
[ANSWERED] (with file:line evidence) or [OPEN] (with Category and Ask role).
Synthesize docs from the answered tree only after the team has filled in
the OPEN leaves. The docs must be self-contained: cite file:line evidence
for code-derived claims, mark team input with (team answer). Q-IDs stay
out of the output.

Cursor

In .cursor/rules oder .cursorrules ergänzen:

## Brownfield Documentation Recovery

When asked to document an existing module without docs, use the
Socratic Code-Theory Recovery workflow:
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery

Build a Question Tree first. Each leaf must be [ANSWERED] (with code
evidence) or [OPEN] (with Category and Ask role). Do not write
documentation until the team has answered the [OPEN] leaves.

GitHub Copilot

In .github/copilot-instructions.md ergänzen:

## Brownfield Recovery

For brownfield documentation tasks, follow the Socratic Code-Theory
Recovery workflow at
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery

Two phases: first a Question Tree separating code-derivable facts from
open questions routed by role; second, synthesis into self-contained
documentation — code-evidenced or team-answered — after the team fills
the gaps.

Amazon Kiro

Kiro setzt auf Spec-Driven Development auf; dieser Skill ist das Brownfield-Pendant. Im specs/-Verzeichnis des Projekts oder in einer Spec-Datei ergänzen:

## Brownfield Documentation Recovery (Spec Onboarding)

When onboarding an existing bounded context that has no spec, use the
Socratic Code-Theory Recovery skill:
https://github.com/LLM-Coding/Semantic-Anchors/tree/main/skill/socratic-code-theory-recovery

The skill produces a Question Tree that classifies every claim as
[ANSWERED] (code evidence) or [OPEN] (role-routed). The synthesized
outputs are compatible with Kiro's spec format: a PRD, Cockburn use
cases (User Goal level), an arc42 architecture description, and Nygard
ADRs with Pugh matrices. Use these as the starting point for the
generated spec.

Was im Skill steckt

Datei Funktion

SKILL.md

Frontmatter, When-to-use, Zwei-Phasen-Workflow, was das LLM rekonstruieren kann und was nicht, Drift-Handling

prompts/phase-1-question-tree.md

Der Copy-paste Phase-1-Prompt plus Post-Prompt-Sanity-Check und Team-Routing-Anweisungen

prompts/phase-2-synthesize.md

Der Phase-2-Prompt, der PRD, Cockburn Use Cases, arc42 und Nygard-ADRs erzeugt

references/arc42.md

arc42 12 Kapitel als die fixen Knoten Q3.1–Q3.12

references/cockburn-use-cases.md

Fully-Dressed-Felder als Use-Case-Blätter; Persona- vs. System-Use-Cases

references/iso-25010.md

8 Qualitätsmerkmale als die fixen Knoten Q4.1–Q4.8; Mechanismus-vs-Target-Trennung

references/nygard-adrs.md

ADR-Felder als Q3.9-Sub-Tree; was eine Entscheidung architektonisch signifikant macht; Pugh-Matrix-Leitfaden

references/output-schema.md

Striktes Format für QUESTION_TREE-<context>.adoc und OPEN_QUESTIONS-<context>.adoc; Q-ID-Schema; [ANSWERED]/[OPEN]-Blockformate; Phase-2-Traceability-Regeln

references/examples.md

Worked [ANSWERED] und [OPEN] Leaves für jeden Hauptast (Q1-Q5)

Weiterführende Literatur

Siehe auch