A minimal, batteries-included Go template for new projects. Skip the boilerplate — start from a clean, idiomatic scaffold with linting, CI/CD, releases, and agent tooling already wired up.
- Idiomatic scaffold — a no-op
main.goplus the conventionalcmd/,internal/, andpkg/layout, ready for your first package. - Linting & formatting —
golangci-lintv2 (formatters +default: alllinters) in CI, with MegaLinter covering everything else. A pre-commit hook runsgolangci-lintformatting (andmockerymock generation) locally on commit. - CI/CD — a required-checks workflow on pull requests and the merge queue, plus a GoReleaser release pipeline (
cd.yaml) triggered onv*tags. - Coverage —
go testcoverage reported via GitHub Code Quality. - Dependency management — Dependabot keeps Go modules and pinned GitHub Actions current (daily).
- Agent-ready —
AGENTS.mdconventions and a.claude/skills/maintaincard so the autonomous Daily AI Assistant (and any agentic tool) can maintain the repo.
The minimum Go version is declared in go.mod — the single source of truth.
Create a new repository from the template with the GitHub CLI:
gh repo create my-project --template devantler-tech/go-template --public --clone
cd my-projectOr click Use this template on the repository page.
Then point the module at your own path:
go mod edit -module github.com/<you>/my-project
go mod tidygo get example.com/awesome-lib@latestgo build ./...go run ./<project>go test ./...This template is maintained by an autonomous AI assistant. The conventions, validation commands, and contribution workflow live in AGENTS.md.