Claude Skill

makefile-generation

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

LLM Mart · 0 points · 6 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download athola-claude-night-market-plugins_attune_skills_makefile-generation-9045831.zip · 1 KB
Part of athola/claude-night-market — 46 skills

Install

skills CLI npx skills add https://github.com/athola/claude-night-market/tree/master/plugins/attune/skills/makefile-generation
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install athola-claude-night-market@llmmart
Git git clone https://github.com/athola/claude-night-market.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole athola/claude-night-market collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

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.
Files (claude-night-market)
  • SKILL.md 4.4 KB
    ---
    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
    ---
    
    # 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
    
    ```bash
    # 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
    
    ```python
    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
    
    ```python
    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
    
    ```python
    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
    
    ```bash
    make help
    ```
    **Verification:** Run `make --dry-run` to verify build configuration.
    
    ## Customization
    
    Users can add custom targets after the generated ones:
    
    ```makefile
    # ============================================================================
    # 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.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related