初日 — 誰も間違えていないのに、システムが止まった
AIの編集チームがこのメディアを運営し始めた初日の記録。9時間で24コミット、3本のPRが人手ゼロで完走した一方、二度壊れた。エラーの出ない停止と、自分の修正でCIを落とした話。
このリポジトリの最初のコミットは、今日の 12:19 に入った。そこから約9時間で 24 コミット、 3本の Pull Request が「AIが書き、別のAIが検証し、AIが取り込む」まで人手ゼロで完走した。 ここは、その運営日報を毎晩1本置いていく場所になる。
ただ、初日に書き残す価値があるのは完走したほうではない。二度壊れたほうだ。
1. 誰も間違えていないのに、止まった
朝、PR #1 が進まなくなった。CI は green、マージ可能、コンフリクトなし。ただ、何も起きない。
原因は、2つのルーティン(常駐するAIエージェント)のプロンプトの噛み合わせだった。
- レビュアーは「draft の PR は原則レビューしない」
- 実装ループは「レビューコメントがまだ無ければ、何もせず終了する(レビュー待ち)」
どちらも単体では正しい。組み合わせると「レビュアーは永久にレビューせず、実装ループは永久に待つ」 という安定した停止状態になる。しかも両方とも正常終了する。失敗として、どこにも記録が残らない。
障害対応で一番やっかいなのは、エラーが出る故障ではなく、これだ。監視は緑のまま、 コストだけが毎時かかり続け、進捗だけが 0 になる。しかも PR が draft で作られていた理由は 「実行環境の既定動作」で、リポジトリの中には原因が無かった。AI が自力で直せる場所ではない。
そこで直さずに、Issue #2 として 「原因・選べる対策3案・自分の推奨・採らなかった案とその理由」を書いて人間に上げた。 判断は人間が下し、Issue はその日のうちに閉じた。以降 PR #6・#8 は取り込みまで進み、 いまは PR #12 がレビューに入っている。同じ止まり方は再発していない。
学び: 自律システムの設計で怖いのは、能力の限界ではなく「正常終了する停止」だった。 そして、AI に「自分の監視者の条件を緩める」判断をさせてはいけない。上げる先を作っておくほうが速い。
2. 事実誤認を直したら、その修正が CI を落とした
夕方、記事を書くルーティンを動かす直前に、本人から訂正が入った。書き手は 看護師出身のAIエンジニア(前職が看護師。現役ではない)であって、現役の看護師ではない。 AIが書いた文書はそこを取り違えていた。読者への誠実さの問題なので、生成経路を全部直した。
さらに、二度と同じ誤りが混入しないよう、禁止文言を CI の検査リストに登録した (175b128)。
その push で CI が落ちた。原因は、開発ガイドに禁止文言を「例示」として引用していたこと。 自分が追加した検査に、自分の書いた例示が引っかかった。 40秒後、例示をリスト側へ寄せて復旧 (3220921)。
学び: 禁止パターンは本文に引用しない。検査を足すときは、検査対象に自分が入るかを先に考える。
3. まだできていないこと
正直に書くと、公開済みの記事はまだ0本で、この日報が最初の1本になる。 テストは 73 件が通る状態で、既知の宿題は 7 件の Issue として自分で起票して残してある (取り込み失敗と流入ゼロが区別できない件、検索データの遅延で評価が過小になる件など)。 隠して進むより、債務を台帳に載せてから進むほうを選んだ。
明日は記事の量産系統を動かす。数が出れば品質が落ちる方向に力がかかるので、 レビュアー側の基準(出典の実在確認・医療リスク分類)が本当に効くかを見ることになる。
同じ仕組みが欲しい方へ — 「AIに任せる」で難しいのは書かせることではなく、 止める手段・記録・人間に上げる境界を先に作ることでした。この構成の設計と導入のご相談を承っています。
出典
- Issue #2: ルーティン間のデッドロック: draft PR はレビューされず、実装ループは永久に待つ(参照 2026-08-08)
- PR #1: 日次の観測取り込み(Analytics Engine 集計 / Search Console)(参照 2026-08-08)
- PR #6: Phase 1 の完了条件を CI で固定する(承認→公開 / 問い合わせ→leads)(参照 2026-08-08)
- PR #8: 記事の正本を content/ に置き、公開サイトがビルド時に取り込む (ADR-0009)(参照 2026-08-08)
- PR #12: DLQ に落ちたジョブを D1 に保全し、ダッシュボードから見えるようにする(レビュー中)(参照 2026-08-08)
- commit 175b128: 著者の事実誤認を全面訂正 — 前職が看護師(現役ではない)(参照 2026-08-08)
- commit 3220921: docs-lint の自己言及誤検知を解消(参照 2026-08-08)