Files
Michael TamseandClaude e3e7ec346d feat: Story 3.1 Code-Review-Loop-2-Patches (bmad-code-review, 4 Layer; Nutzer-Entscheidungen D-1/D-2/D-3/D-4 = 1/1) — compiler.md Revision 2.4.2, Diff-Selbsttest operationalisiert, Sandbox-Verification-Record, Story done
16 Patches + 4 Decision-Resolutions (alle 1 = empfohlen): (1) D-1: §5.9-Pkt.-5-Probe = git diff --name-only <Baseline-Commit> -- wiki/ + git status --porcelain (vor Commit, Neu-Anlage-Zielpfade erlaubt, Pfad-Normalisierung, Rollback-Mechanik); (2) D-2: R-1-Baseline-Commit im log.md-Run-Eintrag notiert + Diskrepanz-Regel (git diff gewinnt, SHA-256 Sekundär) + Fallback; (3) D-3: INPUT_UNCOMMITTED-Abbruch „published/committed Input erforderlich" als P2-Element (1) + §1.1-Anker-Divergenz-Fußnote; (4) D-4: Sandbox-Edge-Tests S1-S5 + S6-Kontrolle re-executiert, echte Outputs als Verification Record in der (nicht gefrorenen) Spec-## Verification + re-executierbares Skript versioniert (implementation-artifacts/sandbox-3-1/); (5) Instruktions-Präzisierungen: P2-Zeitpunkt, No-Op-Kandidat, Mehrfach-Treffer-Reihenfolge, Update-Pfad-Rollback §5.3, AD-17h-Gap (Home Story 3.8), Term-Ableitung, visited-set, Worked Example auf Ist-Baum korrigiert, stale-Anker nachgeführt. wiki/log.md: 2026-08-19-Eintrag (Rev 2.4.2, Loop-2-Aufarbeitung, D-1-Probe-Beleg). deferred-work.md: F17-Eintrag saniert + VG-Beleg auf Verification Record zeigt. sprint-status.yaml: 3-1-... done, last_updated 08-19-2026. AD-3/D-3/keine neue §7-Klasse/Commit-Boundary gehalten.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 06:44:49 +02:00

43 KiB
Raw Permalink Blame History

Log

2026-08-19

  • Story 3.1 «Inkrementellen Datenfluss implementieren (Interpret → Reconcile → Synthesize → Update)» → done (bmad-code-review Loop 2, 4 Layer: blind-hunter / edge-case-hunter / verification-gap / acceptance-auditor; Diff-Baseline 802a557efc543c; Nutzer-Entscheidungen D-1/D-2/D-3/D-4 = 1/1/1/1, jeweils empfohlene Option): schema/compiler.mdRevision 2.4.2 (alle 4 Decision-Resolutions + 16 Patches, rein textuell — kein Code, kein Standalone, keine neue §7-Klasse): (1) D-1: Diff-Selbsttest (Pkt. 5) operationalisiert — Probe = git diff --name-only <Baseline-Commit> -- wiki/ plus git status --porcelain -- wiki/ (erfasst ungetrackte ??-Dateien — die Duplikat-Kontrolle braucht diese Sicht; git diff allein ist blind dafür), Probe-Zeitpunkt vor dem Commit (am Ende des P2-Blocks, nach den Mutationen; nach dem Commit wäre die Probe vacuous, AD-17f), erlaubte Menge um Neu-Anlage-Zielpfade (§5.1/§5.7) ergänzt (Misch-Runs: keine fälschlichen Ghost-Diffs), Pfad-Normalisierung (Strip wiki/-Präfix + .md-Suffix vor dem Teilmenge-Vergleich), Rollback-Mechanik deterministisch benannt (git checkout -- <wiki/pfad> für modifizierte Pfade, ungetrackte löschen, Index git checkout -- <index>); (2) D-2: R-1-Baseline deterministisch<Baseline-Commit> (HEAD der vorherigen Mutations-Boundary, AD-17f) wird vom Producer im wiki/log.md-Run-Eintrag notiert (voller SHA; AD-14: Git liefert Historie, nicht Domain-State — deshalb die Notiz); Diskrepanz-Regel: git diff gewinnt, SHA-256 bleibt Sekundär-Fingerprint; Fallback: ohne vorherige Mutations-Boundary gelten alle raw/-Dateien als Zuwachs; (3) D-3: INPUT_UNCOMMITTED-Abbruch implementiert — neuer P2-Check-Block-Element (1) Input-Zustand: Working-Copy von raw/+wiki/ gegen HEAD prüfen, bei Abweichung benannter Abbruch „published/committed Input erforderlich" (AD-17a) vor Interpretation und vor jeder Mutation — die gefrorene I/O-Matrix-Verpflichtung ist damit als Zustandsprüfung + Abbruchmeldung umgesetzt (zuvor nur Referenz auf §1 Pkt. 1); die Spec↔Anker-Divergenz (frozen Spec zitiert 3× „§1.1", §1 ist eine nummerierte Liste Pkt. 14 ohne §1.1-Label) ist als dokumentierte Fußnote in Rev-2.4.2 gesichert (Spec bleibt frozen); (4) D-4: Sandbox-Edge-Test-Nachweis — die fünf I/O-Matrix-Szenarien (HAPPY_PATH_UPDATE, UNTOUCHED_CONCEPT, CONCEPT_COLLISION_BESTEHEND, CHANGE_DETECTION, PRE_RUN_RECONCILE) + die D-3-Abbruch-Kontrolle sind als re-executierbares Skript (_bmad-output/implementation-artifacts/sandbox-3-1/run-sandbox.sh, bash … ab Workspace-Root, Sandbox-Bäume unter /tmp) mit konkreten deterministischen Ausgaben in der Spec-## Verification Record (Ausführungs-Beleg, 2026-08-19) verankert — die Verweise „in der Spec-Verification enthalten" (dieses Log, deferred-work.md) sind damit auflösbar; (5) Instruktions-Präzisierungen: P2-Block-Zeitpunkt (nach Reconcile, am Anfang der Mutationsphase; Diff-Probe am Block-Ende), No-Op-Kandidat-Regel (Evidenz bereits vollständig enthalten → keine Mutation/kein at-Bump/kein log.md-Eintrag, byte-identisch), Mehrfach-Treffer-Reihenfolge für alle Einheiten (Zuwachs-Sicht-Ordnung; lexicografisch nur Tie-Break — AD-17h), Update-Pfad-Rollback in §5.3 Pkt. 3 (modifizierte Pfade aus Baseline-Commit wiederherstellen), generated.at↔AD-17h-Gap explizit benannt (Home: Story 3.8 — Wanduhr-at erzeugt bei gleichem Input unterschiedliche Bundle-States; Konvention A0-20 bleibt bindend, Wechsel = Ask-First), Term-Ableitung als §2-Interpretation abgegrenzt (Erhebung mit festem Term deterministisch; Term-Mechanismus Story 3.2), Link-Following mit besuchter Menge (keine Schleife bei zyklischen Links), Worked Example (Pkt. 7) auf den realen Ist-Baum korrigiert (rg -l 'FR-12' wiki/ trifft wiki/knowledge-kompilation-inkrementell.md, nicht wissensarchitektur/source-material.md — das Rev-2.4.1-Beispiel enthielt den Term nicht), stale-Anker (§3.2-Kollisionsprüfung, §3-Voraussetzungsprüfung, §5.8-Pkt.-3-Zeiger „Pkt. 1" → „Pkt. 2") nachgeführt. Abschlussklausel Rev 2.4.2: schema/wiki-compiler.md/schema/validator.md/raw/ unverändert (AD-3); keine neue §7-Invaliditätsklasse; kein Standalone (D-3); keine Vertragsänderung; Commit-Boundary-Regel unverändert. Review-Loop-2-Aufarbeitung zum Implementierungs-Eintrag (2026-08-18, oben): (a) der dortige (b)-Diff-Selbsttest-Beleg zitierte die Vor-Rev-2.4.1-Form git diff --stat -- wiki/ — die operative Probe ist seit Rev 2.4.2 die D-1-Form (git diff --name-only <Baseline-Commit> -- wiki/ + git status --porcelain -- wiki/); (b) der Implementierungs-Eintrag dokumentierte „Revision 2.4" — der Story-3.1-Commit efc543c enthält Revision 2.4 + 2.4.1 (Step-04-Review-Patch-Runde 2026-08-18, in deferred-work.md als „Story-3.1-Review-Protokoll" protokolliert) und ist jetzt auf 2.4.2 (dieser Eintrag) fortgeführt; (c) Statuskette: in-progress (Implementierungs-Eintrag) → review (Review-Handoff efc543c) → done (dieser Eintrag — Loop-2-Abschluss: 4 Decision-Resolutions + 16 Patches, keine unresolved Findings; spec-Frontmatter status: 'done' + review_loop_iteration: 2 deckungsgleich). Selbsttest-Beleg (re-executiert 2026-08-19, ab Workspace-Root, D-1-Probe-Form; <Baseline-Commit> = 802a5576eb4bbf54761a947e43e68b7e7ea9d67d = Review-Baseline, hier als Konventions-Demonstration notiert — bei echten Run-Einträgen ist es der HEAD der vorherigen Mutations-Boundary, D-2): (a) Instruktions-Integrität — grep -n "5.9" schema/compiler.md → §5.9-Sektion vorhanden; grep -n "Aktualisierung ist Epic 3" schema/compiler.mdkein Treffer (Hold ersetzt, unverändert); (b) Diff-Selbsttest (Erhaltungs-Invariante)git diff --name-only 802a557… -- wiki/ → ausschließlich wiki/log.md (dieser Eintrag; keine Concept-Datei, kein Index, kein Ghost-Diff auf nicht betroffenen Pfaden — die Instruktions-Story mutiert keine Concept-Inhalte; FT-6/FR-12) + git status --porcelain -- wiki/ M wiki/log.md (tracked, modifiziert — im erlaubten Satz; keine ??-Einträge = keine ungetrackten neuen Dateien = kein Duplikat); normalisiert: log ⊆ erlaubte Menge (log.md); (c) Validator-Lauf (human-mechanisch ausgeführte Text-Instruktion schema/validator.md Rev 9, D-3 — kein CLI): alle 7 wiki/-Dateien SUCCESS (Punkte 1/2/6/7/8/9/10/11/12/13/14, EC-1 — unverändert zur Story 2.5, Story 3.1 mutiert keine Concept-Inhalte); das per-Datei-Verdikt ist der Ausführungs-Nachweis der Spec-Verification Pkt. 3 und AC 5; (d) Sandbox-/Edge-Tests (I/O-Matrix) — ausgeführt, echte Outputs in der Spec-## Verification Record (Ausführungs-Beleg, 2026-08-19) (re-executierbar: bash _bmad-output/implementation-artifacts/sandbox-3-1/run-sandbox.sh): S1 HAPPY_PATH_UPDATE (Probe → alpha, log; 0 untracked), S2 UNTOUCHED_CONCEPT (leere Probe), S3 CONCEPT_COLLISION_BESTEHEND (nur M-Einträge, kein ??), S4 CHANGE_DETECTION (außschließlich raw/alpha-v2.md; SHA-256 21e7fc1d… identisch), S5 PRE_RUN_RECONCILE (Run-FAIL V-1, Zustand sauber), S6 INPUT_UNCOMMITTED (benannter Abbruch „published/committed Input erforderlich (AD-17a)"). sprint-status.yaml: 3-1-inkrementellen-datenfluss-implementieren-interpret-reconcile reviewdone, last_updated → 08-19-2026.

