116 lines
4.7 KiB
Markdown
116 lines
4.7 KiB
Markdown
# 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` lets a CLI use its configured default
|
|
model; 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` (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.
|