You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[quality] PR template "Checks run locally" list is not gated against links.yml — already omits scripts/check-links.sh #268
scripts/ci-wiring.test.mjs keeps .github/workflows/links.yml and README ## Checks in step: every shell gate and self-test under scripts/ must be run by an unconditional CI step and described in README. #267 added .github/pull_request_template.md with a ## Checks run locally checklist naming the same gates, but no rule holds that list to the same standard — doc-paths.test.mjs only verifies that the backticked paths exist.
So the next scripts/check-*.sh (or *.test.sh) added to CI is forced into README by the existing rule while the template's checklist silently goes stale, and contributors stop running the new gate locally. It is already stale on day one: the template lists check-redirects.sh and both self-tests but not scripts/check-links.sh, which the links job runs on every PR with --external-warn.
Evidence (@d8850d2): node --test scripts/*.test.mjs → 749 pass; wiringProblems(...) with the template passed as a new prTemplate input reports exactly one live problem: .github/pull_request_template.md \## Checks run locally` does not list scripts/check-links.sh`.
Recommendation
Extend wiringProblems in scripts/ci-wiring.test.mjs with a prTemplate input: ## Checks run locally must exist, list node --test scripts/*.test.mjs (individual node gates run through the glob, so they need not be named), and list scripts/<name> for every shell gate and self-test — the same rule README ## Checks already obeys. Fixture self-tests for each rejection arm, plus the live tree check.
Add scripts/check-links.sh --external-warn to the template's checklist so the live check passes.
Decision taken by hive: the template rule mirrors the README rule exactly (all shell gates + self-tests + the node glob) rather than a subset, so there is one definition of "the local checks".
Priority
Impact: medium (regression-risk — the template is the inventory contributors actually run)
Activity