mcpField
M
make

make

github.com/fandhe-ai开发4561 次安装今天更新
代码仓库

关于 make

GNU Make / Makefile 规范、设计与运维的参考 Skill,面向需要查询 Make 行为或审查仓库构建配置的开发者。它区分官方规范、设计建议和示例约定,并提供静态诊断、计划与验证流程。

主要功能

  1. 01按任务索引 Make 参考资料
  2. 02区分规范、设计建议与示例约定
  3. 03静态诊断 Makefile 仓库
  4. 04规划并验证配置变更
  5. 05提供安全与可移植性指引

适用场景

  1. 01检查 Makefile 目标与前置条件
  2. 02规划 Rust 与 Node 仓库的命令边界
  3. 03审查 hooks 与 CI 共用的命令约定

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/fandhe-ai/agent-reference-skills --skill make

安装后在 Claude Code 中输入/make确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/architecture/
command-contracts.md
README.md
responsibility-boundaries.md
selection-and-migration.md
references/execution/
diagnostics-and-exit-codes.md
gnu-posix-bsd-compatibility.md
parallel-and-recursive-make.md
README.md
special-targets-and-defaults.md
references/fundamentals/
patterns-includes-and-functions.md
README.md
recipes-and-shell.md
rules-and-prerequisites.md
variables-and-expansion.md
references/maintenance/
README.md
sources-and-compatibility.md
troubleshooting.md
references/node/
package-scripts-and-mixed-repos.md
README.md
references/operations/
parallelism-and-recovery.md
README.md
safety-and-portability.md
references/quality/
ci-hooks-and-cache.md
README.md
references/rust/
crate-and-workspace-profiles.md
README.md
xtask-and-validation.md
samples/
ci.md
samples/ci/
azure-pipelines.yml.example
github-actions.yml.example

详细介绍

GNU Make / Makefile 参考

涵盖 GNU Make / Makefile 规范、设计、实现、运维与验证的参考 Skill。 来源基准为 GNU Make Manual 4.4.1(Edition 0.77, 2023-02-26)。本地验证使用 GNU Make 3.81(macOS), 3.82+ / 4.x 专属功能(.RECIPEPREFIX、.ONESHELL、.WAIT 等)会在相关页面和示例中注明最低版本。 请注意,这与 Make 自动化 SaaS、CMake、cargo-make 属于不同范畴。

目录结构

skills/make/
  SKILL.md
  references/
    architecture/
      README.md
      responsibility-boundaries.md
      command-contracts.md
      selection-and-migration.md
    fundamentals/
      README.md
      rules-and-prerequisites.md
      variables-and-expansion.md
      patterns-includes-and-functions.md
      recipes-and-shell.md
    execution/
      README.md
      special-targets-and-defaults.md
      parallel-and-recursive-make.md
      diagnostics-and-exit-codes.md
      gnu-posix-bsd-compatibility.md
    rust/
      README.md
      crate-and-workspace-profiles.md
      xtask-and-validation.md
    node/
      README.md
      package-scripts-and-mixed-repos.md
    quality/
      README.md
      ci-hooks-and-cache.md
    operations/
      README.md
      safety-and-portability.md
      parallelism-and-recovery.md
    maintenance/
      README.md
      sources-and-compatibility.md
      troubleshooting.md
  samples/
    README.md
    incremental-build.md
    rust-crate.md
    rust-workspace-xtask.md
    node-pnpm.md
    mixed.md
    ci.md
    plans.md
    projects/                        # 動く例の正本
      incremental-build/             # Make がファイル依存関係を直接管理する例
      rust-crate/                    # 薄い Makefile + Bash help/doctor/check/verify(Node 不要)
      rust-workspace-xtask/          # Makefile なし。cargo xtask が正本
      node-pnpm/                     # pnpm workspace + Turborepo 委譲
      mixed/                         # Rust + Node の受け渡しのみ Make が仲介
    ci/                              # 非アクティブな CI テンプレート(.example)
    plans/                           # 承認前の適用計画サンプル(JSON)
  scripts/
    README.md
    make-commands.md
    inspect.md
    plan-and-preview.md
    verify.md
    bin/                             # Claude が明示的に実行する補助 CLI(Node.js 標準ライブラリのみ)
      inspect-repo.mjs
      validate-plan.mjs
      preview-sample.mjs
      verify-layout.mjs
      run-checks.mjs
      lib/
  tests/
    README.md
    helpers.mjs
    fixtures/
    eval-cases.json
    *.test.mjs

官方规范与自定义设计的区分

references/ 中的各页面会明确区分以下 3 类内容。

  • Source-backed behavior — 基于 GNU Make Manual 4.4.1 等一手资料的规范。附有来源 URL、适用版本和确认日期(列表见 references/maintenance/sources-and-compatibility.md)
  • Design guidance — 本 Skill 提出的结构与判断标准,附有采用条件、依据和权衡
  • Example contract — 仅在 samples/ 内定义的命令名称、JSON 格式、退出代码和目录结构

统一 help / doctor / setup / check / fix / verify / clean 等公开命令,以及“入口可以有多个,但实际处理逻辑只定义一次”的设计,均是本 Skill 独有的 Design guidance,并非 GNU Make、Cargo 或 Anthropic 官方规范的要求。

