アプリの作り方

AI編集部を作る① 全体像 — 月曜9時3分、無人のClaude Codeが編集会議を開く

2026年8月24日、月曜の朝9時3分。筆者のPCでは今週も、無人の Claude Code が編集部を開いた。開いた、はずだった。この日の編成会議は、レポートを1本も書かないまま静かに終わる。うまく回る週なら、ニュース候補の収集から編成会議、採用の決定、記者の下書き、校閲の検品まで人間は登場しない。この連載は、Windows のタスクスケジューラと Claude Code のヘッドレス実行で組んだ「AI編集部」の作り方を、実測値と失敗込みで公開していく。第1回は全体像と、冒頭の事故の顛末。

目次
  1. 何を作ったか — 週次ニュース記事の工程を部署に分けた
  2. 実測タイムライン — 完全無人で回った週
  3. 線引き — 機械に判定できることだけを自動承認する
  4. 初回から事故った — 編集会議が自分のログに怯えて何も書かなかった
  5. この連載で書いていくこと
  6. まとめ

何を作ったか — 週次ニュース記事の工程を部署に分けた

当サイトは週3本のニュース解説記事を出している。元の工程は、候補収集・選定・執筆・校閲・配信予約のすべてが筆者とAIの対話作業だった。対話でやる限り、毎週月曜の午前が同じ判断の繰り返しで消える。候補を検索する、基準に照らして3本選ぶ、記事の角度を決める、下書きを読んで差し戻す。どれも2回目以降は判断基準が固定されている作業で、固定された判断を人間が毎週なぞるのは工数の無駄以上に、基準がその日の気分で揺れる原因にもなっていた。

判断基準を文章に固定できる工程は、エージェントの指示書に固定してしまえばいい。そう割り切って、工程を部署として切り出し、タスクスケジューラの週次ジョブに乗せた。

構成は2段になっている。前半はパイプライン8ステップで、ネタ帳の収集から自動承認までを cmd が順に起動する。8本目の自動承認が後半の「編集部」を起動し、5つの部署(記者・校閲・SEO・SNS・収益分析)のエージェントが順に走る。

図1:AI編集部の構成 — 月曜9:03の8ステップと5部署ネタ帳・収集API+検索で候補化編成会議デスクが起案事実検査元データと照合通知・集計メール+HTML自動承認採用IDを最大3件自動承認が編集部の実行を起動し、5部署の完了を最大90分待つ記者下書きHTMLを書く校閲独立レビュー・修正提案SEO・SNS・収益週次レポート3本出力WP下書き+メール報告採用書式が崩れた週は自動承認が0件で止まる(安全側に倒す設計)8ステップ+5部署の標準実行 約1時間26分(2026-08-17 実測)

部署はそれぞれ Claude Code のエージェント定義(Markdown ファイル1枚)で、持てるツールを絞ってある。記者は Write を持つが WP への投稿手段を持たない。校閲は記者と独立に読み、WebFetch で一次ソースへ当たれる。役割をファイルで分けたのは、1つの万能エージェントに全部やらせると、書いた本人が自分の記事を「問題なし」とレビューする構図になるからだ。

エージェントが動くステップ(候補収集・編成会議・編集部の5部署)は claude -p(ヘッドレス実行)で起動し、許可ツールは起動側(cmd や Python)が明示的に渡す。残りのステップ(ネタ帳収集・事実検査・事務局3本・自動承認そのもの)は素の Python スクリプトで、LLM を使わない。無人実行では対話の確認ダイアログが出せないので、許可リストに無いコマンドは自動拒否になる。この設計は安全装置として働く反面、許可リストの漏れが「確認できないまま止まる」障害に化ける。編成会議のエージェントに同時実行を確かめさせたくてプロセス一覧のコマンドを指示したとき、そのコマンド自体を許可リストに入れ忘れると、エージェントは確認ができないまま保守側に倒れ、何もせず終わる。無人システムの許可リストは、エージェントへの指示文と必ずセットで育てることになる。

もう1つ、部署の暴走に対する保険として書込範囲ガードを入れてある。各部署の実行前後でリポジトリ内ファイルの内容ハッシュを比較し、その部署が書いてよい範囲(記者なら下書きフォルダ)の外に差分が出たら、成果物ごとブロックする仕組みだ。git status の比較では足りない。実行前から未追跡だったファイルへの上書きは status の見た目が変わらないからで、内容ハッシュまで見て初めて検出できる。このガードには「実行中に人間がリポジトリを触っても全部署ブロックになる」という副作用もあって、編集部が走っている80分は筆者もリポジトリに触らないルールで運用している。詳細は記者・校閲の回で書く。