2026-08-18

  • Story 3.1 «Inkrementellen Datenfluss implementieren (Interpret → Reconcile → Synthesize → Update)» (Implementierung, Instruktions-Story D-3): schema/compiler.mdRevision 2.4 (inkrementeller Datenfluss als Erweiterungs-Instruktion, rein textuell — kein Code, kein Standalone, keine neue §7-Klasse): (1) §3 Reconcile — Pkt. 2 Kollision-Hold durch Update-Routing ersetzt (bestehende Wissenseinheit → Update-Kandidat im bestehenden Concept-Pfad, kein Duplikat, kein stummer Überschreib, AD-16-Default-Erhaltung; der Epic-3-Abbruch entfällt) + textuell-deterministische Kandidatenliste (Konzept-/Term-Überschneidung via grep/ripgrep, index.md-Traversal, Link-Following — AD-13; feinkörniger Relevanz-Mechanismus Story 3.2 vorbehalten); (2) neue §5.9 «Inkrementelles Update bestehender Concepts (Story 3.1)» (nach §5.8, vor §6): Update-Stimulus = Reconcile-Kandidatenliste (§3 Pkt. 2); Mutationsmechanik — Erweitern (Absatz/Beleg ergänzen), Präzisieren (Aussage schärfen, Beleg neu/nachgeführt, §5.5), Korrigieren (ersetzte Aussage + Ersetzungsbeleg, keine stille Löschung, AD-16-Default), sources nur um echte neue Belege ergänzen (§5.5-Pkt.-1b-Relokation, Vertrag §3.3-Subset), generated.at = aktueller Run-Zeitstempel (A0-20, einmalige at-Festlegung pro Run), vorhandenes human-verified bleibt stehen; Index-/Link-Form unverändert (§5.6-Pin, kein neuer Link bei reinem Body-Update); log.md-Eintragspflicht (Vertrag §5, „Story 3.1-Update"-Markierung; Disagreement-Fälle dokumentiert — Epic-4-Interface, keine Korrektur-Klassifikation hier); Erhaltungs-Invariante (FT-6/FR-12) + re-executierbarer Diff-Selbsttest — nach jedem Run git diff --stat -- wiki/, geänderte Dateien ⊆ (betroffene Concepts log.md nachgeführte index.md), Ghost-Diff = textuell benannter Instruktions-Verstoß (NFR-4), nie „Regenerate Everything" (AD-5, A0-6); Run-Vorphase-Bausteine — Defer R-1 Input-Zuwachserkennung (Change-Detection via git diff auf raw/ und/oder SHA-256-Record aus raw/**/source.md) und Defer P2 Pre-Run-Reconcile-Check-Block (Zielpfade, Quellen-Existenz EC-1, Betroffenheits-Kandidatenliste, wiki/index.md-V-1) als wiederverwendbare textuelle Check-Blöcke (D-3, keine neuen Prozesse); Worked Example; (3) §0-Aufruf — sechs Phasen für Neu-Anlage- und Update-Variante präzisiert (Reconcile/Mutieren betreffen auch bestehende Concepts; AD-17a-Input-Regel referenziert, §1.1 bleibt); (4) §5.7 Pkt. 3 / §5.8 Pkt. 2/3 — Top-Level-Kollisions-Referenz auf das Update-Routing (§3 Pkt. 2/§5.9) nachgeführt (die bisherige Epic-3-Abbruch-Formulierung „aktualisieren ist Epic 3" ist entfernt: Das Update lebt in §5.9; das Schutzprinzip der Erhaltung — „nicht stumm überschreiben" — bleibt als AD-16-Default in §3 Pkt. 2/§5.9 erhalten); (5) §7-Selbstbegrenzung — Update-Thema aus dem Epic-3-Vorbehalt entlassen, Scope-Einleitung um die Update-Variante geöffnet; die verbleibenden 3.x-Themen im Vorbehalt benannt: Synthese über mehrere Concepts → Story 3.4 (AD-4/FR-7), Leasing/Dirty-Tree-Schutz → Story 3.5/3.6 (AD-17a..f), Relevanz-Verfeinerung → Story 3.2; (6) §8-Normreferenzen um A0-6/FR-6/FR-12 ergänzt (AD-5/AD-6/AD-17h bereits gelistet) + Revisionslog 2.4 mit Abschlussklausel (kein Vertrag-/Validator-/raw/-Change, keine neue §7-Klasse, kein Standalone, Commit-Boundary-Regel unverändert). deferred-work.md: Defer R-1 (Input-Zuwachserkennung) und P2 (Pre-Run-Reconcile-Check-Block) als aufgegriffen (2026-08-18, Story 3.1 — §5.9) markiert (append-only, bestehende Einträge unverändert). schema/wiki-compiler.md/validator.md/raw/ unverändert (AD-3); keine neue §7-Klasse; kein Standalone (D-3). sprint-status.yaml: 3-1-inkrementellen-datenfluss-implementieren-interpret-reconcile backlogin-progress (dieser Statuswechsel findet mit Story 3.1 statt; Sprint-Status bereits synchronisiert) → review (Review-Handoff, der übliche Folgezustand nach dem Implementierungs-Eintrag, s. Sprint-Status-Workflow-Kommentar „Dev moves story to 'review'"). Selbsttest-Beleg (re-executierbar, ab Workspace-Root): (a) Instruktions-Integrität — grep -n "5.9" schema/compiler.md → neue §5.9-Sektion gefunden; grep -n "Aktualisierung ist Epic 3" schema/compiler.mdkein Treffer (Hold ersetzt); §7 enthält „Update" nur noch als „aus dem Vorbehalt entlassen"-Verweis, nicht als offenes Vorbehalts-Thema; (b) Diff-Selbsttest (Erhaltungs-Invariante)git diff --stat -- wiki/: ausschließlich die von Story 3.1 berührten Dateien (wiki/log.md; keine Concept-Datei, kein Index, kein Ghost-Diff auf nicht betroffenen Pfaden — die Instruktions-Story mutiert keine Concept-Inhalte; FT-6/FR-12); (c) Validator-Lauf (human-mechanisch ausgeführte Text-Instruktion schema/validator.md, D-3 — kein CLI): alle 7 wiki/-Dateien SUCCESS (Punkte 1/2/6/7/8/9/10/11/12/13/14, EC-1 — unverändert zur Story 2.5, Story 3.1 mutiert keine Concept-Inhalte); das per-Datei-Verdikt ist der Ausführungs-Nachweis der Spec-Verification Pkt. 3 und AC 5. Sandbox-/Edge-Tests (I/O-Matrix): siehe Spec-Verification — isolierte Sandbox-Bäume für HAPPY_PATH_UPDATE (Update-Routing: bestehender Pfad aktualisiert, kein Duplikat), UNTOUCHED_CONCEPT (kein Diff auf nicht betroffenem Pfad), CONCEPT_COLLISION_BESTEHEND (Update statt Duplikat), CHANGE_DETECTION (nur Zuwachs über git diff/SHA-256-Record), PRE_RUN_RECONCILE (Check-Block vor jeder Mutation; fehlende Bundleroot → Run-FAIL, V-1) — deterministische Formel-Ausgaben/Nachweise je Szenario.
  • Validierungs-Revision 9 (autorisiert; Epic-2-Retro F-02/AI-2-R-5, de-dupliziert mit code-review-2-1-item-2; ausgeführt 2026-08-18, Quelle: _bmad-output/implementation-artifacts/spec-autorisierte-validator-revision-9-punkt-11-area-lesart.md): schema/validator.mdRevision 9. Fünf inhaltliche Änderungen, keine neue §7-Klasse (kein Punkt 15; Vertrag schema/wiki-compiler.md + Instruktion schema/compiler.md + raw/ + adapters/ + alle wiki/-Concept-Dateien unverändert, AD-3/D-3): (1) Punkt-11-Area-Lesart formalisiert (§3 Zelle: Für ein Area-Concept genügt die file-relative Referenz in der Area-index.md des nächsten Vorfahren; identitätsstiftend ist das Pärchen Area-Präfix (= bundle-relativer Verzeichnispfad der Area-index.md) + Link-Ziel ohne .md-Endung (AD-7a), textuelle Nennung der Bundle-Identität entfällt — Live: wissensarchitektur/source-material über ](source-material.md) in wiki/wissensarchitektur/index.md; Normalisierung: ././-Strip, .. nicht Teil der Ein-Ebenen-Form); (2) Punkt-4-Vorlage um resolved=<pfad>-Token ergänzt + Semantik verankert (…|file://|resolved=<pfad>; §6.2: nur bei Ablehnung durch aufgelöste Lage außerhalb raw/, Wert = aufgelöster workspace-relativer Pfad) — Fixture 4a ableitbar; (3) Innen-Ebenen-Punkt-6-Fixtures in §7.3 (Negativ: role: x in sources-Eintrag → FAIL Punkt 6; Positiv-Gegenzeile ausschließlich erlaubte Keys → SUCCESS); (4) §7-Fixtures 11a (Negativ: Area-Concept unverlinkt → Concept nicht verlinkt=wissensarchitektur/source-material am realen Live-Area-Namen; Positiv: file-relativ verlinkt → SUCCESS); (5) §8-Normreferenz-Notiz „Story 2.3 (Link-Form)" um die Rev-9-Area-Lesart ergänzt. Nachgeführt: Header auf „Revision 9" + Revisionslog-Eintrag Revision 9 (append-only, bestehende Einträge unangetastet). Zertifizierung (mechanisch, D-3): (a) Fixture 4a isoliert — Sample sources: [{resource: README.md}] mit existierender README.md an der Workspace-Root → FAIL … Punkt 4: resource ausserhalb raw/ oder unzulaessiger Pfad (…|resolved=README.md), kein Vorab-FAIL durch Punkt 3/andere Punkte (Punkt-4-vor-3-Priorität §6.2); (b) Innen-Ebenen-Sample isoliert — sources:\n - resource: raw/prd/prd-wow20-2026-08-14.md\n role: x (Datei existiert, sonst-valides Sample) → genau Punkt 6: nicht autorisiertes Feld (Key=role) bzw. unautorisierter Key in sources/generated/verified, kein anderer Punkt (Isolations-Prinzip §7.3); (c) Punkt-11-Area-Lesart-Fixtures — Negativ 11a (Area-index.md verlinkt source-material.md nicht) → FAIL … Punkt 11: Index-Regel verletzt (Concept nicht verlinkt=wissensarchitektur/source-material); Positiv 11a (file-relativer ](source-material.md)-Link, Live-Lage) → SUCCESS (kein „nicht verlinkt"-FAIL); (d) reales Bundle gegen den revidierten Validator (human-mechanisch ausgeführte Text-Instruktion) — alle 7 wiki/-Dateien weiterhin SUCCESS (Punkte 1/2/6/7/8/9/10/11/12/13/14, EC-1; Punkt 11 inkl. Area-Lesart), identisch zur Story-2.4/2.5-Lage — keine neu ausgelösten FAILs, Abschluss-Eigenschaft des §7-Katalogs gewahrt. Mechanische Belege (ausgeführt 2026-08-18): (e) AD-3/D-3-Freeze — git diff --name-only <base>..HEAD -- schema/wiki-compiler.md schema/compiler.md raw/ adapters/0 Treffer (keine dieser Dateien geändert); (f) Live-Invariant der 7/7-SUCCESS-Behauptung — grep -qF '](source-material.md)' wiki/wissensarchitektur/index.mdexit 0 (Area-Lesart lebend verankert). sprint-status.yaml: code-review-2-1-item-2 und epic-2-retro-item-14-… (AI-2-R-5) → done (closed 2026-08-18, resolution mit Rev-9 + ref auf die Rev-9-Runde).
  • Story 2.5 «Progressive Discovery über index.md bereitstellen» (Implementierung, inkl. Review-Loop-1-Korrektur + Review-Loop-3-Patches, bmad-code-review 2026-08-18, 4 Layer; Nutzer-Entscheidungen 1/1): schema/compiler.mdRevision 2.3 (neue §5.8 „Progressive Discovery über index.md (Story 2.5)"): (1) Discovery-Pfad — Bundleroot wiki/index.md → Area-index.md (frontmatterlos) → Area-Concepts in gepinnter §5.6-Form; Root-Concepts direkt aus der Bundleroot (AD-9, FR-11; gewurzelte Erreichbarkeit Root → Area → Concept, §5.7 Pkt. 5); (2) gewurzelte Erreichbarkeit als deterministisches Discovery-Kriterium + re-executierbarer Selbsttest (UNREACHABLE AREA: <area> für von der Bundleroot unverlinkte Area — AD-9; NESTED AREA: <area> für Zwei-Ebenen-Kandidaten, geprüft über zwei Läufe der Selbsttest-Formel: (A) Ein-Ebenen-Area-index.md → Root-Verlinkungsstatus, (B) find wiki -mindepth 3 -type f -name "*.md" → jede Datei in Tiefe ≥ 3 ist ein Zwei-Ebenen-Kandidat, Meldung je Verletzung genau eine; beide Läufe ohne Ausgabe = Discovery-SUCCESS; Instruktions-Selbsttest, schließt die Validator-Navigation-Lücke ohne Validator-Change — kein neuer §7-Punkt, AD-3); (3) konsolidierte Zwei-Ebenen-Kartografie (antwortet und schließt Defer F-07): Root + eine Area-Ebene; wiki/a/b/ ist keine zugelassene Anlageformwiki/a/b/concept.md-Kandidat (auch ohne index.md; die Area-ohne-Index-Lücke, die der reine index.md-Scan übersähe) wird durch den §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) angehalten (keine Datei, kein Index-Link, textuelle Meldung NESTED AREA: <area>, Run „teilweise erfolgreich", NFR-4) — Loopback-1-Renegotiation (menschen-autorisierte Option A): Träger ist der §5.8-lokale Hold, nicht der §3.2-Kollisions-Hold (der bleibt der Dateikollision bestehender Concepts vorbehalten — ein brandneuer Zwei-Ebenen-Pfad kollidiert nie mit einem existierenden); (4) Suche = Consumer-grep (grep -rn <term> wiki/ rekursiv bzw. rg <term> wiki/, AD-13 — keine Such-Datenbank, kein Embedding, kein Index-Datei-Format; NFR-3), (5) Discovery-Demo (optional, kein MOVE) — bei Durchführung: Formel-4-Re-Baseline-Pflicht (neuer Zuwachs-Run), sonst bleibt Formel 4 38 ≡ 38. Nachgeführt: §7 Story-2.5-Vorbehalt auf „Suche"-Rest gekürzt (Navigation/Area-Indizes jetzt §5.8-verankert, Suche = Consumer-Thema; die Vorbehalt-Zeile lag in der Baseline main bei Z. 253, nach dem §5.8-Einschub bei Z. 285), §8 Normreferenzen (AD-9/AD-13 → §5.8, FR-11 → §5.7 Pkt. 5/§5.8, NFR-3 neu) + Revisionslog 2.3. Selbsttest-Beleg (re-executiert, die gehärtete Loop-3-§5.8-Pkt.-2-Selbsttest-Formel von schema/compiler.md §5.8 Pkt. 2 (CWD-Präguard, Erreichbarkeits-Check auf Markdown-Linksyntax ]( per grep -qF, LC_ALL=C sort -u) als wörtlicher Einzel-Quote-sh -c '…'-String — Live-Baum: keine Ausgabe, Exit 0; CWD-Präguard-Kontrolle außerhalb der Workspace-Root: SELBSTTEST-SETUP-Fehler: Workspace-Root (wiki/index.md fehlt) + Exit 1): Area wissensarchitektur aus der Bundleroot verlinkt (Root→Area, Selbsttest-Lauf A); die Area→Concept-Verlinkung (source-material.md in der Area-index.md) ist durch den Validator Punkt 11 mechanisch abgedeckt (kein Duplikat im Selbsttest). Sandbox-/Edge-Tests (I/O-Matrix, deterministische Formel-Ausgaben): (a) HAPPY — gewurzelte Erreichbarkeit ohne Verletzung; (b) AREA_UNREACHABLE — Area-index.md existiert, Bundleroot unverlinkt → UNREACHABLE AREA: <area> (textuell benannter Instruktions-Selbsttest-Befund, kein Validator-Punkt); (c) NESTED_AREA_KANDIDATwiki/a/b/index.md- und wiki/a/b/concept.md-Kandidaten (je einzeln) → NESTED AREA: a (erste Ebene der nicht-zulässigen Struktur; bei mehreren Dateien unter derselben ersten Ebene Konsolidierung über LC_ALL=C sort -u); Sandbox-Nachweis auf einem synthetischen Baum mit angelegter Testdatei (Zwei-Zustands-Klarstellung Loop-3-Decision-2: die Formel meldet bestehende Tiefe-≥-3-Dateien; der Hold-Zeitpunkt hält den Erstellungskandidaten an, ohne Datei). Die Sandbox-Kontrollen decken die I/O-Matrix-Szenarien AREA_UNREACHABLE und NESTED_AREA_KANDIDAT ab. §5.6-Formeln unverändert re-executierbar: Formel 2 (Form-Check) 0 (Exit 0), Formel 3 (Dangling-Check) keine Ausgabe, Formel 4 38 ≡ 38 (Ist ≡ Extraktion aus dem Run-Kopf 862cf41 — keine neue Baseline nötig, keine wiki/-Dateimenge-Änderung durch Story 2.5; die Demo ist optional und würde bei Durchführung die Re-Baseline auslösen). Validator-Lauf (human-mechanisch ausgeführte Text-Instruktion schema/validator.md, D-3 — kein CLI): alle 7 wiki/-Dateien SUCCESS (Punkte 1/2/6/7/8/9/10/11/12/13/14, EC-1) — unverändert zur Story 2.4; das per-Datei-Verdikt ist der Ausführungs-Nachweis für die Spec-Verification Pkt. 3 und AC 5. sprint-status.yaml: 2-5-progressive-discovery-über-index-md-bereitstellen backlogin-progress (Implementierungs-Eintrag) → review (Review-Handoff, dieser Eintrag — die gefrorene Spec-Vorgabe „→ in-progress" beschreibt den Implementierungsstand, der Review-Handoff ist der übliche Folgezustand, s. Sprint-Status-Workflow-Kommentar „Dev moves story to 'review'"); Loop-3-Abschluss mit diesem Review: reviewdone (Sprint-Status synchronisiert, spec-Frontmatter status: 'done' deckungsgleich, review_loop_iteration → 3). schema/wiki-compiler.md/validator.md/raw/ unverändert (AD-3); keine neue §7-Klasse; kein Standalone (D-3); keine Vertragsänderung.
  • Story 2.4 «Deterministische Bereichszuordnung & Concept-Hierarchie» (Review-Loop 2, bmad-code-review, 4 Layer): 3 decision-needed (Nutzer-Entscheidungen 1/1/1) + 11 patch umgesetzt, 4 defer (s. deferred-work.md), 8 dismissed. schema/compiler.mdRevision 2.2: (1) Formel 3 quellenbasierte ../schema/*-Exklusion (Decision 2): die Exklusion greift nur, wenn die Quell-Datei auf Bundleroot-Ebene liegt (dirname <quelle> = wiki); aus Area-Quellen läuft einstufiges ../schema/… durch Auflösung + Containment + Existenztest (Prosa war bereits „nur aus Root-Dateien", die Formel folgt jetzt der Prosa); (2) Formel 4 Re-Baseline auf den Run-Kopf (Decision 1): Extraktions-Commit 862cf410c624072833cd959da9a2fb26235716f6 statt 66451b6… — der gepinnte Selbsttest lief auf dem Zuwachs-Baum deterministisch 38 ≠ 30 = Run-FAIL (bekannt-böser Zustand aus Loop-1-A2, nur halb geheilt); jetzt 38 ≡ 38 (re-executiert: Ist=38, Extraktion 862cf41=38; 66451b6/30 dokumentiert den Vor-Zuwachs-Zustand, bleibt als Referenz dieses Runs); (3) §5.7 Pkt. 1(a) Treffer-Prädikat + Tie-Break (Decision 3): „inhaltlich deckungsgleichen Eintrag" (Urteil, AD-13-Verstoß) ersetzt durch textuelles Prädikat (Identität des Link-Ziels ≡ kanonischer Name des Themas) + Mehrfachtreffer-Regel (Bundleroot-Links vor Area-Links, dann lexicografische Pfad-Reihenfolge); (4) file-relative Pin-Wortwahl in §5.3 Pkt. 3 (Oxymoron „file-relativ bundle-relativ" aufgelöst), §6.6-Zelle und §7-Bullet nachgeführt; (5) §7-Scope-Einleitung „Root-Ebene" → „Root-Ebene und in Areas gemäß §5.7"; (6) Typos („akte-Baseline" → „aktuelle Baseline", Doppel-Leerzeichen §6.6); (7) „Kopf dieser Spezifikation" → „Baseline-Commit des letzten Zuwachs-Runs". wiki/wissensarchitektur/index.md: Prosa auf den tatsächlichen Area-Inhalt gekürzt (nur source-material.md existiert; Link-Form/Discovery-Topics waren übergezeichnet). Negativ-Test-Nachweis (Sandbox-Baum, exakte Formel-Ausgabe): (a) TOP_LEVEL_COLLISION — Kandidat mit ID llm-wiki-prinzip: wiki/llm-wiki-prinzip.md existiert → §3.2-Hold „Concept existiert bereits — Aktualisierung ist Epic 3" (keine Datei, kein Index-Link, kein log.md-Eintrag); (b) AREA_WITHOUT_INDEX — Sandbox-wiki/foo/ ohne index.md: wörtliche Punkt-11-Meldung FAIL wiki/foo/ Punkt 11: Index-Regel verletzt (Area ohne index.md=foo) (Validator-§7.1-Fixture-Wortlaut, kein inventiertes AREA_WITHOUT_INDEX-Label); (c) DIVING_NON_EXISTENT[v](../fehlt.md) aus Area-Concept → DANGLING: ../fehlt.md; (d) Out-of-Bundle-Escape (Loop-1-A1-Kontrolle) — [x](../../README.md)DANGLING: ../../README.md, [y](../../schema/compiler.md)DANGLING: ../../schema/compiler.md; (e) In-Bundle-../schema/ aus Area (Loop-2-Kontrolle)[z](../schema/compiler.md) aus wiki/wissensarchitektur/source-material.mdDANGLING: ../schema/compiler.md (vor dem Loop-2-Patch: still exkludiert, leere Ausgabe — Sandbox-Nachweis des gefixten Löchs). Positiv-Kontrolle nach allen Patches: Formel 2 (Form-Check) = 0 (Exit 0), Formel 3 (Dangling) = keine Ausgabe, Formel 4 = 38 ≡ 38 (beide re-executiert). Status-Nachführung (korrigiert zum obigen Implementierungs-Eintrag): sprint-status.yaml 2-4-… backlogin-progress (Implementierungs-Eintrag) → review (Review-Handoff, dieser Eintrag); die gefrorene Spec-Vorgabe („→ in-progress") beschreibt den Implementierungsstand, der Review-Handoff ist der übliche Folgezustand (s. Sprint-Status-Workflow-Kommentar „Dev moves story to 'review'"). Loop-Abschluss mit diesem Review: reviewdone (Sprint-Status synchronisiert, sprint-status.yaml last_updated nachgeführt; spec-Frontmatter status: 'done' deckungsgleich, review_loop_iteration → 2). Validator-Lauf-Korrektur zum obigen Eintrag: die gültige Datei-Zählung ist 7 wiki/-Dateien (Bundleroot, log.md, 3 Root-Concepts, Area-index.md, Area-Concept) — der obige Verweis auf „Punkt 9/10" für die Differenz zur Spec-Zahl 6 war falsch belegt (Punkt 9 = okf_version/type: bundle-Verbot außerhalb der Bundleroot; log.md wird über Punkt 10/V-2 mitvalidiert); die Spec-Zahl 6 ist eine frozen-Defizitzählung (Defer in deferred-work.md). schema/wiki-compiler.md/validator.md/raw/ unverändert (AD-3); keine neue §7-Klasse; kein Standalone (D-3).
  • Story 2.4 «Deterministische Bereichszuordnung & Concept-Hierarchie» (Implementierung): schema/compiler.mdRevision 2.1 (neue §5.7 „Deterministische Bereichszuordnung & Concept-Hierarchie": Routing-Regel textual-deterministisch — (a) First-Class-Link aus dem bestehenden index.md-Baum → Bereich wiki/<area>/<concept>.md, (b) Default Root-Ebene, neue Areas nur konsolidiert; nie Embedding/Vector, AD-7c/A0-10/AD-13; kanonische ID-Normalisierung AD-7a/A0-8 mit Beispieltabelle; Top-Level-Kollisions-Hold → fixierter §3.2, kein neues Prädikat, kein MOVE; file-relatives Link-Auflösungsmodell inkl. Out-of-Bundle-..-Containment; Area-index.md-Regel mit wörtlicher Punkt-11-Meldung FAIL … Punkt 11: Index-Regel verletzt (Area ohne index.md=<area>) — kein inventiertes Label; Worked Example). Nachgeführt: §5.1 Pkt. 1, §5.3 Pkt. 3 (Index-Regel area-bewusst), §5.6 Pkt. 1/2/3/4/5 (file-relativ; ../-Exklusion aufgelöst; Formel 3 mit Quell-Datei-Spur + in-Bundle-..-Auflösung + Containment — Out-of-Bundle-..-Escape wird DANGLING; Formel 4 neu auf baseline_commit 66451b6e6c9e139fb3aa3bbf4b01291e1e2d273a (deklarierte baseline_commit-Werte der Spec-Frontmatter, nicht mehr Story-2.3-7e1f449…; Loop-2: Re-Baseline auf den Run-Kopf 862cf41, s. obiger Review-Eintrag), Basename-Filter grep -v "log.md$"), §6 Pkt. 2, §6.6, §7, §8. deferred-work.md: drei Story-2.4-namige Einträge geschlossen (umgesetzt): bundlerelativ-vs-dateirelativ (→ §5.7 Pkt. 4 file-relativ), Cross-Page-Anker-Stale-Evidenz (→ Ist-Verhalten Fragment-Strip, keine Dangling-Ausgabe), künftiges Area-log.md-Baseline-Bruch (→ Formel 4 Basename-Filter). Neue Area wiki/wissensarchitektur/ angelegt: wiki/wissensarchitektur/index.md (frontmatterlos, Vertrag §2/§6, Validator Punkt 10; verlinkt das Area-Concept in der gepinnten §5.6-Form) + wiki/wissensarchitektur/source-material.md (Area-Concept type: concept, sources s1=architecture-spine + s2=prd, §5.5-Inline-Verweise + Kontext-Marker, Body-Links auf Root-Concepts in file-relativer ../-Form: llm-wiki-prinzip.md, wissensarchitektur-trennung-states.md, knowledge-kompilation-inkrementell.md). wiki/index.md: neue Area-Sektion verlinkt wissensarchitektur/index.md (die 3 bestehenden Root-Concept-Links + die 3 ../schema/-Links byte-identisch, Null-Migration). Formel-4-Re-Baseline: Ist-Zählung auf dem neuen Baum = 38 (log.md-exkludiert; grep -roE '\(raw/'), Baseline-Extraktion aus 66451b6 = 30 (alter Baum, 4 nicht-log.md-Dateien: index.md + 3 Root-Concepts; git ls-tree -r + git show, Basename-log.md-Filter) — Dokumentation verlangt die aktuelle Baseline aus 66451b6 (38 ≠ 30, kein Fehlalarm: Zuwachs-Re-Baseline; Loop-2-Korrektur: Re-Baseline auf den Run-Kopf 862cf41, 38 ≡ 38, s. obiger Review-Eintrag); die exakte Ist-Zahl hängt am finalen Concept/Body-Stand und wird in der Spec-Verification des Runs belegt. sprint-status.yaml: 2-4-deterministische-bereichszuordnung-concept-hierarchie backlogin-progress (dieser Statuswechsel findet mit diesem Eintrag statt). Validator-Lauf: alle 7 wiki/-Dateien SUCCESS (index.md + log.md + 3 Root-Concepts + Area-index.md + Area-Concept; Punkte 1/2/6/7/8/9/10/11/12/13/14, EC-1; die Spec-Verification nennt erwartungsseitig „6 wiki/-Dateien" — die Differenz erklärt sich durch das reservierte log.md (Protokoll, wird mitvalidiert, Punkt 9/10), die Validator-Effort-Zahl dieser erfolgten Ausführung ist 7). schema/wiki-compiler.md/validator.md/raw/ unverändert (AD-3); keine neue §7-Klasse; kein Standalone (D-3).

2026-08-17

  • Story 2.3 «Concepts verlinken — eine erlaubte Linkform» (Implementierung): Linkform auf bundle-relativ mit .md-Endung gepinnt (Rationale: die 3 bestehenden Concept-Links in wiki/index.md sind bereits in dieser Form → Null-Migration; Ziele sind explizite Dateien, auch mit Areas eindeutig; Standard-Markdown-Tools lösen ohne Konventionswissen auf — AD-7b, A0-9, FR-10, AD-8). Veränderte Dateien: schema/compiler.mdRevision 1.8 (neue §5.6 „Concept-Links (Story 2.3)": Pin, Geltungsbereich Concept-Bodies + index.md mit Ausnahmen raw/-Provenienz (§5.5)/../schema//http/Gleichseit-Anker, vier re-executierbare Selbsttest-Formeln (Bestands-, Form-, Dangling-, Kontakt-mit-raw/-Unverändert-Check, AD-17h), NFR-4-Regel, Worked Example; die „bis Story 2.3"-Klauseln in §5.3 Pkt. 3 + §5.5 Pkt. 1 referenzieren §5.6; §7-Bullet, §8-Normreferenzen AD-7b/AD-8/FR-10/A0-9 + Revisionslog 1.8), wiki/wissensarchitektur-trennung-states.md (zwei inhaltsbegründete Cross-Links in gepinnter Form: → llm-wiki-prinzip.md, → knowledge-kompilation-inkrementell.md, je mit §5.5-konformem Kontextsatz/Inline-raw/-Verweis; keine Frontmatter-/sources-Änderung), deferred-work.md (Linkform-Eintrag geschlossen). wiki/index.md unverändert (die 3 Concept-Links bereits in gepinnter Form; die 3 ../schema/-Links außerhalb des Pin-Wirkungsbereichs). sprint-status.yaml: 2-3-concepts-verlinken-eine-erlaubte-linkform backlogin-progress (dieser Statuswechsel findet mit diesem Eintrag statt). Kontakt-mit-raw/-Unverändert: die Vorkommen-Zählung der Inline-raw/-Verweis-Muster unter wiki/ (Selbsttest-Formel §5.6 Pkt. 3, Formel (4)) ist identisch zur aus baseline_commit 7e1f449 dynamisch extrahierten Baseline (30, log.md-exkludiert; git ls-tree + git show, deterministisch re-executierbar). Validator-Lauf: alle 5 wiki/-Dateien SUCCESS (Punkte 1/6/11/14, EC-1; der Punkt-11-Check bleibt strukturell unverändert und akzeptiert beide Schreibweisen — keine neue §7-Klasse, kein Validator-Change).
  • Story 2.2 «Claim-granulare Provenienz dokumentieren» → done (bmad-code-review 2026-08-17, 4 Layer, abgeschlossen): Review auf bb32acd → story-2-2 — 1 decision-needed (D1 Referenzform → Option 1: Komma-Form als zulässige Variante), 12 patch (alle umgesetzt), 4 defer, 2 dismissed. schema/compiler.mdRevision 1.7: defekte Selbsttest-Grep-Formel behoben (ungeschlossene ERE '(raw/|]\(raw/''\(raw/'), Komma-Form + Multi-Beleg-Serialisierung in §5.5 Pkt.1, Relokations-Sub-Bullets als 1a/1b nummeriert, drei Marker-Muster, Forward-Referenz-Disambiguierung auf Story 3.1: Inkrementellen Datenfluss implementieren, §8-Normreferenzen um AD-4a/AD-9/AD-13/AD-14/AD-16/FR-16/A0-3 ergänzt. wiki/knowledge-kompilation-inkrementell.md Forward-Referenz-Zitat disambiguiert. Defer W2W4 (Fragment-Existenz, Marker-Grammatik, sources-id-Eindeutigkeit — keine re-runnable Prüfung ohne Standalone, D-3) + W1 (sources-Closure) in deferred-work.md. Re-Verifikation: sh -c "grep -nE '\(raw/' wiki/*.md" 27 Treffer, alle 3 Diagramm-Marker + Forward-Referenz mit exaktem Token, sources-id je Concept eindeutig, wiki-compiler.md/validator.md/raw/ unverändert. Klassifikation: review-2-2-klassifikation.md. sprint-status.yaml: Story 2.2 → done.
  • Story 2.2 «Claim-granulare Provenienz dokumentieren» — Nachrüstung (Datei-Bodies, index.md, log.md): schema/compiler.md um §5.5 „Claim-granulare Provenienz" erweitert (nach §5, vor §6): Inline-raw/-Verweis je belegter Aussage + id-Attribution (Vertrag §3.3), Kontext-Marker je Übernahme (übernommen aus <raw-Quelle> (rohe Quelle) bzw. übernommen aus <Concept> auf Basis von <raw-Quelle>, jeweils „nicht eigenständig belegt"), eindeutiges id-Scoping je Concept, Selbsttest-Kriterien (AD-4a/4c, AD-13, AD-17h); Revisionslog (§8) → Revision 1.5 (Nachrüstung) bzw. 1.6 (Review-Patch-Runde: Stellen-Kennungs-Semantik, volle Pfade, Direktübernahme-Marker, worked example, korrigierte Grep-Formel), §7-Selbstbegrenzung entsprechend angepasst. wiki/index.md (Descriptions um (aus <raw-Pfad>)), wiki/knowledge-kompilation-inkrementell.md, wiki/llm-wiki-prinzip.md, wiki/wissensarchitektur-trennung-states.md nachkonformiert — jede belegte Aussage trägt Inline-Verweis; Übernahmen tragen Kontext-Marker (keine Selbstreferenz, keine Concept-id-Fragmente #s1/#s2). Diagramm-Quell-Deklaration: Das ASCII-Diagramm in wiki/knowledge-kompilation-inkrementell.md (Datenfluss) stammt aus raw/architecture-spine/architecture-spine-2026-08-14.md#AD-5 — zusätzlicher sources-Eintrag (id: s2) ergänzt; das Diagramm in wiki/wissensarchitektur-trennung-states.md (Sources → Compilation → Knowledge Bundle → Consumers) aus raw/prd/prd-wow20-2026-08-14.md (§ 8.3 Separation of Concerns) — zusätzlicher sources-Eintrag (id: s2) ergänzt. sources-id je Concept eindeutig; keine unautorisierten Keys. wiki-compiler.md/validator.md/raw/ unverändert. Validator-Lauf: alle 5 wiki/-Dateien SUCCESS (Punkte 1/6/11/14, EC-1) — Story 2.2 review.
  • Story 2.1 «Concepts aus Source Material erzeugen (OKF-Konform)» → done (Human-Review-Freigabe erteilt): Nutzer hat die verbleibende Schwelle (menschliche Review-Freigabe) überschritten — Status reviewdone, sprint-status.yaml nachgeführt. Alle 8 ACs PASS, kein AC-/Vertrags-Blocker; offene Folge-Arbeit (autorisierte Validator-Rev 9) ist kein Story-2.1-Blocker und bleibt als Action-Item code-review-2-1-item-2 in deferred-work.md verankert.
  • bmad-code-review Re-Run Story 2.1 (unabhängig, 4 Layer, Stand nach Validator-Rev-8): alle 8 ACs PASS, 17 Patch / 4 Defer / 2 Dismiss. 15 Patches umgesetzt — schema/compiler.md → Revision 1.4 (Prüfgrundlage Rev 8, §6.6-Referenzlabels §4.5/§4.2, §3.2 Kollision-Hold-Run-Fortsetzung, §5.3/§6.3 Rollback-Sequenz, Sprachkorrekturen), wiki/log.md (verlorener Bullet, Rev-8-Datum 08-17), wiki/index.md (Baumdiagramm um Root-Concepts-Ebene), Doku-/Referenz-Konsistenz (deferred-work.md Dedupe + n=21, review-input-dryrun-…md 16+2-Auflösung, epic-2-context.md AD-4c tautologisch, spec Verification/Change-Log, sprint-status.yaml closed-Datum). 2 Patches auf der gefrorenen validator.md (Rev 8) geholdert → nächste autorisierte Validator-Revision (Rev 9: Punkt-4-Grammatik resolved=-Token, Innen-Ebenen-Punkt-6-Fixture-Zeile; s. deferred-work.md).
  • Story 2.1 «Concepts aus Source Material erzeugen (OKF-Konform)» → review (Freigabe zur Human-Review): Option-A-Voraussetzung erfüllt — autorisierte Validator-Revision 8 ausgeführt und zertifiziert (s. Eintrag 2026-08-16). spec-2-1-…-Re-Review-Verdikt aktualisiert: Story ist done-fähig; einzige verbleibende Schwelle ist die menschliche Review-Freigabe (reviewdone). Action-Item code-review-2-1-item-1-autorisierte-validator-revision-optiondone (Autorisations-Runde: validator-revision-8-autorisationsrunde-f14-innen-ebenen.md). sprint-status.yaml: Story 2.1 → review.

2026-08-16

  • Autorisierte Validator-Revision 8 (Option-A-Heilung Story 2.1, ausgeführt 2026-08-17): schema/validator.md Revisionslog-Eintrag „Revision 8" + Header-Revisionszahl auf 8 angehoben (behebt OBS-1: Header „Revision 6" vs. Log „Revision 7"). Drei Änderungen: (1) F-14-Negativ-Fixture 4a in §7.1 (Punkt 4: resource: README.md außerhalb raw/, existierend → FAIL … Punkt 4; Retrospective F-14); (2) Innen-Ebenen-Key-Subset formalisiert — Punkt-6-Zelle verweist auf die §7.3-Isolations-Notiz (autorisiert, Revision 8); (3) Revisionslog nachgeführt. Vertrag schema/wiki-compiler.md und schema/compiler.md unverändert (keine neue §7-Invaliditätsklasse). Zertifizierung selbstgeprüft: Fixture 4a isoliert → FAIL Punkt 4 (resolved=README.md) (Punkt 3 nicht verletzt, keine anderen Punkte); Innen-Ebenen-Sample (sources-Eintrag mit role: x bei existierender raw/-Datei) → FAIL Punkt 6 (Key=role); reales Bundle (5 wiki/-Dateien) → SUCCESS (keine neu ausgelösten FAILs).
  • schema/compiler.md auf Revision 1.3 — §1-Überschrift ins Deutsche, Prüfgrundlage auf validator.md Revision 7 angeglichen, §6.6-canonical-Reihenfolge-Zeile von ✗- auf reine ✓-Vorgabe korrigiert (kein Validator-FAIL, Label §4.2 statt „§6.4"), §1.2/§1.4-Evidenz-Widerspruch aufgelöst (Artefakt-Ausnahme als dokumentarische Konvention). wiki/log.md-Demonstrationslauf-Einträge an Vertrags-§5-Format angeglichen (- neu: … angelegt (sources: …)). Story 2.1 bleibt in-progress (Option A: Heilung der validator.md-Rev-7-Klarstellung über die nächste autorisierte Validator-Revision).
  • Step-04-Review (Story 2.1): Nachschärfungen aus den drei Review-Layern (Blind Hunter, Edge Case Hunter, Verification Gap) angewendet — schema/compiler.md auf Revision 1.2 (Input-Regel auf AD-17a referenziert statt AD-17.2, sources-Eintrag-Key-Subset in §4.2/§6.5/§6.6 ergänzt, status-Absenz an Vertrag §3.6 angebunden, Bereichs-Ziel-Klarstellung bis Story 2.4, §6.6-Fehlerursachen korrigiert, AD-17f als Commit-Boundary sichtbar), schema/validator.md auf Revision 7 (§7.3-Isolations-Hinweis auf Innen-Ebenen-Key-Subset erweitert), wiki/index.md-Workspace-Absatz korrigiert (schema/ = drei Artefakte: Vertrag, Validator, Compiler), sprint-status.yaml: Story 2.1 → review (Review begonnen). at-Zeitstempel der drei Concepts (2026-08-16T09:23:33Z = 11:23:33 Lokalzeit +0200) decken sich mit den Datei-Mutationszeitpunkten (11:24) — im Review geprüft.
  • neu: llm-wiki-prinzip angelegt (sources: raw/prd/prd-wow20-2026-08-14.md) — Root-Concept, Trust-Metadaten A0-20 (generated { by: wow-compiler/0.1.0, at: <ISO-8601-Datetime> }, verified ungesetzt)
  • neu: knowledge-kompilation-inkrementell angelegt (sources: raw/epics/epics-2026-08-14.md) — Root-Concept, Trust-Metadaten A0-20
  • neu: wissensarchitektur-trennung-states angelegt (sources: raw/architecture-spine/architecture-spine-2026-08-14.md) — Root-Concept, Trust-Metadaten A0-20
  • Retrospective-Follow-up (AI-1/F-01): schema/validator.md auf Revision 3 — at-Nur-Datum-Toleranz zurückgenommen. at: 2027-01-01 ist jetzt FAIL nach Punkt 14 (reine Datumsangabe ≠ ISO-8601-Datetime); Positiv-Fixture 14c neu mit ±HHMM-Form (+0200) belegt. Vertrag schema/wiki-compiler.md unverändert (autorisiert). Validator-Zertifizierung zugehörig geprüft: Fixture 14c (Negativ) erzeugt FAIL.
  • Retrospective-Follow-up (AI-2/F-02): schema/validator.md auf Revision 4 — neue Fixture-Tabelle §7.3 für die §6-Fachprüfungen (EC-1 Existenz, EC-3 Kalender, stale_after-WARN, EC-11 non-md). Zertifizierung gegen erweiterte Fixtures selbstgeprüft — Ergebnis: PASS (je §6-Fixture isoliert geprüft, genau die angesprochene Prüfung löst aus; EC-1/EC-3-FAILs sind Run-FAIL, WARN ist Berichtskanal, non-md wird ignoriert ohne Verdikt).
  • Retrospective-Follow-up (AI-3/F-03): schema/validator.md auf Revision 5 — §3.2-Voraussetzungsprüfungen als fachliche Prüfklasse V-1/V-2 gelabelt (Verdikt FAIL (Voraussetzung) … (V-1|V-2) statt FAIL (Struktur)), §5-Grammatik/Selbstbegrenzung sowie §7.1/§7.3-Fixtures angeglichen. Zertifizierung: V-1/V-2-Fixtures selbstgeprüft — PASS (isolierte Auslösung; kein §7-Punkt-Nr.-Konflikt).
  • Retrospective-Follow-up (AI-4/F-09): raw/*/source.md-Provenienz korrigiert — _bmad-output/ IST versioniert; Herkunft auf Commit 6cc667d gestützt und SHA-256 der Herkunftsdatein aufgenommen (byte-identisch zur materialisierten Evidenz, geprüft).
  • Retrospective-Follow-up (AI-5/F-05): schema/validator.md auf Revision 6 — BOM-/Leerzeilen-Stripping der Frontmatter-Erkennung von Punkt 10 auf Punkte 2/8 ausgedehnt (einheitliche §3-Präambel). Zertifizierung: neue Positiv-Fixtures 2a/8b (BOM + Leerzeile vor ---) → SUCCESS; geprüft gegen isolierte Samples — PASS.
  • Retrospective-Follow-up (AI-7): Defer-Kontexte gesichert — F-04, F-06, F-07, F-08, F-11, F-14 als Folge-Aufgaben in deferred-work.md notiert (mit Epic-2/3/Validator-Zuordnung); F-06/F-08 zusätzlich als „Offene Punkte" direkt im Validator (Rev. 6) verankert.
  • Retrospective-Follow-up (AI-6/F-10): Mechanische Validator-Verifikation nachgeschärft — spec-1-4-Verification enthält jetzt einen strengen, deterministischen Vertrag↔Validator↔Fixtures-Abgleich (14 Punkte, keine Punkt 15, Verifikations-Beleg-Tabelle) als Pflicht-Re-Check bei jeder Autorisierung. Bleibt innerhalb der D-3-Grenze (kein Standalone-Programm); dokumentarisch-mechanisch statt Existenz-Grep.

2026-08-15

  • Validator-Zertifizierung: schema/validator.md (Revision 2) gegen die Referenz-Fixtures (§7) selbstgeprüft — Ergebnis: PASS (alle Negativ-Fixtures erzeugen FAIL, alle Positiv-Fixtures SUCCESS; maschinenlesbares Verdikt gemäß §5 bestätigt). Jede Negativ-Fixture wird je Fixture isoliert gegen ein sonst-valides Sample geprüft, sodass genau ihr zugehöriger Punkt auslöst (kein Vorab-FAIL durch andere Punkte).