Files
wow20/_bmad-output/implementation-artifacts/spec-2-5-progressive-discovery-über-index-md-bereitstellen.md
T
Michael TamseandClaude 20fd47624d feat: Story 2.5 Progressive Discovery ueber index.md — Konsolidierte Zwei-Ebenen-Kartografie (F-07)
- schema/compiler.md Revision 2.3: neue §5.8 „Progressive Discovery ueber index.md (Story 2.5)".
  Gewurzelte Erreichbarkeit (Root → Area → Concept), re-executierbarer Zwei-Lauf-Selbsttest
  (UNREACHABLE AREA / NESTED AREA), §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) statt
  §3.2-Kollisions-Hold (Loopback-1-Renegotiation, Option A), Suche = Consumer-grep, Discovery-Demo optional.
- wiki/log.md: Implementierungs-Eintrag Vertrag-§5-Format inkl. Selbsttest-Beleg.
- Spec: Loopback-2 bad_spec + Konsistenz-Renegotiation: Verification-Formel byte-identisch zur
  Instruktion, erfundener Validator-CLI-Befehl entfernt, Formel-4-Baseline auf Run-Kopf 862cf41,
  stale §3.2-Wording in Design-Notes vervollständigt (frozen-Vervollstaendigung), Suggested Review Order.
- deferred-work.md: F-07 geschlossen (status: umgesetzt); Link-Pin-Eintraege unveraendert offen.
- sprint-status.yaml: 2-5-progressive-discovery → in-progress (Implementierung) → review (Handoff).
- AD-3 gewahrt: schema/wiki-compiler.md, schema/validator.md, raw/ unveraendert; keine neue §7-Klasse (D-3).

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-18 14:12:25 +02:00

24 KiB
Raw Blame History

title, type, created, status, review_loop_iteration, baseline_commit, context
title type created status review_loop_iteration baseline_commit context
Progressive Discovery über index.md bereitstellen (Story 2.5) feature 2026-08-18 done 2 64a0f6a616
_bmad-output/implementation-artifacts/epic-2-context.md

Intent

Problem: Die progressive Discovery ist im Bundle zwar normiert (Vertrag §6: Bundleroot → Area-index.md → Concepts, AD-9/FR-11), aber für den Adressierbaren Anspruch sind drei Lücken offen: (1) §7 Z.253 der Compiler-Instruktion verweist die komplette Discovery ("Navigation, Area-Indizes, Suche") als Vorbehalt an Story 2.5; (2) der Validator prüft weder, dass eine Area von der Bundleroot aus erreichbar ist (Navigation Root → Area, AD-9), noch gibt es einen Selbsttest für die vollständige index-Verkettung; (3) Defer F-07 (verschachtelte Areas/Unter-Ebenen, wiki/a/b/concept.md) ist offen und nennt Story 2.5 ausdrücklich als Heimat, die die Antwort festlegt.

Approach: Story 2.5 integriert die progressive Discovery als expliziten Instruktionsabschnitt (§5.8) in schema/compiler.md — D-3-konform, kein Vertrag-/Validator-/raw-Change (AD-3). Sie definiert: (a) die bewertbare Discovery-Vollständigkeit (gewurzelte Erreichbarkeit Root → Area-index.md → Concept als erfolgreicher Discovery-Pfad, §5.7 Pkt. 5), (b) die Basis-Discovery-Pflicht (frontmatterlose Area-index.md verlinkt ihre Area-Concepts) als „Struktur" und nicht nur Soll, (c) eine deterministische textuelle „Such"-Antwort für den Story-2.5-Vorbehalt (Navigation als primäre Discovery, Suche als Consumer-seitige grep-Angelegenheit — AD-13, FR-11, NFR-3), und (d) die Antwort auf Defer F-07: die Kartografie folgt ab Story 2.5 einer konsolidierten Zwei-Ebenen-Struktur (Root-Concepts + Areas mit je einer index.md); verschachtelte Areas (wiki/a/b/) sind keine zugelassene Anlageform — ein solcher Kandidat wird durch den §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) angehalten (Loopback-1-Renegotiation 2026-08-18, menschen-autorisiert — Option A: Träger ist §5.8, nicht §3.2; §3.2 bleibt der Dateikollision bestehender Concepts vorbehalten). Neue §5.8 + Revisionslog (3.x). Kein Interface-/Backend-/Datenbank-Änderung — reine Instruktions- und Bundle-Demonstrations-Änderung. Keine neue §7-Invaliditätsklasse; validator.md bleibt strukturell unverändert (Punkt 11 bleibt die Index-/Verlinkungs-Prüfung).

