关于 makefile-generation
makefile-generation 为 Python、Rust 或 TypeScript 项目创建或更新包含标准开发目标的 Makefile。它会检测项目语言,并验证生成的目标。
主要功能
- 01检测 Python、Rust 或 TypeScript
- 02生成对应语言的标准目标
- 03包含构建与质量检查命令
- 04用 make help 和模拟运行验证目标
适用场景
- 01为项目添加 Makefile
- 02统一开发命令
- 03更新构建自动化目标
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ athola/ claude-night-market --skill makefile-generation安装后在 Claude Code 中输入/makefile-generation确认已加载。
详细介绍
Makefile 生成技能
为 Python、Rust 或 TypeScript 项目生成包含标准开发目标的 Makefile。
适用场景
- 项目还没有 Makefile,需要创建一个
- 希望为 Makefile 添加新目标
- 统一不同项目的构建自动化流程
- 设置开发工作流命令
- 创建特定语言的构建目标
不适用场景
- Makefile 已存在且为最新版本
- 项目仅使用其他构建系统(例如,仅使用 npm scripts)
- 自定义构建流程复杂,不适合标准模式
- 如需更新现有 Makefile,请改用
/attune:upgrade-project
标准目标
Python Makefile
常见目标:
help- 显示可用目标install- 使用 uv 安装依赖lint- 运行 ruff lint 检查format- 使用 ruff 格式化代码typecheck- 运行 mypy 类型检查test- 运行 pytesttest-coverage- 运行测试并生成覆盖率报告check-all- 运行所有质量检查clean- 删除生成的文件和缓存build- 构建发行包publish- 发布到 PyPI
Rust Makefile
常见目标:
help- 显示可用目标fmt- 使用 rustfmt 格式化lint- 运行 clippycheck- 运行 Cargo checktest- 运行测试build- 构建发布版二进制文件clean- 清理构建产物
TypeScript Makefile
常见目标:
help- 显示可用目标install- 安装 npm 依赖lint- 运行 ESLintformat- 使用 Prettier 格式化typecheck- 运行 tsc 类型检查test- 运行 Jest 测试build- 构建生产版本dev- 启动开发服务器
工作流
1. 检测语言
# 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
验证: 使用 --help 标志运行命令,以确认命令可用。
2. 加载模板
from pathlib import Path
template_path = Path("plugins/attune/templates") / language / "Makefile.template"
验证: 使用 --help 标志运行命令,以确认命令可用。
3. 收集项目信息
metadata = {
"PROJECT_NAME": "my-project",
"PROJECT_MODULE": "my_project",
"PYTHON_VERSION": "3.10",
}
验证: 使用 --help 标志运行命令,以确认命令可用。
4. 渲染模板
from template_engine import TemplateEngine
engine = TemplateEngine(metadata)
engine.render_file(template_path, Path("Makefile"))
验证: 使用 --help 标志运行命令,以确认命令可用。
5. 验证
make help
验证: 运行 make --dry-run,以验证构建配置。
自定义
用户可以在生成的目标后添加自定义目标:
# ============================================================================
# CUSTOM TARGETS
# ============================================================================
deploy: build ## Deploy to production
./scripts/deploy.sh
验证: 使用 --help 标志运行命令,以确认命令可用。
相关技能
Skill(attune:project-init)- 完整的项目初始化/abstract:make-dogfood命令 - Makefile 测试与验证
退出条件
- 在项目根目录创建
Makefile,至少包含一个help目标,以及检测到的语言对应的所有标准目标(Python:install/lint/format/typecheck/test;Rust:fmt/lint/check/test/build;TypeScript:install/lint/format/typecheck/test/build)。 -
make help运行无错误,并列出所有生成的目标及其说明。 - 对每个标准目标运行
make --dry-run <target>均以状态码 0 退出,确认配方语法有效。 - 如果未检测到语言(没有
pyproject.toml、Cargo.toml或package.json),技能会报告检测失败并停止,而不是生成空白 Makefile。
评论
支持 Markdown