mcpField
M
makefile-generation

makefile-generation

github.com/athola开发343110 次安装1 天前更新
代码仓库

关于 makefile-generation

makefile-generation 为 Python、Rust 或 TypeScript 项目创建或更新包含标准开发目标的 Makefile。它会检测项目语言,并验证生成的目标。

主要功能

  1. 01检测 Python、Rust 或 TypeScript
  2. 02生成对应语言的标准目标
  3. 03包含构建与质量检查命令
  4. 04用 make help 和模拟运行验证目标

适用场景

  1. 01为项目添加 Makefile
  2. 02统一开发命令
  3. 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 - 运行 pytest
  • test-coverage - 运行测试并生成覆盖率报告
  • check-all - 运行所有质量检查
  • clean - 删除生成的文件和缓存
  • build - 构建发行包
  • publish - 发布到 PyPI
Rust Makefile

常见目标:

  • help - 显示可用目标
  • fmt - 使用 rustfmt 格式化
  • lint - 运行 clippy
  • check - 运行 Cargo check
  • test - 运行测试
  • build - 构建发布版二进制文件
  • clean - 清理构建产物
TypeScript Makefile

常见目标:

  • help - 显示可用目标
  • install - 安装 npm 依赖
  • lint - 运行 ESLint
  • format - 使用 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