AGPL-3.0-or-later · forever.

the language

items

The collection · a `${{ ... }}` reference OR a literal array. Evaluated EXACTLY ONCE, before the fan-out; no iteration feeds back into it (spec 03 §where this sits). One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.

  • 1surfacefor_each
  • 1required infor_each
  • string | arraytypethe declared shape
  • 1skeletonscarry 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.

for_each*
string | arrayThe collection · a `${{ ... }}` reference OR a literal array. Evaluated EXACTLY ONCE, before the fan-out; no iteration feeds back into it (spec 03 §where this sits).inside for_each:

in a real file

from the fanout skeleton
fanout.nika.yaml
  # `discover` hands back PATH STRINGS — a prompt that interpolates the raw  # item shows the model a FILENAME, never the file (measured: a green run  # whose fluent « report » was invented from the names alone — check, mock  # rehearsal and run all green around it). Reading the item is its own fan.  # Delete this task — and fan `process` over `discover` — when your items  # already ARE the content (an inline list · fetched records). Need each  # content paired with its path? `resume-screener` shows the transpose.  read:    with:      discover: ${{ tasks.discover.output }}    for_each:      items: ${{ with.discover }}      max_parallel: 8      fail_fast: false    on_error:      recover: null                 # an unreadable item yields null · the batch lives    invoke:      tool: "nika:read"      args: { path: "${{ item }}" }

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

the block it lives in

for_each: inside for_each:

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