はじめに:ルーターを買い替える前に
「bundle install でネットワークエラーが消えない。これ、家のルーターが古すぎてポート通してないんじゃ…?」
Amazonで新しいルーターを注文する直前でした。
ふと思い立って、ターミナルで対話していた Claude Code にエラーログを投げました。
Claude: 「これはRuby 3.4.7とmacOSの組み合わせで発生するHappy Eyeballs v2の問題のようです。環境変数 RUBY_TCP_NO_FAST_FALLBACK=1 を設定すれば解決します」
設定後、3秒で解決。
ルーターを買い替えなくてよかった。
これが、上流工程(SE/PM)専門の私が、Claude Codeと二人三脚で「3ヶ月かかる開発を3週間で完遂」させる旅の始まりでした。
本記事では、コーディングから離れていたPMが、AIとどう協働すれば爆速開発ができるのか、「人間3:AI7の黄金比」という概念を中心にお伝えします。
衝撃の実績:数字で見るビフォーアフター
まずは結果から。
Rails 8.1.1 + Docker + AWSという構成で、ポートフォリオサイト(CMS機能付き)を構築しました。
| 工程 | 従来の見積もり | Claude Code協働 | 短縮率 |
|---|---|---|---|
| 全体工期 | 3ヶ月 | 3週間 | 75%削減 |
| 設計書作成 | 2〜3週間 | 2〜3日 | 約90%削減 |
| CRUD実装 | 4機能 4〜8日 | 4機能 1日 | 約80%削減 |
| 環境構築 | 1週間 | 半日 | 約85%削減 |
| バグ解決 | 平均4時間 | 平均1時間 | 75%削減 |
成果物の規模:
- 変更ファイル数:91ファイル
- 追加行数:3,515行
- 私が書いたコード:ほぼゼロ
成功の方程式「人間3:AI7の黄金比」
開発を通じて痛感したのは、「AIに丸投げしてはいけない」ということ。
そして、「人間が頑張ってコードを書いてもいけない」ということです。
最も生産性が高まったのは、以下の役割分担が綺麗に決まった時でした。
人間の役割(30%):判断と責任
- ビジョン: 「なぜ作るか」「誰のために作るか」の定義
- 判断: AIの提案した設計やライブラリ選定の採用・不採用の判断
- 責任: 最終的な品質担保、ビジネス価値の決定
AIの役割(70%):実装と調査
- 実装: コードライティング、単体テスト作成、リファクタリング
- 調査: エラー原因の切り分け、ドキュメントの一次作成
- 文書化: 設計書の更新、日次レポートの作成
ケーススタディ:AIと踊るための「判断力」と「外部脳」
実際にあった、AIの「実装力」と人間の「判断力」、そして「最新ツール」が噛み合ったエピソードを紹介します。
Case 1. AIの暴走を止める「フェーズ管理」
AIは実装が得意なため、隙あらばコードを書こうとします。
プロトタイプ作成中のある日、事件は起きました。
Claude: 「画面イメージが完成しました!次はバックエンドのAPI実装とDB接続、認証周りも書いておきますね!」
私: 「ちょっと待って。今はまだPhase 1の設計フェーズだよね?仕様も固まってないのに実装しないで」
ここでAIを止めなければ、手戻りが大量発生していたでしょう。
「設計完了まで実装禁止」というルール(フェーズ管理)を徹底することで、手戻り工数を最小限に抑えられました。
Case 2. 5分で決断する「技術選択の往復」
AWS SESでのメール送信実装時のことです。
AIは最新の aws-sdk-ses gemを使って実装しましたが、本番デプロイ直後に「依存関係のエラー」で機能が停止しました。
私: 「まず動かさないと。一旦SMTP方式に切り替えて」
SMTPならRails標準機能だけで動くため、追加gemは不要です。この判断により5分で復旧しました。
翌日、「バウンス処理などでAPIの方が有利」という運用判断のもと、改めて aws-sdk-rails でAPI方式に戻しました。
- 緊急時は「まず動かす(SMTP)」
- 平時は「最適化する(API)」
どちらも技術的には正解です。しかし、状況に応じてどちらを選ぶか決めるのは、AIではなく人間の仕事でした。
Case 3. 外部脳「Context7」によるセキュリティ総点検
開発終盤、外部リソースを検索できる「MCP Context7」を導入し、既存コードのセキュリティチェックを行いました。これが決定打となりました。
単に「暗号化して」と頼むのではなく、「最新のRailsセキュリティのベストプラクティスに基づき、Contactフォームを診断して」とContext7に依頼。すると、AI単体では見落としがちな重要事項を指摘してきました。
- ボット対策の不足:
- 提案: 「reCAPTCHAはユーザー負荷が高いので、まずは見えないHoneypotフィールドを追加しましょう」
- 既存データへの配慮:
- 提案: 「Active Record Encryptionで暗号化(email, name, message)を行いますが、単に導入すると既存の平文データが読めなくなり500エラーになります。support_unencrypted_data = true オプションを有効にし、段階的に移行しましょう」
この提案のおかげで、本番環境を落とすことなく暗号化を適用し、同時にスパム対策も完了できました。
自分の知識やAIの学習データだけでなく、外部の最新ドキュメントを「外部脳(Context7)」として参照させることで、セキュリティの死角を潰すことができました。
裏技:「司令塔」と「実行部隊」を分ける
開発が進みリポジトリが膨れ上がってくると、Claude Code(CLIツール)だけではコンテキストを追い切れず、同じ作業をループする場面が出てきます。
そこで導入したのが、Claude.ai(ブラウザ版)の「Project機能」との併用です。
役割分担の最適化
- 司令塔(Claude.ai Project):
- リポジトリ全体を登録し、俯瞰的な視点を持つ。
- 具体的なコード修正ではなく、「解決への道筋」を見つけさせる。
- 実行部隊(Claude Code CLI):
- ターミナルで動作し、ファイルの編集・実行を担当。
- 司令塔からの指示を忠実に実行する。
成功率98%のワークフロー
- Claude Code が作業ループに陥る。
- ブラウザ版の Project 機能に「現状の問題」を相談する。
- Project 機能が、リポジトリ全体を見て「Claude Codeへの指示書」を発行する。
- その指示書をターミナルに貼り付ける。
この手順を踏むと、体感で98%成功します。もし1回目で外しても、2回目には確実に正解へ誘導してくれます。
今日から使える実践テクニック
Claude Codeを「部下」ではなく「最強の相棒」にするための具体的なTipsです。
1. CLAUDE.md でプロジェクトの憲法を作る
ルートディレクトリに CLAUDE.md を置き、プロジェクトのルールを明文化します。
プロジェクトルール
- コマンド: bin/rails を使用すること
- 品質基準:
- メソッドは20行以内
- 重複コードは3回まで(以降は共通化)
これを置いておくだけで、AIは勝手にリファクタリングを提案してくれるようになります。
2. session-start と add-report で文脈を繋ぐ
AIは忘れん坊です。毎日の儀式で記憶を維持します。
🛠️ ルーティンを自動化するCLAUDE.mdに入れるコマンド例
# `session-start`
Description:セッションを開始し、前回のコンテキストを復元する
Steps
1. `ls -t reports/*.md | head -n 1` を実行し、最新のレポートファイルを見つける。
2. そのファイルの内容(特に `Next Actions` と `Current Phase`)を読み込む。
3. 読み込んだ内容を元に、「準備完了。現在のフェーズは [Phase] です。直近の課題は **[TODO]** です。」とユーザーに報告し、指示を待機する。
# `add-report`
Description:作業内容を記録し、次回のコンテキストを作成する
Steps
1. `git status` とこれまでの会話履歴を確認し、今回の実装内容(変更ファイル、主要な変更点)を箇条書きでまとめる。
2. 次回のセッションでやるべき `Next Actions` を3つ以内で列挙する。
3. 現在の進捗フェーズ `Current Phase` を定義する。
4. 上記の内容をマークダウン形式で `reports/YYYY-MM-DD.md` に保存する(同日のファイルがある場合は追記する)。
- **Format**:
```markdown
## [Time] Report
- Changes: ...
- Current Phase: ...
- Next Actions: ...
```
コマンドの使い方例
- 朝: session-start コマンド(自作エイリアス)で、「昨日の進捗」と「今日のPhase」を確認させる。
- 夜: add-report で作業内容を要約させ、CLAUDE.md や日報ファイルに追記させる。
この習慣のおかげで、「あれ、何やってたっけ?」がなくなりました。
💡 小ネタ:作業再開時 昼休憩などでセッションを中断した場合は、Claudeの標準 claude --continue コマンドを使えばコンテキストを引き継いだまま再開できます。
3. 「スクショ駆動」開発
UI修正指示を言葉で行うのは非効率です。
「ここが変」とスクリーンショットを貼るだけで、AIは座標や色を解析し、CSSを修正してくれます。修正ラリーの回数が1/3に激減しました。
結論:AIと踊れば、仕事はもっと楽しくなる
「AIに仕事が奪われる」と恐れる必要はありません。
むしろ、AIのおかげで「面倒な単純作業(実装)」から解放され、「本質的な価値創造(判断・設計)」に集中できるようになりました。
私がやったのは、20年の経験を活かして「待て(判断)」と言い、「再起動して(基本)」と指示したことだけ。
もしあなたが、日々の実装や調査に追われているSE/PMなら、まずは「小さなプロトタイプ作成(所要時間30分)」から試してみてください。
ルーターを買い替える前に、AIに聞いてみましょう。
きっと、あなたのエンジニアライフを劇的に変える「相棒」になるはずです。
使用技術スタック
- Ruby on Rails 8.1.1
- Ruby 3.4.7
- PostgreSQL 17
- Docker / Docker Compose
- AWS Lightsail (SES, Route53)
- Claude Code (CLI) & Claude.ai Projects (Web)
- MCP Context7 (Official Documentation Search)
配布アセット
https://github.com/miyakawa2449/kzrb160
- AI協働型開発プロセス定義書 (v1.0)
- コンテキスト制御用 CLAUDE.md 実例
- PM用:AI暴走防止チェックリスト