AGENTS.md · git:20261006.0c6a8b0 · 2026-10-06 · sha256 4dc060be7e4f25d7
AGENTS.md git:20261006.0c6a8b0A
Immutable. This exact content never changes and is served at /api/v1/blob/4dc060be7e4f25d7.
# AGENTS.md `claude-code-gauntlet` is a Claude Code marketplace plugin: a multi-agent code review pipeline. There is no server, database, or Docker. Running it means running the suites below. `workflows/` and `agents/` each carry a short `AGENTS.md` of their own. `CONTRIBUTING.md` holds the CI coverage gates and everything else a human contributor needs. ## Design - **Build the mechanism, not the instruction.** Whatever code, a schema, a data structure, or a removed capability can enforce, it must. Prose in a prompt or agent file is the fallback. - **"Add more text" is a design smell.** If that is the fix under consideration, change the shape. - **Extending should cost one edit.** If a new dimension, field, or agent takes coordinated edits across several files, fix the shape instead of documenting the ritual. ## Commands ```bash python -m pytest tests/ -q # pipeline scripts python -m pytest bench/tests/ -q # benchmark harness node --test workflows/test/*.test.js # Node 24; a bare directory is not a valid target node workflows/build.js # after editing workflows/src; commit the bundle python3 workflows/test/tools/biome_check.py pre-commit run --all-files # the lint gate ``` pre-commit sees tracked files only, so `git add` a new file before trusting a green run. `markdownlint-fix` fixes in place and then reports failure: re-stage and re-run. ## Constraints - **No `package.json`, lockfile, or `node_modules`.** `scripts/` is stdlib-only Python 3.10, and the shipped bundle has zero dependencies. - **Language-agnostic.** Never assume the reviewed codebase's language: exclude non-source directories, never include by extension. - **Python shape.** A JSON wire shape is a `TypedDict`, an internal record is a frozen slotted dataclass, a closed vocabulary is a `Literal`. `scripts/*.py` are thin entry files; logic lives in `scripts/gauntlet/`. - **New and rewritten tests are pytest functions** that prove a behaviour once, at the boundary callers use. A regression test must fail against the bug it names: mutate the whole mechanism and watch it go red, because a partial mutation falls through to a neighbouring fallback and passes. - **Comments say why.** No history, dates, or issue numbers in code; those belong in the PR. - **Never write the literal skip-ci token in a commit message**, even when writing about it. GitHub Actions scans the whole message and silently skips every workflow. - **Session scratch stays out of the tree.** Plans, memos, and handoff notes go in the PR or the issue. Coverage data files stay out too: set `COVERAGE_FILE` to a temp path. ## Adding to this file A line belongs here only if removing it would cause a mistake that no test, lint rule, or comment at the code would catch. A test pins the size of these files, so an addition displaces something.