Boundaries & Constraints

Always:

  • Progressive Discovery ist ein Instruktionsthema (D-3). Die Discovery-Semantik wird in schema/compiler.md (neue §5.8) verankert — einziger Instruktions-Ort. Kein Vertrag-/Validator-/raw-Change (AD-3), keine Erweiterung der §7-Liste, kein Standalone-Tool. Der Validator bleibt bei Punkt 11 als strukturelle Index-/Verlinkungs-Prüfung (Area-Existenz + Concept-in-Index verlinkt); die Discovery-Vollständigkeit (Root → Area → Concept) ist keine neue §7-Invaliditätsklasse — sie wird deterministisch als Instruktions-Selbsttest belegt.
  • Kartografie ist konsolidiert Zwei-Ebenen (befriedet F-07). Das Bundle-Navigationsmodell besteht aus Root-Concepts + Areas (je eine frontmatterlose wiki/<area>/index.md, die ihre Area-Concepts in gepinnter §5.6-Form verlinkt; Bundleroot wiki/index.md verlinkt die Area-index.md, Navigation Root → Area, AD-9). Verschachtelte Areas sind keine zugelassene Anlageform: wiki/a/b/ mit Concept darunter ist kein „Area mit Inhalt" — ein solcher Kandidat (Erstellungskandidat oder Discovery-Ziel) wird durch den §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) angehalten (keine Datei, kein Index-Link, Meldung NESTED AREA: <area>; Loopback-1-Korrektur: Träger ist §5.8-lokal, D-3 — nicht §3.2, der bleibt der Dateikollision bestehender Concepts vorbehalten). Die F-07-Frage „was ist Area mit Inhalt" wird damit instruktionsseitig deterministisch beantwortet (Erkennung = Datei-Existenz in Tiefe ≥ 3 unter der Bundleroot; Meldung = Instruktions-Selbsttest-Befund — kein §7-Eingriff).
  • Suche ist konsumenten-/extern-seitig (AD-9, FR-11, AD-13). Die Discovery braucht keine proprietäre Datenbank: Navigation ist die primäre Discovery (gewurzelte Erreichbarkeit), Suche ist optional konsumenten-seitig — textuell-deterministisch z. B. grep/ripgrep über wiki/. Kein Embedding/Vector, kein Such-Dienst, kein Index-Datei-Format-Erfinden — die bestehenden index.md sind die Discovery-Ebene.
  • Die Discovery-Lücke des Validators ist instruktionsseitig deckbar. Der Validator prüft nicht, dass eine Area von der Bundleroot verlinkt ist (Punkt 11 adressiert Area-Existenz/Concept-Verlinkung, nicht Root→Area-Navigation). Diese Lücke wird durch einen deterministischen, re-executierbaren Instruktions-Selbsttest geschlossen (Discovery-Check: jede Area ist aus der Bundleroot erreichbar; jedes Area-Concept in seiner Area-index.md verlinkt — Verlinkung in gepinnter §5.6-Form). Kein Validator-Change (AD-3, D-3).
  • Kein MOVE bestehender Root-Concepts. Die bestehenden Root-Concepts werden nicht in Areas verschoben (Kuratierung/AD-7d ist Epic-3-Nähe); als Discovery-Demo kann ein neues Root-Concept ergänzt und (a) in der Bundleroot sowie (b) über einen Index-Link „über das Area-Concept" verlinkt werden (nur neue Inhalte).
  • Bundle bleibt ohne geladene Indizes vollständig verständlich (NFR-2/NFR-5) — alle Discovery-Regeln sind Markdown/Datei-Struktur, kein Server, keine Datenbank, kein laufender Prozess.
  • deferred-work.md (append-only): Defer F-07 bekommt status: umgesetzt (Story 2.5…); die drei „Home: fokussierte Instruktionsrunde ab Story 2.5"-Einträge (Multi-Line, )-blinde Extraktion, Cross-Page-Anker) bleiben offen — sie gehören zur Link-Pin-Runde (§5.6), die Story 2.5 unberührt lässt (kein Scope-Hijack). sprint-status.yaml: Key 2-5-…in-progress.

