Skip to content

os build / os compile cannot surface the ambiguous-stem refusal — it never constructs a FilesystemLoader, so #14921's third execution clause has no door to land on #16089

Description

@claude

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:

  1. Which roots would os build walk? It reads a stack definition today, not a metadata directory.
  2. Does a missing metadata directory become an error? Today there is nothing to miss.
  3. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions