基礎の「変更を受け入れる前に」では、diff を読む基本姿勢を扱った。本章はそれを一段深めて、Claude が陥りやすい型を見抜く目と、自分以外の目を借りる手段を扱う。
「症状を抑えた」を見抜く
前章で「根本原因を直せ、症状を抑えるな」を Claude に指示する話をした。逆に読む側としては、Claude が指示を破って症状抑制に逃げていないかをチェックする目が要る。
典型的な型:
as any/as unknownキャスト ─ 型エラーを潰しているだけ.skipやxit化されたテスト ─ 失敗するテストを通したことにしている- 空の
try/catch(もしくはconsole.logだけの catch) ─ 例外を飲み込んでいる // TODO: handle this caseの追加 ─ 本来今直すべきことを先送り
これらは diff 上では一行の追加なので見落としやすい。レビュー時に「as any が増えていないか」「.skip が新しく増えていないか」を機械的にチェックすると、リスクの大きい変更を効率よく潰せる。
「ついで」の変更を見抜く
頼んだのは A だけのはず ── なのに B や C にも変更が及んでいる、というケースは Claude にはよくある。**「親切のつもり」**で範囲を広げているパターンである。
特に注意したい変更:
- 設定ファイルの値の変更 ─
config.json、.env.example、tsconfig.jsonのオプション - 依存の追加 ─
package.jsonやCargo.tomlへの新エントリ - 共通モジュールへの手出し ─ 「ついでにこの関数も整理した」型のリファクタ
- import の整理 ─ 一見クリーンアップだが、副作用を伴うことがある
これらを捕まえるには、diff をファイル単位で眺めるのが効く。後述の /diff がここで効く。
テストの「形だけ」を見抜く
Claude にテストを書かせると、形のあるテストは返ってくる。しかし意味のあるテストであるかは別問題である。
expect(...)がない、またはexpect(true).toBe(true)のようなダミー ─ 実は何も検証していない- ハッピーパスだけ ─ 失敗ケース・境界値・空入力が抜けている
- モックが厚すぎる ─ 実装の本体ではなく、モックの動作を検証している
- テスト名が実装の同義反復 ─ 「
add関数はaddを実行する」型
テストの diff を読む時は、**「このテストが落ちる現実的なシナリオはあるか?」**と自問する。落ちないテストは、書かれていないのと同じである。
/diff で俯瞰する
/diff コマンドは、未コミットの変更を対話的に眺められる組み込みツールである。
- 左右矢印 で「現在の git diff」と「Claude のターン単位の差分」を切り替え
- 上下矢印 でファイル間を移動
ターン単位で見ると「このターンで何が起きたか」が分かり、git diff モードで見ると「全体としての差分」が見える。両方の視点で読むと、「このファイルの変更はこのタスクに本当に必要か?」が浮かび上がる。
別の目に頼る
自分一人でずっとレビューを続けると、判断は鈍る。Claude 自身に別セッションでレビューさせる選択肢がある。
Writer/Reviewer パターン
セッションを二つ立てる ── 片方は実装、もう片方はレビュー専用。新しいセッションは実装に偏った文脈を持たないので、フレッシュな目で読める。
(レビュアー側のセッションで)
@src/middleware/rateLimiter.ts のレート制限の実装をレビューして。
エッジケース、競合状態、既存のミドルウェアとの一貫性を確認して。
レビューが返ってきたら、その内容を実装側のセッションに渡して直す。Claude 同士のキャッチボールを人間が仲介する形になる。手間は増えるが、自分一人では見落とす論点が拾えることが多い。
/security-review を当てる
セキュリティ観点に絞ったレビューが必要なら、組み込みの /security-review コマンドが使える。現在のブランチの未コミット変更を読んで、injection、認証問題、機密データ漏出などを指摘してくれる。
/security-review
特に外部入力を扱う変更、認証や認可に触る変更には、コミット前に一度走らせる価値がある。
ここまで「上がってきた変更をどう読むか」を扱ってきた。次章では、レビューで「これは違う」と判断した時 ── もしくは Claude が修正に失敗し続けている時 ── どう仕切り直すかを扱う。
参考情報
- Claude Code ベストプラクティス: 複数の Claude セッションを実行する — Writer/Reviewer パターンの公式案内
- Claude Code コマンドリファレンス —
/diff/security-review/reviewなどの詳細