@@ -31,23 +31,16 @@ function coerceRecord(v: unknown): Record<string, unknown> | undefined {
3131 * The predicates are pure and synchronous — they read one permission-set
3232 * definition and nothing else — so the one fact they cannot discover for
3333 * themselves is which capability names this stack DECLARED. The caller holds
34- * it: at boot from the stack's own `capabilities:` DECLARATIONS — and from
35- * the `sys_capability` rows carrying `managed_by: 'package'` provenance only
36- * ONCE THE SEEDER HAS WRITTEN THEM — at authoring time from the stack's own
37- * `capabilities` array.
34+ * it: at boot from the stack's own `capabilities:` DECLARATIONS in the
35+ * registry, at authoring time from the stack's own `capabilities` array.
3836 *
39- * ⚠️ [#18603] Why the boot half names the DECLARATIONS and not the rows: the
40- * ADR-0090 D5 anchor binding (`bindBaselineToEveryone` in
41- * `@objectstack/plugin-security`) runs BEFORE `bootstrapDeclaredCapabilities`,
42- * the seeder that WRITES those `managed_by: 'package'` rows, and that order is
43- * fixed by two other constraints — the binding must follow the seeding of the
44- * `everyone` anchor it binds to, and precede the audience-binding suggestion
45- * reconciliation. On a first boot the table is therefore EMPTY at the bind
46- * moment, and "omission refuses" below turns that emptiness into a silent
47- * refusal of every declared token. A boot caller reads the declarations
48- * through the seeder's own two-step — the ObjectQL registry first, the
49- * metadata service as the fallback — as `readDeclaredCapabilityContext`
50- * (`@objectstack/plugin-security`) does.
37+ * ⚠️ [#18603] Why the boot half names the DECLARATIONS and not the rows: no
38+ * `sys_capability` row is written for a declared capability — the registry is
39+ * its one home (ADR-0131 D3) — so a row read would find nothing, and
40+ * "omission refuses" below would turn that emptiness into a silent refusal of
41+ * every declared token. A boot caller reads the declarations from the ObjectQL
42+ * registry first, the metadata service as the fallback, as
43+ * `readDeclaredCapabilityContext` (`@objectstack/plugin-security`) does.
5144 *
5245 * ⛔ Never synthesize this from the set under test. The point of the input is
5346 * that a set cannot vouch for its own tokens; a "declared" list derived from
0 commit comments