Skip to content

finding: the live required-set diff shipped by #9642 has no standing caller — it needs a PM round-report slot (governed surface) #9678

Description

@os-steve

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

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions