TR-441 / Project Blueprint

Codex 自律開発基盤 V1

Linear Issueを起点に、隔離されたCodexが計画・質問・実装・テスト・commitまで行い、ホスト側OpenClawが成果をGitHubへ提出する。mainへの反映だけを人間承認で守る。

設計改訂 2026-08-13Apple containerGitHub AppV1

1. このProjectで実現すること

「Issueを書けば、Codexが実装を進め、判断が必要な時だけ人へ戻す」開発経路を、既存資産を壊さず最小構成で作る。

1

渡す

Linear Issue、対象リポジトリ、実装指示をCodexへ渡す。

2

任せる

計画、標準マルチエージェント、編集、テストをCodex CLIへ任せる。

3

聞く

要件判断が必要ならLinear Agent Sessionで質問し、同じセッションを継続する。

4

見える

OpenClawがCodexの進捗・質問・完了結果をLinearへ中継する。

5

提出する

OpenClawがGitHub Appでbranchをpushし、人間が確認できるPRを作る。

6

守る

main、本番、IAM、DNSなど壊れる境界だけを人間承認で保護する。

2. Linear・GitHubの正本分担

L

Linear:Whyと成果

事業・顧客上の目的、優先順位、納期、担当、人間の判断、複数repo・非開発作業をまたぐ成果、最終受け入れ条件を管理する。

I

GitHub Issue:How

repo固有の実装単位、バグ、リファクタリング、技術仕様、検証条件を管理し、Codexが実装する要求正本とする。

P

GitHub PR:変更成果

diff、commit、テスト、CI、レビュー、変更履歴の正本とする。LinearにはPR URLと成果要約だけを返す。

必須経路: 人間の唯一の窓口はLinearとする。すべてのrepository変更にLinear IssueとGitHub Issueを関連付け、GitHub Issueのない変更は行わない。OpenClawがGitHub Issue・PR・CIを操作し、必要な情報と判断事項をLinearへ中継する。

3. 全体アーキテクチャ

外部サービス Mac mini ホスト側 ライフサイクル、リポジトリ、監視、資格管理を保持 Apple container 側 1リポジトリ=1コンテナ。Codexの実行だけを隔離 ホスト/コンテナ境界 LinearIssue・Agent Session GitHubbranch・PR・CI GCP / Cloudflare本番は人間承認後のみ Launchercontainer起動・Issue投入session ID / PIDを登録 Repository / worktrees管理clone+Issue別worktreeホストが正本を保持 Linear中継進捗・質問・完了結果同じsessionをresume Credential boundaryGitHub App鍵・tokenはホスト限定本番資格はCI / GCP PAMcontainerへ外部資格を渡さない Codex CLI計画・質問・実装・テスト標準マルチエージェント ToolchainNode / Gitripgrep Session / JSONL進捗と質問のイベント同じsessionをresume mount対象worktreeだけを表示 コンテナに置かないもの:GitHub資格・他repo・ホスト全体・本番資格

橙がMac miniホスト、緑がApple container、上段が外部サービス。赤い破線が安全境界。worktreeとGitHub App資格はホストに置き、コンテナには対象worktreeとCodex自身のログインだけを置く。

4. OpenClaw・Codex・人間の責務

O

OpenClaw:制御・中継・提出

Issue受付、repo特定、branch/worktree作成、container起動・mount、Linear中継、成果確認、GitHub App token発行、push、PR作成・更新、CI確認を担当する。コードは書かない。

C

Codex:開発実務

計画、調査、編集、テスト、修正、標準マルチエージェント、質問、受け入れ確認、commitを担当する。GitHub資格を持たず、push・PR・mergeは行わない。

H

人間:判断・承認

要件判断への回答、PRレビュー、mainへのmerge、GCP PAM昇格、例外的な本番・Cloudflare高リスク操作の承認を担当する。

境界を越えない: OpenClawはコードを書かず、CodexはGitHub資格を持たず、人間だけがPRを承認してmainへmergeする。

5. 合意済みの設計判断

コンテナ: Issueごとの使い捨てではなく、1リポジトリ=1永続コンテナ。試作は4 CPU・4GiB、キャッシュ後約0.6〜0.7秒で起動。
並列性: リポジトリ単位の排他制御は作らない。IssueごとのGit worktreeで作業領域だけを分離し、競合は後続Issueとして扱う。
実行制御: 計画・タスク分解・マルチエージェントはCodex CLI標準機能を使う。OpenClawは薄い起動・中継・結果確認・GitHub提出に限定し、独立Observerや独自オーケストレーターを置かない。
質問: nicoが要件を過剰補完せず、Codex自身が不足を質問。Linear Agent Sessionを往復の会話面にする。
安全境界: 日常作業は広く許可し、main・本番・IAM・DNSなど破壊影響の大きい境界だけ人間承認で守る。
GitHub App token: V1は1 Appから用途別tokenを発行する。日常開発tokenはAdministrationなし、repository作成tokenはLinearの明示指示時だけAdministration Writeへ限定して一時発行する。低頻度の管理操作に専用CLIは作らず、OpenClawが既存ツールで実行・読み戻し・後始末を行う。

6. 権限境界

Codex
対象worktree編集・テストcommit質問
OpenClaw+App
Org全repoGitHub Issue作成・更新branch pushPR作成・更新CI確認
repo作成時のみ
Administration Write限定tokenToraiwa-ltd固定repo名検証作成後読み戻し
人間承認
mainマージ本番CIGCP高権限Cloudflare DNS
実行主体
PR → CIGCP PAM 30〜60分CloudflareはIaC優先
1Password
秘密の保管に利用。Service Accountは常時権限用。共通の遠隔承認基盤にはしない。
V1で作らないもの: 独自状態遷移エンジン、リポジトリ排他スケジューラ、Cloudflare用の独自承認ブローカー、1Password Vaultの自動共有切替。

7. 実装Issueと順序

Projectの成果と判断は次の4 Linear Issueで管理する。各repositoryの実装は、そこから関連付けるGitHub Issueを正本として進める。

TR-443

Codex自律開発のコア基盤

repository登録、Issue別worktree、永続container、Codex実行、質問・再開、Linear中継を構築する。

完了
TR-444

GitHubのPR提出・main保護境界

Org全repo対象GitHub App、ホスト側push・PR作成、Organization Ruleset、人間承認、CI確認を設定・検証する。

TR-443の後
TR-445

GCP・Cloudflareの本番権限境界

日常資格、PR/CI資格、GCP PAM、Cloudflare Token/IaC、監査と失効を実環境で確認する。

TR-444の後
TR-446

実repositoryでE2Eパイロット

Issue受付からCodex実装、OpenClawのPR提出、人間merge、本番反映まで通し、運用手順を確定する。

TR-443〜445の後

8. Project完了条件