carlos / platform Public

spec: record StatusNamed's tri-state, decided during implementation

The §3 table said the zero value was "false". It is "unstated": StatusNamed
became a *bool during the final review wave, for the reason Hibernate is one
— it is converged, and a plain bool would let a record omitting the field
silently opt a route out of the status page that an operator opted in with
`carlos add -status-named`.

Caught by the whole-branch review as spec/type drift; matters because plan 3's
backfill will be written against this table.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Paul Campbell 08efc4a71cc31dff0ff3b274ebc864bf2d5c2ebb parent 1383f12
1 file changed, +11 −1
  • docs/superpowers/specs/2026-08-10-route-records-design.md +11 −1
diff --git a/docs/superpowers/specs/2026-08-10-route-records-design.md b/docs/superpowers/specs/2026-08-10-route-records-design.md
index b28d6b6e9..85cc6bdee 100644
--- a/docs/superpowers/specs/2026-08-10-route-records-design.md
+++ b/docs/superpowers/specs/2026-08-10-route-records-design.md
@@ -102,7 +102,7 @@ this change parses and materializes a byte-identical route.
| `Unit` | `unit` | no owning unit | `console.service` |
| `Hibernate` | `hibernate` | `true` | long-running units that must not sleep |
| `Environment` | `environment` | the app's default bundle | the second member-facing axis of `carlos route` |
-| `StatusNamed` | `status_named` | false | `carlos add -status-named` |
+| `StatusNamed` (`*bool`) | `status_named` | unstated — mints false, never converges | `carlos add -status-named` |
### 3.1 Field notes
@@ -113,6 +113,16 @@ the first pass after deploy. `nil` must mean `true`. This is the same
tri-state honesty `runRoute` already buys with `fs.Visit`, for the same
reason: absent and false are different facts.
+**`StatusNamed` is `*bool` for the same reason** (added during implementation,
+2026-08-10). It is converged like `Channel` and `Environment`, and a plain
+bool cannot be: a record omitting the field would read as `false` and
+silently opt a route out of the status page that an operator opted in with
+`carlos add -status-named`. So `nil` means "this record does not speak to the
+status page" — it mints `false`, matching every record already in a
+production bucket, and it never converges. A backfill record that wants a
+route named on the status page must say `status_named: true` explicitly;
+omitting it leaves the row's opt-in box-local and undescribed.
+
**`Socket` and `DBPath` stay derived, never declared.** `DefaultSocket` and
`DefaultDBPath` exist precisely so a hand-added route and a provisioned one
land on identical path shapes, and the `filepath.Join` note in their doc