carlos / platform Public

spec: host lifecycle claim rev 6.15, park scope and the holderless sweep

Remote chores may persist {location, incarnation, evidence_at,
request_limit_ns} so retries keep the original evidence time; a free
host's at-rest sweep runs as a holderless parking op (intent
park_sweep v1) with only scoped remote chores. Found planning Plan 4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev fd07437a96ae4217713d9523e2ef9e933258e59d parent 3e4b7d5
1 file changed, +23 −4
  • docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md +23 −4
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 b9d317f12..e157496e9 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-05, **rev 6.14**. Joint rounds 6 and 7 judged the claim ready for primitive planning. Rev
+Design, 2026-10-05, **rev 6.15**. 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
@@ -8,7 +8,9 @@ around writer sessions, for joint round 8. Rev 6.10 answers joint round 10
notes. Rev 6.12 answers joint round 11 (R11-2 to R11-5). Rev 6.13
answers the moves spec's rev 7.12 notes (coverage is per region). Rev
6.14 answers joint round 12 (R12-4, R12-6): §6.4a now has one operative
-rule set, and the readings sections are history. Rev 6.9 answered
+rule set, and the readings sections are history. Rev 6.15 adds the
+persisted park scope and the holderless sweep (§2, §6.2a), found while
+planning the park engine. 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
@@ -220,7 +222,15 @@ Field rules:
(one dead generation `{region, generation}` within a live location,
R9-3). Each names its operation, its
retirement event (§6.2) and the actor that must do it. All of them
- block `free`. Each operation also defines which of them block its own
+ block `free`. A remote chore (`park-replica`, `park-generation`) may
+ carry a **`park` scope**, `{location, incarnation, evidence_at,
+ request_limit_ns}`, persisted when the chore is queued so every retry
+ uses the same location, archive incarnation and **original** evidence
+ time (§6.2a: a retry's own clock is never evidence). `location` is
+ `instances/<host>` or `instances/<host>/<incarnation>`;
+ `request_limit_ns` is the positive bound on the platform's longest
+ request that `H` adds to the signature age. A chore without a scope is
+ bound to one before its first step runs. Each operation also defines which of them block its own
release to `serving`. A release keeps any obligation owned by other
lifecycle work (J-D8).
- **`lost`** is the quarantine list for declared-lost boxes (§7).
@@ -692,7 +702,16 @@ So the sweep lists:
`holder.generation` (the moves spec's dead generations).
Anything found is parked as a further retirement event (§6.2), under a
-new obligation the sweeping box owns.
+new obligation the sweeping box owns, with a `park` scope (§2). On a
+`serving` host the chore's op is `session:<holder.session>`, as for
+`PublishGeneration`. **On a free host** (no holder) the sweep starts a
+**holderless sweep**: one CAS sets `op = {kind: parking, id: <new op
+id>, intent: {park_sweep: "v1"}}` with no `exec` and no holder, and
+queues only scoped remote chores owned by that op. It is the only
+holderless claim that may carry obligations, so it blocks `free`'s
+successor create while it runs; its last acknowledgement frees the claim
+again in the same CAS (`FreeAfterPark`), keeping `quiet_after`. Any
+other operation running suppresses new sweeps.
A freed host's location never keeps late residue for good.