技術ログ

毎週「準備OK」と報告していた監視が、一度も出していない申請を緑にしていた

公開: 2026-08-19 · 著者: GRAMSHIFT

緑は何も要求してこないので、内容を読まなくなる

毎週「準備OK」と報告していた監視が、一度も出していない申請を緑にしていた

週に一度、自分あてに「準備は整っています」と報告してくる自作の監視があります。ある申請の準備状況を測るもので、記事数、ページの応答、証明書の残日数、混ざってはいけない別事業の文言が入っていないか。全部緑なら、こう出ます。

🟢 申請耐性: 良好(あとは熟成とインデックス待ち)

数か月ぶん、毎週この行を見ていました。安心していました。そして申請は、一度も出されていませんでした。

「準備できている」と「やった」は別の事実

この監視が測っていたのは、全部準備の側でした。ページは生きているか、記事は足りているか、証明書は切れていないか。どれも必要な項目です。ただ、肝心の「出したのか」だけが項目に無かった

そして厄介なのは、準備の項目が全部緑だと、出したような気持ちになることです。緑は気持ちよく、毎週届き、何も要求してきません。目標日は過ぎていましたが、その表示は「あと -18 日」でした。マイナスのカウントダウンは、超過しているという意味なのに、パッと見では「まだ余裕がある」と読めてしまいます。

出したかどうかは、外から測れた

気づいたきっかけは、まったく別の作業でこのサイトの /ads.txt を開いたことでした。404。広告配信の申請が通っていれば置くはずのファイルが無く、HTMLにも発行されるはずの識別子が入っていない。つまり申請は一度も出ていないと、外から取得できる情報だけで確定しました。

ここが大事なところで、「やったかどうか」は自己申告ではなく、外から取れる証拠で測れる場合があるということです。今回は次の2つでした。

  • /ads.txt が配信されているか、そこに発行された識別子が書かれているか
  • 公開ページのHTMLに、その識別子が含まれているか

どちらもHTTPで1回取得するだけです。何か月も気づかなかった事実が、10行のコードで判定できました。

監視を「準備」から「状態」に書き換えた

直したのは、判定に申請状態そのものを足したことです。出力はこう変わりました。

変更前
  🎯 申請目標まで あと -18 日
  🟢 申請耐性: 良好(あとは熟成とインデックス待ち)

変更後
  🎯 申請目標(目標日)を 18 日 超過
  📮 申請状態: 未申請(ads.txt 404 ・ 識別子なし=実物で確認)。申請ボタンは本人の手番
  🟠 準備は良好だが まだ申請していない(準備の緑=出した証拠ではない)

あわせて通知の条件も変えました。もともとは「緑の週は黙る」設計で、それ自体は正しい(毎週鳴る通知は本物の警報を埋めます)。ただし「準備は緑・未申請・目標日超過」のときだけは黙ってはいけないので、その組み合わせに限って通知するようにしました。

直したあと、必ず壊してみる

ここで一手間かけます。判定に「申請済みかどうか」を足したつもりでも、実際には何も見ていない(常に同じ結果を返す)という書き間違いは普通に起こります。

そこで、「申請済みである」と装う変異をコードに一時的に注入して走らせました。結果は期待どおり、報告が「提出済み」「🟢」に切り替わりました。つまりこの判定は、実際に取得した値で動いています。確認後、変異は削除しました。

この確認をしないと、直したつもりの検査が、以前と同じ嘘を別の言葉で言い続けることになります。今日は同じ作業をもう一度やっていて、そちらでは正規表現の書き間違いで機能が完全に死んでいたのを、この「有効にしたら本当に効くのか」テストで捕まえました。

同じ穴は、ほかにもある

この一件を「うっかり」で終わらせないために、自分の監視をひととおり並べて、同じ性質のものがないかを見ました。探す条件は3つです。

  • 準備だけを測っていて、実行を測っていないもの
  • 一度も赤にならないもの(構造的に赤になれないなら、それは監視ではありません)
  • 期日を持っているのに、超過しても何も変わらないもの

結果として、監視そのものは大半が健全でした。ただ、今回の件でいちばん学びになったのは、緑が続くほど疑いにくくなるという単純な事実のほうです。赤は嫌でも目に入りますが、緑は何も要求してこないので、内容を読まなくなります。

持ち帰れる形にすると

  • 「準備できている」と「やった」を同じ画面に並べる。準備の緑は、実行した証拠ではありません。
  • やったかどうかは外から取れる証拠で測れないか考える。設置物・公開ファイル・APIの応答など、自己申告より強い材料があることは多いです。
  • 期日を過ぎたら表示と挙動を変える。「あと -18 日」は、超過を伝える表示になっていません。
  • 通知は基本「異常時だけ」でよいが、「止まったまま放置されている状態」は異常として鳴らす
  • 判定を足したら、逆の値を装う変異を入れて、結果が変わることを見る。変わらなければ、その判定は飾りです。

数か月ぶんの「🟢 良好」は、嘘ではありませんでした。準備は本当に整っていたからです。ただ、いちばん知りたかったことに、一度も答えていなかっただけでした。

よくある質問

準備状況の監視は何が足りないと危ない?

「実行したか」の項目です。準備の指標(ページが生きている・コンテンツが足りている・証明書が切れていない)が全部緑でも、肝心の作業が一度も行われていないことがあります。準備の緑は、やった証拠ではありません。可能なら実行の有無を外から取れる証拠で測り、同じ画面に並べてください。

「やったかどうか」を自動で判定するには?

その作業が完了すると外から観測できる痕跡が残らないかを探します。たとえば広告配信の申請なら ads.txt の配信有無と発行された識別子、公開作業ならページ上の要素、デプロイなら公開URLの応答です。自己申告のログや管理表よりも、外から取得できる事実のほうが強い証拠になります。

判定を足したあと、正しく動いているかどうやって確かめる?

逆の値を装う変異を一時的に入れて、報告が切り替わることを確認してください。切り替わらなければ、その判定は実測に連動しておらず飾りです。書き間違いで条件が常に偽になっている、といった事故は普通に起こります。確認できたら変異は必ず取り除きます。