Atenea documentation
Decision router
On this page
Decision router#
atenea decide is the explainable front door for turning a natural-language
commission into a durable coordination plan. It is deliberately a dry run
unless --run is supplied. task remains the compatibility entry point.
The same dry-run compiler is exposed to Codex chats as the MCP tool
decision.plan. It accepts one explicit repository and returns the complete
plan with dry_run = true and execution_authorized = false; it neither
persists nor launches the workflow. The managed atenea-plan-mode Codex skill
uses this surface automatically only while the active collaboration mode is
Plan.
atenea decide "buscar el flujo de autenticación" --trace
atenea decide "diseñar el flujo de pagos" --repo taxiprime-backend --jsonThe plan makes these decisions visible, in order:
- Intent —
understand,search,planorchange, using a small deterministic classifier that can later be replaced by a model returning the same vocabulary. - Agent and model — the least powerful suitable declared agent is chosen
(
readerfor searches,exploreotherwise, thenplanfor plan/change work). Either role may be configured asauto: exploration uses safe candidates plus adaptive cost history, while theplanrole resolves to Opus 5 first and only permits high-reasoning fallbacks. With OpenCode the built-in fallback candidates areopenai/gpt-5.6-solandopenai/gpt-5.6-luna; Sonnet and Haiku are rejected for plan. An empty model is shown as unavailable rather than silently defaulted. The reason and the chosen concrete model are stamped into the trace; no undeclared model can enter the route. - Tools and MCP — native tools and Atenea capabilities are listed
separately from
raw.<server>.<tool>MCP passthroughs. Raw tools are allow-listed but not treated as semantic capabilities or routed through the selector. A raw tool must be explicitly selected with--tool. - Capability provider — every requested capability is sent through the
existing constraints → reach → health → cost funnel.
--preferapplies to this call only and does not mutate settings. - Policy — standing effects from settings and explicit
--alloweffects are shown. Workflow steps remain constrained by their declared agent type; an effect outside that ceiling makes the plan invalid before execution. - Budget and workflow — repositories become steps, plan/change requests
add a subject-dependent
planstep, and the grant is allocated in proportion to the routed model/role forecast. The plan reports its required budget, minimum and margin, and refuses before execution when the grant is insufficient. Forecasts and eventual provider receipts are persisted separately. - Coordination — the plan records one coordinator, at most two specialist
roles, a criterion and explicit limits. With
--run, Atenea writes a coordinator receipt before creating repository-scoped child workflows. The child workflow database remains the authority for permissions, effects, activity and resume; the receipt only links the persistent IDs.
--json is intended for another orchestrator or UI. A valid plan can be
executed with one isolated workflow per repository and one durable coordinator
receipt:
atenea decide "buscar el flujo de autenticación" \
--repo taxiprime-backend --run --confirmFor an adaptive exploration followed by the mandatory Opus plan, start with a
grant around $0.90 and inspect the forecast before running:
atenea decide "preparar un plan para mejorar el sistema de decisión" \
--repo atenea --budget 0.90 --trace --runEach workflow engine is bound to exactly one repository workspace, so the
router preserves that safety boundary and runs the repository graphs
separately. The command prints coordinator COORD_ID followed by each child
workflow ID. Reconnect with:
atenea decide status COORD_ID
atenea decide resume COORD_ID
atenea decide cancel COORD_ID--criterion, --max-duration and --max-tokens are captured in the receipt
and child workflow policy. Duration is enforced by the workflow engine;
the token ceiling is retained as a declared policy limit and checked by the
model adapter when the assignment carries it.
The native Codex route sets visibility_required and has no silent model or
transport substitution. If App Server is unavailable, the child pauses with
an unavailable result and can be resumed after the same route is available.
The existing task command remains available as the compatibility path for
its older capability-oriented commission format.
Model history is read from successful routed workflow steps. Native MCP capabilities already use the selector’s health and measured-cost funnel; raw MCP tools remain explicit-only because they do not declare a semantic capability contract that could be compared safely.
When a non-native route times out or becomes unavailable, Atenea may try the next declared fallback only if the remaining budget can be bounded. Native Codex visible routes have no substitution path. Provider-reported costs are preferred; when the CLI returns tokens without dollars, a conservative token estimate is used for the retry gate but is never recorded as billed USD. Successful fallbacks appear as workflow notices.