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
Replace the ~31-command self-review chain triplicated in CLAUDE.md, AGENTS.md and CONTRIBUTING.md with tools/gauntlet.sh — deferred until a decision row approves it #920
The gauntlet is copied three times, and tests/test_guard_wiring.py exists partly to keep the copies identical and to catch a trailing || true that would bind to the whole && chain. The S1 addendum called a single tools/gauntlet.sh genuinely attractive — it deletes the doc-versus-doc half of the meta-test and makes the || true precedence hazard structurally unreachable — but deferred it because it changes the contributor-facing procedure while Phase 16 steps were still landing.
Condition or budget
Its own decision row in risks-and-decisions.md first; proposed for Phase 16 S14 (#900) or S16 (#902).
State today (re-checked 2026-10-09)
No tools/gauntlet.sh exists; the chain is triplicated between the gauntlet markers of the three documents.
Related
#703 (the gauntlet is not the full CI pull-request surface) and #717 (|| true wording).
Acceptance criteria
A decision row records the change; the three documents and the meta-test call the script, and the doc-versus-doc comparison is retired.
Besides the three full copies, two partial copies of the gauntlet exist, and both have drifted. Found while working on #951.
docs/standards/code-review.md, "Quick self-review command": it says the gauntlet "starts:" with the import-origin guard, ruff, pytest, --dry-run and check_bilingual_parity. In the real chain, pytest is followed by:
node --test tests/site/*.test.cjs, then --dry-run;
mypy --strict;
the field-description, HTTP-discipline, mutation-artifact, strict-JSON and CI failure-masking guards;
and only then check_bilingual_parity.
The review-pr skill (.claude/skills/review-pr/SKILL.md and its .agents/skills/review-pr/ mirror) shows the same start, then ... # every remaining tools/check_*.py guard listed in CLAUDE.md. That leaves out node --test and mypy, which are not tools/check_*.py guards.
If tools/gauntlet.sh lands, both should point at it instead of quoting a prefix. Until then, each excerpt should match the real first lines, or say that it is a sample rather than the start.
Activity
cemililik commentedon Oct 16, 2026
Besides the three full copies, two partial copies of the gauntlet exist, and both have drifted. Found while working on #951.
docs/standards/code-review.md, "Quick self-review command": it says the gauntlet "starts:" with the import-origin guard,ruff,pytest,--dry-runandcheck_bilingual_parity. In the real chain,pytestis followed by:node --test tests/site/*.test.cjs, then--dry-run;mypy --strict;check_bilingual_parity..claude/skills/review-pr/SKILL.mdand its.agents/skills/review-pr/mirror) shows the same start, then... # every remaining tools/check_*.py guard listed in CLAUDE.md. That leaves outnode --testandmypy, which are nottools/check_*.pyguards.If
tools/gauntlet.shlands, both should point at it instead of quoting a prefix. Until then, each excerpt should match the real first lines, or say that it is a sample rather than the start.