Gemini Delegate (ACP)
Delegate tasks to Gemini via ACP bridge. Verification MANDATORY.
Bridge Mandates
- MANDATORY:
scripts/gemini_bridge.pyonly. NEVER callgeminidirectly. - Safe I/O: Use
--prompt-stdinto prevent deadlocks. - Persistence: Use
--output-file AUTOfor unique result files. - Sessions: Capture/reuse
SESSION_IDfrom JSON for follow-ups. - Timeout: Total 600s (10m). First chunk 300s.
Grounding & Web Search
- Prefix: Queries MUST start with
WebSearch:(e.g.,WebSearch: API news 2026). - Grounding: Prefix forces web grounding. No prefix = fabrication risk.
- Fallback: If bridge fails (timeout/crash), use built-in
WebSearch. Report in one line.
Routing & Tasking
| Task | Model | Template |
|---|---|---|
| Review (<200 lines) | gemini-3-flash-preview |
Focused review |
| Bug/Arch (>3 files) | gemini-3.1-pro-preview |
Tool-assisted |
| Search/Info | gemini-3-flash-preview |
Web search |
| Adversarial/Plan | gemini-3.1-pro-preview |
Critique |
CLI Flags
| Flag | Description | Default |
|---|---|---|
--prompt |
Prompt text | |
--prompt-file |
Read prompt from file | |
--prompt-stdin |
Read from stdin (MANDATORY for automation) | |
--session-id |
Resume specific session | |
--new-session |
Force fresh session | |
--sessions-dir |
Override session storage dir | |
--cd |
Workspace root directory | . |
--timeout |
Total max wall-clock seconds | 600 |
--idle-timeout |
Max seconds between chunks | 120 |
--first-chunk-timeout |
Max seconds for first chunk | 300 |
--verbose |
Print heartbeat markers to stderr | |
--output-file |
Write JSON to file (AUTO for unique temp) |
|
--approve-edits |
Allow file writes within --cd scope |
|
--cache |
Content-addressed git-based caching | off |
--cache-ttl |
Cache TTL in seconds (1-2592000) | 86400 |
--clear-cache |
Clear result cache and exit | |
--parallel-models |
Comma-separated models for parallel runs | |
--log-feedback |
Append feedback entry `VERDICT | TASK |
--model |
Gemini model to use |
Output Schema
{
"success": true,
"SESSION_ID": "...",
"agent_messages": "...",
"read_file_count": N,
"fallback_occurred": boolean,
"requested_model": "...",
"actual_model_selection": "specified"|"automatic",
"tool_calls": [...],
"token_estimate": { "estimated_cost_usd": 0.00 }
}
STOP & VERIFY (Red Flags)
Violating the letter of these rules violates the spirit. STOP if:
read_file_countis 0 for code analysis (Gemini is guessing).- Response contains functions not present in source files.
- Web search response lacks specific source URLs.
- Requested Pro failed (
fallback_occurred: true). Alert user immediately. - Calling
geminidirectly. Revert and use bridge. - Omitted
WebSearch:prefix. Re-run with prefix.
Rationalization Table
| Excuse | Reality |
|---|---|
| "I know this code already." | Code changes. RE-VERIFY key logic via read_file. |
| "File names explain it." | Guessing = fabrication. READ content. |
| "I'll skip WebSearch: prefix." | Internal 2026 knowledge is fabrication. GROUND every claim. |
| "Pro failed, Flash is fine." | pro-preview is the tier for logic. Fallback must be reported. |
Permissions & Logs
- Write:
--approve-editsrequired for file writes. - Feedback: Log outcome via
--log-feedbackafter every task. - Escalation: Rejection rate >50% -> escalate model tier.
References
assets/prompt-template.md: Task templates.assets/reference.md: Logs, parallel runs, capsules.