Claude-night-market makefile-generation

Generate Makefiles with testing, linting, formatting, and automation targets for new projects.

install
source · Clone the upstream repo
git clone https://github.com/athola/claude-night-market
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/athola/claude-night-market "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/attune/skills/makefile-generation" ~/.claude/skills/athola-claude-night-market-makefile-generation && rm -rf "$T"
manifest: plugins/attune/skills/makefile-generation/SKILL.md
source content

Table of Contents

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
  • Skill(abstract:makefile-dogfooder)
    - Makefile testing and validation