feat: Story 2.4 deterministische Bereichszuordnung abgeschlossen (Rev 2.1)

§5.7 Routing-Regel (textual-deterministisch, AD-7c/A0-10), kanonische
ID-Normalisierung (AD-7a/A0-8), Kollisions-Hold auf §3.2, file-relatives
Link-Auflösungsmodell mit Out-of-Bundle-..-Containment, Area-Hierarchie
(Area-index.md, Punkt 11 wörtlich). Neue Demo-Area wissensarchitektur/
mit frontmatterloser index.md + source-material.md. Loop-1-Review-Fixes:
Containment in Formel 3 (Loop-1-A1), Formel-4-Baseline auf baseline_commit
66451b6 statt 7e1f449 (Loop-1-A2), kein inventiertes AREA_WITHOUT_INDEX
(Loop-1-B1). Schema/validator/raw unverändert (AD-3); keine neue §7-Klasse.
This commit is contained in:
Michael Tamse
2026-08-18 08:15:33 +02:00
parent 66451b6e6c
commit 862cf410c6
8 changed files with 252 additions and 24 deletions
+6
View File
@@ -30,4 +30,10 @@ Die folgenden Root-Concepts wurden im ersten Demonstrationslauf (Story 2.1) aus
- [Knowledge Compilation & Inkrementelle Evolution](knowledge-kompilation-inkrementell.md) — inkrementeller Datenfluss Interpret → Reconcile → Synthesize → Update (aus `raw/epics/epics-2026-08-14.md`; Datenfluss-Diagramm aus `raw/architecture-spine/architecture-spine-2026-08-14.md`).
- [Wissensarchitektur: Source Material, Curated Knowledge & Consumer](wissensarchitektur-trennung-states.md) — die Architekturgrenzen `raw/` (immutable Evidenz) und `wiki/` (kuratiertes Bundle) (aus `raw/architecture-spine/architecture-spine-2026-08-14.md`; Separation of Concerns aus `raw/prd/prd-wow20-2026-08-14.md`).
## Areas
Bereiche (Areas) bündeln verwandte Area-Concepts hinter einer eigenen Area-`index.md` (AD-9); die Bereichszuordnung bestimmt §5.7 der Compiler-Instruktion deterministisch:
- [Wissensarchitektur](wissensarchitektur/index.md) — Concepts zur Architektur des Knowledge Bundles (Source Material als deterministische Basis der Bereichszuordnung).
Der Workspace umfasst außerdem: `raw/` (immutable Source Material/Evidenz, AD-2/AD-3), `schema/` (drei Artefakte: Schema-Vertrag [`wiki-compiler.md`](../schema/wiki-compiler.md) (autorisiert, AD-1), Validator [`validator.md`](../schema/validator.md) (Story 1.4) und Compiler-Instruktion [`compiler.md`](../schema/compiler.md) (Story 2.1)) und `adapters/` (dünne Agenten-Adapter, AD-10).
+3
View File
@@ -1,5 +1,8 @@
# Log
## 2026-08-18
- **Story 2.4 «Deterministische Bereichszuordnung & Concept-Hierarchie» (Implementierung):** `schema/compiler.md`**Revision 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` (Kopf dieser Spezifikation, nicht mehr Story-2.3-`7e1f449…`), 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 akte-Baseline aus `66451b6` (`38 ≠ 30`, kein Fehlalarm: Zuwachs-Re-Baseline); 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` `backlog`**`in-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.md`**Revision 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` `backlog`**`in-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.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 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`.
+11
View File
@@ -0,0 +1,11 @@
# Wissensarchitektur
Die Area **Wissensarchitektur** bündelt die Concepts zur Architektur des Knowledge Bundles: die Deterministik der Bereichszuordnung (wie ein erkanntes Thema einem Bereich zugeordnet wird, AD-7c/A0-10), die Trennung der Architektur-States (`raw/` vs. `wiki/`), die Link-Form und die progressive Discovery. Der Weg führt — wie überall im Bundle — von der Bundleroot (`wiki/index.md`) über diese Area-`index.md` zu den Concepts.
Diese `index.md` ist **frontmatterlos** (Vertrag §2/§6, Validator Punkt 10 — die Bundle-Deklaration mit der `bundle`-Type-Markierung und der OKF-Version trägt ausschließlich die Bundleroot `wiki/index.md`).
## Area-Concepts (deterministische Bereichszuordnung, §5.7)
- [Source Material als deterministische Basis](source-material.md) — welche Sources die Bereichszuordnung und die Hierarchie fundamentieren (aus `raw/architecture-spine/architecture-spine-2026-08-14.md`; Separation of Concerns aus `raw/prd/prd-wow20-2026-08-14.md`).
Die Root-Concepts, auf die die Area-Concepts in file-relativer `../`-Form verlinken, erreicht man über die [Bundleroot](../index.md).
@@ -0,0 +1,28 @@
---
type: concept
sources:
- resource: raw/architecture-spine/architecture-spine-2026-08-14.md
id: s1
- resource: raw/prd/prd-wow20-2026-08-14.md
id: s2
generated:
by: wow-compiler/0.1.0
at: 2026-08-18T07:00:00Z
---
# Source Material als deterministische Basis der Bereichszuordnung
Die Architektur von Wiki of Wikis trennt **Source Material** (`raw/`, immutable Evidenz) von **kuratiertem Wissen** (`wiki/`, OKF-Knowledge-Bundle) (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-2; raw/prd/prd-wow20-2026-08-14.md, § 8.3 Separation of Concerns). Aus dieser Trennung folgt die Basis der **deterministischen Bereichszuordnung** (Story 2.4): Einem erkannten Thema wird sein Bereich **textual-deterministisch** zugeordnet — über einen bestehenden `index.md`-Link oder als Default auf Root-Ebene — und nie per Embedding/Vector-Infrastruktur (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-7c).
## Warum Source Material die Zuordnung fundamentiert
- **Sources sind die einzige Evidenz.** Eine Datei unter `raw/` ist Evidenz; eine Datei unter `wiki/` ist eine daraus abgeleitete Wissensrepräsentation (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-2). Bereichszuordnung entscheidet darüber, wo eine solche abgeleitete Repräsentation kanonisch liegt — sie stützt sich daher auf die bestehende `index.md`-Struktur des Bundles und nicht auf abgeleitete Retrieval-Artefakte (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-7c).
- **Sources bleiben unverändert.** Ein Compilation Run darf bestehendes Source Material nicht verändern; neue Versionen einer Source werden als neue beziehungsweise versionierte Source behandelt (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-3).
## Verbindung zur Bundle-Hierarchie
Die Bereichszuordnung ist Ausdruck der zentralen Grenze aus dem [LLM-Wiki-Prinzip](../llm-wiki-prinzip.md): Rohquellen werden durch einen Compiler in ein persistentes, kuratiertes Wiki überführt (übernommen aus llm-wiki-prinzip auf Basis von raw/prd/prd-wow20-2026-08-14.md, nicht eigenständig belegt). Die Hierarchie (Bundleroot `wiki/index.md` → Area-`index.md` → Concepts) realisiert die progressive Discovery schrittweise (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-9). Ein neues Concept wird in der `index.md` **seines** Bereichs verlinkt; eine Area ohne `index.md` ist strukturell invalide, weil die stabile Navigation — und damit die deterministische Auffindbarkeit — entfällt (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-7c).
## Abgrenzung der Architektur-States
Die Trennung `raw/` (immutable Evidenz) vs. `wiki/` (kuratiertes Bundle) ist dasselbe Prinzip, das das Root-Concept [Wissensarchitektur: Source Material, Curated Knowledge & Consumer](../wissensarchitektur-trennung-states.md) beschreibt (übernommen aus wissensarchitektur-trennung-states auf Basis von raw/architecture-spine/architecture-spine-2026-08-14.md, nicht eigenständig belegt). Die inkrementelle Kompilation verarbeitet neue Sources gegen das bestehende kuratierte Wissen ([Knowledge Compilation & Inkrementelle Evolution](../knowledge-kompilation-inkrementell.md); übernommen aus knowledge-kompilation-inkrementell auf Basis von raw/architecture-spine/architecture-spine-2026-08-14.md, nicht eigenständig belegt) — die Bereichszuordnung ist der deterministische Schritt, der dabei einem neuen Thema seinen kanonischen Ort gibt (raw/architecture-spine/architecture-spine-2026-08-14.md#AD-7c).