--- name: check description: Format, lint, test, and build. Use before every commit. --- # Check Run every command in the Nix development shell. Use `nix develop -c COMMAND` when direnv does not load the shell. ## Procedure 1. Format all files with `bin/format`. 2. Run the checks with `bin/check`. Its golangci-lint config keeps the standard linters and adds `errorlint`, `gocritic`, `testifylint`, `revive`, `wrapcheck`, `nlreturn`, and `wsl_v5`. The settings in `.golangci.yml` match the Go rules. 3. Run `git add` on new files, then run `nix build` and `nix flake check`. 4. Fix every failure and run the steps again. Do not disable a linter or add a `nolint` directive to get a pass, unless the user agrees. 5. Review the final diff against the rules. Passing tools do not replace this review. - Read `AGENTS.md` and the `SKILL.md` of each skill of the task again from disk now. Do not work from memory of an earlier read. - Go through the diff one rule at a time, and for each rule look at every changed line that it covers. For Go code, check each section of `go-code`, also for the tests. - Fix each finding, then run steps 1 to 4 again. Tell the user about each check that cannot run and each failure that stays.