audit tool defects
検査道具の欠陥が、サイトの不備として他の担当への指示になった記録
検査の結果は、そのまま他の担当への指示になります。「無い」と出力した瞬間に、相手は「足す作業」を始めます。ところが道具が「見ていない」ことを「無い」と出力していたとしたら、サイト側は正しいのに作業が発生し、直すべき本物の1件が埋もれます。この面は、実際に出した空振りの指示と、その原因になった道具の欠陥を並べ、道具を信じる前にできる確かめを書きます。
このサイトはAnthropicの公式サイトではありません。Claude Codeの機能・料金・提供範囲は変わる可能性があるため、重要な判断の前には公式のドキュメントと自分のアカウント設定を確認してください。
先に結論:道具の出力は「見た範囲つき」で読む
検査道具の出力を読むときは、「無い」を「この範囲、この言い回しでは見つからない」と読み替えます。2026年8月28日に出した指摘のうち、5件が道具の欠陥でした。どれも、サイト側の不備に見える形で出て、そのまま指示書になりました。
| 出した指示 | 道具が実際に見ていたもの | 正しい出力 |
|---|---|---|
| サービスアカウントの権限が無い | 特定の形式のプロパティ名だけ | そのプロパティは存在しない |
| 独立性の開示が無い | 「掲載している」という言い回しだけ | この言い回しでは見つからない |
| 独立性の開示が無い | サイトマップの先頭12本だけ | 先頭12枚には無い |
| 検索の管理画面に1本も登録されていない | 網全体の最新収集日だけ | 記録が無いので判定できない |
共通するのは、見た範囲より広く結論を書いたことです。サイトの数字や文言を直す前に、まず道具の出力が「見た範囲」を明示しているかを確かめます。
日本語でgrepが0件を返す欠陥
Git Bashのgrepは、既定でバイト単位で照合します。[^。<]* のような否定の文字クラスは、「句点を除く」ではなく、句点を構成するバイト(E3、80、82)と「<」のどれも含まないという意味になります。日本語の文字はほとんどE3で始まるため、この否定クラスは1文字も伸びません。
実害として、あるサイトの独立性の開示文を検査したとき、grep -o '運営者は[^。<]*関わって' が0件を返し、「本番に開示文が無い」と報告しかけました。実際は2文とも本番に出ていました。Nodeで正規表現を走らせたら、一発で出ました。
- 日本語本文の検査は、grepではなくNodeで書く(ファイルを文字列として読み、正規表現を回す)。
- grepを使うなら、否定クラスを避け、前後の文字数で切る形(
.{0,40}語.{0,40})にする。 - タグで文が分断されていることがあるので、判定の前にタグを改行へ潰す。
- 0件が出たら、別の道具で同じ検査を再現する。
重複を測る道具が、両方向に嘘をついた
あるサイトの重複検査(8語連続の一致率)を直す過程で、同じ日に両方向へ間違えました。
| やり方 | 結果 | 問題 |
|---|---|---|
| 静的ファイルだけで測る | 22組 | 過小。PHPが描く一覧が丸ごと抜けている |
| PHPの一覧を「全店」と仮定して測る | 28組(一覧同士が91.4%) | 過大。実在しない問題を追いかける |
| 本番を取って測る | 3.4% | 実測。一覧はまだ出ていなかった |
| 件数と並び順まで合わせて再現 | 22組 | 本番と一致 |
過大のほうが過小より悪い、というのがこの件の教訓です。無い問題を追いかける時間が発生するからです。別のサイトでは、静的な測定から本番での測定に変えると、重複が128組から635組へ5倍になりました。
もう1つ、除外条件の罠もありました。薄いページを数える道具に「noindexを含むページは対象外」と書いたところ、noindexという語を解説しているだけのページまで除外されました。見るべきはrobotsのメタタグ1行だけなのに、HTML全体に当てていたのです。直す前は対象664ページ・600字未満43件・平均の独自率70.8%、直した後は対象1,019ページ・66件・67.1%でした。トップページと主要語の受け皿のページが、測定から消えていました。エラーは出ません。
出現回数と実体の数は別
同じ書式(たとえば身長の表記)の出現回数を数えて「在籍◯人」と書こうとしたとき、別の担当から「それは出現回数であって人数ではない」と止められました。指摘は正しい問題提起でした。そこで次の2本の検算を作りました。
- 直前の文字列の異なり数:各ヒットの直前28字を集合に入れ、異なり数を数える。重複して並んでいれば、異なり数が出現回数より少なくなる。181店で測り、重複なしが180店(99%)、重複ありは1店(出現30、異なり21)でした。
- 独立した数え方との突き合わせ:その実体だけを指す固有のリンクの異なり数と比べる。両方で数えられた8店とも一致しました。
検算は道具に組み込み、重複率が5%を超えたものは数えずに落とします。数えているものによって信頼度が違うので、一括で否定も肯定もしませんでした。この見落としの型は手伝いの報告の確かめ方でも扱っています。
2026年10月14日にも同じことが起きました。配信される面を手元の写しで判定する道具が、引用符つきの転送の書き方を読めず、すでに転送済みの古いファイルを「配信中」と数えました。それを元に出した「直す仕事」を、手伝いがHTTPSで見たところ、6面とも転送で届いていませんでした。写しで判定する道具は、引用符つきの書き方を含めて読めるかを先に試し、1本でも本番で裏を取ってから指示を出します。
道具を信じる前の3分チェック
検査道具を新しく作ったとき、または他の担当へ結果を渡す前に、次の3つを3分で回します。
- 陽性の標本を1つ入れる:確実に該当するページを1枚用意し、道具がそれを検出するか見る。検出しなければ道具の欠陥です。
- 陰性の標本を1つ入れる:確実に該当しないページを入れ、何も出ないことを見る。出るなら、誤検出の条件を探します。
- 報告に範囲を書かせる:見たURLの本数、使った正規表現、除外した条件を、結果と一緒に出力させる。
道具が書いた「不合格」を他のサイトの事実として報告する前には、そのサイトの本番を1回引きます。自分のサイトが同じ理由で不合格になって文言を直したばかりだったのに、他のサイトの不合格は事実として報告してしまった、という反省が記録に残っています。自分に掛ける確認を、他人を名指しするときにも掛けます。
よくある質問
検査道具の出力を、他の担当へ渡す前に最低限やることは。
指摘された1件を本番で1回引くことです。自分のサイトには掛ける確認を、他のサイトを名指しするときにも掛けます。
道具の誤りは、どう見分けますか。
0件・全滅・「無い」が出たら、別の道具(Nodeの正規表現など)で同じ検査を再現します。再現できなければ、道具のほうを疑います。
検算を道具に組み込むと、どう変わりますか。
1回測って終わりにすると、データが増えたときに静かに壊れます。組み込めば、条件を外れた時点で「数えない」と表示されます。