---
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 を同じコミットに含めるため
- `.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 の食い違い等）はそのまま表示し，判断はユーザーに委ねる
- エージェントが「確認事項」で停止した場合は，ユーザーに確認し，回答を「承認済み」として添えて再委譲する

## 注意事項 (Notes)

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