実測タイムライン — 完全無人で回った週

2026年8月17日の月曜は、人間が一度も触らずに完走した。ログの実測タイムラインはこうなっている。

ステップ 所要 やること
①ネタ帳収集 2分17秒 X の話題を API で収集・要約(実費 $0.04/回)
②候補収集 13分1秒 WebSearch で AI/IT/Claude の一次情報を候補化・自動選定
③編成会議 10分26秒 デスクが候補データだけを根拠に編成会議レポートを書く
④事実検査 0.04秒 レポートの候補件数を元データと機械照合(採用IDの実在確認は⑥の承認時)
⑤事務局3本 15秒 承認UI更新・メール通知・ダッシュボード生成
⑥自動承認+編集部 59分56秒 採用3件を承認し、5部署の完了を待つ
合計 1時間26分 9:03 起動 → 10:28 メール報告

週の実費はネタ帳収集の API 利用 $0.04 と、Claude Code の定額枠の消費だけ。終わると筆者のメールボックスに、承認された記事タイトルと5部署の完了報告が届いている。朝のコーヒーの間に編集部が一巡している計算になる。

線引き — 機械に判定できることだけを自動承認する

この仕組みで一番考えたのは、どこまでを無人にするかの線引きだった。答えは「機械が確実に判定できる工程だけを自動化し、運用判断は人に残す」。具体的には3つの縛りを入れてある。

採用の書式は1つしか認めない。自動承認が読むのは編成会議レポートの「記者への指示」節にある 1. **cl-01** という厳格な番号付きリストだけで、正規表現は ^\s*\d+\.\s+\*\*([a-z]{2}-\d{2})\*\* の1本。書式が少しでも崩れた週は採用0件と解釈され、編集部は起動しない。曖昧に解釈して動くより、止まって人を呼ぶほうが安い。

承認は最大3件。配信ペース(週3本)と揃えた上限で、レポートがどれだけ推しても4本目は承認されない。

レポートの「承認待ち事項」(新企画の可否・方針変更のような運用判断)は自動承認の対象外にした。ここを機械に任せると、編集部が自分の権限を自分で広げていける構図になる。判断したい週は、手元の承認UI(ローカルの office.html)から人間が承認する経路を残してある。

初回から事故った — 編集会議が自分のログに怯えて何も書かなかった

冒頭の8月24日に戻る。この日の朝の運転は、編成会議のステップが1本のレポートも書かないまま正常終了した。

ログを読むと、会議を担当したエージェントはジョブのログファイルを開き、末尾の agenda start という行を見て「別の無人ジョブがいま走っている。ここで書くと二重書き込みになる」と推論し、遠慮して何もせず終わっていた。その agenda start 行は、自分自身を起動したステップがつい数十秒前に書いたものだ。鏡に映った自分を侵入者だと思って、家に入らなかったことになる。

被害は限定的だった。続く事実検査が「レポートが無い」を exit 1 で検出し、自動承認もレポートを読めないまま安全側に倒れて、「未起動」のメール通知だけを出して終了した。編集部は起動していない。上流が失敗した週は自動承認を丸ごとスキップする仕組みも別にあるが、この週は編成会議が exit 0 で正常終了を装ったため働かなかった。いまは編成会議の成果物ファイルを更新時刻で裏取りし、書かれていなければステップ自体が非ゼロで終わる対策を入れてある。午後に筆者が手動で復旧し、編成会議のやり直しに約24分、編集部の実行に80分42秒。5部署は完走し、書込範囲の逸脱も0件だった(実行台帳の実測値)。

対策はログの側に入れた。いまの agenda start 行には「この行を読んでいるエージェントは、このステップ自身である。別プロセスではない」という但し書きが書き込まれる。同時実行を本当に疑う場合の確認手段(プロセス一覧の実測)も、エージェントへの指示に足した。無人システムの障害対応は、コードを直すより「エージェントが何をどう誤読したか」を突き止めて説明を直す作業になることが多い。この事故はその典型だった。

この連載で書いていくこと

