プロダクト

3 スレッド × 6 ステップ ── Intent-System の実態

Design / Implementation / Review は比喩ではなく、それぞれ独立したスレッドです。実装とレビューは Claude のセッションをそれぞれ別 cwd で /loop 5m に固定して常時駆動。設計スレッドだけが人間ペースで動きます。アクティブなドメインで、おおよそ packet 10 個 / 3 時間 のスループットが出ます。

設計スレッド人間 + LLM実装スレッドClaude /loop 5mレビュースレッドClaude /loop 5m · 別 cwdApprove → merge → 次の packet を再評価 (③ へ戻る)▸ Issue▸ PR 提出▸ Decline + コメント▸ 更新 PRIntent ツリーPurpose / Context / Meanspacket 生成LLM が意図から作業を切り出すGitHub Issue を切り出すpacket → issue (why を内包)実装 → PRClaude /loop 5m (impl cwd)レビュー反映push して再レビュー依頼PR レビューClaude /loop 5m (review cwd)

⑤ の Approve でループは ③ に巻き戻る。次の packet は PR 前の計画ではなく、merge 後の状態を踏まえて再評価される。

両 Claude スレッドは intent-cli で起動。impl と review は物理的に別の cwd (例 <your-repo> と <your-repo>Review) で並走。

6 ステップ

設計
Intent ツリー構築
Purpose / User Context / Means。人間と LLM の対話。昇格状態で意図の確度を明示。
設計
packet 生成
LLM が意図ツリーから packet を切り出す。packet は Issue より一段抽象度が高い作業単位で、意図への参照と検証観点を持つ。packet を確定する前に、設計スレッドが merge 済みコードを確認し、自分で稼働中のアプリを操作して (ネイティブは Computer Use、Web は Playwright CLI) 実際に出ているものを見る。意図と合っていなければ、その場で調整 packet やバグ修正 packet を出す。実装者はテキストだけでなく地に足のついた文脈を受け取る。
設計
packet を GitHub Issue として切り出す
DIF が十分高く依存が解けた packet を GitHub Issue として実装リポジトリに切り出す。Issue に到達した時点で「なぜ作るか」が既に紐づいている。
実装
Issue を読み実装し PR を出す
Claude が /loop 5m で未着手の Issue を拾い、対応する packet / intent を読み込んでから実装し、ai-develop へ PR を出す。
レビュー
PR を packet / intent と照合
別 cwd で動く別の Claude /loop 5m が PR を packet / intent と差分し、Approve なら merge して ③ へ戻り、Decline なら PR コメントを書いて ⑥ へ渡す。cwd が物理的に分かれていることが、同一セッションが自分の課題を自分で採点する状況を構造的に防いでいる。
実装
レビュー反映、push、再レビュー依頼
実装スレッドが自分の PR にレビューを反映し push、更新された PR を ⑤ に戻す。
効いている理由

同一スレッド / /loop 5m / 別 cwd

  • 5 分間隔. Claude のプロンプトキャッシュ TTL (5 分) と一致するため、次の wake は暖まった文脈で再開できる。長くするとキャッシュミスを払うだけ、短くしてもキャッシュを焼くだけで意味がない。
  • 同一スレッド. wake のたびに新規セッションを立てない。/loop は同じスレッドを継続するので、直前の判断が文脈として残り続ける ── レビューの一貫性はこれに依存する。
  • 実装とレビューは別 cwd. 実装とレビューは物理的に別の worktree (例 <your-repo> と <your-repo>Review) で走る。互いのローカル状態が見えない以上、ひとつの Claude セッションが自分の課題を自分で採点することは構造的に起こり得ない。
  • 初回 wake を 1 回手動で. intent-cli にループを登録したら、すぐに 1 回 wake を打つ。設定ミスは最初の自然 fire を待たず即時に出る。
ループの起動

intent-cli への 2 行

Claude スレッドが intent-cli の運用に慣れていれば、下記の短縮版で十分です。<domain> / <target repo> / <cwd> を埋めて送るだけ。

Implementation loop

intent-cli に聞いて、<domain> の <target repo> 向け implementation-and-pr-comment-update loop を Claude で 5分間隔に設定してください。cwd は <cwd>。同一スレッド /loop 5m で設定し、最初の wake を1回実行してください。

Review / next-slice loop

intent-cli に聞いて、<domain> の <target repo> 向け review-and-next-slice loop を Claude で 5分間隔に設定してください。cwd は <cwd>。同一スレッド /loop 5m で設定し、最初の wake を1回実行してください。

具体例: intent-system 自身

intent-system (このループを駆動する CLI 自身) を本番運用しながら、このループを回しています。ループごとに 1 つずつ、計 2 つの cwd。

# intent-system — implementation
intent-cli に聞いて、intent-cli の J-Tech-Japan/intent-system 向け implementation-and-pr-comment-update loop を Claude で 5分間隔に設定してください。cwd は /Users/<you>/dev/GitHub/intent-system。同一スレッド /loop 5m で設定し、最初の wake を1回実行してください。

# intent-system — review / next-slice
intent-cli に聞いて、intent-cli の J-Tech-Japan/intent-system 向け review-and-next-slice loop を Claude で 5分間隔に設定してください。cwd は /Users/<you>/dev/GitHub/IntentSystemReview。同一スレッド /loop 5m で設定し、最初の wake を1回実行してください。

cwd のペアに注目: review ループは常に別 worktree (*Review サフィックス) で動く。この分離こそが AI レビューを「実際のレビュー」たらしめる。

Claude と Codex の役割分担

ローカル /loop とクラウド自動化

本ページで扱う /loop 5m スレッド ── 実装とレビューを別 cwd で同一スレッド継続駆動する ── のエンジンは Claude です。Codex はクラウド自動化側に並走しますが、本 /loop の仕組みには乗っていません。両者は同じ全体システムの別レイヤであり、同じ仕組みの別バリアントではありません。

Intent-System を試す