Skip to content

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

Open

Description

@cemililik

Deferred work · S1-addendum: tools/gauntlet.sh · severity Low · cost ~2-4 h · recorded in docs/roadmap/risks-and-decisions.md:250

Summary

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.

Recorded in docs/roadmap/risks-and-decisions.md (read at f94595f) and re-checked against the code on 2026-10-09.

Activity

  1. added
    severity: lowMinor defect, inaccuracy or rough edge
    wave: 4Roadmap wave 4: low / info / watch, when touching the module
    source: roadmapPlanned or deferred work recorded in docs/roadmap/
    deferredDeferred with a recorded condition: check that it holds before starting
    on Oct 9, 2026
  2. cemililik commented on Oct 16, 2026

    @cemililik
    CollaboratorAuthor

    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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: dev-toolingCode area: dev-toolingdeferredDeferred with a recorded condition: check that it holds before startingseverity: lowMinor defect, inaccuracy or rough edgesource: roadmapPlanned or deferred work recorded in docs/roadmap/wave: 4Roadmap wave 4: low / info / watch, when touching the module

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions