Skip to main content
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:
Do not declare revision, prior, or prior_workflow; Navi reserves those keys for run and continuation state.

Shared step fields

Every step has name 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 accept string, number, boolean, their array forms, and an optional ? suffix:
Use a relative .ts path for nested objects or enums:
The file sits beside action.yaml and default-exports a Zod object schema.

Command step fields

A command step accepts command 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.
A command step is trusted shell code. Do not interpolate untrusted input into a shell-parsed position. Pass input to a program that validates it, then invoke subprocesses with an argument array.

Template values

Templates read input and completed output:
Objects and arrays become JSON. A missing path becomes an empty string. --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. Use npx --no-install navi-cli run <flow> --shape --json for the resolved plan.