the language
on_codes
Retry ONLY on these canonical `NIKA-<NS>-<NNN>` codes · absent, the engine retries anything transient. Codes, never HTTP status numbers · the retry-side mirror of `on_error.on_codes`. One of 62 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.
- 2surfacesretry · on_error
- optionaleverywherea choice, never a miss
- arraytypethe declared shape
- 2skeletonscarry this key
the contract
2 declarationsthe failure grammar · this word only ever speaks inside the recovery block, so meeting it means you are reading what happens when something breaks
Descriptions are the schema's own; the deeper invariants (value languages and regexes) ride the same projection. A miss is a nika check finding before anything runs.
- retry
arrayRetry ONLY on these canonical `NIKA-<NS>-<NNN>` codes · absent, the engine retries anything transient. Codes, never HTTP status numbers · the retry-side mirror of `on_error.on_codes`.inside retry:^NIKA-[A-Z]{2,9}(-[A-Z][A-Z0-9_]{1,15})?-[0-9]{3}$- on_error
arrayOptional catch-side filter (mirror of retry.on_codes · same regex) · the action applies ONLY when the final error code is listed · unlisted codes fall through to the default fail (spec/05-errors.md §Fields).inside on_error:^NIKA-[A-Z]{2,9}(-[A-Z][A-Z0-9_]{1,15})?-[0-9]{3}$
in a real file
from the chain skeleton gather: invoke: # SLOT: the fact source · nika:read / nika:fetch / exec tool: "nika:read" args: { path: "${{ const.source }}" } on_error: # Offline rehearsal. A freshly scaffolded directory has no README, and a # skeleton that dies on its first run teaches nothing — so a not-found # recovers into a literal standing in for the real document. `on_codes:` # keeps that narrow: ONLY not-found is forgiven, a permission error # still fails loudly. Delete this block once the source really exists. # In an EMPTY directory check prints one [inputs] hint that this read # would fail — the run does not: this recover carries it (measured · # rc=0 · « 1 recovered »). The hint retires once your source exists. on_codes: [NIKA-BUILTIN-READ-001] recover: "REHEARSAL · no source document here yet."a verbatim slice, real line numbers from chain.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →
cross-references
defined by
the block it lives in
retry: inside retry:
on_error: inside on_error:
The whole grammar in one place: the four verbs · the standard library · the spec. Try it in the playground. Read the reference →