Ask First: Andere Pin-Wahl als die bestehende gepinnte §5.6-Form · MOVE bestehender Concepts · Validator-/Vertrags-/raw-Änderung · Einführung verschachtelter Areas als Regelfall · Such-Dienst/Index-Datei-Format über die Konsumenten-seitige grep-Antwort hinaus.

Never: Veränderung an schema/wiki-compiler.md/schema/validator.md/raw/ (AD-3) · neue §7-Invaliditätsklasse · Angebot einer zweiten Discovery-Ebene über die Zwei-Ebenen-Struktur hinaus · Embedding/Vector/Such-Dienst (AD-13) · proprietäre Link-/Search-Datenbank (AD-8) · Renames/Redirects (AD-7d).

I/O & Edge-Case Matrix

Scenario Input / State Expected Output / Behavior Error Handling
HAPPY_PATH Bundle mit Bundleroot, einer Area (wissensarchitektur/ mit index.md + source-material.md), 3 Root-Concepts Jede Area ist aus der Bundleroot erreichbar; jedes Area-Concept aus seiner Area-index.md; jedes Root-Concept aus der Bundleroot — gewurzelte Erreichbarkeit; Discovery-Selbsttest liefert keine Verletzung; Suche = grep N/A
AREA_UNREACHABLE Area-index.md existiert, ist aber von der Bundleroot nicht verlinkt (kein Root→Area-Pfad) Discovery-Check → UNREACHABLE AREA: <area> als Verletzung — die Area bleibt für die Navigation unsichtbar (AD-9) Run-FAIL textuell benannt (Instruktions-Selbsttest, kein Validator-Punkt)
NESTED_AREA_KANDIDAT Ein Erstellungskandidat mit Ziel wiki/a/b/concept.md (zwei Ebenen, Tiefe ≥ 3) bzw. wiki/a/b/ §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3): Kandidat wird angehalten — keine Datei, kein Index-Link, Meldung NESTED AREA: <area>; das Zwei-Ebenen-Modell bleibt Run bricht fürs Gebilde ab: „teilweise erfolgreich" (übrige Einheiten laufen weiter, NFR-4)
DISCOVERY_DEMO_ROOT_AREA_LINK Neues Root-Concept, zusätzlich überdacht in das source-material.md-Area-Concept in §5.6-Form verlinkt Root-Concept ist aus Bundleroot erreichbar; zusätzlicher (rein informierender) Link von der Area aus — kein MOVE, konsolidierte Zwei-Ebenen-Kartografie bleibt N/A
SEARCH_GREP Consumer führt textuelle Suche nach Begriff <term> aus grep -n <term> wiki/-Suche als konsumenten-/extern-seitige Antwort; keine Such-Infrastruktur/Bundle (AD-8, AD-13) N/A

