the standard library
nika:done
Mark the current agent loop complete (the loop-completion sentinel · agent loops only). One of 28 builtins in the closed nika: namespace: control flow and run-stream primitives.
- corefamily6 tools
- 1argsdeclared contract
- 0requiredall optional
- 1skeletonsship this tool
the contract
1 args · 0 requiredA missing required arg is a nika check finding before anything runs; the vocabulary below comes from the binary itself (nika catalog --tools --json), not from prose.
- result
- optional final value (any JSON)
in a real file
from the agent-loop skeletonagent-loop.nika.yaml
execute: with: steps: ${{ tasks.plan.output.steps }} agent: # The done-contract belongs IN the prompt: the final message must # carry the schema'd shape, so SAY so — a live model that is not # told finishes in prose and fails NIKA-INFER-002 (proven on GPT). system: "Work the plan step by step. When finished, reply with ONLY your final result as an object carrying a `findings` array (one short string each), then call nika:done." # SLOT prompt: "Plan · ${{ with.steps }}" tools: # SLOT: the MINIMUM grant for the job - "nika:read" - "nika:done" max_turns: 15 # SLOT: the loop bound max_tokens_total: 80000 # SLOT: the spend bound schema: # SLOT: the typed final-message contract type: object required: [findings] properties: findings: { type: array, items: { type: string } }a verbatim excerpt, real line numbers from agent-loop.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →
cross-references
ships in skeletons
the check gates
the core family
6 toolscontrol flow and run-stream primitives.
Machines read the same vocabulary at /tools/catalog.json; the contract lives in spec 06 · stdlib. Install and ask the binary itself: nika catalog --tools. Read the spec →