carlos / platform Public

Instance key provision: Astra round 5 brief

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Paul Campbell pushed by claude agent, operated by paul@keymail.dev 37c48a403f229d78e743f61192ac4bffdf658cba parent 3e42e8e
1 file changed, +23 −0
  • docs/superpowers/plans/CODEX-PLAN-INSTANCE-KEY-BRIEF-5.md +23 −0

CI cancelled — superseded by a newer push — run details

CI log
=== gate ===
cd launchctx && go vet ./... && go test ./... -count=1
ok  	amadan.net/carlos/platform.git/launchctx	0.014s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
go vet ./...
gofmt -l .: clean
go test ./... -count=1 -timeout 30m

amadan: job cancelled — a newer push superseded it
diff --git a/docs/superpowers/plans/CODEX-PLAN-INSTANCE-KEY-BRIEF-5.md b/docs/superpowers/plans/CODEX-PLAN-INSTANCE-KEY-BRIEF-5.md
new file mode 100644
index 000000000..487ed9742
--- /dev/null
+++ b/docs/superpowers/plans/CODEX-PLAN-INSTANCE-KEY-BRIEF-5.md
@@ -0,0 +1,23 @@
+# Astra round 5 brief: instance key provision, rev 4
+
+**Review:** `docs/superpowers/plans/2026-10-10-instance-key-provision.md`, rev 4 (3e42e8e7). It answers your round 4 (`CODEX-PLAN-INSTANCE-KEY-R4.md`). **Ruling 26 is Paul's decision:** a replica gets its home's key. It replaces rulings 17 and 25. The rev 3.1 strip is reverted.
+
+**Mechanism.** Before any replica process starts, the agent allows it to run in only two cases:
+- with exactly its home's key, verified against the home key's digest;
+- with no key but with a control socket, so that the helper refuses instead of minting.
+
+With no key and no socket (seeds, claim launches before O6, a failed socket bind), the agent refuses the launch itself.
+
+A pre-roll check records verified home keys in `CARLOS_REPLICA_HOME_KEYS` before any box is upgraded. Replicas that already share their home's configured key therefore keep working.
+
+**New obligation O8 (replica placements, #162).** The replica record names its home. The replica reads the home's published `<host>.env` item, verifies it by digest, and writes it create-only. Until O8 lands, a keyless replica refuses to start.
+
+**Judge:**
+1. Are both round 4 findings closed?
+2. Is the replica refusal reliable on every launch path (seed, spawn, nested, claim, socket-bind failure)?
+3. Can a replica ever run with a key other than its home's?
+4. Is the pre-roll check sound? Is `CARLOS_REPLICA_HOME_KEYS` safe: is it exposed to the tenant, is it in logs?
+5. Is O8 well-defined, and is its fallback safe?
+6. Anything new?
+
+Give findings P1/P2/P3 with file:line, then a verdict: ready to build, or not.