the language
inputs
Typed workflow inputs · `${{ inputs.X }}` · the parameters an author declares and a caller supplies (R3a · LAW-SURFACE-0201 · the typed half of the dead `vars:` block · a required:true value lands here per the E-split total rule). Each entry is a typed declaration whose `type:` speaks the full TypeExpr of 09-types (R3b · LAW-GRAMMAR-0211 · the flat 6-enum is dead · LAW-SURFACE-0211). One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.
- 1surfaceenvelope
- optionaleverywherea choice, never a miss
- objecttypethe declared shape
- 1skeletonscarry this key
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.
- envelope
objectTyped workflow inputs · `${{ inputs.X }}` · the parameters an author declares and a caller supplies (R3a · LAW-SURFACE-0201 · the typed half of the dead `vars:` block · a required:true value lands here per the E-split total rule). Each entry is a typed declaration whose `type:` speaks the full TypeExpr of 09-types (R3b · LAW-GRAMMAR-0211 · the flat 6-enum is dead · LAW-SURFACE-0211).the file itself
in a real file
from the agent-loop skeletoninputs: goal: type: string required: true description: "What the agent must accomplish" # SLOTa verbatim slice, real line numbers from agent-loop.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →
cross-references
skeletons that carry it
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 →