Skip to content

Wire check-harness-current.mjs and check:pm-expected-skips self-tests into lint.yml - #18388

Merged
os-elon-musk merged 2 commits into
mainfrom
claude/issue-18356-lint-yml-pm-self-test-wiring
Sep 16, 2026
Merged

os-elon-musk merged 2 commits into
mainfrom
claude/issue-18356-lint-yml-pm-self-test-wiring

Conversation

@os-elon-musk

@os-elon-musk os-elon-musk commented Sep 16, 2026 •

Copy link
Copy Markdown
Collaborator

Fixes #18356
Fixes #18358

What changed

Two independent one-line wirings into .github/workflows/lint.yml, one per linked card, each landed as its own commit so check-self-test-wired.mjs starts counting a --self-test that already ships on main but that no workflow names.

#18356 — check-harness-current.mjs --self-test into the "Shallow-history guard self-tests" collector

  • Location: the Shallow-history guard self-tests step's run: block (the collector check-step-collectors.mjs --self-test extracts and drives).
  • Before: three run_self_test lines (git-history.mjs, check-engine-split-ratio.mjs, collect-release-notes.sh), closing prose read "all three ran and passed".
  • After: a fourth line — run_self_test node scripts/pm/check-harness-current.mjs --self-test — and the closing prose updated to "all four ran and passed" (the FAILED-branch prose is unchanged; it already names failures generically).
  • Independent verification: node scripts/check-step-collectors.mjs --self-test (182 assertions, 5 live blocks) and node scripts/check-step-collectors.mjs (the live gate) both pass; node scripts/pm/check-harness-current.mjs --self-test passes standalone (14 of 14 cases) both before and after the wiring.

#18358 — pnpm check:pm-expected-skips beside the other check:pm-* steps

  • Location: the check:pm-* step block, immediately after Settings deny-roster pin (#18281) (pnpm check:pm-settings-deny-roster) and before the release-rehearsal step — the same "self-test only, live check stays a seat tool" shape as the widening-tell and prior-ruling-reader steps beside it.
  • Before: no step in any workflow named check:pm-expected-skips or check-expected-skips.mjs.
  • After: a new step named "Expected-skips roster self-test" running pnpm check:pm-expected-skips.
  • Independent verification: pnpm check:pm-expected-skips passes locally (99 of 99 cases).

check-self-test-wired — before / after

BEFORE, on origin/main at 8b81ab6:

check-self-test-wired: every one of the 212 script(s) CI runs that ship a --self-test has that self-test run by CI.
scope: 292 file(s) under scripts/, 229 carrying --self-test in code (comments masked, 1 of them package-local gate(s) CI names by path); 212 of those are run by 37 workflow(s); 209 have their self-test run through the flag, 3 through a recorded route.

AFTER, on this branch:

check-self-test-wired: every one of the 214 script(s) CI runs that ship a --self-test has that self-test run by CI.
scope: 292 file(s) under scripts/, 229 carrying --self-test in code (comments masked, 1 of them package-local gate(s) CI names by path); 214 of those are run by 37 workflow(s); 211 have their self-test run through the flag, 3 through a recorded route.

212 to 214 run by CI (both new scripts counted "through the flag": 209 to 211). check-harness-current.mjs and check-expected-skips.mjs are the two scripts that moved.

Gates

Derived via node scripts/pm/dispatch-gates.mjs --commands against merge-base 8b81ab60d (41 commands: 21 pnpm, 20 direct node). All 40 non-lock commands ran locally and passed, except pnpm check:type-check-debt, which reported PREREQUISITE NOT MET (exit 3, not a finding — the ledgered packages' workspace dependencies have no built dist type entry point in this worktree; the script's own text says a re-measure without the closure built would silently measure a different world). pnpm check:pm-dispatch-gates (single-machine roughly 430 to 450 seconds) ran through the shared verify lock.

node scripts/pm/check-governed-merges.mjs --test .github/workflows/lint.yml reports NOT governed at exit 0, as expected for a workflow-only diff. node scripts/pm/check-clause2-carriers.mjs --pair 18388 reports both cards' clause-2 declaration readable in the fixed spelling, both carriers agreeing, and no widening tell on either diff (exit 0).

skip-changeset

No published package's shipped content moves — the diff is entirely inside .github/workflows/lint.yml, which is not published. skip-changeset applied.

Acceptance notes

None — both cards' file surfaces were exactly as scoped (one collector line plus its closing prose, one new step), and no reproducible defect, contract violation or metadata-authoring trap was found while touching this file.


Generated by Claude Code


Generated by Claude Code

Adds a self-test step beside the other check:pm-* steps so
scripts/pm/check-expected-skips.mjs's --self-test runs on every PR and
check-self-test-wired starts counting it.

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bz6hxDBqK62NP2W1LATvnt
…-history collector

Adds a run_self_test line to lint.yml's "Shallow-history guard
self-tests" collector step so scripts/pm/check-harness-current.mjs's
--self-test runs on every PR and check-self-test-wired starts counting
it. Syncs the step's closing prose (three -> four).

Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Bz6hxDBqK62NP2W1LATvnt
@os-elon-musk os-elon-musk added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Sep 16, 2026 — with Claude
@os-elon-musk
os-elon-musk marked this pull request as ready for review September 16, 2026 08:22
@os-elon-musk
os-elon-musk added this pull request to the merge queue Sep 16, 2026
Merged via the queue into main with commit 37af653 Sep 16, 2026
39 checks passed
@os-elon-musk
os-elon-musk deleted the claude/issue-18356-lint-yml-pm-self-test-wiring branch September 16, 2026 08:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cd size/s skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

2 participants