My template repo for Go projects.
- Makefile with targets for formatting, linting, building, and testing
.golangci.ymlwith 42+ linters configured (golangci-lint v2)scripts/directory with shell scripts for all build/format/lint/test operations- GitHub Actions workflows for CI (build, formatting, linting, shellcheck, unit tests)
- GitHub templates for issues and pull requests
- Create a new repo from this template
- Update
go.modmodule path - Update
THISinMakefileto match the new module path - Update
prefix()sections in.golangci.ymlformatters - Update module path in
scripts/test.sh,scripts/format_imports.sh, andscripts/build.sh - Update
CLAUDE.mdwith project-specific details - Run
make setup
make setup # Install dev tools + vendor deps
make format # Format all Go code
make lint # Run golangci-lint + shellcheck
make test # Run tests with race detector
make build # Build all packages