the standard library
nika:decide
Deterministic decision kernel (spec 11) · evaluates a portable Decision Bundle against an EvidenceSnapshot · returns the full receipt (outcome · term-by-term contributions · intervals · conflicts+witnesses · determination provenance). The LLM never decides — collect facts first, then apply the rubric here. One of 28 builtins in the closed nika: namespace: pure JSON/data transforms, no I/O.
- datafamily9 tools
- 2argsdeclared contract
- 2requiredcheck teaches a miss
- craftedusage filecheck-green below
the contract
2 args · 2 requiredA missing required arg is a nika check finding before anything runs; the vocabulary below comes from the binary itself (nika catalog --tools --json), not from prose.
- bundle*
- the Decision Bundle · a ./path.bundle.json string (a permits.fs read) or the inline bundle object
- evidence*
objectthe EvidenceSnapshot { t, evidence: [{key, value, source, integrity, digest, ...}] }
in a real file
a complete workflownika: v1workflow: id: deterministic-triage description: "apply a governed decision bundle to cited evidence"tasks: decide: invoke: tool: "nika:decide" args: bundle: "./decisions/pr-triage.bundle.json" evidence: t: "2026-07-16T00:00:00Z" evidence: []outputs: decision: ${{ tasks.decide.output }}a complete file, nika check green; the drift gate re-validates this copy against the schema on every test run. open it in the playground →
cross-references
ships in skeletons
no skeleton ships it; the crafted file above is the reference.
the check gates
the data family
9 toolspure JSON/data transforms, no I/O.
Machines read the same vocabulary at /tools/catalog.json; the contract lives in spec 06 · stdlib. Install and ask the binary itself: nika catalog --tools. Read the spec →