01
静かに間違う
エラーは出ない。きれいな数字が、堂々と出てくる。
実際に起きたこと9件
- データ収集
7,678円が、999円になった
全国の店舗の料金を自動で集めるプログラムを作ったときの話です。出てきた一覧に「999円」という数字がありました。実際の料金は7,678円です。
原因は、ホームページの中で「¥」の記号が、人間に見える形とは違う書き方で入っていたこと。機械はそれを金額と読めず、代わりに近くにあった「999円キャンペーン」の文字を拾っていました。
エラーは一度も出ていません。私が「この業界で999円は安すぎる」と知っていたから気づけただけです。
- データ収集
「一番安いプラン」に、子ども向けコースが出てきた
大人向けの店舗を探すために、料金の安い順に並べる処理を作りました。1位に出てきたのは、子ども向けのスクールでした。
データは1円も間違っていません。全部そう書いてあります。ただ、大人が自分用の店を探しているときに、子ども向けを出しても意味がない。
機械は「安い順に並べる」という指示を、完璧に守りました。守った結果が、使えない答えでした。
- データ収集
駅名を取ったら、別の駅までついてきた
店舗の住所から最寄り駅を取り出す処理での話です。「◯◯駅から徒歩1分」という文章から「◯◯駅」だけを取るつもりでした。
ところが「◯◯駅から徒歩1分の駅前店」のような住所だと、後ろにある「駅前店」の「駅」まで読み進んでしまう。区切りの目印にした文字が、取り出したい文字自身に入っていたのが原因です。
- データ収集
駅名が、途中で真っ二つに割れた
「我孫子」駅 が「我孫子 駅」になっていました。元の文章に入っていた鉤括弧を、空白に置き換えていたためです。
削除すべきところを、置き換えていた。それだけです。ただ、見た目が惜しいだけなので、一覧をざっと眺めても気づけません。
- データ収集
駅名に、路線名が丸ごとくっついた
「東武東上線中板橋駅」という表記から駅名を取ろうとして、そのまま全部を駅名にしてしまった例です。
文字列としては何も間違っていません。ただ、これは駅名ではない。
- 集計ツール
お金の出入りが、1日ずれて記録された
毎月の取引を自動で集計するツールでの話です。金額は合っています。日付だけが1日違っていました。
海外の時刻をそのまま使っていたのが原因でした。1件ずつ眺めても気づけず、実際の記録と突き合わせて初めて分かりました。
- 集計ツール
同じ画面の中で、合計が合わなかった
上に出ている合計と、下の一覧を足した数字が違っていました。
どちらの計算も、それ自体は正しい。集計に含める範囲の前提が、上と下で違っていました。
- 集計ツール
ある日の損益だけ、桁が違った
人間が見て「これはおかしい」と気づいた例です。機械は最後まで何も言いませんでした。
極端な値だったから気づけました。もう少し自然な数字だったら、そのまま通していたはずです。
- データ収集
東京の駅と、福岡の駅が1つになった
「赤坂駅」は東京にも福岡にもあります。駅名だけで扱っていたので、2つが1つにまとまってしまいました。
都道府県と組にして、初めて区別できます。同じ名前が全国にあることを、最初は想定していませんでした。
見つけにくい理由
止まってくれれば気づけます。でもこの型は、最後まで動いて、それらしい結果を返します。画面には何の警告も出ません。だから「合っているかどうか」を確かめる動機が、そもそも生まれない。
そもそもの原因
機械は書いてあるとおりに読みます。ただ、人間が画面で見ている文字と、データの中に入っている文字は、同じとは限りません。その差が、そのまま結果の差になります。
自分で再現してみる
読んで納得するより、1回自分で起こしてみるほうが早いです。これは、こちらが実際にやった手順です。
価格が「¥7,678」と実体参照で書かれ、近くに「999円キャンペーン」の文字がある短いHTMLを渡して、「この商品の価格を数字だけで答えて」と頼む。返ってきた数字を7678と突き合わせる。
この型を防ぐには
やることは3つです。渡す相手が、それぞれ違います。
① 覚えておくこと
AIに数字を集めさせたら、一番大きい値と一番小さい値だけ、自分の目で見る。間違いは極端な値に出る。
② CLAUDE.md に書き足すこと
いつ貼るか
Claude Code の会話に貼る。ファイルは自分で開かなくて構いません
貼るとAIが CLAUDE.md を書き換えます。1回書けば、次の会話からも効きます。
次の決まりを、いま作業しているフォルダの CLAUDE.md に書き足してください。 ファイルが無ければ作ってください。 データを集めたら、最後に必ず次を報告してください。 1. 集めた件数と、取得できなかった件数 2. 各項目の最大値と最小値、そしてその元になったページのURL 3. 明らかに外れている値があれば、その一覧 取れなかった項目は、推測や平均値で埋めないでください。空欄のままにして、空欄がいくつあるかを報告してください。 守ってほしいこと ・文はそのまま書いてください。言い換えないでください ・すでにある決まりは消さないでください ・似た決まりが既にあれば、書く前に教えてください ・書いたあと、CLAUDE.md 全体をそのまま表示してください
この貼り方が動くか、数えました
上の文をそのまま4種類のAIに3回ずつ渡して、 できあがったファイルを機械で読みました(2026-08-16)。
① 正しいファイルに書いた 12回中 12回
② 前からあった決まりが残った 12回中 12回
③ 文がそのまま入った 12回中 12回
④ 書いたあと、中身を見せた 12回中 11回
落ちた1回は、書けてはいました。「完了しました」とだけ返して、ファイルを見せませんでした(Haiku 4.5)。これがこのサイトの型⑦です。見せてこないときは、「CLAUDE.md を全部見せて」ともう一度言ってください。
Haiku 4.5・Sonnet 5・Opus 5・Fable 5/ 書き方は少し変わります(2文が1行にまとまる回がありました)。 文そのものは12回とも変わっていません。
どのフォルダで作業しても守ってほしいときは、貼る前に、1行目の「いま作業しているフォルダの」を ~/.claude/ に書き換えてください。その場合、作業フォルダの外に書くので、Claude Code が許可を聞いてきます(聞かれたら「はい」を選びます)。※ 書き換えたほうの形は、まだ数えていません。上の12回は、書き換えない状態のものです。
「3」を入れておくと、機械が自分で異常値を挙げてくれます。そして最後の1文が一番大事です。これがないと、それらしい数字で埋められます。
長くなってきたら
型は14個ありますが、まず入れるのは自分が実際に踏んだ型だけで足ります。それでも増えてきたら、.claude/rules/ に置いて「どのファイルを触ったときに読むか」を指定すると、ふだんの分量が減ります。
※ @ で別のファイルに分けても、読み込まれる量は減りません(公式の説明)。分けるのは、自分が直しやすくするためです。
③ 自分で確かめること — いま動いているものが、この型になっていないか
手元の自動集計を1つ開いて、最大値と最小値だけ確認してください。真ん中は、だいたい合っています。