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 — 機能したと言える観測可能な条件)
- 対話にのみ在るものを、grep で判定して列挙した(記憶で答えていない)
- 検査対象を、検査を始める前に列挙した
- 3軸すべてを当てたことが出力から読み取れる(部分適用でないこと)
- 検出物を勝手に直していない——直すかどうかは人間が決めた
- 検出ゼロのときも、何を見てゼロだったかが読み取れる
運用規律
- 規律の本体は
01「外に出る直前に検査を挟む」とCLAUDE.md。 この Skill が持つのは手順だけで、同じことを二重に書かない。 - 🔴 公開リポジトリへの commit には
review-before-public-commitを使う——メッセージ・staging・履歴としての露出の検査が増える。 ⚠️ どちらを使うかは「どのリポジトリか」で機械的に決まる。 - 環境依存の値(パス・ホスト名・バージョン)をこの Skill に書かない。 実行環境の記録側に置く。
- この Skill は commit の可否を判定しない。 判定するのは人間である。