carlos / platform Public

Region HA plan 1b-next: Astra round 14 findings (1 resolved, 1 partly, 3 new P2), unedited

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 4f300747ed21bb48fcdde79ef4063ca75e2c8a89 parent d0da2fd
1 file changed, +56 −0
  • docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R14.md +56 −0
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R14.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R14.md
new file mode 100644
index 000000000..bc107da46
--- /dev/null
+++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-R14.md
@@ -0,0 +1,56 @@
+Reviewed `d0da2fd7`.
+
+| Round 13 finding | Disposition | Assessment |
+|---|---|---|
+| Transient lease failure permanently stalls relocation | Resolved | `live` joins the lost controller, retries cleanup and permits a fresh controller without restarting the agent. |
+| Generic `ErrState` discards cleanup retry state | **Partly** | [`recordIsMine`, line 9684](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:9684) accepts parseable records missing enrollment or incarnation, then classifies them as another binding. Hostexec rejects those records, but `finish` forgets their participation. Use hostexec’s validated reader and test missing identity fields, restart, repair and cleanup retry. |
+
+1. **P2 — Tasks 1/5: the source manifest’s sequence is incorrectly required for P’s prepared manifest.**
+
+ [`ToInstalled`, line 2164](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:2164) requires P’s files sequence to equal the source pin’s. `CopyPinnedManifest` preserves the source sequence.
+
+ Claim rev 6.30 §C3 and moves rev 7.22 §7.6 instead require a create-only prepared manifest at **sequence 0**, bound to the location, P, operation and installation stamp. Its first admitted publisher starts at sequence 1. For a source at sequence 7, the proposed transition rejects a conforming prepared manifest at sequence 0.
+
+ **Fix:** separate source revision provenance from the prepared manifest’s identity and sequence. Assign the prepared-baseline integration explicitly, including exact-version consumption. Test source sequence 7 → prepared sequence 0 → first session publication 1.
+
+2. **P2 — Task 7, Step 4: the lifecycle property cannot exercise recovery after a recorded local installation. Stage B lacks that recovery contract.**
+
+ The property’s [claim transitions, lines 9084–9104](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:9084) only start and complete operations; it never reaches installation or probing.
+
+ The missing sequence matters: local installation is journaled → lease is lost → scoped cleanup retires unopened P’s local installation → controller recovers. The claim still contains `local_install`, so [`Participant.Step`, line 7400](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:7400) skips installation and enters probing. No Stage B obligation reconciles that receipt with the retired files, environment and timers.
+
+ **Fix:** require verification and recovery before first admission: preserve a verified complete installation or restore it under `install_stamp` while P remains unopened. Extend the property with this sequence and stateful installation effects. Name a production integration test, plus the counterpart proving an already-opened P is never reinstalled.
+
+3. **P2 — Task 8c / R1: ordinary source wakes have no integration contract.**
+
+ [R1, line 250](/home/paulca/amadan.net/carlos/platform/.claude/worktrees/region-ha-1b-next/docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md:250) assigns runtime dispatch only for target probes. Claim §4 and Stage A permit source admissions during `starting` and `releasing`, but 6b’s `runtime.Prerequisites` rejects every non-serving claim (upstream plan lines 14396–14398).
+
+ Implementing R1 as written therefore leaves a sleeping or crashed source unable to wake during those permitted phases.
+
+ **Fix:** extend R1 and the Stage B checklist with source cold-admission dispatch. Test successful source wakes in both phases, refusal after admission-fence closure or authority loss, and continued refusal of ordinary target wakes.
+
+I accept rulings 1–24 as decisions. Ruling 13’s assertion that the installation already satisfies moves rev 7.22 needs correction under finding 1.
+
+All 12 embedded patches pass `git apply --check`; all 42 complete Go blocks parse with `gofmt`. Compilation and tests were not reproduced in this read-only session.
+
+---
+
+**FIRST PROMPT:**
+“Follow the review brief docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-14.md. Review the plan at commit d0da2fd7.”
+
+**WHAT:**
+Review Stage A readiness and Stage B contracts.
+
+**STATUS:**
+Three new P2 findings; round 13 finding 2 remains partly unresolved.
+
+**NEEDED:**
+Nothing.
+
+**RECOMMENDED:**
+Fix the findings and extend the lifecycle tests before building.
+
+**SESSION:**
+Safe to close — no files changed or processes left running.
+
+**Verdict: not ready.**
\ No newline at end of file