Code Map

  • schema/compiler.mdmutiert: neue §5.8 „Progressive Discovery über index.md (Story 2.5)" (nach §5.7 ≈ Z.200, vor §6): (1) Discovery-Pfad — Bundleroot wiki/index.md → Area-index.md (frontmatterlos) → Area-Concepts in gepinnter §5.6-Form; Root-Concepts direkt aus der Bundleroot (§5.7 Pkt. 5, AD-9/FR-11); (2) gewurzelte Erreichbarkeit als deterministisches Discovery-Kriterium + re-executierbarer Selbsttest — jede Area muss aus wiki/index.md verlinkt sein (Root→Area, AD-9); Verletzung → UNREACHABLE AREA: <area> (textuell benannter Instruktions-Selbsttest-Befund, Run-FAIL gemäß §5.6-Pkt.-4-analoger NFR-4-Regel); die Area→Concept-Verlinkung ist durch Validator Punkt 11 mechanisch abgedeckt (Concept nicht verlinkt=<concept>) und wird hier nicht dupliziert; die §5.6-Formeln (Z.133166) decken die Link-Form weiter ab; **verlinkt = Ziel in gepinnter §5.6-Form (a/index.md bzw. (./a/index.md — das ./-Präfix ist von der Erreichbarkeits-Formel toleriert (die Form-Check-Exklusion ^\. in §5.6 Pkt. 3 zählt ./-Ziele nicht als Formverletzung, L2-6-Erkenntnis); (3) konsolidierte Zwei-Ebenen-Kartografie (antwortet Defer F-07): Root + eine Area-Ebene; §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3)wiki/a/b/-Kandidat (Erstellungskandidat oder Discovery-Ziel) wird angehalten (keine Datei, kein Index-Link, Meldung NESTED AREA: <area>, Run „teilweise erfolgreich"); §3.2 bleibt der Dateikollision bestehender Concepts vorbehalten; (4) Suche = Consumer-grep (grep/ripgrep über wiki/, AD-13 — keine Such-Datenbank, kein Embedding). Nachgeführt: §7 Z.253 (Vorbehalt auf „Suche"-Rest gekürzt), §8-Revisionslog 2.3 + Normreferenzen AD-9/FR-11/AD-13/NFR-3. Kein Vertrag-/Validator-/raw-Change (AD-3); keine neue §7-Klasse.
  • wiki/log.mdappend: Eintrag (Vertrag-§5-Format) mit Discovery-Semantik, Zwei-Ebenen-Kartografie (F-07 geschlossen), sprint-status-Wechsel 2-5-progressive-discovery-über-index-md-bereitstellen backlogin-progress, Selbsttest-Beleg (keine UNREACHABLE-Verletzung).
  • _bmad-output/implementation-artifacts/deferred-work.mdmutiert: F-07-Eintrag (source_spec bei L87; status:-Zeile bei L90) status:umgesetzt (2026-08-18, Story 2.5 — konsolidierte Zwei-Ebenen-Kartografie, §5.8) (append-only); die drei „Home: …ab Story 2.5"-Link-Pin-Einträge (einer bei L218ff mit status: bei L224, zwei weitere im Abschnitt „Deferred from: … spec-2-3 …" mit status: bei L246/L250) erhalten keine Statusänderung (Link-Pin-Runde ist separat). sprint-status.yaml: Key 2-5-…in-progress.
  • wiki/index.md, wiki/wissensarchitektur/*, 3 Root-Concepts, schema/wiki-compiler.md, schema/validator.md, raw/…read-only: keine MOVE-/Inhaltsänderung an Concepts oder index.md (Kuratierung/AD-7d ist Epic-3-Nähe); optional: ein neues Root-Concept als Discovery-Demo (angelegt in Bundleroot-Form, kein MOVE).

Tasks & Acceptance

Execution:

  • schema/compiler.md — §5.8 anlegen (Discovery-Pfad, Erreichbarkeits-Kriterium + Selbsttest, konsolidierte Zwei-Ebenen-Kartografie mit F-07-Antwort über den §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3), Suche = Consumer-grep) + §7 Z.253 gekürzt + §8 Revisionslog 2.3 + Normreferenzen (AD-9/FR-11/AD-13/NFR-3). Kein Vertrag-/Validator-/raw-Change.
  • wiki/log.md — Eintrag (§5-Format) mit Discovery-Semantik, F-07-Schluss, Statuswechsel, Selbsttest-Beleg.
  • deferred-work.md — F-07-Eintrag (L88) status: umgesetzt (…Story 2.5…); die drei Link-Pin-Einträge (L219/L223/L249) unverändert lassen; sprint-status.yaml — Key 2-5-…in-progress.
  • Discoverability-/Edge-Tests im Sandbox-/tmp-Baum (I/O-Matrix): gewurzelte Erreichbarkeit (kein UNREACHABLE), AREA_UNREACHABLE-Negativ-Test (Area ohne Root-Link), NESTED_AREA-Kandidat wiki/a/b/ → §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3).

Acceptance Criteria:

  • Given ein Bundle mit mehreren Areas, when ein Consumer die Navigation startet, then liest er zunächst die Bundle-Root wiki/index.md und dann die relevanten Area-index.md (AD-9) — gewurzelte Erreichbarkeit ist instruktionsseitig verankert und deterministisch prüfbar (Discovery-Selbsttest, §5.8-Pkt.-2-Formel an Run-Nachweis gebunden).
  • Given die Hierarchie, when ein Concept neu angelegt wird, then wird es passend in index.md des zugehörigen Bereichs verlinkt (AD-9, A0-10) — bestehende §5.3/§5.7-Regel bleibt; §5.8 erläutert die Discovery-Semantik (Area-Concept in Area-index.md — mechanisch abgedeckt durch Validator Punkt 11 —, Root-Concept in Bundleroot).
  • Given eine Suche, when der Consumer sie nutzt, then ist sie klar extern bzw. Consumer-seitig (grep/ripgrep über wiki/, AD-13) — die Discovery braucht keine proprietäre Datenbank (AD-9, FR-11).
  • Given ein Verzeichnis unter wiki/, when es zwei Ebenen tief ist (wiki/a/b/), then ist es keine zugelassene Anlageform — der Erstellungskandidat wird durch den §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) angehalten (keine Datei, kein Index-Link, Meldung NESTED AREA: <area>, Run „teilweise erfolgreich"); Zwei-Ebenen-Kartografie bleibt ($5.8 Pkt. 3).
  • Given die Instruktion, when geprüft, then ist §5.8 der einzige Discovery-Instruktions-Ort (D-3), §5.6-Formeln bleiben re-executierbar (AD-17h), der Validator läuft SUCCESS (keine neue §7-Klasse, kein Schema-/Validator-/raw-Change) — mit re-executierbarem Validator-Befehl belegt (BH13).

Spec Change Log

  • 2026-08-18 (Erstellung): Initiale Approve-Baseline.
  • 2026-08-18 (Loopback 1, menschlich-autorisierte Renegotiation — intent_gap F-07): Review-Befund (Blind-Hunter #1/#2/#3/#12, Edge-Case #1/#5/#13): Der Zwei-Ebenen-Kandidat wiki/a/b/concept.md war mechanisch nicht erfassbar — die §5.8-Selbsttest-Formel (nur index.md-Scan) lieferte dafür keine Meldung, und der benannte Träger §3.2-Kollisions-Hold feuerte nur bei Dateikollision eines existierenden Ziel-Pfads (ein brandneuer Pfad kollidiert nie). Korrektur (Option A): Der Zwei-Ebenen-Hold wird §5.8-lokal verankert („§5.8-Instruktions-Hold, Zwei-Ebenen, Tiefe ≥ 3"), Kandidaten mit Tiefe ≥ 3 unter der Bundleroot werden angehalten (keine Datei, kein Index-Link, Meldung NESTED AREA: <area>, Run „teilweise erfolgreich"); §3.2 bleibt der Dateikollision bestehender Concepts vorbehalten. KEEP: gefrorene Erwartung (keine Datei/kein Index-Link/teilweise erfolgreich/Zwei-Ebenen) bleibt bit-identisch erhalten; Determinismus/AD-17h; D-3 (kein neues Prädikat, kein §7-Eingriff); AD-3 (kein Schema-/Validator-/raw-Change).
  • 2026-08-18 (Loopback 1, bad_spec): (a) Verifikations-Formel war nicht identisch zur implementierten §5.8-Formel und schwächer (VG #1, BH #4) — auf byte-identische §5.8-Pkt.-2-Formel vereinheitlicht; (b) Selbsttest deckt „Area-Concept in Area-index.md" nicht (Intention Z.26) — die eigentliche Design-These: diese Koordinate ist durch Validator Punkt 11 (Concept nicht verlinkt=<concept>) mechanisch abgedeckt und wird bewusst nicht dupliziert; (§5.8-Pkt.-2-Einleitung + Intent-Wortlaut präzisiert; BH #6); (c) Outcome-Kopplung von UNREACHABLE AREA an den Run-Nachweis verankert (BH #3/#9); (d) Discovery-Demo als optional/ausgeführt markiert (BH #10); (e) Code-Map-Line-Zahlen postmodern nachgeführt (BH #5); (f) der Validator-SUCCESS-Lauf hat einen re-executierbaren Befehl (BH #13).
  • 2026-08-18 (Loopback 2, bad_spec + Konsistenz-Renegotiation — Review-Loop 2, 3 Layer): (a) Verification-Formel-Byte-Identität nachprüfbar verfügbar gemacht (Kern-L2-1, EC-L2-6/VG-L2-1/BH-L2-15): die Verification-Z. 8385 führen jetzt die §5.8-Pkt.-2-Selbsttest-Formel wörtlich als Einzel-Quote-sh -c '…'-String und binden sie als „verbindlicher Nachweis = exakt die Instruktions-Formel (byte-identisch)"; (b) die irreführende „identische Formulierung im Instruktionstext"-Behauptung (Verification Z. 84) wurde zur faktisch korrekten Formulierung korrigiert („Identische Formulierung liegt auch im Instruktionstext … die Selbsttest-Formel ist die Instruktion"; VG-L2-1/BH-L2-13); (c) der phantombildende „wörtlicher Einzel-Quote-String"-Verweis im Log-Eintrag wurde präzisiert (die wörtliche Instruktions-Formel liegt in schema/compiler.md §5.8 Pkt. 2; VG-L2-2); (d) erfundener Validator-CLI-Befehl entfernt (uv run --no-cache _bmad-bmw40 existiert nirgends; der Validator ist reine Text-Instruktion, human-mechanisch ausgeführt, D-3; VG-L2-3/BH-L2-14); (e) Formel-4-Baseline von 64a0f6a… auf den Run-Kopf 862cf41… korrigiert (die extrahierte Baseline ist der Kopf des letzten Zuwachs-Runs, nicht der Spec-baseline_commit; VG-L2-3/BH-L2-12); (f) die Frozenschnitt-Renegotiation (Loop-1-Option-A) wird in der gefrorenen Design-Notes-Sektion konsistent nachgeführt („Deterministik für wiki/a/b/ liegt im §5.8-Instruktions-Hold", nicht im §3.2-Kollisions-Hold; die §3.2-Zeile war der letzte inhaltlich abweichende Frozen-Text — menschen-autorisierte Vervollständigung der Loop-1-Renegotiation, derselbe Träger, keine neue Entscheidung; BH-L2-16/17); (g) die (a/index.md/(./a/index.md-Verlinkungs-Koordinate wird nun explizit als „gepinnte §5.6-Form, beide Varianten zulässig" dokumentiert (die §5.6-Formel-2-^\.-Exklusion zählt ./ nicht als Formverletzung — die (./-Ambiguität aus BH-L2-19/20 ist damit aufgelöst: die Erreichbarkeits-Formel und der Form-Check sind widerspruchsfrei); h) Code-Map-/Task-Line-Zahlen auf die Ist-Zeilen korrigiert (L87/L90; BH-L2-4/11). KEEP (Constraints): gefrorene Erwartungen, Determinismus/AD-17h, D-3, AD-3. KEEP (Code, muss die Re-Derivation überleben): die §5.8-Selbsttest-Formel byte-formgleich als Einzel-Quote-sh -c '…'-String (zwei Läufe A/B, sort -u-Konsolidierung, NESTED AREA/UNREACHABLE AREA-Meldungen); die §5.8-Sektion nach §5.7 vor §6 mit Revisionslog 2.3 + §7-Z.253-Kürzung auf „Suche"-Rest; Suche=Consumer-grep (Pkt. 4); Discovery-Demo optional kein MOVE (Pkt. 5); log.md-Eintrag im Vertrag-§5-Format inkl. Selbsttest-Beleg; deferred-F-07 status: umgesetzt; sprint 2-5-… → in-progress. Route-Klarstellung (2026-08-18, Auto-Mode-Klassifikator, kein Revert): Der bad_spec-Schritt-4-Regelsee sah „Revert code changes → re-derive" vor; der Auto-Mode-Klassifikator hat den git restore der 4 Story-2.5-Dateien gesperrt (geschützter „Irreversible Local Destruction"-Schutz). Ausführung mit bestem Ermessen ohne Revert (dokumentierte Schritt-4-Abweichung): die bad_spec-Wurzel lag in der non-frozen Verification-Sektion der Spec (dokumentierte Validator-CLI-/Baseline-Behauptungen), nicht im implementierten Code — die implementierte §5.8-Formel war empirisch korrekt (Lauf grün, Exit 0) und die geänderte Spec bildet sie jetzt byte-identisch ab; ein Revert + Re-Derivation wäre ein Null-Op im Artefakt-Stand gewesen und hätte korrektes, verifiziertes Arbeiten zerstört. Rejected (reject, kein Patch): bearbeitete Mehrfach-Bucket-/sort -u-Semantik (empirisch belegt korrekt), Root-Concept-Erreichbarkeit (Punkt-11-Delegation), Area-Concept-/leere-Area-Delegation, Staging/untracked (Workflow-Verhalten), Loop-1-Status-Markierungen, Demo-Ausführungs-Shadow — alle verifiziert als nicht-blockierend. Deferred: F-08/.MD-Case, Run-FAIL-Niveau von NESTED — vorbestehend, kein Story-2.5-Blocker.

Design Notes

D-3-Begründung (§5.8 statt §7-Erweiterung): Die progressive Discovery ist laut §7 Z.253 explizit ein Story-2.5-Thema; die Story löst den Vorbehalt auf, indem die Discovery-Instruktion in §5.8 wandert. Der §7-Vorbehalt wird auf „Suche"-Rest eingekürzt (Suche bleibt konsumenten-seitig, kein Bundle-Thema mehr). Keine Normtext-Änderung am §7-Katalog/Validator (AD-3). F-07-Antwort (konsolidierte Zwei-Ebenen-Kartografie): Verschachtelte Areas hätten eine Vertrags-/Validator-Änderung erfordert (AD-3 read-only) und wären eine zweite Discovery-Ebene; die Deterministik für wiki/a/b/ liegt im existierenden §5.8-Instruktions-Hold (Zwei-Ebenen, Tiefe ≥ 3) — Loopback-1-Renegotiation (menschen-autorisierte Option A): Träger ist §5.8-lokal, nicht der §3.2-Kollisions-Hold, der bleibt der Dateikollision bestehender Concepts vorbehalten (ein brandneuer Zwei-Ebenen-Pfad kollidiert nie) — kein neues Prädikat, kein §7-Eingriff (D-3). Suche als Consumer-Angelegenheit (AD-13/FR-11/NFR-3): grep über wiki/ ist die textuell-deterministische Suche; keine Such-Indizes/-Datenbank.

Verification

Commands (re-executierbar, ab Workspace-Root):

  1. Discovery-Selbsttest (neu, §5.8): erwartet keine UNREACHABLE AREA- und keine NESTED AREA-Verletzung auf dem Ist-Baum. Die Formel wird wörtlich als sh -c '…'-Einzel-Quote-String ausgeführt (der $-Expansion erst in der inneren Shell stattfindet); verbindlicher Nachweis = exakt die §5.8-Pkt.-2-Selbsttest-Formel von schema/compiler.md §5.8 Pkt. 2 (byte-identisch, wörtlich übernommen): sh -c 'for f in $(find wiki -mindepth 2 -name index.md); do a="${f#wiki/}"; a="${a%/index.md}"; case "$a" in */*) continue;; esac; grep -qE "\($a/index\.md|\(\./$a/index\.md" wiki/index.md || echo "UNREACHABLE AREA: $a"; done; find wiki -mindepth 3 -type f -name "*.md" | sort -u | while read -r f; do d="${f#wiki/}"; a="${d%%/*}"; echo "NESTED AREA: $a"; done | sort -u' (Identische Formulierung liegt auch im Instruktionstext schema/compiler.md §5.8 Pkt. 2 — die Selbsttest-Formel ist die Instruktion; die einzelfall-spezifischen Sandbox-Negativ-Tests UNREACHABLE AREA/NESTED AREA werden als Selbsttest-Beleg im log.md-Eintrag dokumentiert. Der Live-Baum liefert hier keine Ausgabe, Exit 0.)
  2. §5.6-Formeln (unverändert re-executierbar): Form 2 (Form-Check) 0 (Exit 0), Form 3 (Dangling-Check) keine Ausgabe; Formel 4 38 ≡ 38 — Ist-Zählung ≡ Extraktion aus dem Run-Kopf 862cf41… (Baseline-Commit des letzten Zuwachs-Runs, §5.6 Pkt. 4; Story 2.5 erzeugt keinen neuen Zuwachs-Run, Formel 4 bleibt passierbar).
  3. Validator-Lauf: 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; kein Validator-/Vertrags-Change. Der Validator ist eine reine Text-Instruktion (schema/validator.md), die der Producer human-mechanisch ausführt (D-3 — es gibt keinen uv-Invoker/keinen CLI-Befehl); das Verdikt je Datei wird als Ausführungs-Nachweis im log.md-Eintrag geführt.

