Blocked-by: #10014 (only becomes true when that PR lands)
Found while implementing #9829. Filed unassigned.
scripts/sync-template-versions.mjs's --self-test header argues the flag's existence from two
measured gaps. GAP 1 (lines ~376-401) reads:
GAP 1 — SCHEDULING. create-objectstack#test is reached only from ci.yml's test job, and that
job is if: ... needs.filter.outputs.core != 'false'. […] a diff confined to this file yields
core=false, so Test Core is skipped in full and the vitest never runs, on precisely the PR that
changes the rewriter.
PR #10014 changes the second half. core=false stays true — that filter is untouched — but the
test job now also gates on a new scripts filter output, so on a diff confined to this file the
job runs, --union-into runs inside it, and create-objectstack is pulled into the shard's package
set. Measured on that branch:
$ node scripts/check-cross-package-test-inputs.mjs --union-into ls.json --changed changed.txt
Cross-package scans pulled into this run because the diff touched their declared inputs:
+ @objectstack/spec (declared glob matched scripts/sync-template-versions.mjs)
+ create-objectstack (declared glob matched scripts/sync-template-versions.mjs)
So after that PR the paragraph states a scheduling fact that is no longer the case, in a header whose
whole job is to justify why the self-test lives in lint.yml. Same shape as #9651: a rationale
comment that stopped being true and would have the next reader re-derive the wrong conclusion.
What is NOT affected, and why the flag itself should stay: GAP 2 (the red paths — every failure
contract in the script's header, the clean-corpus control, the problems collection) is untouched,
and lint.yml carries no paths filter at all, so it still runs on every pull request, push and
merge-queue build. The fix is a comment edit — record that the scheduling half was closed and by
what — not a relocation of the self-test.
Deliberately not folded into #10014: that PR's diff is confined to .github/workflows/ci.yml under a
minimal-diff ruling, and editing this file would pull check:template-version-sync into its gate
set for a comment.
Refs: #9829, #10014, #9348 (the card that added the flag), #9651 (same class).
Generated by Claude Code
Generated by Claude Code
Blocked-by: #10014 (only becomes true when that PR lands)
Found while implementing #9829. Filed unassigned.
scripts/sync-template-versions.mjs's--self-testheader argues the flag's existence from twomeasured gaps. GAP 1 (lines ~376-401) reads:
PR #10014 changes the second half.
core=falsestays true — that filter is untouched — but thetestjob now also gates on a newscriptsfilter output, so on a diff confined to this file thejob runs,
--union-intoruns inside it, andcreate-objectstackis pulled into the shard's packageset. Measured on that branch:
So after that PR the paragraph states a scheduling fact that is no longer the case, in a header whose
whole job is to justify why the self-test lives in
lint.yml. Same shape as #9651: a rationalecomment that stopped being true and would have the next reader re-derive the wrong conclusion.
What is NOT affected, and why the flag itself should stay: GAP 2 (the red paths — every failure
contract in the script's header, the clean-corpus control, the
problemscollection) is untouched,and
lint.ymlcarries no paths filter at all, so it still runs on every pull request, push andmerge-queue build. The fix is a comment edit — record that the scheduling half was closed and by
what — not a relocation of the self-test.
Deliberately not folded into #10014: that PR's diff is confined to
.github/workflows/ci.ymlunder aminimal-diff ruling, and editing this file would pull
check:template-version-syncinto its gateset for a comment.
Refs: #9829, #10014, #9348 (the card that added the flag), #9651 (same class).
Generated by Claude Code
Generated by Claude Code