icon: 🔁 slug: 18-loop-system card_desc: Daily Triage→人間承認→検証付き自律実行の全体像と、外部LLMレビューを組み込む理由
ループ同じ処理の繰り返し、または一連の作業サイクルのこと。プログラミングではfor文等の繰り返し構造、開発では「計画→実装→検証」の反復サイクルを指すシステム(Loop Engineering) — 自律開発ループの全体像
Claude Code を「指示待ちの道具」から「毎日自走する開発パートナー」に変えるための仕組み全体を Loop Engineering と呼んでいる。個別の部品(cronクロン。Linuxで「毎日6時」「30分ごと」等の定期実行を予約する仕組み。予約実行の登録表(crontab)に書いて運用する・hookClaude Codeの特定のタイミング(ツール実行前後・セッション開始時等)で自動処理を差し込む仕組み。「保存前にチェック」「終了時に記録」等を機械的に強制できる・スキルClaude Codeで「特定の作業手順」をパッケージ化したもの。SKILL.mdに手順を書いておくと、対応する場面でAIがその手順を読み込んで従う。経験を再利用する仕組み)の話は各章に譲り、本章は全体像と設計思想をまとめる。
全体フロー
朝6:07(自動) Daily Triage 発火
バックログ + 前回の引き継ぎ + 進行中タスクを収集
→ LLMが優先度判定 → today-tasks.md 生成 → Discord通知
↓
セッション開始 候補が自動表示される
↓
人間の承認 approve.py で番号選択(ここだけ手動・意図的なゲート)
↓
自律実行連鎖 run-task.sh: 実装用LLM → 検証用LLM(別プロセス・別コンテキスト)
Stop hook: 検証OK → 次タスク自動起動 / NG → blocked停止・通知
↓
終了 全完了トースト or 人間へエスカレーション
自動と手動の境界
| 区分 | 内容 |
|---|---|
| 全自動 | 候補生成(毎朝)・通知・実装→検証の連鎖・次タスク起動・完了/停止通知・cronの失効対策(6日毎の自己再登録)・記録の引き継ぎ(handoff生成→次セッションClaude Codeの1回の対話単位。起動から終了までの会話と作業状態のこと。長く使うと内容が混ざるため、トピックの区切りで新セッションに引き継ぐ運用をする復元) |
| 手動(意図的) | タスクの承認・blocked後の修正と再開・auto/manualモード切替 |
💡 「どこまで自動化するか」より「どこを意図的に手動で残すか」が設計の本体。承認ゲートを消すと、LLMの誤判断がそのまま実行される。
主要コンポーネント
| 部品 | 役割 |
|---|---|
daily-triage.sh / daily_triage.py |
候補生成エンジン。バックログ・引き継ぎ・進行中を収集しLLMが優先度判定 |
approve.py |
人間承認ゲート。選択されたタスクをキュー待ち行列。依頼された処理を順番に並べて、前から順に消化していく仕組み(state.json)に登録し最初のタスクを起動 |
run-task.sh |
検証付き実行。実装と検証を別のLLMプロセス動いているプログラム1つ1つの実体。番号(PID)で管理されるに分離(自己採点を防ぐ)。currentなし起動時は即exit(REPOフォールバックメインの手段が使えなくなった時に、自動的に予備の手段へ切り替える仕組み。「本命が失敗したら副えに任せる」二段構えによるHOME repo誤動作防止)・起動時に current.started=True + running=True を設定 |
next_issue.py |
Stop hookから発火。検証結果(OK/NG)を機械判定し、次タスク起動 or blocked停止。current.started 未設定/False なら消化スキップ(並行セッションのStop hookでの事前消化防止) |
state.json |
ループの状態(active / running / current[started] / pending / completed / blocked) |
現在地(2026-07-05 実測診断)
自分の環境を実測して採点した結果は 総合76/100。内訳: 候補生成90・cron基盤90・記録引き継ぎ90・実行連鎖75・失敗回復50・ドキュメント65。
得られた教訓は2つ。
- 仕組みの完成と運用の定着は別物。 実行連鎖は実装・検証済みなのに、実運用の完走は1件だけだった。「承認して流す」という毎朝30秒の習慣が最後のピースになる。
- ドキュメントは書いた瞬間から腐り始める。 「hookとして稼働中」と台帳に書かれた同期スクリプト自動実行できる小さなプログラム。手順を書いたテキストファイルの形をしているが、実際は11日前からどこからも呼ばれていなかった(設定整理の際に登録が消え、それを検知するはずの検知器も同時に消えていた)。台帳は手書きせず、実登録から自動生成する方向へ移行中。
外部LLMレビューの組み込み(実証済みの知見)
ループの品質を支えるもう1つの柱が、設計・監査の成果物を別のLLMにレビューさせる運用。「最上位モデルが作った案なら不要では?」という疑問に対し、実測で答えが出た。
最高級モデルの監査・設計成果物へ外部LLMレビューを3回(計15指摘)実施した採否実績:
| 結果 | 件数 |
|---|---|
| 致命的な穴の検出(設計テーマ自体の見落とし) | 1 |
| 優先度の再重み付け・有用な盲点追加 | 5 |
| ホスト側の改善を誘発(触媒) | 2 |
| 妥当性の確認 | 4 |
| 誤指摘(却下) | 3 |
重要なのは次の3点。
- 革新は来ない。死角の消し込みが来る。 新しいアーキテクチャはレビューからは出ない。出るのは「作者が自分の前提の内側で完結してしまった穴」。これはモデルの能力を上げても自己レビューでは消えにくい
- 価値の源泉は賢さではなく視点の独立性。 レビュアーが作成者より賢い必要はない
- 取捨する側の文脈力とセットでのみ黒字。 誤指摘(今回2割)は環境文脈の不足から生じる。文脈を持つ側が採否判定する前提を崩すと、逆に品質が下がる
正典ドキュメントの構成(迷子にならないために)
複数の文書がループを説明していると、どれが正か分からなくなる。役割を固定している:
| 役割 | 場所 |
|---|---|
| 仕組みの正典(1日の流れ・コンポーネント) | ナレッジベース内 共通ルール/自律開発ループ.md |
| 稼働台帳(hook/cron/スクリプトの現状) | 自動化.md |
| 設計判断の記録 | 01_DECISIONS/(日付付き決定ログ) |
| 実装本体 | claude-config/scripts/auto-dev/(pytest付き) |
| 公開ガイド(概念・入門) | Loop Engineering Guide |