AGPL-3.0-or-later · forever.

the language

command

argv — the program and its arguments, execve, NO shell. Each element substituted independently (the injection-safe form). Shell features (pipes · redirects · globs) live in `shell:`. One of 59 words the served contract declares, projected from workflow.schema.json, the same file your editor validates against.

  • 1surfaceexec
  • optionaleverywherea choice, never a miss
  • arraytypethe declared shape
  • 2skeletonscarry 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.

exec
arrayargv — the program and its arguments, execve, NO shell. Each element substituted independently (the injection-safe form). Shell features (pipes · redirects · globs) live in `shell:`.inside exec:

in a real file

from the human-gated-ship skeleton
human-gated-ship.nika.yaml
  # ── the verification wave · all checks run in parallel ──  check_a:    exec:      command: ["echo", "ok"]        # SLOT: gate 1 (argv form · injection-safe)      capture: structured    on_error:      # Golden rehearsal · `nika test` refuses exec (NIKA-SEC-001 · the mock      # plane simulates the model, not effects). Catch-all ON PURPOSE — never      # `on_codes: [NIKA-SEC-001]`: that code is also a real blocklist stop,      # and a narrow forgiveness would swallow a security refusal. The shape      # matches `capture: structured` so the gates expression reads it.      # Delete once the gate runs a real check.      recover: { exit_code: 0, stdout: "REHEARSAL", stderr: "" }

a verbatim slice, real line numbers from human-gated-ship.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 →