Noticed while implementing objectui#9006 (the eager-closure exit-code fold). Not fixed there, not in that card's scope, no assignee, no domain:* grading.
The reading
Six places in the tree state, as a fact, that Bundle Analysis is a required context:
scripts/check-eager-closure-budget.mjs — two sites (the header, and the evaluateCeilingFreshness docblock)
scripts/__tests__/check-eager-closure-budget.test.ts — the describe('ceiling freshness (objectui#6245)') docblock
.github/workflows/performance-budget.yml — three sites, including the job-ceiling derivation ("a job this repository treats as a required context")
The repo's own machine-readable classifier says otherwise. scripts/dependabot-merge-gate.mjs puts Bundle Analysis in OPTIONAL_CONTEXTS, not REQUIRED_CONTEXTS, with the stated reason that its workflow is path-filtered:
performance-budget.yml filters on paths: packages/**, apps/console/**, pnpm-lock.yaml. Blocking when it runs (console gzip budget); absent on a PR that touches none of them.
And the same file's own argument for why a path-filtered check cannot be required (its line-citation-gate.yml entry, citing objectui#3523) applies verbatim here: a required context that never reports on a build stalls it.
A second, sharper measurement sits inside performance-budget.yml itself, in the job-ceiling comment — and it contradicts the sentence four lines above it:
this workflow subscribes only push and pull_request, NOT merge_group, and 300 sampled runs contain zero merge_group runs. So this job cannot hold the merge queue the way Lint can
Re-derived on the current tip: the only two occurrences of merge_group in that file are inside that comment. The on: block has push and pull_request and nothing else.
Why that is worth a card rather than a shrug
This is AGENTS.md commandment #9 exactly: prose that declares something classified, stating a fact derived once and derived never again, sitting beside an instrument that answers the same question differently. The two readings are not stylistic variants — they support opposite decisions:
- read as required, a regression in the eager-closure budget gate is blocked by the gate's own job, and nothing else is owed;
- read as optional and queue-less, that job cannot block a queue build at all, and any floor that must hold has to live somewhere a required context runs it.
objectui#9006 turned on precisely that question, and its dispatch and the workflow prose gave opposite answers.
What this is NOT
- Not a claim that the branch-protection required set says one thing or the other. That set is not readable from inside the repo (AGENTS.md says so), so neither reading can be settled here — which is itself the point: the prose asserts an answer that nothing in the tree can re-derive.
- Not a request to promote or demote any check. Enrolling or removing a required context is a maintainer decision, and
dependabot-merge-gate.mjs records that reservation twice already.
- Not about
Docs Route Eager Closure Check, which IS in REQUIRED_CONTEXTS and is a different gate (see the sibling observation below).
A sibling observation, same neighbourhood
objectui#9006 and its triage both state that scripts/check-eager-closure-budget.mjs runs in docs-route-eager-closure.yml. It does not: that workflow runs pnpm check:docs-route-closure (scripts/check-docs-route-eager-closure.mjs), and its own header's first line says as much, citing objectui#6316. Nothing in the tree carries that error, so this is recorded here for the reader rather than as a defect to fix.
Dedup
Bounded rather than exhaustive: the 100 most recently updated open issues, read repo-scoped, grepped locally for the required-context / Bundle Analysis / REQUIRED_CONTEXTS / merge_group vocabulary, with objectui#9006 returned in the same read as the control that the channel reaches this subject. Six unrelated hits, none about the classification disagreement. The semantic search channel was unavailable (rate-limited) on this run, so this is not upgraded to exhaustive.
Filed by the os-dev seat working objectui#9006.
Generated by Claude Code, session session_01FhBNJcLRZLe8M87VcUgpKr.
Noticed while implementing objectui#9006 (the eager-closure exit-code fold). Not fixed there, not in that card's scope, no assignee, no
domain:*grading.The reading
Six places in the tree state, as a fact, that
Bundle Analysisis a required context:scripts/check-eager-closure-budget.mjs— two sites (the header, and theevaluateCeilingFreshnessdocblock)scripts/__tests__/check-eager-closure-budget.test.ts— thedescribe('ceiling freshness (objectui#6245)')docblock.github/workflows/performance-budget.yml— three sites, including the job-ceiling derivation ("a job this repository treats as a required context")The repo's own machine-readable classifier says otherwise.
scripts/dependabot-merge-gate.mjsputsBundle AnalysisinOPTIONAL_CONTEXTS, notREQUIRED_CONTEXTS, with the stated reason that its workflow is path-filtered:And the same file's own argument for why a path-filtered check cannot be required (its
line-citation-gate.ymlentry, citing objectui#3523) applies verbatim here: a required context that never reports on a build stalls it.A second, sharper measurement sits inside
performance-budget.ymlitself, in the job-ceiling comment — and it contradicts the sentence four lines above it:Re-derived on the current tip: the only two occurrences of
merge_groupin that file are inside that comment. Theon:block haspushandpull_requestand nothing else.Why that is worth a card rather than a shrug
This is AGENTS.md commandment #9 exactly: prose that declares something classified, stating a fact derived once and derived never again, sitting beside an instrument that answers the same question differently. The two readings are not stylistic variants — they support opposite decisions:
objectui#9006 turned on precisely that question, and its dispatch and the workflow prose gave opposite answers.
What this is NOT
dependabot-merge-gate.mjsrecords that reservation twice already.Docs Route Eager Closure Check, which IS inREQUIRED_CONTEXTSand is a different gate (see the sibling observation below).A sibling observation, same neighbourhood
objectui#9006 and its triage both state that
scripts/check-eager-closure-budget.mjsruns indocs-route-eager-closure.yml. It does not: that workflow runspnpm check:docs-route-closure(scripts/check-docs-route-eager-closure.mjs), and its own header's first line says as much, citing objectui#6316. Nothing in the tree carries that error, so this is recorded here for the reader rather than as a defect to fix.Dedup
Bounded rather than exhaustive: the 100 most recently updated open issues, read repo-scoped, grepped locally for the required-context / Bundle Analysis / REQUIRED_CONTEXTS / merge_group vocabulary, with objectui#9006 returned in the same read as the control that the channel reaches this subject. Six unrelated hits, none about the classification disagreement. The semantic search channel was unavailable (rate-limited) on this run, so this is not upgraded to exhaustive.
Filed by the
os-devseat working objectui#9006.Generated by Claude Code, session
session_01FhBNJcLRZLe8M87VcUgpKr.