Files
wow20/wiki/log.md
T
Michael TamseandClaude efc543c9e1 feat: Story 3.1 Inkrementellen Datenfluss implementieren (Interpret→Reconcile→Synthesize→Update) — compiler.md Revision 2.4/2.4.1, Update-Routing + §5.9, Diff-Selbsttest, Review-Patch-Runde; Review-Handoff auf story-3-1
- schema/compiler.md: §3 Pkt. 2 Update-Routing (statt Kollision-Hold) + textuell-deterministische Kandidatenliste (AD-13); §5.9 Update-Mutationsmechanik (Erweitern/Präzisieren/Korrigieren, sources nur echte Belege, generated.at-Konvention, log.md-Eintragspflicht Story-3.1-Update, Mehrfach-Treffer-Konsolidierung); Erhaltungs-Invariante + deterministischer Diff-Selbsttest (git diff --name-only -- wiki/ ⊆ Kandidatenliste∪log.md∪Index, Ghost-Diff-Rück-Rollen); Run-Vorphase-Bausteine (Defer R-1 Change-Detection + P2 Pre-Run-Reconcile; Baseline = HEAD der vorherigen Mutations-Boundary); §0-Aufruf Update-Variante; §5.7/§5.8-Referenzen nachgeführt; §7 Update entlassen; §8 Prüfgrundlage Revision 9 (Punkt-11-Area-Lesart, Rev-9-Lücke geschlossen) + Revisionslog 2.4/2.4.1 (Step-04-Review-Patch-Runde, AD-3/D-3 gehalten, Worked Example real)
- wiki/log.md: Story-3.1-Nachweis (Diff-Selbsttest wiki/log.md, per-Datei-Verdikt, Rev-9-Präzisierung, Sprint in-progress→review)
- deferred-work.md: R-1/P2 aufgegriffen (2026-08-18 §5.9); Review-Findings-Protokoll bzw. F17-Defer (git-lose Ausweichform ab Story 3.2)
- sprint-status.yaml: Story 3.1 → in-progress → review (Sprint-Sync), last_updated 22:30
- neu: epic-3-context.md, spec-3-1-… (status done, Suggested Review Order)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-19 05:22:30 +02:00

36 KiB
Raw Blame History

Log

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).