Found while bumping the console pin (#15422 / PR #15554). ⛔ Unassigned, unlabeled — awaiting triage first-touch grading. Filed rather than fixed: a pin bump takes no riders, and which of the directions below is right is the gate owner's call.
The behaviour, measured in both directions on 2026-09-04
scripts/build-console.sh materialises objectui at the pinned SHA into .cache/objectui-SHA/ — a full checkout with node_modules, gitignored (.gitignore:42), created by every pin bump because the console cannot be built without it. Two repo-wide corpus gates walk it and go red on objectui's files:
| gate |
with the build worktree present |
after git worktree remove of it |
node scripts/check-comment-mask-corpus.mjs |
exit 1 — 10205 files, 1 disagrees: .cache/objectui-SHA/apps/console/src/pages/DocsIndex.tsx, fabricates=0 over-masks=1517, first at line 63 |
exit 0 — 5936 files, 0 disagree, 0 unparseable |
pnpm check:agent-test-spelling |
exit 1 — 1 violation at .cache/objectui-SHA/AGENTS.md:188 (objectui's own doc teaching pnpm --filter (pkg) test -- --run) |
exit 0 — 0 violations, 447 files, 9 separators judged |
Same tree, same commit, nothing else changed between the two columns.
Why it is worth a card
- It lands on whoever bumps the pin, every time. The two reds appear in the derived gate set of a diff whose four paths are
.objectui-sha, a changeset and two JSON provenance records — a change set that cannot cause either finding. An operator who does not happen to know the cache is there reads two reds against their own PR.
- One of them instructs the reader to change the wrong thing.
check-comment-mask-corpus states, correctly for its own domain: "A disagreement is a defect in scanSource, not in the file … Pin the shape in js-comment-mask.mjs's --self-test". Sourced from a foreign tree, that instruction sends a pin-bumping agent to edit this repo's masker on the strength of an objectui page it has no stake in. (Whether the over-mask on that page IS a real scanSource shape worth pinning is a separate question this card does not answer — it may well be, and that would be a second card, not a reason to keep walking .cache/.)
- CI never sees it, which is why it has survived: the lint job does not build the console, so
.cache/ is absent there. Every instance is local, on the one workflow that must create the directory.
Direction candidates (⛔ not deciding here)
- Exclude
.cache/** in the corpus walkers themselves (they already exclude node_modules; the same class of "not our source").
- Make the walkers honour
.gitignore — wider, and it would cover the next vendored tree nobody has thought of yet.
- Leave the walkers and document the deletion step in the pin-bump procedure — the weakest, since it relies on the operator reading a doc while looking at a red gate.
Direction 1 or 2 also removes ~4300 foreign files from a sweep that takes 103.7s with them and 85.2s without.
Dedup
Read 2026-09-04 over all 568 open issues (REST list endpoints; /search/issues is 403 on this seat), grepping title + body for .cache/objectui, comment-mask-corpus, agent-test-spelling, js-comment-mask. Twelve cards mention one of those tokens; none describes a gate walking the pin-bump build worktree — the nearest, #15341, is about gates that declare no path being scored silent by dispatch-gates, a different question. Control leg on the same corpus: "corpus" appears in 41 open issues.
Refs: #15422 · PR #15554 · scripts/build-console.sh · scripts/check-comment-mask-corpus.mjs · scripts/check-agent-test-spelling.mjs.
Generated by Claude Code
Found while bumping the console pin (#15422 / PR #15554). ⛔ Unassigned, unlabeled — awaiting triage first-touch grading. Filed rather than fixed: a pin bump takes no riders, and which of the directions below is right is the gate owner's call.
The behaviour, measured in both directions on 2026-09-04
scripts/build-console.shmaterialises objectui at the pinned SHA into.cache/objectui-SHA/— a full checkout withnode_modules, gitignored (.gitignore:42), created by every pin bump because the console cannot be built without it. Two repo-wide corpus gates walk it and go red on objectui's files:git worktree removeof itnode scripts/check-comment-mask-corpus.mjs.cache/objectui-SHA/apps/console/src/pages/DocsIndex.tsx,fabricates=0 over-masks=1517, first at line 63pnpm check:agent-test-spelling.cache/objectui-SHA/AGENTS.md:188(objectui's own doc teachingpnpm --filter (pkg) test -- --run)Same tree, same commit, nothing else changed between the two columns.
Why it is worth a card
.objectui-sha, a changeset and two JSON provenance records — a change set that cannot cause either finding. An operator who does not happen to know the cache is there reads two reds against their own PR.check-comment-mask-corpusstates, correctly for its own domain: "A disagreement is a defect inscanSource, not in the file … Pin the shape injs-comment-mask.mjs's--self-test". Sourced from a foreign tree, that instruction sends a pin-bumping agent to edit this repo's masker on the strength of an objectui page it has no stake in. (Whether the over-mask on that page IS a realscanSourceshape worth pinning is a separate question this card does not answer — it may well be, and that would be a second card, not a reason to keep walking.cache/.).cache/is absent there. Every instance is local, on the one workflow that must create the directory.Direction candidates (⛔ not deciding here)
.cache/**in the corpus walkers themselves (they already excludenode_modules; the same class of "not our source")..gitignore— wider, and it would cover the next vendored tree nobody has thought of yet.Direction 1 or 2 also removes ~4300 foreign files from a sweep that takes 103.7s with them and 85.2s without.
Dedup
Read 2026-09-04 over all 568 open issues (REST list endpoints;
/search/issuesis 403 on this seat), grepping title + body for.cache/objectui,comment-mask-corpus,agent-test-spelling,js-comment-mask. Twelve cards mention one of those tokens; none describes a gate walking the pin-bump build worktree — the nearest, #15341, is about gates that declare no path being scored silent bydispatch-gates, a different question. Control leg on the same corpus: "corpus" appears in 41 open issues.Refs: #15422 · PR #15554 ·
scripts/build-console.sh·scripts/check-comment-mask-corpus.mjs·scripts/check-agent-test-spelling.mjs.Generated by Claude Code