From configure-plugin
Checks and configures project Makefile with standard targets (help, test, build, clean, lint) for Python, Node, Rust, Go, or generic projects. Detects project type and services; supports --check-only and --fix.
How this skill is triggered — by the user, by Claude, or both
Slash command
/configure-plugin:configure-makefileThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Check and configure project Makefile against project standards.
Check and configure project Makefile against project standards.
| 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 |
pwdfind . -maxdepth 1 -name 'Makefile'grep -E '^[a-zA-Z_-]+:' Makefilefind . -maxdepth 1 \( -name 'package.json' -o -name 'pyproject.toml' -o -name 'Cargo.toml' -o -name 'go.mod' \)find . -maxdepth 1 \( -name 'Dockerfile' -o -name 'docker-compose.yml' -o -name 'compose.yml' \)find src -maxdepth 1 \( -name 'server.*' -o -name 'main.*' \)Parse from $ARGUMENTS:
--check-only: Report Makefile compliance status without modifications--fix: Apply fixes automatically without promptingRequired Makefile targets: help, test, build, clean, lint
Execute this Makefile compliance check:
Read the context values and determine project type (in order):
pyproject.toml or requirements.txt presentpackage.json presentCargo.toml presentgo.mod presentCheck for service indicators (start/stop needed):
docker-compose.yml or compose.yml -> Docker Compose serviceDockerfile + HTTP server code -> Container servicesrc/server.* or src/main.* -> Application serviceIf 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 |
| 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 |
Print a report showing:
If --check-only is set, stop here.
.DEFAULT_GOAL, .PHONY, color variablesUse 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 dirsNode.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 cleanGo:
lint: @golangci-lint runformat: @gofmt -s -w .test: @go test ./...build: @go build -o bin/{{PROJECT_NAME}}clean: @rm -rf bin/ dist/ + @go cleanUpdate .project-standards.yaml:
components:
makefile: "2025.1"
Print a summary of changes applied, targets added, and suggest running make help to verify.
For the universal Makefile template structure, see REFERENCE.md.
| 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 | grep '.DEFAULT_GOAL' |
| Flag | Description |
|---|---|
--check-only | Report status without offering fixes |
--fix | Apply fixes automatically |
# Check current Makefile compliance
/configure:makefile --check-only
# Create/update Makefile for Python project
/configure:makefile --fix
# Check compliance and prompt for fixes
/configure:makefile
/configure:all - Run all compliance checks/configure:workflows - GitHub Actions workflows/configure:dockerfile - Docker configurationnpx claudepluginhub laurigates/claude-plugins --plugin configure-pluginGenerates Makefiles for C/C++, Python, Go, Java projects with .PHONY targets, GNU standards, standard targets, security hardening, and CI/CD integration.
Generates Makefiles for Python, Rust, and TypeScript projects with standard targets for help, install, lint, format, typecheck, test, build, clean, and automation. Use when projects lack Makefiles or need dev workflow setup.
Creates Makefiles with consistent conventions: default help target, .PHONY declarations, self-documenting help via grep/parsing, common targets like init, build, dev, test. Reminds to use tabs.