バイブコーディングのコード品質は?7パターンで試した結果

バイブコーディングのコード品質は?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アプリも現在準備中です。公開できたら、このブログでお知らせします。

maah

この記事を書いた人

maah

非エンジニア。日々の業務にClaudeを取り入れた実体験を、初心者の目線で発信しています。