目次
結論
株式会社ALLFORCESは2026年8月21日、自社が運営するAIメディア「AIコンパス」の公開記事509本(監査開始前は約700本)を対象に、本文の全数監査を実施した。結果として、段落まるごとの重複が348本・7,122箇所・合計1,686,574字見つかった(1本で最大29,952字、本文が2〜4回書き出されていた記事もあった)。加えて、AIアシスタントの作業報告がそのまま本文として公開されていた記事が63本、生成に使ったプロンプトの文面そのものが本文に露出していた記事が22本、記事全体がmarkdownのコードフェンスに包まれ本番で行番号つきのソースコードとして表示されていた記事が6本見つかった。パイプラインの区切り記号が本文に193箇所、front matterのキーが本文に172箇所流出していた。内部リンクは異なり928件のうち753件が404で、影響したファイルは445本・リンク数にして1,228件におよんだ。出典のない数値や実在企業への未検証の帰属を含む記事は106本、全体の20%だった。これらはすべてHTTP 200を返し、ビルドも通り、これまで一度もエラーとして検知されていなかった。
この記事の前提
「AIコンパス」は、記事の下書き・補完・投稿までを生成AIで自動化したパイプラインで運用してきたメディアである。編集部は2026年8月、公開済み記事の総数が想定より大きく減っていることに気づいた。確認したところ、公開一覧に残っていたのは509本で、監査開始前は約700本あったはずの記事数と一致しなかった。原因を追うため、残っている509本すべてを対象に、本文単位での機械的な検査を行った。本稿は「AI運用の失敗カタログ」の第3回であり、第1回・第2回と同じく、見つかったのは外部要因ではなく自社の生成・公開パイプラインの不備である。
何が見つかったか
509本の本文を対象に、以下の観点で機械的にスキャンした。
| 問題 | 規模 | 何を、どう数えたか |
|---|---|---|
| 段落まるごとの重複 | 348本・7,122箇所・1,686,574字(最大29,952字/本) | 本文を空行区切りの段落に分割し、同一記事内で完全一致する段落の組を数えた |
| AIアシスタントの作業報告が本文化 | 63本 | 「完成した記事の続きを作成しました。以下の要件を満たしています」に類する報告文や、要件を満たしているかを列挙するチェック欄が本文末尾に残っている記事数 |
| 補完プロンプトの文面が本文に露出 | 22本 | 生成時に使ったプロンプトの見出し(既存の記事の最後の部分・要求事項・文体の指示、といった角括弧付きラベル)や、続きを書くよう求める指示文そのものが本文に含まれている記事数 |
| 記事全体がコードフェンス化 | 6本 | 本文全体がmarkdownのコードブロックとして包まれ、本番で行番号つきのソースコードとして表示されていた記事数 |
| パイプラインの区切り記号が残存 | 193箇所 | 生成処理が本文の末尾に付与する区切り文字列(ハイフン3つ・END・ハイフン3つ、--- END ---のような形)の残存回数 |
| front matterのキーが本文に流出 | 172箇所 | layout・permalink・excerpt等、本来front matterにのみ書かれるべきキーが本文中に出現した回数 |
| 出典なき数値・未検証の帰属 | 106本(全体の20%) | 実在企業名と具体的な数値が同じ段落にありながら、出典の記載が無い記事数 |
| 内部リンク切れ | 異なり928件中753件が404(影響445ファイル・1,228リンク) | サイト内リンクを全数抽出し、リンク先が実際に存在するかを機械的に検証した件数 |
ハブページ10本は、いずれも「関連記事(255本)」という表示のまま、リンクが1本も生きていなかった。
出典のない統計の使い回しも見つかっている。「75%以上の企業が生成AIの導入で業務効率化を実現している」という趣旨の統計が、出典の記載が無いまま複数記事で使い回されていた。
存在しない製品を主題にした記事も見つかった。Titan 3.0・Exynos 3500・TRI-AD v7・XplainAI・ClarityEngine・AlphaFold 4・Kunlun 5・SDXL Ultra・Inferentia 3・iOS19、それにInflection AIとAMDの提携という、いずれも実在しない製品・提携を前提に書かれた記事群である。事実誤りも見つかった。「デスクトップ版Ryzen 9 9950XにNPU搭載」という記述だが、実際のRyzen 9 9950XにNPUは搭載されていない。この誤りについては、編集部が事後に検証・訂正した記事(この記事)が既に公開されており、AMD公式資料を出典に、NPU搭載はデスクトップ向けではなくモバイル向けの別製品であることを明記している。
なぜ気づかなかったか
原因は3つに絞り込めた。
- LLMの生出力を無検査で記事末尾に連結していた。 補完処理が生成した文字列を、後処理を挟まずそのままファイルへ書き込んでいたため、作業報告やプロンプトの文面がそのまま公開されていた。
- 日本語本文に
.split()を使い「直近300語」を切り出していた。 英語であれば空白区切りの.split()で単語数を数えられるが、日本語には語間の空白が無い。このためこの処理は本文全体を1つの塊として渡してしまい、その本文全体を渡した上で「繰り返さないで」と指示していた。モデルは何を繰り返してはいけないのかを正しく区切って認識できず、結果として本文が2〜4回書き出された。1,686,574字という重複量の直接の原因はこれだった。 - プロンプトが本文の末尾に区切り記号を追加するよう指示していた。 後段の処理がこの区切り記号を除去する前提で組まれていたが、除去処理が動いていない経路が残っており、記号が本文にそのまま残った。
いずれの不備も、公開されたページはHTTP 200を返し、ビルドも成功し、稼働監視・エラー監視のいずれにも引っかからなかった。「正常に稼働している」ことと「読める内容が公開されている」ことは別の事実であり、この監査を行うまでは前者しか確認していなかった。
どう直したか
対策は生成から公開までの3段階に分けて実装した。
- 生成時: サニタイザを補完処理の出力に挟み、作業報告・プロンプトの復唱・段落の重複をこの時点で落とす
- 公開時: パイプラインが上記のいずれかを検出した場合、その記事は公開しない
- デプロイ時:
_posts配下を全件検査し、1件でも問題が見つかればデプロイそのものを中止する
加えて「帰属ゲート」を実装した。実在企業名と具体的な数値が同じ段落に置かれていて、出典の記載が無ければ公開しない、という制約である。スコアとして加点・減点する方式ではなく通過か否かの門にしたのは、点数方式では文章の読みやすさや長さなど他の軸で埋め合わせができてしまい、出典の無い数値がすり抜けてしまうためである。
検査の考え方
この監査で使った検査スクリプト(scripts/check_article_hygiene.py)の考え方は単純で、「エラーが出ていないか」ではなく「出るべきものが出ているか」を見る、という一点に尽きる。HTTP 200・ビルド成功・稼働監視が正常であることは、そのページに書かれている文字列の中身については何も保証しない。今回見つかった問題はすべて、この意味での静かな異常だった。
自分のメディアで同じ検査を再現するなら、次の3つを機械的に数えることを勧める。第一に、本文を空行区切りの段落に分割し、同一記事内で完全一致する段落が無いかを数える。第二に、生成パイプラインが使っている固有のマーカー文字列(区切り記号・内部処理名・テンプレートの見出しなど)が本文中に残っていないかを検索する。第三に、本文中のリンクを全数抽出し、リンク先に実際にコンテンツがあるかを個別に検証する。いずれも、読んで違和感に気づく前に、数えれば見つかる種類の問題である。
同じ棚卸しをするためのチェックリスト
- 生成パイプラインの出力を、後処理を挟まずそのままファイルに書き込んでいないか
- 日本語本文に対して、単語数を前提にした文字列処理(
.split()等)を使っていないか。使っている場合、実際に何が渡されているかを確認したか - プロンプトが指示した区切り記号やマーカーが、除去処理を経ずに本文へ残っていないか
- 本文が丸ごとmarkdownのコードフェンスに包まれて本番表示されていないか
- 実在企業名と具体的な数値が同じ段落にありながら、出典の記載が無い記事が無いか
- サイト内リンクを全数抽出し、リンク先が実際に存在するかを定期的に検証しているか
- 「関連記事」のようなハブ的な導線が、実際に生きたリンク先を持っているか
まとめ
自社AIメディア「AIコンパス」の公開記事509本を全数監査した結果、見つかったのは段落まるごとの重複348本・7,122箇所・1,686,574字、AIアシスタントの作業報告が本文化していた記事63本、補完プロンプトの文面が本文に露出していた記事22本、記事全体がコードフェンス化していた記事6本、出典の無い数値を含む記事106本、404となっていた内部リンク753件だった。原因は、生成出力の無検査連結・日本語処理の設計ミス・除去されないままの区切り記号という、いずれも自社パイプラインの実装不備だった。すべてHTTP 200を返し続けていたため、この監査を行うまで、これらは一度もエラーとして検知されていなかった。生成時・公開時・デプロイ時の3段階の検査と、実在企業名と数値の帰属を問う門を実装したが、これは前提条件を整える作業に過ぎず、公開の可否を機械的に判定できる状態を作ったにとどまる。
出典: 本記事の数値はいずれも、ALLFORCESが2026年8月21日に実施した自社メディア「AIコンパス」公開記事509本の全数監査の内部記録に基づく実測値である。