AGPL-3.0-or-later · forever.

the language

max_tokens

per-call output token cap. One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.

  • 1surfaceinfer
  • optionaleverywherea choice, never a miss
  • integer | stringtypethe declared shape
  • 3skeletonscarry this key

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.

infer
integer | stringper-call output token capinside infer:

in a real file

from the website-brief skeleton
website-brief.nika.yaml
  brief:    with:      crawl_site: ${{ tasks.crawl_site.output }}    infer:      max_tokens: 1200      prompt: |        # SLOT: the one model job · what should the brief capture?        From this site crawl, produce a creative brief: the domain of        activity, the dominant visual theme, the audience, the usable        colors and image assets.        Crawl digest · ${{ with.crawl_site }}      schema:                       # SLOT: the typed shape downstream tasks rely on        type: object        additionalProperties: false        properties:          domain: { type: string }          theme: { type: string }          audience: { type: string }          colors: { type: array, items: { type: string } }          assets: { type: array, items: { type: string } }        required: [domain, theme, audience, colors, assets]

a verbatim slice, real line numbers from website-brief.nika.yaml, conformance-gated upstream on every spec push. open the full skeleton →

the block it lives in

The whole grammar in one place: the four verbs · the standard library · the spec. Try it in the playground. Read the reference →