feat: Story 3.8 Review-Loop-3-Abschluss (bmad-code-review Re-Run, 4 Layer; kein Loopback)
Triage: 4 decision-needed / 13 patch / 6 defer / 7 dismissed (u. a. Blind-Hunter "alle Sandbox-SRO-Anker stale" widerlegt — alle 6 exakt vor den Loop-3-Edits). Entscheidungen D-1..D-4 (alle Option 1): D-1 Schliessungs-Bullet macht den "Bekannte Determinismus-Luecke"-Alt-Bullet superseded (append-only-Hinweis, kein Umbruch); D-2 Story-Status-Flip auf done (Change-Proposal-Sequenzierung betrafft das Epic-3-Abnahmegate 3.13, nicht die 3.8-Verankerung); D-3 autorisierte Neu-Verhandlung in geringfuegischem Umfang (Typo "documenthuman" -> "document-human", Spec Re-Open-Delta-Zeile); D-4 Hold-Home = Story 3.10 (Epic 3), Korrektur-/Erweiterungs-Klassifikation = Epic-4-Interface/Story 4.1 (S5.10 Pkt. 8 praezisiert). Patches P-1..P-13: SRO-/Code-Map-Anker auf IST-Zeilen (compiler.md 375/376/377/477, Code Map 365-377/424ff/445/477, Sandbox 245/265/442/275/447/531); symmetrische Term-/Body-Normalisierung (S3.2 Pkt. 2a + match_stufe_a, kein host-abhaengiges -i); Receipt-Hashvergleich als re-executierbare Zwei-Run-Formel (S5.14 Pkt. 2); Sandbox-Fresh-Kontext-Restluecke benannt (mechanisch simuliert; Nachweis = 3.13-Abnahmegate); Manifest generated_by wird konsumiert; at-Ausnahme hart assertiert (Wiederholungs-Schleife bei Sekundenkollision, HARD-FAIL statt stiller PASS); "voellig pinbar"/"keine offene Frage" ge scopet (Umlaut-Defer + 3.9-ACs bewusst offen); epics.md AC-2 AD-16-Kopplung nachgefuehrt; review_loop_iteration 0 -> 2; epic-3-context.md 3.9/3.11/3.12-Entscheidungen als Zielzustand markiert; AD-17-Enum verifiziert (kein Edit noetig); Review-Loop-3-Change-Log-Eintrag. Sandbox re-executiert: DET-1..DET-8 harte PASS, Exit 0; at-Ausnahme aktiv (assertiert, real unterschiedliche Wanduhr-at-Werte); Witness nicht-vakuum. Spec status: done, review_loop_iteration: 2; sprint-status 3-8 -> done (Sequenzierungs-Hinweis: 3.9-3.12-Verankerungen + 3.13-Abnahme bleiben offen); wiki/log.md Loop-3-Abschluss-Bullet; deferred-work.md 6 neue Defers. AD-3 gewahrt: validator.md/wiki-compiler.md/adapters/raw/ unveraendert. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -544,3 +544,12 @@ Noch nicht adressierte, aber real erkannte Arbeit — gesammelt aus Reviews. Ein
|
||||
- Umsetzung: Der Em-Dash-Anteil beider Einträge ist in `schema/compiler.md` §3.2 Pkt. 1b / §5.14 Pkt. 5 geschlossen (Em-Dash in der Kollaps-Klasse `[-–— _]` → `-`). Der Umlaut-vs-Transkription-Anteil bleibt offen: die §3.2-Normalisierung (lowercasing + Kollaps-Klasse) deckt Umlaut-Divergenzen („Schlüssel" vs. „Schluessel") weiterhin nicht ab — kein neuer Normalisierungs-Schritt in Story 3.8 (kein neuer Regel-Operand, D-3/append-only).
|
||||
- Sandbox-Nachweis: DET-5 (Em-Dash-Anteil) — Exit 0.
|
||||
- status: teilweise aufgegriffen (Em-Dash-Anteil geschlossen in §3.2 Pkt. 1b / §5.14 Pkt. 5; Umlaut-vs-Transkription-Divergenz bleibt offen — Home: Sandbox-Vereinheitlichung oder folgende Compiler-Instruktions-Revision; kein Instruktions-Defekt)
|
||||
|
||||
## Deferred from: code review of spec-3-8-determinismus-vertrag-ad-17h-als-agent-instruktions-validato (2026-08-20)
|
||||
|
||||
- **Sandbox-Härtungs-Guards (8 Befunde):** `mktemp` (Z. 37), `git init` (Z. 41), Baseline-Commit (Z. 94-96), `isolate()`-Sequenz (Z. 104-107), fehlende Match-Datei (Z. 136-141), verwaiste unregistrierte Worktree-Verzeichnisse (Z. 243-244) und Porcelain-Pfade mit Leerzeichen (`awk '{print $2}'`, Z. 217/682) tragen keine Fehler-Guards; ein Fehlgeschlagener init-Schritt lässt einen späteren „PASS" auf kaputtem Zustand drucken. — Defer-Grund: Testharness-Robustheit, keine normative Instruktion-Semantik; Re-Run-Risiko dokumentiert. Home: nächste Sandbox-Revision. — status: offen
|
||||
- **DET-1/DET-2-Plan-/Form-Literale vs. AC-5 „nicht hart codiert":** `plan=$(printf 'cand=alpha;form=update;baseline=%s')` (run-sandbox.sh:189) und `echo "form=update"` in `bs_a()` (Z. 221) sind wörtliche Skript-Konstanten; B1==B2-Identität damit trivial. — Defer-Grund: Loop-1-/Loop-2-Präzedenz (Loop-1 hat „DET-2-Plan-Literal (dev-demo, echte Content-Hashes decken)" rejected; DET-1 trägt den Demo-Kommentar Z. 211-214); die Nicht-Vakuum-Assertion tragen die echten Content-Hashes. Home: Story-3.13-Abnahme (echte Gate-Runs über die Instruktion). — status: offen
|
||||
- **`norm()`-Locale-Pinning (`LC_ALL`) fehlt:** unter C/POSIX-Locale zerfällt die Byte-Klasse `[–—]` in {E2,80,93,94} (übermatcht z. B. `…`/`„`), `tr 'A-Z' 'a-z'` ist locale-abhängig → die Kanon-Form hängt am Host-Locale statt am committeten Git-State. — Defer-Grund: Testharness-Host-Locale-Abhängigkeit (Host = Ubuntu-Sandbox, dort UTF-8-Default; auf C-Locale-Hosts falsch), keine normative Semantik der Instruktion. Home: Sandbox-Härtung (gemeinsam mit den Hards-Guards). — status: offen
|
||||
- **Mehrfach-Term-Vereinigung unübend:** §3.2 Pkt. 1c/§5.14 Pkt. 5 pinnen die Vereinigung der Treffer über alle Terme (besuchte Menge, Zuwachs-Sicht-Ordnung) als „vollständig pinbar" — die Sandbox übt nur den Einzel-Term-Pfad; eine Regressions in Union-/Dedup-/visited-Set-Logik würde unbemerkt durchgehen. — Defer-Grund: Story-3.8-Scope (Bestätigungs-Mechanik + Lückenschließung) ist erfüllt; ausführbare Union-Coverage gehört zur deterministischen Term-Gewinnung/Routing. Home: Story 3.9. — status: offen
|
||||
- **Orphan-Term hand-gesteuert + feste 2-Datei-Scan:** DET-8 pinnen den Term `fremdes` und scannen nur `wiki/alpha.md wiki/gamma.md` (run-sandbox.sh:669); die Determinismus der Orphan-ermittlung (Term-Ableitung aus dem `raw/`-Zuwachs, voller Kandidaten-Scan über Stufen a/b/c) ist nicht ausgeübt — nur die Log-Seite wird hart assertiert. — Defer-Grund: Mechanik ist textuell korrekt (DET-8-Assertions Z. 688-692 solide); Term-Derivation ist Story-3.9-AC („geschlossener, geordneter Algorithmus oder persistiertes Term-Manifest"). Home: Story 3.9. — status: offen
|
||||
- **Umlaut-vs-Transkription im Match-Pfad unübend:** die §3.2-Normalisierung deckt Umlaut-Divergenzen („Schlüssel" vs. „Schluessel") nicht ab, und kein DET-Szenario treibt einen Umlaut-Term durch den Match-Pfad. — Defer-Grund: bereits „Aufgegriffen (teilweise)" dokumentiert (Block oben, Home: Sandbox-Vereinheitlichung oder folgende Compiler-Instruktions-Revision; „kein Instruktions-Defekt") — keine neue offene Frage, nur fehlende Sandbox-Abdeckung. Home: wie dort. — status: offen
|
||||
|
||||
Reference in New Issue
Block a user