AGPL-3.0-or-later · forever.

the language

agent

Delegate. An autonomous loop, on a leash you can read. One of the four verbs. A verb is a distinct native execution model, and every task speaks exactly one.

its lanedefault-deny tools · max_turns + max_tokens_total, never an unleashed loop

  • 9block keysthe contract
  • 1requiredprompt
  • 4check gatestyped findings
  • 1skeletonsspeak this verb

the shape

a complete workflow

Schema-valid whole: this exact text passes nika check (the on-page YAML gate re-validates it on every test run).

delegate.nika.yaml
nika: v1workflow:  id: delegatemodel: ollama/llama3.2:3btasks:  audit:    agent:      prompt: "Find every dead link in ./docs"      tools: [ "nika:read", "nika:fetch" ]

inside agent:

9 keys · 1 required

The block's vocabulary comes from the served contract itself (workflow.schema.json). Each key opens its register row.

max_tokens_total
integer | stringCumulative token budget across every turn of the loop · the SPEND ceiling, where `max_turns` is the step ceiling. Default is engine-configurable (spec/02-verbs.md §agent).
max_turns
integer | stringthe agent’s loop bound; the worst case is finite
model
string
prompt*
stringthe model job, in words: interpolate ${{ }} references, never paste secrets
schema
objectJSON Schema · the contract the agent's FINAL message must satisfy. The out-of-core hatch; the typed door is task-level `returns:` (both on one task is NIKA-TYPE-003).
skills
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.
system
stringSystem prompt · the standing instruction, sent ahead of `prompt:` and unchanged by any turn of the loop.
temperature
number | stringSampling temperature for every turn of the loop · 0 is the steadiest the provider offers, 2 the loosest. A number in 0-2, or a `${{ }}` reference.
tools
arrayWhitelist · DEFAULT-DENY (no tools if absent) · gitignore-style globs · `!` negation.

The verbs are locked forever: four, never five (fetch is a builtin, not a verb; ordering is the DAG's job, not a word's). The grammar lives in spec 02 · verbs; every other key is in the keyword register. Read the spec →