Run-Receipt als verpflichtenden Gate-Reporting-Lieferant von compiler.md
Befund Re-Run #7 (grün bis E.6): E.4 erneut GRÜN (NON_AT=0 AT=2 — doppelte
Bestätigung der Rev-3.8-Remediation unter echten frischen LLMs), C/D/D-NEG/
E.5 grün; HARD-FAIL an E.6 mit NEUER Ursache: "run-receipt.txt B fehlt/leer"
(Agent A lieferte den Receipt, Agent B nicht — B's wiki/-Mutationen waren
vollständig, E.5-Witness grün, RUN_DONE b vorhanden; Agent B behandelte den
Receipt als optional).
Klassifikation: LLM-Prompt-Adhärenz-Flake, kein Gate-Logik-Fehler, kein
Schema-Defizit (3/4 Receipts in #6/#7 geliefert = ~75% Adhärenz). Gate-
Verhalten korrekt (fehlender Nachweis = HARD-FAIL, kein stilles Grün — die
E.6-Härtung aus #6 bewahrt ihre Eigenschaft: sie prüft nur, wenn der Receipt
existiert). Wurzelursache: der Prompt hatte den Receipt "EXAKT nach den
Konventionen von schema/compiler.md" zugeordnet — compiler.md definiert ihn
aber nicht (0 Treffer "receipt") und der Prompt erklärt compiler.md zur
einzigen normativen Instruktion → Agent kann den Receipt als außerhalb-des-
Vertrags/optional deuten (gleiche Klasse wie P-17 Prompt-Wortungs-Präzisierung).
Änderung (Gate-only, bash -n clean; kein compiler.md-/frozen-Block-Change;
D-1-konform — exakte Feldstruktur != erwartete Werte):
- AGENT_PROMPT: Receipt als expliziter verpflichtender Gate-Reporting-
Lieferant von compiler.md entkoppelt ("GATE-spezifische Berichtsdatei, die
schema/compiler.md NICHT definiert"); beide Lieferungen (wiki/-Mutationen +
run-receipt.txt) sind PFLICHT; RUN_DONE erst NACH Vorliegen beider
Lieferungen; exakte 4-Feld-Form bleibt (Feldnamen exakt, Werte frei).
- Header: P-15/P-16/P-17/P-18-Patch-Referenzen ergänzt (bisher nur P-2..P-14
genannt).
- Spec Change Log: Re-Run-#7-Befund + P-18-Härtung + Stabilitäts-Beobachtung
für #8 (frozen Block L12-51 unangetastet, diff-geprüft).
Nächster Schritt: Re-Run #8 (Erwartung: E.6 grün + F G-1..G-8 + G Porcelain
erstmals). Falls Agent erneut keinen Receipt liefert = systematischer
Prompt-Adhärenz-Defekt (breitere Pflicht-Schritt-Liste), sonst Flake.
Co-Authored-By: Claude <noreply@anthropic.com>
Quelltext-verifiziert (compiler.md L34/84/297/374/375, spec-3-8 P-5 L150):
- §5.14 Pkt.3 verlangt byte-Identität aller Bundle-Bestandteile außer `at`;
§5.10 Pkt.3 pinnt nur die CREATE-Body-REIHENFOLGE (Wortlaut =
"Befund-Äquivalenz, nicht Wort-Identität"); §5.1/FR-2 verlangen freien,
eigenständig formulierten Body.
- 3.8-Determinismus-Basis wurde NUR mechanisch simuliert (Subshell-Läufe),
NUR UPDATE-Pfad (nachweislich A/B byte-identisch bis auf `at:`), nie
echte frische LLMs; CREATE-Byte-Identität unter echten LLMs ist eine
latente Vertrags-Spannung (in 3.8 verdeckt, in 3.13/E.4 aufgedeckt) —
kein bloßes Instruktions-/Validator-Defizit.
- Slug-Teil ist per compiler.md-Patch auflösbar; Body-Byte-Teil NICHT
innerhalb des gültigen Vertrags (Byte-Pin bricht FR-2).
- Q1-Prämisse ("Epic-1-Remediation → Re-Run #6 grün") korrigiert;
Remediation/12-Sandbox-Re-Execution/Re-Run #6 GEHALTEN bis zur
A/B-Vergleichsumfangs-Entscheidung (frozen-Matrix-Zeile
GENERATED_AT_AUSNAHME, Ask-First). Empfehlung (b): CREATE aus A/B-
Fixture nehmen; CREATE-Byte-Fall als benannter Defer.
Keine Schema-/Gate-/Fixture-/frozen-Block-Änderung — Notiz dokumentiert
nur Befund + Verankerungen + Entscheidungsbasis.
Co-Authored-By: Claude <noreply@anthropic.com>
Commit 6624e07 hat den Step-05-Status-Sync (sprint-status.yaml 3-13 → done,
wiki/log.md Story-3.13-Eintrag, epic-3-context.md Ist-Nachführung,
deferred-work.md append) ausgeführt, aber das Spec-Frontmatter selbst vergessen
(status blieb 'in-progress'). Der Nachzieher flippt es gemäß Präzedenz der
abgeschlossenen Epik-3-Stories (3.4/3.8/3.11/3.12 → status: 'done') auf done;
epic-3 bleibt in-progress bis zur Epic-3-Retrospektive (AC-9).
Überspringt das Zwischenstadium 'in-review' (kein Review-Start per Step-04 mehr
nötig — Review-Loop war bereits in 6624e07 abgeschlossen; der ungetrackte
in-review-Halbzustand war der Auslöser des G-8-Porcelain-HARD-FAIL beim
Gate-Re-Run).
G-8-Nachbedingung wiederhergestellt: git status --porcelain leer nach diesem
Commit.
Co-Authored-By: Claude <noreply@anthropic.com>