
Configure Makefile
- 53 installs
- 49 repo stars
- Updated August 4, 2026
- laurigates/claude-plugins
Helps with ai & agent building tasks.
About
configure-makefile is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- configure-makefile
- AI & Agent Building
- AI-coding skill
Configure Makefile by the numbers
- 53 all-time installs (skills.sh)
- Ranked #7,039 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/laurigates/claude-plugins --skill configure-makefileAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 53 |
|---|---|
| repo stars | ★ 49 |
| Last updated | August 4, 2026 |
| Repository | laurigates/claude-plugins ↗ |
What it does
Helps with ai & agent building tasks.
Files
/configure:makefile
Check and configure project Makefile against project standards.
When to Use This Skill
| Use this skill when... | Use another approach when... |
|---|---|
| Setting up a new Makefile for a project that requires Make | Project can use Just instead — use /configure:justfile (preferred) |
| Auditing existing Makefile for missing standard targets | Writing complex build rules with dependencies — consult GNU Make documentation |
| Ensuring Makefile follows team conventions (help target, PHONY, colors) | Project uses a language-native build system (cargo, go build) exclusively |
| Running CI/CD compliance checks on Makefile structure | Migrating from Makefile to Justfile — use /configure:justfile which handles migration |
| Adding language-specific build/test/lint targets to existing Makefile | Debugging a specific Make target — run make -n <target> directly |
Context
- Project root: !
pwd - Makefile exists: !
find . -maxdepth 1 -name 'Makefile' - Makefile targets: !
grep -E '^[a-zA-Z_-]+:' Makefile - Package files: !
find . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \) - Docker files: !
find . -maxdepth 1 \( -name 'Dockerfile' -o -name 'docker-compose.yml' -o -name 'compose.yml' \) - Server files: !
find src -maxdepth 1 \( -name 'server.*' -o -name 'main.*' \)
Parameters
Parse from $ARGUMENTS:
--check-only: Report Makefile compliance status without modifications--fix: Apply fixes automatically without prompting
Required Makefile targets: help, test, build, clean, lint
Execution
Execute this Makefile compliance check:
Step 1: Detect project type
Read the context values and determine project type (in order):
1. Python: pyproject.toml or requirements.txt present 2. Node: package.json present 3. Rust: Cargo.toml present 4. Go: go.mod present 5. Generic: None of the above
Check for service indicators (start/stop needed):
- Has
docker-compose.ymlorcompose.yml-> Docker Compose service - Has
Dockerfile+ HTTP server code -> Container service - Has
src/server.*orsrc/main.*-> Application service
Step 2: Analyze existing Makefile targets
If Makefile exists, check against required targets:
Required targets for all projects:
| Target | Purpose |
|---|---|
help | Display available targets (default goal) |
test | Run test suite |
build | Build project artifacts |
clean | Remove temporary files and build artifacts |
lint | Run linters |
Additional targets (context-dependent):
| Target | When Required |
|---|---|
start | If project has runnable service |
stop | If project has background service |
format | If project uses auto-formatters |
Step 3: Run compliance checks
| Check | Standard | Severity |
|---|---|---|
| File exists | Makefile present | FAIL if missing |
| Default goal | .DEFAULT_GOAL := help | WARN if missing |
| PHONY declarations | All targets marked .PHONY | WARN if missing |
| Colored output | Color variables defined | INFO |
| Help target | Auto-generated from comments | WARN if missing |
| Language-specific | Commands match project type | FAIL if mismatched |
Step 4: Generate compliance report
Print a report showing:
- Project type (detected)
- Each target with PASS/FAIL status and the command used
- Makefile structural checks (default goal, PHONY, colors, help)
- Missing targets list
- Issue count
If --check-only is set, stop here.
Step 5: Create or update Makefile (if --fix or user confirms)
1. Missing Makefile: Create from standard template using the detected project type 2. Missing targets: Add targets with appropriate language-specific commands 3. Missing defaults: Add .DEFAULT_GOAL, .PHONY, color variables 4. Missing help: Add auto-generated help target using awk comment parsing
Use the language-specific commands below:
Python (uv-based):
lint:@uv run ruff check .format:@uv run ruff format .test:@uv run pytestbuild:@docker build -t {{PROJECT_NAME}} .clean:@find . -type f -name "*.pyc" -delete+ remove cache dirs
Node.js:
lint:@npm run lintformat:@npm run formattest:@npm testbuild:@npm run buildclean:@rm -rf node_modules/ dist/ .next/ .turbo/
Rust:
lint:@cargo clippy -- -D warningsformat:@cargo fmttest:@cargo nextest runbuild:@cargo build --releaseclean:@cargo clean
Go:
lint:@golangci-lint runformat:@gofmt -s -w .test:@go test ./...build:@go build -o bin/{{PROJECT_NAME}}clean:@rm -rf bin/ dist/+@go clean
Step 6: Update standards tracking
Update .project-standards.yaml:
components:
makefile: "2025.1"Step 7: Print final report
Print a summary of changes applied, targets added, and suggest running make help to verify.
For the universal Makefile template structure, see REFERENCE.md.
Agentic Optimizations
| Context | Command |
|---|---|
| Quick compliance check | /configure:makefile --check-only |
| Auto-fix all issues | /configure:makefile --fix |
| List existing targets | grep -E '^[a-zA-Z_-]+:' Makefile |
| Dry-run a target | make -n <target> |
| Show default goal | `make -p \ |
Flags
| Flag | Description |
|---|---|
--check-only | Report status without offering fixes |
--fix | Apply fixes automatically |
Examples
# Check current Makefile compliance
/configure:makefile --check-only
# Create/update Makefile for Python project
/configure:makefile --fix
# Check compliance and prompt for fixes
/configure:makefileSee Also
/configure:all- Run all compliance checks/configure:workflows- GitHub Actions workflows/configure:dockerfile- Docker configuration
Makefile Configuration Reference
Universal Makefile template and language-specific command patterns.
Universal Makefile Template
# Makefile for {{PROJECT_NAME}}
# Provides common commands for development, testing, and building.
# Colors for console output
BLUE := \033[0;34m
GREEN := \033[0;32m
YELLOW := \033[1;33m
RED := \033[0;31m
NC := \033[0m # No Color
.DEFAULT_GOAL := help
.PHONY: help test build clean lint format start stop
##@ Help
help: ## Display this help message
@awk 'BEGIN {FS = ":.*##"; printf "\n$(BLUE)Usage:$(NC)\n make $(GREEN)<target>$(NC)\n"} \
/^[a-zA-Z_0-9-]+:.*?##/ { printf " $(BLUE)%-15s$(NC) %s\n", $$1, $$2 } \
/^##@/ { printf "\n$(YELLOW)%s$(NC)\n", substr($$0, 5) } ' $(MAKEFILE_LIST)
@echo ""
##@ Development
lint: ## Run linters
@echo "$(BLUE)Running linters...$(NC)"
{{LINT_COMMAND}}
format: ## Format code
@echo "$(BLUE)Formatting code...$(NC)"
{{FORMAT_COMMAND}}
test: ## Run tests
@echo "$(BLUE)Running tests...$(NC)"
{{TEST_COMMAND}}
##@ Build & Deploy
build: ## Build project
@echo "$(BLUE)Building project...$(NC)"
{{BUILD_COMMAND}}
clean: ## Clean up temporary files and build artifacts
@echo "$(BLUE)Cleaning up...$(NC)"
{{CLEAN_COMMAND}}
start: ## Start service
@echo "$(BLUE)Starting service...$(NC)"
{{START_COMMAND}}
stop: ## Stop service
@echo "$(BLUE)Stopping service...$(NC)"
{{STOP_COMMAND}}Language-Specific Templates
Python (uv-based)
lint:
@uv run ruff check .
format:
@uv run ruff format .
test:
@uv run pytest
build:
@docker build -t {{PROJECT_NAME}} .
clean:
@find . -type f -name "*.pyc" -delete
@find . -type d -name "__pycache__" -delete
@rm -rf .pytest_cache .ruff_cache dist/ build/Node.js
lint:
@npm run lint
format:
@npm run format
test:
@npm test
build:
@npm run build
@docker build -t {{PROJECT_NAME}} .
clean:
@rm -rf node_modules/ dist/ .next/ .turbo/Rust
lint:
@cargo clippy -- -D warnings
format:
@cargo fmt
test:
@cargo nextest run
build:
@cargo build --release
@docker build -t {{PROJECT_NAME}} .
clean:
@cargo cleanGo
lint:
@golangci-lint run
format:
@gofmt -s -w .
test:
@go test ./...
build:
@go build -o bin/{{PROJECT_NAME}}
@docker build -t {{PROJECT_NAME}} .
clean:
@rm -rf bin/ dist/
@go cleanCompliance Report Template
Makefile Compliance Report
==============================
Project Type: [detected type]
Makefile: [Found | Missing]
Target Status:
help [PASS | FAIL (missing)]
test [PASS | FAIL (missing)]
build [PASS | FAIL (missing)]
clean [PASS | FAIL (missing)]
lint [PASS | FAIL (missing)]
format [PASS | FAIL (missing)]
start [PASS | FAIL (missing) | N/A]
stop [PASS | FAIL (missing) | N/A]
Makefile Checks:
Default goal [PASS (.DEFAULT_GOAL := help) | FAIL]
PHONY declarations [PASS | FAIL]
Colored output [PASS | FAIL]
Help target [PASS (auto-generated) | FAIL]
Missing Targets: [list]
Issues: [count] found