Skip to content
Development
Skill

/makefile-generation

Generates Makefiles with testing, linting, formatting, and automation targets. Use when starting a project or standardizing build automation.

From plugin
claude-night-market
337200 skills59 agents162 commands1 MCP
Install
$ npx -y skills add athola/claude-night-market --skill makefile-generation --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/makefile-generation

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generates Makefiles with testing, linting, formatting, and automation targets. Use when starting a project or standardizing build automation.

SKILL.md

makefile-generation.SKILL.md
name: makefile-generation
description: Generates Makefiles with testing, linting, formatting, and automation targets. Use when starting a project or standardizing build automation.
globs: "**/Makefile"
alwaysApply: false
# Custom metadata (not used by Claude for matching):
model: sonnet
tools: [Read, Write, Bash]
category: infrastructure
tags: [makefile, automation, build-tools, development-workflow]
complexity: low
model_hint: fast
estimated_tokens: 1200

Table of Contents

  • [When To Use](#when-to-use)
  • [Standard Targets](#standard-targets)
  • [Python Makefile](#python-makefile)
  • [Rust Makefile](#rust-makefile)
  • [TypeScript Makefile](#typescript-makefile)
  • [Workflow](#workflow)
  • [1. Detect Language](#1-detect-language)
  • [2. Load Template](#2-load-template)
  • [3. Collect Project Info](#3-collect-project-info)
  • [4. Render Template](#4-render-template)
  • [5. Verify](#5-verify)
  • [Customization](#customization)
  • [Related Skills](#related-skills)

Makefile Generation Skill

Generate a Makefile with standard development targets for Python, Rust, or TypeScript projects.

When To Use

  • Need a Makefile for a project without one
  • Want to update Makefile with new targets
  • Standardizing build automation across projects
  • Setting up development workflow commands
  • Creating language-specific build targets

When NOT To Use

  • Makefile already exists and is current
  • Project uses alternative build system exclusively (e.g., npm scripts only)
  • Complex custom build process that doesn't fit standard patterns
  • Use `/attune:upgrade-project` instead for updating existing Makefiles

Standard Targets

Python Makefile

**Common targets**:

  • `help` - Show available targets
  • `install` - Install dependencies with uv
  • `lint` - Run ruff linting
  • `format` - Format code with ruff
  • `typecheck` - Run mypy type checking
  • `test` - Run pytest
  • `test-coverage` - Run tests with coverage report
  • `check-all` - Run all quality checks
  • `clean` - Remove generated files and caches
  • `build` - Build distribution packages
  • `publish` - Publish to PyPI

Rust Makefile

**Common targets**:

  • `help` - Show available targets
  • `fmt` - Format with rustfmt
  • `lint` - Run clippy
  • `check` - Cargo check
  • `test` - Run tests
  • `build` - Build release binary
  • `clean` - Clean build artifacts

TypeScript Makefile

**Common targets**:

  • `help` - Show available targets
  • `install` - Install npm dependencies
  • `lint` - Run ESLint
  • `format` - Format with Prettier
  • `typecheck` - Run tsc type checking
  • `test` - Run Jest tests
  • `build` - Build for production
  • `dev` - Start development server

Workflow

1. Detect Language

# Check for language indicators
if [ -f "pyproject.toml" ]; then
    LANGUAGE="python"
elif [ -f "Cargo.toml" ]; then
    LANGUAGE="rust"
elif [ -f "package.json" ]; then
    LANGUAGE="typescript"
fi

**Verification:** Run the command with `--help` flag to verify availability.

2. Load Template

from pathlib import Path

template_path = Path("plugins/attune/templates") / language / "Makefile.template"

**Verification:** Run the command with `--help` flag to verify availability.

3. Collect Project Info

metadata = {
    "PROJECT_NAME": "my-project",
    "PROJECT_MODULE": "my_project",
    "PYTHON_VERSION": "3.10",
}

**Verification:** Run the command with `--help` flag to verify availability.

4. Render Template

from template_engine import TemplateEngine

engine = TemplateEngine(metadata)
engine.render_file(template_path, Path("Makefile"))

**Verification:** Run the command with `--help` flag to verify availability.

5. Verify

make help

**Verification:** Run `make --dry-run` to verify build configuration.

Customization

Users can add custom targets after the generated ones:

# ============================================================================
# CUSTOM TARGETS
# ============================================================================

deploy: build ## Deploy to production
	./scripts/deploy.sh

**Verification:** Run the command with `--help` flag to verify availability.

Related Skills

  • `Skill(attune:project-init)` - Full project initialization
  • `/abstract:make-dogfood` command - Makefile testing and validation

Exit Criteria

  • [ ] A `Makefile` is created at the project root containing at minimum a `help` target and

all standard targets for the detected language (Python: install/lint/format/typecheck/test; Rust: fmt/lint/check/test/build; TypeScript: install/lint/format/typecheck/test/build).

  • [ ] `make help` runs without error and lists all generated targets with descriptions.
  • [ ] `make --dry-run <target>` exits 0 for each standard target, confirming recipe syntax

is valid.

  • [ ] If no language is detected (no `pyproject.toml`, `Cargo.toml`, or `package.json`), the

skill reports the detection failure and stops rather than generating a blank Makefile.

Read more
Ships withclaude-night-market

A plugin marketplace for Claude Code. Install only the plugins you need to run git workflows, code review, spec-driven development, and autonomous agents from inside your Claude Code session.

Get the whole plugin

Other skills on claude-night-market.