the language
tool
Tool reference · nika:<path> (closed v0.1 builtin set) OR mcp:<server>/<tool> (requires the slash). The namespace set is CLOSED at v1 (spec/02-verbs.md) — an x-<vendor>: prefix is RESERVED, not valid (engine-specific tools route through mcp: · spec/06-stdlib-contract.md §Namespace ownership). One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.
- 1surfaceinvoke
- optionaleverywherea choice, never a miss
- stringtypethe declared shape
- 10skeletonscarry 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.
- invoke
stringTool reference · nika:<path> (closed v0.1 builtin set) OR mcp:<server>/<tool> (requires the slash). The namespace set is CLOSED at v1 (spec/02-verbs.md) — an x-<vendor>: prefix is RESERVED, not valid (engine-specific tools route through mcp: · spec/06-stdlib-contract.md §Namespace ownership).inside invoke:^mcp:[a-z][a-z0-9-]*/[A-Za-z0-9_/-]+$
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 }}" }a verbatim slice, real line numbers from chain.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →
cross-references
skeletons that carry it
where it lives
accepted by
defined by
The whole grammar in one place: the four verbs · the standard library · the spec. Try it in the playground. Read the reference →