carlos / platform Public

spec: host lifecycle claim rev 6.16, box references are opaque unique identifiers (#212)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 1915bac22b59b414a8c05000e1ca78aabf218004 parent 85aa53f
1 file changed, +12 −2
  • docs/superpowers/specs/2026-10-02-host-lifecycle-claim-design.md +12 −2

CI cancelled — superseded by a newer push — 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 e157496e9..30b6584af 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.15**. Joint rounds 6 and 7 judged the claim ready for primitive planning. Rev
+Design, 2026-10-05, **rev 6.16**. 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
@@ -10,7 +10,8 @@ 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.15 adds the
persisted park scope and the holderless sweep (§2, §6.2a), found while
-planning the park engine. Rev 6.9 answered
+planning the park engine. Rev 6.16 states what a box reference is
+(amadan #212). 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
@@ -234,6 +235,15 @@ Field rules:
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).
+- **Box references** (`op.exec`, `op.participants`, `holder.writer_box`,
+ admissions' `box`, `writes_lost.box`, `inventory` keys, `lost`,
+ `box:<b>` owners, execution-lease keys) are **opaque identifiers
+ compared by exact equality**. The claim never parses them. Each must
+ name exactly one machine: two machines presenting one reference would
+ be one box to the claim and defeat the `op.exec == box` check. How a
+ box obtains a unique reference, and refuses claim work when it cannot
+ prove uniqueness, is the box-identity design's (amadan #212); until
+ that lands, deployments must not let two boxes share a label.
- **`retired_incarnations`** keeps the most recent 32 incarnations that
held this host. A create whose incarnation appears there is refused
(R3-12).