Claude Codeで「半自動レビュー」を仕込んだら開発が安定した話


1. 結論

Claude Codeはそのまま使うと不安定 👉 レビューを構造として組み込むと一気に安定する


2. 背景(あるある)

👉 人間の新人エンジニアと同じ挙動


3. 問題の本質

問題はプロンプトではない

AI単体で品質を担保しようとしていること

👉 解決策は「ハーネス設計」


4. やったこと(超シンプル)

「レビューして」と言ったら 👉 強制的にレビューが走る仕組みを作った


5. 仕組みの全体像

通常モード

(開発)

「レビューして」

レビュー専用モード発動

構造チェック

修正指示

👉 これだけ


6. 実装のコア

① ADRでルール固定

docs/harness/adr/0001-review-mode.md

👉 「憲法」みたいなもの


② CLAUDE.mdでトリガー定義

レビューして
review

👉 これでモード切替


③ テンプレで出力を固定

docs/harness/templates/review-template.md

👉 レビューのブレを防ぐ


④ レポート保存

docs/harness/reports/

👉 地味に重要(再発防止)


7. なぜフルハーネスにしなかったか(ここが重要)

最初に結論👇

👉 重すぎるからやめた


フル構成はこうなる:

Planner → Generator → Reviewer → Evaluator

理想的な構成ではあるが、実際に回すと👇


さらに👇

👉 トークン消費が大きすぎる


フルハーネスだと:


結果👇


👉 理想構成だが、今回の用途(小規模修正)にはオーバースペック


今回の用途では👇

このフェーズって👇

設計ミスより「構造崩れ」の方が問題になる

👉 だからReviewerだけで十分だった


8. なぜ「半自動」にしたか

完全自動にもできるけど、あえてやってない

理由は3つ👇


① 無駄なレビューを防ぐ

途中のコードや書きかけに対して毎回レビューすると👇

👉 人間でもやらない


② 思考の区切りになる

ここで一回止まる

👉 これがめちゃくちゃ重要


③ 自分でトリガーを握る

レビューして

この一言で👇

👉 開発モード → レビューモードに切り替える


👉 これが一番しっくりきた


9. ハマったポイント(ここが重要)

❌ 最初の失敗

👉 AIレビューが再現不能


修正

各観点に
・定義
・NG例
・OK例

👉 これで安定


10. もう一つの重要ポイント

レビュー対象の定義

これやらないと地獄👇

どこレビューするの?

解決

デフォルト: git status の差分

オプション:

レビューして --all
レビューして src/

👉 CIっぽくなる


11. 実際どう変わったか

Before


After


12. 本質

やってることはこれ👇

AIに書かせる
AIに壊させる
AIに直させる

👉 人間チームと同じ構造


13. 使ってみた感想(リアル)

👉 一番効いたのは「AI可読性」


14. 注意点


15. 応用

これ応用すると👇

👉 完全にAIチーム化


16. まとめ

👉 半自動レビューはちょうどいい落としどころ


17. おまけ(コピペ)

レビューして

これだけでレビューが走るようになる

👉 これが一番デカい