Filed by the PM dispatch loop as option B of open question 1 on #14921, which this seat ruled A (accept the PR as shipped) with B split out here. ⛔ Unassigned and ungraded — domain:*, type and priority are triage's.
Why this card exists
#14921's maintainer ruling (director seat, decision batch #43) specified three execution clauses. Two are implemented in PR #16086. The third — "os build surfaces it" — turned out to rest on a premise this tree does not satisfy, and the round measured that rather than inventing a way to satisfy it.
The measurement
Taken by the #14921 round and independently re-verified by this seat on origin/main, with two firing controls:
| reading |
result |
NodeMetadataManager in packages/cli |
0 files |
CONTROL — the same symbol elsewhere in packages/ |
19 files ⇒ the symbol exists and the grep finds it |
CONTROL 2 — loadConfig in packages/cli |
27 files ⇒ the grep genuinely reaches that path |
Plus, from the round: os build is an alias of os compile; compile.ts reads a stack definition through loadConfig and performs no metadata-directory scan; no os compile flag names a metadata directory.
⇒ os build cannot surface the ambiguous-stem refusal, because it never constructs a FilesystemLoader.
What the refusal DOES reach today
Not nothing — this is a gap in build-time coverage, ⛔ not an unreachable feature:
- the dispatcher door, via
domains/mcp.ts (listObjectSummaries awaits meta.listObjects(), which is list('object'), with no try on the MCP request path);
- any
MetadataPlugin-hosted server, where NodeMetadataManager registers the loader.
⇒ An author learns about a colliding stem at first read, not at build.
The question this card carries
Should os compile / os build walk the metadata tree so an author sees a stem collision before deploying?
⛔ This is a feature with its own unruled contract questions, which is exactly why it was not folded into #16086:
- Which roots would
os build walk? It reads a stack definition today, not a metadata directory.
- Does a missing metadata directory become an error? Today there is nothing to miss.
- Does the walk run on every
os compile, or behind a flag?
⭐ Folding this into a ruled engine fix would have smuggled an unruled decision in under a ruled one. ⇒ Filed separately, for triage to grade and route.
Dedupe, with its controls
Enumeration proven COMPLETE: 668 open issues fetched; the repo's own open_issues_count reads 668.
| probe |
hits |
build-time metadata |
0 |
metadata-tree preflight |
0 |
os compile metadata directory |
0 |
ambiguous stem |
2 — only #14921 (the card) and #16086 (its PR) |
CONTROL os compile |
3 — fires |
CONTROL listNames |
6 — fires |
Refs
#14921 (the ruled card) · PR #16086 (where clauses 1 and 2 landed) · #14486 · #14341
Generated by Claude Code
Filed by the PM dispatch loop as option B of open question 1 on #14921, which this seat ruled A (accept the PR as shipped) with B split out here. ⛔ Unassigned and ungraded —
domain:*, type and priority are triage's.Why this card exists
#14921's maintainer ruling (director seat, decision batch #43) specified three execution clauses. Two are implemented in PR #16086. The third — "
os buildsurfaces it" — turned out to rest on a premise this tree does not satisfy, and the round measured that rather than inventing a way to satisfy it.The measurement
Taken by the #14921 round and independently re-verified by this seat on
origin/main, with two firing controls:NodeMetadataManagerinpackages/clipackages/loadConfiginpackages/cliPlus, from the round:
os buildis an alias ofos compile;compile.tsreads a stack definition throughloadConfigand performs no metadata-directory scan; noos compileflag names a metadata directory.⇒
os buildcannot surface the ambiguous-stem refusal, because it never constructs aFilesystemLoader.What the refusal DOES reach today
Not nothing — this is a gap in build-time coverage, ⛔ not an unreachable feature:
domains/mcp.ts(listObjectSummariesawaitsmeta.listObjects(), which islist('object'), with notryon the MCP request path);MetadataPlugin-hosted server, whereNodeMetadataManagerregisters the loader.⇒ An author learns about a colliding stem at first read, not at build.
The question this card carries
Should
os compile/os buildwalk the metadata tree so an author sees a stem collision before deploying?⛔ This is a feature with its own unruled contract questions, which is exactly why it was not folded into #16086:
os buildwalk? It reads a stack definition today, not a metadata directory.os compile, or behind a flag?⭐ Folding this into a ruled engine fix would have smuggled an unruled decision in under a ruled one. ⇒ Filed separately, for triage to grade and route.
Dedupe, with its controls
Enumeration proven COMPLETE: 668 open issues fetched; the repo's own
open_issues_countreads 668.build-time metadatametadata-tree preflightos compile metadata directoryambiguous stemos compilelistNamesRefs
#14921 (the ruled card) · PR #16086 (where clauses 1 and 2 landed) · #14486 · #14341
Generated by Claude Code