carlos / platform Public

census: design-fleet-internal-engines ruled (census-ruling-design-fleet-internal-engines, #280)

Paul, as census owner, ruled on #280 (2026-10-21): accepted as
proposed. The overlay rows now carry
rev3=census-ruling-design-fleet-internal-engines in place of the
PROPOSED token; the frozen fingerprint for
internal/sim/engines/mutate.sh is recomputed (4f5ed448), and the seal
moves from 33a8ff46 to ca73eb76 (was d8290d2c under the proposal). The
loader comment, the overlay header and the proposal note record the
ruling.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
claude agent, operated by paul@keymail.dev 10054db0919dcea7f484b06c67335c4ecdb0ed09 parent 26e3c73
3 files changed, +11 −10
  • docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md +3 −3
  • internal/provision/plan14_root_reads_test.go +5 −4
  • internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv +3 −3

CI failed — run details

CI log
=== gate ===
.amadan/test-gate.sh
=== launchctx (1 s)
ok  	amadan.net/carlos/platform.git/launchctx	0.015s
?   	amadan.net/carlos/platform.git/launchctx/controlname	[no test files]
?   	amadan.net/carlos/platform.git/launchctx/wireid	[no test files]
=== vet (2 s)
=== gofmt (1 s)
gofmt needed:
internal/provision/plan14_root_reads_test.go
=== rest (142 s)
?   	github.com/carlosframework/platform/cmd/changelog	[no test files]
ok  	github.com/carlosframework/platform/cmd/console	3.890s
ok  	github.com/carlosframework/platform/cmd/moveprobe	11.912s
ok  	github.com/carlosframework/platform/cmd/zddprobe	0.729s
ok  	github.com/carlosframework/platform/internal/activator	60.376s
ok  	github.com/carlosframework/platform/internal/agentsock	0.029s
ok  	github.com/carlosframework/platform/internal/alerting	0.007s
ok  	github.com/carlosframework/platform/internal/analytics	0.036s
ok  	github.com/carlosframework/platform/internal/appconfig	2.992s
ok  	github.com/carlosframework/platform/internal/apperr	0.163s
ok  	github.com/carlosframework/platform/internal/applog	0.192s
ok  	github.com/carlosframework/platform/internal/awsinv	0.011s
ok  	github.com/carlosframework/platform/internal/boxchoice	0.004s
ok  	github.com/carlosframework/platform/internal/boxid	0.679s
?   	github.com/carlosframework/platform/internal/boxid/boxidtest	[no test files]
?   	github.com/carlosframework/platform/internal/boxid/internal/signtest	[no test files]
ok  	github.com/carlosframework/platform/internal/boxvolumes	0.011s
ok  	github.com/carlosframework/platform/internal/caps	0.016s
ok  	github.com/carlosframework/platform/internal/certwarm	0.005s
ok  	github.com/carlosframework/platform/internal/cgroup	0.811s
ok  	github.com/carlosframework/platform/internal/changelog	0.564s
ok  	github.com/carlosframework/platform/internal/claimactivation	1.423s
ok  	github.com/carlosframework/platform/internal/clamd	0.055s
?   	github.com/carlosframework/platform/internal/cliflag	[no test files]
?   	github.com/carlosframework/platform/internal/controlname	[no test files]
?   	github.com/carlosframework/platform/internal/controlsock	[no test files]
ok  	github.com/carlosframework/platform/internal/dbdoor	5.759s
ok  	github.com/carlosframework/platform/internal/dbdoor/dbdoortest	0.012s
ok  	github.com/carlosframework/platform/internal/dbverify	0.007s
ok  	github.com/carlosframework/platform/internal/dnsrec	0.003s
ok  	github.com/carlosframework/platform/internal/docsite	0.016s
ok  	github.com/carlosframework/platform/internal/domains	2.989s
ok  	github.com/carlosframework/platform/internal/doorkey	0.012s
ok  	github.com/carlosframework/platform/internal/economics	0.005s
ok  	github.com/carlosframework/platform/internal/edge	45.418s
?   	github.com/carlosframework/platform/internal/edgeproof	[no test files]
ok  	github.com/carlosframework/platform/internal/edgesfile	0.015s
ok  	github.com/carlosframework/platform/internal/fleetapi	0.194s
ok  	github.com/carlosframework/platform/internal/gate	1.804s
ok  	github.com/carlosframework/platform/internal/genselect	0.041s
ok  	github.com/carlosframework/platform/internal/geo	0.025s
ok  	github.com/carlosframework/platform/internal/geoip	0.059s
ok  	github.com/carlosframework/platform/internal/historyreadback	0.275s
ok  	github.com/carlosframework/platform/internal/host	138.867s
ok  	github.com/carlosframework/platform/internal/hostactors	6.375s
ok  	github.com/carlosframework/platform/internal/hostactors/awsmembership	0.008s
ok  	github.com/carlosframework/platform/internal/hostbox	3.326s
ok  	github.com/carlosframework/platform/internal/hostclaim	0.889s
ok  	github.com/carlosframework/platform/internal/hostenv	0.011s
ok  	github.com/carlosframework/platform/internal/hostevidence	0.015s
ok  	github.com/carlosframework/platform/internal/hostexec	5.780s
ok  	github.com/carlosframework/platform/internal/hostfence	0.053s
ok  	github.com/carlosframework/platform/internal/hostfiles	10.343s
ok  	github.com/carlosframework/platform/internal/hostfloor	0.034s
ok  	github.com/carlosframework/platform/internal/hostguard	1.097s
ok  	github.com/carlosframework/platform/internal/hostops	2.288s
?   	github.com/carlosframework/platform/internal/hostops/fencerelease	[no test files]
ok  	github.com/carlosframework/platform/internal/hostops/internal/fencerelease	0.006s
ok  	github.com/carlosframework/platform/internal/hostquarantine	0.005s
ok  	github.com/carlosframework/platform/internal/hostrelocate	0.770s
ok  	github.com/carlosframework/platform/internal/hostresolve	0.274s
ok  	github.com/carlosframework/platform/internal/hostwrite	0.012s
ok  	github.com/carlosframework/platform/internal/infraview	0.009s
ok  	github.com/carlosframework/platform/internal/instancectl	5.262s
ok  	github.com/carlosframework/platform/internal/instanceexec	2.924s
ok  	github.com/carlosframework/platform/internal/instancefs	0.021s
ok  	github.com/carlosframework/platform/internal/instancekey	0.006s
ok  	github.com/carlosframework/platform/internal/instanceupdates	0.015s
ok  	github.com/carlosframework/platform/internal/layout	1.877s
ok  	github.com/carlosframework/platform/internal/lbhealth	0.004s
ok  	github.com/carlosframework/platform/internal/lease	10.132s
ok  	github.com/carlosframework/platform/internal/lease/leasetest	0.717s
ok  	github.com/carlosframework/platform/internal/ledger	0.030s
ok  	github.com/carlosframework/platform/internal/mail	0.369s
ok  	github.com/carlosframework/platform/internal/maintenance	0.094s
ok  	github.com/carlosframework/platform/internal/maintenanceexec	5.597s
ok  	github.com/carlosframework/platform/internal/maintenanceguard	0.153s
ok  	github.com/carlosframework/platform/internal/metrics	0.005s
ok  	github.com/carlosframework/platform/internal/moves	21.635s
ok  	github.com/carlosframework/platform/internal/moves/archive	1.126s
ok  	github.com/carlosframework/platform/internal/objstore	0.358s
ok  	github.com/carlosframework/platform/internal/ops	0.212s
ok  	github.com/carlosframework/platform/internal/park	0.347s
ok  	github.com/carlosframework/platform/internal/plans	0.005s
ok  	github.com/carlosframework/platform/internal/privatefile	0.006s
ok  	github.com/carlosframework/platform/internal/provision	13.387s
ok  	github.com/carlosframework/platform/internal/publicrelease	0.013s
?   	github.com/carlosframework/platform/internal/regionname	[no test files]
ok  	github.com/carlosframework/platform/internal/registry	5.603s
ok  	github.com/carlosframework/platform/internal/relay	7.240s
ok  	github.com/carlosframework/platform/internal/release	25.203s
ok  	github.com/carlosframework/platform/internal/rollout	3.777s
ok  	github.com/carlosframework/platform/internal/rolloutwords	0.007s
ok  	github.com/carlosframework/platform/internal/rootaws	0.008s
ok  	github.com/carlosframework/platform/internal/rootparticipation	0.061s
ok  	github.com/carlosframework/platform/internal/rootstate	0.029s
ok  	github.com/carlosframework/platform/internal/runs	0.551s
ok  	github.com/carlosframework/platform/internal/s3compat	0.007s
ok  	github.com/carlosframework/platform/internal/safefile	0.007s
ok  	github.com/carlosframework/platform/internal/schedule	2.659s
ok  	github.com/carlosframework/platform/internal/seeds	0.015s
ok  	github.com/carlosframework/platform/internal/sim/engines	2.555s
ok  	github.com/carlosframework/platform/internal/sim/hostlife	10.916s
ok  	github.com/carlosframework/platform/internal/sim/litestreamfacts	3.856s
ok  	github.com/carlosframework/platform/internal/status	0.076s
ok  	github.com/carlosframework/platform/internal/steering	0.007s
ok  	github.com/carlosframework/platform/internal/stopevidence	0.170s
ok  	github.com/carlosframework/platform/internal/svcrole	0.002s
ok  	github.com/carlosframework/platform/internal/telemetry	0.005s
ok  	github.com/carlosframework/platform/internal/termfence	0.005s
ok  	github.com/carlosframework/platform/internal/tunnelclient	0.012s
ok  	github.com/carlosframework/platform/internal/unixdial	0.004s
ok  	github.com/carlosframework/platform/internal/updatewords	0.004s
ok  	github.com/carlosframework/platform/internal/usage	0.006s
ok  	github.com/carlosframework/platform/internal/version	0.002s
ok  	github.com/carlosframework/platform/internal/vet	1.679s
=== internal_console@0 (80 s)
ok  	github.com/carlosframework/platform/internal/console	77.448s
=== internal_console@1 (37 s)
ok  	github.com/carlosframework/platform/internal/console	35.450s
=== internal_console@2 (43 s)
ok  	github.com/carlosframework/platform/internal/console	40.629s
=== internal_console@3 (38 s)
ok  	github.com/carlosframework/platform/internal/console	35.319s
=== internal_console@4 (37 s)
ok  	github.com/carlosframework/platform/internal/console	35.317s
=== internal_console@5 (35 s)
ok  	github.com/carlosframework/platform/internal/console	33.152s
=== internal_console@6 (37 s)
ok  	github.com/carlosframework/platform/internal/console	35.120s
=== internal_console@7 (44 s)
ok  	github.com/carlosframework/platform/internal/console	42.042s
=== root@0 (33 s)
ok  	github.com/carlosframework/platform	30.789s
=== root@1 (44 s)
ok  	github.com/carlosframework/platform	42.331s
=== root@2 (41 s)
ok  	github.com/carlosframework/platform	39.103s

FAILED: gofmt
make: *** [Makefile:19: test] Error 1

amadan: step gate failed: exit status 2

amadan: job failed at step gate — its output is above, not at the tail of this log
diff --git a/docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md b/docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md
index 42fdae3a5..39d27e0b7 100644
--- a/docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md
+++ b/docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md
@@ -1,6 +1,6 @@
# Fleet-internal engines model: census proposal
-Status: PROPOSED-design-fleet-internal-engines, to be asked of the census owner on #280. This is a proposal for review, not an owner ruling.
+Status: RULED as census-ruling-design-fleet-internal-engines (Paul, as census owner, 2026-10-21), accepted as proposed on #280. The overlay rows carry `rev3=census-ruling-design-fleet-internal-engines`.
Branch: `design-fleet-internal-engines`, pinned at `bb1bf408` (main merged in). CI's only failure was `TestPlan14RootReadCensus` in `internal/provision`, with two discrepancies: the new `internal/sim/engines` source envelope and the unclassified `internal/sim/engines/mutate.sh:external` read.
@@ -8,7 +8,7 @@ No production code changes on this branch. `internal/sim/engines` (amadan #335 p
## Root-read entry
-- `internal/sim/engines/mutate.sh:external`. Executing identity: none at runtime. A developer or CI runs `go test` or the harness by hand, as their own user. No root, no production binary. The harness runs a prebuilt engines test binary once per rule with `ENGINESIM_MUTATE` set and writes logs only under `$TMPDIR/enginesim`. It never copies or edits source. Basis: classified as `internal/sim/hostlife/mutate.sh` is (`plan14-root-reads.tsv`, re-pinned in `plan14-root-reads-merge.tsv` under merge-ruling-2): a test harness pinned by the conservative external envelope, not production root authority. Proposed class: `legacy`, task: `accepted-legacy`. Sites: `file:external@0`. Digest: `e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46`. Frozen fingerprint: `f450a046d364d2d11eb9f81b709f597ff4cf8a2b48b2f4473cdee204ab5608d8`.
+- `internal/sim/engines/mutate.sh:external`. Executing identity: none at runtime. A developer or CI runs `go test` or the harness by hand, as their own user. No root, no production binary. The harness runs a prebuilt engines test binary once per rule with `ENGINESIM_MUTATE` set and writes logs only under `$TMPDIR/enginesim`. It never copies or edits source. Basis: classified as `internal/sim/hostlife/mutate.sh` is (`plan14-root-reads.tsv`, re-pinned in `plan14-root-reads-merge.tsv` under merge-ruling-2): a test harness pinned by the conservative external envelope, not production root authority. Class: `legacy`, task: `accepted-legacy`. Sites: `file:external@0`. Digest: `e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46`. Frozen fingerprint: `4f5ed448b20df36eb514bcf2ddfbd74dc0c516b327f5f4c5e7dabed700b98df4`.
## Source envelope
@@ -16,4 +16,4 @@ No production code changes on this branch. `internal/sim/engines` (amadan #335 p
## Seal
-The overlay `internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv` is loaded last, after claim-merge-main-4. It adds one frozen declaration, so the seal moves. The preceding seal, securelisten-337's, which every later overlay left standing, is checked first: `33a8ff46dd9fcf85664c42c42eaf01585af6c92806cb7830fa8f30fd0950c430`. The resulting seal is `d8290d2c4829bf4ac2e64c993b797e9e5d2db6435eff0869f1119094dc2a3c1e`.
+The overlay `internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv` is loaded last, after claim-merge-main-4. It adds one frozen declaration, so the seal moves. The preceding seal, securelisten-337's, which every later overlay left standing, is checked first: `33a8ff46dd9fcf85664c42c42eaf01585af6c92806cb7830fa8f30fd0950c430`. The resulting seal is `ca73eb766db03c4820076a28e84bbf15b61135a284294feaea78ae14b9b55071`.
diff --git a/internal/provision/plan14_root_reads_test.go b/internal/provision/plan14_root_reads_test.go
index 2c8ee7311..7d4fe641e 100644
--- a/internal/provision/plan14_root_reads_test.go
+++ b/internal/provision/plan14_root_reads_test.go
@@ -1256,9 +1256,10 @@ func TestPlan14RootReadCensus(t *testing.T) {
t.Fatal(err)
}
// Census overlay design-fleet-internal-engines (amadan #335 plan 1: the
- // test-only internal/sim/engines simulation package), loaded last.
- // PROPOSED-design-fleet-internal-engines, to be asked of the census owner
- // on #280 (docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md).
+ // test-only internal/sim/engines simulation package), loaded last, after
+ // claim-merge-main-4. RULED as census-ruling-design-fleet-internal-engines
+ // (Paul, as census owner, 2026-10-21), accepted as proposed
+ // (docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md).
// No production code changes. Its mutation harness mutate.sh is
// classified as internal/sim/hostlife/mutate.sh is: accepted legacy, a
// test harness pinned by the conservative external envelope, run by a
@@ -1272,7 +1273,7 @@ func TestPlan14RootReadCensus(t *testing.T) {
if err = loadRootReadInventory(filepath.Join(root, "internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv"), &inv, true); err != nil {
t.Fatal(err)
}
- seal = "d8290d2c4829bf4ac2e64c993b797e9e5d2db6435eff0869f1119094dc2a3c1e"
+ seal = "ca73eb766db03c4820076a28e84bbf15b61135a284294feaea78ae14b9b55071"
errs :=append(compareRootReads(got, inv), checkRootReadLegacy(inv, seal)...)
errs = append(errs, checkRootReadDeclarations(got, inv)...)
if len(errs) > 0 {
diff --git a/internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv b/internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv
index d726d0357..7b7c4534c 100644
--- a/internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv
+++ b/internal/provision/testdata/plan14-root-reads-design-fleet-internal-engines.tsv
@@ -1,6 +1,6 @@
-# Census overlay design-fleet-internal-engines (amadan #335 plan 1: the fleet-internal engines model, a test-only simulation package), loaded LAST, after claim-merge-main-4. PROPOSED-design-fleet-internal-engines, to be asked of the census owner on #280 (docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md).
+# Census overlay design-fleet-internal-engines (amadan #335 plan 1: the fleet-internal engines model, a test-only simulation package), loaded LAST, after claim-merge-main-4. RULED as census-ruling-design-fleet-internal-engines (Paul, as census owner, 2026-10-21), accepted as proposed (docs/superpowers/notes/census-proposal-design-fleet-internal-engines.md).
# No production code changes. internal/sim/engines is new and every Go file in it is a _test.go file, which the census does not scan; its one scanned file is the bash mutation harness mutate.sh, which the scanner pins whole as an external file:external@0 read. It is classified as internal/sim/hostlife/mutate.sh is (plan14-root-reads.tsv, re-pinned in plan14-root-reads-merge.tsv under merge-ruling-2): legacy, accepted-legacy, a test harness pinned by the conservative external envelope, not production root authority. Executing identity: none at runtime; a developer or CI running go test or the harness, as their own user; no root and no production binary.
# Pinned at branch commit bb1bf408 (main merged in). One frozen declaration is added, so the seal moves; claim-merge-main-4 leaves the securelisten-337 seal standing, and that seal is checked first. The new internal/sim/engines envelope (mutate.sh alone) is pinned.
-@legacy f450a046d364d2d11eb9f81b709f597ff4cf8a2b48b2f4473cdee204ab5608d8 internal/sim/engines/mutate.sh external legacy accepted-legacy accepted-legacy;rev3=PROPOSED-design-fleet-internal-engines;identity=none at runtime: a developer or CI running go test or this harness by hand, as their own user; no root, no production binary;basis=engines mutation harness (test-only, internal/sim/engines; amadan #335 plan 1), adapted from internal/sim/hostlife/mutate.sh: it runs a prebuilt engines test binary once per rule with ENGINESIM_MUTATE set and writes logs only under $TMPDIR/enginesim; it never copies or edits source; pinned by the conservative external envelope, not production root authority file:external@0 e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46
-internal/sim/engines/mutate.sh external legacy accepted-legacy accepted-legacy;rev3=PROPOSED-design-fleet-internal-engines;identity=none at runtime: a developer or CI running go test or this harness by hand, as their own user; no root, no production binary;basis=engines mutation harness (test-only, internal/sim/engines; amadan #335 plan 1), adapted from internal/sim/hostlife/mutate.sh: it runs a prebuilt engines test binary once per rule with ENGINESIM_MUTATE set and writes logs only under $TMPDIR/enginesim; it never copies or edits source; pinned by the conservative external envelope, not production root authority file:external@0 e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46
+@legacy 4f5ed448b20df36eb514bcf2ddfbd74dc0c516b327f5f4c5e7dabed700b98df4 internal/sim/engines/mutate.sh external legacy accepted-legacy accepted-legacy;rev3=census-ruling-design-fleet-internal-engines;identity=none at runtime: a developer or CI running go test or this harness by hand, as their own user; no root, no production binary;basis=engines mutation harness (test-only, internal/sim/engines; amadan #335 plan 1), adapted from internal/sim/hostlife/mutate.sh: it runs a prebuilt engines test binary once per rule with ENGINESIM_MUTATE set and writes logs only under $TMPDIR/enginesim; it never copies or edits source; pinned by the conservative external envelope, not production root authority file:external@0 e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46
+internal/sim/engines/mutate.sh external legacy accepted-legacy accepted-legacy;rev3=census-ruling-design-fleet-internal-engines;identity=none at runtime: a developer or CI running go test or this harness by hand, as their own user; no root, no production binary;basis=engines mutation harness (test-only, internal/sim/engines; amadan #335 plan 1), adapted from internal/sim/hostlife/mutate.sh: it runs a prebuilt engines test binary once per rule with ENGINESIM_MUTATE set and writes logs only under $TMPDIR/enginesim; it never copies or edits source; pinned by the conservative external envelope, not production root authority file:external@0 e13dc977dabeaefddbdb3dfca68c04d531b282f6ea1b256d72c13a1caa365c46
@coverage internal/sim/engines 41ab761e50cf9d98d1f2c51b472cf453085a80c506ab382914fe01ce930ae2fe