毎晩消費する記事ネタを、毎晩補充する仕組みに変えた

  • #自動化
  • #編集運用
  • #キュー設計

この記事について

記事の自動起稿を毎晩動かしても、候補の補充が週1回なら、供給より消費が速くなりネタ切れする。候補を集める場所、起稿できる形に整える場所、記事を書く場所を分けたうえで、補充周期を消費周期に合わせた運用を記録する。

以下では、2026年7月に改修した供給経路の構成と運用上の数値を扱う。

週1回の補充では、毎晩の消費を支えられない

以前の供給側は、週次スクリーナーが最大3本を補充する形だった。一方、自動起稿は1晩に最大3本を使う。上限同士で単純に比べれば、補充は週3本、消費は週21本になり得る。候補を使い切るのは一時的な不運ではなく、周期と量から予測できる状態だった。

もう一つ、弾数の数え方にもずれがあった。drafts/ready/ と drafts/deploy/ に記事があれば、公開待ちの在庫としては余裕がある。しかしそれらは起稿前のネタではない。候補キューの 自動起稿: OK がゼロでも原稿在庫が多いことで、起稿用の弾切れが見えにくくなっていた。公開待ちの記事と、次に書くための候補は別の在庫として数える必要がある。

供給と起稿を別の工程にする

現在の経路は、候補の発見から記事の公開までを段階に分けている。

 週次スクリーナー
  → ネタ元台帳
  → リポジトリ内の素材ミラー
  → 毎晩の弾込め(01:30)
  → 毎晩の自動起稿(02:30)
  → ready/ → deploy/ → 公開(07:30、1日1本)

週次スクリーナーはセッション履歴や記録から候補を拾い、ネタ元台帳を育てる。同期スクリプトが zashstudio 向けの素材をリポジトリ内の idea_ledger.md に写し、弾込めレッグがそれを candidate_queue.md に移す。起稿レッグは候補キューで 自動起稿: OK のものを使う。この分離により、起稿側が別の場所にある台帳を直接読みに行かず、素材確認の対象をリポジトリ内に保てる。

弾込めは毎晩01:30、起稿は毎晩02:30に動く。起稿は1回最大3本で、候補がある晩に先行して原稿在庫を積む。公開はその後の別レッグが1日1本ずつ担当する。候補の補充と記事の公開を同じ工程にせず、前者は起稿の材料を整え、後者は完成した在庫を少しずつ出す。

水位と鮮度を別々に見る

弾込めレッグの低水位は6本、補充目標は8本に設定されている。起稿が最大3本を使うため、6本は2晩分の目安になる。候補が十分ある日は、LLMを起動せず grep で数えるだけで終わる。必要になったときだけ素材から候補を補うため、毎晩の確認を置いても常時生成を走らせる設計にはならない。

水位だけでは、上流の停止を早く見つけられない。素材ミラーが豊富な間に週次スクリーナーが止まると、候補数が減り始めるまで時間がかかる。そのため、最終同期から14日以上経過した場合の鮮度監視を、水位に関係なく動かす。確認を在庫不足時の分岐より後ろに置くと、在庫が十分な間は実行されない。監視の配置そのものが、検出したい故障を見逃さない条件になる。

見る対象条件分かること
候補数自動起稿: OK が6本未満起稿用の弾が減っている
素材ミラーの鮮度最終同期から14日以上上流の同期が止まっている可能性
補充結果補充後もOKが増えない素材不足または弾込めレッグの問題

やってみて分かったこと

公開記事や原稿の在庫があっても、次の記事を書く候補があるとは限らない。どの工程の在庫を測っているかを揃えないまま合算すると、起稿レーンに必要な材料不足が隠れる。候補、素材、原稿、公開待ちを別の段として数え、それぞれの周期に合わせた監視を置くことが、ネタ切れを運用上の偶発事象ではなく設計で扱う方法になる。

更新履歴

  • 2026-10-08: 初稿。

訂正履歴