AGPL-3.0-or-later · forever.

the language

skills

Agent Skill (SKILL.md) file paths · agentskills.io shape · explicit static paths only (no globs · no templates) · loaded at compose time and injected into the system context. One of 59 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 · agentskills.io shape · explicit static paths only (no globs · no templates) · 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 →