fix: Story 3.13 Re-Run-#6-Auflösung (E.6-Over-Pin) — Gate-Härtung: Receipt-Abgleich
auf die drei deterministischen Felder (baseline/candidates/sources_added byte-identisch A==B + decision-Vorhandensein); decision-Prosa = Befund-Äquivalenz (Nicht-Wort-Identität) Befund Re-Run #6 (grün bis E.6): E.4 GRÜN (NON_AT=0 AT=2 — Rev-3.8-Remediation wirkt: Bundle-State byte-identisch bis at), D/D-NEG/C/E.5/E.7/E.8/E.9 grün; HARD-FAIL an E.6: Run-Receipt decision:-Zeile (freie LLM-Prosa) wurde byte- vergleicht und divergierte A/B (identischer Befund, freie Wortung), während baseline/candidates/sources_added byte-identisch A==B waren. Klassifikation: Gate-Over-Pin (kein compiler.md-Defizit, kein AC-4-Fall) — schema/compiler.md definiert den Receipt nicht (0 Treffer "receipt"), der Gate-Prompt (D-1) deklariert decision selbst als frei; der alte E.6-Byte- Vergleich widersprach damit dem eigenen Prompt (selbe Over-Pin-Klasse wie Re-Run #5 log.md, auf der Gate-Assertion-Seite). Semantische Entscheidung bereits am Bundle-State bewiesen (E.4 + E.5/E.7/E.8). Änderung (Gate-only, bash -n clean; kein compiler.md-/frozen-Block-Change; D-2/D-1-konsistent, D-3.13-2-Option-1-Prinzip): - E.6: receipt_field-Helfer (Präfix-Strip, WT-Pfad-Normalisierung, Trailing- Whitespace/CRLF-robust); nur deterministische Felder byte-identisch A==B, decision-Zeile auf Vorhandensein (nicht leer); Prosa = Befund-Äquivalenz. - Header-D-2-Bullet: Härtung + Defer-Verweis dokumentiert. Dokumentation: - Spec Change Log: Re-Run-#6-Befund + Härtung + Defer (frozen Block L12-51 und GENERATED_AT_AUSNAHME unangetastet, diff-geprüft). - deferred-work.md: neuer Abschnitt "Deferred from: Re-Run #6" (D-3.13-R6-1): byte-deterministischer Receipt = offener Defer/Ask-First-Kandidat (spätere compiler.md-Revision Rev 3.9 oder Epic-4), kein stiller Semantik-Change. Entscheidungshinweis: Gate-Härtung + Defer-Notiz ausgeführt (kleinste, ehrliche, vertragskonforme Variante, konsistent mit dem autorisierten Muster Rev 3.8 / D-3.13-6 Option 2); Nutzer-Away — zur Bestätigung im Review-Loop-2. Nächster Schritt: Re-Run #7 (Erwartung: E.6 grün, F G-1..G-8 + G Porcelain erstmals erreichbar). Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -654,3 +654,12 @@ Der Epic-3-Abnahmegate-Lauf (`_bmad-output/implementation-artifacts/sandbox-3-13
|
||||
|
||||
- W-1 — Timeout-Budgets (2700 s pro Agent-Lauf) an der Grenze zu beobachteten Agent-Laufzeiten (Skript-Kommentar dokumentiert empirisch A:~30 min, B: >35 min): Laufzeit-Variation ist Modell-/Token-Latenz, kein deterministischer Defekt; kein A0-20-Verstoß (Timeout ist Laufzeit-Schutz, keine Wanduhr-Steuerung). Home: Sandbox-Härtung (Budget-Observation bei Folge-Läufen).
|
||||
- W-2 — `PASS_COUNT`-Beleg-Zahl ist loop-basiert (12 Referenz-Sandbox-Existenz-PASS + 7 wiki-Datei-Verdikt-PASS + fix) und driftet design-immanent bei Bundle-/Referenzwachstum: Beleg-Zahl in log.md/sprint-status/epic-3-context ist Lauf-Momentaufnahme, keine stabile Invariante; Beleg-Formulierung (kumulative vs. pro-Sektion-Zählung) wird im Review-Patch P-12 geklärt; keine Gate-Semantik-Folge. Home: Sandbox-Kosmetik (nächste Sandbox-Härtung).
|
||||
|
||||
## Deferred from: Re-Run #6 (Story 3.13 Gate) — E.6 Receipt-Over-Pin (2026-08-24)
|
||||
|
||||
- **D-3.13-R6-1: byte-deterministischer Run-Receipt (Vertrags-Vollständigkeit)** (Story 3.13, Re-Run #6, 2026-08-24) — **status: offener Defer / Ask-First-Kandidat (Gate-Härtung ausgeführt, Vertrags-Lücke benannt).**
|
||||
**Befund:** Re-Run #6 (grün bis E.6; E.4 GRÜN `NON_AT=0 AT=2` — die Rev-3.8-Remediation wirkt) bricht an **E.6 (Run-Receipt A-vs-B)**: die `decision:`-Zeile divergiert A/B (A „`alpha: UPDATE (…)`" vs B „`wiki/alpha.md = UPDATE (…); wiki/log.md = …; wiki/gamma.md = NO_OP; wiki/index.md = NO_OP`"), während die drei **deterministischen strukturierten Felder** `baseline`/`candidates`/`sources_added` **byte-identisch A==B** sind. Die divergierende Zeile ist **freie LLM-Prosa** (identischer Befund, freie Wortung).
|
||||
**Klassifikation:** **Gate-Over-Pin (kein compiler.md-Defizit, kein AC-4-Fall).** `schema/compiler.md` definiert den Run-Receipt **überhaupt nicht** (0 Treffer „receipt" — grep-verifiziert); der Receipt ist ein **Gate-Artefakt**. Der Gate-Prompt (E.3, D-1) deklariert `decision: <Entscheidung je Mutation>` selbst als **frei** („Werte aus deinem Lauf", „keine vorgegebenen Werte"). Der alte E.6-Byte-Vergleich des kompletten Receipt **widersprach damit dem eigenen Prompt** und überpinsste die freie Prosa — dieselbe Over-Pin-Klasse wie das `log.md`-Problem in Re-Run #5, hier aber auf der Gate-Assertion-Seite. Die **semantische** Entscheidung ist bereits am Bundle-State bewiesen (E.4 byte-identisch bis `at` + E.5/E.7/E.8 Witness).
|
||||
**Ausgeführte Gate-Härtung (Re-Run #6-Auflösung, Re-Run #7-Pfand):** E.6 vergleicht nun **nur die drei deterministischen Felder byte-identisch A==B** + prüft die `decision`-Zeile auf **Vorhandensein** (nicht leer); die `decision`-Prosa gilt als **Befund-Äquivalenz** (Nicht-Wort-Identität, §5.10-Pkt-3-Prinzip; D-2/D-1-konsistent). Keine compiler.md-/frozen-Block-Änderung.
|
||||
**Offener Vertrags-Defer (Ask-First):** die **Vertrags-Vollständigkeit** — ein **byte-deterministischer Receipt** mit kanonisch gepinnter `decision`-Feldform — ist **nicht** Teil des gültigen Vertrags und wird als **separater Kandidat** für eine spätere compiler.md-Revision (Rev 3.9) oder Epic-4-Determinismus-Überarbeitung übergeben. Bis dahin gilt: deterministische Felder A==B (hart), decision-Prosa = Befund-Äquivalenz (kein Byte-Abgleich). Kein stiller Semantik-Change durch das Gate (AC-4/AD-3-konform).
|
||||
**Home:** Story 3.13 (Gate-Härtung) / spätere compiler.md-Revision oder Epic-4 (Vertrags-Vollständigkeit).
|
||||
|
||||
Reference in New Issue
Block a user