Agent skill
makefile
Generate standard Makefile for Go projects with test, lint, clean, fmt, tidy, ci, and coverage targets following best practices
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/testing/makefile-thrawn01-claude-dotfiles
SKILL.md
Generate Standard Makefile
Generate a Makefile with standard targets for Go projects.
Required Targets
- test: Run
go test -v ./...to execute all tests - lint: Run
golangci-lint run ./...for linting - clean: Run
go cleanand remove coverage files (coverage.out, coverage.html) - fmt: Run
go fmt ./...and verify no changes withgit diff --exit-code - tidy: Run
go mod tidyand verify no changes withgit diff --exit-code - ci: Run all checks (tidy, fmt, lint, test) and display success message
- coverage: Generate coverage report and HTML output
Format Requirements
- Use
.PHONYdeclaration for all targets - Each command should use tab indentation
- The
citarget should display a green success message: "EVERYTHING PASSED!" - Coverage target should output the location of the HTML report
Template
makefile
.PHONY: test lint clean fmt tidy ci coverage
test:
go test -v ./...
lint:
golangci-lint run ./...
clean:
go clean
rm -f coverage.out coverage.html
fmt:
go fmt ./... && git diff --exit-code
tidy:
go mod tidy && git diff --exit-code
ci: tidy fmt lint test
@echo
@echo "\033[32mEVERYTHING PASSED!\033[0m"
coverage:
go test -coverprofile=coverage.out ./...
go tool cover -html=coverage.out -o coverage.html
@echo "Coverage report: coverage.html"
Create this Makefile at the root of the project. If the project needs additional targets (like proto for protocol buffers), ask the user first.
Didn't find tool you were looking for?