← AIバイブコーディングTips 一覧へ Quality / Verification

AIの「できました」を信じない検品文化

委任した作業のログに「◯件更新完了」と書いてあっても、それだけでは検品にならない。実際にあった一括更新作業を例に、ログを読むだけの検品がなぜ機能しないか、そしてどう三段階で実物を確認するかを書く。

この記事で手に入るもの

ログ → ローカル実物 → 本番実物の3段階検品プロセスと、成功だけでなく失敗・部分完了も正直に書かせるログ設計の考え方

01 — ログだけ読む検品の弱点

「成功だけ書かれたログ」には無力

AIエージェントに一括作業を委任すると、最後に作業ログが返ってくる。「◯件更新しました」「エラーはありません」と書かれていれば、つい安心してそのまま次の作業に進みたくなる。だが、そのログ自体もAIが書いたものだ。ログを読むだけの検品は、ログの中身が正しいかどうかを検証していない

実際に運用しているルールは単純で、委任・自動化した作業は、成果物ログを読むだけでなく、実物を検証してから完了とするというものだ。「実物」とは、ローカルのファイルをコマンドで数えることであり、公開後の本番URLに実際にアクセスして確認することを指す。


02 — 3段階の検証

ログ → ローカル実物 → 本番実物

複数のHTMLファイルに同じ変更を一括で入れる作業を例に、実際に踏んだ3段階を書く。

01

ログを読む——「何件・どこ」の宣言を確認

まず作業ログの件数・対象ファイル一覧・スキップ/エラーの有無を読む。ここでは「公開済み記事◯件+予約投稿キュー◯件+テンプレート◯件、合計◯件」のように、対象範囲が数字で宣言されているかを確認する。数字がなければこの時点で差し戻す。

02

ローカル実物——grepで件数を数え、冪等性を疑う

ログの数字を鵜呑みにせず、grepや検索コマンドで対象ファイル内に変更が実際に入っているかを自分で数える。さらに、同じスクリプトをもう一度 --dry-run で流し、全件が「既にマーカーあり=skip」になるかを確認する。2回目に何か1件でも「未適用」と出たら、初回の適用が漏れていた証拠になる。

03

本番実物——公開後のURLに外部HTTPアクセスする

ローカルのファイルが正しくても、公開処理(アップロード・デプロイ)が別工程である以上、そこでも失敗しうる。実際に公開URLへHTTPアクセスし、狙った変更(表示文言・リンク・価格表記など)が反映されているかを目視・機械的に確認して、初めて完了とする。

ここが核心。ログは「AIが何をしたと申告しているか」でしかない。grepと本番HTTPアクセスは、申告と実物の間にズレがないかを確認する、唯一の第三者チェックだ。


03 — ログの側も設計しておく

失敗も書かせる、成功だけを書かせない

検品する側の努力だけでは限界がある。委任する側のログ形式にも、失敗・部分完了を隠せない構造を仕込んでおくと、検品の負担がぐっと減る。実際に効いているのは次の2つだ。

Skips / Errors を独立した見出しにする「何件成功したか」だけでなく「何件スキップしたか」「何件エラーだったか」を、成功件数と同格の見出しで必ず書かせる。ゼロ件でも「スキップ: なし」と明記させることで、書き忘れと「本当にゼロだった」を区別できる。
途中で止まったら「どこまでやったか」を残させるエラーで中断した場合、成功した分だけを報告して終わらせず、残りの未処理分を明示させる。次に拾う人(自分自身の別セッションでも)が、続きから再開できる状態にしておく。

「成功だけ書かれたログ」が生まれるのは、多くの場合ログの形式そのものが成功しか書く欄を用意していないからだ。失敗を書く欄を先に用意しておけば、埋まっていないこと自体が異常のサインになる。


04 — 自分の運用に当てはめる

導入するなら、まずこの3つ

大規模なチーム開発でなくても、個人開発でAIに一括作業を任せる場面ならそのまま使える。

「完了」と報告されたら、まず数字を数え直すログの件数を鵜呑みにせず、grepや検索で同じ数字が出るか自分で確認する。
一括変更スクリプトには --dry-run と再実行チェックを仕込む2回目の実行が全件skipになるかどうかが、1回目が正しく完了したことの証明になる。
公開が絡む作業は、必ず公開後のURLで最終確認するローカルで正しくても、公開処理側の失敗は別に存在しうる。