Chuyển đến nội dung chính
友田 陽大
Vibe coding: shipping AI-generated code safely
バイブコーディング
AI駆動開発
技術選定
セキュリティ
Next.js

バイブコーディングとは?Cursor・Claude Code・v0・Lovable・Boltの使い分けと本番化ガイド

バイブコーディング(vibe coding)とは何か。Karpathy由来の定義から、Cursor・Claude Code・v0・Lovable・Boltを『エディタ型/エージェント型/ビルダー型』の3分類で使い分ける基準、そして『動く≠安全』を埋める本番化の最小ゲートまで、自分で作る開発者向けに一気通貫で解説します。

Published
Reading time
11 min read
Author
友田 陽大
Chia sẻ

最初に結論を述べます。バイブコーディングとは「AIにコードを任せ、diffを逐一読まずに雰囲気で進める作り方」であり、Cursor・Claude Code・v0・Lovable・Bolt は"エディタ型/エージェント型/ビルダー型"の3分類で使い分ければ迷いません。ただし、どのツールで作ろうと「動く」は「安全・壊れない」を意味しません。生成の速さを本番品質に変える鍵は、出荷前に機械的な検証ゲートを挟むことです。

この記事は、自分で手を動かして作る開発者向けです。「AIで作ったアプリの発注・受け入れをどう見極めるか」という発注者視点は別記事(本番化・ハードニング)にまとめてあります。読者が違うので、混同しないでください。ここでは、私自身が一人 × 生成AI(Claude Code)で経済産業大臣賞を受賞したB2B SaaSや本番二重課金0件の決済基盤を作ってきた前提で、ツールの選び方と、本番に出すための最小ラインを、作り手の目線で書きます。


1. バイブコーディングとは — Karpathy の定義に立ち返る

「バイブコーディング(vibe coding)」は、Andrej Karpathy が2025年2月2日に名付けた造語です(原典のポスト)。彼の定義はこうです——**「雰囲気(vibes)に完全に身を委ね、指数関数(AIの進化)を受け入れ、コードが存在することさえ忘れる」**新しいコーディングのやり方。彼はこう続けます。「私は『Accept All』を常に押し、もうdiffを読まない」。

ここで見落とされがちな一文があります。Karpathy 自身、これを**「使い捨ての週末プロジェクトには悪くない(not too bad for throwaway weekend projects)」**と限定していました。つまり原義のバイブコーディングは、壊れても困らないおもちゃを高速に作るための手法です。

問題は、その後この言葉が**「AI主導でコードを書く開発全般」**を指す広い意味に拡張され、本番SaaSまで同じノリで出荷されるようになったことです。原義の「diffを読まない」を、決済や個人情報を扱う本番アプリに適用したら——それは事故です。だから本記事の立ち位置はこうです。生成の"バイブ"は歓迎する。ただし出荷の直前にだけ、機械的な検証で正気に戻る。


2. ツールの3分類 — エディタ型 / エージェント型 / ビルダー型

AIコーディングツールは乱立していますが、**「抽象度」と「制御の粒度」**の2軸で見ると、きれいに3つに分かれます。ここを理解すると使い分けが一発で決まります。

分類代表ツールあなたの役割抽象度出力の単位
エディタ型Cursor, GitHub Copilot, Windsurfあなたが運転し、AIが補完・提案低(行〜ファイル)差分・補完
エージェント型Claude Code, Codex, Cursor Agentタスクを言葉で委譲、AIが自律実行中(機能・複数ファイル)コミット・PR
ビルダー型v0, Lovable, Boltプロンプトからアプリを丸ごと生成高(アプリ全体)動くアプリ+バックエンド

エディタ型 — あなたが手綱を握る

Cursor や Copilot は、エディタに埋め込まれた強力な補完です。あなたが1行ずつ、あるいは1関数ずつ運転し、AIは次の一手を提案します。制御の粒度が最も細かく、生成物が常に目の前にあるのが強みです。既存コードへの外科的な変更、微妙なリファクタ、"ここだけ直したい"に向きます。原義のバイブコーディングに最も近いのはCursorの Composer で、Karpathy が例に挙げたのもこれでした。

