Provenance: maintainer ruling 2026-08-27 (PM chat, decision-inbox batch 1, adjudication session session_01DKWDdUJ2XNRESVVWUvcpnh), verbatim: 「同意,并继续」 — adopting B′ on #8103: the ruled operator command (2026-08-26, Option B) is sequenced BEHIND this missing precondition. Option C (a sweep keyed on one producer's partial view) stays ruled out. Report-only (A) remains the honest fallback if this card is later judged not worth building — that re-decision belongs to the maintainer.
What this is
A runtime-enumerable union of every reference to a sys_secret handle, spanning all three producer/holder families measured on #8103:
sys_setting.value_enc handles (SettingsService);- every secret-typed field on every REGISTERED object — instance-specific, enumerated from the metadata registry at runtime (includes tenant-authored objects; cannot be precomputed);
- every datasource artefact's
external.credentialsRef.
Only "unreferenced by the COMPLETE union" is a sound deletion predicate. Measured 2026-08-26 on #8103: attribution by (namespace, key) is a name match, not ownership — a live engine-owned credential classifies orphaned under the shipped settings-scoped classifier, and the audit trail (digests, not handles) cannot name an erroneous delete afterwards.
Measured placement constraints (re-verify on the day, do not cite)
- A bounded scan of all 73 workspace package.json files found exactly two packages with runtime visibility of all three producers:
@objectstack/cli (operator command surface, bin objectstack/os) and @objectstack/verify (a boot-and-verify harness, no bin). service-settings cannot see the other two, and its independence from objectql is a declared architectural property. - Routing is triage's call; if the home is
packages/cli, that is the domain:cli lane and cross-lane coordination applies.
Named reader
The seat that later builds #8103's deletion command ("attributable AND unreferenced by the COMPLETE union"; dry-run default; pre-delete export mandatory; the unattributable class is never deleted). #8103 is pm:blocked on this card.
Refs: #8103 (ruling + measurements), #8259 (closed vehicle ruling), PR #8261 (shipped report-only classifier).
Provenance: maintainer ruling 2026-08-27 (PM chat, decision-inbox batch 1, adjudication session
session_01DKWDdUJ2XNRESVVWUvcpnh), verbatim: 「同意,并继续」 — adopting B′ on #8103: the ruled operator command (2026-08-26, Option B) is sequenced BEHIND this missing precondition. Option C (a sweep keyed on one producer's partial view) stays ruled out. Report-only (A) remains the honest fallback if this card is later judged not worth building — that re-decision belongs to the maintainer.What this is
A runtime-enumerable union of every reference to a
sys_secrethandle, spanning all three producer/holder families measured on #8103:sys_setting.value_enchandles (SettingsService);external.credentialsRef.Only "unreferenced by the COMPLETE union" is a sound deletion predicate. Measured 2026-08-26 on #8103: attribution by (namespace, key) is a name match, not ownership — a live engine-owned credential classifies
orphanedunder the shipped settings-scoped classifier, and the audit trail (digests, not handles) cannot name an erroneous delete afterwards.Measured placement constraints (re-verify on the day, do not cite)
@objectstack/cli(operator command surface, binobjectstack/os) and@objectstack/verify(a boot-and-verify harness, no bin).service-settingscannot see the other two, and its independence from objectql is a declared architectural property.packages/cli, that is thedomain:clilane and cross-lane coordination applies.Named reader
The seat that later builds #8103's deletion command ("attributable AND unreferenced by the COMPLETE union"; dry-run default; pre-delete export mandatory; the
unattributableclass is never deleted). #8103 ispm:blockedon this card.Refs: #8103 (ruling + measurements), #8259 (closed vehicle ruling), PR #8261 (shipped report-only classifier).