第2回以降は、部署を1つずつ実装の詳細に降りていく。予定している範囲は、候補収集と実体験基準の自動選定、編成会議レポートの設計と事実検査、記者・校閲と書込範囲ガード(部署が想定外のファイルを書いたら止める仕組み)、配信予約と公開後検証、そして運用1か月の事故カタログ。すべて実際に動いているコードとログを根拠に書く。

ヘッドレス実行の公式仕様は Claude Code の headless mode ドキュメント が一次情報になる。複数エージェントを1画面で扱うアプリの作り方は「Claude Mission Control 開発記」、ジョブから呼ぶ処理の MCP サーバー化は「ローカルMCPサーバーのジョブ実行パターン」で書いている。

まとめ

週次のニュース工程は、収集から校閲まで無人で回るところまで来た。成立させた要点は自動化の技術よりも線引きで、機械が確実に判定できる工程(書式の一致・件数の照合・完了の検出)だけを自動承認し、運用判断は人の承認経路に残す。初回の事故が示したとおり、この線引きは安全装置としても働く。書式が崩れた週・上流が失敗した週に、編集部は動かず止まって人を待つ。無人化の設計は「どう動かすか」より「どう止まるか」から決めると壊れにくい、というのが第1回の結論だ。

Claude Code の –restricted を9項目で実測した — 外れるツールは6つ、MCP は残る、書込は許可さえあれば通る前のページ

Claude Code の週次上限、リセットを観測しても分からなかった — パーセンテージ表示は分母の変化を映さない次のページ

ピックアップ記事

  1. 高精度OCRデスクトップアプリの作り方 — PaddleOCR-VLとPyIns…

  2. New Eden Intelligence Hub の作り方 — EVE Onl…

  3. Claude Mission Control の作り方 — Tauri+Pyth…

  4. 競艇予想AIの作り方 — LightGBMで「当たる順位」を学習させる実装ガイド…

関連記事

  1. アプリの作り方

    記事の公開前検査を自動ゲートにする — 3.7秒の機械検査で「忘れた」を止める

    AIに記事を書かせる個人サイトが、コントラスト比・SVGはみ出し・ロー…

  2. 背景除去アプリを作る③|「囲まれた背景」と「アイコンの穴」— 相反する2つの難所を実測で解く【背景除去Studio制作】
  3. AIでゲーム素材を量産する⑤|生成→透過切り出し(BiRefNet)→配置のパイプライン【Archipelago Saga制作】

    アプリの作り方

    AIでゲーム素材を量産する⑤|生成→透過切り出し(BiRefNet)→配置のパイプライン【Archi…

    絵が描けなくても、AIで世界観の揃った立ち絵・背景・アイコンを揃える。…

  4. YouTubeチャンネル分析ツールの作り方 — Data APIで統計・投稿パターン・キーワードを可視化する

    アプリの作り方

    YouTubeチャンネル分析ツールの作り方 — Data APIで統計・投稿パターン・キーワードを可…

    キーワードでチャンネルを検索し統計・人気動画・投稿パターン・頻出ワード…

注目

AIで、ここまで作れる

AIで作った2D RPGを、ブラウザでそのまま遊べます。その「作り方=最後まで完成させる進め方」も実例つきで公開中。

▶ ゲームを遊ぶやり方を読む

PR

ロリポップ!レンタルサーバー(PR)

レンタルサーバ:ロリポップ!(本サイトの稼働環境・PR)

  1. Whisper文字起こしアプリの作り方 — 録音から Word 出力までローカルで完結させる

    アプリの作り方

    Whisper文字起こしアプリの作り方 — 録音から Word 出力までローカル…
  2. OpenAI「GPT-Live」の全二重音声 — 3段パイプラインのどこが置き換わるか

    AI・テック動向

    OpenAI「GPT-Live」の全二重音声 — 3段パイプラインのどこが置き換…
  3. WordPress 7.1 Beta 3 と正式版までの3週間 — 子テーマ持ちがやる確認を優先順位つきで

    AI・テック動向

    WordPress 7.1 Beta 3 と正式版までの3週間 — 子テーマ持ち…
  4. AI・テック動向

    GLM-5.3-Flash の実費を5回測った — 同じ入力・temperatu…
  5. AI・テック動向

    Anthropic の Python SDK が v1.0 — grep で数え…
PAGE TOP

TAG CLOUD

ドラッグで回転・クリックでそのタグの記事一覧へ