Part of the PR-closeout contract repair (forensic analysis of session 019eccc1).
GW-A — the keystone slice in github-workflows:
- Add a
--body-file <path|-> (stdin) input mode to scripts/pr-contract.mjs so the SAME validator can run on a drafted body before a PR exists, not only against a remote PR. Removes the push -> create -> amend -> re-scan loop (F2/F3).
- Make the parser context-aware (still strict): mask HTML comments before the placeholder scan (so a template's own instructional comment no longer trips it, F4) and mask fenced/inline code + quoted/blockquoted text before the generic-verification scan on free prose (so an explanatory note citing a command isn't rejected, F7). Checked checkbox claims and evidence-field placeholders still hard-fail.
- Add
--help/usage to pr-contract.mjs, agent-pr-ready.mjs, agent-close-preflight.mjs (F-DISC).
- Acceptance-table fixtures, including the "still fails" cases.
Follow-ups (separate slices): retag @v1; repo-template vendor + parity guard + close-scan Windows fix (RT-A); gate-label audit + ci:full seed (GW-B); trivial-edit lanes (RT-B).
Part of the PR-closeout contract repair (forensic analysis of session 019eccc1).
GW-A — the keystone slice in
github-workflows:--body-file <path|->(stdin) input mode toscripts/pr-contract.mjsso the SAME validator can run on a drafted body before a PR exists, not only against a remote PR. Removes the push -> create -> amend -> re-scan loop (F2/F3).--help/usage topr-contract.mjs,agent-pr-ready.mjs,agent-close-preflight.mjs(F-DISC).Follow-ups (separate slices): retag @v1; repo-template vendor + parity guard + close-scan Windows fix (RT-A); gate-label audit + ci:full seed (GW-B); trivial-edit lanes (RT-B).