makefile-generation
Generate language-specific Makefile with common development targets
$ 安裝
git clone https://github.com/athola/claude-night-market /tmp/claude-night-market && cp -r /tmp/claude-night-market/plugins/attune/skills/makefile-generation ~/.claude/skills/claude-night-market// tip: Run this command in your terminal to install the skill
name: makefile-generation description: Generate language-specific Makefile with common development targets
Triggers: language-specific, makefile, development, targets, generation model: claude-sonnet-4 tools: [Read, Write, Bash]
Table of Contents
- Use When
- 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.
Use When
- Need a Makefile for a project without one
- Want to update Makefile with new targets
- Standardizing build automation across projects
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"
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 initializationSkill(abstract:makefile-dogfooder)- Makefile testing and validation
Troubleshooting
Common Issues
Command not found Ensure all dependencies are installed and in PATH
Permission errors Check file permissions and run with appropriate privileges
Unexpected behavior
Enable verbose logging with --verbose flag
Repository
