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.
Andere AI-Tools
Jeder Assistent, der einen System-Prompt oder Custom Instructions akzeptiert, kann den Skill nutzen. Verweise auf:
-
SKILL.md(Übersicht) — https://github.com/LLM-Coding/Semantic-Anchors/blob/main/skill/socratic-code-theory-recovery/SKILL.md -
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
Was im Skill steckt
| Datei | Funktion |
|---|---|
|
Frontmatter, When-to-use, Zwei-Phasen-Workflow, was das LLM rekonstruieren kann und was nicht, Drift-Handling |
|
Der Copy-paste Phase-1-Prompt plus Post-Prompt-Sanity-Check und Team-Routing-Anweisungen |
|
Der Phase-2-Prompt, der PRD, Cockburn Use Cases, arc42 und Nygard-ADRs erzeugt |
|
arc42 12 Kapitel als die fixen Knoten Q3.1–Q3.12 |
|
Fully-Dressed-Felder als Use-Case-Blätter; Persona- vs. System-Use-Cases |
|
8 Qualitätsmerkmale als die fixen Knoten Q4.1–Q4.8; Mechanismus-vs-Target-Trennung |
|
ADR-Felder als Q3.9-Sub-Tree; was eine Entscheidung architektonisch signifikant macht; Pugh-Matrix-Leitfaden |
|
Striktes Format für |
|
Worked |
Weiterführende Literatur
-
Brownfield Workflow — die volle Methodik, die dieser Skill verpackt
-
Brownfield Experiment Report — kontrolliertes Experiment hinter der Methodik
-
Fair Comparison Report — drei Recovery-Ansätze mit identischen Team-Antworten
-
Peter Naur, "Programming as Theory Building" (1985) — https://pages.cs.wisc.edu/~remzi/Naur.pdf
Siehe auch
-
Semantic Anchor Translator Skill — erkennt umschriebene Konzeptbeschreibungen und schlägt den etablierten Anchor-Term vor