AGPL-3.0-or-later · forever.

the language

tasks

The task map · the KEY is the task's identity (snake_case · CEL-safe). Source order is presentation only — the graph alone schedules. One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.

  • 1surfaceenvelope
  • 1required inenvelope
  • objecttypethe declared shape
  • 10skeletonscarry this key

the contract

1 declaration

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.

envelope*
objectThe task map · the KEY is the task's identity (snake_case · CEL-safe). Source order is presentation only — the graph alone schedules.the file itself

in a real file

from the chain skeleton
chain.nika.yaml
tasks:  gather:    invoke:                         # SLOT: the fact source · nika:read / nika:fetch / exec      tool: "nika:read"      args: { path: "${{ const.source }}" }

a verbatim slice, real line numbers from chain.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →

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 →