
Makefile Generation
- 105 installs
- 325 repo stars
- Updated August 2, 2026
- athola/claude-night-market
makefile-generation is an agent skill that generates or updates Makefiles with test, lint, format, and automation targets for Python, Rust, or TypeScript projects.
About
makefile-generation is an agent skill that writes or updates Makefiles for solo and indie builders who want one command surface for testing, linting, formatting, and routine automation. It fits early in a repo lifecycle when there is no Makefile yet, when an old Makefile is missing modern targets, or when you are standardizing the same `make` verbs across several stacks. The skill follows a fixed pipeline: detect the primary language, load the Python/Rust/TypeScript template, gather project-specific names and tools, render the file, then verify targets run. It is aimed at Claude Code–style agents with read, write, and shell access, not at replacing npm-only or exclusively Bazel-style pipelines where Make is never the source of truth. Use it to reduce tribal knowledge about how to run checks before ship and to give coding agents predictable, documented entry points instead of ad-hoc shell one-liners.
- Detects Python, Rust, or TypeScript and picks a matching Makefile template
- Standard targets for test, lint, format, and common automation workflows
- Five-step workflow: detect language → load template → collect project info → render → verify
- Supports creating a new Makefile or extending an existing one with new targets
- Globs Makefile paths so the skill can align with repo layout
Makefile Generation by the numbers
- 105 all-time installs (skills.sh)
- Ranked #779 of 2,715 Automation & Workflows skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/athola/claude-night-market --skill makefile-generationAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 105 |
|---|---|
| repo stars | ★ 325 |
| Security audit | 3 / 3 scanners passed |
| Last updated | August 2, 2026 |
| Repository | athola/claude-night-market ↗ |
What it does
Scaffold or refresh a project Makefile so `make test`, `make lint`, and `make fmt` work the same way across Python, Rust, or TypeScript repos.
Who is it for?
Greenfield or small-team repos where you want Make as the single dev command layer across Python, Rust, or TypeScript.
Skip if: Repos that already have a current, complete Makefile, or projects that rely exclusively on another build system with no intent to use Make.
When should I use this skill?
Starting a project or standardizing build automation when you need testing, linting, formatting, and automation targets in a Makefile.
What you get
You get a language-aware Makefile with standard targets and a verified workflow so agents and you can run the same commands via `make` instead of hunting scripts.
- Rendered Makefile with standard test, lint, format, and automation targets
- Language-specific template applied after project metadata collection
By the numbers
- Supports three language templates: Python, Rust, and TypeScript
- Five-step workflow from language detection through verify
Files
Table of Contents
- When To Use
- Standard Targets
- Python Makefile
- Rust Makefile
- TypeScript Makefile
- Workflow
- 1. Detect Language
- 2. Load Template
- 3. Collect Project Info
- 4. Render Template
- 5. Verify
- Customization
- 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-projectinstead for updating existing Makefiles
Standard Targets
Python Makefile
Common targets:
help- Show available targetsinstall- Install dependencies with uvlint- Run ruff lintingformat- Format code with rufftypecheck- Run mypy type checkingtest- Run pytesttest-coverage- Run tests with coverage reportcheck-all- Run all quality checksclean- Remove generated files and cachesbuild- Build distribution packagespublish- Publish to PyPI
Rust Makefile
Common targets:
help- Show available targetsfmt- Format with rustfmtlint- Run clippycheck- Cargo checktest- Run testsbuild- Build release binaryclean- Clean build artifacts
TypeScript Makefile
Common targets:
help- Show available targetsinstall- Install npm dependencieslint- Run ESLintformat- Format with Prettiertypecheck- Run tsc type checkingtest- Run Jest testsbuild- Build for productiondev- 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"
fiVerification: 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 helpVerification: 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.shVerification: Run the command with --help flag to verify availability.
Related Skills
Skill(attune:project-init)- Full project initialization/abstract:make-dogfoodcommand - Makefile testing and validation
Exit Criteria
- [ ] A
Makefileis created at the project root containing at minimum ahelptarget 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 helpruns 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, orpackage.json), the
skill reports the detection failure and stops rather than generating a blank Makefile.
Related skills
How it compares
Use instead of copying Makefile snippets by hand or leaving test/lint commands undocumented in README-only form.
FAQ
Who is makefile-generation for?
Developers—and agents helping them—who want predictable `make test`, `make lint`, and `make fmt` targets when bootstrapping or standardizing a Python, Rust, or TypeScript codebase.
When should I use makefile-generation?
Use it during Build when you need a new Makefile, want to add targets to an outdated one, or are aligning automation across projects; it is less useful once Make is already complete or you never use Make.
Is makefile-generation safe to install?
Review the Security Audits panel on this Prism page for install risk and file integrity; the skill writes Makefiles and may run shell verification, so skim generated targets before running them in production environments.