本番確認(公開したページが正しく出ているかの確認)のツールです。push のあとに、公開中のページを1ページずつ確かめます。見るのは、ページが開けるか(手元の出力を渡せば、本文が同じになったかも)・カードに使う3つの値(題名・説明・画像)があるか・いちばん大きい画像の大きさ・スマホの幅(390px)での6項目です。1つでも外れたら、終了コード 1 で止まります。直すのは人です。

項目内容
入れるものサイトの URL/任意で、確かめるページの一覧(渡さないときは sitemap.xml の全ページ)・手元の出力(build したフォルダ)・画像1枚の上限(既定 300KB)・上に固定したヘッダーの指定・結果を1行追記するファイル
見るものa ページが開けるか(手元の出力を渡したときは、本文〈main の中〉が同じになったかも。そろわなければ30秒おきに最大3分待つ)/b カードに使う3つの値(og:title・og:description・og:image)があり、画像が開けるか/c いちばん大きい画像が上限以下か/e スマホの幅(390px)の6項目(横スクロール・16px 未満の文字・幅より広い要素・ヘッダーが見出しに重なる・押す部分が 44px 未満・明度差 4.5 未満)が全部 0 か
出るものページごとの ○・×・未の表/6項目の数の表/× と未の中身(未なら、本文の違いの最初の場所)/終了コード(全部 ○ なら 0、× か未があれば 1、確かめられなかったときは 2)
できないこと「未」は build の失敗と遅れを見分けない。見るのは渡した URL か sitemap.xml のページだけ。手元の出力と比べるのは main の中だけ(main の無いページは開けるかだけ)。@ を含む語とメール保護のリンクの違いは見ない。画像は img から読んだものだけ(CSS の背景画像は数えない)。見た目と OG のカードの出方は見ない。スマホの幅は 390px だけで、6項目の値(16px・44px・4.5)は変えられない。ヘッダーの重なりは、ヘッダーを指定したときだけ見る。出したくない語は見ない。外れた所は直さず、push を止める設定は無い(手で走らせる)。公開中のサイトで確かめたのは、Cloudflare Pages で出しているこのサイトだけで、ログインが要るページと JS で本文を作るページは確かめていない。確かめた環境は macOS(Python 3.9.6・Playwright 1.60.0・Chromium 148)だけ。ネットにつながっている必要がある
配布物prod_check.py/check_390.js(スマホの幅の6項目の判定)/架空のサイト(2ページ・試す用)/README(GitHub の haif-tools)
用意するものPython 3・Playwright と Chromium・ネットにつながっていること

内部版には、もう1つ d(出したくない語の確かめ)があります。公開版には入れていません。push の前に、出したくない語スキャンで確かめる形にしました。

使い方の入口

  1. Playwright と Chromium を入れる
  2. push して、公開の仕組み(Cloudflare Pages など)が build を終えるころに、サイトの URL と手元の出力を渡して走らせる
  3. 止まったら詳細を見て直す。直して push したら、止まったページだけをもう一度確かめる

本番のページは、URL の後ろにキャッシュよけの問い合わせ文字列を付けて読みます。コマンドの書き方と、架空のサイトで通る回と止まる回を試す手順は、リポジトリの README に記載しています。

→ github.com/mhitori/haif-tools/tools/prod-check

記録

  • 2026-10-12 公開(このサイトで公開したツールの8本目)
  • 一体の記事: 本番確認を公開します ── 20回の確認で止まったのは7ページ、本当の不具合はスマホの幅の1ページだった
  • 確かめた結果(2026-10-11・公開版で7回): 止まる回は4回とも終了コード 1、通る回は2回とも終了コード 0、確かめられなかった回は終了コード 2 で終わった
  • 試し1 作ったばかりのリポジトリ(push 先なし)で、手元で配った架空のサイト(2ページ)に、その出力を渡した: 2ページとも ○・終了コード 0
  • 試し2 同じリポジトリで、手元の出力を1字変えた: 3分待って「未」・終了コード 1(本文の違いの最初の場所が出た)
  • 試し3 カードの説明(og:description)を消した架空のページ: b が ×・終了コード 1
  • 試し4 画像の上限を 0KB で渡した: 画像のあるページの c が ×・終了コード 1
  • 試し5 Playwright を入れていない環境: 1行の知らせ・終了コード 2
  • 試し6 配布先のリポジトリのフォルダから、このサイト(sitemap.xml の51ページ)に、手元の出力を渡した: 1ページ(note転載キットの一体の記事)が「未」・終了コード 1。手元の出力が、走らせる2分前に push された版(その記事への追記)より古かった
  • 試し7 同じことを、手元の出力を作り直してもう一度: 51ページとも ○・終了コード 0
  • 提供条件: MIT License。動作や成果を保証するものではありません

ツールの一覧へ戻る