the language
on_finally
Cleanup mini-tasks · ALWAYS run (success/fail/timeout/cancel) · sequential · best-effort. One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.
- 1surfacetask
- optionaleverywherea choice, never a miss
- arraytypethe declared shape
- schemathe sourcenever prose
the contract
1 declarationDescriptions 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.
- task
arrayCleanup mini-tasks · ALWAYS run (success/fail/timeout/cancel) · sequential · best-effort.one step of the plan
in a real file
a crafted check-green filetts_generate.nika.yaml
speak: with: line: ${{ tasks.line.output }} invoke: tool: "nika:tts_generate" args: provider: mock text: "${{ with.line }}" output_dir: "./audio" on_finally: - invoke: tool: "nika:log" args: { message: "audio pass done — anything staged is under ./audio" }a verbatim slice, real line numbers from tts_generate.nika.yaml, nika check green; the drift gate re-proves this copy on every test run.
cross-references
the check gates that name it
defined by
the block it lives in
The whole grammar in one place: the four verbs · the standard library · the spec. Try it in the playground. Read the reference →