Story 2 2 #1
@@ -195,3 +195,16 @@ Noch nicht adressierte, aber real erkannte Arbeit — gesammelt aus Reviews. Ein
|
|||||||
- source_spec: `_bmad-output/implementation-artifacts/spec-2-2-claim-granulare-provenienz-dokumentieren.md`
|
- source_spec: `_bmad-output/implementation-artifacts/spec-2-2-claim-granulare-provenienz-dokumentieren.md`
|
||||||
summary: Sources-Closure-Verifikation einführen — jeder inline-referenzierte `raw/`-Pfad eines Concept-Bodies (per deterministischer Extraktion aus `(raw/…`-Verweisen) MUSS im `sources`-Frontmatter desselben Concepts deklariert sein (inkl. neuer `sources`-Einträge für Relokation/Zielwechsel, §5.5-Pkt.-1b-Regel). Aktuell prüft nur der `grep -nE '\(raw/'`-Existenz-Smoke die Präsenz des Verweises, nicht seine Zuordnung zu einer deklarierten Ressource; EC-1 prüft nur die deklarierten `sources`-Ressourcen, nicht inline-referenzierte. Ein inline-Verweis auf eine nicht deklarierte `raw/`-Datei (Beispiel im Story-2.2-Body behoben) bliebe sonst unsichtbar.
|
summary: Sources-Closure-Verifikation einführen — jeder inline-referenzierte `raw/`-Pfad eines Concept-Bodies (per deterministischer Extraktion aus `(raw/…`-Verweisen) MUSS im `sources`-Frontmatter desselben Concepts deklariert sein (inkl. neuer `sources`-Einträge für Relokation/Zielwechsel, §5.5-Pkt.-1b-Regel). Aktuell prüft nur der `grep -nE '\(raw/'`-Existenz-Smoke die Präsenz des Verweises, nicht seine Zuordnung zu einer deklarierten Ressource; EC-1 prüft nur die deklarierten `sources`-Ressourcen, nicht inline-referenzierte. Ein inline-Verweis auf eine nicht deklarierte `raw/`-Datei (Beispiel im Story-2.2-Body behoben) bliebe sonst unsichtbar.
|
||||||
evidence: Verification-Gap-Review (Story 2.2): Demonstriert an `wiki/wissensarchitektur-trennung-states.md` (Consumer-Unabhängigkeit zitierte `raw/epics/…` ohne `sources`-Deklaration — im Story-2.2-Patch behoben); kein re-runnable Check deckt die Abgeschlossenheit ab (D-3-konforme Deterministische Closure-Prüfung, analog grep-Pipeline, kein Standalone).
|
evidence: Verification-Gap-Review (Story 2.2): Demonstriert an `wiki/wissensarchitektur-trennung-states.md` (Consumer-Unabhängigkeit zitierte `raw/epics/…` ohne `sources`-Deklaration — im Story-2.2-Patch behoben); kein re-runnable Check deckt die Abgeschlossenheit ab (D-3-konforme Deterministische Closure-Prüfung, analog grep-Pipeline, kein Standalone).
|
||||||
|
status: offen — Home: spätere fokussierte Validator-/Instruktions-Runde (Rev 9-Kandidat), Validator-/Instruktions-Kanal; **kein Story-2.2-Blocker** (Story liefert die Markierungs-Syntax, nicht die Closure-Prüfung).
|
||||||
|
- source_spec: `_bmad-output/implementation-artifacts/spec-2-2-claim-granulare-provenienz-dokumentieren.md`
|
||||||
|
summary: **Stellen-Kennung-Existenz im Rohdokument wird nirgends geprüft** — §5.5 Pkt.1 macht die Existenz des `#`-Fragments im referenzierten Rohdokument zur harten Regel (ganzer Sinn der s1/s2-Korrektur), aber kein Check verifiziert sie: nicht der strukturelle Validator (keiner der 14 Punkte liest Fragment-Targets), nicht die Spec-Verification-Greps (nur `(raw/`-Präsenz), nicht die Selbsttest-Formel. Fragment-Typo (z. B. `#FR-19`) oder verbotenes Concept-`id`-Fragment `#s1` durchläuft den gesamten Pfad mit SUCCESS und liefert genau die Falsch-Attribution, die die Regel verhindern soll (Worked-Example-Grammatik ungeprüft). D-3-konforme deterministische Prüfung (Fragment tritt als Zeilenanker/Sektionstitel in `raw/<pfad>` auf; Negativ: kein `^s[0-9]+$`-Fragment), Schwester zu W1.
|
||||||
|
evidence: Verification-Gap-Review (bmad-code-review Story 2.2, 2026-08-17): Validator-14-Punkte-Katalog + EC-1 im Volltext gelesen (keine Fragment-Auflösung); alle aktuellen Fragmente der drei Concepts händisch gegen `raw/` verifiziert (alle auflösen) — aber nichts pinnt es; Demonstrationsfall `…(raw/epics/…md#FR-19)` → SUCCESS.
|
||||||
|
status: offen — Home: spätere fokussierte Validator-/Instruktions-Runde (Rev 9-Kandidat), Schwester zu W1; **kein Story-2.2-Blocker**.
|
||||||
|
- source_spec: `_bmad-output/implementation-artifacts/spec-2-2-claim-granulare-provenienz-dokumentieren.md`
|
||||||
|
summary: **Kontext-Marker-Grammatik (Selbstreferenz-Verbot, Musterwahl, exakter Token-Platz) ungeprüft** — §5.5 Pkt.2 definiert die Marker-Muster mit obligatorischem exaktem Token „nicht eigenständig belegt" und das neue Selbstreferenz-Verbot (Rev 1.6); der Lauf-Gate-Selbsttest (Pkt.4) und die Spec-Manual-Checks behaupten nur Token-Präsenz, nicht die Musterform oder das Selbstreferenz-Verbot. Ein Selbstreferenz-Marker (Concept nennt sich selbst als Ursprung) trägt den exakten Token und passiert jede re-runnable Prüfung mit SUCCESS — das Verbot ist durch nichts erzwingbar. Demonstrationsfall `übernommen aus wiki/<eigenes-Concept> auf Basis von raw/epics/… nicht eigenständig belegt` → SUCCESS. D-3-konforme Prüfung (Token pro Concept extrahieren, Pattern-Match gegen die kanonischen Formen, `<Concept-Pfad>` gegen eigenen OKF-Pfad vergleichen), Schwester zu W1.
|
||||||
|
evidence: Verification-Gap-Review (bmad-code-review Story 2.2, 2026-08-17): Punkt 9-Inhaltsscan prüft nur `okf_version`/`type: bundle`; die drei aktuellen Marker-Stellen (`knowledge-kompilation:37,52`, `llm-wiki-prinzip:40`, `wissensarchitektur:30`) konform gelesen — aber nichts pinnt die Grammatik; die Pre-Patch-Selbstreferenz (Klassifikation P5) beweist, dass der Fehler nur durch Review-Lesbarkeit, nicht durch re-runnable Checks auffindbar war.
|
||||||
|
status: offen — Home: spätere fokussierte Validator-/Instruktions-Runde, Schwester zu W1; **kein Story-2.2-Blocker**.
|
||||||
|
- source_spec: `_bmad-output/implementation-artifacts/spec-2-2-claim-granulare-provenienz-dokumentieren.md`
|
||||||
|
summary: **`sources`-`id`-Eindeutigkeit je Concept ohne Check und ohne Selbsttest-Hook** — §5.5 Pkt.3 führt die Regel „`id`-Werte je Concept eindeutig" ein und wird in allen drei Concepts angewendet (neue `id: s1`/`s2`), aber Validator Punkt 6 prüft Keys (nicht Wert-Duplikate), Punkt 13 nur Top-Level-Frontmatter-Duplikate, die Spec-Greps prüfen Feldpräsenz/`resource`-Werte, und §5.5 Pkt.4 (Selbsttest-Kriterien) führt die id-Eindeutigkeitsregel gar nicht auf. Duplizierte `id`-Werte (z. B. beide `s1` in `knowledge-kompilation:4-7`) liefern SUCCESS. D-3-konforme Prüfung (kein `sources[].id`-Wert tritt im selben File doppelt auf) + Eintrag in §5.5 Pkt.4, Schwester zu W1.
|
||||||
|
evidence: Verification-Gap-Review (bmad-code-review Story 2.2, 2026-08-17): Punkt 6/13 im Volltext gelesen; Demonstrationsfall beide Einträge `id: s1` → alle Punkte + Greps SUCCESS.
|
||||||
|
status: offen — Home: spätere fokussierte Validator-/Instruktions-Runde, Schwester zu W1; **kein Story-2.2-Blocker**.
|
||||||
|
|||||||
+36
-3
@@ -3,7 +3,7 @@ title: 'Claim-granulare Provenienz dokumentieren (Story 2.2)'
|
|||||||
type: 'feature'
|
type: 'feature'
|
||||||
created: '2026-08-17'
|
created: '2026-08-17'
|
||||||
status: 'done'
|
status: 'done'
|
||||||
review_loop_iteration: 0
|
review_loop_iteration: 2
|
||||||
baseline_commit: bb32acdf3f1a3547424da0f878bd06383921b22a
|
baseline_commit: bb32acdf3f1a3547424da0f878bd06383921b22a
|
||||||
context:
|
context:
|
||||||
- _bmad-output/implementation-artifacts/epic-2-context.md
|
- _bmad-output/implementation-artifacts/epic-2-context.md
|
||||||
@@ -49,6 +49,7 @@ context:
|
|||||||
- `wiki/log.md` — **append-only**: Nachrüst-Eintrag inkl. Diagramm-Quell-Deklaration.
|
- `wiki/log.md` — **append-only**: Nachrüst-Eintrag inkl. Diagramm-Quell-Deklaration.
|
||||||
- `raw/architecture-spine/…` (AD-4a :143), `raw/epics/…`, `raw/prd/…` — **read-only Evidenz**.
|
- `raw/architecture-spine/…` (AD-4a :143), `raw/epics/…`, `raw/prd/…` — **read-only Evidenz**.
|
||||||
- `_bmad-output/implementation-artifacts/epic-2-context.md` — Planungskontext (read-only).
|
- `_bmad-output/implementation-artifacts/epic-2-context.md` — Planungskontext (read-only).
|
||||||
|
- `sprint-status.yaml` — **mutiert**: Status-Übergang (Review-Workflow-Sync, `backlog` → `review`).
|
||||||
|
|
||||||
## Tasks & Acceptance
|
## Tasks & Acceptance
|
||||||
|
|
||||||
@@ -68,16 +69,48 @@ context:
|
|||||||
- Given Nachrüst-Inhalte, when validiert, then bleibt das Bundle vollständig Validator-SUCCESS (keine neue Invaliditätsklasse, keine Vertrags-/`raw/`-Mutation).
|
- Given Nachrüst-Inhalte, when validiert, then bleibt das Bundle vollständig Validator-SUCCESS (keine neue Invaliditätsklasse, keine Vertrags-/`raw/`-Mutation).
|
||||||
- Given Instruktions-Bestand, when geprüft, then rein textuell (D-3), deterministisch (AD-17h), referenziert den Vertrag.
|
- Given Instruktions-Bestand, when geprüft, then rein textuell (D-3), deterministisch (AD-17h), referenziert den Vertrag.
|
||||||
|
|
||||||
|
### Review Findings (bmad-code-review, 2026-08-17)
|
||||||
|
|
||||||
|
> Vier Layer (Blind Hunter, Edge Case Hunter, Verification Gap, Acceptance Auditor) auf `bb32acd → story-2-2`. Dedupliziert, Severity durch Workflow gesetzt (Reviewer-Severity verworfen). 1 `decision-needed` (entschieden 2026-08-17 → Option 1), 12 `patch`, 4 `defer`, 2 dismissed (Status-Drift als Workflow-Bug — 2.1-Präzedenz; non-behavioral Screen-outs).
|
||||||
|
|
||||||
|
**Decision-Needed**
|
||||||
|
|
||||||
|
- [x] [Review][Decision] **D1 — Referenzform: Komma-Form vs. verbindliche `#`-Form** — **Entschieden (2026-08-17): Option 1** — Komma-Form als zulässige Variante in §5.5 Pkt.1 formal zulassen; Bodies bleiben unverändert. Umsetzung als Patch **P12** (siehe unten).
|
||||||
|
|
||||||
|
**Patch**
|
||||||
|
|
||||||
|
- [x] [Review][Patch] **P1 — Selbsttest-Grep-Formel defekt (ungeschlossenes Klammerpaar)** `schema/compiler.md:76,99` — `grep -nE '(raw/|]\(raw/'` öffnet eine Gruppe, schließt sie nie → `exit 2 „Unmatched ( or \("` (reproduziert). AC-5/AD-17h (deterministischer Selbsttest) liefert einen Fehler statt deterministischer Ausgabe. Rev-1.6-„Korrektur" war unnötig: `\(raw/` (noch in Spec Verification) erfasst bereits beide Formen. Fix: eine funktionierende Formel in compiler.md Pkt.1+Pkt.4 **und** Spec Verification synchron halten.
|
||||||
|
- [x] [Review][Patch] **P2 — „Pkt. 1b" referenziert, aber nicht definiert** `schema/compiler.md:68,112` + `_bmad-output/implementation-artifacts/deferred-work.md:196` — die Relokations-Regel ist ein unnummeriertes Sub-Bullet unter Pkt.1; das Label „1b" existiert in §5.5 nicht. Fix: Sub-Bullet als „1b" nummerieren (hält alle drei Referenzen) oder alle drei Referenzen umschreiben.
|
||||||
|
- [x] [Review][Patch] **P3 — Marker-Muster-Zahl inkonsistent** `schema/compiler.md:81,100` — Pkt.2 öffnet mit „zwei Marker-Muster", definiert dann drei (Zwischen-Concept, Direktübernahme, Forward-Referenz); Pkt.4 wiederholt „einen der beiden". Fix: „drei" / Forward-Referenz als Variante kennzeichnen.
|
||||||
|
- [x] [Review][Patch] **P4 — §8 Normreferenzen nicht für §5.5 ergänzt** `schema/compiler.md:172-177` — fehlen `AD-4a`, `A0-3` (Kernnormen des §5.5) sowie `AD-16`, `AD-9`, `AD-13`, `AD-14` (jetzt in den Bodies zitiert). Fix: Spine-/Epics-Zeile um die tatsächlich genutzten Normen erweitern.
|
||||||
|
- [x] [Review][Patch] **P5 — `wiki/log.md`-Eintrag: veralteter Status** `wiki/log.md:4` — Eintrag endet „— Story 2.2 `in-progress`", während derselbe Diff `sprint-status.yaml` auf `review` setzt. Fix: auf `review` angleichen.
|
||||||
|
- [x] [Review][Patch] **P6 — Spec `review_loop_iteration: 0`** `spec…md:6` — trotz abgeschlossener Step-04-Review-Loop + Patch-Runde (P1–P7) und Defers; Vergleich `spec-2-1` = 2. Fix: tatsächliche Iterationszahl setzen.
|
||||||
|
- [x] [Review][Patch] **P7 — Suggested-Review-Order-Statuszeile falsch** `spec…md:124` — „Story-Status `in-progress` (nach Human-Review → `review`)" zeigt auf `sprint-status.yaml:47`, die hier bereits `review` ist; Klammer dreht die Workflow-Richtung um (Human-Review → `done`). Fix: Zeile korrigieren.
|
||||||
|
- [x] [Review][Patch] **P8 — Code Map lässt `sprint-status.yaml` aus** `spec…md:43` — die Code Map enumeriert alle mutierten Dateien, außer `sprint-status.yaml`, den die eigene Verification `git diff --stat` aufführt. Fix: ergänzen.
|
||||||
|
- [x] [Review][Patch] **P9 — deferred-work-Eintrag bricht Datei-Format** `_bmad-output/implementation-artifacts/deferred-work.md:195-197` — neu eingeführter Eintrag trägt `source_spec:`/`summary:`/`evidence:`, aber kein `status:`/`Home:` wie alle bestehenden. Fix: `status:`-Zeile mit Owner ergänzen.
|
||||||
|
- [x] [Review][Patch] **P10 — Gefrorener Block: „Kein Frontmatter-Change" wörtlich widersprüchlich** `spec…md:74` — der Frozen-Block sagt „Kein Frontmatter-Change, kein neues Feld", der Diff ergänzt aber `id`-Werte + zwei `sources`-Einträge. Rev 1.6 löste das nur auf compiler.md-Seite; das Spec Change Log dokumentiert die Angleichung nicht. Fix: Angleichungs-Hinweis („kein neues Feld *über das §3.3-Subset hinaus*") im (nicht gefrorenen) Change Log nachführen — Frozen-Block unverändert lassen.
|
||||||
|
- [x] [Review][Patch] **P11 — Forward-Referenz-Zitat „Epic-3-Abschnitt" mehrdeutig** `wiki/knowledge-kompilation-inkrementell.md:52` — `raw/epics/…` trägt zwei „Epic 3"-Headings (`### Epic 3` Zeile 90, `## Epic 3` Zeile 258). Fix: auf die eine Sektion disambiguieren (exakter Sektionstitel/Nummer).
|
||||||
|
- [x] [Review][Patch] **P12 — D1-Umsetzung: Komma-Form als zulässige Variante in §5.5 Pkt.1 formal zulassen** `schema/compiler.md:72-77` — §5.5 Pkt.1 neben der verbindlichen Default-Form `(raw/<datei.md>#<stellen-kennung>)` die **Komma-Form** `(raw/<datei.md>, <stellen-kennung>)` als zulässige zweite Form zulassen (für Stellen-Kennungen, die im Rohdokument als Sektionstitel/Nummer ohne Bezeichner-`id` vorliegen, z. B. `§ 1 Vision`, `§ 4.5 FR-16`) — analog zum bereits vorhandenen Präzedenzfall „Link-Form ggü. Plain-Form bis Story 2.3 formal offen, beide zulässig, sofern der volle `raw/`-Pfad am Verweis erkennbar und Grep-greifbar". Zusätzlich: **Multi-Beleg-Serialisierung** festlegen (Komma-Gruppierung `#ID1, #ID2` unter einem Pfad explizit zulassen ODER je Kennung vollen Pfad wiederholen — Konsistenz mit den Bodies; vgl. `wiki/wissensarchitektur-trennung-states.md:15`). Worked Example um ein Komma-Form-Beispiel ergänzen. Bodies bleiben unverändert (Form ist dort dann konform). Rev-1.7-Eintrag im §8-Revisionslog.
|
||||||
|
|
||||||
|
**Defer (vorbestehend / Scope)**
|
||||||
|
|
||||||
|
- [x] [Review][Defer] **W1 — Sources-Closure (inline `raw/`-Pfad ⊆ `sources`)** — bereits in `deferred-work.md` (Abschnitt „Deferred from: code review of story-2.2") verankert; kein neues Handeln.
|
||||||
|
- [x] [Review][Defer] **W2 — Stellen-Kennung-Existenz im Rohdokument wird nirgends geprüft** `schema/compiler.md:74` — Fragment-Typo (z. B. `#FR-19`, `#AD-1b`) oder verbotenes Concept-`id`-Fragment `#s1` durchläuft Grep + 14 Validator-Punkte + EC-1 (Datei existiert) → SUCCESS; Falsch-Attribution ohne Pin. D-3-/kein-Standalone-Kontext; Schwester zu W1.
|
||||||
|
- [x] [Review][Defer] **W3 — Kontext-Marker-Grammatik (Selbstreferenz-Verbot, Musterwahl) ungeprüft** `schema/compiler.md:81-94` — ein Selbstreferenz-Marker (Concept nennt sich als Ursprung) trägt den exakten Token und passiert jede re-runnable Prüfung; das Rev-1.6-Selbstreferenz-Verbot ist durch nichts erzwingbar. Schwester zu W1.
|
||||||
|
- [x] [Review][Defer] **W4 — `sources`-`id`-Eindeutigkeit je Concept ohne Check** `schema/compiler.md:96` — duplizierte `id`-Werte (z. B. beide `s1`) passieren Validator Punkt 6 (prüft Keys, nicht Werte) + Punkt 13 (Top-Level) + Spec-Greps; §5.5 Pkt.4 führt die Regel nicht. Schwester zu W1.
|
||||||
|
|
||||||
## Spec Change Log
|
## Spec Change Log
|
||||||
|
|
||||||
- **2026-08-17 (Erstellung):** Initiale Approve-Baseline.
|
- **2026-08-17 (Erstellung):** Initiale Approve-Baseline.
|
||||||
- **2026-08-17 (Patch-Runde, Step-04-Review):** Review-Findings (patch-Klasse) umgesetzt: §5.5-Klarstellungen (Rev 1.6 in `schema/compiler.md`), Body-Vereinheitlichung (Stellen-Kennungs-Sektionstitel statt Concept-`id`-Fragmente, volle `raw/`-Pfade je Beleg, Direktübernahme-Marker ohne Selbstreferenz, FR-16-Beleg auf PRD §4.5 allein), `index.md`/`log.md`-Angleichungen. Klassifikation: `review-2-2-klassifikation.md`. Defer: sources-Closure-Verifikation → `deferred-work.md`.
|
- **2026-08-17 (Patch-Runde, Step-04-Review):** Review-Findings (patch-Klasse) umgesetzt: §5.5-Klarstellungen (Rev 1.6 in `schema/compiler.md`), Body-Vereinheitlichung (Stellen-Kennungs-Sektionstitel statt Concept-`id`-Fragmente, volle `raw/`-Pfade je Beleg, Direktübernahme-Marker ohne Selbstreferenz, FR-16-Beleg auf PRD §4.5 allein), `index.md`/`log.md`-Angleichungen. Klassifikation: `review-2-2-klassifikation.md`. Defer: sources-Closure-Verifikation → `deferred-work.md`.
|
||||||
|
- **2026-08-17 (bmad-code-review, 4 Layer — Patch-Runde 2):** 1 `decision-needed` (D1 Referenzform → **Option 1: Komma-Form als zulässige Variante** in §5.5 Pkt.1) + 12 `patch` umgesetzt (`schema/compiler.md` → **Rev 1.7**: Grep-Formel behoben, Komma-Form + Multi-Beleg-Serialisierung, 1a/1b-Nummerierung, drei Marker-Muster, Forward-Referenz-Disambiguierung, §8-Normreferenzen; `wiki/log.md` Status `review`; `wiki/knowledge-kompilation-inkrementell.md` Forward-Referenz-Zitat; Spec-Interna: Code Map + `sprint-status.yaml`, Verification-Grep-Synchronisation, Review-Order-Statuszeile, `review_loop_iteration`). Defer: W2–W4 (neue Schwester-Gaps zu W1: Fragment-Existenz, Marker-Grammatik, `id`-Eindeutigkeit — keine re-runnable Prüfung möglich ohne Standalone, D-3) → `deferred-work.md`.
|
||||||
|
- **Angleichung zum Frozen-Block (Review-Finding P10):** Die frozen-Block-Zeile „Kein Frontmatter-Change, kein neues Feld" ist als „**kein neues Feld *über das §3.3-Subset hinaus*\" zu lesen — das Hinzufügen/Erweitern bestehender `sources`-Einträge (`resource`/`id`, Relokation/Zielwechsel, §5.5 Pkt. 1b) ist Teil der Konvention und erfolgt im vorliegenden Diff (drei Concepts, zwei neue `sources`-Einträge + `id`-Vergabe). Der Frozen-Block selbst bleibt unverändert; diese Leseanweisung ist hier dokumentiert, weil die wörtliche Formulierung mit dem deliverierten Change kollidierte (Rev 1.6 hat die Angleichung nur auf `compiler.md`-Seite vorgenommen).
|
||||||
|
|
||||||
## Verification
|
## Verification
|
||||||
|
|
||||||
**Commands:**
|
**Commands:**
|
||||||
- `git diff --stat` — `schema/compiler.md`, 3 x `wiki/*.md`, `wiki/index.md`, `wiki/log.md`, `sprint-status.yaml`; KEINE `raw/`-/`schema/wiki-compiler.md`-Mutation.
|
- `git diff --stat` — `schema/compiler.md`, 3 x `wiki/*.md`, `wiki/index.md`, `wiki/log.md`, `sprint-status.yaml`; KEINE `raw/`-/`schema/wiki-compiler.md`-Mutation.
|
||||||
- `grep -nE '\(raw/' wiki/*.md` — je belegter Aussage ein Inline-`raw/`-Verweis.
|
- `sh -c "grep -nE '\(raw/' wiki/*.md"` — je belegter Aussage ein Inline-`raw/`-Verweis (die Formel `grep -nE '\(raw/'` ist die verbindliche Selbsttest-Formel, `schema/compiler.md` §5.5 Pkt.1/Pkt.4, Rev 1.7; das Teilmuster `(raw/` erfasst Plain-Form und Markdown-Linkform).
|
||||||
- Validator-Lauf (deterministisch) — alle `wiki/`-Dateien SUCCESS (Punkte 1/6/11/14, EC-1).
|
- Validator-Lauf (deterministisch) — alle `wiki/`-Dateien SUCCESS (Punkte 1/6/11/14, EC-1).
|
||||||
- `grep -nE '^(type|sources|generated|verified|status|stale_after):' wiki/*.md` — nur §3-Felder; `grep -nE 'resource:' wiki/*.md` — jeder Wert existierender `/`-getrennter `raw/`-Pfad.
|
- `grep -nE '^(type|sources|generated|verified|status|stale_after):' wiki/*.md` — nur §3-Felder; `grep -nE 'resource:' wiki/*.md` — jeder Wert existierender `/`-getrennter `raw/`-Pfad.
|
||||||
|
|
||||||
@@ -121,5 +154,5 @@ context:
|
|||||||
- Defer-Kontext: sources-Closure-Verifikation (jeder inline-referenzierte `raw/`-Pfad ⊆ `sources`) für spätere Fokussierung.
|
- Defer-Kontext: sources-Closure-Verifikation (jeder inline-referenzierte `raw/`-Pfad ⊆ `sources`) für spätere Fokussierung.
|
||||||
[`deferred-work.md:196`](./deferred-work.md#L196)
|
[`deferred-work.md:196`](./deferred-work.md#L196)
|
||||||
|
|
||||||
- Story-Status `in-progress` (nach Human-Review → `review`).
|
- Story-Status `done` (bmad-code-review 2026-08-17 abgeschlossen, alle Findings aufgelöst; Human-Review-Freigabe in dieser Review-Runde).
|
||||||
[`sprint-status.yaml:47`](./sprint-status.yaml#L47)
|
[`sprint-status.yaml:47`](./sprint-status.yaml#L47)
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
# - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended)
|
# - 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
|
# - Retrospective appends its action items to action_items; the status view surfaces open ones
|
||||||
generated: 08-14-2026 00:00
|
generated: 08-14-2026 00:00
|
||||||
last_updated: 08-17-2026 09:05
|
last_updated: 08-17-2026 11:19
|
||||||
project: wow20
|
project: wow20
|
||||||
project_key: NOKEY
|
project_key: NOKEY
|
||||||
tracking_system: file-system
|
tracking_system: file-system
|
||||||
@@ -44,7 +44,7 @@ development_status:
|
|||||||
|
|
||||||
epic-2: in-progress
|
epic-2: in-progress
|
||||||
2-1-concepts-aus-source-material-erzeugen-okf-konform: done
|
2-1-concepts-aus-source-material-erzeugen-okf-konform: done
|
||||||
2-2-claim-granulare-provenienz-dokumentieren: review
|
2-2-claim-granulare-provenienz-dokumentieren: done
|
||||||
2-3-concepts-verlinken-eine-erlaubte-linkform: backlog
|
2-3-concepts-verlinken-eine-erlaubte-linkform: backlog
|
||||||
2-4-deterministische-bereichszuordnung-concept-hierarchie: backlog
|
2-4-deterministische-bereichszuordnung-concept-hierarchie: backlog
|
||||||
2-5-progressive-discovery-über-index-md-bereitstellen: backlog
|
2-5-progressive-discovery-über-index-md-bereitstellen: backlog
|
||||||
@@ -63,7 +63,7 @@ development_status:
|
|||||||
|
|
||||||
epic-4: backlog
|
epic-4: backlog
|
||||||
4-1-information-vor-jeder-änderung-klassifizieren-new-confirming: backlog
|
4-1-information-vor-jeder-änderung-klassifizieren-new-confirming: backlog
|
||||||
4-2-disagreements-in-log-md-explizit-dokumentieren: backlog
|
4-2-disagreements-in-log-md-explizit-dokumentieren: backlog3.3.
|
||||||
4-3-menschliche-kuratierung-respektieren-human-curation: backlog
|
4-3-menschliche-kuratierung-respektieren-human-curation: backlog
|
||||||
4-4-trust-metadaten-maschinell-vs-human-reviewed-unterscheiden: backlog
|
4-4-trust-metadaten-maschinell-vs-human-reviewed-unterscheiden: backlog
|
||||||
epic-4-retrospective: optional
|
epic-4-retrospective: optional
|
||||||
|
|||||||
+22
-12
@@ -71,14 +71,19 @@ Provenienz ist **claim-granular** (AD-4a, A0-3): Nicht nur das Concept als Ganze
|
|||||||
|
|
||||||
`(raw/<datei.md>#<stellen-kennung>)`
|
`(raw/<datei.md>#<stellen-kennung>)`
|
||||||
|
|
||||||
- Das Fragment hinter `#` ist eine **STELLEN-KENNUNG, die im referenzierten Rohdokument tatsächlich existiert** — z. B. ein Bezeichner-`id` der rohen Datei (wie `FR-12`, `A0-6`, `AD-5` in `raw/epics/…` bzw. `raw/architecture-spine/…`) oder der exakte Sektionstitel des Rohdokuments (z. B. `§ 1 Vision`). Die **Concept-eigene `sources`-Feld-`id` (`s1`, `s2`, …) ist NICHT als Fragment zu verwenden**, weil sie im Rohdokument nicht existiert — der Verweis würde im Rohdokument nicht auflösen (keine Falsch-Attribution). Die `sources`-`id` dient ausschließlich der vertragsgemäßen internen Zitat-Attribution (Vertrag §3.3), nicht als Inline-Fragment.
|
Daneben ist die **Komma-Form** als zulässige zweite Form festgelegt:
|
||||||
- **Voller `raw/`-Pfad je Beleg:** Jeder Beleg nennt den vollen `raw/`-Pfad, auch wenn derselbe Pfad mehrfach referenziert wird: `(raw/epics/epics-2026-08-14.md#FR-12; raw/epics/epics-2026-08-14.md#A0-6)` — **keine Pfad-Elision** (also niemals allein `#A0-6` ohne vorangestellten Pfad).
|
|
||||||
- **Deterministische Selbsttest-Formel:** Die Verweise sind per `grep -nE '(raw/|]\(raw/'` auffindbar (erfasst auch die Markdown-Linkform). Bis Story 2.3 bleibt die Frage „Link-Form `(<pfad>)` ggü. `[<text>](<pfad>)`" formal offen — beide sind zulässig, sofern der volle `raw/`-Pfad am Verweis erkennbar ist und der Grep die Form erfasst.
|
|
||||||
|
|
||||||
- **Pfad-Form:** ausschließlich `/`-getrennte relative Workspace-Pfade **innerhalb `raw/`** — nie `wiki/` (AD-4b), kein `..`, kein führendes `/`, kein Backslash, keine URL-Form (spiegelbildlich zu §4.2 und Vertrag §3.3). Um zusätzliche Validierungsoberfläche ohne importierte Struktur zu vermeiden, verweist der Inline-Beleg üblicherweise auf dasselbe `raw/`-Ziel, das auch im `sources`-Frontmatter des Concepts deklariert ist — die EC-1-Existenzprüfung (§6.5-Kriterium 3 / Validator §6.1) bleibt damit unverändert anwendbar.
|
`(raw/<datei.md>, <stellen-kennung>)`
|
||||||
- **Relokation/Zielwechsel:** Zeigt eine Aussage auf einen anderen `raw/`-Pfad als die `sources`-Deklaration des Concepts (z. B. das ASCII-Diagramm aus `raw/architecture-spine/…` in einem Concept mit `sources: raw/epics/…`), so ist **zusätzlich ein passender `sources`-Eintrag** im Frontmatter zu ergänzen, dessen `resource` auf jenen Pfad zeigt (EC-1-Existenz, Punkt 3/4). Das Diagramm-Quell ist damit sowohl body- als auch frontmatter-seitig deklariert (Story-2.1-Instanz: ASCII-Diagramm in `knowledge-kompilation-inkrementell.md`).
|
|
||||||
|
|
||||||
2. **Kontext-Marker je Übernahme (AD-4a/A0-3):** Eine **Übernahme** ist eine Kontext-/Synthese-Umformulierung: Formulierung, die aus Concept-Kontext, direkt aus einer rohen Quelle oder aus der Synthese mehrerer Quellen stammt und nicht eigenständig gegen `raw/` belegt ist. Es gibt **zwei Marker-Muster** — beide MÜSSEN den exakten Token „nicht eigenständig belegt" enthalten (deterministischer Selbsttest, mindestens eine Form pro Übernahme):
|
- Die Komma-Form wird verwendet, wenn die Stellen-Kennung im Rohdokument **als Sektionstitel/Nummer ohne Bezeichner-`id`** vorliegt (z. B. `§ 1 Vision`, `§ 4.5 FR-16`, `§ 0 Document Purpose`) — ein `#`-Fragment wäre hier ein künstlicher Anker. Für Bezeichner-`id`s (`FR-*`, `A0-*`, `AD-*`) bleibt die `#`-Form die Default-Form. Bis Story 2.3 bleibt die Frage „Link-Form `(<pfad>)` ggü. `[<text>](<pfad>)`" formal offen — beide sind zulässig, sofern der volle `raw/`-Pfad am Verweis erkennbar ist und der Grep die Form erfasst (analog: beide Fragment-Formen `#`/Komma sind zulässig, sofern die Stellen-Kennung im Rohdokument existiert).
|
||||||
|
- Die **Stellen-Kennung** (hinter `#` bzw. nach dem Komma) ist eine **KENNUNG, die im referenzierten Rohdokument tatsächlich existiert** — z. B. ein Bezeichner-`id` der rohen Datei (wie `FR-12`, `A0-6`, `AD-5` in `raw/epics/…` bzw. `raw/architecture-spine/…`) oder der exakte Sektionstitel des Rohdokuments (z. B. `§ 1 Vision`). Die **Concept-eigene `sources`-Feld-`id` (`s1`, `s2`, …) ist NICHT als Fragment zu verwenden**, weil sie im Rohdokument nicht existiert — der Verweis würde im Rohdokument nicht auflösen (keine Falsch-Attribution). Die `sources`-`id` dient ausschließlich der vertragsgemäßen internen Zitat-Attribution (Vertrag §3.3), nicht als Inline-Fragment.
|
||||||
|
- **Multi-Beleg-Serialisierung:** Mehrere Belege desselben Rohdokuments innerhalb eines Inline-Verweises werden semikolon-getrennt mit vollem Pfad je Beleg aufgelistet: `(raw/epics/epics-2026-08-14.md#FR-12; raw/epics/epics-2026-08-14.md#A0-6)`. Innerhalb eines Belegs dürfen mehrere `#`-Kennungen unter demselben Pfad komma-gruppiert werden, wenn sie dieselbe Stellen-Kennung-Form tragen: `(raw/architecture-spine/architecture-spine-2026-08-14.md#AD-2, #AD-3, #AD-1)`; bei **gemischten Formen** (`#`-Kennung + Sektionstitel) bleibt der Pfad je Beleg vollständig: `(raw/architecture-spine/…md#AD-3; raw/prd/prd-wow20-2026-08-14.md, § 8.3 Separation of Concerns)`. **Keine Pfad-Elision** über Beleg-Grenzen hinweg (also niemals allein `#A0-6` ohne vorangestellten Pfad als eigenständiger Beleg).
|
||||||
|
- **Deterministische Selbsttest-Formel:** Die Verweise sind per `grep -nE '\(raw/'` auffindbar (das Teilmuster `(raw/` trifft beide Plain-Formen `(raw/…)` und die Markdown-Linkform `[<text>](raw/…)`). Die Formel ist als `sh -c "grep -nE '\(raw/' wiki/*.md"` re-executierbar und liefert deterministische Ausgabe (AD-17h).
|
||||||
|
|
||||||
|
- **1a. Pfad-Form:** ausschließlich `/`-getrennte relative Workspace-Pfade **innerhalb `raw/`** — nie `wiki/` (AD-4b), kein `..`, kein führendes `/`, kein Backslash, keine URL-Form (spiegelbildlich zu §4.2 und Vertrag §3.3). Um zusätzliche Validierungsoberfläche ohne importierte Struktur zu vermeiden, verweist der Inline-Beleg üblicherweise auf dasselbe `raw/`-Ziel, das auch im `sources`-Frontmatter des Concepts deklariert ist — die EC-1-Existenzprüfung (§6.5-Kriterium 3 / Validator §6.1) bleibt damit unverändert anwendbar.
|
||||||
|
- **1b. Relokation/Zielwechsel:** Zeigt eine Aussage auf einen anderen `raw/`-Pfad als die `sources`-Deklaration des Concepts (z. B. das ASCII-Diagramm aus `raw/architecture-spine/…` in einem Concept mit `sources: raw/epics/…`), so ist **zusätzlich ein passender `sources`-Eintrag** im Frontmatter zu ergänzen, dessen `resource` auf jenen Pfad zeigt (EC-1-Existenz, Punkt 3/4). Das Diagramm-Quell ist damit sowohl body- als auch frontmatter-seitig deklariert (Story-2.1-Instanz: ASCII-Diagramm in `knowledge-kompilation-inkrementell.md`).
|
||||||
|
|
||||||
|
2. **Kontext-Marker je Übernahme (AD-4a/A0-3):** Eine **Übernahme** ist eine Kontext-/Synthese-Umformulierung: Formulierung, die aus Concept-Kontext, direkt aus einer rohen Quelle oder aus der Synthese mehrerer Quellen stammt und nicht eigenständig gegen `raw/` belegt ist. Es gibt **drei Marker-Muster** (zwei Grundmuster + Forward-Referenz-Variante) — alle MÜSSEN den exakten Token „nicht eigenständig belegt" enthalten (deterministischer Selbsttest, mindestens eine Form pro Übernahme):
|
||||||
|
|
||||||
- **Übernahme über ein Zwischen-Concept** (Ursprungs-Concept existiert): minimal nach Vertrag §3.3/A0-3-Wortlaut
|
- **Übernahme über ein Zwischen-Concept** (Ursprungs-Concept existiert): minimal nach Vertrag §3.3/A0-3-Wortlaut
|
||||||
|
|
||||||
@@ -91,13 +96,13 @@ Provenienz ist **claim-granular** (AD-4a, A0-3): Nicht nur das Concept als Ganze
|
|||||||
|
|
||||||
Dabei ist `<source>` der zugrunde liegende `raw/`-Pfad.
|
Dabei ist `<source>` der zugrunde liegende `raw/`-Pfad.
|
||||||
|
|
||||||
Die Marker stehen direkt bei der übernommenen Aussage (Absatz-/Listen-Ebene), damit die Zuordnung claim-granular bleibt. **Epic-3/4-Fähigkeiten**, die im Körper eines Concepts nur als Forward-Referenz erscheinen (noch nicht erzeugt/validiert), tragen den Forward-Referenz-Marker ebenfalls mit dem exakten Token — nicht eigenständig belegt, als Forward-Referenz übernommen (die „auf Basis von"-Angabe wird hier nur gesetzt, wenn nicht bereits aus der Kontext-/Konzeptzeile ersichtlich): „… als Forward-Referenz übernommen, nicht eigenständig belegt (raw/epics/epics-2026-08-14.md, Epic-3-Abschnitt)".
|
Die Marker stehen direkt bei der übernommenen Aussage (Absatz-/Listen-Ebene), damit die Zuordnung claim-granular bleibt. **Epic-3/4-Fähigkeiten**, die im Körper eines Concepts nur als Forward-Referenz erscheinen (noch nicht erzeugt/validiert), tragen die **Forward-Referenz-Variante** des Markers (drittes Muster) ebenfalls mit dem exakten Token — nicht eigenständig belegt, als Forward-Referenz übernommen (die „auf Basis von"-Angabe wird hier nur gesetzt, wenn nicht bereits aus der Kontext-/Konzeptzeile ersichtlich): „… als Forward-Referenz übernommen, nicht eigenständig belegt (raw/epics/epics-2026-08-14.md, Story 3.1: Inkrementellen Datenfluss implementieren)".
|
||||||
|
|
||||||
3. **Eindeutiges `id`-Scoping (Vertrag §3.3):** `id`-Werte in `sources`-Einträgen sind **je Concept eindeutig** (innerhalb eines Concepts darf kein `id` doppelt vorkommen). Über Concepts hinweg ist `id` nicht global eindeutig — der Adressraum ist der Concept-Pfad + `id` (AD-7a). Bei der Nachrüstung bestehender Concepts ohne `id` können `id`s deterministisch vergeben werden (`s1`, `s2`, … in Dokumentreihenfolge).
|
3. **Eindeutiges `id`-Scoping (Vertrag §3.3):** `id`-Werte in `sources`-Einträgen sind **je Concept eindeutig** (innerhalb eines Concepts darf kein `id` doppelt vorkommen). Über Concepts hinweg ist `id` nicht global eindeutig — der Adressraum ist der Concept-Pfad + `id` (AD-7a). Bei der Nachrüstung bestehender Concepts ohne `id` können `id`s deterministisch vergeben werden (`s1`, `s2`, … in Dokumentreihenfolge).
|
||||||
|
|
||||||
4. **Selbsttest-Kriterien (AD-17h, Story-2.2-Projektion):** Vor Abschluss eines Runs prüft der Producer:
|
4. **Selbsttest-Kriterien (AD-17h, Story-2.2-Projektion):** Vor Abschluss eines Runs prüft der Producer:
|
||||||
- **Belegte Aussage → Inline-`raw/`-Verweis:** Jede Aussage, die fachlich eine Evidenzstelle referenziert, trägt einen solchen Verweis mit vollem `raw/`-Pfad je Beleg (per `grep -nE '(raw/|]\(raw/'` auffindbar — erfasst auch die Markdown-Linkform).
|
- **Belegte Aussage → Inline-`raw/`-Verweis:** Jede Aussage, die fachlich eine Evidenzstelle referenziert, trägt einen solchen Verweis mit vollem `raw/`-Pfad je Beleg (per `grep -nE '\(raw/'` auffindbar — erfasst auch die Markdown-Linkform).
|
||||||
- **Übernahme → Kontext-Marker:** Jede Kontext-/Synthese-Umformulierung, jede Direktübernahme aus `raw/` und jede Epic-3/4-Forward-Referenz trägt einen der beiden Marker-Muster aus Pkt. 2 — beide enthalten den exakten Token „nicht eigenständig belegt".
|
- **Übernahme → Kontext-Marker:** Jede Kontext-/Synthese-Umformulierung, jede Direktübernahme aus `raw/` und jede Epic-3/4-Forward-Referenz trägt eines der drei Marker-Muster aus Pkt. 2 — alle enthalten den exakten Token „nicht eigenständig belegt".
|
||||||
- **Kein unautorisierter Key:** Das Nachrüsten verändert ausschließlich den Body und die zulässigen §3.3-`sources`-Felder (`resource`, `id`, `title`, `author`, `usage_count`, `last_modified`); keine zusätzlichen Frontmatter-Felder, keine §7-Klasse (Punkt 6).
|
- **Kein unautorisierter Key:** Das Nachrüsten verändert ausschließlich den Body und die zulässigen §3.3-`sources`-Felder (`resource`, `id`, `title`, `author`, `usage_count`, `last_modified`); keine zusätzlichen Frontmatter-Felder, keine §7-Klasse (Punkt 6).
|
||||||
- Wenn eine Aussage weder belegt noch als Übernahme markiert werden kann, wird sie **als Übernahme mit Marker geführt** — niemals erfunden belegt (UNBELEGTE_AUSSAGE: textuell sichtbar, Run bricht nicht ab).
|
- Wenn eine Aussage weder belegt noch als Übernahme markiert werden kann, wird sie **als Übernahme mit Marker geführt** — niemals erfunden belegt (UNBELEGTE_AUSSAGE: textuell sichtbar, Run bricht nicht ab).
|
||||||
|
|
||||||
@@ -105,6 +110,10 @@ Provenienz ist **claim-granular** (AD-4a, A0-3): Nicht nur das Concept als Ganze
|
|||||||
|
|
||||||
> Alle erzeugten Concepts sind OKF-0.2-konform (raw/epics/epics-2026-08-14.md#FR-9).
|
> Alle erzeugten Concepts sind OKF-0.2-konform (raw/epics/epics-2026-08-14.md#FR-9).
|
||||||
|
|
||||||
|
Dasselbe als **Komma-Form** (Stellen-Kennung = Sektionstitel ohne Bezeichner-`id` im Rohdokument):
|
||||||
|
|
||||||
|
> Das zentrale Produktversprechen lautet: Knowledge should compound (raw/prd/prd-wow20-2026-08-14.md, § 1 Vision).
|
||||||
|
|
||||||
Eine **Übernahme mit Kontext-Marker** — Direktübernahme eines Diagramms aus einer rohen Quelle (kein Zwischen-Concept, kein Selbstverweis):
|
Eine **Übernahme mit Kontext-Marker** — Direktübernahme eines Diagramms aus einer rohen Quelle (kein Zwischen-Concept, kein Selbstverweis):
|
||||||
|
|
||||||
> Das Datenfluss-Diagramm (Interpret → Reconcile → Synthesize → Update) stammt direkt aus der rohen Quelle raw/architecture-spine/architecture-spine-2026-08-14.md#AD-5 — übernommen aus raw/architecture-spine/architecture-spine-2026-08-14.md#AD-5 (rohe Quelle), nicht eigenständig belegt.
|
> Das Datenfluss-Diagramm (Interpret → Reconcile → Synthesize → Update) stammt direkt aus der rohen Quelle raw/architecture-spine/architecture-spine-2026-08-14.md#AD-5 — übernommen aus raw/architecture-spine/architecture-spine-2026-08-14.md#AD-5 (rohe Quelle), nicht eigenständig belegt.
|
||||||
@@ -173,9 +182,9 @@ Diese Instruktion ist auf die **Erzeugung neuer Concepts auf Root-Ebene** begren
|
|||||||
|
|
||||||
- `schema/wiki-compiler.md` — autorisierter Vertrag (Story 1.3): §2 Bundleroot, §3.1–§3.7 Feldsubset & Formate, §5 `log.md`-Typ, §6 Index-Regel/Prädikate, §7 abschließende 14-Punkte-Liste, §8 Normreferenzen.
|
- `schema/wiki-compiler.md` — autorisierter Vertrag (Story 1.3): §2 Bundleroot, §3.1–§3.7 Feldsubset & Formate, §5 `log.md`-Typ, §6 Index-Regel/Prädikate, §7 abschließende 14-Punkte-Liste, §8 Normreferenzen.
|
||||||
- `schema/validator.md` — Prüfgrundlage (Story 1.4, Revision 8): §3 14 Punkte, §4 Normalform (Reihenfolge §4.1, ISO-8601 §4.3), §5 Verdikt, §6 Fachprüfungen (EC-1 Existenz, EC-3 Kalender, EC-11 non-md).
|
- `schema/validator.md` — Prüfgrundlage (Story 1.4, Revision 8): §3 14 Punkte, §4 Normalform (Reihenfolge §4.1, ISO-8601 §4.3), §5 Verdikt, §6 Fachprüfungen (EC-1 Existenz, EC-3 Kalender, EC-11 non-md).
|
||||||
- Architektur-Spine (raw/`architecture-spine`): AD-2/AD-3 (raw immutable), AD-5 (inkrementelle Kompilation), AD-6 (Reason/Mutate-Trennung), AD-7a (Identität = OKF-Pfad ohne `.md`), AD-10 (agent-unabhängige Regeln), AD-11 (keine eigene Runtime), AD-15 (Trust-Metadaten v1), AD-17a (nur veröffentlichte/committete Inhalte als Input), AD-17f (Commit-Boundary = Mutations-Boundary), AD-17h (Determinismus), D-3 (kein Standalone).
|
- Architektur-Spine (raw/`architecture-spine`): AD-2/AD-3 (raw immutable), AD-4a (claim-granulare Provenienz, §5.5), AD-5 (inkrementelle Kompilation), AD-6 (Reason/Mutate-Trennung), AD-7a (Identität = OKF-Pfad ohne `.md`), AD-9 (Progressive Discovery), AD-10 (agent-unabhängige Regeln), AD-11 (keine eigene Runtime), AD-13 (Retrieval gehört zu Consumers), AD-14 (Git liefert Historie, nicht Domain-State), AD-15 (Trust-Metadaten v1), AD-16 (Konflikte werden explizit bewahrt), AD-17a (nur veröffentlichte/committete Inhalte als Input), AD-17f (Commit-Boundary = Mutations-Boundary), AD-17h (Determinismus), D-3 (kein Standalone).
|
||||||
- PRD (raw/prd): FR-2 (Sources vs. Curated), FR-5 (Concept-Erzeugung), FR-9 (OKF-Konformität), A-4 (nur lokale Sources).
|
- PRD (raw/prd): FR-2 (Sources vs. Curated), FR-5 (Concept-Erzeugung), FR-9 (OKF-Konformität), FR-16 (Consumer-Unabhängigkeit), A-4 (nur lokale Sources).
|
||||||
- Epics (raw/epics): Story-2.1-Ziel und -Abgrenzung zu Story 2.2–2.5.
|
- Epics (raw/epics): Story-2.1-Ziel und -Abgrenzung zu Story 2.2–2.5; A0-3 (Kontext-Marker-Wortlaut, §5.5); FR-6/FR-12/FR-14, A0-6/A0-7/A0-11/A0-18 (Belege der nachkonformierten Concept-Bodies).
|
||||||
|
|
||||||
**Revisionslog:**
|
**Revisionslog:**
|
||||||
|
|
||||||
@@ -186,3 +195,4 @@ Diese Instruktion ist auf die **Erzeugung neuer Concepts auf Root-Ebene** begren
|
|||||||
- **Revision 1.4 (2026-08-17, bmad-code-review Re-Run Story 2.1, Stand nach Validator-Rev-8):** Nachschärfungen aus dem unabhängigen Re-Review — Prüfgrundlagen-Referenz auf `validator.md` Revision 8 angehoben (§0-Header, §8); §6.6-Referenzlabels berichtigt (canonical Key-Reihenfolge, Duplikat-Keys, `okf_version`/`type: bundle` → §4.5, `sources`-Eintrag-Key-Subset → §4.2; berichtigt die Rev-1.2-Korrektur, die das Label fälschlich von §4.5 auf §4.4 bewegt hatte); §1.4 „Aufträge" → „Formate", §5.2 „grossen" → „großen"; §3.2 Kollision-Hold um Run-Fortsetzung mit den übrigen Einheiten und Gesamt-Run-Status („teilweise erfolgreich") ergänzt; §5.3/§6.3 um explizite Rollback-Sequenz für den Teilzustand (Concept-Datei + Index-Verlinkung + `log.md`-Eintrag) bei Validierungs-FAIL ergänzt.
|
- **Revision 1.4 (2026-08-17, bmad-code-review Re-Run Story 2.1, Stand nach Validator-Rev-8):** Nachschärfungen aus dem unabhängigen Re-Review — Prüfgrundlagen-Referenz auf `validator.md` Revision 8 angehoben (§0-Header, §8); §6.6-Referenzlabels berichtigt (canonical Key-Reihenfolge, Duplikat-Keys, `okf_version`/`type: bundle` → §4.5, `sources`-Eintrag-Key-Subset → §4.2; berichtigt die Rev-1.2-Korrektur, die das Label fälschlich von §4.5 auf §4.4 bewegt hatte); §1.4 „Aufträge" → „Formate", §5.2 „grossen" → „großen"; §3.2 Kollision-Hold um Run-Fortsetzung mit den übrigen Einheiten und Gesamt-Run-Status („teilweise erfolgreich") ergänzt; §5.3/§6.3 um explizite Rollback-Sequenz für den Teilzustand (Concept-Datei + Index-Verlinkung + `log.md`-Eintrag) bei Validierungs-FAIL ergänzt.
|
||||||
- **Revision 1.5 (2026-08-17, Story 2.2):** Sektion „Claim-granulare Provenienz" als §5.5 eingefügt (nach §5, vor §6) — Inline-`raw/`-Verweis je belegter Aussage (+ `id`-Attribution, Vertrag §3.3), Kontext-Marker je Übernahme („übernommen aus … auf Basis von …, nicht eigenständig belegt"), eindeutiges `id`-Scoping je Concept, Selbsttest-Kriterien (belegte Aussage → Verweis; Übernahme → Marker; kein unautorisierter Key; UNBELEGTE_AUSSAGE als Marker statt erfundener Beleg) — AD-4a/4b/4c, AD-13, AD-17h. §7-Selbstbegrenzung entsprechend umformuliert (Claim-granulare Provenienz jetzt in §5.5 verankert, nicht mehr deklariert als „verbleibt in Story 2.2"). Keine Änderung an `wiki-compiler.md`/`validator.md`/`raw/`; kein Standalone (D-3); keine Vertragsänderung.
|
- **Revision 1.5 (2026-08-17, Story 2.2):** Sektion „Claim-granulare Provenienz" als §5.5 eingefügt (nach §5, vor §6) — Inline-`raw/`-Verweis je belegter Aussage (+ `id`-Attribution, Vertrag §3.3), Kontext-Marker je Übernahme („übernommen aus … auf Basis von …, nicht eigenständig belegt"), eindeutiges `id`-Scoping je Concept, Selbsttest-Kriterien (belegte Aussage → Verweis; Übernahme → Marker; kein unautorisierter Key; UNBELEGTE_AUSSAGE als Marker statt erfundener Beleg) — AD-4a/4b/4c, AD-13, AD-17h. §7-Selbstbegrenzung entsprechend umformuliert (Claim-granulare Provenienz jetzt in §5.5 verankert, nicht mehr deklariert als „verbleibt in Story 2.2"). Keine Änderung an `wiki-compiler.md`/`validator.md`/`raw/`; kein Standalone (D-3); keine Vertragsänderung.
|
||||||
- **Revision 1.6 (2026-08-17, Story-2.2-Re-Review, Patch-Runde):** §5.5-Klarstellungen aus dem Review — (1) „kein Frontmatter-Change"-Widerspruch aufgelöst: Konvention fügt kein neues Feld über §3.3 hinaus hinzu, während das Hinzufügen/Erweitern von `sources`-Einträgen (`resource`/`id`, Relokation/Zielwechsel) ausdrücklich Teil der Konvention ist; (2) Inline-Verweis-Form präzisiert: Fragment = im Rohdokument existierende Stellen-Kennung (Bezeichner-`id` oder Sektionstitel), Concept-eigene `sources`-`id` (`s1`, …) ist NICHT als Fragment zu verwenden; voller `raw/`-Pfad je Beleg, keine Pfad-Elision; die Selbsttest-Formel auf `grep -nE '(raw/|]\(raw/'` erweitert; (3) Kontext-Marker um Direktübernahme-Fall „übernommen aus `<source>` (rohe Quelle)" ergänzt, Selbstreferenz-Muster verboten; (4) Forward-Referenz-Wortlaut an den exakten Token „nicht eigenständig belegt" gebunden; (5) Worked Example (belegte Aussage + Diagramm-Direktübernahme + Diagramm-Quell-Deklaration, BH-13) ergänzt. Keine Änderung an `wiki-compiler.md`/`validator.md`/`raw/`; kein Standalone (D-3); keine Vertragsänderung.
|
- **Revision 1.6 (2026-08-17, Story-2.2-Re-Review, Patch-Runde):** §5.5-Klarstellungen aus dem Review — (1) „kein Frontmatter-Change"-Widerspruch aufgelöst: Konvention fügt kein neues Feld über §3.3 hinaus hinzu, während das Hinzufügen/Erweitern von `sources`-Einträgen (`resource`/`id`, Relokation/Zielwechsel) ausdrücklich Teil der Konvention ist; (2) Inline-Verweis-Form präzisiert: Fragment = im Rohdokument existierende Stellen-Kennung (Bezeichner-`id` oder Sektionstitel), Concept-eigene `sources`-`id` (`s1`, …) ist NICHT als Fragment zu verwenden; voller `raw/`-Pfad je Beleg, keine Pfad-Elision; die Selbsttest-Formel auf `grep -nE '(raw/|]\(raw/'` erweitert; (3) Kontext-Marker um Direktübernahme-Fall „übernommen aus `<source>` (rohe Quelle)" ergänzt, Selbstreferenz-Muster verboten; (4) Forward-Referenz-Wortlaut an den exakten Token „nicht eigenständig belegt" gebunden; (5) Worked Example (belegte Aussage + Diagramm-Direktübernahme + Diagramm-Quell-Deklaration, BH-13) ergänzt. Keine Änderung an `wiki-compiler.md`/`validator.md`/`raw/`; kein Standalone (D-3); keine Vertragsänderung.
|
||||||
|
- **Revision 1.7 (2026-08-17, bmad-code-review Story 2.2, Patch-Runde 2):** (1) Selbsttest-Grep-Formel behoben — `grep -nE '(raw/|]\(raw/'` war eine ungültige ERE (ungeschlossenes Klammerpaar, `exit 2`); jetzt `grep -nE '\(raw/'` (das Teilmuster `(raw/` erfasst Plain-Form und Markdown-Linkform gleichermaßen), Pkt.1 und Pkt.4, re-executierbar (AD-17h); (2) Komma-Form `(raw/<datei.md>, <stellen-kennung>)` als zulässige zweite Inline-Form in Pkt.1 formal festgelegt (für Stellen-Kennungen ohne Bezeichner-`id` im Rohdokument, z. B. Sektionstitel `§ 1 Vision`), analog zum Link-Form-Präzedenzfall bis Story 2.3 — Worked Example um Komma-Form-Beispiel ergänzt (D1-Entscheidung, Option 1); (3) Multi-Beleg-Serialisierung in Pkt.1 festgelegt (Semikolon + voller Pfad je Beleg; Komma-Gruppierung mehrerer `#`-Kennungen unter einem Pfad zulässig; bei gemischten Formen voller Pfad je Beleg; keine Pfad-Elision über Beleg-Grenzen); (4) Relokations-Sub-Bullets als **1a/1b** nummeriert (Label „Pkt. 1b" in §5.5-Intro, Pkt.5 und `deferred-work.md` existiert damit); (5) Marker-Muster-Zahl korrigiert: „drei" (zwei Grundmuster + Forward-Referenz-Variante), Pkt.2 und Pkt.4; Forward-Referenz-Beispiel-Zitat auf eindeutigen Sektionstitel `Story 3.1: Inkrementellen Datenfluss implementieren` disambiguiert (raw/epics trägt zwei „Epic 3"-Headings); (6) §8-Normreferenzen um AD-4a, AD-9, AD-13, AD-14, AD-16 (Spine), FR-16 (PRD), A0-3, FR-6/12/14, A0-6/7/11/18 (Epics) ergänzt. Keine Änderung an `wiki-compiler.md`/`validator.md`/`raw/`; kein Standalone (D-3); keine Vertragsänderung.
|
||||||
|
|||||||
@@ -49,4 +49,4 @@ Die Inhaltsklassifikation vor jeder Änderung (NEW / CONFIRMING / CORRECTING / C
|
|||||||
|
|
||||||
## Abgrenzung
|
## Abgrenzung
|
||||||
|
|
||||||
Die inkrementelle Kompilation (Interpret → Reconcile → Synthesize → Update) ist die Grundlage von Epic 3. Epic 2 liefert dafür die Voraussetzungen: Concepts, Verlinkung und Area-Hierarchie — als Forward-Referenz übernommen, nicht eigenständig belegt (raw/epics/epics-2026-08-14.md, Epic-3-Abschnitt).
|
Die inkrementelle Kompilation (Interpret → Reconcile → Synthesize → Update) ist die Grundlage von Epic 3. Epic 2 liefert dafür die Voraussetzungen: Concepts, Verlinkung und Area-Hierarchie — als Forward-Referenz übernommen, nicht eigenständig belegt (raw/epics/epics-2026-08-14.md, Story 3.1: Inkrementellen Datenfluss implementieren).
|
||||||
|
|||||||
+2
-1
@@ -1,7 +1,8 @@
|
|||||||
# Log
|
# Log
|
||||||
|
|
||||||
## 2026-08-17
|
## 2026-08-17
|
||||||
- **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 `in-progress`.
|
- **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.md` → **Revision 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 W2–W4 (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 `review` → `done`, `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.
|
- **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 `review` → `done`, `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`).
|
- 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 (`review` → `done`). Action-Item `code-review-2-1-item-1-autorisierte-validator-revision-option` → `done` (Autorisations-Runde: `validator-revision-8-autorisationsrunde-f14-innen-ebenen.md`). `sprint-status.yaml`: Story 2.1 → `review`.
|
- **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 (`review` → `done`). Action-Item `code-review-2-1-item-1-autorisierte-validator-revision-option` → `done` (Autorisations-Runde: `validator-revision-8-autorisationsrunde-f14-innen-ebenen.md`). `sprint-status.yaml`: Story 2.1 → `review`.
|
||||||
|
|||||||
Reference in New Issue
Block a user