同じ仕様書をGeminiとClaude Codeに投げたら、埋まらない差が出た話

前回、Gemini 3.6 Flashを触った1日目の感触を「速度は明らかに向上、質は指摘すれば直せるが自分からは拾わない」とまとめました。あれから少し経って、実務でも同じ仕様書をGemini 3.6 FlashとClaude Codeの両方に投げる機会がありました。GAS(Google Apps Script)の設計を頼んだのですが、そこで見えた差は、前回のちょっとしたコーディング課題よりもずっとはっきりしたものでした。

仕様の中身そのものは業務に関わるので書けませんが、そこで起きたことは書けます。抽象化して2つのエピソードとして残しておきます。

先に断っておくと、今回は完全に同じ条件での比較ではありません。Geminiはチャットのみで、コード実行やAPIアクセスといったツールは使えない状態でした。Claude Codeはエージェント環境なので、コードを書いて実際に実行することができます。なので、これは「モデル単体の賢さ比較」というより、「今回それぞれに与えた環境・道具込みでの、実務での振る舞いの違い」として読んでください。むしろ、この道具立ての違いも含めて「実際どちらに仕事を任せたいか」という話だと思っています。

仕様書の「行間」を読めたかどうか

渡した仕様書には、2つの要素が入っていました。1つは「参考にしてほしい」と添えた既存のコード。もう1つは、設計思想として明記していた「修正・検証は非エンジニアが進められるようにする」という条件です。

Geminiは、参考コードをほぼそのままアレンジしただけの実装を返してきました。渡した材料はきちんと使っている。でも、もう1つの条件——非エンジニアが修正・検証できること——は汲み取られていませんでした。

Claude Codeは逆でした。参考コードはあくまで参考として扱いつつ、「非エンジニアが修正・検証できるように」という設計思想の方を汲み取り、修正や検証の作業がスプレッドシート上で完結するように設計してきました。

渡した情報は同じです。でも、「渡された材料をアレンジする」のか「渡された材料の背後にある要求を満たす」のかで、成果物の質がはっきり分かれました。

404エラーへの反応で、もっとはっきりした差が出た

もう1つのエピソードの方が、正直インパクトが大きかったです。

仕様書には、当時の過去モデルであるGemini 2.5 Flashを呼び出す前提が書かれていました。ところが実装を進めると、両方とも同じところでつまずきました。仕様書通りにGemini 2.5 Flashを呼び出すコードを書いたところ、404エラーが返ってきたのです。

後から分かったことですが、これには裏がありました。Gemini 2.5 Flashの公式な廃止予定日は2026年10月16日です。ところがGoogleの開発者フォーラムによると、2026年7月上旬から、2.5系のモデル(2.5 Flash・2.5 Pro等)が新規プロジェクトに対してだけ404を返すようになっていました。Google公式スタッフがフォーラムで、2.5系モデルへのアクセスは過去に利用実績があるユーザーに限定している、という趣旨の説明をしています。廃止ではなく容量維持のための措置で、新規プロジェクトには3.1 Flash-Liteや3.5 Flashなど新しいモデルを使うよう案内されていました。つまり、正式な廃止予定日より3ヶ月以上前から、新規ユーザーだけ静かに締め出されていた格好です。

もちろん、実装していたその瞬間には、そんな事情は分かりません。ここからの反応が、両者でまったく違いました。

Geminiは、「2.5 Flashはもう存在しない、最新は2.0 Flashだ」と言ってきました。実はこれ、事実として逆です。2.0 Flashは2.5 Flashより前のモデルで、「最新」どころか一世代以上前のものです。おかしいと思って「本当に2.5 Flashは無いんですか?」と問い直しても、返ってくるのは「はい」の一点張り。何度聞いても訂正されず、最終的に私から「最新は3.6 Flashだよね?」と答えを教えてから、ようやく認めました。

Claude Codeは、モデル名を知識から言い切るということをしませんでした。代わりに、APIキーを渡して、そのキーで実際にどのモデルが呼び出せるかをコードで確認しにいきました。しかも、その確認・呼び出しの仕組みをApp Scriptの中に隠すのではなく、スプレッドシート上で完結するように組んでくれました(ここは1つ目のエピソードで書いた「非エンジニアが検証できるように」という設計思想とも繋がっています)。そのうえでチャットの方で、「新規に作ったAPIキーだと、古いモデルへのアクセスが制限されているのかもしれない」という趣旨の見立ても添えてきました。この時点では裏を取れていない推測でしたが、後から調べ直すと、この見立ては実際に当たっていたことになります。「動くコードを出す」だけでなく「なぜ最初の404が起きたのか」まで考えようとする姿勢自体は、はっきり伝わってきました。

前回の記事で書いた「指摘すれば直せるが、自分からは拾わない」というのは、まだ可愛いものでした。今回は、間違った情報に固執し、指摘されても認めず、答えを教えてようやく訂正するという、一段階踏み込んだ姿を見ることになりました。

それでも、Geminiが悪いだけとは思わない

ここまで読むとGeminiをこき下ろしているように見えるかもしれませんが、そういう結論にはしたくありません。

単発で「このコードを書いて」と頼むだけなら、Geminiでも十分こなせると思います。実際、前回の記事で見た速度の良さは本物です。

ただ、今回のように仕様の背後にある意図を汲み取る必要がある場面や、想定外のエラーに向き合う場面では、話が変わってきます。少なくとも今回見た2つの場面では、「渡された材料をアレンジする」方は得意でも、「材料の奥にある要求」までは見に行きませんでした。しかも、分からないことを分からないと言わずに、誤った情報のまま押し通そうともしました。これが毎回起きることなのかは、まだ2例だけでは分かりません。

それでも、この2例だけでも、継続的に設計し、運用していく相手として見ると、正直ちょっと怖いと感じるには十分でした。今後は、単発のコーディングはGeminiに任せることがあっても、仕様の解釈や設計判断が絡む場面では、引き続きClaude Codeを軸にしていこうと思います。


Gemini 2.5系モデルの新規プロジェクトに対する404の件は、Google AI Developer Forumのスレッド(“Gemini 2.5 Flash and Gemini 2.5 Flash-Lite returning 404”“Gemini 2.5 Pro returns ‘no longer available to new users’“)でのユーザー報告と、Google公式スタッフによる返信を参照している。