diff --git a/_bmad-output/implementation-artifacts/spec-3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen.md b/_bmad-output/implementation-artifacts/spec-3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen.md index 14f322f..5b778f8 100644 --- a/_bmad-output/implementation-artifacts/spec-3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen.md +++ b/_bmad-output/implementation-artifacts/spec-3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen.md @@ -2,7 +2,7 @@ title: 'Story 3.12 — Lease-Lifecycle und Commit-Abschluss transaktional schließen' type: 'feature' created: '2026-08-21' -status: 'in-review' +status: 'done' baseline_commit: '80480af3ec910b6a00d10f4fe820131bbf79c6a5' review_loop_iteration: 0 context: @@ -108,22 +108,47 @@ Der Lifecycle ist der **geschlossene transaktionale Rahmen** der Koordinations-D ## Suggested Review Order -**Design-Intent (normative Instruktion)** +**Normative Verankerung (Einstieg)** -- Einstieg: die §5.18-Lifecycle-Sektion — Liveness/Ownership, Abort-/Protect-Zustandsmaschine, Baseline-Rollback Index+Worktree, durable Release + Clean-Input-Guard, kanonisches Log, Kill-Point-Tests (AC-1..7). -- Abgrenzungsklausel — Fugen-Identität §5.11/§5.12/§5.13/§5.17; Anschluss-Sutur §5.17-Pkt.-1-Z. 419 / Pkt.-6-Z. 424 („Lifecycle-Regie Story 3.12"). +- §5.18 als transaktionaler Lifecycle der Koordinations-Dimension; Pkt. 2 verlangt atomare Ownership-Prüfung (Anschluss an §5.17 Sutur). + [`compiler.md:426`](../../schema/compiler.md#L426) + +- Liveness/Ownership (AC-1), stale-Übernahme genau einmal mit CAS (AC-2), Durable Release + Clean-Input-Guard (AC-5). + [`compiler.md:430`](../../schema/compiler.md#L430) + +- Abort-/Protect-Zustandsmaschine (AC-3), Baseline-Rollback Index+Worktree (AC-4), kanonisches Log (AC-6), Kill-Point-Tests (AC-7). + [`compiler.md:432`](../../schema/compiler.md#L432) **Lifecycle-Mechanik (Sandbox)** -- Abort-/Protect-Zustandsmaschine (getrackt/ungetrackt; byte-identischer Restore) — abgeleitet aus sandbox-3-5-L4, gehärtet als Zustandsmaschine. -- Baseline-Rollback Index+Worktree + Kill-Point-Tests (vor Mutation/nach Mutation/vor Commit/nach Commit; Post-Rollback-Diff leer). -- Liveness/Ownership + stale-Übernahme genau einmal (Gen-Registry §5.12-Mechanik; ersetzte Holder-ID; genau eine aktive Root-Lease). -- Durable Release + Clean-Input-Guard (Lock per Ref-Delete; Worktree sauber; Folge-Run ohne INPUT_UNCOMMITTED-Abbruch). +- Atomarer Ownership-CAS im Takeover (Review-Patch Loop 1): der entscheidende Guard ist der Old-Value-Write `git update-ref `. + [`run-sandbox.sh:132`](./sandbox-3-12/run-sandbox.sh#L132) + +- Stale-Übernahme L-2: positiver Exactly-once-CAS plus negative atomare Abweisung (falscher Old-Value → kein Clobber, genau eine aktive Root-Lease, ersetzte Holder-ID benannt). + [`run-sandbox.sh:343`](./sandbox-3-12/run-sandbox.sh#L343) + +- Abort-/Protect-Zustandsmaschine L-3/L-4 (getrackt/ungetrackt, byte-identischer Restore) und Baseline-Rollback L-5/L-6 (Index+Worktree, Post-Rollback-Diff leer). + [`run-sandbox.sh:365`](./sandbox-3-12/run-sandbox.sh#L365) + +- Durable Release L-7 (Lock per Ref-Delete, Clean-Input-Guard des Folge-Runs) und Kill-Point-Tests L-9 (KP1–KP4). + [`run-sandbox.sh:416`](./sandbox-3-12/run-sandbox.sh#L416) + +- Kanonische Log-Grenze L-8 (nur vertragskonforme Fach-/Koordinationsereignisse; präzisierter Kategorie-Check PATCH 4d). + [`run-sandbox.sh:646`](./sandbox-3-12/run-sandbox.sh#L646) **Status- & Nachweissynchronisation (peripher)** -- Revisionsnachweis Story 3.12 in der Laufzeitakte (Verankerung, Sandbox, Abschlussklausel, Erhaltungs-Invariante). -- epic-3-context Z. 43 auf Ist-Zustand nachgeführt; Defer-Homes Story-3.12 in deferred-work.md markiert. +- Story-3.12-Eintrag im kanonischen Knowledge Log (Vertrag §5; Verankerung §5.18, Sandbox L-1..L-9). + [`log.md`](../../wiki/log.md#L1) + +- Transaktionaler Lifecycle-Zielzustand auf Ist-Zustand (§5.18) nachgeführt. + [`epic-3-context.md:43`](./epic-3-context.md#L43) + +- A-2-/I-O-Matrix-/Banner-Defers als aufgegriffen markiert; weiterreichende Defers (echte Zwei-Worktree-Übernahme → Story 3.13) benannt. + [`deferred-work.md:606`](./deferred-work.md#L606) + +- Key 3-12 auf `review` geflippt (finaler `done`-Flip nach konvergiertem Review-Loop). + [`sprint-status.yaml:65`](./sprint-status.yaml#L65) ### Review Findings diff --git a/_bmad-output/implementation-artifacts/sprint-status.yaml b/_bmad-output/implementation-artifacts/sprint-status.yaml index 4045c93..7b35938 100644 --- a/_bmad-output/implementation-artifacts/sprint-status.yaml +++ b/_bmad-output/implementation-artifacts/sprint-status.yaml @@ -29,7 +29,7 @@ # - Dev moves story to 'review', then runs code-review (fresh context, different LLM recommended) # - Retrospective appends its action items to action_items; the status view surfaces open ones generated: 08-14-2026 00:00 -last_updated: 08-21-2026 20:45 +last_updated: 08-21-2026 21:24 project: wow20 project_key: NOKEY tracking_system: file-system @@ -62,7 +62,7 @@ development_status: 3-9-deterministische-relevanz-und-reconcile-routing-schliessen: done # Review-Loop-3-Abschluss 2026-08-21 (bmad-code-review, 4 Layer; D-3.9-1/2/3 = 1/1/2 — empfohlene Optionen; kein Loopback). Hinweis: der finale `done`-Flip ist der Step-05-Status-Sync nach konvergiertem Review-Loop (Präzedenz Story 3.7/3.8); die Epic-3-Abnahme (3.13) bleibt offen (epic-3 remains in-progress). 3-10-inkrementelle-update-und-synthese-erhaltung-absichern: done # Story 3.10 Abschluss 2026-08-21 (bmad-code-review, 3 Layer; Patch-Kaskade, keine intent_gap/bad_spec — Sandbox E-1..E-9 nach Härtung 9/9 harte PASS/Exit 0, §5.16 Rev 3.5). Hinweis: die Epic-3-Abnahme (3.13) bleibt offen (epic-3 remains in-progress). 3-11-root-scope-leasing-atomar-akquirieren: done # Story 3.11 Review-Loop-1-Abschluss 2026-08-21 (bmad-code-review, 4 Layer; D-3.11-1 „Konstruktiv + härten", D-3.11-2 „Intentionalen Mutationsversuch bauen"; 20 Patches angewendet — A-2-Sampler wirksam, A-4 Worktree-Beobachtung, A-7 MERGE_OK hart abgewiesen + Post-Merge-State + Baseline im Hold-Eintrag, §5.17 Pkt. 1/4/5-Berichtigungen; Sandbox A-1..A-8 8/8 harte PASS/Exit 0 re-executiert). Hinweis: der finale `done`-Flip ist der Step-05-Status-Sync nach konvergiertem Review-Loop (Präzedenz Story 3.7/3.8/3.9); die Epic-3-Abnahme (3.13) bleibt offen (epic-3 remains in-progress). - 3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen: review # Story 3.12 Implementierung 2026-08-21 (§5.18 Revision 3.7, Sandbox L-1..L-9 9/9 harte PASS/Exit 0). Hinweis: der finale `done`-Flip ist der Step-05-Status-Sync nach konvergiertem Review-Loop (Präzedenz Story 3.7/3.8/3.9/3.10/3.11); die Epic-3-Abnahme (3.13) bleibt offen (epic-3 remains in-progress). + 3-12-lease-lifecycle-und-commit-abschluss-transaktional-schliessen: review # Story 3.12 Abschluss 2026-08-21 (bmad-code-review, 4 Layer; Review-Loop-1 konvergiert: atomarer Ownership-CAS im Takeover, AK-2->AC-2, L-2-Negativ-CAS, Sandbox-Härtung; §5.18 Revision 3.7, Sandbox L-1..L-9 9/9 harte PASS/Exit 0 re-executiert). Hinweis: der finale `done`-Flip ist der Step-05-Status-Sync nach konvergiertem Review-Loop (Präzedenz Story 3.7/3.8/3.9/3.10/3.11); die Epic-3-Abnahme (3.13) bleibt offen (epic-3 remains in-progress). 3-13-epic-3-verifikations-und-abnahmegate: backlog epic-3-retrospective: optional