🤢

AIに仕事を奪われる前に、レビュー地獄で死にそうになった話

に公開

こんにちは。AIツールの課金額を月1万円に抑えることに成功し、妻との関係が改善したエンジニアです。

前回の記事では、AIへの任せ方について書きました。今回はその続編です。
https://zenn.dev/naizo01/articles/7b4bdf4b700dfe

前回の記事を実践し、生産性が上がった結果、「レビュー地獄」という新たな敵」 が現れたのです。

月曜朝9時、地獄の始まり

月曜日 朝9:00
Claude: 「ログイン機能実装しました!(300行)」
Cursor: 「DBスキーマ最適化しました!(15ファイル変更)」
ChatGPT: 「リファクタリング完了です!(2000行差分)」

私: 「...朝から2300行のレビュー?」

3時間後
私: 「まだ半分も終わってない...」
Claude: 「追加で認証機能も実装しました!」
私: 「やめてくれ」

AIをうまく使えるようになった。めでたしめでたし...と思いきや。

誰がそのコードをレビューするんだ?

理想と現実のギャップがエグい

理想(2024年の妄想):
AI「コード書きました」→ 私「ありがとう!」→ 5秒で確認 → デプロイ → 定時退社

現実(2025年の地獄):
AI「コード書きました」(0.5秒)→ 私「このロジック正しい?」(10分)→「セキュリティ大丈夫?」(20分)→「パフォーマンスは?」(15分)→「整合性は?」(30分)

結果:1つのAI生成コードに75分。その間にAIは次の10個を生成済み。

「AIマインスイーパー問題」が想像以上にキツい

最近話題の「AIマインスイーパー」という概念を、身をもって体験しました。
https://gigazine.net/news/20230530-minesweeper-spoiled-by-ai/

AIが理詰めで解ける部分はすべて先に処理し、人間には“当てるしかない”運ゲー部分だけが残る

簡単なタスクはAIが処理し、複雑で責任の重いタスクだけが人間に残される。

Before: CRUD実装(退屈だけど楽) → アルゴリズム設計(大変だけど楽しい)
After:  AIが簡単な作業を3秒で終わらせる → 人間は責任だけ負ってレビュー地獄

しかも、AIは日々賢くなり、私は日々AIに依存して能力が落ちる。この構造的な非対称性の前で、「辛くない」と感じる方が難しい。

でも、ちょっと待てよ

レビュー地獄で疲れ果てた金曜の夜。ビールを飲みながら、ふと思った。

「これって、新しいゲームのルールなだけじゃない?」

昔:自分でコードを書いて価値を生む
今:AIを使いこなして価値を生む

ルールが変わっただけで、ゲーム自体は続いている。

そして気づいた。レビューもAIにやらせればいいじゃん。

発想の大転換:実装前にAIレビューする

ある記事で、元Googleのエンジニアがこう書いていた。

「コードを書く前に設計レビューで問題の8割を潰す」

これだ、と思った。

「実装後にレビュー地獄」じゃなくて「実装前にAIレビュー」

まず、細かい粒度でissueを切る

実装前レビューを成功させる秘訣は、タスクを適切な粒度に分解することから始まります。

「ユーザー認証機能を作る」という大きなタスクをそのまま実装しようとすると、AIも人間も混乱します。だから、まずフロントエンドとバックエンドに分けてissueを作成する:

# ユーザー認証機能 → 6つのissueに分解

## バックエンド
- Issue #1: ログインAPI実装(認証・JWT生成)- 3時間
- Issue #2: 会員登録API実装(バリデーション・DB保存)- 3時間
- Issue #3: パスワードリセットAPI(メール送信含む)- 4時間

## フロントエンド
- Issue #4: ログイン画面UI実装 - 3時間
- Issue #5: 会員登録画面UI実装 - 3時間
- Issue #6: パスワードリセット画面UI実装 - 2時間

フロントエンドとバックエンドを分けることのメリット:

  • 並行開発が可能:API仕様を決めれば同時に進められる
  • 専門性を活かせる:それぞれの得意分野でレビューできる
  • 問題の切り分けが明確:エラーの原因特定が簡単
  • テストが書きやすい:単体テストの範囲が明確

半日程度で完了する粒度が理想的です。これなら、AIも全体像を把握しながら実装できます。

次に、issueごとに実装計画をmdファイルで作る

細かく切ったissueそれぞれに対して、実装計画をMarkdownで書きます(1issueあたり5分程度):

# implementation-plan-issue-1.md

## Issue #1: ログインAPI実装

## 概要
ユーザーログインAPIの実装(認証処理・JWT生成)

## 実装ファイル
backend/
  ├── routes/auth.ts                 # 認証APIルーティング
  ├── controllers/authController.ts  # ログインロジック
  ├── services/tokenService.ts       # JWT生成・検証
  ├── middleware/validateLogin.ts    # 入力検証
  └── tests/auth.test.ts            # テストコード

## 技術選定
- JWT vs Session → JWTを選択(理由:スケーラビリティ)
- bcrypt vs argon2 → argon2を選択(理由:より安全)

## 実装順序
1. 入力バリデーションミドルウェア
2. ユーザー認証ロジック
3. JWT生成・署名処理
4. レスポンス形式の実装
5. エラーハンドリング
6. 単体テストの作成

## リスクと対策
- リスク:ブルートフォース攻撃
- 対策:レート制限、ログイン試行回数制限