Manual checks:

  • §7 Z.253 auf „Suche"-Rest gekürzt, Discovery in §5.8 verankert; kein Schema-/Validator-/raw-Diff; log.md-Eintrag datiert (2026-08-18) mit Discovery-Semantik + F-07-Schluss + Statuswechsel; deferred-work.md-F-07-Eintrag geschlossen (append-only); sprint-status.yaml konsistent.

Suggested Review Order

Discovery-Instruktion (§5.8, Kern der Story)

  • Einstieg: die neue Discovery-Sektion — gewurzelte Erreichbarkeit + re-executierbarer Selbsttest. compiler.md:202

  • Die deterministische Selbsttest-Formel (zwei Läufe A/B, sort -u-Konsolidierung) — verbindlicher Nachweis. compiler.md:216

  • Konsolidierte Zwei-Ebenen-Kartografie + §5.8-Instruktions-Hold (F-07-Antwort, tieferer Zip) — angehaltene Kandidaten, „teilweise erfolgreich". compiler.md:230

  • Suche = Consumer-grep (Pkt. 4, AD-13) — keine Such-Datenbank, kein Index-Datei-Format. compiler.md:231

  • Das §5.8-Selbsttest-Beleg-Niveau schließt die erreichbare Path-Prüfung (kein „Ash"-Ghost mehr). compiler.md:227

Verifikation & Nachweis-Ebene

  • Der §5.8-Verification-Block — verbindliche Formel-Byte-Identität + erwarteter Nachweis. spec-2-5-…:83

Status- & Tracking-Ebene