configure-makefile

Check and configure project Makefile against project standards.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "configure-makefile" with this command: npx skills add laurigates/claude-plugins/laurigates-claude-plugins-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 <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):

  • 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 <target>

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

ruff linting

No summary provided by upstream source.

Repository SourceNeeds Review
General

imagemagick-conversion

No summary provided by upstream source.

Repository SourceNeeds Review
General

jq json processing

No summary provided by upstream source.

Repository SourceNeeds Review