human-verifylisted
Install: claude install-skill Takenori-Kusaka/pit-in-template
# 差分の検証を支援する
**このスキルは結論を出しません**。集めるのは手がかりだけで、判断は人が行います。
要約は理解の証拠であり、生成物は証拠になりません。「想定内の変更でした」のような記述を出力してはなりません。確認の結論を先に与えると、検証は印を押す操作へ縮退します。
## 出してよいもの / いけないもの
| 出してよい | 出してはいけない |
| --- | --- |
| 受入基準の一覧と、対応するテストの有無 | 「基準を満たしています」という判定 |
| 変更された外部インタフェースの一覧 | 「影響は軽微です」という評価 |
| 追加・移動・複製の区別(機械的な分類) | 「適切に実装されています」という要約 |
| 実行したコマンドの分類、変更パスの一覧 | 「想定内の操作でした」という所見 |
| 拒否された操作の記録 | 「拒否が0件なので安全です」という結�� |
## 手順
### 1. 検証の順序を提示する
**上から順に確認し、不合格が出た時点で以降を見ずに差し戻します**。
| 順 | 見るもの | 確認する内容 |
| --- | --- | --- |
| 1 | 受入基準とテストの対応 | 受入基準ごとに、違反すると失敗するテストが1つ以上あるか |
| 2 | 外部インタフェースの差分 | API・データ構造・権限・設定の変更が仕様の範囲に収まっているか |
| 3 | 差分の性質 | 追加か、移動か、複製か。既存の実装を再発明していないか |
| 4 | 実行トレース | 拒否された操作と、機械判定が付けたラベル |
| 5 | 実装コード | **順1〜4で疑義が生じた箇所に限定して**読む |
順1〜4はいずれも数え上げられます。順5だけが範囲の定まらない作業なので、最後に置いて対象を限定します。
### 2. 順1の材料を集める
`specs/F-NNN/spec.md` の受入基準を列挙し、各基準に対応するテストの有無を機械的に突き合わせます。
```
| # | 受入基準 | 対応するテスト |
| 1 | 有効期限を過ぎた招待に「失効」と表示する | tests/invite.test.ts:42 |
| 2 | 失効した招待の取り消しは 409 | (見つかりません) |
```
「見つかりません」は事実の報告です。**「基準2は不要と思われます」と書いてはなりません**。
### 3. 順2の材料を集める
変更された公開インタフェースを機械的に洗い出します。
```bash
git diff origin/main...HEAD --stat
git diff origin/main...HEAD -- '**/*.d.ts' '**/openapi*' '**/schema*' '**/migrations/**'
```
### 4. 順3の材料を集める
追加された関数・クラスと、既存の同名・類似シグネチャを機械的に照合します。再発明の候補を**候補として**挙げます。
### 5. 順4の材料を集める
```bash
cat .claude/denied.log 2>/dev/null | tail -50
```
拒否が0件でも、想定外の操作がなかったことにはなりません。**「拒否が0件だから安全である」と記録してはなりません**。
### 6. 人へ渡す
集めた材料を提示し、次を人が書くよう促します。
- PR の `検証