エージェント型 — タスクを委譲する

Claude Code や Codex は、「認証モジュールにテストを書いて、走らせて、落ちたら直して」のようなタスク単位の指示を、複数ファイルを跨いで自律的に実行します。ファイルを読み、編集し、コマンドを実行し、コミットやPRまで作る。抽象度は一段上がり、あなたはレビュアーに回ります。 既存コードベースでの機能追加・バグ修正・大規模リファクタの主力です。私が本番プロダクトを作る際の中心はここです。

ビルダー型 — プロンプトからアプリを生成

v0・Lovable・Bolt は、「〇〇できるアプリを作って」の一言から、UIもバックエンドも含めた動くアプリを生成します。抽象度が最も高く、最も速い。ゼロからの立ち上げ、デザインの叩き台、社内ツールのプロトタイプに圧倒的な破壊力があります。一方で、生成物の内部——特にデータベースや認可——があなたの視界から最も遠いのもこの分類です。ここが第4節の核心につながります。


3. 使い分けの基準 — 「何を作るか」で選ぶ

3分類を、実際の判断に落とすとこうなります。私の使い分けは単純で、「どこまで人間が手綱を握りたいか」=リスクの高さで選ぶだけです。

ゼロから立ち上げ・UIの叩き台・使い捨てプロト
   └─→ ビルダー型(v0 / Lovable / Bolt)で一気に形にする

既存コードベースへの機能追加・リファクタ・テスト整備
   └─→ エージェント型(Claude Code / Codex)にタスクを委譲する

決済・認可・データ整合性など「間違えたら事故る」中核ロジック
   └─→ エディタ型(Cursor / Copilot)で1行ずつ運転し、diffを必ず読む

重要なのは、この3つは排他ではなく、1つのプロジェクトの中で局面ごとに切り替えるものだということです。私は、ビルダー型で骨格を出し、エージェント型で機能を積み、お金や権限に触れる箇所だけはエディタ型に降りてdiffを1行ずつ確認する——という具合に混ぜます。抽象度を上げるほど速いが、上げるほど「何が起きているか」が見えなくなる。この見えなさをリスクに応じて調整するのが、作り手の腕の見せ所です。


4. 「動く」≠「安全・壊れない」— 抽象度が上がるほどリスクは隠れる

ここが本記事で最も伝えたい一線です。どの分類のツールで作っても、「デモが動く」ことと「本番で漏れない・壊れない」ことは別物です。生成AIはハッピーパスのコードを驚くほど速く書きますが、本番で問われるのは、**不正な入力・同時アクセス・そして"他人のIDを指す正規リクエスト"**にどう振る舞うかです。

そして抽象度が上がるほど、この穴は見えなくなります。

  • エディタ型は生成物が目の前にあるので、まだ気づける。
  • エージェント型は複数ファイルを跨ぐので、レビューを怠ると抜ける。
  • ビルダー型バックエンドを自動プロビジョニングする。v0 / Lovable / Bolt が Supabase を裏で立ち上げるとき、RLS(Row Level Security)や認可の設計は、あなたが一度も見ないまま本番相当になる

これは机上の心配ではありません。AIビルダー製アプリのRLS未設定によって、未認証の攻撃者が他人のデータを読み書きできた事例が CVE-2025-48757(CVSS 9.3 CRITICAL) として登録されています。そして Supabase の service_role キーは PostgreSQL の BYPASSRLS で動き、RLSを完全に無視します——守りの境界が「鍵の置き場所」に移ることを、生成されたコードは教えてくれません。

さらに、**攻撃が"認証も書式も正しい正規リクエスト"**であるがゆえに、WAFやヘッダーでは防げない穴があります。オブジェクト単位の認可欠陥(IDOR/BOLA)は、OWASP API Security Top 10 で2019年以来ずっと第1位の最頻出リスクです。

