chore(config): add .no-mistakes.yaml — run go test -race on every gated PR (eat our own dogfood)#310
Merged
Conversation
…ed PR Eat our own dogfood: ship a committed .no-mistakes.yaml so no-mistakes gates its own PRs deterministically instead of relying on agent auto-detection. The key addition is `go test -race ./...` as the baseline test command — the same command the Makefile `test:` target and the repo-config docs use as the canonical example. With this committed on the default branch, the race detector runs on every gated push and catches #1311-class concurrency races automatically, with no agent judgment in the loop. Commands mirror what maintainers already run locally (Makefile): - test: `go test -race ./...` (Makefile `test`) - lint: `make lint` (skill-check + `go vet ./...`) - format: `gofmt -w .` (Makefile `fmt`) Security: `allow_repo_commands` is intentionally left at its secure default (false). no-mistakes accepts external contributions, so the code-executing fields (`commands`, `agent`) must remain pinned to this default-branch copy — a contributor cannot inject shell or pick an agent from a pushed branch. This is exactly the supply-chain boundary the gate exists to enforce. Ref: docs/src/content/docs/reference/repo-config.md (canonical example)
Owner
|
Thanks @e-jung - merged! 🎉 Dogfooding |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Commits a
.no-mistakes.yamlto no-mistakes' own repo so it eats its own dogfood — every gated PR runs the exact test/lint/format commands maintainers run locally, deterministically, instead of relying on agent auto-detection.The highest-leverage addition is
commands.test: "go test -race ./..."as the baseline test command. With this pinned onmain, the race detector runs on every gated push and catches#1311-class concurrency races automatically — no agent judgment in the critical path. This is the canonical example from the repo-config docs and matches theMakefiletest:target.What's in the file
These mirror what maintainers already run (no invented commands):
testgo test -race ./...Makefiletest:lintmake lintMakefilelint:=skill-check+go vet ./...formatgofmt -w .Makefilefmt:Kept intentionally minimal — no
agent,ignore_patterns,auto_fix,intent, ortest.evidenceoverrides (all inherit global config / built-in defaults).Security
allow_repo_commandsis intentionally left at its secure default (false). no-mistakes accepts external contributions, so the code-executing fields (commands,agent) must stay pinned to this default-branch copy — a contributor cannot inject shell or pick an agent from a pushed branch. This is exactly the supply-chain boundary described inrepo-config.mdand enforced byEffectiveRepoConfig.Why deterministic
Today the gate's test/lint steps fall back to agent auto-detection when
commands.*are unset. That works, but it leaves the gate non-deterministic: the same diff could pass or fail depending on which tests the agent decides to run. Pinning the commands makes the gate reproducible and guarantees the race detector always runs — the whole point of a gate.Refs:
docs/src/content/docs/reference/repo-config.md,data/nm-plugins-design-x6/report.md§7.AI disclosure: Human-reviewed. This change was authored with AI assistance and reviewed by a human contributor before submission. The diff is a single 11-line config file.
Note on submission: This PR was opened directly from a contributor fork rather than through
git push no-mistakes, so theRequire no-mistakescheck will report as not-satisfied. This is the bootstrap config that makes future gated runs deterministic — once merged, subsequent PRs flow through the pipeline as normal. Flagging for your review.