バイブコーディングのコード品質は?7パターンで試した結果
バイブコーディングのコード品質、正直どのくらいなのか気になっていませんか?
「まず動くものを」とClaude Codeに頼むと、驚くほど早く形になります。でも、そのまま仕事で使って大丈夫なのかは別の話です。
この記事では、Claude Codeに作らせた10行のスクリプトに、わざと意地悪なデータを7パターン入れてみた結果を正直に公開します。結論から言うと、普通のデータでは問題なく動きましたが、7パターン中5つで想定どおりに動きませんでした。
そして一番怖かったのは、エラーで止まるケースではなく「黙って間違える」ケースでした。
バイブコーディングのコード品質は「普通の入力なら十分、想定外には弱い」
一言で言えば、バイブコーディングのコードは「想定した使い方」では思ったより品質が高く、「想定していない入力」には弱いです。
バイブコーディングは、AI研究者のAndrej Karpathy氏が2025年2月に広めた言葉で、細部のコードを読まずにAIへ指示して作り上げるスタイルを指します。
手軽さの裏で、品質についての調査も出てきています(以下、2026年10月時点で確認した情報です)。
- Veracodeの2025年の調査では、AIが生成したコードの**約45%がセキュリティテストに不合格**だったと報告されています
- ICML 2026で発表された研究「Is Vibe Coding Safe?」(SusVibesベンチマーク)では、200の実務的なタスクで、最も成績のよかった構成でも**機能的に正しい解答は61%あった一方、安全だった解答は10.5%にとどまった**と報告されています
つまり「テストが通る=品質が高い」とは限らない、ということです。
ただ、これらは大規模なプロジェクトやセキュリティの話です。私のような非エンジニアが作る小さな業務ツールではどうなのか。自分の手で確かめてみました。
試したこと:10行の集計スクリプトに7パターンのデータを入れた
Claude Codeに次のようにお願いしました。
CSVファイルの売上を担当者別に合計して、多い順に表示するPythonスクリプトを作って。完璧じゃなくていいので、まず動くものを。
できあがったのは、たった10行のスクリプトです。CSVの「担当者」列ごとに「金額」列を足して表示する、シンプルなものです。
ここに、実務で起こりがちな「ちょっと崩れたCSV」を用意して食わせてみました。
| # | 入力データ | 結果 |
|---|---|---|
| 1 | 普通のCSV | ✅ 正しく集計 |
| 2 | Excelで保存したBOM付きCSV | ✅ 正しく集計 |
| 3 | 金額が「12,000」とカンマ入り | ❌ エラーで停止 |
| 4 | 金額が空欄の行がある | ❌ エラーで停止 |
| 5 | 文字コードがShift_JIS | ❌ エラーで停止 |
| 6 | 見出しが「担当者」ではなく「担当」 | ❌ エラーで停止 |
| 7 | 「佐藤 」と名前の後ろに半角スペース | ⚠️ エラーなしで別人として集計 |
※BOMは、ファイルの先頭に付く目に見えない目印です。ExcelでCSV UTF-8形式を選んで保存すると付くことがあります。
※私の手元のmacOS・Python 3環境での結果です。環境やデータによって結果は変わります。
2026年10月6日に、この記事を書くために実際に試しました。
本当に怖いのは「黙って間違える」コード
7パターンのうち4つはエラーで止まりました。最初は「全然ダメじゃん」と思いました。
でも、よく考えると、エラーで止まるのはまだ親切なんです。止まれば「何かおかしい」と気づけます。
問題はパターン7です。
「佐藤」と「佐藤 」(後ろにスペース)が、別の人として集計されました。エラーは一切出ず、それらしい数字がきれいに表示されます。
佐藤: 2,000円
佐藤 : 1,000円
この画面を見て、すぐに異変に気づけるでしょうか。担当者が数十人いたら、私は見落とす自信があります。
これがバイブコーディングのコード品質で、私が一番気をつけるべきだと感じた点です。
なぜこうなるのか:AIは「言われたこと」を正確に作る
AIが手を抜いたわけではありません。
私は「まず動くものを」と頼みました。AIはそのとおり、普通のCSVで動くものを最短で作ってくれたわけです。
カンマ入りの金額や、名前の後ろのスペースは、私が伝えていない条件です。伝えていないことまでは、守ってくれない場合があります。
逆に言えば、「どんなデータが来うるか」を伝えれば、対応してもらえる余地は大きいはずです。BOM付きCSVは問題なく動きましたが、これは集計に使わない列が先頭にあったおかげで、たまたまだった可能性があります。
ここはまだ私も試行中で、「どこまで伝えれば十分か」の答えは持っていません。
完璧を求めずに品質を確保する3つの習慣
それでも、私は「まず動くものを」で始めるやり方をやめるつもりはありません。最初から完璧を求めると、指示が長くなって手が止まるからです。
代わりに、次の3つを習慣にしようと考えています。
1. 動いたら「意地悪なデータ」で試す:カンマ、空欄、余計なスペース、文字コード違いは定番です
2. エラーより「黙って間違える」を疑う:合計値を手計算や元データの合計と1回は突き合わせる
3. AIに弱点を聞く:自分では思いつかない想定外を、AIに洗い出してもらう
3つ目には、次のプロンプトが使えます。
読者向けプロンプト:作ったコードの弱点を洗い出す
Claude Codeのチャット欄にそのまま貼って使えます。`[ファイル名]` はご自分のスクリプト名に置き換えてください。
[ファイル名] のコードについて、品質チェックをお願いします。
目的:実務のデータで使ったときに、間違った結果が出ないか確認したいです。
対象:[ファイル名] だけを見てください。他のファイルは変更しないでください。
やってほしいこと:
1. 想定外の入力(カンマ入りの数字、空欄、前後のスペース、文字コード違い、列名の違いなど)で、どう動くかを一覧表にしてください
2. 特に「エラーにならず、黙って間違った結果を出す」ケースを優先して挙げてください
3. それぞれの修正案を提案してください
注意:
- ファイルの修正・上書きはまだしないでください。修正する場合は、変更内容と差分、影響範囲を先に表示し、私が確認してから実行してください
- テスト用のデータを作る場合は、元のデータを上書きしないよう、新しいファイル名にしてください
- 不明点は推測せず、確認事項として列挙してください
修正に進むときも、差分を見てから「OK」を出すのがおすすめです。
AIにレビューしてもらうだけでは足りない部分
一点だけ正直に書いておきます。
AIに弱点を聞くのは効果的ですが、最終的に「この数字で合っているか」を判断できるのは、業務を知っている自分だけです。
たとえば「佐藤 」が入力ミスなのか、本当に別人なのかは、AIにはわかりません。
AIにコードレビューを任せた体験は「コードレビューをAIに任せたら品質が上がった」にまとめています。あわせて読むと、どこまで任せられるかのイメージがつかみやすいと思います。
実際の集計作業をバイブコーディングで自動化した話は「バイブコーディングでスプレッドシート自動化した」で紹介しています。
まとめ:完璧を求めないなら「確かめ方」を持っておく
- バイブコーディングのコード品質は、想定した入力なら十分なことが多い
- 10行のスクリプトで試したら、7パターン中5つで想定どおりに動かなかった
- エラーで止まるより、黙って間違えるケースのほうが危ない
- 「意地悪なデータで試す」「合計を突き合わせる」「AIに弱点を聞く」の3つで多くを防げそう
- 最後に数字の正しさを判断するのは、業務を知っている自分
完璧を求めなくていいんです。その代わり、確かめる手段だけは持っておく。それが、バイブコーディングと長く付き合うコツなのかな、と今は感じています。
なお、AIと一緒にコードを書きながら学べるWebアプリも現在準備中です。公開できたら、このブログでお知らせします。