chore: Story 2.1 Review-Nachzug abgeschlossen (Re-Review 2026-08-16)

Nachzieh-Patches aus dem Erst-Review (bmad-code-review) + Re-Review-Verdikt:
- schema/compiler.md auf Revision 1.3: §1-Überschrift ins Deutsche,
  Pruefgrundlage auf validator.md Revision 7 angeglichen, §6.6 canonical-
  Key-Reihenfolge-Zeile auf reine ✓-Vorgabe korrigiert, §4.2-Label berichtigt,
  §1.2/§1.4-Evidenz-Widerspruch als dokumentarische Konvention aufgeloest.
- wiki/log.md: drei Demonstrationslauf-Eintraege an Vertrags-§5-Format angeglichen.
- spec-2-1: Review-Findings-Sektion + Re-Review-Verifikationsvermerk; status
  in-progress, review_loop_iteration 1.
- deferred-work.md: Code-Review-Defer-Sektion + Arbeitsauftrag "autorisierte
  Validator-Revision (Option-A-Heilung)" (F-14-Fixture, Innen-Ebenen-Key-Subset,
  Validator-Header-Anhebung OBS-1).
- sprint-status.yaml: Story 2.1 review -> in-progress; neues Action-Item
  "code-review-2-1-item-1-autorisierte-validator-revision-option" (open).

Story 2.1 bleibt in-progress: done-Faehigkeit an die naechste autorisierte
Validator-Revision gekoppelt (Option A, Frieren-Prinzip).