## 完了条件
- [ ] 正常ログインでJWTトークンが返される
- [ ] 不正なクレデンシャルで401エラー
- [ ] レート制限が機能する
- [ ] 単体テストがすべてパス

そして、この実装計画mdファイルをAIでレビューしてもらう。30秒もあれば、設計の問題点、セキュリティリスク、パフォーマンスの懸念点などを洗い出してくれる。

重要な機能の場合は、複数のAIでクロスレビューすることで、見落としをさらに減らせる。

AIは何をレビューしているのか

実装前のAIレビューでは、主に3つの観点をチェックしています:

設計に準拠しているか?
命名規則、コーディング規約、アーキテクチャパターンに従っているか。SOLID原則やDRY原則を守れているか。

セキュリティは問題ないか?
SQLインジェクション、XSS、CSRF対策は適切か。認証・認可の実装に穴はないか。機密情報の取り扱いは安全か。

現在のプロジェクト構成と整合性を保てているか?
既存のディレクトリ構造に合っているか。他のモジュールとの依存関係は適切か。技術スタックの統一性は保たれているか。

これらをAIが事前にチェックすることで、実装後の手戻りが激減しました。

なぜmdファイルにこだわるのか

最初は「プランモード」を使っていたけど、mdファイルの方が圧倒的に便利だった。

mdファイルの利点:

  • 他のAIエージェントで再レビューできる
  • Git管理でレビュー履歴を追跡できる
  • 修正前後の比較が簡単
  • チーム共有がスムーズ
  • 人間も読みやすい

レビュー結果もmdファイルで出力させることで、修正後の再レビューや、別のAIでのセカンドオピニオンが簡単になる。

実際に使っているカスタムコマンド

Claude Codeに登録している、レビュー用のコマンドです:

/review:plan         // 実装計画の妥当性を評価
/review:security     // セキュリティ特化のレビュー
/review:after        // 実装後の差分レビュー

他にも便利なコマンドがたくさんあります:

/review:perf         // パフォーマンス問題を分析
/review:deps         // 依存関係とアーキテクチャの健全性評価
/review:debt         // 技術的負債の分析と改善計画
/review:patterns     // デザインパターンとSOLID原則の遵守状況
/review:pr           // Pull Requestの体系的レビュー
/review:smart        // 状況に応じた最適なレビュー方法を自動提案
/review:fact         // 情報の正誤確認
/review:prompt       // AI向けプロンプトの品質評価
/refactor           // 安全で段階的なリファクタリング提案

これらはすべて結果をmdファイルで出力するので、後から再利用や共有が簡単です。

実践してみて分かったこと

3ヶ月この方法を実践して、いくつか重要な発見がありました。

手戻りが激減する

実装後に「あ、これセキュリティ的にマズい」「パフォーマンス問題がある」となって作り直すことがほぼなくなりました。なぜなら、30行の実装計画の段階で問題を潰しているから。

レビュー時間が大幅に削減

2000行のコードレビューより、30行の設計レビューの方が圧倒的に速い。しかも、AIが事前にチェックしているので、人間は本当に重要な判断だけに集中できる。

チームの生産性が向上

レビュー待ちの時間がなくなり、手戻りも減ったことで、デプロイ頻度が週1回から週3回に増えました。

よくある質問

Q: 実装前レビューで本当に問題を防げるの?

完璧ではないですが、私たちのチームでは手戻りが大幅に減りました。実装前に設計の問題を見つけられるのは大きいです。

Q: AIのレビューを信頼していいの?

単独のAIレビューは60-70%の精度ですが、「セキュリティ専門家」「パフォーマンスレビュワー」「設計アーキテクト」など、異なる観点でレビューさせると90%以上の問題を検出できます。

Q: 結局人間のレビューは不要?

いいえ。ビジネスロジックの妥当性、UXの判断、倫理的な問題などは人間の領域です。ただし、時間は大幅に削減できます。

最終的な結論:楽しまないと死ぬ

この状況を辛いと考えるとエンジニアとして終わりそう。

なぜなら、この流れはもう止まらないから。来年のAIはもっと賢い。再来年はさらに。

だから、楽しむしかない。

レビュー地獄? → 無料でコードが学べる天国
能力が落ちる? → 新しい能力を身につけるチャンス
AIに負ける? → AIと一緒に勝つ時代

結局、AIがどれだけ賢くなっても:

  • 責任を取るのは人間
  • 価値を定義するのは人間
  • 意味を見出すのは人間

むしろ、つまらない実装から解放されて、本当に人間がやるべきことに集中できる。

楽しまないと死ぬ。
だから、楽しむことにした。

それが、これからのエンジニアの生き方だと思う。


最後まで読んでいただき、ありがとうございました!

この記事が役立ったら、あなたの「AI共存術」も教えてください。
みんなで新しい時代を楽しんでいきましょう。

P.S. 妻への報告:「AIのおかげで夜中まで作業することがなくなった」(これは本当。レビュー地獄から解放されたから)


📝 著者について

普段は真面目にブロックチェーン周りの記事を書いています。
https://x.com/naizo_eth
https://zenn.dev/naizo01

現在、HivefiというLLMを使ったシステムトレード戦略ハブを開発中。
https://x.com/Hivefi_X

関連記事:
「いい感じに作って」→ 大炎上。AIへの丸投げで痛い目を見た話
https://zenn.dev/naizo01/articles/7b4bdf4b700dfe

AIとの共存の日々から学んだことを、これからも共有していきます!

Discussion