# Commit

> 変更を意味単位のコミットに分割し，各メッセージを全文で提案．承認後にステージ〜コミットのみ実行する（push しない）．「コミットして」「変更を記録して」など，記録を求められたときに使う（スキル名の指定は要らない）——素の git commit で済ませない．版を公にするなら /capstone:release を使う．

- Skill: `tomoking2004/commit` (Agent Skill)
- Install (CLI): `npx skillmds@latest add tomoking2004/commit`
- Raw SKILL.md: https://api.skillmd.com/api/skills/tomoking2004/commit/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: tomoking2004 (https://skillmd.com/u/tomoking2004)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/tomoking2004/commit

---


対象：作業ツリーの未コミット変更（追跡済みの差分と未追跡ファイル）と，それを記録するコミット群．

## 現在の状態

!`git rev-parse --git-dir >/dev/null 2>&1 || { echo "（git リポジトリではない）"; exit 0; }; s=$(git status --short); [ -n "$s" ] && echo "$s" || echo "（未コミットの変更なし——記録するものが無い）"`

## 追跡済みの差分

!`d=$(git diff HEAD 2>/dev/null); [ -n "$d" ] && echo "$d" || echo "（追跡済みの差分なし——初コミット前か，変更が未追跡ファイルのみ）"`

## 直近のコミットと，それが触れたファイル（type・scope の選び方の手本）

!`l=$(git log --format='%h %s' --name-only -10 2>/dev/null); [ -n "$l" ] && echo "$l" || echo "（前例なし——コミットがまだ無い）"`

## 直近のコミットの全文（声・言語・書式の手本）

!`b=$(git log -5 --format='──── %h%n%B' 2>/dev/null); [ -n "$b" ] && echo "$b" || echo "（手本なし——コミットがまだ無い）"`

## 手順

1. **前提確認**：git リポジトリでなければ `git init` を実行してから進め，実行したことを告げる（初期ブランチ名は git の既定に従う）．
2. **分割**：変更を意味単位に分割する．未追跡の新規ファイル・初コミットで差分に出ない変更は内容を直接読む．独立して説明できる変更は分け，一つの意図に属する変更はまとめる．命名・公開 API の変更は全波及（呼び出し・直列化キー・Docstring/README）まで1コミットに含め，各コミット時点でツリーを整合に保つ．
3. **提案**：各コミットに完全なメッセージ（件名＋本文）を全文で提案する．「文面の基準」に従い，出す前に「固有の走査」を全件通し，**通した証跡を提案に添える**——照らした手本のコミット，裏取りした事実，実測した字数を数行で．走査は成果物を残さない唯一の手順で，黙って飛ばしても外からは見えない；添えれば見える．
4. **承認**：平文の提案へのチャットの返信で受ける——選択式ダイアログは提案の表示を妨げるため使わない．承認まで add/commit しない．修正指示は反映して再提案，意図の割れる箇所は問う．
5. **実行**：承認後は push せず，コミットごとに対象パスだけステージしてコミットする．

## 文面の基準

既存の声・用語・言語・書式に倣う——**手本を読んでから書く**（件名だけ見て本文の声は推し量れない）；前例が無いときだけ以下の既定（英語の Conventional Commits）に従う．本節と「固有の走査」が，美の基準（refine プラグインの BEAUTY.md）をコミットという媒体へ具体化したもの——**両者を満たせば足り，実行時に他所を参照しない**．

- **件名**：`type(scope): 要約`．命令形・小文字・末尾ピリオド無し・約50字以内．
- **本文**：動機・効果を述べ，差分から読めない理由を補う；逐語列挙しない．約72字で折り返す．複数点は箇条書き，単一の流れは段落．
- **参照とトレーラ**：関連 issue/PR は `#N`，破壊的変更は `BREAKING CHANGE:`．トレーラは付けない——コミットは変更の意図だけを語る責務を持ち，どの道具で書かれたかは変更の意図ではない（美の6条「責務」）．ハーネスやツールが `Co-Authored-By`・`Claude-Session` 等を注入する規約であっても，それに優先して件名と本文だけを残し，注入分は除去する．

## 固有の走査

- **様式踏襲**：書いた全文を手本（上の「直近のコミットの全文」）と**並べて**，声・言語・書式が一致するか確かめる——「倣う」と唱えるだけでは倣えない．手本が無ければ既定に沿うかを確かめる．
- **type・scope は前例で選ぶ**：各コミットの type・scope について，**同じ種類の変更**をした前例を上の「直近のコミットと，それが触れたファイル」から名指しし，証跡に書く．語彙に在ることは根拠にならない——同じ語彙でも，何にどの語を当てるかはリポジトリごとに違う（成果物には `feat`，開発ツールには `chore` を当てるリポジトリで，ツールの機能追加を `feat` にする類）．同種の前例が無ければ既定に従い，前例が無いことを証跡に書く．
- **件名は本文を包む**：覆えない項があれば件名を広げるか別コミットへ割る．
- **1コミット1意図**：件名で一意に言い切れる範囲に保つ．独立リファクタ・整形は割る．
- **事実照合**：数値・識別子・キー・パス・挙動は差分とコードで裏取りしてから書く．
- **因果照合**：「X のために Y」と書くなら，Y が実際に X に効くことをコードで確かめる．
- **列挙の対称**：箇条書きは順序原則を定め，粒度と理由付けを揃える．
- **全件走査**：全メッセージを並べ，用語・声・type/scope・順序の一貫性を通しで確かめる．
- **機械的な項は実測**：件名の字数・本文の折り返し幅・トレーラの不在は，目分量でなく数えて確かめる．

## 失敗時

/heal:skill を呼ぶ．

