schema/compiler.md §5.5 als Beweis-Konvention (Inline-raw-Verweise je belegter Aussage, Kontext-Marker je Uebernahme, id-Scoping §3.3, worked example); Revision 1.5/1.6. 3 Concept-Bodies nachkonformiert (Diagramm-Quellen als sources-Eintraege deklariert, keine Selbstreferenz, volle raw-Pfade). index.md/log.md nachgefuehrt; sprint-status Story 2.2 -> review. Review 3 Layer: 7 patch + 1 defer (sources-Closure) verankert; spec -> done inkl. Suggested Review Order. Keine raw/-/Vertrag-Mutation. Co-Authored-By: Claude <noreply@anthropic.com>
126 lines
9.1 KiB
Markdown
126 lines
9.1 KiB
Markdown
---
|
|
title: 'Claim-granulare Provenienz dokumentieren (Story 2.2)'
|
|
type: 'feature'
|
|
created: '2026-08-17'
|
|
status: 'done'
|
|
review_loop_iteration: 0
|
|
baseline_commit: bb32acdf3f1a3547424da0f878bd06383921b22a
|
|
context:
|
|
- _bmad-output/implementation-artifacts/epic-2-context.md
|
|
---
|
|
|
|
<frozen-after-approval reason="human-owned intent — do not modify unless human renegotiates">
|
|
|
|
## Intent
|
|
|
|
**Problem:** Die drei Concepts aus Story 2.1 tragen Provenienz nur auf Concept-Ebene (`sources`-Frontmatter); belegte Aussagen und Kontext-/Synthese-Umformulierungen sind claim-granular nicht auf `raw/`-Evidenz rückführbar (AD-4a, A0-3). Instanz: `knowledge-kompilation-inkrementell.md` deklariert nur `raw/epics/…`, enthält aber ein ASCII-Diagramm aus `raw/architecture-spine/…`.
|
|
|
|
**Approach:** `schema/compiler.md` um Sektion „Claim-granulare Provenienz" erweitern (Inline-`raw/`-Verweise je belegter Aussage, Kontext-Marker je Übernahme, `id`-Attribution aus Vertrag §3.3) und die drei Concepts + `wiki/index.md` + `wiki/log.md` nachkonformieren. Kein Standalone-Tool, keine neue §7-Klasse, keine Vertragsänderung.
|
|
|
|
## Boundaries & Constraints
|
|
|
|
**Always:**
|
|
- Provenienz = Body-Text-Konvention (Inline-`raw/`-Verweis je belegter Aussage; Kontext-Marker „übernommen aus `<Concept-Pfad>` auf Basis von `<source>`, nicht eigenständig belegt" je Übernahme — AD-4a/A0-3). Kein Frontmatter-Change, kein neues Feld.
|
|
- Nachrüstung mutiert ausschließlich `wiki/` (Concept-Bodies, `index.md`, `log.md`). `raw/`, `schema/wiki-compiler.md`, `schema/validator.md` unverändert (AD-3). `schema/compiler.md` = einziger Instruktions-Ort (D-3).
|
|
- Neue `sources`-Einträge: nur §3.3-Subset; `id` je Concept eindeutig; `resource` nie `wiki/` (AD-4b); kein generiertes Concept führt ein anderes als alleinige Provenienz (AD-4c).
|
|
- `generated`/`verified`/`status` unangetastet (v1-Default A0-20). Epic-3/4-Fähigkeiten im Body als Forward-Referenz ohne eigene Behauptung markiert.
|
|
- Revisionslog der Instruktion + `wiki/log.md` (Vertrag §5) dokumentieren die Änderung.
|
|
|
|
**Ask First:** Neue §7-Klasse / Vertragsänderung · Standalone-Programm (D-3) · `wiki/<area>/`-Anlage (Story 2.4).
|
|
|
|
**Never:** OKF-Dialekt · Änderung an `schema/wiki-compiler.md`/`schema/validator.md`/`raw/` · Validator-Verhaltenswechsel (bleibt strukturell; Content-Truth = eigenständige Arbeit) · Vorwegnahme Story 2.3/2.4 · Falsch-Attribution.
|
|
|
|
## I/O & Edge-Case Matrix
|
|
|
|
| Scenario | Input | Expected | Error Handling |
|
|
|----------|-------|----------|----------------|
|
|
| HAPPY_PATH | 3 Concept-Bodies, Kern + Übernahmen (z. B. ASCII-Diagramm) | Belegte Aussagen mit Inline-Verweis; Übernahmen mit Marker; Diagramm-Quelle deklariert; Validator SUCCESS | N/A |
|
|
| UNBELEGTE_AUSSAGE | Aussage nicht auf `sources` rückführbar | Als Übernahme mit Marker geführt (nicht erfunden belegt) | Run bricht nicht ab; textuell sichtbar |
|
|
|
|
</frozen-after-approval>
|
|
|
|
## Code Map
|
|
|
|
- `schema/compiler.md` — **mutiert**: Sektion „Claim-granulare Provenienz" (Inline-Verweise, Kontext-Marker, `id`); Revisionslog (§8); §7-Selbstbegrenzung.
|
|
- `schema/wiki-compiler.md` — **read-only**: §3.3 `sources`/`id`, §5 `log.md`, §7 abschließende Liste.
|
|
- `schema/validator.md` — **read-only (Rev 8)**: bleibt strukturell.
|
|
- `wiki/llm-wiki-prinzip.md`, `wiki/knowledge-kompilation-inkrementell.md`, `wiki/wissensarchitektur-trennung-states.md` — **mutiert**: Body um Inline-Verweise/Kontext-Marker.
|
|
- `wiki/index.md` — **mutiert**: Beschreibungen um `(aus <raw-Pfad>)`.
|
|
- `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**.
|
|
- `_bmad-output/implementation-artifacts/epic-2-context.md` — Planungskontext (read-only).
|
|
|
|
## Tasks & Acceptance
|
|
|
|
**Execution:**
|
|
- [x] `schema/compiler.md` — Sektion „Claim-granulare Provenienz" (nach §5, vor §6): Inline-`raw/`-Verweis je belegter Aussage (+ `id`), Kontext-Marker je Übernahme, eindeutiges `id`-Scoping (§3.3), Selbsttest-Kriterien (belegte Aussage → `raw/`-Verweis; Übernahme → Marker; kein unautorisierter Key) — AD-4a/4c, AD-13, AD-17h. **inkl. Review-Patch-Runde (Rev 1.6): Stellen-Kennungs-Semantik, volle Pfade, Direktübernahme-Marker, worked example, korrigierte Grep-Formel.**
|
|
- [x] `schema/compiler.md` — Revisionslog (§8, Fortlauf) + §7-Selbstbegrenzung „→ Story 2.2".
|
|
- [x] Nachrüst-Schritt: 3 Concept-Bodies — belegte Aussagen mit Inline-`raw/`-Verweisen; Übernahmen (insbesondere ASCII-Diagramm → `raw/architecture-spine/…`) mit Kontext-Marker + ggf. zusätzlichem `sources`-Eintrag; Epic-3/4-Formulierungen als Forward-Referenz.
|
|
- [x] `wiki/index.md` — Beschreibungen um `(aus <raw-Pfad>)`.
|
|
- [x] `wiki/log.md` — Nachrüst-Eintrag (§5-Format).
|
|
- [x] Validator-Lauf — alle 5 `wiki/`-Dateien SUCCESS (Punkte 1/6/11/14, EC-1) (manuell-mechanisch, D-3; kein CLI).
|
|
- [x] `sprint-status.yaml` — Story 2.2 → `in-progress`.
|
|
|
|
**Acceptance Criteria:**
|
|
- Given Concept mit fachlichen Aussagen, when nach Story 2.2 verarbeitet, then trägt jede belegte Aussage einen Inline-Verweis auf `raw/`-Evidenz (AD-4a).
|
|
- Given Kontext-/Synthese-Umformulierung, when übernommen, then trägt sie den expliziten Kontext-Marker — inklusive ASCII-Diagramm.
|
|
- Given `sources`-Dokumentation, when gesetzt, then lösen Werte ausschließlich auf `raw/`-Pfade auf (AD-4b); kein generiertes Concept führt ein anderes als alleinige Provenienz (AD-4c) — formseitig prüfbar.
|
|
- 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.
|
|
|
|
## Spec Change Log
|
|
|
|
- **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`.
|
|
|
|
## Verification
|
|
|
|
**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.
|
|
- `grep -nE '\(raw/' wiki/*.md` — je belegter Aussage ein Inline-`raw/`-Verweis.
|
|
- 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.
|
|
|
|
**Manual checks (if no CLI):**
|
|
- Belegte Aussage → Inline-`raw/`-Verweis; Übernahme → Kontext-Marker („übernommen aus … auf Basis von …, nicht eigenständig belegt").
|
|
- `sources`-`id` je Concept eindeutig; keine unautorisierten Keys; `schema/compiler.md` rein textuell (D-3), deterministisch (AD-17h), referenziert den Vertrag.
|
|
- `wiki/log.md` enthält datierten Nachrüst-Eintrag inkl. Diagramm-Quell-Deklaration.
|
|
|
|
## Suggested Review Order
|
|
|
|
**Instruktions-Basis (§5.5 Claim-granulare Provenienz — der Einstiegspunkt)**
|
|
|
|
- Konvention: Inline-`raw/`-Verweis je belegter Aussage, Kontext-Marker je Übernahme, `id`-Scoping — der verbindliche Standard für alles Folgende.
|
|
[`compiler.md:66`](../../schema/compiler.md#L66)
|
|
|
|
- Selbsttest-Formel & Sicherstellung der Grep-Auffindbarkeit (AD-17h).
|
|
[`compiler.md:76`](../../schema/compiler.md#L76)
|
|
|
|
- Revisionslog dokumentiert Nachrüstung (1.5) und Review-Patch-Runde (1.6).
|
|
[`compiler.md:188`](../../schema/compiler.md#L188)
|
|
|
|
**Nachkonformierte Concept-Bodies (die eigentliche Provenienz-Arbeit)**
|
|
|
|
- Belegte Aussagen mit vollem `raw/`-Verweis; Diagramm als Direktübernahme aus `raw/architecture-spine/…` mit Marker; Forward-Referenz auf Epic 3.
|
|
[`knowledge-kompilation-inkrementell.md:37`](../../wiki/knowledge-kompilation-inkrementell.md#L37)
|
|
|
|
- SoC-Diagramm als Direktübernahme aus `raw/prd/…` (§ 8.3) mit Marker; FR-16-Beleg auf PRD § 4.5 allein (Relokations-Regel eingehalten).
|
|
[`wissensarchitektur-trennung-states.md:30`](../../wiki/wissensarchitektur-trennung-states.md#L30)
|
|
|
|
- Datenfluss-Diagramm als Direktübernahme aus `raw/prd/…` (§ 0 Document Purpose); PRD-Attribution über Sektionstitel (keine s-Fragmente).
|
|
[`llm-wiki-prinzip.md:40`](../../wiki/llm-wiki-prinzip.md#L40)
|
|
|
|
**Bundle-Index & Nachweisführung**
|
|
|
|
- `index.md`-Beschreibungen mit `(aus <raw-Pfad>)` inkl. Diagramm-Quellen.
|
|
[`index.md:29`](../../wiki/index.md#L29)
|
|
|
|
- `log.md`-Nachrüst-Eintrag (Vertrag §5-Format) inkl. Diagramm-Quell-Deklaration.
|
|
[`log.md:4`](../../wiki/log.md#L4)
|
|
|
|
- Defer-Kontext: sources-Closure-Verifikation (jeder inline-referenzierte `raw/`-Pfad ⊆ `sources`) für spätere Fokussierung.
|
|
[`deferred-work.md:196`](./deferred-work.md#L196)
|
|
|
|
- Story-Status `in-progress` (nach Human-Review → `review`).
|
|
[`sprint-status.yaml:47`](./sprint-status.yaml#L47)
|