# Project Agent Execution Project-local execution routing configuration. This document is the single authority for which Agent CLI profiles may implement, repair, test, or review bounded units. Human-readable notes may appear outside the machine block; the parser accepts exactly one `agent-execution` fenced block. U3's execution controller and U4's project wiring are integrated. This file is the execution-routing authority for implementation, repair, test, and review. Normal implementation, repair, and test routes stay Cursor, Antigravity (`agy`), and PI. Each of those profiles may be attempted up to `max_attempts_per_profile`, which is exactly 3 whenever `emergency_profile` is configured. Only after those candidates safely exhaust their attempts does the enabled emergency `codex` profile run once. Codex remains out of the three normal role lists and may also appear in review. `fallback_to_host` is `never`: the controller does not emit `host-fallback-authorized` and does not increment host fallback authorizations. Safe exhaustion without an emergency candidate ends `unavailable` or `blocked`, and that result does not authorize the host to write the unit. The legacy value `all-unavailable` remains parseable and likewise grants no host write authority. Cursor uses `cursor-agent-stable`. `model: auto` makes Cursor receive an explicit `--model auto`; the other CLIs omit the model flag and use their configured default. Any other value is passed to that CLI as its model selector. The `integration` block declares the host-exempt paths and the transport, admission, and cleanup entry points. ```agent-execution schema: agent-execution/v1 execution: fresh_process_per_unit: true permission: run-everything fallback_to_host: never max_parallel: 3 timeout_seconds: 7200 idle_timeout_seconds: 600 summary_bytes: 16384 raw_output_bytes: 10485760 max_attempts_per_profile: 3 emergency_profile: codex roles: implementation: [cursor, antigravity, pi] repair: [cursor, antigravity, pi] test: [pi, antigravity, cursor] review: [pi, antigravity, cursor, codex] profiles: cursor: adapter: cursor executable: cursor-agent-stable model: auto enabled: true antigravity: adapter: antigravity executable: agy model: auto enabled: true pi: adapter: pi executable: pi model: minimax-cn/MiniMax-M3 enabled: true codex: adapter: codex executable: codex model: auto enabled: true integration: exempt_paths: [".task/**", "docs/superpowers/specs/**", "docs/superpowers/plans/**"] transport: command: scripts/agent-exec apply admission: command: scripts/agent-exec admit cleanup: command: make task-finish ``` ## Model preferences (project choice) Generic rules for bounded packets, context budgeting, phase handoff and requested-versus-effective model identity live in the shared [standards/agent-execution.md](deps/development-guidelines/standards/agent-execution.md) and [workflows/handoff.md](deps/development-guidelines/workflows/handoff.md); project procedure is in [policy/delivery.md](policy/delivery.md#有界单元包上下文与阶段交接). This section records only this project's choices. - Planning, design and implementation plans: Codex or Claude when available, in the host or a fresh CLI session. This is a preference, not a routing role. - Bounded implementation, repair and test units: the existing normal candidates in the configured role order above. Requested models: - PI: `minimax-cn/MiniMax-M3`, passed as `--model provider/id`. PI actual events have reported `minimax-cn` / `MiniMax-M3` and the local offline catalog lists that profile; each run still records the effective model from that run's events. - Cursor: `auto`, passed explicitly as `--model auto` (Cursor Auto). - agy: Gemini 3.8 Flash is requested, but its exact selectable model ID and effective identity are `NOT_VERIFIED` (the `agy` models query needs a login that was not available). The profile therefore stays `model: auto` until an observed model ID exists; do not claim Gemini 3.8 Flash is active. - Assigning a different candidate or model to a unit needs a concrete, task-specific reason recorded in the task record, and stays within the existing roles and candidate lists. It is not a silent permission or routing change. Role lists, attempt limits, timeouts, output limits, the single Codex emergency attempt, stage isolation and `fallback_to_host: never` are unchanged by these preferences. - A requested model is prompt/config intent. Only the model reported in a run's actual event envelope counts as effective; when the CLI does not report it, record `not-observable`. Unknown context capacity, a missing agy login or missing automatic compaction are recorded facts, not global fail-closed conditions.