Recording, not claiming. Filed by the seat that landed #9642.
#9642 ships node scripts/check-required-contexts.mjs --verify-required-set: a report-only diff of the live ruleset's required set against REQUIRED_CONTEXTS, in both directions. Its posture is check-governed-merges.mjs's (a completed sweep exits 0 whether it found 0 or N; a non-zero exit classifies the environment), and it is deliberately off the required path — the settings half of any required-set change is maintainer-only and lands after the merge, so a merge-blocking version would be red on the very PR carrying the repo half.
That leaves it in the same position check-governed-merges.mjs is in: a sweep whose value is realized only when something runs it on a schedule. check-governed-merges's live sweep has a PM round-report slot; this one has none, so today the only thing wired into CI is its offline self-test.
The natural home is the PM round report, beside the governed-merges sweep — but the round-report checklist lives under .claude/skills/pm-dispatch/**, a governed surface a dev seat may not edit. Hence this card rather than a rider PR.
What a caller would surface, measured on the day #9642 landed:
required-set sweep: 6 live required context(s) on main, 2 registered-but-not-required, 0 required-but-unpinned.
⛔ direction A — registered here, NOT in the live required set (2).
• Build Docs — ci.yml job 'build-docs'
• Console Pin Gate — ci.yml job 'console-pin'
i.e. it re-derives #9533's open question on every run instead of once.
One environment note any caller needs: in an agent container all GitHub traffic goes through the session proxy and Node's global fetch does not read HTTPS_PROXY on its own, so the sweep must run as NODE_OPTIONS=--use-env-proxy ... or it answers HTTP 401 and correctly prints NOT VERIFIED. The script says so in its own diagnostics. check-governed-merges.mjs and scripts/pm/check-half-states.mjs reach the API the same way and share the trap (#7412).
Related: #9642, #9495, #9533, #7412.
Generated by Claude Code
Recording, not claiming. Filed by the seat that landed #9642.
#9642 ships
node scripts/check-required-contexts.mjs --verify-required-set: a report-only diff of the live ruleset's required set againstREQUIRED_CONTEXTS, in both directions. Its posture ischeck-governed-merges.mjs's (a completed sweep exits 0 whether it found 0 or N; a non-zero exit classifies the environment), and it is deliberately off the required path — the settings half of any required-set change is maintainer-only and lands after the merge, so a merge-blocking version would be red on the very PR carrying the repo half.That leaves it in the same position
check-governed-merges.mjsis in: a sweep whose value is realized only when something runs it on a schedule.check-governed-merges's live sweep has a PM round-report slot; this one has none, so today the only thing wired into CI is its offline self-test.The natural home is the PM round report, beside the governed-merges sweep — but the round-report checklist lives under
.claude/skills/pm-dispatch/**, a governed surface a dev seat may not edit. Hence this card rather than a rider PR.What a caller would surface, measured on the day #9642 landed:
i.e. it re-derives #9533's open question on every run instead of once.
One environment note any caller needs: in an agent container all GitHub traffic goes through the session proxy and Node's global fetch does not read
HTTPS_PROXYon its own, so the sweep must run asNODE_OPTIONS=--use-env-proxy ...or it answers HTTP 401 and correctly prints NOT VERIFIED. The script says so in its own diagnostics.check-governed-merges.mjsandscripts/pm/check-half-states.mjsreach the API the same way and share the trap (#7412).Related: #9642, #9495, #9533, #7412.
Generated by Claude Code