Cook: Claude CodeをオーケストレーションするためのシンプルなCLI
概要
Primitives Cookは、3つのトークンカテゴリを解析し、柔軟な自動化ワークフローを実現。
ループ演算子と合成演算子により、繰り返し処理や並列分岐が可能。
reviewやralphなどのゲート機能で品質管理やタスク進行を制御。
vN, vs, pickで複数ブランチの同時実行や結果統合を実施。
cook initコマンドでプロジェクト設定を自動生成し、柔軟なエージェント・モデル構成が可能。
Primitives Cookの基本構造
-
トークンの3カテゴリ
- Work:プロンプト1つ・エージェント1回呼び出し。基本単位。
- Loop Operators:繰り返しやレビュー処理。例:xN、review、ralph。
- Composition Operators:並列分岐・結果統合。例:vN、vs、pick。
-
演算子の合成規則
- 左から右へ順に適用。
- 各演算子は左側すべてをラップ。
例
cook "work" x3 review- workを3回繰り返し、その後reviewループ。
cook "work" review x3- work→reviewループを3回繰り返し。
cook "work" review v3 pick- reviewループ付きworkを3並列で実行し、pickで最良を選択。
ループ演算子の詳細
-
repeat (xN)
- 指定回数、逐次的にworkを実行。各パスで前回の出力を参照。
cook "Add dark mode" x3- 3回逐次的に実行。
cook "Add dark mode" repeat 3- x3のロングフォーム。
- 指定回数、逐次的にworkを実行。各パスで前回の出力を参照。
-
review
-
work後にreview→gateループを追加。
- reviewerが品質確認し、gateがDONE/ITERATE判定。
- ITERATEの場合、iterateステップ実行後、再度review→gate。
- 例:
cook "Add dark mode" review(最大3イテレーション)
-
カスタムプロンプト指定
- 明示的:
cook "Add dark mode" review \ "Review for accessibility" \ "DONE if WCAG AA, else ITERATE" - 省略形:
cook "Add dark mode" \ "Review for accessibility" \ "DONE if WCAG AA, else ITERATE"
- 明示的:
-
エージェント・モデルごとの個別指定
cook "Add dark mode" review \ --work-agent codex --work-model gpt-5-codex \ --review-agent claude --review-model opus
-
-
ralph
- 外部ゲートでタスクリスト進行を管理。
- workプロンプトは自己指示型で、プロジェクト状態を参照して現在タスクを特定。
cook "Work on next task in plan.md" \ ralph 5 "DONE if all tasks complete, else NEXT"- 各タスクごとにreviewゲート、完了ならralphが次タスクへ進行。
合成演算子の詳細
-
versions (vN / race N)
- vN:N個の同一cookを独立したworktreeで並列実行。
- pick:デフォルトのリゾルバーで最良を選択。
cook "Add dark mode" v3- 3つのブランチで同時実行し、最良をpick。
cook "Add dark mode" v3 "least code wins"- pick基準を指定。
-
vs
- 2つの異なるcookを並列worktreeで実行、各ブランチは独立したcookを持つ。
cook "Implement auth with JWT" \ vs \ "Implement auth with sessions" \ pick "best security"- JWTとsessions認証を並列実装し、セキュリティ基準でpick。
- 2つの異なるcookを並列worktreeで実行、各ブランチは独立したcookを持つ。
-
リゾルバー種別
- pick ["criteria"]:1ブランチ選択・マージ(デフォルト)。
- merge ["criteria"]:全ブランチ統合し新実装を生成。
- compare:比較ドキュメントを
.cook/compare-<session>.mdに出力、マージなし。
プロジェクト設定とサンドボックス
-
cook init
- プロジェクトルートで実行し、設定ファイルを自動生成。
- COOK.md:プロジェクト指示・エージェント用プロンプトテンプレート。
- .cook/config.json:エージェント・モデル・サンドボックスのデフォルトやステップごとの上書き。
- .cook/Dockerfile:Dockerサンドボックス用依存定義。
- .cook/logs/:セッションログ(gitignore対象)。
- プロジェクトルートで実行し、設定ファイルを自動生成。
-
.cook/config.json記述例
{ "agent": "claude", "sandbox": "agent", "steps": { "work": { "agent": "codex", "model": "gpt-5-codex" }, "review": { "agent": "claude", "model": "opus" } }, "env": ["CLAUDE_CODE_OAUTH_TOKEN"] } -
サンドボックスモード
- Agent(デフォルト):
--sandbox agent、各エージェントが自身のOSレベルサンドボックスを利用。Docker不要。 - Docker:
--sandbox docker、Dockerコンテナ内でエージェント実行。ネットワーク制限あり。OpenCodeはDockerモードのみサポート。
- Agent(デフォルト):