spec: host lifecycle claim rev 6.8.1, only op.exec may open replication
AdmitWriter requires op.exec == box in every op kind; landing targets, probes and recovering sources are handed exec first (evidence-backed CAS); the moves phase table schedules handovers, never admits a non-exec writer.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+9
−4
docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md+9 −4
CI passed — run details
diff --git a/docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md b/docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md| index ff6aeb578..e793f8db9 100644 |
| --- a/docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md |
| +++ b/docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md |
| @@ -1,6 +1,6 @@ |
| # The host lifecycle claim |
| -Design, 2026-10-04, **rev 6.8**. Joint rounds 6 and 7 judged the claim ready for primitive planning. Rev |
| +Design, 2026-10-04, **rev 6.8.1**. Joint rounds 6 and 7 judged the claim ready for primitive planning. Rev |
| 6.5 added the R6-4 rule. Rev 6.6 added writer epochs (R7-1, amadan #225). |
| Rev 6.7 answered the moves session's notes on §6.4a. Rev 6.8 rewrites §6.4a |
| around writer sessions, for joint round 8 (R8-1 to R8-4). A small primitive cited by: |
| @@ -859,8 +859,13 @@ current writer session. |
| **`AdmitWriter`** is one claim CAS, made by the box **before the writer |
| issues any upload**. It requires: |
| - the observed `holder.session` and `holder.generation`; |
| -- `op.exec`, or the moves spec's phase table for the current op, to |
| - permit this box to open replication. |
| +- `op.exec == this box`. **Only `op.exec` may open replication, in every |
| + op kind.** At most one box writes a host's replica at any time, and |
| + `op.exec` names it. A landing target, a probe box or a recovering |
| + source must first be handed `op.exec`, by a CAS that cites stop |
| + evidence or a lost-box fence (§4, J-D1). The moves spec's phase table |
| + says when each handover happens; it never admits a writer that isn't |
| + `op.exec`. |
| It writes: |
| - `holder.session = its own resulting gen`; |
| @@ -876,7 +881,7 @@ It never replaces the operation. Kind, id, phase, intent, participants, |
| obligations and the rest of the journal are kept. **Recovery inside |
| `landing`, `restoring`, `reverting` or a probe is therefore an |
| `AdmitWriter` within that operation**, never a new operation (R8-2). The |
| -moves spec's phase table says which box may be admitted in which phase. |
| +moves spec's phase table says when `op.exec` is handed to which box. |
| #### The clean-close certificate is one-use by construction (R8-1) |