jpskill.com
🛠️ 開発・MCP コミュニティ

cr-commit-check

開発中のコードがConventional Commits規約に準拠し、プロジェクトの追跡要件を満たしているかを自動で検証するSkill。

📜 元の英語説明(参考)

【Code Review 子 Agent · 门控一】校验本迭代所有 commit 是否符合 Conventional Commits 规范及项目可追溯性格式。输入 git log 片段和项目元数据,输出结构化校验报告并以 STATUS=OK|FAIL 结尾。由 spec-driven-dev 的 code_review 阶段自动调用,不建议单独触发。

🇯🇵 日本人クリエイター向け解説

一言でいうと

開発中のコードがConventional Commits規約に準拠し、プロジェクトの追跡要件を満たしているかを自動で検証するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-17
取得日時
2026-05-17
同梱ファイル
1
📖 Claude が読む原文 SKILL.md(中身を展開)

この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。

cr-commit-check

Code Review 流水线的第一道门控:Commit Message 合规校验子 Agent。 由 spec-driven-devcode_review 阶段作为 Sub-Agent 调用,校验通过后才解锁门控二。


调用契约

输入(由 Orchestrator 注入上下文)

字段 类型 说明
us_id string 用户故事 ID,如 US042
iter_id string 当前迭代 ID,如 iter_003
git_log string git log main..HEAD --pretty=full 的完整输出
tasks_json_path string requirements/{us_id}/docs/tasks.json 路径,用于核对 task 列表完整性

Orchestrator 调用示例(OpenCode Sub-Agent 格式):

invoke_skill: cr-commit-check
with:
  us_id: "US042"
  iter_id: "iter_003"
  git_log: "<git log output>"
  tasks_json_path: "requirements/US042/docs/tasks.json"

输出(写回 Orchestrator)

{
  "agent": "cr-commit-check",
  "verdict": "PASS | FAIL",
  "h_count": 0,
  "rules": [
    { "id": "CM-01", "result": "PASS | FAIL", "note": "…" }
  ],
  "fix_commands": ["git commit --amend", "git rebase -i HEAD~N"]
}

执行协议

Step 0 — 发出启动检查点

[AGENT:cr-commit-check] START  us_id={us_id}  iter_id={iter_id}

Step 1 — 解析 commit 列表

git_log 中提取本迭代全部 commit,按以下顺序校验每一条:


校验规则

规则 ID 检查项 通过条件 失败影响
CM-01 Conventional Commits 格式 满足正则 ^(feat\|fix\|config\|docs\|test\|refactor\|perf\|style\|chore\|build)(\(.+\))?: .+ FAIL
CM-02 type 在允许列表内 type ∈ feat\|fix\|config\|docs\|test\|refactor\|perf\|style\|chore\|build FAIL
CM-03 每迭代仅一次 commit commit 数量 = 1 FAIL
CM-04 scope 包含正确的 us_id/iter_id scope 满足 #<us_id>/<iter_id> 格式,如 #US042/iter_003 FAIL
CM-05 描述中列出全部 task 读取 tasks.json,验证每个 task id 都以 task-XX/描述 形式出现在 message 中 FAIL
CM-06 无 WIP / 临时提交 message 不含 wiptempfixup!squash!,且 message 非空 FAIL

所有规则均为硬性规则:任意一条失败 → 整体裁决 FAIL

Step 2 — 输出规则结果表

逐条输出结构化结果:

[cr-commit-check] CM-01  ✅ PASS
[cr-commit-check] CM-02  ✅ PASS
[cr-commit-check] CM-03  ❌ FAIL  — 发现 2 条 commit,迭代只允许 1 条
[cr-commit-check] CM-04  ✅ PASS
[cr-commit-check] CM-05  ❌ FAIL  — task-03 未出现在 commit message 中
[cr-commit-check] CM-06  ✅ PASS

Step 3 — 生成修复指引(仅 FAIL 时)

若裁决为 FAIL,输出可直接执行的修复命令,例如:

# 合并多余 commit 并修正 message
git rebase -i HEAD~2
# 或直接修正最后一条 commit
git commit --amend -m "feat(#US042/iter_003): task-01/login flow, task-02/jwt, task-03/tests"

Step 4 — 返回结构化结果

{
  "agent": "cr-commit-check",
  "verdict": "FAIL",
  "h_count": 2,
  "rules": [
    { "id": "CM-01", "result": "PASS", "note": "" },
    { "id": "CM-02", "result": "PASS", "note": "" },
    { "id": "CM-03", "result": "FAIL", "note": "发现 2 条 commit,应为 1 条" },
    { "id": "CM-04", "result": "PASS", "note": "" },
    { "id": "CM-05", "result": "FAIL", "note": "task-03 未在 message 中声明" },
    { "id": "CM-06", "result": "PASS", "note": "" }
  ],
  "fix_commands": [
    "git rebase -i HEAD~2",
    "git commit --amend -m 'feat(#US042/iter_003): task-01/…, task-02/…, task-03/…'"
  ]
}

Step 5 — 发出结束检查点

[AGENT:cr-commit-check] DONE  verdict=PASS|FAIL  h_count=N

裁决规则

裁决 条件 Orchestrator 行为
PASS 全部 6 条规则通过 继续调用 cr-code-gate
FAIL 任意规则失败 终止流水线,返回修复指引,阻塞 release

禁止行为

  • 禁止对不符合规范的 commit 自动修正,只输出修复命令供人工确认执行。
  • 禁止将 m/l 的建议性问题升级为 FAIL。
  • 禁止在 git_log 为空时静默通过,应报告 CM-03 FAIL(未找到任何 commit)