configure-makefile

安装量: 46
排名: #15914

安装

npx skills add https://github.com/laurigates/claude-plugins --skill configure-makefile
/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
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):
Python
:
pyproject.toml
or
requirements.txt
present
Node
:
package.json
present
Rust
:
Cargo.toml
present
Go
:
go.mod
present
Generic
None of the above
Check for service indicators (start/stop needed):
Has
docker-compose.yml
or
compose.yml
-> Docker Compose service
Has
Dockerfile
+ HTTP server code -> Container service
Has
src/server.*
or
src/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)
Missing Makefile
Create from standard template using the detected project type
Missing targets
Add targets with appropriate language-specific commands
Missing defaults
Add
.DEFAULT_GOAL
,
.PHONY
, color variables
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 pytest build : @docker build -t {{PROJECT_NAME}} . clean : @find . -type f -name "*.pyc" -delete + remove cache dirs Node.js: lint : @npm run lint format : @npm run format test : @npm test build : @npm run build 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 clean : @cargo clean Go: lint : @golangci-lint run format : @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 Show default goal make -p | grep '.DEFAULT_GOAL' 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:makefile See Also /configure:all - Run all compliance checks /configure:workflows - GitHub Actions workflows /configure:dockerfile - Docker configuration

返回排行榜