AGPL-3.0-or-later · forever.

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 required

A 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 workflow
decide.nika.yaml
nika: 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 tools

pure 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 →