Region HA plan 1b-next: Astra review brief, round 1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+57
−0
docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-1.md+57 −0
CI passed — run details
diff --git a/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-1.md b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-1.md| new file mode 100644 |
| index 000000000..e3b5ef308 |
| --- /dev/null |
| +++ b/docs/superpowers/plans/CODEX-PLAN-REGION-HA-1BN-BRIEF-1.md |
| @@ -0,0 +1,57 @@ |
| +# Review brief: region HA plan 1b-next, round 1 |
| + |
| +You are an independent second reader. Review the implementation plan |
| +`docs/superpowers/plans/2026-10-07-region-ha-1b-next-relocation.md` at the |
| +commit named in the prompt, against the tree at the working directory |
| +(Go, module github.com/carlosframework/platform, main at 3407d114, which |
| +holds claim Plans 1-8b and 5) and these authorities: |
| + |
| +- region HA spec `docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md` |
| + (rev 5.4 plus §24; rulings H1-H19 in §0; L1-L20 in §9, all accepted); |
| +- claim spec rev 6.30: `git show origin/design-replica-ownership:docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md`; |
| +- claim Plan 6b (not merged): `git show origin/design-replica-ownership:docs/superpowers/plans/2026-10-06-host-lifecycle-claim-6b-box-assembly.md`; |
| +- moves spec on origin/design-moves-any-region (rev 7.22); |
| +- contracts note `docs/superpowers/notes/2026-10-07-region-ha-contracts.md`. |
| + |
| +## Fixed: do not re-argue |
| + |
| +- Rulings H1-H19, Paul's approval of spec rev 5.4, and claim rev 6.30's |
| + adoption of L1-L20. |
| +- One implementation per concept, and main's wins: the termination fence is |
| + written only by `internal/hostfence.TerminationWorker`; the roster is read |
| + only through `internal/hostactors.Directory`. 1b-next must not add a |
| + second writer or reader. |
| +- The two-box joint model (L18) is a separate piece of work. This plan only |
| + gates the merge of relocation on it. Do not ask this plan to write it. |
| +- Tasks 8-10 are marked as gated on unmerged code (6b, moves Plan 2, claim |
| + Plan 5's app gate). They were not compiled. Review them against the |
| + interfaces those plans declare, not against main. |
| +- Everything stays dormant behind CARLOS_REGION_HA. |
| + |
| +## What to check |
| + |
| +1. Tasks 1-7 compile and their tests pass as written. They were dry-run on |
| + a clean 3407d114. A "would not compile" finding quotes the line and |
| + names exactly what is undefined. |
| +2. Each test pins what its name claims and fails with its mechanism removed. |
| +3. Correctness against the claim spec: the `relocating` transitions; the |
| + fence-consuming CASes; `released` coverage (L9); the L11 start guard; |
| + stop evidence (L10); drain versus failover release; R6 (no warm reuse of |
| + a local DB); prepared generations and AdmitWriter; executor choice (H4, |
| + with the SHA-256 tie-break recorded in the create intent); the §5.3 row |
| + cases; the pin object; `stuck` handling. |
| +4. Races: a crash or a lost response at every step of the worker and |
| + participants; two workers; a box terminated mid-relocation (nested |
| + failover); a stale edges file; a late PUT after termination. |
| +5. Dormancy: anything that changes behaviour with CARLOS_REGION_HA off, or |
| + on a one-box region. |
| +6. Task boundaries and the gated tasks' interface assumptions against 6b's |
| + and Plan 5's declared interfaces. |
| +7. The author's rulings (in the plan): accept each one, or say why it is wrong. |
| + |
| +## Output |
| + |
| +Findings ranked P1 (would not compile, a test fails, or unsafe), P2 (wrong |
| +or missing), P3 (clarity). Each gives the task and step, the problem, the |
| +evidence (file:line, or the plan's own line), and a concrete fix. End with a |
| +verdict: ready to build, or not ready. |