Skip to content

Commit c82fc2b

Browse files
committed
docs: add engine specifications for Claude, Gemini, and Mock
Documents project config loading conventions (CLAUDE.md, GEMINI.md, .claude/, .gemini/), CLI flags, worktree behavior, and RETRO_JSON protocol for each supported engine.
1 parent eb00897 commit c82fc2b

1 file changed

Lines changed: 156 additions & 0 deletions

File tree

docs/engine-specifications.md

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
# Agent Engine Specifications
2+
3+
toban-cli がサポートする各エージェントエンジンの仕様と、プロジェクト設定の読み込み規約をまとめる。
4+
5+
## エンジン一覧
6+
7+
| Engine | CLI Command | Headless Flag | Auto-Approve Flag | Status |
8+
|--------|------------|---------------|-------------------|--------|
9+
| claude | `claude` | `--print` | `--dangerously-skip-permissions` | Production |
10+
| gemini | `gemini` | `-p` | `-y` (yolo) | Verified |
11+
| codex | `codex` | `--quiet` | N/A | Untested |
12+
| mock | `bash -c <script>` | N/A | N/A | E2E Testing |
13+
14+
---
15+
16+
## Claude Code
17+
18+
### プロジェクト設定の読み込み
19+
20+
| ファイル/ディレクトリ | 場所 | 用途 | `--print`で読まれるか |
21+
|---|---|---|---|
22+
| `CLAUDE.md` | リポルート | プロジェクト指示書(コーディング規約、ルール等) | **Yes** |
23+
| `.claude/settings.json` | リポルート | プロジェクト設定(MCP servers, permissions等) | Yes |
24+
| `.claude/commands/` | リポルート | カスタムスラッシュコマンド | Yes |
25+
| `~/.claude/CLAUDE.md` | ユーザーホーム | グローバル指示書(全プロジェクト共通) | Yes |
26+
| `~/.claude/settings.json` | ユーザーホーム | ユーザー設定 | Yes |
27+
| `~/.claude/skills/` | ユーザーホーム | インストール済みスキル | Yes |
28+
| `~/.claude/commands/` | ユーザーホーム | ユーザーレベルのカスタムコマンド | Yes |
29+
30+
### toban-cli での起動コマンド
31+
32+
```
33+
claude --dangerously-skip-permissions --print <prompt>
34+
```
35+
36+
- `--print`: 非対話モード。結果を stdout に出力して終了
37+
- `--dangerously-skip-permissions`: ツール実行の確認をスキップ
38+
- CWD の `CLAUDE.md` が自動読み込みされる
39+
- `CLAUDECODE` 環境変数を unset してネストセッション検出を回避
40+
41+
### 追加フラグ(必要に応じて利用可能)
42+
43+
| フラグ | 用途 |
44+
|---|---|
45+
| `--append-system-prompt <prompt>` | デフォルトシステムプロンプトに追記 |
46+
| `--system-prompt <prompt>` | システムプロンプトを完全に上書き |
47+
| `--setting-sources <sources>` | 読み込む設定ソースを指定(`user,project,local`|
48+
| `--settings <file-or-json>` | 追加設定ファイルを指定 |
49+
| `--agent <agent>` | 使用するエージェント定義を指定 |
50+
51+
### worktree での挙動
52+
53+
- git worktree にはリポの全ファイルがチェックアウトされる
54+
- `CLAUDE.md``.claude/` が git 管理下にあれば、worktree にも含まれる
55+
- `.gitignore` に含まれている場合は worktree に含まれない
56+
57+
---
58+
59+
## Gemini CLI
60+
61+
### プロジェクト設定の読み込み
62+
63+
| ファイル/ディレクトリ | 場所 | 用途 | `-p`で読まれるか |
64+
|---|---|---|---|
65+
| `GEMINI.md` | リポルート | プロジェクト指示書 | **Yes** |
66+
| `.gemini/GEMINI.md` | リポルート | プロジェクト指示書(別パス) | **Yes** |
67+
| `.gemini/settings.json` | リポルート | プロジェクト設定 | Yes |
68+
| `~/.gemini/settings.json` | ユーザーホーム | ユーザー設定 | Yes |
69+
70+
### toban-cli での起動コマンド
71+
72+
```
73+
gemini -y -p <prompt>
74+
```
75+
76+
- `-p`: 非対話(headless)モード。結果を stdout に出力
77+
- `-y`: YOLO モード。全ツール実行を自動承認
78+
- CWD の `GEMINI.md` が自動読み込みされる
79+
80+
### 拡張機能
81+
82+
| 機能 | コマンド | 説明 |
83+
|---|---|---|
84+
| Skills | `gemini skills install <source>` | エージェントスキルのインストール |
85+
| Extensions | `gemini extensions install <source>` | CLI拡張のインストール |
86+
| Hooks | `gemini hooks migrate` | Claude Code からの hook 移行 |
87+
| Policy | `--policy <file>` | ポリシーファイルによるツール制御 |
88+
89+
### 注意事項
90+
91+
- Gemini CLI は quota 制限に達するとリトライを行う(5-10秒の遅延)
92+
- `-p` モードでもプロセス終了に20-30秒かかる場合がある
93+
- stdin をパイプで閉じると終了が安定する
94+
95+
---
96+
97+
## Mock Engine
98+
99+
### 用途
100+
101+
LLM を呼ばずにスプリントサイクルを E2E テストするためのエンジン。トークン消費ゼロ。
102+
103+
### 動作
104+
105+
```bash
106+
# 擬似的な作業を実行
107+
echo "[mock] Agent ${name} starting task ${taskId}..."
108+
mkdir -p .mock-output
109+
echo "Mock output..." > .mock-output/${taskId}.txt
110+
git add .mock-output/${taskId}.txt
111+
git commit -m "mock: simulated work for task ${taskId}"
112+
echo 'RETRO_JSON:{"went_well":"...","to_improve":"...","suggested_tasks":[]}'
113+
```
114+
115+
- `.mock-output/` にダミーファイルを作成
116+
- git commit を実行
117+
- `RETRO_JSON` を stdout に出力(retro コメント用)
118+
- 約5秒で完了
119+
120+
### テスト実行
121+
122+
```bash
123+
API_KEY=tb_xxx npm run test:e2e:mock
124+
```
125+
126+
---
127+
128+
## エンジン共通事項
129+
130+
### toban-cli によるプロンプト注入
131+
132+
各エンジンの設定ファイル(`CLAUDE.md` / `GEMINI.md`)に加え、toban-cli は以下をプロンプト引数として注入する:
133+
134+
- ロール定義(builder, manager 等)
135+
- プロジェクト仕様
136+
- タスク詳細(タイトル、説明、優先度)
137+
- API リファレンス(status 更新、タスク管理、メッセージ送信)
138+
- ワークフロー指示(ブランチ作成 → 実装 → PR → retro)
139+
- セキュリティルール
140+
141+
これにより、エンジン固有の設定ファイルがなくても最低限の動作が保証される。
142+
143+
### RETRO_JSON プロトコル
144+
145+
全エンジン共通で、エージェントの stdout に以下の行を出力するとレトロスペクティブコメントとして記録される:
146+
147+
```
148+
RETRO_JSON:{"went_well":"...","to_improve":"...","suggested_tasks":[{"title":"...","priority":"p1"}]}
149+
```
150+
151+
### worktree の扱い
152+
153+
- toban-cli は各タスクごとに git worktree を作成
154+
- エージェントは worktree 内で作業
155+
- 完了後、worktree のブランチをベースブランチにマージ
156+
- worktree はマージ後に自動削除

0 commit comments

Comments
 (0)