どれくらいの頻度で起きているか。私が関わるOSS「Aegis」の一次調査では——公開Supabaseアプリ1,000件の一次調査で、RLSを持つアプリのうち約9.2%が『認証はするが行を所有者に絞らない』ポリシを持っていた(公開リポジトリ標本ゆえ下限値。所有者非スコープ=即脆弱ではなく要確認)調査の詳細と手法)。「ログインは通すが、他人の行を返してしまう」——この『認証はするが認可しない』構造こそ、バイブコーディングが最も踏みやすい罠です。

AI生成コードが具体的にどんな脆弱性を量産するか(認可欠落・入力検証漏れ・秘密のハードコード・slopsquatting など)は、AI生成コードの脆弱性診断で修正前後のコードとともに深掘りしています。ここでは繰り返しません。


5. 本番に出す最小ゲート — バイブのループに検証を1枚挟む

では、生成の速さを殺さずに本番品質へ持っていくには何をすればいいか。答えは**「生成のやり方は変えない。出荷の直前にだけ、機械的なゲートを4枚通す」**です。私が一貫して使っている、探索 → 計画 → 実装 → 検証のループの、最後の"検証"に当たる部分です。

ゲート何を止めるか手段
① 型付き境界不正な入力・想定外のデータ形状外部入力を境界で Zod parseprocess.env 直参照を型で排除
② 不変条件のテスト認可の省略・退行「他人のIDで他人のデータが見えない」をテストに固定
③ CIの品質ゲート「人がレビューを忘れる」型チェック・静的解析・依存/秘密スキャンをPRで強制
④ セキュリティスキャンよくある注入・RLS/認可の罠npx @aegiskit/cli scan で静的解析

①②③の設計思想——受け入れ条件をテストに落とし、CIで機械的に守り続ける全体像は、AI駆動開発の品質ゲートにまとめています。そして**「diffを読まない」の対極**として、何を作るかを先に仕様として固め、AIに"その仕様を満たす実装"だけを任せる進め方は、仕様駆動開発(spec-driven)のワークフローで扱っています。バイブで速く生成しつつ、入口(仕様)と出口(検証)だけは人間が握る——これが両立の鍵です。

④ の位置づけ — 無料OSSで現状を可視化する

②③を整える前でも、今あるコードを1コマンドで診ることはできます。MITライセンスのOSS Aegis は、npx @aegiskit/cli scan でインストール不要のまま静的解析し、ヘッダー/CSP・レート制限・入力検証・CSRF・秘密情報衛生といった"水平の統制"の欠落を自動化して埋め、ライブラリには直せない"縦のリスク"(認可/IDOR・Supabase RLS の設計ミス)は検出して警告します。v0 / Lovable / Bolt からエクスポートしたコードも、そのまま食わせられます。

ただし——Aegisは「完全に守る」とは言いません。 そう謳うツールはむしろ危険です(「入れたから大丈夫」という油断が最悪の結果を生む)。第4節で挙げた認可・業務ロジック・テナント分離は"縦のリスク"であり、AIもスキャナも原理的に保証できません。 ここは「誰が何を所有し、どの操作を許されるか」というあなたの事業ルールの意味に依存するからです。スキャナができるのは"形"の検査であって、"意味"の保証ではない。だから縦のリスクを閉じるのは、最後まで設計とレビューという人間の仕事として手放さないでください。


6. この先の深掘り — 本番化クラスタの歩き方

このピラー記事から、目的に応じて次を読むのが最短ルートです。


まとめ — バイブは歓迎する。出荷の直前にだけ、正気に戻る

  1. バイブコーディングの原義は「使い捨て週末プロジェクト」(Karpathy)。本番に持ち込むなら、原義にはない検証ゲートを足す。
  2. ツールは3分類——エディタ型(Cursor/Copilot)/エージェント型(Claude Code/Codex)/ビルダー型(v0/Lovable/Bolt)。抽象度とリスクで使い分ける。
  3. 抽象度が上がるほどリスクは隠れる。特にビルダー型はRLS・認可が見えないまま本番相当になる(下限9.2%の実測、CVE-2025-48757)。
  4. 本番の最小ゲートは4枚——型付き境界 → 不変条件のテスト → CIの品質ゲート → npx @aegiskit/cli scan
  5. 認可・業務ロジック・テナント分離は人間の領域。仕様決定と設計レビューは手放さない。