探索步骤

  1. 如果只需查阅(consult,即默认用法),请在下方映射表中找到与任务对应的类别,然后在该类别的 README.md 中定位目标页面并 Read。不要运行外部程序
  2. 如果需要诊断、规划或验证现有结构,请在“使用模式”表中确认 consult 之外的所处阶段,并遵循相应 scripts/*.md 中的步骤
  3. 安全限制务必通过 references/operations/safety-and-portability.md 确认

任务 → 类别映射

任务类别参考 README
了解 Make 与 Cargo/xtask/Turborepo/CI 的职责划分、命令契约、是否采用 Make 及迁移的判断标准architecturereferences/architecture/README.md
查询 target / prerequisite / recipe、order-only prerequisite、变量展开(= := ?= +=)、自动变量,以及 Make 和 shell 中 $ 的区别fundamentalsreferences/fundamentals/README.md
查询 pattern rule、include、条件分支,以及 recipe 和 shell(tab / .RECIPEPREFIX / .ONESHELL)fundamentalsreferences/fundamentals/README.md
查询 .PHONY、.DEFAULT_GOAL 等特殊目标、-j 并行与递归 make、-n/-q 诊断,以及 GNU/POSIX/BSD 兼容性executionreferences/execution/README.md
查询单一 crate / workspace / virtual workspace 的 profile、fmt/clippy/test/doc 的适用场景,以及是否采用 cargo xtaskrustreferences/rust/README.md
查询 pnpm workspace、package.json scripts、委托给 Turborepo 的方式,以及 Rust+Node 混合项目的职责边界nodereferences/node/README.md
查询 Git hooks 与 CI 的共用命令契约、流水线定义与合并保护的区别,以及缓存和外部状态的边界qualityreferences/quality/README.md
查询 consult/audit/plan/apply/verify 的安全边界、可重复执行的 setup、并行 worktree 隔离,以及 clean 的目标范围operationsreferences/operations/README.md
查询来源台账、GNU Make 的常见失败模式和诊断步骤maintenancereferences/maintenance/README.md
查看可运行的示例(增量构建、Rust crate/workspace、Node、混合项目、CI 模板、应用计划)samplessamples/README.md
了解 Claude 使用的调查、计划验证、预览和验证脚本的运行方法scriptsscripts/README.md
了解辅助脚本的回归测试、退出代码契约和 eval-casesteststests/README.md

使用模式

仅查阅不会修改目标文件,也不会自动运行外部程序。加载 Skill 本身并不代表已批准应用。

模式内容使用的 script
consult设计或审查期间查阅(默认)无。仅阅读 references / samples / scripts 中的文档
audit对用户指定的目标进行静态诊断。不改写文件、不导入依赖、不执行 buildinspect-repo.mjs(必须指定 --root)
plan提出应用方案、变更目标和验证计划。不修改目标文件validate-plan.mjs、preview-sample.mjs(默认不写入)
apply仅应用用户另行批准的范围。编辑现有文件时使用常规编辑工具,而非 Skill 自有的补丁应用引擎仅导入示例时使用 preview-sample.mjs --apply --plan <计划> --approve <planDigest>(仅当与已批准的计划文件一致时,才会写入明确列出的文件)
verify执行已批准的验证。将静态一致性检查与实际命令执行分开verify-layout.mjs、run-checks.mjs(默认 dry-run。只有在 --approve <planDigest> 与用户确认过的计划相符,且每项 check 均为 approved:true 时,才会执行 --execute)

安全上の最小ルール

  • 不審なリポジトリで make -n / make -q を安全な静的解析の代わりに使わない(設定読込時のコード実行がありうる)
  • .env 等の秘密情報の値を表示・ログ出力・JSON へ混入させない
  • ツールの自動導入、sudo、hooks / CI の回避を行わない
  • 環境不足・未実行・非該当(BLOCKED / SKIPPED / NOT_APPLICABLE)を PASS に丸めない

詳細は references/operations/safety-and-portability.md を参照。

補助スクリプトのパス

scripts/bin/*.mjs は Skill 設置位置からの相対パスで解決する。導入形態(upstream skills/make/、.agents/skills/make/、.claude/skills/make/ の実体・symlink、グローバル導入)によって Skill 自身の絶対パスは変わるため、実行時は <skill-dir> をその時点の実際の Skill 設置先に置き換える。

node <skill-dir>/scripts/bin/inspect-repo.mjs --root /path/to/target-repo --json

対象 root は必ず --root で明示する。${CLAUDE_SKILL_DIR} のような置換は使わない(外部 shell に常に存在する環境変数ではない)。補助 CLI は Node.js 標準ライブラリのみで動作するが、これは Skill 側の依存であり、利用者プロジェクトに採用するサンプル(rust-crate 等)自体が Node.js を必要とするわけではない。

利用例

  • 「make を参考に、この Rust crate の Makefile と検証コマンドの改善計画を作って」
  • 「このリポジトリの Makefile を GNU Make の仕様に照らしてレビューして、.PHONY の抜けがないか教えて」
  • 「Rust + Node の混在リポジトリで、Make・Cargo・Turborepo・CI の責務分離が適切か静的に診断して」

関連スキルとの使い分け

  • rust — Cargo・rustc・rustdoc 等 Rust 言語・ツールチェーン全体の API リファレンスを担当。make の references/rust/ は Cargo 標準機能と xtask パターンの Make 文脈での使い分けのみを扱い、Rust 言語仕様は複製しない
  • turborepo — Turborepo 自体のタスクグラフ・キャッシュ・パイプライン定義を担当。make の references/node/ は Turborepo への委譲境界のみを扱う
  • lefthook — Git hooks の設定・実装を担当。make の references/quality/ は hooks と CI が同じコマンド契約を共有する設計指針のみを扱う

いずれもスキル名による探索を前提とし、単独インストール時に壊れる兄弟ディレクトリへの相対リンクは使わない。

评论

支持 Markdown