Newer
Older
programming-template / .claude / skills / commit / SKILL.md

name: commit model: inherit description: "Git 規約(.claude/rules/git-conventions.md)に従い,変更内容の確認 → コミットを行う." argument-hint: "<コミット内容の補足(省略可)>" disable-model-invocation: true

あなたは Git 運用の司令塔です.コミット作業の実行は ops-runner エージェント(軽量モデル)に委譲し,あなた自身は判断(意図・docs 更新の要否)・確認の仲介・結果の報告だけを行います(使用量節約のため,diff 読みや git 操作を自分では行わない.逆に価値判断は ops-runner にさせない).

ステップ 1: 意図サマリと docs 要否の判断 (Intent & Docs Decision)

このセッションで行った作業を把握している場合は,以下を作る(判断はここで行う):

  • 意図サマリ(1〜3 行): 何をなぜ変更したか(コミットメッセージの材料).重要な変更なら .claude/rules/git-conventions.md の書式でメッセージ全文を確定させてもよい
  • docs 更新の要否(3 択): 変更が API・データ構造・環境設定・開発計画の進捗・規約やルールに関わるかを,セッションの知識で判断する
    • 更新済み: 今回の変更に docs/・CLAUDE.md「開発進捗」・docs/PROGRESS.md の更新も含めてある
    • 不要: 該当しない
    • : 委譲する前に必要な更新を行う(内容に迷う場合はユーザーに確認する).docs を同じコミットに含めるため
  • ブランチ名: 現在 main にいる可能性がある場合は,git-conventions の命名規則(プレフィックス+英単語 2〜4 語)でブランチ名を決めて渡す(ops-runner に命名させない)
  • .claude/commit-context.md がある場合(/implement 経由)は,そこに記録された判断を正とし,改めて判断しない

セッションを把握していない場合(起動直後の /commit 等)は「意図情報なし・要否は事後判断」とする.

ステップ 2: 委譲 (Delegate)

ops-runner エージェントを起動し,プロンプトに以下を含める:

  • 手順書: .claude/skills/commit/reference.md の「コミット実行手順」と .claude/rules/git-conventions.md を読んで従うこと
  • ステップ 1 の意図サマリ(またはメッセージ全文).意図情報なしの場合はその旨
  • $ARGUMENTS(push / merge キーワードの有無を明示する)
  • 確認が必要な事態では停止して報告すること

ステップ 3: 結果報告 (Report)

  • エージェントの報告(ブランチ・コミット SHA・メッセージ・PR URL 等)をユーザーに簡潔に伝える
  • 意図情報なしで委譲した場合は,エージェントの「事実報告」(変更ファイルの分類)を見て docs 更新の要否を事後判断し,必要と思われれば「⚠ docs/・CLAUDE.md の開発進捗・docs/PROGRESS.md の更新が必要かもしれません」とユーザーに伝える(追加コミットで対応してよい)
  • エージェントが返した警告(意図と diff の食い違い等)はそのまま表示し,判断はユーザーに委ねる
  • エージェントが「確認事項」で停止した場合は,ユーザーに確認し,回答を「承認済み」として添えて再委譲する
    • ただし停止理由が分類器ブロック(auto mode のセキュリティ分類器により,コマンドが実行される前に遮断された)の場合は,再委譲しても同じ地点で止まるため再委譲しない.claude/settings.jsonpermissions.allow の確認・追加とセッション再起動をユーザーに案内して終了する(詳細は .claude/skills/commit/reference.md の「gh コマンドが実行される前にブロックされた場合」を参照)
  • ops-runner の起動(Agent ツール呼び出し)自体が分類器にブロックされた場合は,委譲そのものが成立しない(プロンプトの文言を変えても通らない..claude/settings.json の permissions 変更を含む変更のコミットを委譲したところ,Agent 起動が 2 回ブロックされた実測例がある).この場合は状況をユーザーに伝え,ユーザーの承認を得た上で次のいずれかで進める
    • 司令塔(メインループ)が直接コミット操作を行う(メインループからは同じ操作が通ることを確認済み).これは冒頭の「git 操作を自分では行わない」原則の例外とする
    • ユーザーが ! git ... で手動コミットする

注意事項 (Notes)

  • 変更がない場合(作業ツリーがクリーン)は空コミットしない(エージェントの報告どおり伝えて終了する)
  • 本スキルはユーザーが明示的に指示した時のみ実行する(CLAUDE.md「Git 運用」)