the deterministic authoring path
Templates.
Agents do not invent structure; they instantiate it. Each skeleton below is a complete, valid workflow with # SLOT: markers at every decision point: route your intent, copy, fill the slots, nika check, done. Machines read the same pack at /templates/catalog.json; the originals live in the spec, conformance- gated on every push.
- 14skeletonsroute · copy · fill
- 99slot markersthe only blanks
- validevery fileconformance-gated
- sha256every copypinned, re-proven
take data, produce words, save them
- `linear` | `content` | deterministic gather
- one model job
- explicit persist
watch X, act when Y
- `conditional-gate` | `monitoring` | jq extraction
- CEL skip-gate
- often zero model calls
do this for EVERY item
- `fanout` | `batch` | runtime collection
- the full leash (`for_each.max_parallel`
- `for_each.fail_fast`
- retry)
only what changed since last run · survive bad input
- `state-resume` | `etl` | state read→parse→diff→write
- `on_error: on_codes:` quarantine
research / review / open-ended
- `agent-loop` | `research`
- `review` | plan-then-execute
- default-deny tools
- budgets
- engine-owned typed result
anything irreversible (deploy · send · publish)
- `human-gate` | `release` | parallel gates
- assert
- `nika:prompt` GO
- `after: {…: terminal}` record
understand a site (domain · theme · assets) from a URL
- `linear` | `website` | fetch `traverse:` crawl
- one typed infer
- explicit persist
- zero exec
generate image/audio assets from a brief
- `linear` | `media` | `nika:image_generate`
- `nika:jq` manifest
- local/mock provider first
call a product API: upload a file and create from it
- `api-upload` | `product-api`
- `upload` | fetch `multipart:` (file + text parts)
- masked secrets header
- mode/jq extraction
read a system's state (docker · kubectl · gh), explain it, keep the report
- `parallel-fan-in` | `operations`
- `report` | argv-array exec (provable allowlist)
- parallel reads
- one artifact
extract fields from a document and keep the evidence
- `structured-extraction` | `documents` | trim
- nonempty assertion
- typed fields
- exact source anchors
answer from a corpus, or say that the answer is unknown
- `retrieval` | `knowledge` | conflicting-id refusal
- idempotent sort/unique index
- empty citations on unknown
classify facts and route them by a governed law
- `decision-routing` | `operations` | typed facts
- EvidenceSnapshot
- `nika:decide`
- fixture proof
critique and improve a draft for a fixed number of rounds
- `bounded-loop` | `quality` | two unrolled revisions
- score-only final evaluation
- every infer capped
The protocol is mechanical: route with the phrases above, instantiate, fill the slots, then nika check teaches anything you missed before anything runs. Try one in the playground, or install and start from a real file. Read the spec →