action.yaml uses a closed schema. Unknown fields and invalid wiring fail
before a model is called.
Flow fields
Arguments
String arguments come from positional CLI text. A JSON argument receives the
value passed on standard input:
revision, prior, or prior_workflow; Navi reserves those
keys for run and continuation state.
Shared step fields
Every step hasname and type. It may also have:
Dependencies are linear and must name an earlier step. Fan-out and fan-in are
compile errors. Conditions support dotted values,
==, !=, &&, and ||;
they do not support parentheses or arbitrary code.
Agent step fields
thinking accepts adaptive, enabled, or disabled.
reasoningEffort accepts low, medium, high, xhigh, or max. Those
settings are DeepSeek-only; another provider makes them a compile error.
Workspace tools
An unknown name is a compile error. Agent steps have no workspace write, edit,
delete, or shell tool.
Structured output
Inline fields acceptstring, number, boolean, their array forms, and an
optional ? suffix:
.ts path for nested objects or enums:
action.yaml and default-exports a Zod object schema.
Command step fields
A command step acceptscommand plus the shared fields. It cannot declare
agent-only fields such as prompt, tools, skills, model, or output.
Command steps inherit the workspace as their current directory. Resolve a
co-located parser through $NAVI_ACTION_DIR.
Template values
Templates read input and completed output:--shape validates YAML fields and wiring; it cannot prove that a runtime
template path will exist.
Compiler limits
Navi has no workflow fields for retries, timeouts, loops, or parallel branches. Adding one is an unknown-key error. Usenpx --no-install navi-cli run <flow> --shape --json for the resolved plan.