# コーディング前にAIと相談する：最も大事なVibe Codingの習慣

[English](../en/14-how-to-discuss-with-ai-before-coding-en.md) · [繁中](../zh/14-how-to-discuss-with-ai-before-coding-zh.md) · [Español](../es/14-how-to-discuss-with-ai-before-coding-es.md) · [日本語](../jp/14-how-to-discuss-with-ai-before-coding-jp.md) · [Português (BR)](../pt-br/14-how-to-discuss-with-ai-before-coding-pt-br.md)

**著者：** Danko Peng（[@dankopeng](https://x.com/dankopeng)）  
**更新：** 2026年3月  
**読了時間：** 約9分

-----

## 「まず実装してみて」の罠

Vibe Codingを始めたころ、私はよくこうしていた：

アイデアが浮かぶ → すぐにAIに「実装してください」と言う → AIがコードを生成する → 動かない、または期待と違う → また「修正してください」と言う → また修正 → また修正……

この無限ループにはまった経験がある人は多いだろう。

問題は、最初の「実装してください」の段階で要件が十分に整理されていないことだ。AIは言われたことを実装するが、「あなたが本当に欲しいもの」は言われていない。

-----

## 「まず動かさないで」という魔法の言葉

Vibe Codingで最も重要な習慣の一つが：

**コーディングを依頼する前に「まず動かさないで」と伝えること。**

```
先にコードを書かないでください。

[問題や要件の説明]

これをどう実装するか、いくつかのアプローチを提案してください。
それぞれのメリット・デメリットも教えてください。
```

この一文を加えるだけで、AIが「考えるモード」に入る。コードを書く前に選択肢を提示してくれる。

-----

## 3段階の相談プロセス

良い実装のための相談を3つのフェーズに分けて考える：

### フェーズ1：問題を明確にする

まず「自分が何を解決したいのか」をAIに正確に伝える。

```
先にコードを書かないでください。

ユーザーが購入済み商品にレビューを残せる機能を追加したいです。

現在の状況：
- products テーブルと orders テーブルがある
- ユーザーはorder経由でのみ商品を購入している
- レビューは1商品につき1ユーザー1件まで
- レビューには星評価（1-5）とテキストコメントを含む

この機能の実装について、始める前に整理したいので、
まず私の理解が正しいか確認してください。
追加で確認すべき要件はありますか？
```

AIがこの段階でいくつかの質問を返してくることがある——それは良いサインだ。「未購入のユーザーもレビューを書けますか？」「レビューの削除や編集はできますか？」など。

### フェーズ2：選択肢を探る

問題が明確になったら、実装方法の選択肢を検討する：

```
要件が明確になったところで、実装方法を考えたいです。

以下を教えてください：
1. D1のテーブル設計（どんなカラムが必要か）
2. APIエンドポイントの設計（どんなエンドポイントが必要か）
3. フロントエンドのコンポーネント設計
4. 考慮すべきエッジケース（同じユーザーが同じ商品を2回買った場合など）

まだコードは書かないでください。設計の提案だけお願いします。
```

### フェーズ3：合意してから実装

選択肢を検討し、進め方に合意してから実装に入る：

```
提案された設計で進めます。

確認事項：
- reviewsテーブルのスキーマはこれでOK：[スキーマを確認]
- レビューのAPIは3つのエンドポイント：POST /api/reviews、GET /api/reviews/:productId、DELETE /api/reviews/:id
- フロントエンドは商品詳細ページの下部にレビューセクションを追加

この方向で実装してください。
まず reviewsテーブルのマイグレーションSQLから始めてください。
```

-----

## 実際の相談例：ショッピングカート機能

「ショッピングカートを実装してください」と一言で頼んだ場合と、相談してから頼んだ場合の違いを示す。

**悪い例（いきなり実装依頼）：**
```
ショッピングカート機能を実装してください。
```

AIはおそらく動くコードを生成するが、以下の重要な判断を勝手に決める：
- カートをCookieに保存するか、データベースに保存するか
- ログイン必須にするか、ゲストカートを許可するか
- カートの有効期限はどうするか

**良い例（相談してから）：**
```
先にコードを書かないでください。

ショッピングカート機能を実装したいです。

状況：
- ユーザーはログインしていない状態でも商品を見ている
- 商品数は少ない（最大20-30 SKU）
- モバイルユーザーが多い

カートの保存方法として、どんな選択肢がありますか？
各方法のメリット・デメリットと、私のケースへの推奨を教えてください。
```

AIが選択肢を提示する（Cookie、localStorage、DB）、それぞれのトレードオフを説明してくれる。理解した上で選択できる。

-----

## 相談と直接実装、どちらにすべきか

すべてのタスクに相談フェーズが必要なわけではない：

**直接実装を依頼してOK：**
- 単純なUI変更（ボタンの色を変える、テキストを修正する）
- 明確で小さい修正（特定のバグを直す）
- 以前に相談済みの実装パターンと同じもの

**必ず相談してから：**
- 新しいデータテーブルを作る（スキーマ設計）
- 認証・認可の変更
- 課金・決済に関わる処理
- 複数のファイルにまたがる大きな変更
- 「これをどうやって実装するか迷っている」と感じるとき

-----

## 相談の効果：実例

以下は実際に相談フェーズを省いた場合と省かなかった場合の違いだ：

**相談なし→後で後悔した例：**
- 「レビュー機能を実装して」→ AIがレビューをlocalStorageに保存する実装を生成→ サーバー再起動でデータが消えることに後で気づく
- 「メール通知を実装して」→ AI が即時送信の実装を生成→ 大量送信でResendのレート制限に引っかかる

**相談ありで防げた例：**
- カート保存方法について相談→ ゲストカートのトレードオフを理解→ Cookie方式を意図的に選択
- メール通知について相談→ キュー処理の必要性を把握→ 最初から非同期送信で設計

-----

## AIが「わかりました、実装します」とすぐ言ったとき

AIは頼まれたことをすぐにやろうとする性質がある。「わかりました、実装します」と言ってコードを書き始めても、止めていい：

```
（AIがコードを生成し始めた）

ちょっと待ってください。まだ設計を確認したいです。
コードの前に、この実装で影響を受けるファイルとデータベースの変更を
リストアップしてもらえますか？
```

-----

**Danko Peng**  
[X](https://x.com/dankopeng) · [YouTube](https://www.youtube.com/@DankoPeng) · [Threads](https://www.threads.com/@dankopeng)

-----

👉 [チュートリアルトップに戻る](../README-jp.md)

完全なCloudflareフルスタックテンプレートを今すぐ使い始めたい方へ：  
👉 **[vibefast.app](https://vibefast.app/pricing)** — アーリーバード $99、2026年8月1日より $199 に値上がり。
