version: '3' tasks: generate: desc: Run templ generate cmds: [templ generate] build: desc: Build the binary deps: [generate] cmds: [go build -o bin/__PROJECT_NAME__ ./cmd/__PROJECT_NAME__] run: deps: [build] cmds: [./bin/__PROJECT_NAME__] test: desc: Run all tests deps: [generate] cmds: [go test ./... -race] lint: cmds: [golangci-lint run ./...] check: desc: Lint, vet, and test (used by CI) deps: [generate] cmds: - golangci-lint run ./... - go vet ./... - go test ./... -race -count=1 # The template guard decides whether CI runs at all in every child repo, # so its regression test belongs in the same gate as the Go tests. - bash scripts/tests/is-template_test.sh # The three Go commands above cannot see cmd/__PROJECT_NAME__ -- Go's # ./... expansion skips directories whose names start with an underscore. # This gates the substituted result, which is what a child actually runs. - bash scripts/tests/generated-child_test.sh context:sync: desc: Regenerate all harness-specific context files cmds: - bash scripts/context-sync.sh context:sync:claude: cmds: [bash scripts/context-sync.sh claude] context:sync:agents: cmds: [bash scripts/context-sync.sh agents]