spec: host lifecycle claim rev 6.25, the moves spec's rev 7.17 notes
A delete parks only the deleted location (plus moves/<host>), never the whole host prefix; a created incarnation's first admission declares nothing.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
1 file changed,
+14
−4
docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md+14 −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 f0d9c6a90..a7ca54c6b 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-06, **rev 6.24**. Joint rounds 6 and 7 judged the claim ready for primitive planning. Rev |
| +Design, 2026-10-06, **rev 6.25**. 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 rewrote §6.4a |
| around writer sessions, for joint round 8. Rev 6.10 answers joint round 10 |
| @@ -23,7 +23,9 @@ Rev 6.23 answers joint round 15 (R15-1): the park scope's staging |
| paths, and evidence_at as the original bound for every scope; it also |
| states the rev 7.14 sweep notes (joining, the horizon). Rev 6.24 answers |
| joint round 16 (R16-1 scope namespaces, R16-3 the legacy loss identity) |
| -and states the narrowed born-covered rule. Rev 6.9 answered |
| +and states the narrowed born-covered rule. Rev 6.25 answers the moves |
| +spec's rev 7.17 notes (a delete's parks are scoped; a create's first |
| +admission declares nothing). Rev 6.9 answered |
| joint round 9 |
| (R9-1 to R9-4) and takes **Paul's ruling R6 (2026-10-04): a box never |
| reuses its local database. Every writer start restores from the |
| @@ -539,7 +541,12 @@ site now uses: |
| replayable: a record that is already absent, or one whose ETag doesn't |
| match, is checked again under C6. |
| 3. **CAS** `parking`, writing the obligations: |
| - - `park-replica` for each region in `touched.regions`; |
| + - `park-replica` for each region in `touched.regions`, **scoped to the |
| + deleted location** (`holder.location`: the incarnation location, or |
| + the legacy `instances/<host>`, which excludes child incarnations), |
| + plus one scoped to `moves/<host>` for staging; never the whole host |
| + prefix. An older incarnation's residue is the at-rest sweep's (R3-4, |
| + moves 7.17 note 1); |
| - `park-local` for each box in `touched.boxes`; |
| - if `touched.complete` is false: **every** region and **every** box |
| of the deployment, taken from the fleet inventory (J-N5). |
| @@ -1603,7 +1610,10 @@ reached, and where their wording differs, this text wins. |
| `@root`): an adopted host's pre-claim writer, whose box `Adopt` |
| records as `holder.writer_box`. It is valid in both fields, exactly |
| like any other declaration; every other declaration has session `> 0` |
| - and a non-empty generation. Box is always non-empty; the caller supplies |
| + and a non-empty generation. Box is always non-empty, so a created |
| + incarnation's first admission, whose predecessor has no writer |
| + (`writer_box` `""`), declares nothing: nothing was acknowledged |
| + (moves 7.17 note 2). The caller supplies |
| the list, the library records it in the admitting CAS. **Alerts:** |
| the admitting box raises one alert per declaration after the CAS |
| succeeds, and retries until delivered; the console's durable loss |