AGPL-3.0-or-later · forever.

the language

skills

Agent Skill (SKILL.md) file paths · explicit static paths only, no globs and no templates. They follow the agentskills.io shape, and are loaded at compose time and injected into the system context. One of 62 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.

  • 1surfaceagent
  • optionaleverywherea choice, never a miss
  • arraytypethe declared shape
  • schemathe sourcenever prose

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.

agent
arrayAgent Skill (SKILL.md) file paths · explicit static paths only, no globs and no templates. They follow the agentskills.io shape, and are loaded at compose time and injected into the system context.inside agent:

in a real file

a crafted check-green file
compose.nika.yaml
  build:    agent:      system: "Draft a minimal workflow for the goal, spawn it via nika:compose, call nika:done with its outputs."      prompt: "Summarize ./notes.md into three bullet points."      skills:        - "./skills/summarizer/SKILL.md"      tools:        - "nika:compose"        - "nika:read"        - "nika:done"      max_turns: 8      max_tokens_total: 40000

a verbatim slice, real line numbers from compose.nika.yaml, nika check green; the drift gate re-proves this copy on every test run.

The whole grammar in one place: the four verbs · the standard library · the spec. Try it in the playground. Read the reference →