Skip to content

Repo Config Reference

Per-repo configuration lives in .no-mistakes.yaml at the root of your repository.

.no-mistakes.yaml
agent: codex
commands:
lint: "golangci-lint run ./..."
test: "go test -race ./..."
format: "gofmt -w ."
ignore_patterns:
- "*.generated.go"
- "vendor/**"
auto_fix:
rebase: 3
review: 3
test: 3
document: 3
lint: 5
ci: 3
intent:
enabled: true
threshold: 0.2
slack_days: 3
disabled_readers: []
test:
evidence:
store_in_repo: true
dir: .no-mistakes/evidence

Fields

agent

Override the default agent for this repo and its setup-wizard suggestions.

Typestring
Valuesauto, claude, codex, rovodev, opencode, pi, acp:<target>
DefaultInherits from global config

auto resolves to the first supported native agent found on PATH in this order: claude, codex, opencode, acli with rovodev support, then pi. acp:<target> uses the user-installed acpx binary configured in global config. ACP agents are opt-in and are not considered by agent: auto.

commands.test

Explicit test command. Run via the platform shell - sh -c on POSIX, cmd.exe /c on Windows.

Typestring
DefaultEmpty (agent auto-detects tests and evidence checks)

When set, the test step runs this exact command first as the baseline and checks the exit code. When empty, the agent detects and runs relevant tests itself. When user intent is available, the agent may still run after a successful baseline command to gather evidence-oriented validation.

commands.lint

Explicit lint command. Run via the platform shell - sh -c on POSIX, cmd.exe /c on Windows.

Typestring
DefaultEmpty (agent auto-detects)

When set, the lint step runs this exact command and checks the exit code. When empty, the agent detects relevant linters and formatters, applies safe fixes, reruns the relevant checks, commits any agent changes, and reports only unresolved issues.

commands.format

Formatter command run before the push step commits agent fixes.

Typestring
DefaultEmpty (no separate push-step formatter)

This does not prevent empty commands.lint from detecting and running formatters during the lint step.

ignore_patterns

Paths to exclude from review and documentation checks.

Typestring[]
DefaultEmpty (no ignores)

Pattern matching rules:

PatternRule
*.generated.goNo slash - matches by basename
vendor/**Ends with /** - matches entire subtree
some/path/file.goContains a slash - full path glob

auto_fix

Override auto-fix attempt limits for specific steps. Fields not set here inherit from global config.

Typeobject
FieldTypeDefault
auto_fix.rebaseintInherits from global (default 3)
auto_fix.reviewintInherits from global (default 0)
auto_fix.testintInherits from global (default 3)
auto_fix.documentintInherits from global (default 3)
auto_fix.lintintInherits from global (default 3)
auto_fix.ciintInherits from global (default 3)

Set to 0 to disable the follow-up auto-fix loop for a step (findings require manual approval). The document step attempts documentation fixes during its initial pass, so unresolved documentation findings pause for approval instead of using an automatic follow-up loop. For empty commands.lint, the agent still attempts safe fixes during the initial lint pass; unresolved lint findings then pause for approval instead of starting another automatic fix loop.

auto_fix.ci covers the CI step’s CI failure and merge-conflict auto-fix attempts.

Legacy alias: auto_fix.babysit.

intent

Override transcript-based user-intent extraction settings for this repo. Fields not set here inherit from global config and then the built-in defaults.

FieldTypeDefault
intent.enabledboolInherits from global (default true)
intent.thresholdfloatInherits from global (default 0.2)
intent.slack_daysintInherits from global (default 3)
intent.disabled_readersstring[]Adds to globally disabled readers

Valid disabled_readers values are claude, codex, opencode, rovodev, and pi.

test.evidence

Override where evidence artifacts from the test step are stored. Fields not set here inherit from global config and then the built-in defaults.

FieldTypeDefault
test.evidence.store_in_repoboolInherits from global (default false)
test.evidence.dirstringInherits from global (default .no-mistakes/evidence)

By default, test evidence stays in a temporary directory keyed by run ID and is referenced by local path. Set store_in_repo: true to write evidence under <dir>/<branch-slug> inside the worktree so push can commit and publish it with the branch. Branch slashes become nested directories, unsafe branch characters are replaced, and an empty branch slug falls back to the run ID. If dir is absolute, escapes the worktree, points into .git, crosses a symlink, or is ignored by Git, no-mistakes falls back to temporary evidence storage for that run.