version: "3" # Quality gate for Tapir. `task check` is THE gate referenced by ADR-009 and the # CI workflow. Run it before every push (TBD: commit directly to main). tasks: default: cmds: - task: check check: desc: Full quality gate — fmt check, vet, lint, test. cmds: - task: fmt-check - task: vet - task: lint - task: test fmt: desc: Format all Go code. cmds: - gofmt -w . fmt-check: desc: Fail if any file is not gofmt-clean. cmds: - "test -z \"$(gofmt -l .)\" || { echo 'gofmt: files need formatting:'; gofmt -l .; exit 1; }" vet: desc: go vet. cmds: - go vet ./... lint: desc: golangci-lint (installed by CI; skipped locally if absent). cmds: - 'command -v golangci-lint >/dev/null 2>&1 && golangci-lint run ./... || echo "golangci-lint not installed — skipping (CI installs it)"' test: desc: Run all tests, including the acceptance suite (RED until the engine is implemented). cmds: - go test ./... generate: desc: Regenerate Templ components (*_templ.go) from *.templ sources. cmds: - 'command -v templ >/dev/null 2>&1 && templ generate || go run github.com/a-h/templ/cmd/templ@latest generate' build: desc: Compile the binary. cmds: - go build -o bin/tapir ./cmd/tapir skills: desc: Wire the engineering skills library into this repo (symlinks, gitignored). cmds: - curl -fsSL https://gitea.d-ma.be/mathias/skills/raw/branch/main/install.sh | bash