Claude Code の効果測定は1日でできます。難しいのは、そのあとの数字のほうです
9本走らせて出た数字は、いまも取り下げていません。取り下げたのは、その数字から書いた3本の記事の中の、8つの文のほうです。
Vondet / 2026-09-26 / 読了 10 分
Claude Code の効果測定は、大がかりでなくても意味があります。私たちがやったのは、1日・1リポジトリ・問い1つです。CLAUDE.md に1行足したら、Claude Code の動きは本当に変わるのか。
同じ種類の作業を、2つの主題で9本走らせて、はっきり分かれました。性質として書かれた道具の説明文のもとで走った7本は、ゼロ。出来事として書かれた CLAUDE.md の1行のもとで走った2本は、2本とも。文面と置き場所は、同時に変わっています。この結果は Claude Code がルールを忘れる理由を書いた別の記事にしてあり、いまも取り下げていません(この記事の末尾からたどれます)。
そのあと、記事を書きました。3本です。
その3本から、8つの主張が出所と突き合わせて生き残りませんでした。うち5つは、すでに公開されていた記事の中にありました。
この測定は、標本が1桁の、自分の家のものです。生成AIの効果測定は、他人の数字の当否を決めなくても始められます。Claude Code で生産性向上があったのかも、自分のリポジトリでなら1日で確かめられます。
難しいのは、そのあとです。
1日で終わる効果測定でも、この5つを守れば使える数字になります
どれも私たちが考えたものではありませんし、この先に書くことは、この5つへの反論ではありません。まだやっていないなら、ここから始めてください。
1. どうせ決めることを、測る。私たちはちょうど指示ファイルに1行足そうとしていて、その1行が場所を取るだけの価値があるかを知りたかっただけです。実際の判断にぶら下がった測定は、最後まで行きます。好奇心にぶら下がった測定は、途中で放り出されます。
2. 印象ではなく、結果を数える。あとから他人が、あなたのファイルだけを見て数え直せるもの。開発生産性の指標として持つ価値があるのは、そちらだけです。「道具を呼んだか」は数えられます。「セッションが快適だったか」は数えられませんし、その日の記憶より長くは持ちません。
3. 分子の隣に、必ず分母を置く。「2/2」も「94/100」も、どちらも「良い」です。読む人が、どれだけ信じてよいかを決められるのは片方だけです。分母を落とした百分率は、小さい標本の隠れ場所になります。
4. 隔離が、変更を本当に運んだかを確かめる。私たちは処置群を隔離した作業ツリーで走らせました。あれは既定のブランチから分岐するもので、いま自分が立っている場所からではありません。足したばかりの1行はブランチの上にあり、その2本には届いていませんでした。あと一歩で、逆の結論を報告するところでした。
5. 「この測定が示していないこと」を、走らせた当日に書く。限界をいちばん正確に知っているのは、その日のあなたです。結果がどちらに転んだかを知る前に書いておけば、結果に合わせて限界を整える誘惑も消えます。
5つを全部やっても残るもの —— 測定は正しく、書いた文が間違っていました
5つはどれも、測定を守ります。2週間後に書く文のほうは、1つも守りません。
ここです。
数字は、測った時点で自分のものになるわけではありません。数字は主張であって、もう一度導き直せる範囲でしか信用できません。
理由は物理的で、ひねりはありません。走るのは1日。その記録は、列の意味をまだ覚えている人が同じ日に書きます。記事はそのあと、記録を読んだ人が書きます。記録を読むことは、走った回を見ることとは違います。
受け渡しのたびに、列の名前が変わり、行が合流し、同じ回が二度数えられます。私たちは3つとも踏みました。
3つは書く前から間違っていて、5つは書くときに壊れました
8つのうち3つは、記録の時点ですでに誤りでした。つまり記事は、正しく写していました。
いちばんはっきりしているのは、走った回が1つも無い分数です。記録には、ある群が「0/2」と出ています。記事はそれを、前の版の文面の結果として載せました。
算術が合いません。4つの群は 3・2・2・2 で合計9、余りゼロです。
2つの表に出てくる「0/2」は同じ2本で、片方では「無効」、もう片方では「結果」として数えられていました。報告できる有効な2本は、最初から存在しません。
2つ目の誤りは、読むのをやめていた列の中に隠れていました。結果の表には主題の列があり、3本の対照群だけ、ほかと主題が違います。私たちの「7本」は、2つの主題を黙って足していました。
試していた文面は「実測値」という語で発火します。9本のうち6本はその主題そのものが実測値だったので、主題の側が効いている可能性があります。私たちはそこを切り分けていません。
3つ目の誤りは、記事の中でいちばん気に入っていた文です。「3回が —— 別々の群で、独立に、誰にも言われずに —— 自分で「確からしさの札」を発明しました。」
群は3つではなく2つでした。3回のうち2回は、試していた文面そのものを渡された状態で走っています。
しかもその2回のうち後の1回は、先の1回の成果を見ていました。作業ツリーは隔離されますが、共有のボードは隔離されないからです。
残りの5つは、書くときに入りました。こちらのほうが、恥ずかしい種類です。
誤りの1つは、表の見出しの単語1つです。記録は「指示に従った回数:2/2」。草稿は「道具が呼ばれた回数:2/2」。同じ記事の後ろにある自分の「示していないこと」には、2回のうち1回は書き込む前に止まったと書いてありました。列の名前を変えたのは私で、数字はそのままに主張だけが変わり、記事は公開されているあいだずっと、自分で自分を否定していました。
誤りの1つは、ファイルが無視されたように見せた言い回しです。公開版には「7回連続で無視されました」と書いてあります。その7回のうち、CLAUDE.md にその1行が入っていた回は1つもありません。5回は何も足していない対照で、残る2回には、足したはずの1行が届いていませんでした。
「その1行がファイルに無い状態で7回走った」は、別の文です。しかも、ずっと地味な文です。
誤りの1つは、見出しの本数です。次のセッションへの引き継ぎを書いた別の記事(この記事の末尾からたどれます)の英語版に、こういう文がありました。「同じ6つの見出しが毎回並ぶ」。
指している手順書の列挙は7項目で、しかも見出しではなく箇条書きです。そのファイルは私たちのものです。誰も開いていませんでした。
誤りの1つは、日付です。ある草稿は、その報告を「数日前」に書いたと言っていました。両方のコミットは9月5日で、間は68分です。相対的な時間も数字で、同じように腐ります。
誤りの1つは、読者が足せば分かる算術です。Claude Code の並列実行を書いた記事(こちらも末尾からたどれます)の草稿は「9本必要になりました」で始まり、後半で「3回分が無効になりました」と自分で書いていました。9本は結果の表に残った数で、無効の3回はその外側です。実際は12本以上で、2つの文は同じ記事の中にありました。
4回の採点が見逃し、5回目がファイルを開いて見つけました
これに対する定番の答えは「もう1人読む」で、それは正しい答えです。私たちは全部の記事に採点役を置き、書いた物差しに当てて読ませました。実際、たくさん見つけています。
この2件は見つかりませんでした。
「6つの見出し」と「数日前」は、どちらもその草稿の最初のコミットに入っていました。3回目の採点は自分を「仕上げの検算」と名乗って、その記事を通しました。4回目も通しました。5回目が2件とも見つけて、公開を止めました。
4回目と5回目のあいだで、採点役そのものは変わっていません。変わったのは、どこを見たかです。
5回目は、数字それぞれの出所になったファイルを開いて、中の項目を数えました。2件とも、そこで一度に落ちました。
どちらの主張も、その文を読んでいるかぎり見つかりません。文としてはきちんと出来ているからです。ただ、ファイルに書いてあることと違うだけです。
採点そのものも間違えました。しかも、気づきにくい方向に
ある回の採点は、別の記事を、前の回の点を2つの区分ぶん引き継いで付けました。理屈は通って見えます。本文はあの回から動いていないのだから、新しく足した区分だけ付け直せばよい。
結果は 111/130 で 85.4%、合格線は 85% でした。
次の回が3区分とも付け直したら、引き継いだ側から2点少ない結果が出ました。そのうち前の回に遡って当たるのは1点だけです。もう1点は、あの回のあとの改稿で新しく入った欠陥でした。110/130 は 84.6% です。0.5点差で通したはずの記事は、通っていませんでした。
間違っていたのは「本文は動いていない」ではありません。それは本当でした。間違っていたのは「点は点だ」のほうです。2つの回のあいだに配点が100点から130点に組み替わっていて、いくつかの観点が、名前を変えないまま見るものを変えていました。
見つかったのは、前の回が「0.5点差で越えただけ」と自分で書き残していたからです。その1文が無ければ、誰も戻って調べませんでした。
そこで決めた規律は、望ましいより雑です。本文が動いた回は、全部付け直す。物差しが動いた回は、本文が動いていなくても全部付け直す。
自分の数字は、1時間で検算できます。6手です
公開済みのものなら何にでも当たります。AI 活用の効果測定である必要も、記事がエージェントの話である必要もありません。
- 1. 記憶からではなく、機械で数字を全部拾う。grep -oE '[0-9]+([./][0-9]+)?' draft.md | sort | uniq -c は一瞬です。そのうえで、数字の顔をしていない数字を足します —— 数日前・ほとんど・毎回・同じ6つの・先週。
- 2. 手元のメモではなく、出所から導き直す。数字が出てきたファイルを開いて、自分で行を数えます。メモは写しで、最初の誤りはたいてい写しの中に入っています。
- 3. 部分の和が、全体と一致するか見る。群の合計が全体とぴったりで余りがゼロなら、「自分の走行回数を持っているように見える数字」は持っていません。私たちの場合は 3+2+2+2=9 で、余りはゼロでした。
- 4. 表の見出し・図のラベル・キャプションを、文として読む。列の見出しは、動詞の無い主張です。「道具が呼ばれた」と「指示に従った」は、同じ2本についての別の主張で、測ったのは片方だけです。
- 5. 本文の断定を、自分の「示していないこと」と1つずつ突き合わせる。どちらも同じ回について、自分が書いたものです。食い違ったらどちらかが誤りで、そのファイルの外に出ずに決着します。
- 6. 相対的な日付を、絶対的な日付に直す。git log --date=short は思い出すより速く、こちらに都合よく答えてはくれません。
6手より価値のある問いが1つあります。それは「この数字は正しいか」ではありません。
知らない人から明日もう一度この数字を出してと言われたら、私はどのファイルを開いて、何を数えるのか。
これに1文で答えられないなら、その数字はまだ自分のものになっていません。そこが埋まるまで、6手のどれも効きません。
この記事が示していないこと(7つ)
これは1つのチームの数字で、誤りの発生率の調査ではありません
AI 活用で速くなったかは測っていません
書き手と採点役は、同じ種類の仕組みです
「4回見逃した」は1本の記事の話です
6手は手順であって、測定ではありません
実験の2つの群は、文面だけが違ったわけではありません
記録そのものも直しました
これが崩れる条件
- 私たちが検算済みの記事にこの6手を当てて、9件目が出てくる。そうなれば、この6手は安いだけで十分ではないということで、どの手が足りなかったかを知りたいです。
- 丁寧に読み直すだけで、この種の誤りが確実に見つかると示される。「文の中からは見えない」がこの記事の中心なので、はっきりした反例が1つ出れば、これは発見ではなく習慣に格下げされます。
- 算術の議論のほうが間違っていた —— あの「0/2」の裏に有効な2本があったと分かる実行ログが出てくる。そうなれば1件目の訂正自体が誤りだったことになり、この一覧の中ではいちばん役に立つ結末です。
3つとも安く試せます。引用されるより、訂正されるほうがありがたいです。
ここから先は、私たちがそれに対してやっていることです。地の文に書かれた数字には、いつ測ったかの欄も、まだ暫定かどうかの欄もありません。だから私たちの数字は、公開された記事の中で、確定した事実とまったく同じ顔をして座っていました。
そこで、別の形のものを作っています。Vondet(vondet.com)は、エージェントが直接読み書きする計画と決定の記録です。実測値が測定日と状態を持ったまま置かれるので、周りの文の語調から確からしさを推し量ってもらう必要がなくなります。登録はまだ開いていません。順番待ちだけがあり、いまはそれで十分だと考えています。
その前に1つ。最後に公開した、数字の入っている文章を開いてください。その数字の出所のファイルを開いて、数えてみてください。合ったかどうかを教えてください。合わなかったときは、なおさら。