# Review Before Commit

> commit を提案する直前に回す検査。対話でのみ述べて記録に入れ忘れたものを洗い出し、文脈を持たない読み手が読めるかを参照・時点語・件数の3軸で検査する。staging 内容とコミットメッセージを提示する前に使用（push 前の検査は review-before-push）。

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

---


# commit 直前の検査

**読み手は「文脈を持たない次のセッションの AI」である。** 書いた本人には解決できてしまう参照が、ここで落ちる。

**この Skill は手順だけを持つ。** **なぜ検査するかの一般形は `01_ai-driven-dev-strategy.md`「外に出る直前に検査を挟む（非可逆な操作のゲート）」**にあり、**このリポジトリ固有の規約は `CLAUDE.md`** にある。⇒ **どちらも正本で、この Skill はその実装である。**

## 前提思想

- **検査は通過判定ではない。** 指摘は列挙して人間に渡す。致命的でなければ直さず記録する、という選択が常にある。
- **検査そのものが、部分適用で「通過」しうる。** 落ち方は2通りある——**検査項目の一部を飛ばす**（3軸のうち2軸だけ当てる）と、**検査対象の一部を飛ばす**（2ファイルのうち1ファイルだけ見る）。⇒ **どちらも明示的に宣言してから始める。**
- **対象は「自分が編集した範囲」ではない。** 今回触っていない箇所でも、次のセッションの開始に要るなら読む。

## モード

| モード | 発動 | 振る舞い |
|--------|------|---------|
| **検査（既定）** | commit を提案しようとした瞬間 | 下の手順を上から順に回し、検出物を一覧で出す |
| **再検査** | 前回の検査の後にさらに編集した場合 | **前回の検査後に書いた分を対象に、同じ手順を回す**（⚠️ 前回「通った」ことは今回の根拠にならない） |

## 確度ラベル

検出物には `[Fact]`（実測した）／`[Judgment]`（読んで判断した）／`[Assumption]`（確かめていない）を付ける。**「たぶん解決する」を `[Fact]` として報告しない。**

## 手順

### 1. 対話にのみ在るものを洗い出す

このセッションで**対話でのみ述べて、まだ `.md` に入っていない**ものを列挙し、1件ずつ「入っている／入っていない」を判定する。

- ⚠️ **特に見るもの: 「後で書きます」「レトロで扱います」「次のセッションで」と言ったもの。** ⇒ **そう言ったこと自体が、記録した気にさせる。**
- ⚠️ **裁定・訂正・数値・人の逐語**は落ちやすい。**提案しただけで採用されなかったものは、落ちてよい**（区別して報告する）。
- **判定は grep で行う**——記憶で「書いたはず」と答えない。

### 2. 検査対象を宣言する

- **今回の diff で触ったファイル**
- ＋ **それらを指しているファイル／それらが指しているファイル**
- ＋ **次のセッションの入口になるファイル**（制御plane・記録の開始点）

⇒ **この3つを列挙してから検査に入る。** 対象を宣言しないと、後から「そこは見ていなかった」が出る。

### 3. 3軸をすべて当てる

| 軸 | 見るもの | 落ちている例 |
|---|---|---|
| **参照** | リンク・見出し名・ID・「あのファイル」「上記」「下記」 | 実在しない見出しを指す／位置語で指した先が、自分の挿入で動いた |
| **時点語** | 「次」「現在」「まだ〜していない」「予定」 | 読まれる時点では既に済んでいる断定形／どのセッションを指すか決まらない |
| **件数・範囲** | 「N 件」「`A`〜`E`」「N 本」 | 正本から数え直せる値を別の行に書いた（**編集のたびに壊れ、壊れたことが読んでも分からない**） |

⚠️ **3軸のうち1つでも当てていないなら「通った」と報告しない。**

### 4. 出力する

検出物を一覧にして、**直すか・記録して残すか**を人間に裁定させる。⚠️ **勝手に直さない**——AI の指摘は提案であって、自動適用しない。

## Output Format

```
## 対話にのみ在るもの
| ID | 内容 | 判定 |

## 検査対象（宣言）
- 触ったファイル / それを指すファイル / 入口

## 3軸の結果
| 軸 | 結果 | 検出物 |

## 提案
- 直す: …
- 記録して残す: …
```

## この Skill の受入基準（AC — 機能したと言える観測可能な条件）

1. **対話にのみ在るものを、grep で判定して列挙した**（記憶で答えていない）
2. **検査対象を、検査を始める前に列挙した**
3. **3軸すべてを当てたことが出力から読み取れる**（部分適用でないこと）
4. **検出物を勝手に直していない**——直すかどうかは人間が決めた
5. **検出ゼロのときも、何を見てゼロだったかが読み取れる**

## 運用規律

- **規律の本体は `01`「外に出る直前に検査を挟む」と `CLAUDE.md`。** この Skill が持つのは手順だけで、同じことを二重に書かない。
- 🔴 **公開リポジトリへの commit には `review-before-public-commit` を使う**——**メッセージ・staging・履歴としての露出の検査が増える。** ⚠️ **どちらを使うかは「どのリポジトリか」で機械的に決まる。**
- **環境依存の値（パス・ホスト名・バージョン）をこの Skill に書かない。** 実行環境の記録側に置く。
- **この Skill は commit の可否を判定しない。** 判定するのは人間である。

