Files
wow20/_bmad-output/implementation-artifacts/spec-3-10-inkrementelle-update-und-synthese-erhaltung-absichern.md

145 lines
21 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: 'Story 3.10 — Inkrementelle Update- und Synthese-Erhaltung absichern'
type: 'feature'
created: '2026-08-21'
status: 'done'
baseline_commit: '8c43d3a09cdc10bc37ea9fdcd074d17d15262c44'
review_loop_iteration: 0
context:
- '_bmad-output/implementation-artifacts/epic-3-context.md'
---
<frozen-after-approval reason="human-owned intent — do not modify unless human renegotiates">
## Intent
**Problem:** §5.9 (Erweitern/Präzisieren/Korrigieren/No-Op, Story 3.1/3.3), §5.10 (Synthese, Story 3.4) und §5.15 (Routing-Tabelle, Story 3.9) verankern die Update-/Synthese-Mechanik und die Routing-Entscheidung — aber die **Erhaltungs-Absicherung im laufenden, gemischten Run fehlt als geschlossene Klammer**: (a) die **CONFIRMING-Grenze** ist offen — eine neue Source, die eine bestehende Aussage unabhängig bestätigt, trägt einen **neuen Evidenzanker** und darf **nicht** in den §5.9-No-Op („Evidenz bereits vollständig enthalten") fallen (AC-4 vs. AC-6); (b) **Korrigieren** dokumentiert die ersetzte Aussage samt Source-Basis noch nicht im Run-Receipt (AC-2); (c) der **Provenienz-/Link-Selbsttest** erwartet Deltas aus historischen, fest codierten Commits/Zählwerten statt aus dem aktuellen Run (AC-7); (d) der **Hold-Ausbau** ist auf „Home Story 3.10" delegiert (§5.15 Zelle 3 + Scope-Präzisierung „post-Reconcile-Orphan, Mehrziel", §5.10-Pkt.-8-/§5.14-Pkt.-5-Reconcile-Orphan-Regel): post-Reconcile-Orphan über **volle Stufen b/c** (nicht nur Stufe-a), **Mehrziel-Auflösung** (D-8-Mehrfach-Term-Vereinigung), und klassifikationspflichtige/widersprüchliche Evidenz muss bis Epic 4 **ohne Wissensmutation in einem benannten Hold erhalten** bleiben, mit **beiden Evidenzpfaden im Run-Receipt** (AC-8, NFR-7).
**Approach:** Neue Sektion **§5.16 „Inkrementelle Update- & Synthese-Erhaltung + Hold-Ausbau (Story 3.10)"** (nach §5.15, vor §6): (1) **Kontinuitäts-Garantie** — Update/Synthese mutiert im bestehenden Pfad, kein thematisches Duplikat, Identität + Index-Link erhalten (AC-1); (2) **Korrigieren mit Run-Receipt-Trace** — ersetzte Wortlautfolge + Source-Basis im Run-Receipt (außerhalb Bundles, §5.14 Pkt. 2); mehrdeutige Korrektur → benannter Hold (Epic 4) (AC-2); (3) **Schutzbestandteile & Byte-Identität** — geschützte Bestandteile (gültige belegte Aussagen, §5.5-Inline-Verweise, `sources` gültiger Belege, §5.6-Links, human-`verified`) bleiben bei jedem Update/Synthese; nicht betroffene Concepts byte-identisch (AC-3); (4) **CONFIRMING-Konsolidierung** — bestätigende neue Source: Aussage genau einmal, alle Evidenzanker via §5.5-Multi-Beleg, `sources`-Zuwachs, `generated.at`-Bump, **kein NO_OP** (AC-4); (5) **gemeinsame Wissensrepräsentation** — §5.10 Pkt. 2/3/5 als Synthese-**Erhaltung** (Update auf bestehendes Concept = Erweiterung, keine Neuschreibung) (AC-5); (6) **byte-erhaltender NO_OP** — identische Evidenz **samt vollständiger Evidenzanker-Menge** → NO_OP; fehlender Anker → Pkt. 4 (AC-6); (7) **Provenienz- & Link-Selbsttest aus aktuellem Run** — Baseline = aktuelles `<Baseline-Commit>`, erwartete Deltas = Kandidatenliste Neu-Anlage `log.md` nachgeführte `index.md`; kein historischer Commit/globaler Zählwert normativ (AC-7); (8) **benannter Hold** — post-Reconcile-Orphan über alle Stufen (a/b/c), Mehrziel-Auflösung (Konsolidierung auf primäre Ziel-Repräsentation; sonst Hold), widersprüchliche/klassifikationspflichtige Evidenz ohne Wissensmutation, beide Evidenzpfade im Run-Receipt (AC-8).
## Boundaries & Constraints
**Always:**
- Nur `schema/compiler.md` mutiert (neue §5.16 + §7-Bullet-Erweiterung der Story-3.10-Verankerung + §8-Revisionslog **Revision 3.5** + Hold-Home-Nachführungen: §5.15-Zelle-3-Zeile + §5.15-Scope-Präzisierung, §5.10-Pkt.-8-/§5.14-Pkt.-5-Verweis). `schema/validator.md`, `schema/wiki-compiler.md`, `adapters/`, `raw/` **read-only** (AD-3); `schema/canonical-terms.md` bleibt append-only-Registry (keine Bestandsedits).
- Referenz statt Re-Negotiation: bestehende §5.9/§5.10/§5.15-Mechaniken bleiben **textuell unverändert** — §5.16 definiert die operationelle Erhaltungs-Ebene (CONFIRMING-Grenze, Schutzbestandteile, aktueller-Run-Selbsttest, Hold-Ausbau) darüber; die §5.9-Abgrenzungs-Reihenfolge `Korrigieren → Präzisieren → Erweitern → No-Op` bleibt die **einzige** Form-Wahl, synthese- und update-seitig unverändert.
- Kein neues Prädikat, keine neue §7-Invaliditätsklasse, keine fünfte Update-Form, kein neuer Frontmatter-/Format-Key; AD-16-Klassifikation/semantische Auflösung bleibt Epic 4; `raw/` unangetastet (AD-3).
- Sandbox-Nachweis re-executierbar (Muster sandbox-3-9, Exit 0), harte PASS/FAIL-Assertionen, kein Berührung des realen Ist-Baums.
**Ask First:**
- Umlaut-vs-Transkription-Divergenz im Match-Pfad schließen (bleibt benannter Defer — kein neuer Normalisierungs-Operand, append-only).
- Verhalten des `generated.at` (A0-20: einmalige `at`-Festlegung pro Run) ändern — bleibt unverändert bindend.
- Veränderung am §5.9-No-Op-Regeltext selbst (frozen, Story 3.1) — §5.16 ergänzt nur die operationelle CONFIRMING-Abgrenzung, kein Rework des frozen Textes.
**Never:**
- Nie Wissensmutation bei Orphan/Hold; nie stilles Löschen von Evidenz, Provenienz oder geschützten Bestandteilen; nie „Regenerate Everything" (AD-5/FR-12); nie hart kodierte erwartete Pläne/Concept-Bodies/Zählwerte als Beweis (AC-7, §5.14 Pkt. 2); nie Standalone/Eigene Runtime (D-3, AD-11); nie textueller Auto-Merge (AD-17c).
## I/O & Edge-Case Matrix
| Scenario | Input / State | Expected Output / Behavior | Error Handling |
|----------|--------------|---------------------------|----------------|
| KONTINUITAET | neue Erkenntnis auf bestehenden Concept-Pfad | in-place Update/Synthese, kein Duplikat, Identität + Index-Link erhalten (AC-1) | kein Overwrite, kein neuer Link ohne echte Beziehung |
| KORRIGIEREN_RECEIPT | eindeutige aktuelle Evidenz ersetzt eine Aussage | in-place Korrektur; ersetzte Wortlautfolge + Source-Basis im Run-Receipt (§5.14 Pkt. 2) (AC-2) | mehrdeutig → benannter Hold, keine Mutation |
| GESCHUETZTE_BESTANDTEILE | Update/Synthese auf Concept mit gültigen Aussagen+Provenienz | geschützte Bestandteile erhalten; nicht betroffene Concepts byte-identisch (AC-3) | Verstoß = textuell benannt (NFR-4), Ghost-Diff-Rollback (§5.9 Pkt. 5) |
| CONFIRMING | neue Source bestätigt bestehende Aussage unabhängig | Aussage genau einmal, alle beitragenden Evidenzanker (§5.5-Multi-Beleg), `sources`-Zuwachs, `at`-Bump — **kein NO_OP** (AC-4) | kein Duplikat der Aussage, kein stiller Anker-Verlust |
| SYNTHESE_ERHALTUNG | mehrere redundante/ergänzende Sources | eine gemeinsame Wissensrepräsentation, claim-granulare gemischte Provenienz, keine Quelle-A/B-Aneinanderreihung (AC-5) | §5.10-Pkt.-5-Reflektiertheits-Selbsttest |
| NO_OP_BYTE_ERHALTEND | identische Evidenz samt vollständiger Evidenzanker im Body | byte-erhaltender NO_OP — keine Mutation, kein `at`-Bump, kein `sources`-Zusatz, kein `log.md`-Eintrag (AC-6) | fehlender Anker → CONFIRMING (Pkt. 4), nicht NO_OP |
| SELBSTTEST_AKTUELLER_RUN | Provenienz-/Link-Selbsttest bei Update/Synthese | Baseline = aktuelles `<Baseline-Commit>`; erwartete Deltas = Kandidatenliste Neu-Anlage `log.md` `index.md` (AC-7) | kein historischer Commit/Zählwert normativ; Abweichung = textuell benannt |
| ORPHAN_HOLD_VOLLE_STUFEN | unzugeordnete Evidenz, erkannt über Stufe a/b/c | benannter Hold ohne Wissensmutation, datumsgruppierter `log.md`-Eintrag (`<Baseline-Commit>`), beide Evidenzpfade im Run-Receipt (AC-8) | kein Banner, keine stille Bearbeitung, keine eigenständige Anlage |
| MEHRZIEL | eine Einheit löst über mehrere Terme auf mehrere Ziele auf | Konsolidierung auf primäre Ziel-Repräsentation; kein Duplikat; ohne dominantes Ziel → benannter Hold (AC-8) | mehrdeutig → fail-closed (Hold), beide Pfade im Receipt |
## Code Map
- `schema/compiler.md`**primär mutiert** (D-3): neue Sektion **§5.16 „Inkrementelle Update- & Synthese-Erhaltung + Hold-Ausbau (Story 3.10)"** (nach §5.15 Z. 398, vor §6 Z. 402; Pkt. 18) — alle Zellen referenzieren die bestehenden Mechaniken Wortlaut-unverändert; **Hold-Home-Nachführungen**: §5.15-Zelle-3-Zeile (Z. 391 „Hold-Ausbau Home Story 3.10") und §5.15-Scope-Präzisierung (Z. 400 „Der Hold-Ausbau (post-Reconcile-Orphan, Mehrziel) verbleibt Story 3.10") → „in §5.16 verankert (Story 3.10)"; §5.10-Pkt.-8-D-4-Bullet (Z. 302 „hat seinen Home in Story 3.10") → §5.16-Verankerung; §7-Bullet-Erweiterung (Story-3.10-Verankerung, analog §5.15-Ergänzung); §8-Revisionslog **Revision 3.5**. Bestehende §5.9/§5.10/§5.15-Mechaniken bleiben **textuell unverändert** (Referenz statt Re-Negotiation).
- `_bmad-output/implementation-artifacts/sandbox-3-10/run-sandbox.sh`**neu** (re-executierbar, Muster `sandbox-3-9/run-sandbox.sh`, Exit 0): Szenarien E-1..E-9 (Matrix-Zeilen als harte Assertionen; CONFIRMING ≠ NO_OP mit Byte-Vergleich; NO_OP byte-erhaltend; Korrigieren-Receipt-Trace; aktueller-Run-Selbsttest; Orphan über Stufe-a/b/c; Mehrziel; Zwei-Run-Identität).
- `_bmad-output/implementation-artifacts/sprint-status.yaml`**mutiert**: Key `3-10-inkrementelle-update-und-synthese-erhaltung-absichern` `backlog``review` (Implementierungs-Commit; finaler `done`-Flip im Step-05-Status-Sync nach konvergiertem Review-Loop); `last_updated` (Format `MM-DD-YYYY HH:MM`).
- `_bmad-output/implementation-artifacts/deferred-work.md`**append**: Defer „Orphan voller Stufen b/c + Mehrziel" (Hold-Home Story 3.10) → aufgegriffen/geschlossen; Umlaut-Defer bleibt offen (wie notiert, kein Instruktions-Defekt).
- `wiki/log.md`**append** (Vertrag §5, bestehende Bullets unverändert): Story-3.10-Eintrag (Verankerung §5.16, Sandbox-Nachweis E-1..E-9, Status-Flip, Validator-Verdikt).
- `_bmad-output/implementation-artifacts/epic-3-context.md`**mutiert** (gemäß genehmigtem Sprint-Change-Proposal 2026-08-20; Header „Edit freely"): Technical Decision Z. 39 „Deterministische Relevanz & Routing" um §5.16-/Story-3.10-Ist ergänzt (Erhaltungs-Absicherung + Hold-Ausbau verankert).
**Read-only evidence (AD-3):** `schema/validator.md` (Rev 9), `schema/wiki-compiler.md`, `adapters/`, `raw/` (z. B. `raw/architecture-spine/architecture-spine-2026-08-14.md` AD-4/AD-5/AD-16; `raw/epics/epics-2026-08-14.md` FR-4/FR-6/FR-7/FR-12, NFR-7). `schema/canonical-terms.md` append-only unangetastet.
## Tasks & Acceptance
**Execution:**
- [x] `schema/compiler.md` — §5.16 einfügen (nach §5.15, vor §6): Pkt. 18 gemäß Intent; keine neuen Prädikate/§7-Klassen/Keys; Hartung der CONFIRMING-vs-NO_OP-Grenze; §7-Bullet und §8-Revisionslog **Revision 3.5** nachführen; Hold-Home-Nachführungen §5.15-Zelle-3/Scope-Präzisierung, §5.10-Pkt.-8-D-4
- [x] `_bmad-output/implementation-artifacts/sandbox-3-10/run-sandbox.sh` — E-1..E-9, harte PASS/FAIL, CONFIRMING ≠ NO_OP byte-bewiesen, Zwei-Run nicht-vakuum, Exit 0
- [x] `_bmad-output/implementation-artifacts/sprint-status.yaml` — Key 3-10 → `review` (Impl-Commit; finaler `done`-Flip Step-05); `deferred-work.md` — Orphan-voller-Stufen/Mehrziel-Defer aufgegriffen; `wiki/log.md` — Story-3.10-Eintrag (Verankerung, Sandbox, Validator-Verdikt)
- [x] `_bmad-output/implementation-artifacts/epic-3-context.md` — Technical Decision Z. 39 um §5.16-Ist ergänzt
**Acceptance Criteria:**
- Given eine passende neue Erkenntnis zu einem bestehenden Concept, when der Run sie verarbeitet, then wird das bestehende Concept in-place erweitert oder präzisiert und kein thematisches Duplikat angelegt (AC-1).
- Given explizite aktuelle Evidenz, die eine bestehende Aussage eindeutig korrigiert, ohne dass zwischen weiterhin gültigen Sources ein Widerspruch verbleibt, when der Run sie verarbeitet, then wird das bestehende Concept in-place korrigiert und die ersetzte Aussage samt Source-Basis bleibt im Run-Receipt nachvollziehbar; mehrdeutige Fälle gehen in den Hold für Epic 4 (AC-2).
- Given ein betroffenes Concept mit weiterhin gültigen Aussagen und Provenienz, when es aktualisiert wird, then bleiben diese geschützten Bestandteile erhalten; nicht betroffene Concepts bleiben byte-identisch (AC-3).
- Given eine neue Source, die eine bestehende Aussage unabhängig bestätigt, when synthetisiert wird, then erscheint die Aussage genau einmal und trägt alle beitragenden Evidenzanker; die neue Source ist kein `NO_OP` (AC-4).
- Given mehrere Sources mit redundanten und ergänzenden Aussagen, when der Run synthetisiert, then entsteht eine gemeinsame Wissensrepräsentation mit claim-granularer gemischter Provenienz — keine Source-A/Source-B-Aneinanderreihung (AC-5).
- Given eine bereits vollständig repräsentierte identische Source samt Evidenzanker, when sie erneut verarbeitet wird, then ist der Run für dieses Wissen byte-erhaltend (`NO_OP`) (AC-6).
- Given der Provenienz- und Link-Selbsttest, when erwartete Deltas bestimmt werden, then stammen Baseline und Erwartung aus dem aktuellen Run; kein historischer, fest codierter Commit oder globaler Zählwert ist normativ (AC-7).
- Given klassifikationspflichtige oder widersprüchliche Evidenz, when der Run sie erreicht, then wird sie bis Epic 4 ohne Wissensmutation in einem benannten Hold erhalten; beide Evidenzpfade bleiben im Run-Receipt nachvollziehbar (NFR-7) — der post-Reconcile-Orphan wird über alle Erhebungs-Stufen (a/b/c) geschlossen und Mehrziel-Einheiten werden konsolidiert oder gehalten (AC-8).
## Spec Change Log
- **Draft (2026-08-21, Step-02-Plan):** Erstentwurf gemäß bmad-build-Workflow für Story 3.10 — Erhaltungs-Absicherung (AC-1..AC-7) + Hold-Ausbau (AC-8, Hold-Home aus §5.15-Zelle-3/Scope-Präzisierung und §5.10-Pkt.-8-D-4). Noch keine Review-Loop-Einträge; `status: draft`, Review-Loop-Iteration 0.
</frozen-after-approval>
## Design Notes
**Warum §5.16 als eigene Sektion, nicht §5.9/§5.10-Umbau?** §5.9 (frozen, Story 3.1/3.3) und §5.10 (Story 3.4) sind textuell verankerte Mechaniken; §5.15 (Story 3.9) schließt die Routing-Ebene. §5.16 ist die **Erhaltungs-Klammer** darüber — dieselbe Fugen-Identitäts-Präzedenz wie §5.14/§5.15: die operationelle Ebene und der Hold-Ausbau werden als neue Sektion verankert, bestehende Regeltexte Wortlaut-unverändert referenziert (Re-Negotiation-Vermeidung).
**CONFIRMING ≠ NO_OP (AC-4/AC-6-Grenze ist der Kernfnd der Erhaltung).** Der §5.9-No-Op („engere Auslegung: trifft nur, wenn die neue Evidenz keine Aussage trägt, die im Body nicht bereits als belegte Aussage vorhanden ist — Term-/Stellen-Abgleich mit §5.5-Inline-Verweisen") muss operationell gegen den zunächst verblüffend ähnlichen CONFIRMING-Fall abgegrenzt werden: Eine bestätigende Source trägt **denselben Inhalt, aber einen neuen Evidenzanker** (anderer `raw/`-Pfad/-Stelle). Der Stellen-Abgleich schlägt also auf den **Anker**, nicht auf den Inhalt: ein fehlender Anker = echter neuer Beleg → Konsolidierungs-Update (Pkt. 4), kein NO_OP. NO_OP bleibt AC-6 vorbehalten: **vollständige** Evidenzanker-Menge bereits im Body präsent. Diese Abgrenzung ist rein operationell (neue §5.16-Ebene) — der frozen §5.9-Regeltext bleibt unverändert.
**Run-Receipt trägt die Korrektur-/Hold-Spur (AC-2/AC-8).** Der §5.14-Pkt.-2-Run-Receipt liegt außerhalb des Bundles und ist damit der korrekte Ort für ersetzte Wortlautfolgen (Korrigieren) und die beiden Evidenzpfade eines Holds (ursprünglicher + widersprechender) — das Bundle selbst enthält laut AD-16-Default beide Behauptungen, ohne Korrektur-Klassifikation (Epic 4). NFR-7 („ohne künstliche Gewissheit") wird damit mechanisch nachvollziehbar: Der Hold ist ein **benannter**, im `log.md` datumsgruppierter Eintrag + Receipt-Führung, nie eine stille Löschung oder eigenständige Concept-Anlage.
**Aktueller-Run-Selbsttest (AC-7) löst die historischen Fixwerte auf.** Die §5.6-Formeln 14 tragen historische Zählwerte/Baselines als dokumentarische Pins (Story 2.3/2.4). AC-7 macht für die Erhaltungs-Probe die **Relativ-Ableitung** normativ: Baseline = `<Baseline-Commit>` des aktuellen Runs (dynamische Extraktion), erwartete Delta-Menge = Kandidatenliste Neu-Anlage `log.md` nachgeführte `index.md` — kein globaler Zählwert liefert noch eine normative Erwartung mit.
**Hold-Ausbau = post-Reconcile-Orphan über volle Stufen + Mehrziel.** §5.15 Zelle 3 ist der Routing-Anker (fail-closed, `raw/` unangetastet); §5.10 Pkt. 8 ist die deterministische Reconcile-Orphan-Regel (log.md-verwaist-Eintrag). §5.16 Pkt. 8 schließt die von §5.15/§5.14 offen gelassenen Fälle: (a) Orphan-Erkennung über **alle drei** Erhebungs-Stufen (§3.2 a/b/c — die Story-3.9-Sandbox übte nur Stufe-a), (b) **Mehrziel** aus der D-8-Mehrfach-Term-Vereinigung (Eine Einheit → mehrere gleichgewichtige Ziele: Konsolidierung auf eine primäre Ziel-Repräsentation, nie Duplikat-Inhalt in mehreren Concepts; ohne dominantes Ziel → fail-closed Hold), (c) benannter Hold mit beiden Evidenzpfaden im Receipt.
## Verification
**Commands (re-executierbar, ab Workspace-Root):**
1. `bash _bmad-output/implementation-artifacts/sandbox-3-10/run-sandbox.sh` — expected: E-1..E-9 harte PASS/FAIL, CONFIRMING ≠ NO_OP byte-bewiesen (Aussage genau einmal, neuer Anker zusätzlich, kein `NO_OP`-Pfad), NO_OP byte-erhaltend (vollständige Anker-Menge), Korrigieren-Receipt-Trace vorhanden, aktueller-Run-Selbsttest ohne hart kodierte Erwartung, Orphan über Stufe-a/b/c + Mehrziel-Hold, Zwei-Run-Identität nicht-vakuum, Exit 0.
2. `grep -n "§5.16\|Revision 3.5" schema/compiler.md` — §5.16-Sektion + Revisionslog-Eintrag; `grep -n "Inkrementelle Update- & Synthese-Erhaltung" schema/compiler.md` — Überschrift wortgleich; Hold-Home-Nachführung: `grep -n "in §5.16 verankert" schema/compiler.md`.
3. Read-only (AD-3): `git status --porcelain` zeigt keinen Change an `schema/validator.md`/`schema/wiki-compiler.md`/`adapters/`/`raw/`; `schema/canonical-terms.md` unverändert.
4. Validator-Lauf: alle `wiki/`-Dateien SUCCESS (keine Inhalts-Mutation); auf `wiki/` begrenzt (`git status --porcelain -- wiki/`): ausschließlich `wiki/log.md` — Erhaltungs-Invariante §5.9 Pkt. 5 gewahrt.
**Zu beachten (beim step-04-Review):** (a) bestehende §5.9/§5.10/§5.15-Mechaniken **textuell unverändert** (Referenz statt Re-Negotiation — §5.16 verankert nur die Erhaltungs-/Hold-Ebene); (b) die vorhandene Revisionslog-Nummer ist **3.4** (Story 3.9) — **Revision 3.5 ist für Story 3.10 frei**; (c) Umlaut-vs-Transkription-Defer bleibt offen (kein stiller Abschluss); (d) §5.16 führt **kein** neues Prädikat/keine neue §7-Klasse/keinen neuen Key ein; (e) AD-16-Klassifikation bleibt Epic 4.
## Suggested Review Order
**Design-Intent & Einstieg**
- Erhaltungs-Klammer als eigene Sektion (Story 3.10) — operationelle Ebene über textuell unveränderten §5.9/§5.10/§5.15-Mechaniken, kein Umbau.
[`compiler.md:402`](../../schema/compiler.md#L402)
**Instruktions-Verankerung (§5.16)**
- CONFIRMING ≠ NO_OP: neue Source mit neuem Evidenzanker = Konsolidierungs-Update, nie No-Op (AC-4).
[`compiler.md:402`](../../schema/compiler.md#L402)
- NO_OP byte-erhaltend nur bei vollständiger Anker-Menge (AC-6); Korrigieren mit Run-Receipt-Trace (AC-2); Schutzbestandteile & Byte-Identität (AC-3).
[`compiler.md:402`](../../schema/compiler.md#L402)
- Benannter Hold über Erhebungs-Stufen a/b/c + Mehrziel-D-8-Vereinigung, beide Evidenzpfade im Receipt (AC-8).
[`compiler.md:402`](../../schema/compiler.md#L402)
- Selbsttest aus aktuellem Run: Baseline = `<Baseline-Commit>`, erwartete Deltas, keine historischen Zählwerte (AC-7).
[`compiler.md:402`](../../schema/compiler.md#L402)
**Anker-Synchronisierung**
- Hold-Home-Nachführungen: §5.15 Zelle 3 + Scope-Präzisierung, §5.10 Pkt. 8 D-4-Bullet — „in §5.16 verankert, Story 3.10".
[`compiler.md:391`](../../schema/compiler.md#L391)
- §7-Bullet Story-3.10-Verankerung; §8-Revisionslog **Revision 3.5** (2026-08-21, Story 3.10).
[`compiler.md:515`](../../schema/compiler.md#L515)
**Verifikations-Nachweis (Test)**
- Sandbox E-1..E-9 — re-executierbarer Erhaltungs-Nachweis; Stufen-Scans a/b/c + route_orphan/mehrziel_route (echte Mechanik, kein Fixture-Marker-Wiedergepen).
[`run-sandbox.sh:127`](sandbox-3-10/run-sandbox.sh#L127)
- E-4 CONFIRMING ≠ NO_OP byte-bewiesen (at-Bump aus aktuellem Run, A0-20); E-6 NO_OP byte-erhaltend auf Run-State-Ebene (git-Status leer).
[`run-sandbox.sh:356`](sandbox-3-10/run-sandbox.sh#L356)
- E-8 Orphan/Mehrziel-Hold (log.md statt Sidecar, nur-log.md-Delta) + E-9 at-Wanduhr-Gap-Exzeption real ausgeübt.
[`run-sandbox.sh:512`](sandbox-3-10/run-sandbox.sh#L512)
**Peripherie (Status/Tracking)**
- sprint-status.yaml Key 3-10 → review (finaler done-Flip nach Step-05-Status-Sync); deferred-work.md Aufgegriffen-/Defer-Einträge; wiki/log.md Story-3.10-Eintrag; epic-3-context Technical Decision Z. 39.
[`sprint-status.yaml:47`](../../_bmad-output/implementation-artifacts/sprint-status.yaml#L47)