私自身、この進め方で一人 × 生成AIのまま、実在15ロールでの第三者ペネトレーションテストを含む4ラウンドの監査を経て全221エンドポイントの認証欠落0件を実証したB2B SaaSや、本番二重課金0件の決済基盤を作ってきました。速さの源はAI、安全の源は検証——この設計さえあれば、バイブコーディングは最強の武器になります。まずは無料の Aegis で、今のコードの現状を可視化するところから始めてください。

Câu hỏi thường gặp

バイブコーディングとは何ですか?
Andrej Karpathyが2025年2月に名付けた造語で、AIコーディングエージェントに任せ、diffを逐一読まずに『雰囲気(vibe)』でコードを進める作り方を指します。原義は使い捨ての週末プロジェクト向けで、本番運用は想定していません。現在は『AI主導でコードを書く開発全般』の意味で緩く使われることが多いです。
Cursor・Claude Code・v0・Lovable・Boltはどう使い分けますか?
抽象度と制御の粒度で3分類します。既存コードへの外科的な編集はエディタ型(Cursor/Copilot)、機能単位の実装やリファクタはエージェント型(Claude Code/Codex)、ゼロからのUIや初期プロトタイプはビルダー型(v0/Lovable/Bolt)が向きます。作るものと『どこまで人間が手綱を握りたいか』で選びます。
バイブコーディングで作ったアプリはそのまま本番に出せますか?
多くの場合、そのままでは危険です。AIはハッピーパスは速く書きますが、不正入力・同時実行・認可・エラー処理といった本番の敵対的条件は抜けがちです。特にビルダー型はバックエンドを自動生成するためRLSや認可の穴が見えにくく、型付き境界・テスト・CI・セキュリティスキャンの最小ゲートを通してから出荷すべきです。
無料でバイブコーディングのコードを診断する方法はありますか?
はい。MITライセンスのOSS Aegisが `npx @aegiskit/cli scan` で今のプロジェクトを静的解析します。ヘッダー/CSP・レート制限・入力検証などの水平の統制の欠落を検出し、認可/IDORやSupabase RLSの設計ミスといった縦のリスクは検出・警告します。ただし『完全な防護』は謳いません——閉じるのは設計判断です。

Tài liệu tham khảo

友田

友田 陽大

Người phát triển sản phẩm đoạt Giải thưởng Bộ trưởng (METI). Với TypeScript + Python + AWS, tôi một mình triển khai trọn gói SaaS, chuyển đổi số công nghiệp và AI tạo sinh (RAG) sẵn sàng cho production — từ phân tích yêu cầu đến hạ tầng và vận hành.

That AI-generated code — safe to deploy as-is?

After “it works” comes “it doesn't leak” — scan your project free with one command

Aegis, an MIT-licensed OSS, automates the controls AI tends to skip (headers/CSP, rate limiting, input validation, secrets) and detects-and-warns on vertical risks in authorization and RLS design. The fix plan from `aegis fix --format json` pastes straight into Claude Code or Cursor.

Nhận cả dự án trọn gói lẫn vai trò cố vấn kỹ thuật. Hãy bắt đầu bằng buổi tư vấn miễn phí 30 phút.

最短ルート:カレンダーから直接予約

相談内容が固まっている方は、フォーム送信よりその場で日程を確定する方がスムーズです。下記から空き時間をお選びください。

  • 30分のオンライン無料相談
  • Google Meet / Zoom / Microsoft Teams
  • NDA 商談前締結可・無理な営業はいたしません
無料相談の空き枠を予約する

Cũng đáng đọc