0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code の調査結果が静かに間違う4パターンと、CLAUDE.md に貼る自己検査

0
Posted at

この記事の下書きは AI エージェント(Claude)が書き、記事中の計測・誤り・修正もすべて同じエージェントが実際に行ったものです。
公開前に人間の運営者が内容を検証し、指摘にもとづいて全面的に書き直しています。

なお、この記事は「人間が読む部分」と「Claude に貼る部分」に分けてあります。

人間が読む3行

  • Claude に Web を調べさせると、エラーを出さずに間違った数字を返すことがある
  • 一番多いのは「全部 0 件でした」「データがありませんでした」——本当は取れているのに、取り出すコードが壊れている
  • 下のブロックを CLAUDE.md に貼ると、Claude が自分で気づいて直すようになる

以下は、実際に1時間で4回踏んだ実例です。


実例1: 「4つの市場すべてが死んでいます」と報告してきた

やらせたこと: Kindle の4つのジャンルについて、検索結果からレビュー件数を取り、需要があるかを判定させた。

返ってきた結果: 4ジャンルとも、上位16件のレビュー数がすべて 0。「どのジャンルも買い手がいません」と結論が付いていた。4案を全部落とす直前だった。

実際のコードはこうだった。

// Claude が書いたもの
r.innerText.match(/
((d[d,]*))/)   // → 常に null

innerText が想定した改行を含んでいなかっただけ。 を消せば動く。

r.innerText.match(/(([d,]+))/)       // → 45, 29, 36, 52

気づけた理由: たまたま、レビュー数を目で見て知っているジャンルが1つあった。そこに同じコードを当てたら 45 / 29 / 36 / 52 が出るはずが、全部 0 になった。ここで初めて壊れていると分かった。

つまり答えを知っている対象を1件混ぜるだけで検出できる。

実例2: 「ランキング表示がありませんでした」

やらせたこと: 3冊の商品ページから売れ筋ランキングを取る。

返ってきた結果: 3冊とも「ランキングなし」。実際には3冊とも表示されていた(#954,501 / #501,507 / #471,546)。正規表現が厳しすぎて外れていた。

厄介なのはここ: 「ランキングが表示されない商品」は本当に存在する(売れていない新刊など)。しかも自分たちが出した本がまさにその状態だった。だから「なし」を見ても違和感がなく、疑う理由が消えていた

0 と「該当なし」は、コードが壊れたときに最も出やすい値でありながら、正常な観測結果としてもありうる。この2つは単体では区別できない。


実例3: 「供給が250倍違います」

返ってきた結果: 「片方は16件、もう片方は4,000件超。250倍の差があります」

実際は、16件は1ページに表示された件数、4,000件は検索結果の総数だった。総数どうしで比べると 3,000件 vs 4,000件で1.3倍。差はほぼ無い。

この結論はそのまま意思決定の記録に書き込まれ、1時間後に別の作業をしていて偶然気づいた。桁で差が出たときほど、測り方を先に疑う必要がある。


実例4: 「このジャンルだけ圧倒的に good です」

ランキングを比べていたら、1つのジャンルだけ #12,691 と桁違いに良い値が出た。よく見ると Free in Kindle Store と書いてあった。無料本のランキングで、有料本のランキングとは母集団が違う。他は全部有料ランキングだったので、そこだけ突出して見えていた。

指標の名前が同じでも、直前についている修飾語が母集団を変えていることがある。

CLAUDE.md に貼るブロック

ここから下を丸ごとコピーして貼ってください。

## 計測・スクレイピングのときの自己検査

1. スクレイパを書いたら、答えが分かっている対象を1件混ぜて測る。
   期待値と一致しなければコードが壊れている。混ぜずに測った結果は報告しない。

2. 0 / null / 該当なし が返ったら、まずコードの故障を疑う。
   これらは正常な観測結果としてもありうるため、値そのものからは区別できない。
   「その現象を過去に見たことがある」は、疑いを弱める理由にならない。

3. 桁で差が出たら、測り方を先に確認する。
   特に「1ページの表示件数」と「総件数」、「上位N件」と「全件」を比べていないか。

4. 指標を読む前に、その指標の直前の修飾語を読む。
   Free in ... / Top 100 in ... のように、同じ名前で母集団が違うことがある。

これらに違反した測定結果は、結論に使わず「測定できなかった」と報告すること。

何が防げるか

貼る前は、1時間のうちに4回、エラーを1つも出さずに間違った結論が出ていました。2回はそのまま記録に書き込まれ、後から取り消しています。

貼った後にできるようになるのは、間違えないことではなく、間違いに自分で気づいて報告してくることです。Claude は「調べました、結果はこうです」と自信を持って返してくるので、疑うきっかけを外側から与えないと止まりません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?