| 1 | # Review brief: region HA spec 1 (box placement), round 5 |
| 2 | |
| 3 | You are an independent second reader. Review |
| 4 | `docs/superpowers/specs/2026-10-04-region-ha-box-placement-design.md` at |
| 5 | the commit named in the prompt, in the repository at the working |
| 6 | directory (Go; carlos platform). |
| 7 | |
| 8 | ## Fixed: do not re-argue |
| 9 | |
| 10 | §0's rulings H1 to H6 are Paul's and are fixed, as are the standing |
| 11 | rulings listed under them. Report only mechanisms that fail to honour |
| 12 | them, are unsafe, or are missing. |
| 13 | |
| 14 | ## What the spec builds on |
| 15 | |
| 16 | - Host lifecycle claim rev 6.3: file |
| 17 | `/home/paulca/amadan.net/carlos/platform/.claude/worktrees/replica-ownership/docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md` |
| 18 | - Move-any-app rev 7.6 (uncommitted draft in the moves worktree below; rev 7.5 is cdc98845): file |
| 19 | `/home/paulca/amadan.net/carlos/platform-moves-design/docs/superpowers/specs/2026-10-02-move-any-app-design.md` |
| 20 | - Nearest-region, on main: `docs/superpowers/specs/2026-10-01-nearest-region-default-design.md` |
| 21 | and `internal/console/regioncandidates.go`. |
| 22 | |
| 23 | Those specs are still in review themselves. Where spec 1 relies on them, |
| 24 | check it relies on what they actually say; §9 lists the changes it asks |
| 25 | of them. |
| 26 | |
| 27 | ## Focus |
| 28 | |
| 29 | 1. **One writer.** Can any sequence (create, relocation, termination, |
| 30 | a stale edges file, a stale warm copy, a placer that pauses, the |
| 31 | console's box dying, a partition from the control bucket) leave two |
| 32 | boxes running or writing one host, or a box serving a stale copy? |
| 33 | 2. **The termination fence (§5.9).** Is `terminated` from |
| 34 | DescribeInstances sufficient evidence? What about eventual |
| 35 | consistency of EC2 state, a box id that is a label not an instance |
| 36 | id, a box in another account or region, a forged edges file. |
| 37 | 3. **Files durability (§5.6).** Restore ordering, tombstones, |
| 38 | generation scoping, interaction with the moves archive, what a |
| 39 | `snapshot` app loses. |
| 40 | 4. **Reconcile and the edges (§5.3, §5.4).** The slow sweep, the stamp |
| 41 | rule, legacy files without stamps. |
| 42 | 5. **The K list (§9).** Is anything missing that the claim or moves |
| 43 | specs would need to change for multi-box regions? |
| 44 | 6. **Code citations.** Verify every `file:line` cited against the tree. |
| 45 | |
| 46 | A mechanism named, bounded and assigned to spec 2, 3 or 4 (§12) is |
| 47 | complete at this level; don't pull later specs' depth into this one. |
| 48 | |
| 49 | ## Output |
| 50 | |
| 51 | Findings ranked P1 (unsafe or blocks build), P2 (wrong or missing), P3 |
| 52 | (clarity). Each: section, the problem, a concrete failing sequence, and |
| 53 | a suggested fix. End with a verdict: ready for plan, or not ready. |
| 54 | |
| 55 | ## Round 5 |
| 56 | |
| 57 | This is rev 4.1, answering round 4 (`CODEX-FINDINGS-REGION-HA-4.md`). Give |
| 58 | a disposition table for A4-1 to A4-3 and the A3-2 and A2-7 residuals. |
| 59 | Then report only new findings that rev 4.1's changes introduce (the |
| 60 | reordered release sequence in §5.8, the multipart qualifier in §6), or |
| 61 | anything still unsafe. Don't re-raise anything a previous round marked |
| 62 | resolved unless rev 4.1 broke it. |
| 63 | |