Co-Authored-By: Claude <noreply@anthropic.com>
@
This commit is contained in:
Michael Tamse
2026-08-17 05:37:13 +02:00
parent 6105a7bbc0
commit f91ef89078
5 changed files with 92 additions and 12 deletions
@@ -110,3 +110,36 @@ Noch nicht adressierte, aber real erkannte Arbeit — gesammelt aus Reviews. Ein
- source_spec: `_bmad-output/implementation-artifacts/spec-2-1-concepts-aus-source-material-erzeugen-okf-konform.md` (Story-2.1-Review)
summary: Determinismus-Selbsttest-Dokumentation in `schema/compiler.md` schärfen — §6.6-Interpretations-Hinweis behauptet, die ✓-Form sei „genau diese Form … im Demonstrationslauf erfüllt"; da `generated.at` pro Run variiert (Ausführungszeitpunkt, AD-15), ist der Selbsttest (Kriterium 2 „at-Normalform") als Form-Verifikation über die Normalform statt über einen festen `at`-Sekundenwert zu formulieren, damit ein „Regenerate"-Vergleich auf einem OTHER-Diff-Basis nicht an der Run-Zeit scheitert (Punkt-14-sicher). Für Story 2.3 (Determinismus/A0-7-Verifikation) bzw. nächste Validator-Revision.
evidence: Edge-Case-Review (Story 2.1): „Determinism self-test compares generated.at which varies per run" — eines von mehreren als Defer klassifizierten Findings (die übrigen ebenfalls in diesem Block).
## Deferred from: code review of story-2.1 (2026-08-16)
> **Code-Review-Defer (bmad-code-review, 2026-08-16):** Diese Einträge decken die im externen Adverse-Review von Story 2.1 als Defer klassifizierten Befunde ab, die bewusst nicht in Story 2.1 behoben werden. Sie sind getrennt von den Step-04-Review-Defer-Kontexten oben (die der Implementierung selbst entstammen).
- source_spec: `_bmad-output/implementation-artifacts/spec-2-1-concepts-aus-source-material-erzeugen-okf-konform.md` (Code Review, Story 2.1)
summary: Content-Truth-Verifikation einführen — kein bestehender Check verifiziert, dass der Body eines Concepts seinen deklarierten `raw/`-Quellen (Inhalt) entspricht. Die drei Concepts sind im Review inhaltlich korrekt (Spot-Checks gegen PRD/epics/spine bestätigt), aber Validator (§3 rein strukturell), spec-Verification (grep-Smoke) und compiler.md-Selbsttests (Kriterien 13) decken nur Form/Existenz, nicht den Inhalt. Verifikation, dass erfundenes/gegenläufiges Body-Content nicht als kuratierte Wahrheit durchgeht, ist die Kern-Fähigkeit (FR-2/FR-5).
evidence: Verification-Gap-Review (Story 2.1): Body-Fälschung bei byte-identischem Frontmatter ändert kein Verdikt und keinen grep-Check. Für Story 2.2 (Claim-granulare Provenienz, AD-4a/A0-3) bzw. eine spätere Inhaltstreue-Prüfung.
- source_spec: `_bmad-output/implementation-artifacts/spec-2-1-concepts-aus-source-material-erzeugen-okf-konform.md` (Code Review, Story 2.1)
summary: Determinismus-Selbsttest-Dokumentation in `schema/compiler.md` schärfen — §6.6-Interpretations-Hinweis behauptet, die ✓-Form sei „genau diese Form … im Demonstrationslauf erfüllt"; da `generated.at` pro Run variiert (Ausführungszeitpunkt, AD-15), ist der Selbsttest (Kriterium 2 „at-Normalform") als Form-Verifikation über die Normalform statt über einen festen `at`-Sekundenwert zu formulieren, damit ein „Regenerate"-Vergleich auf einem OTHER-Diff-Basis nicht an der Run-Zeit scheitert (Punkt-14-sicher). Für Story 2.3 (Determinismus/A0-7-Verifikation) bzw. nächste Validator-Revision.
evidence: Edge-Case-Review (Story 2.1): „Determinism self-test compares generated.at which varies per run".
- source_spec: `schema/validator.md` (Story 1.4) — aufgelöst via Option A
summary: Frieren-Verletzung heilen — die Innen-Ebenen-Klarstellung (Punkt-6 / Key-Subset auf `sources`/`generated`-Eintragsebene), die Spot 2.1 als Rev-7-Notiz in `schema/validator.md` eingetragen hat, muss in der **nächsten autorisierten Validator-Revision** formal mitlaufen (gemeinsam mit der F-14-Negativ-Fixture). Dadurch verliert die Abweichung ihren Status als unautorisierte Mutation und Story 2.1 ist `done`-fähig. Der Rev-7-Hinweis bleibt bis dahin erhalten (kein Rückbau).
evidence: Code Review (Story 2.1) — Decision-Befund, aufgelöst als Option A am 2026-08-16.
- source_spec: `raw/README.md` (Konvention, Story 1.2) — R-1
summary: R-1 (Compiler-Input-Interface) — Verdikt **Bestanden**: `schema/compiler.md` definiert seine Source-Eingabe als Menge beliebiger `raw/`-Dateien (Set-Interface, §1.2 „jede Datei unter `raw/` ist Evidenz"), nicht als einzelnen Pfad. Der erkennungsseitige Mechanismus, WELCHE `raw/`-Dateien wann verarbeitet werden („Run-ohne-Pfad"-Nutzererwartung aus DRYRUN.md: Kompilation via git diff + SHA-256-Record aus den `source.md`-Records), ist bewusst nicht in Story 2.1 enthalten und gehört als Erkennungs-/Auswahl-Mechanismus in die AD-5-Home-Story (Epic 3, Story 3.1/3.2).
evidence: Code Review (Story 2.1) R-1 — Epic-3-Forward-Risk, keine AC-Verletzung.
- source_spec: `raw/README.md` / `schema/compiler.md` §1.2–§1.4 — R-2
summary: R-2 (Nicht-Markdown-Quellen) — Verdikt **Bestanden**: die Compiler-Instruktion liest Sources endungsneutral als Datei (§1.2/§1.4), unterstellt keine `.md`-Endung; PDF ist zulässige Evidenz (Vertrag §3.3 verlangt nur einen Dateipfad unter `raw/`, Validator EC-1 prüft nur Existenz). Die Konventions-/Asset-Zuordnungsfrage (Namensschema für Nicht-Markdown-Quellen) bleibt offen und gehört zu Epic 2/3 (Nutzer-Input-Gestaltung für den Dryrun-Forderungskatalog). Als dokumentarischer Hinweis: §1.2/§1.4-Widerspruch („jede Datei ist Evidenz" vs. „Artefakt-Dateien sind KEIN Input") in der Instruktion selbst klären (siehe Patch-Findings in der Story).
evidence: Code Review (Story 2.1) R-2 — Konventionsfrage, kein Blocker.
## Deferred from: code review of story-2.1 (2026-08-16) — Arbeitsauftrag: autorisierte Validator-Revision (Option-A-Heilung)
> **Konkreter Arbeitsauftrag (aus Re-Review vom 2026-08-16):** Sobald die nächste **autorisierte Validator-Revision** beginnt (Story-/Autorisierungs-Kanal, Bereich `schema/`, Konsistenz mit dem Story-1.4-Prozess), sind die folgenden drei Punkte dort formal zu tragen. Sie machen Story 2.1 `done`-fähig und schließen die Referenzkette compiler.md → validator.md sauber. `validator.md` selbst bleibt bis dahin unverändert (Frieren/AD-3).
- summary: **1. F-14-Negativ-Fixture ergänzen** — ein `resource`-Pfad, der außerhalb `raw/` landet, aber existiert (z.B. `resource: README.md`), hat bislang kein Negativ-Fixture; §6.2 deckt den Fall, §7.1-Fixtures belegen ihn nicht (Retrospective F-14, epic-1-retro AI-7). In der autorisierten Revision als Negativ-Fixture ergänzen (erwartetes Verdikt: `FAIL … Punkt 4: resource ausserhalb raw/ oder unzulaessiger Pfad (…|…)`), Beleg unter §7.1 (Punkt 4).
- summary: **2. Innen-Ebenen-Key-Subset-Klarstellung formal tragen** — die heute als unautorisierte Rev-7-Notiz in `validator.md` §7.3 (Punkt 6: unautorisierte Keys innerhalb `sources`/`generated`/`verified`-Einträgen, Vertrag §3.3–§3.5) liegende Klarstellung wird Teil der autorisierten Revision; damit verliert sie ihren Status als unautorisierte Mutation und Story 2.1 ist `done`-fähig. (Kann mit F-14 in einer gemeinsamen Revision laufen.)
- summary: **3. Validator-Header-Revisionszahl anheben (OBS-1)**`schema/validator.md` §0-Header trägt weiter „Validator-Revision: 6", während der Revisionslog (§8) als letzten Eintrag „Revision 7" führt (pre-existing Selbst-Inkonsistenz). In derselben autorisierten Revision den Header auf die dann aktuelle Revisionszahl anheben — damit schließt sich die von compiler.md §0/§8 auf „Revision 7" referenzierte Kette header-seitig. (Korrektur jetzt nicht möglich, da `validator.md` friert.)
evidence: Re-Review (Code Review Story 2.1), 2026-08-16 — Option-A-Home-Story; Epic-1-Retrospective F-14/AI-7 (Defer-Kontexte, deferred-work.md).
@@ -2,8 +2,8 @@
title: 'Concepts aus Source Material erzeugen (OKF-Konform) (Story 2.1)'
type: 'feature'
created: '2026-08-16'
status: 'done'
review_loop_iteration: 0
status: 'in-progress'
review_loop_iteration: 1
baseline_commit: a67ba659108006a54eb54b84592d1dba046af96e
context:
- _bmad-output/implementation-artifacts/epic-2-context.md
@@ -87,6 +87,38 @@ context:
- Given ein neues Concept auf Root-Ebene, when es angelegt wird, then wird es in `wiki/index.md` verlinkt (Punkt 11/§6), ohne Area-Verzeichnis anzulegen (Story 2.4).
- Given die Instruktion, when sie ausgeführt wird, then ist sie eine eigenständige, deterministische, agent-unabhängige Anweisung (D-3, AD-17h) — kein Standalone-Programm.
### Review Findings (bmad-code-review, 2026-08-16)
**patch:**
- [x] [Review][Patch] `schema/compiler.md` §1-Überschrift ist Englisch („Input (what the compiler consumes)") — Verstoß gegen eigene Always-Regel „Instruktion … in Deutsch"; fix: `## 1. Input (was der Compiler konsumiert)` [schema/compiler.md:23] — **erledigt, Rev 1.3**
- [x] [Review][Patch] `schema/compiler.md` enthält „Revision 6"-Referenz auf die Prüfgrundlage, während der Commit `validator.md` Rev 7 liefert — Selbstwiderspruch des Instruktions-Selbstbilds; fix: Revisionszahl angleichen (bzw. bei Rev-7-Rückbau konsistent „Revision 6" lassen) [schema/compiler.md:5, schema/compiler.md:127] — **erledigt, auf Revision 7 angeglichen, Rev 1.3**
- [x] [Review][Patch] `schema/compiler.md` §6.6-Referenztabelle enthält eine irreführende Zeile: canonical-Key-Reihenfolge wird als „✗"-Abweichung gelistet, aber als „kein FAIL, aber nicht erzeugt" beschrieben und das Label „§6.4" verweist auf eine reine Pfad-Regel (Punkt 4); fix: Zeile aus der ✗-Tabelle herausnehmen (kein Validator-FAIL) bzw. Label auf §4.4 korrigieren [schema/compiler.md:102] — **erledigt: Zeile auf reine ✓-Vorgabe, Label auf §4.2, Rev 1.3**
- [x] [Review][Patch] `schema/compiler.md` §1.2 vs. §1.4 widersprechen sich: „jede Datei unter `raw/` ist Evidenz" (extensiv) vs. „Artefakt-/Grenzdateien (`raw/README.md`, `raw/**/source.md`) sind KEIN Input" (restriktiv) — neue normative Regel, die so weder im Vertrag noch im Spine noch im Validator steht; fix: in §1.4 die nicht-mechanisch prüfbare Sonderregel als dokumentarische Konvention (nicht als Input-Verdikt) kennzeichnen; alternativ im Change Log als Klarstellung nachführen — **erledigt: §1.2 präzisiert, §1.4 als dokumentarische Konvention gekennzeichnet, Rev 1.3**
- [x] [Review][Patch] `wiki/log.md`-Einträge weichen vom Vertrags-§5-Beispielformat ab (freie Prosa statt „`- neu:` … angelegt (sources: …)"); keine Maschine prüft das, aber der dokumentierte Doku-Standard wird nicht eingehalten; fix: Einträge an das §5-Beispielformat angleichen [wiki/log.md] — **erledigt: drei Demonstrationslauf-Einträge auf §5-Format umgestellt**
**defer:**
- [x] [Review][Defer] Contract-Verletzung: `schema/validator.md` im Commit mutiert (Rev-7-Notiz §7.3), obwohl Always/Never + AD-3 es als unverändert autorisiert frieren [schema/validator.md:262] — **aufgelöst via Option A (2026-08-16):** `validator.md` bleibt mit Rev-7-Hinweis erhalten (inhaltlich korrekt, kein Rückbau); Heilung über die nächste **autorisierte Validator-Revision** (F-14-Fixture + Innen-Ebenen-Klarstellung dort formal tragen — vgl. `deferred-work.md`); Story 2.1 bleibt bis dahin `in-progress`, Review-Wiedervorlage vor `done`. (Grund: Frieren-Prinzip wahren, ohne die nützliche Klarstellung zu verwerfen.)
- [x] [Review][Defer] Content-Truth-Verifikation: kein Check verifiziert den Inhalt eines Concepts gegen seine deklarierten `raw/`-Quellen (Verification-Gap) — deferred, Story 2.2 [wiki/*.md]
- [x] [Review][Defer] Determinismus-Selbsttest-Dokumentation: §6.6-Interpretations-Hinweis behauptet eine starte „genau diese Form", obwohl `generated.at` pro Run variiert (AD-15) — deferred, Story 2.3 [schema/compiler.md:106]
- [x] [Review][Defer] R-1 (Compiler-Input-Interface): Compiler definiert seine Source-Eingabe als **Menge beliebiger `raw/`-Dateien (Set-Interface)** — Verdikt **Bestanden**. Der übergebene dryrun-Fall „einzelner Pfad" existiert nicht mehr. Empfehlung gemäß Review-Vorgabe ergänzend: den Mechanismus der Source-Auswahl (welche `raw/`-Dateien wann verarbeitet werden) als Konventions-/Erkennungsproblem für Epic 3/AD-5-Home-Story in `deferred-work.md` festhalten — Firm-Zwang, die „Run-ohne-Pfad"-Lücke der Nutzererwartung bleibt offen (Story 3.1/3.2) — deferred, Epic 3
- [x] [Review][Defer] R-2 (Nicht-Markdown-Quellen): Compiler-Instruktion liest Sources **endungsneutral als Datei** (§1.2/§1.4, Verdikt **Bestanden**); die Konventions-/Asset-Zuordnungsfrage für PDF bleibt als dokumentierte Konvention offen — deferred, Epic 2/3 [raw/README.md]
### Re-Review Verifikationsvermerk (bmad-code-review, 2026-08-16)
Konforme Wiedervorlage nach dem Erst-Review — alle 5 Patch-Findings verifiziert, kein neuer Bruch:
- ✅ P-1..P-5 (compiler.md Rev 1.3, log.md §5-Format, spec-status, deferred-work, sprint-status) sauber umgesetzt und im Working Tree verifiziert.
-**AC-Abgleich** gegen `epics.md` Story 2.1: unverändert gültig (type-Pflicht, §3-Subset, v1-Trust `generated {by,at}` ohne `verified`, Wissenseinheiten ≠ 1:1, Index-Pflicht, kein Area, D-3-Textinstruktion) — kein neuer Verstoß durch die Patches.
-**Validator-Run gegen das Bundle** (gemäß `schema/validator.md`): **SUCCESS für alle 5 Bundle-Dateien** (`index.md`, `log.md`, 3 Concepts) — Points 114 ✔, V-1/V-2 ✔, EC-1/EC-3/EC-11 ✔, Punkt 11 (alle 3 Identitäten verlinkt) ✔. Keine Abweichung.
-**AD/Provenienz:** AD-3 (`raw/` unangetastet, leerer Diff), AD-5 (nur neue Root-Concepts), AD-10 (`adapters/` unverändert, keine abweichende Knowledge-Semantik), D-3 (rein textuell, kein Executable-Block), AD-4b (alle `sources[].resource` → existierende `raw/`-Dateien, nie `wiki/`), v1-Default (`generated` gesetzt, `verified` ungesetzt).
-**R-1** (Menge von Source-Pfaden, Set-Interface — compiler.md §1.2 definiert die gesamte evidierenfähige `raw/`-Menge; Einzelpfad-Interface existiert nicht): **Bestanden**, kein Finding. Erkennungs-Mechanismus bewusst deferriert (AD-5-Home-Story, Epic 3, Story 3.1/3.2).
-**R-2** (Nicht-Markdown-Quellen): Instruktion liest Sources endungsneutral als Datei (Vertrag §3.3: nur Dateipfad unter `raw/`; Validator EC-1: nur Existenz); PDF zulässig; §1.4 dokumentarische Konvention (§1.2/§1.4-Widerspruch via Rev 1.3 Patch #4 sauber aufgelöst, kein neuer Bruch): **Bestanden**.
-**Option A intakt:** `validator.md` Rev-7-Notiz unverändert erhalten (kein Rückbau); Spec konsistent in-progress; `done`-Fähigkeit korrekt an die nächste autorisierte Validator-Revision gekoppelt (F-14-Fixture + Innen-Ebenen-Klarstellung), kein Widerspruch zum Frozen-Bereich. OBS-1 (`validator.md`-Header „Revision 6" vs. Revisionslog „Revision 7") als pre-existing Mitnahme in dieselbe Revision vermerkt.
**Verdikt:** Story 2.1 bleibt **`in-progress`** — ausschließlich gebunden an die offene Option-A-Voraussetzung. Kein AC-/Vertrags-Blocker in den Story-Artefakten; keine neuen Findings aus den Nachzieh-Patches. Wiedervorlage vor `done`, sobald die nächste autorisierte Validator-Revision die F-14-Fixture + Innen-Ebenen-Klarstellung (und die Header-Anhebung) formal trägt.
## Spec Change Log
- (leer bis zum ersten Review-Loopback)
@@ -29,7 +29,7 @@
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
# - Retrospective appends its action items to action_items; the status view surfaces open ones
generated: 08-14-2026 00:00
last_updated: 08-16-2026 11:48
last_updated: 08-16-2026 12:10
project: wow20
project_key: NOKEY
tracking_system: file-system
@@ -43,7 +43,7 @@ development_status:
epic-1-retrospective: done
epic-2: in-progress
2-1-concepts-aus-source-material-erzeugen-okf-konform: review
2-1-concepts-aus-source-material-erzeugen-okf-konform: in-progress
2-2-claim-granulare-provenienz-dokumentieren: backlog
2-3-concepts-verlinken-eine-erlaubte-linkform: backlog
2-4-deterministische-bereichszuordnung-concept-hierarchie: backlog
@@ -149,3 +149,14 @@ action_items:
mit Epic-/Validator-Zuordnung notiert; F-06/F-08 zusaetzlich im Validator Rev. 6 als
'Offene Punkte' verankert."
ref: "_bmad-output/implementation-artifacts/epic-1-retro-2026-08-15.md#F-04"
- id: "code-review-2-1-item-1-autorisierte-validator-revision-option"
epic: 2
action: "Autorisierte Validator-Revision starten (Option-A-Heilung fuer Story 2.1):
1) F-14-Negativ-Fixture (resource ausserhalb raw/, existiert) ergaenzen;
2) Innen-Ebenen-Key-Subset-Klarstellung (Punkt 6 in sources/generated/verified)
formal tragen (bisher unautorisierte Rev-7-Notiz);
3) Validator-Header-Revisionszahl anheben (Header 'Revision 6' vs. Revisionslog
'Revision 7', OBS-1). Danach Story 2.1 zur Review-Freigabe wiedervorlegen."
owner: "dev"
status: open
ref: "_bmad-output/implementation-artifacts/deferred-work.md"