AGPL-3.0-or-later · forever.

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
  1. take data, produce words, save them

    chain8 slotschain.nika.yaml
    • `linear` | `content` | deterministic gather
    • one model job
    • explicit persist

    open the skeleton →

  2. watch X, act when Y

    gate-and-act9 slotsgate-and-act.nika.yaml
    • `conditional-gate` | `monitoring` | jq extraction
    • CEL skip-gate
    • often zero model calls

    open the skeleton →

  3. do this for EVERY item

    fanout11 slotsfanout.nika.yaml
    • `fanout` | `batch` | runtime collection
    • the full leash (`for_each.max_parallel`
    • `for_each.fail_fast`
    • retry)

    open the skeleton →

  4. only what changed since last run · survive bad input

    etl-state8 slotsetl-state.nika.yaml
    • `state-resume` | `etl` | state read→parse→diff→write
    • `on_error: on_codes:` quarantine

    open the skeleton →

  5. research / review / open-ended

    agent-loop7 slotsagent-loop.nika.yaml
    • `agent-loop` | `research`
    • `review` | plan-then-execute
    • default-deny tools
    • budgets
    • engine-owned typed result

    open the skeleton →

  6. anything irreversible (deploy · send · publish)

    human-gated-ship9 slotshuman-gated-ship.nika.yaml
    • `human-gate` | `release` | parallel gates
    • assert
    • `nika:prompt` GO
    • `after: {…: terminal}` record

    open the skeleton →

  7. understand a site (domain · theme · assets) from a URL

    website-brief10 slotswebsite-brief.nika.yaml
    • `linear` | `website` | fetch `traverse:` crawl
    • one typed infer
    • explicit persist
    • zero exec

    open the skeleton →

  8. generate image/audio assets from a brief

    media-asset-pack9 slotsmedia-asset-pack.nika.yaml
    • `linear` | `media` | `nika:image_generate`
    • `nika:jq` manifest
    • local/mock provider first

    open the skeleton →

  9. call a product API: upload a file and create from it

    api-upload-and-create11 slotsapi-upload-and-create.nika.yaml
    • `api-upload` | `product-api`
    • `upload` | fetch `multipart:` (file + text parts)
    • masked secrets header
    • mode/jq extraction

    open the skeleton →

  10. read a system's state (docker · kubectl · gh), explain it, keep the report

    docker-report9 slotsdocker-report.nika.yaml
    • `parallel-fan-in` | `operations`
    • `report` | argv-array exec (provable allowlist)
    • parallel reads
    • one artifact

    open the skeleton →

  11. extract fields from a document and keep the evidence

    document-to-fields2 slotsdocument-to-fields.nika.yaml
    • `structured-extraction` | `documents` | trim
    • nonempty assertion
    • typed fields
    • exact source anchors

    open the skeleton →

  12. answer from a corpus, or say that the answer is unknown

    corpus-qa3 slotscorpus-qa.nika.yaml
    • `retrieval` | `knowledge` | conflicting-id refusal
    • idempotent sort/unique index
    • empty citations on unknown

    open the skeleton →

  13. classify facts and route them by a governed law

    classify-and-route2 slotsclassify-and-route.nika.yaml
    • `decision-routing` | `operations` | typed facts
    • EvidenceSnapshot
    • `nika:decide`
    • fixture proof

    open the skeleton →

  14. critique and improve a draft for a fixed number of rounds

    evaluate-and-optimize1 slotsevaluate-and-optimize.nika.yaml
    • `bounded-loop` | `quality` | two unrolled revisions
    • score-only final evaluation
    • every infer capped

    open the skeleton →

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 →