{
  "language_graph": 1,
  "spec_pin": null,
  "canon_schema_version": 1,
  "engine_version": "v0.111.0",
  "catalogs": {
    "tools": "0.111.0",
    "providers": "0.111.0"
  },
  "nodes": [
    {
      "id": "chapter:canon.yaml",
      "kind": "chapter",
      "title": "canon.yaml",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/canon.yaml",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:examples/manifest.yaml",
      "kind": "chapter",
      "title": "examples/manifest.yaml",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/examples/manifest.yaml",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/01-envelope.md",
      "kind": "chapter",
      "title": "spec/01-envelope.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/01-envelope.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/02-verbs.md",
      "kind": "chapter",
      "title": "spec/02-verbs.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/02-verbs.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/03-dag.md",
      "kind": "chapter",
      "title": "spec/03-dag.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/03-dag.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/04-variables.md",
      "kind": "chapter",
      "title": "spec/04-variables.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/04-variables.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/05-errors.md",
      "kind": "chapter",
      "title": "spec/05-errors.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/05-errors.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/07-conformance.md",
      "kind": "chapter",
      "title": "spec/07-conformance.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/07-conformance.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:spec/09-types.md",
      "kind": "chapter",
      "title": "spec/09-types.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/spec/09-types.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:stdlib/builtins-v0.1.md",
      "kind": "chapter",
      "title": "stdlib/builtins-v0.1.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/stdlib/builtins-v0.1.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:stdlib/extract-modes-v0.1.md",
      "kind": "chapter",
      "title": "stdlib/extract-modes-v0.1.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/stdlib/extract-modes-v0.1.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:stdlib/providers-v0.1.md",
      "kind": "chapter",
      "title": "stdlib/providers-v0.1.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/stdlib/providers-v0.1.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "chapter:templates/README.md",
      "kind": "chapter",
      "title": "templates/README.md",
      "url": "https://github.com/supernovae-st/nika-spec/blob/main/templates/README.md",
      "status": "both",
      "opener": null
    },
    {
      "id": "code:NIKA-AGENT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AGENT-001",
      "url": "/language/errors/NIKA-AGENT-001",
      "status": "ratified",
      "opener": "max_turns exhausted before completion",
      "meta": {
        "category": "budget_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AGENT-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AGENT-002",
      "url": "/language/errors/NIKA-AGENT-002",
      "status": "ratified",
      "opener": "max_tokens_total exhausted before completion",
      "meta": {
        "category": "budget_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AGENT-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AGENT-003",
      "url": "/language/errors/NIKA-AGENT-003",
      "status": "ratified",
      "opener": "a skills: path does not resolve (file missing/unreadable at compose time)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AGENT-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AGENT-004",
      "url": "/language/errors/NIKA-AGENT-004",
      "status": "ratified",
      "opener": "a skills: file is not a valid Agent Skill (frontmatter shape · missing/empty name/description)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AGENT-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AGENT-005",
      "url": "/language/errors/NIKA-AGENT-005",
      "status": "ratified",
      "opener": "the provider reported no token usage for a priced model — every budget and ledger reads the turn as free, so the loop fails closed (R3-F1 · the usage-absence gate)",
      "meta": {
        "category": "budget_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-ASSERT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-ASSERT-001",
      "url": "/language/errors/NIKA-ASSERT-001",
      "status": "ratified",
      "opener": "an assert: claims a level the evidence does not support (a StaticProof the IR cannot decide · a mis-leveled obligation · spec 15)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-006",
      "url": "/language/errors/NIKA-AUTH-006",
      "status": "ratified",
      "opener": "no permits: block declared and the body has effects — absent = zero authority (F-O8 · NEP-0003)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-007",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-007",
      "url": "/language/errors/NIKA-AUTH-007",
      "status": "ratified",
      "opener": "an interpolation reaches a permit bound (host · glob · program · env name) — a bound MUST be a literal, the boundary would be self-serve (F-O1 · NEP-0004 · env per NEP-0005)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-008",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-008",
      "url": "/language/errors/NIKA-AUTH-008",
      "status": "ratified",
      "opener": "an untrusted value reaches a permitted verb's argument and its canonical resolved form escapes the step's permit — re-gate refused (F-O1 · NEP-0004)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-009",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-009",
      "url": "/language/errors/NIKA-AUTH-009",
      "status": "ratified",
      "opener": "a permits env: entry names a dangerous-floor variable · the engine strips the name unconditionally, the grant can never take effect: an inert dead grant (F-O4 · NEP-0005)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-010",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-010",
      "url": "/language/errors/NIKA-AUTH-010",
      "status": "ratified",
      "opener": "a permits net.http: entry carries the *. subdomain wildcard · the grant delegates the boundary to the zone operator (every host under the suffix, present and future) — refused: name exact hosts, or the bare * when allow-all is genuinely intended (F-P5 · NEP-0008)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-AUTH-011",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-AUTH-011",
      "url": "/language/errors/NIKA-AUTH-011",
      "status": "ratified",
      "opener": "a lift: entry whose named law would not have fired on this task — a trapdoor that lifts nothing is refused, never a silent no-op (10 §the authored doors rule 6)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-BUILTIN-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-BUILTIN-001",
      "url": "/language/errors/NIKA-BUILTIN-001",
      "status": "ratified",
      "opener": "builtin invoke violates its statically-checkable arg contract (e.g. nika:fetch without url: · nika:jq arg shape)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-BUILTIN-DONE-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-BUILTIN-DONE-001",
      "url": "/language/errors/NIKA-BUILTIN-DONE-001",
      "status": "ratified",
      "opener": "nika:done invoked outside an agent: loop",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-CANCEL-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-CANCEL-001",
      "url": "/language/errors/NIKA-CANCEL-001",
      "status": "ratified",
      "opener": "task cancelled (workflow failure gate · user cancellation)",
      "meta": {
        "category": "cancelled",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-COMP-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-COMP-001",
      "url": "/language/errors/NIKA-COMP-001",
      "status": "ratified",
      "opener": "invoke.workflow: target is not statically resolvable (templated · malformed · unpinned registry ref) — a call graph you cannot draw before the run cannot be bounded (spec 14)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-COMP-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-COMP-002",
      "url": "/language/errors/NIKA-COMP-002",
      "status": "ratified",
      "opener": "the child workflow's effect boundary exceeds the parent capped by the call-site declaration (Authority(child) subset of Authority(parent) intersect declared · spec 14 laws 3/4)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-COMP-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-COMP-003",
      "url": "/language/errors/NIKA-COMP-003",
      "status": "ratified",
      "opener": "the static call graph is not acyclic (self-launch · cycle · spec 14 law 7 · NIKA-SEC-003 is the runtime depth backstop)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-COMP-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-COMP-004",
      "url": "/language/errors/NIKA-COMP-004",
      "status": "ratified",
      "opener": "the typed call does not compose — parent args do not fit child inputs, or child outputs do not fit parent returns (spec 14 law 2)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-001",
      "url": "/language/errors/NIKA-DAG-001",
      "status": "ratified",
      "opener": "cycle in the precedence graph G_p = E_d ∪ E_c (incl. self-dependency · via with:/after:)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-002",
      "url": "/language/errors/NIKA-DAG-002",
      "status": "ratified",
      "opener": "with:/after: references an undeclared task",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-004",
      "url": "/language/errors/NIKA-DAG-004",
      "status": "ratified",
      "opener": "on_error.recover references a task downstream of the declaring task (await would deadlock)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-005",
      "url": "/language/errors/NIKA-DAG-005",
      "status": "ratified",
      "opener": "after: predicate outside the closed set (success · failure · skipped · terminal)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-006",
      "url": "/language/errors/NIKA-DAG-006",
      "status": "ratified",
      "opener": "statically dead task — an incoming edge's pass-set excludes every reachable producer state, or the when: gate is false under every reachable upstream combination (gate algebra v2)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-007",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-007",
      "url": "/language/errors/NIKA-DAG-007",
      "status": "ratified",
      "opener": "status compared against a literal outside the vocabulary (success · failure · skipped · cancelled) — == never matches, != always holds",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-008",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-008",
      "url": "/language/errors/NIKA-DAG-008",
      "status": "ratified",
      "opener": "a group.<name> fold names a group no task declares — including a bare group and the group a renamed member left empty",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DAG-009",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DAG-009",
      "url": "/language/errors/NIKA-DAG-009",
      "status": "ratified",
      "opener": "an unwind task declares group: — cleanup never enters G_p, so it cannot be a fan-in member",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DECIDE-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DECIDE-001",
      "url": "/language/errors/NIKA-DECIDE-001",
      "status": "ratified",
      "opener": "the decision bundle is malformed or violates its own laws (float weight · undeclared evidence key in rules · identity key feeding a technical dimension · missing contradictory fixture · monotonicity violated by the bundle's own fixtures) (spec 11)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DECIDE-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DECIDE-002",
      "url": "/language/errors/NIKA-DECIDE-002",
      "status": "ratified",
      "opener": "the evidence snapshot does not satisfy the bundle's evidence schema (type misfit · unauthorized source · integrity below the declared floor · undeclared key) (spec 11)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DEFAULT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DEFAULT-001",
      "url": "/language/errors/NIKA-DEFAULT-001",
      "status": "ratified",
      "opener": "a declared inputs default or typed const value does not conform to its declared type (R3b · LAW-TYPE-0211)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-DRIFT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-DRIFT-001",
      "url": "/language/errors/NIKA-DRIFT-001",
      "status": "ratified",
      "opener": "declared-but-unused — a vars:/env:/secrets: name or a permits: entry (exec program · tool glob · net host · fs path) that nothing in the body references (advisory check hint · never fails the audit — the reverse direction, used-but-undeclared, is the hard NIKA-VAR-001/NIKA-DAG-002/NIKA-SEC-004 surface)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-EXEC-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-EXEC-001",
      "url": "/language/errors/NIKA-EXEC-001",
      "status": "ratified",
      "opener": "non-zero exit code (default capture modes)",
      "meta": {
        "category": "process_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-EXEC-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-EXEC-002",
      "url": "/language/errors/NIKA-EXEC-002",
      "status": "ratified",
      "opener": "spawn failure (command not found · permission)",
      "meta": {
        "category": "process_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INFER-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INFER-001",
      "url": "/language/errors/NIKA-INFER-001",
      "status": "ratified",
      "opener": "provider call failed (HTTP error · provider refusal)",
      "meta": {
        "category": "provider_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INFER-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INFER-002",
      "url": "/language/errors/NIKA-INFER-002",
      "status": "ratified",
      "opener": "structured output failed schema validation (after any engine-internal retries)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INFER-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INFER-003",
      "url": "/language/errors/NIKA-INFER-003",
      "status": "ratified",
      "opener": "the provider reported no token usage for a priced model — the ledger cannot bill the call honestly (fail-closed · R3-F1)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INFER-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INFER-004",
      "url": "/language/errors/NIKA-INFER-004",
      "status": "ratified",
      "opener": "the provider spent tokens yet the visible answer is empty — a thinking model ate the budget on its reasoning trace (fail-closed · #651 · raise max_tokens or use a no-think variant)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INVOKE-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INVOKE-001",
      "url": "/language/errors/NIKA-INVOKE-001",
      "status": "ratified",
      "opener": "unknown tool (unresolvable nika:/mcp: id)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-INVOKE-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-INVOKE-002",
      "url": "/language/errors/NIKA-INVOKE-002",
      "status": "ratified",
      "opener": "tool args failed the tool's schema",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-LOCK-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-LOCK-001",
      "url": "/language/errors/NIKA-LOCK-001",
      "status": "ratified",
      "opener": "a dependency resolved that nika.lock does not pin, or a hand-edited lock digest does not match (pin-by-default · the lock's own hash catches the edit · spec 15)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-MCP-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-MCP-001",
      "url": "/language/errors/NIKA-MCP-001",
      "status": "ratified",
      "opener": "MCP server not configured / not reachable at call time",
      "meta": {
        "category": "tool_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-MCP-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-MCP-002",
      "url": "/language/errors/NIKA-MCP-002",
      "status": "ratified",
      "opener": "MCP tool call failed (transport · tool-side error)",
      "meta": {
        "category": "tool_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-001",
      "url": "/language/errors/NIKA-PARSE-001",
      "status": "ratified",
      "opener": "the YAML itself does not parse (syntax error)",
      "meta": {
        "category": "parse_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-002",
      "url": "/language/errors/NIKA-PARSE-002",
      "status": "ratified",
      "opener": "missing envelope field (nika: / non-empty tasks:)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-003",
      "url": "/language/errors/NIKA-PARSE-003",
      "status": "ratified",
      "opener": "nika: is not a kebab-case id (^[a-z][a-z0-9-]*$)",
      "meta": {
        "category": "parse_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-004",
      "url": "/language/errors/NIKA-PARSE-004",
      "status": "ratified",
      "opener": "workflow: id violates ^[a-z][a-z0-9-]*$",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-005",
      "url": "/language/errors/NIKA-PARSE-005",
      "status": "ratified",
      "opener": "unknown field — strict mode rejects anything outside the closed v1 set",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-006",
      "url": "/language/errors/NIKA-PARSE-006",
      "status": "ratified",
      "opener": "task id violates ^[a-z][a-z0-9_]*$ (snake_case · CEL-safe · no hyphens)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-007",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-007",
      "url": "/language/errors/NIKA-PARSE-007",
      "status": "ratified",
      "opener": "duplicate task id within the workflow",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-008",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-008",
      "url": "/language/errors/NIKA-PARSE-008",
      "status": "ratified",
      "opener": "task declares no verb — exactly one of infer/exec/invoke/agent required",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-009",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-009",
      "url": "/language/errors/NIKA-PARSE-009",
      "status": "ratified",
      "opener": "task declares multiple verbs — exactly one required",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-010",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-010",
      "url": "/language/errors/NIKA-PARSE-010",
      "status": "ratified",
      "opener": "timeout: violates the quoted Go-duration contract (positive · max 24h · descending units)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-011",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-011",
      "url": "/language/errors/NIKA-PARSE-011",
      "status": "ratified",
      "opener": "retry: block violates the spec shape",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-012",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-012",
      "url": "/language/errors/NIKA-PARSE-012",
      "status": "ratified",
      "opener": "on_error: block violates the spec shape (fields mutually exclusive)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-013",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-013",
      "url": "/language/errors/NIKA-PARSE-013",
      "status": "ratified",
      "opener": "with:/extract: binding uses a reserved name (output · status · error · started_at · ended_at · duration_ms)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-014",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-014",
      "url": "/language/errors/NIKA-PARSE-014",
      "status": "ratified",
      "opener": "secrets: entry is not a store reference — inline literals forbidden",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-017",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-017",
      "url": "/language/errors/NIKA-PARSE-017",
      "status": "ratified",
      "opener": "duplicate mapping key — no silent last-wins",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-018",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-018",
      "url": "/language/errors/NIKA-PARSE-018",
      "status": "ratified",
      "opener": "missing required field in a verb body (infer.prompt · exec.command · invoke.tool)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-019",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-019",
      "url": "/language/errors/NIKA-PARSE-019",
      "status": "ratified",
      "opener": "generic structural validation — wrong YAML shape for a field",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-022",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-022",
      "url": "/language/errors/NIKA-PARSE-022",
      "status": "ratified",
      "opener": "tasks: is a sequence — it became a map keyed by task id (drop `- id:`, the key IS the identity)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-023",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-023",
      "url": "/language/errors/NIKA-PARSE-023",
      "status": "ratified",
      "opener": "a task carries an id: field — the map key is the identity, the field is gone",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-024",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-024",
      "url": "/language/errors/NIKA-PARSE-024",
      "status": "ratified",
      "opener": "a task carries depends_on: — dead since W2 (data → with: bindings · control → after: predicates · check --fix migrates)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-025",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-025",
      "url": "/language/errors/NIKA-PARSE-025",
      "status": "ratified",
      "opener": "decode: with capture: structured — that capture already IS an object · type it with returns:",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-026",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-026",
      "url": "/language/errors/NIKA-PARSE-026",
      "status": "ratified",
      "opener": "a declared entropy x clock contradiction · entropy: ambient paired with clock: virtual — the ambient declaration contradicts the determinism demand (NEP-0010 · F-P3)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-027",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-027",
      "url": "/language/errors/NIKA-PARSE-027",
      "status": "ratified",
      "opener": "a declared entropy x clock contradiction · entropy: none | seeded paired with clock: system — deterministic journals cannot ride the wall clock (NEP-0010 · F-P3)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PARSE-028",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PARSE-028",
      "url": "/language/errors/NIKA-PARSE-028",
      "status": "ratified",
      "opener": "entropy: none declares strict determinism while a structural randomness source is consumed (a live retry jitter · nika:uuid) — the strict declaration cannot hold (NEP-0010 · F-P3 · judged at check)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PORT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PORT-001",
      "url": "/language/errors/NIKA-PORT-001",
      "status": "ratified",
      "opener": "a gateway artifact (deployment bundle · capabilities report · lowering report · fidelity report · authority delta) is malformed or violates its laws (unknown promoted · permissive_unsafe without refusal · disclosure subset-chain violated · child authority exceeding parent) (spec 12)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-PORT-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-PORT-002",
      "url": "/language/errors/NIKA-PORT-002",
      "status": "ratified",
      "opener": "policy lowering is permissive_unsafe — the backend would allow what the policy forbids · refused with the divergence witness (spec 12)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-001",
      "url": "/language/errors/NIKA-SEC-001",
      "status": "ratified",
      "opener": "exec refused before the child spawns — either the shell floor (a destructive/privilege pattern · always-on · independent of permits:) or the mock plane under `nika test`, which refuses EVERY command by design (it simulates the model, not effects) · under test the exit is `nika run` for real effects, or an `on_error: recover` rehearsal on the task",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-002",
      "url": "/language/errors/NIKA-SEC-002",
      "status": "ratified",
      "opener": "agent tool call outside the tools: whitelist",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-003",
      "url": "/language/errors/NIKA-SEC-003",
      "status": "ratified",
      "opener": "run-recursion bound — nested-run depth exceeded OR self-launching workflow",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-004",
      "url": "/language/errors/NIKA-SEC-004",
      "status": "ratified",
      "opener": "effect outside the declared permits: capability boundary (fs/net/exec/tool)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-005",
      "url": "/language/errors/NIKA-SEC-005",
      "status": "ratified",
      "opener": "SSRF block — a nika:fetch/nika:notify URL resolves to a loopback/private/link-local/metadata target (always-on engine floor · independent of permits:)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-006",
      "url": "/language/errors/NIKA-SEC-006",
      "status": "ratified",
      "opener": "secret flow — a secrets.<name> value reaches an unsanctioned sink (exec argument · invoke payload · infer/agent prompt) · the diagnostic carries the taint path + the egress clause that would sanction it (spec 10 · flow rules in 01 §egress)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-007",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-007",
      "url": "/language/errors/NIKA-SEC-007",
      "status": "ratified",
      "opener": "secret egress — a tainted value reaches the workflow boundary (outputs:) · the diagnostic carries the taint path (spec 10 · the to: outputs sanction in 01 §egress)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-008",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-008",
      "url": "/language/errors/NIKA-SEC-008",
      "status": "ratified",
      "opener": "data-as-code sink · a nika:fetch resolved URL path names a code-bearing class (serialized-executable · script/interpreter · executable binary/module · the closed NEP-0006 list) and the task declares no door — no lift: entry naming the data-as-code law · the read hides an execution sink (F-O7 · NEP-0006)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-009",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-009",
      "url": "/language/errors/NIKA-SEC-009",
      "status": "ratified",
      "opener": "lethal trifecta complete — the declared boundary grants private read (fs.read non-empty) + untrusted ingress (a nika:fetch builtin invoked · an mcp:* tool invoked · an agent: whose whitelist admits ingress) + external egress (net.http non-empty · an escaping fs.write glob · exec enabled), the untrusted content REACHES an egress-capable task's effect surface (a realized flow), and no blocking invoke: nika:prompt (no default:) dominates it (NEP-0002 v2.0 · the Rule of Two as a static check)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-010",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-010",
      "url": "/language/errors/NIKA-SEC-010",
      "status": "ratified",
      "opener": "the approval-capability law is violated · a rate-limited approval burst (the N+1th distinct mint of a run) · an approval whose resolved content hash differs from the shown hash (content_mismatch) · a ticket replayed across runs or steps (scope_mismatch) · or the static heterogeneous-batch refusal (one prompt unleashing two or more effect classes) — the 6th invariant (NEP-0013 · F-P4)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-011",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-011",
      "url": "/language/errors/NIKA-SEC-011",
      "status": "ratified",
      "opener": "preview-commit divergence — the commit digest recomputed at the sink over the exact bytes about to fire differs from the preview digest computed at resolution (one bit of rendered argv · a permuted context field · a mutated tool argument) · the step refuses fail-closed and the receipt carries divergence:{preview, commit} — judged = executed at the action scale (NEP-0015 · F-P6)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-012",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-012",
      "url": "/language/errors/NIKA-SEC-012",
      "status": "ratified",
      "opener": "unordered shared writes — two tasks incomparable in the DAG closure whose literal nika:write/nika:edit paths collide with no ordering edge (after: · with:) to serialize them, or a for_each fan writing one constant path · parallelism is safe exactly where the writes are provably disjoint (NEP-0014 law 1 · F-P15)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-014",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-014",
      "url": "/language/errors/NIKA-SEC-014",
      "status": "ratified",
      "opener": "the affirmative-consent law — a confirm-mode human gate (invoke: nika:prompt · mode absent or confirm) reaches an egress-capable task over a route no affirmative gate closes: a REFUSED confirm settles success with value false, so a bare after: { gate: success } edge, a when: that never reads the answer, and a when: provably true on the refusal all let the effect through · the gate is credited only when every route consumes the answer and proves false on it (the Kleene-falsifiable when: · when: false · a closer confirm gate owns its closure) · an undecidable gate (a nested binding · a non-fragment expression) defers to the advisory hint, never a refusal (NEP-0020 · P0-2 of the 2026-07-30 audit)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-SEC-015",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-SEC-015",
      "url": "/language/errors/NIKA-SEC-015",
      "status": "ratified",
      "opener": "the order law — an exec: task sits transitively downstream of a net-effecting task (nika:fetch · nika:notify) over the derived graph (with: data edges ∪ after: control edges) · content the workflow did not author must not reach a shell · UNCONDITIONAL: no block declares it and none can disable it",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TIMEOUT-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TIMEOUT-001",
      "url": "/language/errors/NIKA-TIMEOUT-001",
      "status": "ratified",
      "opener": "task (or for_each iteration) exceeded timeout:",
      "meta": {
        "category": "timeout_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-001",
      "url": "/language/errors/NIKA-TYPE-001",
      "status": "ratified",
      "opener": "unknown type name (in types: · returns: · an outputs: type) — did-you-mean when close",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-003",
      "url": "/language/errors/NIKA-TYPE-003",
      "status": "ratified",
      "opener": "returns: and schema: on the same task — one contract, one spelling",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-004",
      "url": "/language/errors/NIKA-TYPE-004",
      "status": "ratified",
      "opener": "returns: type unreachable from the declared decode: (an object contract over decode: text · …)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-005",
      "url": "/language/errors/NIKA-TYPE-005",
      "status": "ratified",
      "opener": "a secret-carrying type in a lowered position (reserved with secret<T> · W4)",
      "meta": {
        "category": "security_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-006",
      "url": "/language/errors/NIKA-TYPE-006",
      "status": "ratified",
      "opener": "regex pattern outside the locked dialect (backreference · lookaround · named group · inline flags · lazy/possessive · word-boundary · unicode-class — spec 09 §the regex dialect)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-TYPE-101",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-TYPE-101",
      "url": "/language/errors/NIKA-TYPE-101",
      "status": "ratified",
      "opener": "run-time contract violation — the decoded value does not fit returns: (exec:/invoke: lane)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VALUES-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VALUES-001",
      "url": "/language/errors/NIKA-VALUES-001",
      "status": "ratified",
      "opener": "vars: is a dead envelope field (R3a · the E-split)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VALUES-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VALUES-002",
      "url": "/language/errors/NIKA-VALUES-002",
      "status": "ratified",
      "opener": "env: is a dead envelope field (R3a · the E-split)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VALUES-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VALUES-003",
      "url": "/language/errors/NIKA-VALUES-003",
      "status": "ratified",
      "opener": "a value-namespace read outside the three-authority family (R3a · LAW-SURFACE-0201)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-001",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-001",
      "url": "/language/errors/NIKA-VAR-001",
      "status": "ratified",
      "opener": "unresolved reference (unknown namespace entry · undeclared inputs/const/secrets/with key)",
      "meta": {
        "category": "variable_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-002",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-002",
      "url": "/language/errors/NIKA-VAR-002",
      "status": "ratified",
      "opener": "binding cardinality — a jq binding emitted zero or multiple values",
      "meta": {
        "category": "variable_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-003",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-003",
      "url": "/language/errors/NIKA-VAR-003",
      "status": "ratified",
      "opener": "provably-invalid path into a declared schema (static walk)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-004",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-004",
      "url": "/language/errors/NIKA-VAR-004",
      "status": "ratified",
      "opener": "jq runtime error while evaluating a binding",
      "meta": {
        "category": "variable_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-005",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-005",
      "url": "/language/errors/NIKA-VAR-005",
      "status": "ratified",
      "opener": "static expression violation — outside cel-subset/0.1 · chained relation · unknown function · non-boolean when: root · jq compile error",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-006",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-006",
      "url": "/language/errors/NIKA-VAR-006",
      "status": "ratified",
      "opener": "expression type error at evaluation — cross-type compare · non-boolean when: value · for_each over a non-array",
      "meta": {
        "category": "variable_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-007",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-007",
      "url": "/language/errors/NIKA-VAR-007",
      "status": "ratified",
      "opener": "bytes value substituted into a string position",
      "meta": {
        "category": "variable_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-008",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-008",
      "url": "/language/errors/NIKA-VAR-008",
      "status": "ratified",
      "opener": "unclosed ${{ opener",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-009",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-009",
      "url": "/language/errors/NIKA-VAR-009",
      "status": "ratified",
      "opener": "typed outputs value did not match its declared type: at run end (the output half of the callable contract)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-020",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-020",
      "url": "/language/errors/NIKA-VAR-020",
      "status": "ratified",
      "opener": "bare tasks.X is the envelope, not a value — the projection set (.output/.status/.error/.duration_ms) is closed and required (04 §namespaces · 0.103 · #75 D2)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "code:NIKA-VAR-021",
      "kind": "member",
      "set": "error-codes",
      "layer": "refusals",
      "title": "NIKA-VAR-021",
      "url": "/language/errors/NIKA-VAR-021",
      "status": "ratified",
      "opener": "a tasks.* reference outside the boundary (with: · after: · on_error.recover · an unwind task reading its producer · workflow outputs) — hoist it into with: (check --fix applies it)",
      "meta": {
        "category": "validation_error",
        "transient": false
      }
    },
    {
      "id": "edgekind:control",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "control",
      "url": "/language/edges/control",
      "anchor": "edge-control",
      "own_page": true,
      "status": "ratified",
      "opener": "an after entry · carries its gate predicate"
    },
    {
      "id": "edgekind:failure-observation",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "failure-observation",
      "url": "/language/edges/failure-observation",
      "anchor": "edge-failure-observation",
      "own_page": true,
      "status": "ratified",
      "opener": "an error read in with · flows only when the producer failed"
    },
    {
      "id": "edgekind:finally",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "finally",
      "url": "/language/edges/finally",
      "anchor": "edge-finally",
      "own_page": true,
      "status": "ratified",
      "opener": "reserved · named so the enum is complete before the trace wave gives cleanup identity",
      "meta": {
        "slot": "W5"
      }
    },
    {
      "id": "edgekind:recovery",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "recovery",
      "url": "/language/edges/recovery",
      "anchor": "edge-recovery",
      "own_page": true,
      "status": "ratified",
      "opener": "an on_error.recover reference · a parking read, not an ordering edge"
    },
    {
      "id": "edgekind:terminal-observation",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "terminal-observation",
      "url": "/language/edges/terminal-observation",
      "anchor": "edge-terminal-observation",
      "own_page": true,
      "status": "ratified",
      "opener": "a status or timing read in with · settles with the producer"
    },
    {
      "id": "edgekind:value",
      "kind": "member",
      "set": "edge-kinds",
      "layer": "flow",
      "title": "value",
      "url": "/language/edges/value",
      "anchor": "edge-value",
      "own_page": true,
      "status": "ratified",
      "opener": "a with binding referencing a task output · carries the binding name"
    },
    {
      "id": "errcat:budget_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "budget_error",
      "url": "/language/error-categories/budget_error",
      "anchor": "cat-budget_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:cancelled",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "cancelled",
      "url": "/language/error-categories/cancelled",
      "anchor": "cat-cancelled",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:internal_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "internal_error",
      "url": "/language/error-categories/internal_error",
      "anchor": "cat-internal_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": false
      }
    },
    {
      "id": "errcat:network_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "network_error",
      "url": "/language/error-categories/network_error",
      "anchor": "cat-network_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": false
      }
    },
    {
      "id": "errcat:parse_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "parse_error",
      "url": "/language/error-categories/parse_error",
      "anchor": "cat-parse_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:process_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "process_error",
      "url": "/language/error-categories/process_error",
      "anchor": "cat-process_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:provider_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "provider_error",
      "url": "/language/error-categories/provider_error",
      "anchor": "cat-provider_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:security_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "security_error",
      "url": "/language/error-categories/security_error",
      "anchor": "cat-security_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:timeout_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "timeout_error",
      "url": "/language/error-categories/timeout_error",
      "anchor": "cat-timeout_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:tool_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "tool_error",
      "url": "/language/error-categories/tool_error",
      "anchor": "cat-tool_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:validation_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "validation_error",
      "url": "/language/error-categories/validation_error",
      "anchor": "cat-validation_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errcat:variable_error",
      "kind": "member",
      "set": "error-categories",
      "layer": "refusals",
      "title": "variable_error",
      "url": "/language/error-categories/variable_error",
      "anchor": "cat-variable_error",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-AGENT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-AGENT",
      "url": "/language/error-namespaces/NIKA-AGENT",
      "anchor": "ns-NIKA-AGENT",
      "own_page": true,
      "status": "ratified",
      "opener": "agent: verb errors",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-ASSERT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-ASSERT",
      "url": "/language/error-namespaces/NIKA-ASSERT",
      "anchor": "ns-NIKA-ASSERT",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-AUTH",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-AUTH",
      "url": "/language/error-namespaces/NIKA-AUTH",
      "anchor": "ns-NIKA-AUTH",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-BUILTIN",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-BUILTIN",
      "url": "/language/error-namespaces/NIKA-BUILTIN",
      "anchor": "ns-NIKA-BUILTIN",
      "own_page": true,
      "status": "ratified",
      "opener": "Builtin tool errors · per-builtin sub-namespace",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-CANCEL",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-CANCEL",
      "url": "/language/error-namespaces/NIKA-CANCEL",
      "anchor": "ns-NIKA-CANCEL",
      "own_page": true,
      "status": "ratified",
      "opener": "Task or workflow cancellation",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-COMP",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-COMP",
      "url": "/language/error-namespaces/NIKA-COMP",
      "anchor": "ns-NIKA-COMP",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-DAG",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-DAG",
      "url": "/language/error-namespaces/NIKA-DAG",
      "anchor": "ns-NIKA-DAG",
      "own_page": true,
      "status": "ratified",
      "opener": "DAG topology · cycles · invalid deps",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-DECIDE",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-DECIDE",
      "url": "/language/error-namespaces/NIKA-DECIDE",
      "anchor": "ns-NIKA-DECIDE",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-DEFAULT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-DEFAULT",
      "url": "/language/error-namespaces/NIKA-DEFAULT",
      "anchor": "ns-NIKA-DEFAULT",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-DRIFT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-DRIFT",
      "url": "/language/error-namespaces/NIKA-DRIFT",
      "anchor": "ns-NIKA-DRIFT",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-EXEC",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-EXEC",
      "url": "/language/error-namespaces/NIKA-EXEC",
      "anchor": "ns-NIKA-EXEC",
      "own_page": true,
      "status": "ratified",
      "opener": "exec: verb errors",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-IMPL",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-IMPL",
      "url": "/language/error-namespaces/NIKA-IMPL",
      "anchor": "ns-NIKA-IMPL",
      "own_page": true,
      "status": "ratified",
      "opener": "Engine internal errors",
      "meta": {
        "witnessed": false
      }
    },
    {
      "id": "errns:NIKA-INFER",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-INFER",
      "url": "/language/error-namespaces/NIKA-INFER",
      "anchor": "ns-NIKA-INFER",
      "own_page": true,
      "status": "ratified",
      "opener": "infer: verb errors",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-INVOKE",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-INVOKE",
      "url": "/language/error-namespaces/NIKA-INVOKE",
      "anchor": "ns-NIKA-INVOKE",
      "own_page": true,
      "status": "ratified",
      "opener": "invoke: verb errors",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-LOCK",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-LOCK",
      "url": "/language/error-namespaces/NIKA-LOCK",
      "anchor": "ns-NIKA-LOCK",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-MCP",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-MCP",
      "url": "/language/error-namespaces/NIKA-MCP",
      "anchor": "ns-NIKA-MCP",
      "own_page": true,
      "status": "ratified",
      "opener": "MCP client errors",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-PARSE",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-PARSE",
      "url": "/language/error-namespaces/NIKA-PARSE",
      "anchor": "ns-NIKA-PARSE",
      "own_page": true,
      "status": "ratified",
      "opener": "YAML parse + envelope validation",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-PORT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-PORT",
      "url": "/language/error-namespaces/NIKA-PORT",
      "anchor": "ns-NIKA-PORT",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-PROVIDER",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-PROVIDER",
      "url": "/language/error-namespaces/NIKA-PROVIDER",
      "anchor": "ns-NIKA-PROVIDER",
      "own_page": true,
      "status": "ratified",
      "opener": "Provider adapter errors",
      "meta": {
        "witnessed": false
      }
    },
    {
      "id": "errns:NIKA-SEC",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-SEC",
      "url": "/language/error-namespaces/NIKA-SEC",
      "anchor": "ns-NIKA-SEC",
      "own_page": true,
      "status": "ratified",
      "opener": "Security policy violations (SSRF · blocklist)",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-TIMEOUT",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-TIMEOUT",
      "url": "/language/error-namespaces/NIKA-TIMEOUT",
      "anchor": "ns-NIKA-TIMEOUT",
      "own_page": true,
      "status": "ratified",
      "opener": "Task or step timeouts",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-TYPE",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-TYPE",
      "url": "/language/error-namespaces/NIKA-TYPE",
      "anchor": "ns-NIKA-TYPE",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-VALUES",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-VALUES",
      "url": "/language/error-namespaces/NIKA-VALUES",
      "anchor": "ns-NIKA-VALUES",
      "own_page": true,
      "status": "ratified",
      "opener": null,
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "errns:NIKA-VAR",
      "kind": "member",
      "set": "error-namespaces",
      "layer": "refusals",
      "title": "NIKA-VAR",
      "url": "/language/error-namespaces/NIKA-VAR",
      "anchor": "ns-NIKA-VAR",
      "own_page": true,
      "status": "ratified",
      "opener": "Variable resolution failures",
      "meta": {
        "witnessed": true
      }
    },
    {
      "id": "family:core",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "core",
      "url": "/language/families/core",
      "anchor": "core",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "family:data",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "data",
      "url": "/language/families/data",
      "anchor": "data",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "family:file",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "file",
      "url": "/language/families/file",
      "anchor": "file",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "family:introspection",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "introspection",
      "url": "/language/families/introspection",
      "anchor": "introspection",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "family:media",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "media",
      "url": "/language/families/media",
      "anchor": "media",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "family:network",
      "kind": "member",
      "set": "tool-families",
      "layer": "reach",
      "title": "network",
      "url": "/language/families/network",
      "anchor": "network",
      "own_page": true,
      "status": "shipped",
      "opener": null
    },
    {
      "id": "layer:acts",
      "kind": "layer",
      "title": "The acts",
      "url": "/language/verbs",
      "status": "both",
      "opener": "A verb is a distinct native execution model: infer thinks, exec runs, invoke calls a tool, agent loops with judgment. The set is closed by design · everything callable is a tool under invoke.",
      "exists": true,
      "lands": null,
      "order": 2
    },
    {
      "id": "layer:boundary",
      "kind": "layer",
      "title": "The boundary",
      "url": "/how/boundary",
      "status": "both",
      "opener": "The file declares its blast radius. Permits allowlist what runs, reads, writes and calls · secrets stay masked references. Absent means the engine floor, present means default-deny.",
      "exists": true,
      "lands": null,
      "order": 4
    },
    {
      "id": "layer:flow",
      "kind": "layer",
      "title": "The flow",
      "url": "/how/flow",
      "status": "both",
      "opener": "Tasks link through two doors: with binds values, after orders effects. The engine reads those bindings and builds the run graph · nothing else creates an edge.",
      "exists": true,
      "lands": null,
      "order": 1
    },
    {
      "id": "layer:proof",
      "kind": "layer",
      "title": "The proof",
      "url": "/how/proof",
      "status": "both",
      "opener": "A run you can verify, a graph you can read. The proof layer is how Nika shows its work: the run graph, the hash-chained trace, the conformance suite that re-proves every claim.",
      "exists": true,
      "lands": null,
      "order": 6
    },
    {
      "id": "layer:reach",
      "kind": "layer",
      "title": "The reach",
      "url": "/language/stdlib",
      "status": "both",
      "opener": "Reach is what a workflow can touch: the standard library, the model providers, the routing skeletons. Every capability is named, cataloged and versioned · nothing arrives by plugin.",
      "exists": true,
      "lands": null,
      "order": 3,
      "sibling_hubs": [
        "/catalog/providers",
        "/workflows/skeletons"
      ]
    },
    {
      "id": "layer:refusals",
      "kind": "layer",
      "title": "The refusals",
      "url": "/language/errors",
      "status": "both",
      "opener": "Every refusal has a name. Errors are data: stable codes with a category, a transient flag and a documented fix shape · never prose exceptions.",
      "exists": true,
      "lands": null,
      "order": 5
    },
    {
      "id": "layer:shape",
      "kind": "layer",
      "title": "The shape",
      "url": "/language",
      "status": "both",
      "opener": "The shape layer is every word an author can type: the envelope, the task grammar, the namespaces that scope every value. If a key is not declared here, it is not Nika.",
      "exists": true,
      "lands": null,
      "order": 0
    },
    {
      "id": "level:core",
      "kind": "member",
      "set": "conformance-levels",
      "layer": "proof",
      "title": "core",
      "url": "/language/conformance/core",
      "anchor": "level-core",
      "own_page": true,
      "status": "ratified",
      "opener": "parse · validate · DAG · variables · typed errors · no execution"
    },
    {
      "id": "level:runtime",
      "kind": "member",
      "set": "conformance-levels",
      "layer": "proof",
      "title": "runtime",
      "url": "/language/conformance/runtime",
      "anchor": "level-runtime",
      "own_page": true,
      "status": "ratified",
      "opener": "executes verbs · evaluates when and for_each over run state"
    },
    {
      "id": "level:stdlib",
      "kind": "member",
      "set": "conformance-levels",
      "layer": "proof",
      "title": "stdlib",
      "url": "/language/conformance/stdlib",
      "anchor": "level-stdlib",
      "own_page": true,
      "status": "ratified",
      "opener": "proves the v0.1 library surface · the production default"
    },
    {
      "id": "mcp:nika_canon",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_canon",
      "url": "/how/oracle/nika_canon",
      "anchor": "mcp-nika_canon",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_catalog",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_catalog",
      "url": "/how/oracle/nika_catalog",
      "anchor": "mcp-nika_catalog",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_check",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_check",
      "url": "/how/oracle/nika_check",
      "anchor": "mcp-nika_check",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_examples",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_examples",
      "url": "/how/oracle/nika_examples",
      "anchor": "mcp-nika_examples",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_explain",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_explain",
      "url": "/how/oracle/nika_explain",
      "anchor": "mcp-nika_explain",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_inspect",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_inspect",
      "url": "/how/oracle/nika_inspect",
      "anchor": "mcp-nika_inspect",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_schema",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_schema",
      "url": "/how/oracle/nika_schema",
      "anchor": "mcp-nika_schema",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_template",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_template",
      "url": "/how/oracle/nika_template",
      "anchor": "mcp-nika_template",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mcp:nika_tools",
      "kind": "member",
      "set": "mcp-tools",
      "layer": "proof",
      "title": "nika_tools",
      "url": "/how/oracle/nika_tools",
      "anchor": "mcp-nika_tools",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:article",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "article",
      "url": "/language/modes/article",
      "anchor": "mode-article",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:feed",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "feed",
      "url": "/language/modes/feed",
      "anchor": "mode-feed",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:jq",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "jq",
      "url": "/language/modes/jq",
      "anchor": "mode-jq",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:links",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "links",
      "url": "/language/modes/links",
      "anchor": "mode-links",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:markdown",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "markdown",
      "url": "/language/modes/markdown",
      "anchor": "mode-markdown",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:metadata",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "metadata",
      "url": "/language/modes/metadata",
      "anchor": "mode-metadata",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:selector",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "selector",
      "url": "/language/modes/selector",
      "anchor": "mode-selector",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:sitemap",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "sitemap",
      "url": "/language/modes/sitemap",
      "anchor": "mode-sitemap",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "mode:text",
      "kind": "member",
      "set": "extract-modes",
      "layer": "reach",
      "title": "text",
      "url": "/language/modes/text",
      "anchor": "mode-text",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "ns:const",
      "kind": "member",
      "set": "namespaces",
      "layer": "shape",
      "title": "const",
      "url": "/language/namespaces/const",
      "anchor": "ns-const",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "ns:inputs",
      "kind": "member",
      "set": "namespaces",
      "layer": "shape",
      "title": "inputs",
      "url": "/language/namespaces/inputs",
      "anchor": "ns-inputs",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "ns:secrets",
      "kind": "member",
      "set": "namespaces",
      "layer": "shape",
      "title": "secrets",
      "url": "/language/namespaces/secrets",
      "anchor": "ns-secrets",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "ns:tasks",
      "kind": "member",
      "set": "namespaces",
      "layer": "shape",
      "title": "tasks",
      "url": "/language/namespaces/tasks",
      "anchor": "ns-tasks",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "ns:with",
      "kind": "member",
      "set": "namespaces",
      "layer": "shape",
      "title": "with",
      "url": "/language/namespaces/with",
      "anchor": "ns-with",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "permit:env",
      "kind": "member",
      "set": "permit-families",
      "layer": "boundary",
      "title": "env",
      "url": "/language/permits/env",
      "anchor": "env",
      "own_page": true,
      "status": "ratified",
      "opener": "exact env names a child may see · never inherited, never a glob"
    },
    {
      "id": "permit:exec",
      "kind": "member",
      "set": "permit-families",
      "layer": "boundary",
      "title": "exec",
      "url": "/language/permits/exec",
      "anchor": "exec",
      "own_page": true,
      "status": "ratified",
      "opener": "which commands may run · false kills the family"
    },
    {
      "id": "permit:fs",
      "kind": "member",
      "set": "permit-families",
      "layer": "boundary",
      "title": "fs",
      "url": "/language/permits/fs",
      "anchor": "fs",
      "own_page": true,
      "status": "ratified",
      "opener": "read and write globs · the walk root is gated"
    },
    {
      "id": "permit:net",
      "kind": "member",
      "set": "permit-families",
      "layer": "boundary",
      "title": "net",
      "url": "/language/permits/net",
      "anchor": "net",
      "own_page": true,
      "status": "ratified",
      "opener": "http allowlist · the SSRF floor stays on regardless"
    },
    {
      "id": "permit:tools",
      "kind": "member",
      "set": "permit-families",
      "layer": "boundary",
      "title": "tools",
      "url": "/language/permits/tools",
      "anchor": "tools",
      "own_page": true,
      "status": "ratified",
      "opener": "which nika tools the file may invoke"
    },
    {
      "id": "post:anatomy-of-a-verb",
      "kind": "surface",
      "title": "Anatomy of a verb",
      "url": "/blog/anatomy-of-a-verb",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:blast-radius-in-the-file",
      "kind": "surface",
      "title": "The blast radius is part of the file",
      "url": "/blog/blast-radius-in-the-file",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:dag-for-free",
      "kind": "surface",
      "title": "The plan you get for free",
      "url": "/blog/dag-for-free",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:four-verbs",
      "kind": "surface",
      "title": "Four verbs are enough",
      "url": "/blog/four-verbs",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:injection-goes-nowhere",
      "kind": "surface",
      "title": "The prompt injection that goes nowhere",
      "url": "/blog/injection-goes-nowhere",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:intent-as-code",
      "kind": "surface",
      "title": "Intent as Code: why your AI work should be a file",
      "url": "/blog/intent-as-code",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:media-are-workflow-citizens",
      "kind": "surface",
      "title": "Media are workflow citizens",
      "url": "/blog/media-are-workflow-citizens",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:one-wire-five-servers",
      "kind": "surface",
      "title": "One wire, five servers",
      "url": "/blog/one-wire-five-servers",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:standard-library-not-plugin-store",
      "kind": "surface",
      "title": "A standard library, not a plugin store",
      "url": "/blog/standard-library-not-plugin-store",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-agent-workflow-spectrum",
      "kind": "surface",
      "title": "The agent workflow spectrum",
      "url": "/blog/the-agent-workflow-spectrum",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-editor-tells-the-truth",
      "kind": "surface",
      "title": "The editor tells the truth",
      "url": "/blog/the-editor-tells-the-truth",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-generative-workflow",
      "kind": "surface",
      "title": "The generative ai workflow, minus the mystery",
      "url": "/blog/the-generative-workflow",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-mcp-server-you-didnt-build",
      "kind": "surface",
      "title": "The MCP server you didn't have to build",
      "url": "/blog/the-mcp-server-you-didnt-build",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-one-task-rerun",
      "kind": "surface",
      "title": "The one-task re-run",
      "url": "/blog/the-one-task-rerun",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-pipeline-is-a-file",
      "kind": "surface",
      "title": "The pipeline is a file",
      "url": "/blog/the-pipeline-is-a-file",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-run-that-waits",
      "kind": "surface",
      "title": "The run that waits for you",
      "url": "/blog/the-run-that-waits",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-secrets-line",
      "kind": "surface",
      "title": "The secrets line",
      "url": "/blog/the-secrets-line",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:the-trace-you-can-replay",
      "kind": "surface",
      "title": "The trace you can replay",
      "url": "/blog/the-trace-you-can-replay",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "post:written-by-agents",
      "kind": "surface",
      "title": "Written by agents, reviewed by you",
      "url": "/blog/written-by-agents",
      "status": "both",
      "opener": null,
      "exists": true
    },
    {
      "id": "predicate:failure",
      "kind": "member",
      "set": "gate-predicates",
      "layer": "flow",
      "title": "failure",
      "url": "/language/predicates/failure",
      "anchor": "predicate-failure",
      "own_page": true,
      "status": "ratified",
      "opener": "fire when the producer failed terminally"
    },
    {
      "id": "predicate:skipped",
      "kind": "member",
      "set": "gate-predicates",
      "layer": "flow",
      "title": "skipped",
      "url": "/language/predicates/skipped",
      "anchor": "predicate-skipped",
      "own_page": true,
      "status": "ratified",
      "opener": "fire when the producer was gated out"
    },
    {
      "id": "predicate:success",
      "kind": "member",
      "set": "gate-predicates",
      "layer": "flow",
      "title": "success",
      "url": "/language/predicates/success",
      "anchor": "predicate-success",
      "own_page": true,
      "status": "ratified",
      "opener": "fire when the producer completed clean"
    },
    {
      "id": "predicate:terminal",
      "kind": "member",
      "set": "gate-predicates",
      "layer": "flow",
      "title": "terminal",
      "url": "/language/predicates/terminal",
      "anchor": "predicate-terminal",
      "own_page": true,
      "status": "ratified",
      "opener": "fire when the producer reached any terminal state"
    },
    {
      "id": "provider:anthropic",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Anthropic Claude",
      "url": "/catalog/providers/anthropic",
      "anchor": "anthropic",
      "own_page": true,
      "status": "both",
      "opener": "Claude models (Opus, Sonnet, Haiku).",
      "meta": {
        "kind": "cloud",
        "dialect": "anthropic"
      }
    },
    {
      "id": "provider:deepseek",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "DeepSeek",
      "url": "/catalog/providers/deepseek",
      "anchor": "deepseek",
      "own_page": true,
      "status": "both",
      "opener": "DeepSeek Chat and Coder models.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:gemini",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Google Gemini",
      "url": "/catalog/providers/gemini",
      "anchor": "gemini",
      "own_page": true,
      "status": "both",
      "opener": "Gemini Pro, Flash, and Ultra models.",
      "meta": {
        "kind": "cloud",
        "dialect": "gemini"
      }
    },
    {
      "id": "provider:groq",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Groq",
      "url": "/catalog/providers/groq",
      "anchor": "groq",
      "own_page": true,
      "status": "both",
      "opener": "Fast inference with Llama, Mixtral models.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:huggingface",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Hugging Face",
      "url": "/catalog/providers/huggingface",
      "anchor": "huggingface",
      "own_page": true,
      "status": "both",
      "opener": "Inference Providers router · 100+ open-weight models across 18 providers (Groq · Cerebras · Together · Scaleway · OVHcloud · …) · zero markup · :provider or :fastest/:cheapest routing suffix.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:llamacpp",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "llama.cpp",
      "url": "/catalog/providers/llamacpp",
      "anchor": "llamacpp",
      "own_page": true,
      "status": "both",
      "opener": "llama.cpp server (default port 8080) — serves the loaded GGUF; the wire model id is free-form.",
      "meta": {
        "kind": "local",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:lmstudio",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "LM Studio",
      "url": "/catalog/providers/lmstudio",
      "anchor": "lmstudio",
      "own_page": true,
      "status": "both",
      "opener": "LM Studio local server (default port 1234) — serves the loaded model.",
      "meta": {
        "kind": "local",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:localai",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "LocalAI",
      "url": "/catalog/providers/localai",
      "anchor": "localai",
      "own_page": true,
      "status": "both",
      "opener": "LocalAI server (default port 8080) — an OpenAI-compatible gateway over local backends.",
      "meta": {
        "kind": "local",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:mistral",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Mistral AI",
      "url": "/catalog/providers/mistral",
      "anchor": "mistral",
      "own_page": true,
      "status": "both",
      "opener": "Mistral Large, Medium, Small models.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:mock",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Mock",
      "url": "/catalog/providers/mock",
      "anchor": "mock",
      "own_page": true,
      "status": "both",
      "opener": "Deterministic test responses — no API calls, no keys needed.",
      "meta": {
        "kind": "test",
        "dialect": "mock"
      }
    },
    {
      "id": "provider:moonshot",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Moonshot (Kimi)",
      "url": "/catalog/providers/moonshot",
      "anchor": "moonshot",
      "own_page": true,
      "status": "both",
      "opener": "Moonshot AI — Kimi K2, K2.5 (international endpoint api.moonshot.ai/v1). rig-core native provider.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:nvidia",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "NVIDIA",
      "url": "/catalog/providers/nvidia",
      "anchor": "nvidia",
      "own_page": true,
      "status": "both",
      "opener": "NVIDIA API (integrate.api.nvidia.com) · Nemotron 3 family (Open Model License · agentic-first) + hosted open models · self-hosted NIM containers expose the same surface.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:ollama",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "Ollama",
      "url": "/catalog/providers/ollama",
      "anchor": "ollama",
      "own_page": true,
      "status": "both",
      "opener": "Local Ollama server (default port 11434) — serves any pulled model.",
      "meta": {
        "kind": "local",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:openai",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "OpenAI",
      "url": "/catalog/providers/openai",
      "anchor": "openai",
      "own_page": true,
      "status": "both",
      "opener": "GPT-5.x, the o-series, and other OpenAI models.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:openrouter",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "OpenRouter",
      "url": "/catalog/providers/openrouter",
      "anchor": "openrouter",
      "own_page": true,
      "status": "both",
      "opener": "200+ models via unified gateway.",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:vllm",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "vLLM",
      "url": "/catalog/providers/vllm",
      "anchor": "vllm",
      "own_page": true,
      "status": "both",
      "opener": "vLLM server (default port 8000) — serves Hugging Face model ids at throughput.",
      "meta": {
        "kind": "local",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "provider:xai",
      "kind": "member",
      "set": "providers",
      "layer": "reach",
      "title": "xAI Grok",
      "url": "/catalog/providers/xai",
      "anchor": "xai",
      "own_page": true,
      "status": "both",
      "opener": "Grok models (Grok-3, Grok-4).",
      "meta": {
        "kind": "cloud",
        "dialect": "openai-chat"
      }
    },
    {
      "id": "secret:env",
      "kind": "member",
      "set": "secret-sources",
      "layer": "boundary",
      "title": "env",
      "url": "/language/secrets/env",
      "anchor": "secret-env",
      "own_page": true,
      "status": "ratified",
      "opener": "read from the environment at run time"
    },
    {
      "id": "secret:file",
      "kind": "member",
      "set": "secret-sources",
      "layer": "boundary",
      "title": "file",
      "url": "/language/secrets/file",
      "anchor": "secret-file",
      "own_page": true,
      "status": "ratified",
      "opener": "read from a path the boundary allows"
    },
    {
      "id": "secret:vault",
      "kind": "member",
      "set": "secret-sources",
      "layer": "boundary",
      "title": "vault",
      "url": "/language/secrets/vault",
      "anchor": "secret-vault",
      "own_page": true,
      "status": "ratified",
      "opener": "the OS keychain backend · the default posture"
    },
    {
      "id": "set:builtins",
      "kind": "set",
      "layer": "reach",
      "title": "The standard library",
      "url": "/language/stdlib/:bare",
      "status": "ratified",
      "opener": "Every nika tool the engine ships, each with a JSON Schema for its args. No plugin store · capability is versioned with the engine and granted per file by the boundary.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "rooms",
      "clock": "both",
      "page_exists": true,
      "rooms_base_exists": true
    },
    {
      "id": "set:conformance-levels",
      "kind": "set",
      "layer": "proof",
      "title": "The conformance levels",
      "url": "/how/proof",
      "status": "ratified",
      "opener": "Conformance nests: core parses and validates, runtime executes, stdlib proves the library. A higher level includes every lower one · the fixtures are the contract, not the prose.",
      "closed": true,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:edge-kinds",
      "kind": "set",
      "layer": "flow",
      "title": "The edge kinds",
      "url": "/how/flow",
      "status": "ratified",
      "opener": "The run graph speaks a closed set of edge kinds: value bindings, the two observations, control, recovery and the reserved finally. Unknown kinds are reader-tolerated by law · new ones arrive with the spec.",
      "closed": true,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:error-categories",
      "kind": "set",
      "layer": "refusals",
      "title": "The error categories",
      "url": "/language/errors",
      "status": "ratified",
      "opener": "A category names the kind of failure, orthogonal to the namespace that raised it. Transient categories are retry candidates · the rest are contract refusals that no retry will fix.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": false
    },
    {
      "id": "set:error-codes",
      "kind": "set",
      "layer": "refusals",
      "title": "The error codes",
      "url": "/language/errors/:code",
      "status": "ratified",
      "opener": "Every failure the engine can name, as data: a stable code with a category and a transient flag. If the engine can refuse it, the refusal has a name you can retry on, route on and search.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "rooms",
      "clock": "spec",
      "page_exists": true,
      "rooms_base_exists": true
    },
    {
      "id": "set:error-namespaces",
      "kind": "set",
      "layer": "refusals",
      "title": "The error namespaces",
      "url": "/language/errors",
      "status": "ratified",
      "opener": "Codes group by namespace, one per surface of the engine: parse, DAG, variables, security, each verb and the machine seams. A namespace can exist before its first code ships · the register says so out loud.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": false
    },
    {
      "id": "set:extract-modes",
      "kind": "set",
      "layer": "reach",
      "title": "The extract modes",
      "url": "/language/stdlib/fetch",
      "status": "ratified",
      "opener": "nika fetch extracts structure, not just bytes. Each mode is a named contract with a defined output shape · the modes anchor inside the fetch room because that is where an author meets them.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:gate-predicates",
      "kind": "set",
      "layer": "flow",
      "title": "The gate predicates",
      "url": "/how/flow",
      "status": "ratified",
      "opener": "An after entry gates on producer state: success, failure, skipped or terminal. The full producer-status by predicate matrix is fixture-proven upstream · the site replays it, never re-derives it.",
      "closed": true,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:mcp-tools",
      "kind": "set",
      "layer": "proof",
      "title": "The oracle tools",
      "url": "/how/proof",
      "status": "ratified",
      "opener": "The read-only oracle an agent loads: check, explain, schema, examples and the rest of the register. The same truth the CLI speaks, served over MCP · nothing here mutates anything.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:namespaces",
      "kind": "set",
      "layer": "shape",
      "title": "The namespaces",
      "url": "/language",
      "status": "ratified",
      "opener": "Each namespace scopes where a value lives and who may read it: inputs for what the caller supplies (a deployment default is an input with required: false), const for fixed values, with for bindings, tasks for outputs, secrets for the boundary. A reference outside its scope is a check finding, never a surprise at runtime.",
      "closed": true,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": false
    },
    {
      "id": "set:permit-families",
      "kind": "set",
      "layer": "boundary",
      "title": "The permit families",
      "url": "/how/boundary",
      "status": "ratified",
      "opener": "Permits fence a run by family: exec for processes, fs for reads and writes, net for the wire, tools for the library, env for the names a child process inherits. Absent means the engine floor · present means default-deny.",
      "closed": true,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:providers",
      "kind": "set",
      "layer": "reach",
      "title": "The providers",
      "url": "/catalog/providers",
      "status": "shipped",
      "opener": "Model access is provider-agnostic and local-first: the same file runs on a laptop runtime or a cloud API. Each provider declares its env var, its dialect and its models · the file picks, never the vendor.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "anchors",
      "clock": "release",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:secret-sources",
      "kind": "set",
      "layer": "boundary",
      "title": "The secret sources",
      "url": "/how/boundary",
      "status": "ratified",
      "opener": "A secret is a masked reference, never a literal: it resolves from vault, env or file at run time and stays masked in every log and every trace the run leaves behind.",
      "closed": true,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:showcases",
      "kind": "set",
      "layer": "proof",
      "title": "The showcases",
      "url": "/workflows/jobs/:slug",
      "status": "ratified",
      "opener": "Real workflows, whole files: each showcase passes the spec conformance gate and ships with its graph. This is the language at work on real jobs, not a demo reel.",
      "closed": false,
      "counted_in_canon": false,
      "surface": "rooms",
      "clock": "spec",
      "page_exists": true,
      "rooms_base_exists": true
    },
    {
      "id": "set:templates",
      "kind": "set",
      "layer": "reach",
      "title": "The templates",
      "url": "/workflows/skeletons/:name",
      "status": "ratified",
      "opener": "Routing skeletons for real work: each template is sha-pinned, conformance-checked and grants exactly the tools it needs. Copy one and the provenance travels with it.",
      "closed": false,
      "counted_in_canon": true,
      "surface": "rooms",
      "clock": "spec",
      "page_exists": true,
      "rooms_base_exists": true
    },
    {
      "id": "set:tool-families",
      "kind": "set",
      "layer": "reach",
      "title": "The tool families",
      "url": "/language/stdlib",
      "status": "shipped",
      "opener": "The library groups by intent: core, file, data, introspection, network, media. Families are anchors on the hub · each lists its members with their one-line contracts.",
      "closed": false,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "release",
      "page_exists": true,
      "anchors_exist": false
    },
    {
      "id": "set:truth-words",
      "kind": "set",
      "layer": "proof",
      "title": "The truth words",
      "url": "/truth",
      "status": "ratified",
      "opener": "The vocabulary of how this site tells the truth: spec, canon, schema, pack, pin, catalog, mirror, registry, manifest, lens. Each word has exactly one meaning · confusing two of them is a prose bug.",
      "closed": false,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": true
    },
    {
      "id": "set:types",
      "kind": "set",
      "layer": "shape",
      "title": "The types",
      "url": "/language",
      "status": "ratified",
      "opener": "Typed contracts for task outputs: returns and decode, written inline · the closed primitive grammar below is the whole register since 0.109 (a named `types:` block resolves to nothing; spec/09-types.md).",
      "closed": false,
      "counted_in_canon": false,
      "surface": "anchors",
      "clock": "spec",
      "page_exists": true,
      "anchors_exist": false
    },
    {
      "id": "set:verbs",
      "kind": "set",
      "layer": "acts",
      "title": "The four verbs",
      "url": "/language/verbs/:name",
      "status": "ratified",
      "opener": "infer thinks, exec runs, invoke calls a tool, agent loops with judgment. A verb is a distinct native execution model and the set is closed · everything callable is a tool under invoke.",
      "closed": true,
      "counted_in_canon": true,
      "surface": "rooms",
      "clock": "spec",
      "page_exists": true,
      "rooms_base_exists": true
    },
    {
      "id": "set:words",
      "kind": "set",
      "layer": "shape",
      "title": "The language words",
      "url": "/language/words/:word",
      "status": "ratified",
      "opener": "Every key an author can type in a workflow file, each scoped to the surface where it speaks. The schema declares them · the register lists them all · each room shows the word at work.",
      "closed": false,
      "counted_in_canon": false,
      "surface": "rooms",
      "clock": "spec",
      "page_exists": true,
      "rooms_base_exists": false,
      "anchor_page": "/language"
    },
    {
      "id": "showcase:bookmark-triage",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "bookmark-triage",
      "url": "/workflows/jobs/bookmark-triage",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 3
      }
    },
    {
      "id": "showcase:ceo-monday-brief",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "ceo-monday-brief",
      "url": "/workflows/jobs/ceo-monday-brief",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 7
      }
    },
    {
      "id": "showcase:competitor-radar",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "competitor-radar",
      "url": "/workflows/jobs/competitor-radar",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 8
      }
    },
    {
      "id": "showcase:config-drift-sentinel",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "config-drift-sentinel",
      "url": "/workflows/jobs/config-drift-sentinel",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 6
      }
    },
    {
      "id": "showcase:contract-guard",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "contract-guard",
      "url": "/workflows/jobs/contract-guard",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 6
      }
    },
    {
      "id": "showcase:corpus-digest",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "corpus-digest",
      "url": "/workflows/jobs/corpus-digest",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 6
      }
    },
    {
      "id": "showcase:csv-chart-report",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "csv-chart-report",
      "url": "/workflows/jobs/csv-chart-report",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 5
      }
    },
    {
      "id": "showcase:deep-research-brief",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "deep-research-brief",
      "url": "/workflows/jobs/deep-research-brief",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 4
      }
    },
    {
      "id": "showcase:etl-quarantine",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "etl-quarantine",
      "url": "/workflows/jobs/etl-quarantine",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 5
      }
    },
    {
      "id": "showcase:image-fx-batch",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "image-fx-batch",
      "url": "/workflows/jobs/image-fx-batch",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 3
      }
    },
    {
      "id": "showcase:incident-war-room",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "incident-war-room",
      "url": "/workflows/jobs/incident-war-room",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 9
      }
    },
    {
      "id": "showcase:invoice-chaser",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "invoice-chaser",
      "url": "/workflows/jobs/invoice-chaser",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 6
      }
    },
    {
      "id": "showcase:localization-factory",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "localization-factory",
      "url": "/workflows/jobs/localization-factory",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 6
      }
    },
    {
      "id": "showcase:meeting-actions",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "meeting-actions",
      "url": "/workflows/jobs/meeting-actions",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 4
      }
    },
    {
      "id": "showcase:model-bench",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "model-bench",
      "url": "/workflows/jobs/model-bench",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 3
      }
    },
    {
      "id": "showcase:og-images",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "og-images",
      "url": "/workflows/jobs/og-images",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 1
      }
    },
    {
      "id": "showcase:pr-review-fanout",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "pr-review-fanout",
      "url": "/workflows/jobs/pr-review-fanout",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 7
      }
    },
    {
      "id": "showcase:price-watch",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "price-watch",
      "url": "/workflows/jobs/price-watch",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 2
      }
    },
    {
      "id": "showcase:release-notes",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "release-notes",
      "url": "/workflows/jobs/release-notes",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 5
      }
    },
    {
      "id": "showcase:release-radar",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "release-radar",
      "url": "/workflows/jobs/release-radar",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 5
      }
    },
    {
      "id": "showcase:release-train",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "release-train",
      "url": "/workflows/jobs/release-train",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 13
      }
    },
    {
      "id": "showcase:resume-screener",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "resume-screener",
      "url": "/workflows/jobs/resume-screener",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 8
      }
    },
    {
      "id": "showcase:seo-content-brief",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "seo-content-brief",
      "url": "/workflows/jobs/seo-content-brief",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 4
      }
    },
    {
      "id": "showcase:social-repurpose",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "social-repurpose",
      "url": "/workflows/jobs/social-repurpose",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 3
      }
    },
    {
      "id": "showcase:standup-digest",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "standup-digest",
      "url": "/workflows/jobs/standup-digest",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 3
      }
    },
    {
      "id": "showcase:support-triage",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "support-triage",
      "url": "/workflows/jobs/support-triage",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 4
      }
    },
    {
      "id": "showcase:transcript-shownotes",
      "kind": "member",
      "set": "showcases",
      "layer": "proof",
      "title": "transcript-shownotes",
      "url": "/workflows/jobs/transcript-shownotes",
      "status": "ratified",
      "opener": null,
      "meta": {
        "tier": null,
        "waves": 4
      }
    },
    {
      "id": "surface:governance-lens",
      "kind": "surface",
      "title": "How the standard changes",
      "url": "/language/governance",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "surface:home",
      "kind": "surface",
      "title": "Home",
      "url": "/",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "surface:map",
      "kind": "surface",
      "title": "The map",
      "url": "/map",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "surface:sitemap-legacy",
      "kind": "surface",
      "title": "sitemap-legacy",
      "url": "/sitemap",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "surface:sources",
      "kind": "surface",
      "title": "The truth system",
      "url": "/truth",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "surface:spec-lens",
      "kind": "surface",
      "title": "The spec at a glance",
      "url": "/language/spec",
      "status": "both",
      "opener": null,
      "exists": true,
      "lands": null
    },
    {
      "id": "template:agent-loop",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "agent-loop",
      "url": "/workflows/skeletons/agent-loop",
      "status": "ratified",
      "opener": "research / review / open-ended",
      "meta": {
        "sha256": "5ded8b7dbdc23065d47ed48f32e8072ac74765cdde30101b2b03d6b5a59992da",
        "file": "agent-loop.nika.yaml"
      }
    },
    {
      "id": "template:api-upload-and-create",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "api-upload-and-create",
      "url": "/workflows/skeletons/api-upload-and-create",
      "status": "ratified",
      "opener": "call a product API: upload a file and create from it",
      "meta": {
        "sha256": "e823c5f3d2b8935c31eb69a87ec4367b11cef285a0198c164a213a6801e12f54",
        "file": "api-upload-and-create.nika.yaml"
      }
    },
    {
      "id": "template:chain",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "chain",
      "url": "/workflows/skeletons/chain",
      "status": "ratified",
      "opener": "take data, produce words, save them",
      "meta": {
        "sha256": "68c26c13060fce2279634f0640ccacd054f65f04b00a583ae1b73568e494d624",
        "file": "chain.nika.yaml"
      }
    },
    {
      "id": "template:docker-report",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "docker-report",
      "url": "/workflows/skeletons/docker-report",
      "status": "ratified",
      "opener": "read a system's state (docker · kubectl · gh), explain it, keep the report",
      "meta": {
        "sha256": "d90e7384122ba0f78e1b8a97d2c0cc8d506d8d151c5d468eedea580f1d8b6d12",
        "file": "docker-report.nika.yaml"
      }
    },
    {
      "id": "template:etl-state",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "etl-state",
      "url": "/workflows/skeletons/etl-state",
      "status": "ratified",
      "opener": "only what changed since last run · survive bad input",
      "meta": {
        "sha256": "f58cc453b0441dfe99f12438620dfea0739b26128b9c38f3923588e55953419f",
        "file": "etl-state.nika.yaml"
      }
    },
    {
      "id": "template:fanout",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "fanout",
      "url": "/workflows/skeletons/fanout",
      "status": "ratified",
      "opener": "do this for EVERY item",
      "meta": {
        "sha256": "0de58ee20ce82d44815988767e433a340b0c4f2a7b75d8965f6ed3309c269519",
        "file": "fanout.nika.yaml"
      }
    },
    {
      "id": "template:gate-and-act",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "gate-and-act",
      "url": "/workflows/skeletons/gate-and-act",
      "status": "ratified",
      "opener": "watch X, act when Y",
      "meta": {
        "sha256": "4870c70f7a6198f86b1da8587e7e1345bbece86ce07446d74e16866cbe514610",
        "file": "gate-and-act.nika.yaml"
      }
    },
    {
      "id": "template:human-gated-ship",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "human-gated-ship",
      "url": "/workflows/skeletons/human-gated-ship",
      "status": "ratified",
      "opener": "anything irreversible (deploy · send · publish)",
      "meta": {
        "sha256": "e7f233d8d6a016003fef360b80b9ffb4cc21cce19c733f465103b38adb3b6821",
        "file": "human-gated-ship.nika.yaml"
      }
    },
    {
      "id": "template:media-asset-pack",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "media-asset-pack",
      "url": "/workflows/skeletons/media-asset-pack",
      "status": "ratified",
      "opener": "generate image/audio assets from a brief",
      "meta": {
        "sha256": "565a0b8080a077435e47474798e4e33fe31ebeea39044455170c765435466a84",
        "file": "media-asset-pack.nika.yaml"
      }
    },
    {
      "id": "template:website-brief",
      "kind": "member",
      "set": "templates",
      "layer": "reach",
      "title": "website-brief",
      "url": "/workflows/skeletons/website-brief",
      "status": "ratified",
      "opener": "understand a site (domain · theme · assets) from a URL",
      "meta": {
        "sha256": "bb0fe02ead87623166cfdd57647346344959ccc622447a7651a2209c52f19d8a",
        "file": "website-brief.nika.yaml"
      }
    },
    {
      "id": "tool:assert",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:assert",
      "url": "/language/stdlib/assert",
      "status": "both",
      "opener": "Fail-fast guard: fail the task when condition is false (else no-op).",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:chart",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:chart",
      "url": "/language/stdlib/chart",
      "status": "both",
      "opener": "Render a DETERMINISTIC chart artifact from rows + a semantic spec (bar | line | area_band | scatter | heatmap) — byte-identical SVG saved at `out`, sha256 in outputs (the trace-chain receipt) · optional Vega-Lite sibling via compile_to. Pure compute + one permit-gated write: no network, no clock, re-runs are idempotent.",
      "meta": {
        "family": "media"
      }
    },
    {
      "id": "tool:compose",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:compose",
      "url": "/language/stdlib/compose",
      "status": "both",
      "opener": "Statically check a Nika workflow draft you wrote · returns the full `nika check` verdict as JSON (conformance + secret-flow + permits + the termination/cost certificate) · NEVER executes it. Iterate until valid, then deliver the draft. Agent loops only.",
      "meta": {
        "family": "introspection"
      }
    },
    {
      "id": "tool:convert",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:convert",
      "url": "/language/stdlib/convert",
      "status": "both",
      "opener": "Convert between json·yaml·toml·csv (from/to · identity rejected).",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:date",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:date",
      "url": "/language/stdlib/date",
      "status": "both",
      "opener": "Timestamp arithmetic · op-discriminated (now|add|subtract|format|parse|diff) · strftime grammar · ISO 8601 out.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:decide",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:decide",
      "url": "/language/stdlib/decide",
      "status": "both",
      "opener": "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.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:done",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:done",
      "url": "/language/stdlib/done",
      "status": "both",
      "opener": "Mark the current agent loop complete (the loop-completion sentinel · agent loops only).",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:edit",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:edit",
      "url": "/language/stdlib/edit",
      "status": "both",
      "opener": "In-place literal find/replace (all occurrences · count caps it). NOT regex.",
      "meta": {
        "family": "file"
      }
    },
    {
      "id": "tool:emit",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:emit",
      "url": "/language/stdlib/emit",
      "status": "both",
      "opener": "Emit a custom machine event for subscribers/journal (distinct from log).",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:fetch",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:fetch",
      "url": "/language/stdlib/fetch",
      "status": "both",
      "opener": "HTTP request + content extraction · returns the extracted body (non-2xx is an error). SSRF-defended.",
      "meta": {
        "family": "network"
      }
    },
    {
      "id": "tool:glob",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:glob",
      "url": "/language/stdlib/glob",
      "status": "both",
      "opener": "Glob match · returns paths sorted lexicographically.",
      "meta": {
        "family": "file"
      }
    },
    {
      "id": "tool:grep",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:grep",
      "url": "/language/stdlib/grep",
      "status": "both",
      "opener": "Recursive regex search · returns {path,line,match} sorted by (path,line).",
      "meta": {
        "family": "file"
      }
    },
    {
      "id": "tool:hash",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:hash",
      "url": "/language/stdlib/hash",
      "status": "both",
      "opener": "Content hashing · blake3 (default) | sha256 | sha512 · hex (default) or base64.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:image_fx",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:image_fx",
      "url": "/language/stdlib/image_fx",
      "status": "both",
      "opener": "Apply deterministic artistic effects to a PNG (dither · palette · duotone · pixelate · halftone · grain · vignette · chromatic_aberration · scanlines · glitch · ascii) — byte-identical forever for identical input+args; the recipe rides the artifact (tEXt) and outputs carry path + sha256, bytes never inline.",
      "meta": {
        "family": "media"
      }
    },
    {
      "id": "tool:image_generate",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:image_generate",
      "url": "/language/stdlib/image_generate",
      "status": "both",
      "opener": "Generate image assets (local compat servers · openai gpt-image-2 · gemini gemini-3.1-flash-image · xai grok-imagine-image · mock for offline runs) — saves files under output_dir and returns paths + dimensions + sha256 (+ a provenance manifest); image bytes never ride outputs.",
      "meta": {
        "family": "media"
      }
    },
    {
      "id": "tool:inspect",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:inspect",
      "url": "/language/stdlib/inspect",
      "status": "both",
      "opener": "Introspect the running workflow · view: cost | records | dag_info | threads.",
      "meta": {
        "family": "introspection"
      }
    },
    {
      "id": "tool:jq",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:jq",
      "url": "/language/stdlib/jq",
      "status": "both",
      "opener": "Run a jq expression over input · THE data-transform language (map·filter·select·reshape). Emits exactly one value.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:json_diff",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:json_diff",
      "url": "/language/stdlib/json_diff",
      "status": "both",
      "opener": "JSON diff · returns an RFC 6902 JSON Patch.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:json_merge_patch",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:json_merge_patch",
      "url": "/language/stdlib/json_merge_patch",
      "status": "both",
      "opener": "RFC 7396 merge patch (null deletes a key) over a target object.",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:log",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:log",
      "url": "/language/stdlib/log",
      "status": "both",
      "opener": "Emit a human-readable diagnostic log line to the run stream (best-effort · never fails).",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:notify",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:notify",
      "url": "/language/stdlib/notify",
      "status": "both",
      "opener": "Send a notification · v0.1 engines support the webhook channel.",
      "meta": {
        "family": "network"
      }
    },
    {
      "id": "tool:prompt",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:prompt",
      "url": "/language/stdlib/prompt",
      "status": "both",
      "opener": "Ask a human (confirm|input|choice). Blocks until answered; uses default when headless.",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:read",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:read",
      "url": "/language/stdlib/read",
      "status": "both",
      "opener": "Read a file · returns its text (or opaque bytes with binary: true).",
      "meta": {
        "family": "file"
      }
    },
    {
      "id": "tool:tts_generate",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:tts_generate",
      "url": "/language/stdlib/tts_generate",
      "status": "both",
      "opener": "Synthesize speech audio (local compat servers · openai gpt-4o-mini-tts · elevenlabs · mock for offline runs) — saves ONE audio file under output_dir and returns path + format + sha256 + duration (+ a provenance manifest); audio bytes never ride outputs.",
      "meta": {
        "family": "media"
      }
    },
    {
      "id": "tool:uuid",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:uuid",
      "url": "/language/stdlib/uuid",
      "status": "both",
      "opener": "Generate a UUID · v7 (default · sortable) or v4 (random).",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:validate",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:validate",
      "url": "/language/stdlib/validate",
      "status": "both",
      "opener": "Validate data against a JSON Schema · returns {valid, errors} (invalid data is a report, not a failure).",
      "meta": {
        "family": "data"
      }
    },
    {
      "id": "tool:wait",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:wait",
      "url": "/language/stdlib/wait",
      "status": "both",
      "opener": "Pause: relative duration (e.g. \"30s\") XOR absolute until (ISO 8601). Exactly one.",
      "meta": {
        "family": "core"
      }
    },
    {
      "id": "tool:write",
      "kind": "member",
      "set": "builtins",
      "layer": "reach",
      "title": "nika:write",
      "url": "/language/stdlib/write",
      "status": "both",
      "opener": "Write a file · returns the path. overwrite defaults true · create_dirs defaults false.",
      "meta": {
        "family": "file"
      }
    },
    {
      "id": "truth:canon",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "canon",
      "url": "/truth/canon",
      "anchor": "canon",
      "own_page": true,
      "status": "ratified",
      "opener": "canon.yaml · the counted sets, spec-first"
    },
    {
      "id": "truth:catalog",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "catalog",
      "url": "/truth/catalog",
      "anchor": "catalog",
      "own_page": true,
      "status": "ratified",
      "opener": "a machine projection the site serves · byte-diffed in CI"
    },
    {
      "id": "truth:lens",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "lens",
      "url": "/truth/lens",
      "anchor": "lens",
      "own_page": true,
      "status": "ratified",
      "opener": "language_graph 1 · the graph of the language, site-side"
    },
    {
      "id": "truth:manifest",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "manifest",
      "url": "/truth/manifest",
      "anchor": "manifest",
      "own_page": true,
      "status": "ratified",
      "opener": "the snippet lineage table · every rendered block resolves here"
    },
    {
      "id": "truth:mirror",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "mirror",
      "url": "/truth/mirror",
      "anchor": "mirror",
      "own_page": true,
      "status": "ratified",
      "opener": "a byte-pinned copy, sha256-verified"
    },
    {
      "id": "truth:pack",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "pack",
      "url": "/truth/pack",
      "anchor": "pack",
      "own_page": true,
      "status": "ratified",
      "opener": "the spec corpus vendored inside the engine"
    },
    {
      "id": "truth:pin",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "pin",
      "url": "/truth/pin",
      "anchor": "pin",
      "own_page": true,
      "status": "ratified",
      "opener": "SPEC_PIN · the exact spec sha the engine targets"
    },
    {
      "id": "truth:registry",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "registry",
      "url": "/truth/registry",
      "anchor": "registry",
      "own_page": true,
      "status": "ratified",
      "opener": "nika-registry THE PRODUCT · shared workflows, re-proven nightly"
    },
    {
      "id": "truth:schema",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "schema",
      "url": "/truth/schema",
      "anchor": "schema",
      "own_page": true,
      "status": "ratified",
      "opener": "workflow.schema.json · the shapes"
    },
    {
      "id": "truth:spec",
      "kind": "member",
      "set": "truth-words",
      "layer": "proof",
      "title": "spec",
      "url": "/truth/spec",
      "anchor": "spec",
      "own_page": true,
      "status": "ratified",
      "opener": "the nika-spec repo · the truth of the language"
    },
    {
      "id": "type:bool",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "bool",
      "url": "/language/types/bool",
      "anchor": "type-bool",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:bytes",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "bytes",
      "url": "/language/types/bytes",
      "anchor": "type-bytes",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:duration",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "duration",
      "url": "/language/types/duration",
      "anchor": "type-duration",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:integer",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "integer",
      "url": "/language/types/integer",
      "anchor": "type-integer",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:null",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "null",
      "url": "/language/types/null",
      "anchor": "type-null",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:number",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "number",
      "url": "/language/types/number",
      "anchor": "type-number",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:path",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "path",
      "url": "/language/types/path",
      "anchor": "type-path",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:string",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "string",
      "url": "/language/types/string",
      "anchor": "type-string",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:timestamp",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "timestamp",
      "url": "/language/types/timestamp",
      "anchor": "type-timestamp",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "type:uri",
      "kind": "member",
      "set": "types",
      "layer": "shape",
      "title": "uri",
      "url": "/language/types/uri",
      "anchor": "type-uri",
      "own_page": true,
      "status": "ratified",
      "opener": null
    },
    {
      "id": "verb:agent",
      "kind": "member",
      "set": "verbs",
      "layer": "acts",
      "title": "agent",
      "url": "/language/verbs/agent",
      "status": "ratified",
      "opener": null
    },
    {
      "id": "verb:exec",
      "kind": "member",
      "set": "verbs",
      "layer": "acts",
      "title": "exec",
      "url": "/language/verbs/exec",
      "status": "ratified",
      "opener": null
    },
    {
      "id": "verb:infer",
      "kind": "member",
      "set": "verbs",
      "layer": "acts",
      "title": "infer",
      "url": "/language/verbs/infer",
      "status": "ratified",
      "opener": null
    },
    {
      "id": "verb:invoke",
      "kind": "member",
      "set": "verbs",
      "layer": "acts",
      "title": "invoke",
      "url": "/language/verbs/invoke",
      "status": "ratified",
      "opener": null
    },
    {
      "id": "word:after",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "after",
      "url": "/language/words/after",
      "status": "ratified",
      "opener": "The CONTROL boundary · {producer-task: predicate}. Each entry is one control edge (spec/03-dag.md §after). State, never data — observe outcomes through with:.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:agent",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "agent",
      "url": "/language/words/agent",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": true
      }
    },
    {
      "id": "word:args",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "args",
      "url": "/language/words/args",
      "status": "ratified",
      "opener": "Arguments passed to the tool · an object whose shape is the TOOL's own schema, not the language's. Each builtin and each MCP tool declares its own (spec/02-verbs.md §invoke) · `${{ }}` may appear in any leaf value.",
      "meta": {
        "scopes": [
          "invoke"
        ],
        "verb": false
      }
    },
    {
      "id": "word:backoff_max_ms",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "backoff_max_ms",
      "url": "/language/words/backoff_max_ms",
      "status": "ratified",
      "opener": "Ceiling on the computed delay, in milliseconds · default 60000, one minute. Exponential growth stops climbing here.",
      "meta": {
        "scopes": [
          "retry"
        ],
        "verb": false
      }
    },
    {
      "id": "word:backoff_ms",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "backoff_ms",
      "url": "/language/words/backoff_ms",
      "status": "ratified",
      "opener": "Initial delay between attempts, in milliseconds · default 1000. `backoff_strategy` decides how it grows from there.",
      "meta": {
        "scopes": [
          "retry"
        ],
        "verb": false
      }
    },
    {
      "id": "word:backoff_strategy",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "backoff_strategy",
      "url": "/language/words/backoff_strategy",
      "status": "ratified",
      "opener": "Which curve the delay follows between attempts · `fixed` · `linear` · `exponential` · default `exponential`. Each attempt waits `backoff_ms` flat, `backoff_ms × attempt`, or `backoff_ms × 2^(attempt-1)` capped at `backoff_max_ms`.",
      "meta": {
        "scopes": [
          "retry"
        ],
        "verb": false
      }
    },
    {
      "id": "word:because",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "because",
      "url": "/language/words/because",
      "status": "ratified",
      "opener": "The non-empty justification · recorded in the run receipt with the taint path and the value digest.",
      "meta": {
        "scopes": [
          "lift"
        ],
        "verb": false
      }
    },
    {
      "id": "word:capture",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "capture",
      "url": "/language/words/capture",
      "status": "ratified",
      "opener": "Which stream becomes the task's output · `stdout` (default) · `stderr` · `combined` · `structured` = `{ stdout, stderr, exit_code }`. This is the SOURCE; `decode:` is how that string becomes a value.",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:command",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "command",
      "url": "/language/words/command",
      "status": "ratified",
      "opener": "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:`.",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:const",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "const",
      "url": "/language/words/const",
      "status": "ratified",
      "opener": "Named constants · `${{ const.X }}` · a fixed value baked into the workflow. Either a bare literal, or a `{ type, value }` typed constant whose `value:` MUST conform to `type:`. The literal half of the dead `vars:` block (R3a · LAW-SURFACE-0201) · everything that is not `required: true` lands here per the E-split total rule.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:cwd",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "cwd",
      "url": "/language/words/cwd",
      "status": "ratified",
      "opener": "Working directory for the subprocess · default = the engine's own cwd.",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:decode",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "decode",
      "url": "/language/words/decode",
      "status": "ratified",
      "opener": "How the captured string becomes a value · `text` (default) · `json` · `jsonl` · `bytes`. Illegal with `capture: structured`, which already IS an object (NIKA-PARSE-025) · a non-parsing stream settles the task `failure` inside `on_error:` scope (spec 09 §decode).",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:env",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "env",
      "url": "/language/words/env",
      "status": "ratified",
      "opener": "OS environment variables for THIS subprocess · a key→value map applied over the composed environment. Nothing is inherited — the ambient environment reaches a task only through `permits.env` (spec/01-envelope.md §permits).",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:exec",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "exec",
      "url": "/language/words/exec",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": true
      }
    },
    {
      "id": "word:extract",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "extract",
      "url": "/language/words/extract",
      "status": "ratified",
      "opener": "Named jq-expression bindings extracted from the verb's raw response · read downstream as `${{ tasks.X.<name> }}`. The field names the OPERATION (run this jq); it does not write `output` — `${{ tasks.X.output }}` stays the raw response (spec/03-dag.md §extract). jq is the single data extraction-and-transform language (the former RFC 9535 JSONPath was dropped · jq is a superset · per spec/04-variables.md §216-225). A binding may not shadow a record projection: output · status · error · started_at · ended_at · duration_ms are forbidden at parse time (spec/04-variables.md §Rules) — enforced via propertyNames.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:fail_fast",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "fail_fast",
      "url": "/language/words/fail_fast",
      "status": "ratified",
      "opener": "Whether the fan-out abandons the batch on the first failure · default true. False finishes every item and yields null at a failed index, so the batch reports what it could.",
      "meta": {
        "scopes": [
          "for_each"
        ],
        "verb": false
      }
    },
    {
      "id": "word:for_each",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "for_each",
      "url": "/language/words/for_each",
      "status": "ratified",
      "opener": "Fan this task out over a collection · ONE block, so the concurrency is visible where the fan-out is declared. `max_parallel` and `fail_fast` live here because they have no meaning without it.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:from",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "from",
      "url": "/language/words/from",
      "status": "ratified",
      "opener": "REQUIRED for law 'taint', forbidden otherwise · the ONE binding this entry raises (e.g. inputs.p · config.region · tasks.fetch.output) · a dotted value-binding path.",
      "meta": {
        "scopes": [
          "lift"
        ],
        "verb": false
      }
    },
    {
      "id": "word:group",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "group",
      "url": "/language/words/group",
      "status": "ratified",
      "opener": "Fan-in MEMBERSHIP · this task joins the named group, and a consumer folds the whole group with one `${{ group.<name> }}` binding in its `with:` (spec/03-dag.md §group). Membership is DECLARED, never matched: a renamed member leaves its group loudly (NIKA-DAG-008 on the reference), where a glob would shrink the fold in silence. A group exists iff at least one task declares it. An `unwind` task may not join one (NIKA-DAG-009 · cleanup never schedules).",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:infer",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "infer",
      "url": "/language/words/infer",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": true
      }
    },
    {
      "id": "word:inputs",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "inputs",
      "url": "/language/words/inputs",
      "status": "ratified",
      "opener": "Typed workflow inputs · `${{ inputs.X }}` · the parameters an author declares and a caller supplies. Each entry is a typed declaration whose `type:` speaks the full TypeExpr of 09-types (R3b · LAW-GRAMMAR-0211 · the flat 6-enum is dead · LAW-SURFACE-0211). The typed half of the dead `vars:` block (R3a · LAW-SURFACE-0201) · a `required: true` value lands here per the E-split total rule.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:invoke",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "invoke",
      "url": "/language/words/invoke",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": true
      }
    },
    {
      "id": "word:items",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "items",
      "url": "/language/words/items",
      "status": "ratified",
      "opener": "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).",
      "meta": {
        "scopes": [
          "for_each"
        ],
        "verb": false
      }
    },
    {
      "id": "word:jitter",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "jitter",
      "url": "/language/words/jitter",
      "status": "ratified",
      "opener": "Randomize the computed delay so tasks retrying the same upstream do not synchronize · default TRUE. Engines SHOULD use a full-jitter or equal-jitter family — the anti-thundering-herd default (spec/05-errors.md §Retry policy).",
      "meta": {
        "scopes": [
          "retry"
        ],
        "verb": false
      }
    },
    {
      "id": "word:law",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "law",
      "url": "/language/words/law",
      "status": "ratified",
      "opener": "WHICH law this entry lifts · 'taint' raises ONE binding from untrusted to trusted (NEP-0004 · LAW-AUTH-0325) · 'data-as-code' declares this task's fetch a code-bearing artifact it will never load or run (NEP-0006 · LAW-AUTH-0327). Neither ever lifts the net boundary or the SSRF floor.",
      "meta": {
        "scopes": [
          "lift"
        ],
        "verb": false
      }
    },
    {
      "id": "word:lift",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "lift",
      "url": "/language/words/lift",
      "status": "ratified",
      "opener": "The authored doors · each entry lifts exactly ONE named law, with a mandatory reason, check-visible and receipt-recorded. A lift is NEVER a permit bypass — the value still sits inside the declared boundary, and no law but the named one moves. The law set is CLOSED and normative (a NEP amends it): this is why a new law costs zero language fields (spec/10-authority.md §the authored doors).",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:max_attempts",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "max_attempts",
      "url": "/language/words/max_attempts",
      "status": "ratified",
      "opener": "Total attempts, counting the first try · integer ≥ 1 · the one required field of a `retry:` block. Engines honor it strictly and surface the LAST error if every attempt fails (spec/05-errors.md §Retry policy).",
      "meta": {
        "scopes": [
          "retry"
        ],
        "verb": false
      }
    },
    {
      "id": "word:max_parallel",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "max_parallel",
      "url": "/language/words/max_parallel",
      "status": "ratified",
      "opener": "Cap concurrent iterations · default unbounded · 1 = sequential.",
      "meta": {
        "scopes": [
          "for_each"
        ],
        "verb": false
      }
    },
    {
      "id": "word:max_tokens",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "max_tokens",
      "url": "/language/words/max_tokens",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "infer"
        ],
        "verb": false
      }
    },
    {
      "id": "word:max_tokens_total",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "max_tokens_total",
      "url": "/language/words/max_tokens_total",
      "status": "ratified",
      "opener": "Cumulative token budget across every turn of the loop · the SPEND ceiling, where `max_turns` is the step ceiling. Default is engine-configurable (spec/02-verbs.md §agent).",
      "meta": {
        "scopes": [
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:max_turns",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "max_turns",
      "url": "/language/words/max_turns",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:model",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "model",
      "url": "/language/words/model",
      "status": "ratified",
      "opener": "Default model · `<provider>/<name>` (e.g. ollama/qwen3.5:9b · anthropic/claude-sonnet-4-6 · mock/echo).",
      "meta": {
        "scopes": [
          "envelope",
          "infer",
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:nika",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "nika",
      "url": "/language/words/nika",
      "status": "ratified",
      "opener": "The file's NAME · kebab-case · and the mark that says « this is a nika file ». One word, one meaning across both document types: `nika.yaml` carries the PROJECT name, a `*.nika.yaml` carries the WORKFLOW name. The document TYPE is read from `tasks:` — present means workflow, absent means project — so it survives a blob, a paste or an HTTP body where the filename does not travel. This key held the literal `v1` until the envelope nuke; it carried zero bits as a version (there is no `nika: v2` — ever) and now carries the file's most necessary field instead.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:on_codes",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "on_codes",
      "url": "/language/words/on_codes",
      "status": "ratified",
      "opener": "Retry ONLY on these canonical `NIKA-<NS>-<NNN>` codes · absent, the engine retries anything transient. Codes, never HTTP status numbers · the retry-side mirror of `on_error.on_codes`.",
      "meta": {
        "scopes": [
          "retry",
          "on_error"
        ],
        "verb": false
      }
    },
    {
      "id": "word:on_error",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "on_error",
      "url": "/language/words/on_error",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:outputs",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "outputs",
      "url": "/language/words/outputs",
      "status": "ratified",
      "opener": "The workflow's return value · symmetric to inputs. Each entry is a `${{ tasks.X.output }}` reference (untyped form · string) OR a typed declaration { value · type · description }. Powers `nika run` result + the output half of the callable-workflow schema.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:permits",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "permits",
      "url": "/language/words/permits",
      "status": "ratified",
      "opener": "The declared capability boundary · once present every category is default-deny unless listed (spec/01-envelope.md §permits · NIKA-SEC-004).",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:prompt",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "prompt",
      "url": "/language/words/prompt",
      "status": "ratified",
      "opener": null,
      "meta": {
        "scopes": [
          "infer",
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:recover",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "recover",
      "url": "/language/words/recover",
      "status": "ratified",
      "opener": "Recovery output · a `${{ }}` ref OR a literal (merges the former fallback/value per spec/05-errors.md).",
      "meta": {
        "scopes": [
          "on_error"
        ],
        "verb": false
      }
    },
    {
      "id": "word:retry",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "retry",
      "url": "/language/words/retry",
      "status": "ratified",
      "opener": "Retry policy for this task · `{ max_attempts, backoff_ms, backoff_strategy, backoff_max_ms, jitter, on_codes }`. Retries run BEFORE `on_error` sees anything — the catch handles the last error only (spec/05-errors.md §Retry policy).",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:returns",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "returns",
      "url": "/language/words/returns",
      "status": "ratified",
      "opener": "The task's output contract · the TYPED door, where a verb-level `schema:` is the out-of-core hatch. The two are exclusive on one task (NIKA-TYPE-003 · spec 09-types.md).",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:run",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "run",
      "url": "/language/words/run",
      "status": "ratified",
      "opener": "The run's entropy and clock declaration · every source of randomness and of time is declared, never ambient. The two dimensions couple: only `ambient × system` (the status quo) and `none | seeded × virtual` (the deterministic states) are legal, and a declared contradiction refuses at parse (NEP-0010).",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:schema",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "schema",
      "url": "/language/words/schema",
      "status": "ratified",
      "opener": "JSON Schema · the structured-output contract the model's reply must satisfy. The out-of-core hatch; the typed door is task-level `returns:` (both on one task is NIKA-TYPE-003).",
      "meta": {
        "scopes": [
          "infer",
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:secrets",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "secrets",
      "url": "/language/words/secrets",
      "status": "ratified",
      "opener": "Vault-backed masked references · `${{ secrets.X }}` · never inline literals.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:shell",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "shell",
      "url": "/language/words/shell",
      "status": "ratified",
      "opener": "One shell line, run via /bin/sh -c — the EXPLICIT dangerous door (pipes · redirects · globs). The blocklist applies here; interpolating untrusted values here is on the author. Exactly one of command|shell.",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:skills",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "skills",
      "url": "/language/words/skills",
      "status": "ratified",
      "opener": "Agent Skill (SKILL.md) file paths · explicit static paths only, no globs and no templates. They follow the agentskills.io shape, and are loaded at compose time and injected into the system context.",
      "meta": {
        "scopes": [
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:skip",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "skip",
      "url": "/language/words/skip",
      "status": "ratified",
      "opener": "Swallow the error and let the DAG continue · the task produces no output, and the original error stays readable at `tasks.<id>.error`. Exactly one of `recover` · `skip`.",
      "meta": {
        "scopes": [
          "on_error"
        ],
        "verb": false
      }
    },
    {
      "id": "word:stdin",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "stdin",
      "url": "/language/words/stdin",
      "status": "ratified",
      "opener": "Data written to the command's standard input · may interpolate `${{ }}`.",
      "meta": {
        "scopes": [
          "exec"
        ],
        "verb": false
      }
    },
    {
      "id": "word:system",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "system",
      "url": "/language/words/system",
      "status": "ratified",
      "opener": "System prompt · the standing instruction, sent ahead of `prompt:` and unchanged by it.",
      "meta": {
        "scopes": [
          "infer",
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:tasks",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "tasks",
      "url": "/language/words/tasks",
      "status": "ratified",
      "opener": "The task map · the KEY is the task's identity (snake_case · CEL-safe). Source order is presentation only — the graph alone schedules.",
      "meta": {
        "scopes": [
          "envelope"
        ],
        "verb": false
      }
    },
    {
      "id": "word:temperature",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "temperature",
      "url": "/language/words/temperature",
      "status": "ratified",
      "opener": "Sampling temperature · 0 is the steadiest the provider offers, 2 the loosest. A number in 0-2, or a `${{ }}` reference.",
      "meta": {
        "scopes": [
          "infer",
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:thinking",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "thinking",
      "url": "/language/words/thinking",
      "status": "ratified",
      "opener": "Extended thinking · `{ enabled, budget_tokens }` — reasoning the model may spend before it answers (spec/02-verbs.md §infer).",
      "meta": {
        "scopes": [
          "infer"
        ],
        "verb": false
      }
    },
    {
      "id": "word:timeout",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "timeout",
      "url": "/language/words/timeout",
      "status": "ratified",
      "opener": "Go-duration string · quoted · e.g. \"30s\" \"5m\" \"1h30m\" \"2.5s\". Max 24h.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:tool",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "tool",
      "url": "/language/words/tool",
      "status": "ratified",
      "opener": "Tool reference · nika:<path> (closed v0.1 builtin set) OR mcp:<server>/<tool> (requires the slash). The namespace set is CLOSED at v1 (spec/02-verbs.md) — an x-<vendor>: prefix is RESERVED, not valid (engine-specific tools route through mcp: · spec/06-stdlib-contract.md §Namespace ownership).",
      "meta": {
        "scopes": [
          "invoke"
        ],
        "verb": false
      }
    },
    {
      "id": "word:tools",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "tools",
      "url": "/language/words/tools",
      "status": "ratified",
      "opener": "Whitelist · DEFAULT-DENY (no tools if absent) · gitignore-style globs · `!` negation.",
      "meta": {
        "scopes": [
          "agent"
        ],
        "verb": false
      }
    },
    {
      "id": "word:vision",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "vision",
      "url": "/language/words/vision",
      "status": "ratified",
      "opener": "Image inputs for the call · each entry `{ source: file | url, path | url }` · the images `prompt:` is allowed to refer to.",
      "meta": {
        "scopes": [
          "infer"
        ],
        "verb": false
      }
    },
    {
      "id": "word:when",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "when",
      "url": "/language/words/when",
      "status": "ratified",
      "opener": "LOCAL business condition · false skips the task · evaluated POST-gate over {vars · env · with · item · index}. Referring to `tasks.*` is illegal here (NIKA-VAR-021 · hoist it into `with:`) · spec/03-dag.md §when.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:with",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "with",
      "url": "/language/words/with",
      "status": "ratified",
      "opener": "Task-level scope injection · `${{ with.X }}`.",
      "meta": {
        "scopes": [
          "task"
        ],
        "verb": false
      }
    },
    {
      "id": "word:workflow",
      "kind": "member",
      "set": "words",
      "layer": "shape",
      "title": "workflow",
      "url": "/language/words/workflow",
      "status": "ratified",
      "opener": "Compose another workflow (spec 14) · a STATIC target: a filesystem path OR registry:owner/name@version (pinned). A templated target is refused at check (NIKA-COMP-001). Exactly one of tool: | workflow: (the invoke tagged union · G21).",
      "meta": {
        "scopes": [
          "invoke"
        ],
        "verb": false
      }
    }
  ],
  "edges": [
    {
      "from": "verb:agent",
      "to": "word:max_tokens_total",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:max_turns",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:model",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:prompt",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:schema",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:skills",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:system",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:temperature",
      "kind": "accepts"
    },
    {
      "from": "verb:agent",
      "to": "word:tools",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:capture",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:command",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:cwd",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:decode",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:env",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:shell",
      "kind": "accepts"
    },
    {
      "from": "verb:exec",
      "to": "word:stdin",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:max_tokens",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:model",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:prompt",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:schema",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:system",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:temperature",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:thinking",
      "kind": "accepts"
    },
    {
      "from": "verb:infer",
      "to": "word:vision",
      "kind": "accepts"
    },
    {
      "from": "verb:invoke",
      "to": "word:args",
      "kind": "accepts"
    },
    {
      "from": "verb:invoke",
      "to": "word:tool",
      "kind": "accepts"
    },
    {
      "from": "verb:invoke",
      "to": "word:workflow",
      "kind": "accepts"
    },
    {
      "from": "code:NIKA-AGENT-001",
      "to": "errcat:budget_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-001",
      "to": "errns:NIKA-AGENT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-002",
      "to": "errcat:budget_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-002",
      "to": "errns:NIKA-AGENT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-003",
      "to": "errns:NIKA-AGENT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-004",
      "to": "errns:NIKA-AGENT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-005",
      "to": "errcat:budget_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AGENT-005",
      "to": "errns:NIKA-AGENT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-ASSERT-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-ASSERT-001",
      "to": "errns:NIKA-ASSERT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-006",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-006",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-007",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-007",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-008",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-008",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-009",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-009",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-010",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-010",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-011",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-AUTH-011",
      "to": "errns:NIKA-AUTH",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "errns:NIKA-BUILTIN",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "errns:NIKA-BUILTIN",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-CANCEL-001",
      "to": "errcat:cancelled",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-CANCEL-001",
      "to": "errns:NIKA-CANCEL",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-001",
      "to": "errns:NIKA-COMP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-002",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-002",
      "to": "errns:NIKA-COMP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-003",
      "to": "errns:NIKA-COMP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "errns:NIKA-COMP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-001",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-002",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-004",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-005",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-005",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-006",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-006",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-007",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-007",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-008",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-008",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-009",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DAG-009",
      "to": "errns:NIKA-DAG",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DECIDE-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DECIDE-001",
      "to": "errns:NIKA-DECIDE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DECIDE-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DECIDE-002",
      "to": "errns:NIKA-DECIDE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DEFAULT-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DEFAULT-001",
      "to": "errns:NIKA-DEFAULT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "errns:NIKA-DRIFT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-EXEC-001",
      "to": "errcat:process_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-EXEC-001",
      "to": "errns:NIKA-EXEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-EXEC-002",
      "to": "errcat:process_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-EXEC-002",
      "to": "errns:NIKA-EXEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-001",
      "to": "errcat:provider_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-001",
      "to": "errns:NIKA-INFER",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-002",
      "to": "errns:NIKA-INFER",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-003",
      "to": "errns:NIKA-INFER",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "errns:NIKA-INFER",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INVOKE-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INVOKE-001",
      "to": "errns:NIKA-INVOKE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INVOKE-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-INVOKE-002",
      "to": "errns:NIKA-INVOKE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-LOCK-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-LOCK-001",
      "to": "errns:NIKA-LOCK",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-MCP-001",
      "to": "errcat:tool_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-MCP-001",
      "to": "errns:NIKA-MCP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-MCP-002",
      "to": "errcat:tool_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-MCP-002",
      "to": "errns:NIKA-MCP",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-001",
      "to": "errcat:parse_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-001",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-002",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-003",
      "to": "errcat:parse_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-003",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-004",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-005",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-005",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-006",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-006",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-007",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-007",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-009",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-009",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-010",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-010",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-011",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-011",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-012",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-012",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-013",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-013",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-014",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-014",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-017",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-017",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-019",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-019",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-022",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-022",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-023",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-023",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-024",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-024",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-026",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-026",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-027",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-027",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "errns:NIKA-PARSE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PORT-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PORT-001",
      "to": "errns:NIKA-PORT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PORT-002",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-PORT-002",
      "to": "errns:NIKA-PORT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-002",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-002",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-003",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-003",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-004",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-004",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-005",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-005",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-007",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-007",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-008",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-008",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-010",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-010",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-011",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-011",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "errns:NIKA-SEC",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TIMEOUT-001",
      "to": "errcat:timeout_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TIMEOUT-001",
      "to": "errns:NIKA-TIMEOUT",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-001",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-003",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-004",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-004",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-005",
      "to": "errcat:security_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-005",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-006",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-006",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "errns:NIKA-TYPE",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-001",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-001",
      "to": "errns:NIKA-VALUES",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-002",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-002",
      "to": "errns:NIKA-VALUES",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VALUES-003",
      "to": "errns:NIKA-VALUES",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "errcat:variable_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-002",
      "to": "errcat:variable_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-002",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-003",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-003",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-004",
      "to": "errcat:variable_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-004",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-005",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-005",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-006",
      "to": "errcat:variable_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-006",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-007",
      "to": "errcat:variable_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-007",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-008",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-008",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-009",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-009",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-020",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-020",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "errcat:validation_error",
      "kind": "belongs-to"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "errns:NIKA-VAR",
      "kind": "belongs-to"
    },
    {
      "from": "tool:assert",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:chart",
      "to": "family:media",
      "kind": "belongs-to"
    },
    {
      "from": "tool:compose",
      "to": "family:introspection",
      "kind": "belongs-to"
    },
    {
      "from": "tool:convert",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:date",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:decide",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:done",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:edit",
      "to": "family:file",
      "kind": "belongs-to"
    },
    {
      "from": "tool:emit",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:fetch",
      "to": "family:network",
      "kind": "belongs-to"
    },
    {
      "from": "tool:glob",
      "to": "family:file",
      "kind": "belongs-to"
    },
    {
      "from": "tool:grep",
      "to": "family:file",
      "kind": "belongs-to"
    },
    {
      "from": "tool:hash",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:image_fx",
      "to": "family:media",
      "kind": "belongs-to"
    },
    {
      "from": "tool:image_generate",
      "to": "family:media",
      "kind": "belongs-to"
    },
    {
      "from": "tool:inspect",
      "to": "family:introspection",
      "kind": "belongs-to"
    },
    {
      "from": "tool:jq",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:json_diff",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:json_merge_patch",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:log",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:notify",
      "to": "family:network",
      "kind": "belongs-to"
    },
    {
      "from": "tool:prompt",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:read",
      "to": "family:file",
      "kind": "belongs-to"
    },
    {
      "from": "tool:tts_generate",
      "to": "family:media",
      "kind": "belongs-to"
    },
    {
      "from": "tool:uuid",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:validate",
      "to": "family:data",
      "kind": "belongs-to"
    },
    {
      "from": "tool:wait",
      "to": "family:core",
      "kind": "belongs-to"
    },
    {
      "from": "tool:write",
      "to": "family:file",
      "kind": "belongs-to"
    },
    {
      "from": "template:agent-loop",
      "to": "word:agent",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:inputs",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:max_tokens_total",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:max_turns",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:schema",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:system",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:agent-loop",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:secrets",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:on_codes",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:chain",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:command",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:exec",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:docker-report",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:after",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:on_codes",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:when",
      "kind": "carries"
    },
    {
      "from": "template:etl-state",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:backoff_strategy",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:fail_fast",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:for_each",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:items",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:jitter",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:max_attempts",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:max_parallel",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:retry",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:run",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:timeout",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:fanout",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:extract",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:secrets",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:when",
      "kind": "carries"
    },
    {
      "from": "template:gate-and-act",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:after",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:capture",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:command",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:exec",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:secrets",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:when",
      "kind": "carries"
    },
    {
      "from": "template:human-gated-ship",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:schema",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:media-asset-pack",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:args",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:const",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:infer",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:invoke",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:max_tokens",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:model",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:nika",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:on_error",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:outputs",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:permits",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:prompt",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:recover",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:schema",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:tasks",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:tool",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:tools",
      "kind": "carries"
    },
    {
      "from": "template:website-brief",
      "to": "word:with",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:article",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:feed",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:jq",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:links",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:markdown",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:metadata",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:selector",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:sitemap",
      "kind": "carries"
    },
    {
      "from": "tool:fetch",
      "to": "mode:text",
      "kind": "carries"
    },
    {
      "from": "set:builtins",
      "to": "chapter:stdlib/builtins-v0.1.md",
      "kind": "defined-by"
    },
    {
      "from": "set:conformance-levels",
      "to": "chapter:spec/07-conformance.md",
      "kind": "defined-by"
    },
    {
      "from": "set:edge-kinds",
      "to": "chapter:spec/03-dag.md",
      "kind": "defined-by"
    },
    {
      "from": "set:error-categories",
      "to": "chapter:spec/05-errors.md",
      "kind": "defined-by"
    },
    {
      "from": "set:error-codes",
      "to": "chapter:spec/05-errors.md",
      "kind": "defined-by"
    },
    {
      "from": "set:error-namespaces",
      "to": "chapter:spec/05-errors.md",
      "kind": "defined-by"
    },
    {
      "from": "set:extract-modes",
      "to": "chapter:stdlib/extract-modes-v0.1.md",
      "kind": "defined-by"
    },
    {
      "from": "set:gate-predicates",
      "to": "chapter:spec/03-dag.md",
      "kind": "defined-by"
    },
    {
      "from": "set:mcp-tools",
      "to": "chapter:canon.yaml",
      "kind": "defined-by"
    },
    {
      "from": "set:namespaces",
      "to": "chapter:spec/04-variables.md",
      "kind": "defined-by"
    },
    {
      "from": "set:permit-families",
      "to": "chapter:spec/01-envelope.md",
      "kind": "defined-by"
    },
    {
      "from": "set:providers",
      "to": "chapter:stdlib/providers-v0.1.md",
      "kind": "defined-by"
    },
    {
      "from": "set:secret-sources",
      "to": "chapter:spec/04-variables.md",
      "kind": "defined-by"
    },
    {
      "from": "set:showcases",
      "to": "chapter:examples/manifest.yaml",
      "kind": "defined-by"
    },
    {
      "from": "set:templates",
      "to": "chapter:templates/README.md",
      "kind": "defined-by"
    },
    {
      "from": "set:tool-families",
      "to": "chapter:stdlib/builtins-v0.1.md",
      "kind": "defined-by"
    },
    {
      "from": "set:types",
      "to": "chapter:spec/09-types.md",
      "kind": "defined-by"
    },
    {
      "from": "set:verbs",
      "to": "chapter:spec/02-verbs.md",
      "kind": "defined-by"
    },
    {
      "from": "set:words",
      "to": "chapter:spec/01-envelope.md",
      "kind": "defined-by"
    },
    {
      "from": "set:words",
      "to": "chapter:spec/03-dag.md",
      "kind": "defined-by"
    },
    {
      "from": "set:words",
      "to": "chapter:spec/04-variables.md",
      "kind": "defined-by"
    },
    {
      "from": "template:agent-loop",
      "to": "tool:assert",
      "kind": "grants"
    },
    {
      "from": "template:agent-loop",
      "to": "tool:done",
      "kind": "grants"
    },
    {
      "from": "template:agent-loop",
      "to": "tool:jq",
      "kind": "grants"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "tool:fetch",
      "kind": "grants"
    },
    {
      "from": "template:chain",
      "to": "tool:read",
      "kind": "grants"
    },
    {
      "from": "template:chain",
      "to": "tool:write",
      "kind": "grants"
    },
    {
      "from": "template:docker-report",
      "to": "tool:write",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:fetch",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:jq",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:json_diff",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:prompt",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:read",
      "kind": "grants"
    },
    {
      "from": "template:etl-state",
      "to": "tool:write",
      "kind": "grants"
    },
    {
      "from": "template:fanout",
      "to": "tool:glob",
      "kind": "grants"
    },
    {
      "from": "template:fanout",
      "to": "tool:jq",
      "kind": "grants"
    },
    {
      "from": "template:fanout",
      "to": "tool:read",
      "kind": "grants"
    },
    {
      "from": "template:gate-and-act",
      "to": "tool:fetch",
      "kind": "grants"
    },
    {
      "from": "template:gate-and-act",
      "to": "tool:notify",
      "kind": "grants"
    },
    {
      "from": "template:human-gated-ship",
      "to": "tool:assert",
      "kind": "grants"
    },
    {
      "from": "template:human-gated-ship",
      "to": "tool:notify",
      "kind": "grants"
    },
    {
      "from": "template:human-gated-ship",
      "to": "tool:prompt",
      "kind": "grants"
    },
    {
      "from": "template:media-asset-pack",
      "to": "tool:image_generate",
      "kind": "grants"
    },
    {
      "from": "template:media-asset-pack",
      "to": "tool:jq",
      "kind": "grants"
    },
    {
      "from": "template:media-asset-pack",
      "to": "tool:write",
      "kind": "grants"
    },
    {
      "from": "template:website-brief",
      "to": "tool:fetch",
      "kind": "grants"
    },
    {
      "from": "template:website-brief",
      "to": "tool:write",
      "kind": "grants"
    },
    {
      "from": "code:NIKA-AGENT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AGENT-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AGENT-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AGENT-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AGENT-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-ASSERT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-007",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-008",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-009",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-010",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-AUTH-011",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-CANCEL-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-COMP-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-COMP-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-COMP-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-007",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-008",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DAG-009",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DECIDE-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DECIDE-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DEFAULT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-EXEC-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-EXEC-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INFER-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INFER-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INFER-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INVOKE-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-INVOKE-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-LOCK-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-MCP-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-MCP-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-007",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-009",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-010",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-011",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-012",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-013",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-014",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-017",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-019",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-022",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-023",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-024",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-026",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-027",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PORT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-PORT-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-007",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-008",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-010",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-011",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TIMEOUT-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VALUES-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VALUES-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VALUES-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-002",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-003",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-004",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-005",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-006",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-007",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-008",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-009",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-020",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "set:error-codes",
      "kind": "member-of"
    },
    {
      "from": "edgekind:control",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "edgekind:failure-observation",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "edgekind:finally",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "edgekind:recovery",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "edgekind:terminal-observation",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "edgekind:value",
      "to": "set:edge-kinds",
      "kind": "member-of"
    },
    {
      "from": "errcat:budget_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:cancelled",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:internal_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:network_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:parse_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:process_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:provider_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:security_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:timeout_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:tool_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:validation_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errcat:variable_error",
      "to": "set:error-categories",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-AGENT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-ASSERT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-AUTH",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-BUILTIN",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-CANCEL",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-COMP",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-DAG",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-DECIDE",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-DEFAULT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-DRIFT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-EXEC",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-IMPL",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-INFER",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-INVOKE",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-LOCK",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-MCP",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-PARSE",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-PORT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-PROVIDER",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-SEC",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-TIMEOUT",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-TYPE",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-VALUES",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "errns:NIKA-VAR",
      "to": "set:error-namespaces",
      "kind": "member-of"
    },
    {
      "from": "family:core",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "family:data",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "family:file",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "family:introspection",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "family:media",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "family:network",
      "to": "set:tool-families",
      "kind": "member-of"
    },
    {
      "from": "level:core",
      "to": "set:conformance-levels",
      "kind": "member-of"
    },
    {
      "from": "level:runtime",
      "to": "set:conformance-levels",
      "kind": "member-of"
    },
    {
      "from": "level:stdlib",
      "to": "set:conformance-levels",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_canon",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_catalog",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_check",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_examples",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_explain",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_inspect",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_schema",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_template",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mcp:nika_tools",
      "to": "set:mcp-tools",
      "kind": "member-of"
    },
    {
      "from": "mode:article",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:feed",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:jq",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:links",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:markdown",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:metadata",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:selector",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:sitemap",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "mode:text",
      "to": "set:extract-modes",
      "kind": "member-of"
    },
    {
      "from": "ns:const",
      "to": "set:namespaces",
      "kind": "member-of"
    },
    {
      "from": "ns:inputs",
      "to": "set:namespaces",
      "kind": "member-of"
    },
    {
      "from": "ns:secrets",
      "to": "set:namespaces",
      "kind": "member-of"
    },
    {
      "from": "ns:tasks",
      "to": "set:namespaces",
      "kind": "member-of"
    },
    {
      "from": "ns:with",
      "to": "set:namespaces",
      "kind": "member-of"
    },
    {
      "from": "permit:env",
      "to": "set:permit-families",
      "kind": "member-of"
    },
    {
      "from": "permit:exec",
      "to": "set:permit-families",
      "kind": "member-of"
    },
    {
      "from": "permit:fs",
      "to": "set:permit-families",
      "kind": "member-of"
    },
    {
      "from": "permit:net",
      "to": "set:permit-families",
      "kind": "member-of"
    },
    {
      "from": "permit:tools",
      "to": "set:permit-families",
      "kind": "member-of"
    },
    {
      "from": "predicate:failure",
      "to": "set:gate-predicates",
      "kind": "member-of"
    },
    {
      "from": "predicate:skipped",
      "to": "set:gate-predicates",
      "kind": "member-of"
    },
    {
      "from": "predicate:success",
      "to": "set:gate-predicates",
      "kind": "member-of"
    },
    {
      "from": "predicate:terminal",
      "to": "set:gate-predicates",
      "kind": "member-of"
    },
    {
      "from": "provider:anthropic",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:deepseek",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:gemini",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:groq",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:huggingface",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:llamacpp",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:lmstudio",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:localai",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:mistral",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:mock",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:moonshot",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:nvidia",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:ollama",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:openai",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:openrouter",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:vllm",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "provider:xai",
      "to": "set:providers",
      "kind": "member-of"
    },
    {
      "from": "secret:env",
      "to": "set:secret-sources",
      "kind": "member-of"
    },
    {
      "from": "secret:file",
      "to": "set:secret-sources",
      "kind": "member-of"
    },
    {
      "from": "secret:vault",
      "to": "set:secret-sources",
      "kind": "member-of"
    },
    {
      "from": "set:builtins",
      "to": "layer:reach",
      "kind": "member-of"
    },
    {
      "from": "set:conformance-levels",
      "to": "layer:proof",
      "kind": "member-of"
    },
    {
      "from": "set:edge-kinds",
      "to": "layer:flow",
      "kind": "member-of"
    },
    {
      "from": "set:error-categories",
      "to": "layer:refusals",
      "kind": "member-of"
    },
    {
      "from": "set:error-codes",
      "to": "layer:refusals",
      "kind": "member-of"
    },
    {
      "from": "set:error-namespaces",
      "to": "layer:refusals",
      "kind": "member-of"
    },
    {
      "from": "set:extract-modes",
      "to": "layer:reach",
      "kind": "member-of"
    },
    {
      "from": "set:gate-predicates",
      "to": "layer:flow",
      "kind": "member-of"
    },
    {
      "from": "set:mcp-tools",
      "to": "layer:proof",
      "kind": "member-of"
    },
    {
      "from": "set:namespaces",
      "to": "layer:shape",
      "kind": "member-of"
    },
    {
      "from": "set:permit-families",
      "to": "layer:boundary",
      "kind": "member-of"
    },
    {
      "from": "set:providers",
      "to": "layer:reach",
      "kind": "member-of"
    },
    {
      "from": "set:secret-sources",
      "to": "layer:boundary",
      "kind": "member-of"
    },
    {
      "from": "set:showcases",
      "to": "layer:proof",
      "kind": "member-of"
    },
    {
      "from": "set:templates",
      "to": "layer:reach",
      "kind": "member-of"
    },
    {
      "from": "set:tool-families",
      "to": "layer:reach",
      "kind": "member-of"
    },
    {
      "from": "set:truth-words",
      "to": "layer:proof",
      "kind": "member-of"
    },
    {
      "from": "set:types",
      "to": "layer:shape",
      "kind": "member-of"
    },
    {
      "from": "set:verbs",
      "to": "layer:acts",
      "kind": "member-of"
    },
    {
      "from": "set:words",
      "to": "layer:shape",
      "kind": "member-of"
    },
    {
      "from": "showcase:bookmark-triage",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:contract-guard",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:image-fx-batch",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:localization-factory",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:model-bench",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:og-images",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:price-watch",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:release-notes",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:release-radar",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:release-train",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:resume-screener",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:seo-content-brief",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:social-repurpose",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:standup-digest",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:support-triage",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "set:showcases",
      "kind": "member-of"
    },
    {
      "from": "template:agent-loop",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:api-upload-and-create",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:chain",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:docker-report",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:etl-state",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:fanout",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:gate-and-act",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:human-gated-ship",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:media-asset-pack",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "template:website-brief",
      "to": "set:templates",
      "kind": "member-of"
    },
    {
      "from": "tool:assert",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:chart",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:compose",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:convert",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:date",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:decide",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:done",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:edit",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:emit",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:fetch",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:glob",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:grep",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:hash",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:image_fx",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:image_generate",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:inspect",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:jq",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:json_diff",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:json_merge_patch",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:log",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:notify",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:prompt",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:read",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:tts_generate",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:uuid",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:validate",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:wait",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "tool:write",
      "to": "set:builtins",
      "kind": "member-of"
    },
    {
      "from": "truth:canon",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:catalog",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:lens",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:manifest",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:mirror",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:pack",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:pin",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:registry",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:schema",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "truth:spec",
      "to": "set:truth-words",
      "kind": "member-of"
    },
    {
      "from": "type:bool",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:bytes",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:duration",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:integer",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:null",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:number",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:path",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:string",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:timestamp",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "type:uri",
      "to": "set:types",
      "kind": "member-of"
    },
    {
      "from": "verb:agent",
      "to": "set:verbs",
      "kind": "member-of"
    },
    {
      "from": "verb:exec",
      "to": "set:verbs",
      "kind": "member-of"
    },
    {
      "from": "verb:infer",
      "to": "set:verbs",
      "kind": "member-of"
    },
    {
      "from": "verb:invoke",
      "to": "set:verbs",
      "kind": "member-of"
    },
    {
      "from": "word:after",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:agent",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:args",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:backoff_max_ms",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:backoff_ms",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:backoff_strategy",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:because",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:capture",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:command",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:const",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:cwd",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:decode",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:env",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:exec",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:extract",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:fail_fast",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:for_each",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:from",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:group",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:infer",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:inputs",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:invoke",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:items",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:jitter",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:law",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:lift",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:max_attempts",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:max_parallel",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:max_tokens",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:max_tokens_total",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:max_turns",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:model",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:nika",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:on_codes",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:on_error",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:outputs",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:permits",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:prompt",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:recover",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:retry",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:returns",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:run",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:schema",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:secrets",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:shell",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:skills",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:skip",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:stdin",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:system",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:tasks",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:temperature",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:thinking",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:timeout",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:tool",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:tools",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:vision",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:when",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:with",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "word:workflow",
      "to": "set:words",
      "kind": "member-of"
    },
    {
      "from": "post:anatomy-of-a-verb",
      "to": "tool:read",
      "kind": "mentions"
    },
    {
      "from": "post:anatomy-of-a-verb",
      "to": "word:exec",
      "kind": "mentions"
    },
    {
      "from": "post:anatomy-of-a-verb",
      "to": "word:tools",
      "kind": "mentions"
    },
    {
      "from": "post:blast-radius-in-the-file",
      "to": "code:NIKA-SEC-004",
      "kind": "mentions"
    },
    {
      "from": "post:blast-radius-in-the-file",
      "to": "word:permits",
      "kind": "mentions"
    },
    {
      "from": "post:dag-for-free",
      "to": "word:after",
      "kind": "mentions"
    },
    {
      "from": "post:dag-for-free",
      "to": "word:with",
      "kind": "mentions"
    },
    {
      "from": "post:four-verbs",
      "to": "tool:fetch",
      "kind": "mentions"
    },
    {
      "from": "post:injection-goes-nowhere",
      "to": "tool:write",
      "kind": "mentions"
    },
    {
      "from": "post:intent-as-code",
      "to": "word:with",
      "kind": "mentions"
    },
    {
      "from": "post:media-are-workflow-citizens",
      "to": "tool:image_generate",
      "kind": "mentions"
    },
    {
      "from": "post:media-are-workflow-citizens",
      "to": "tool:tts_generate",
      "kind": "mentions"
    },
    {
      "from": "post:media-are-workflow-citizens",
      "to": "word:infer",
      "kind": "mentions"
    },
    {
      "from": "post:one-wire-five-servers",
      "to": "word:model",
      "kind": "mentions"
    },
    {
      "from": "post:standard-library-not-plugin-store",
      "to": "tool:fetch",
      "kind": "mentions"
    },
    {
      "from": "post:standard-library-not-plugin-store",
      "to": "word:invoke",
      "kind": "mentions"
    },
    {
      "from": "post:the-agent-workflow-spectrum",
      "to": "code:NIKA-INFER-001",
      "kind": "mentions"
    },
    {
      "from": "post:the-agent-workflow-spectrum",
      "to": "word:model",
      "kind": "mentions"
    },
    {
      "from": "post:the-agent-workflow-spectrum",
      "to": "word:schema",
      "kind": "mentions"
    },
    {
      "from": "post:the-agent-workflow-spectrum",
      "to": "word:tools",
      "kind": "mentions"
    },
    {
      "from": "post:the-editor-tells-the-truth",
      "to": "tool:jq",
      "kind": "mentions"
    },
    {
      "from": "post:the-editor-tells-the-truth",
      "to": "tool:log",
      "kind": "mentions"
    },
    {
      "from": "post:the-editor-tells-the-truth",
      "to": "word:when",
      "kind": "mentions"
    },
    {
      "from": "post:the-generative-workflow",
      "to": "provider:gemini",
      "kind": "mentions"
    },
    {
      "from": "post:the-generative-workflow",
      "to": "provider:mock",
      "kind": "mentions"
    },
    {
      "from": "post:the-generative-workflow",
      "to": "tool:image_generate",
      "kind": "mentions"
    },
    {
      "from": "post:the-generative-workflow",
      "to": "word:const",
      "kind": "mentions"
    },
    {
      "from": "post:the-mcp-server-you-didnt-build",
      "to": "tool:write",
      "kind": "mentions"
    },
    {
      "from": "post:the-one-task-rerun",
      "to": "word:outputs",
      "kind": "mentions"
    },
    {
      "from": "post:the-pipeline-is-a-file",
      "to": "provider:ollama",
      "kind": "mentions"
    },
    {
      "from": "post:the-pipeline-is-a-file",
      "to": "word:model",
      "kind": "mentions"
    },
    {
      "from": "post:the-pipeline-is-a-file",
      "to": "word:permits",
      "kind": "mentions"
    },
    {
      "from": "post:the-run-that-waits",
      "to": "word:permits",
      "kind": "mentions"
    },
    {
      "from": "post:the-run-that-waits",
      "to": "word:when",
      "kind": "mentions"
    },
    {
      "from": "post:the-secrets-line",
      "to": "word:outputs",
      "kind": "mentions"
    },
    {
      "from": "post:the-secrets-line",
      "to": "word:secrets",
      "kind": "mentions"
    },
    {
      "from": "post:the-secrets-line",
      "to": "word:with",
      "kind": "mentions"
    },
    {
      "from": "post:the-trace-you-can-replay",
      "to": "word:after",
      "kind": "mentions"
    },
    {
      "from": "post:the-trace-you-can-replay",
      "to": "word:with",
      "kind": "mentions"
    },
    {
      "from": "post:written-by-agents",
      "to": "provider:ollama",
      "kind": "mentions"
    },
    {
      "from": "post:written-by-agents",
      "to": "word:model",
      "kind": "mentions"
    },
    {
      "from": "post:written-by-agents",
      "to": "word:permits",
      "kind": "mentions"
    },
    {
      "from": "code:NIKA-AGENT-001",
      "to": "word:max_turns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AGENT-002",
      "to": "word:max_tokens_total",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AGENT-003",
      "to": "word:skills",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AGENT-004",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AGENT-004",
      "to": "word:skills",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AGENT-005",
      "to": "word:model",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AUTH-006",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AUTH-009",
      "to": "word:env",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AUTH-009",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AUTH-010",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-AUTH-011",
      "to": "word:lift",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:assert",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:chart",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:compose",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:convert",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:date",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:decide",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:done",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:edit",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:emit",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:fetch",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:glob",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:grep",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:hash",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:image_fx",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:image_generate",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:inspect",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:jq",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:json_diff",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:json_merge_patch",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:log",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:notify",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:read",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:tts_generate",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:uuid",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:validate",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:wait",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "tool:write",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-001",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "tool:done",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-BUILTIN-DONE-001",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-CANCEL-001",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-001",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-001",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-002",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "word:inputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "word:outputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-COMP-004",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-001",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-001",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-002",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-002",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-004",
      "to": "word:on_error",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-004",
      "to": "word:recover",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-005",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-006",
      "to": "word:when",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-008",
      "to": "word:group",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DAG-009",
      "to": "word:group",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DECIDE-002",
      "to": "word:schema",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DEFAULT-001",
      "to": "word:const",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DEFAULT-001",
      "to": "word:inputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "word:env",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-DRIFT-001",
      "to": "word:secrets",
      "kind": "names"
    },
    {
      "from": "code:NIKA-EXEC-001",
      "to": "word:capture",
      "kind": "names"
    },
    {
      "from": "code:NIKA-EXEC-002",
      "to": "word:command",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-002",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-002",
      "to": "word:schema",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-003",
      "to": "word:model",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "word:max_tokens",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "word:model",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INFER-004",
      "to": "word:thinking",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INVOKE-001",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-INVOKE-002",
      "to": "word:schema",
      "kind": "names"
    },
    {
      "from": "code:NIKA-LOCK-001",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-002",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-002",
      "to": "word:tasks",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-003",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-004",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-007",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "word:infer",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-008",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-010",
      "to": "word:timeout",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-011",
      "to": "word:retry",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-012",
      "to": "word:on_error",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-013",
      "to": "word:extract",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-013",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-014",
      "to": "word:secrets",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "word:command",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "word:exec",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "word:infer",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-018",
      "to": "word:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-022",
      "to": "word:tasks",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-024",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-024",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "word:capture",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "word:decode",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-025",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-027",
      "to": "word:system",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "word:jitter",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-PARSE-028",
      "to": "word:retry",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:command",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:model",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:on_error",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:recover",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-001",
      "to": "word:shell",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-002",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-002",
      "to": "word:tools",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-003",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-004",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-005",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-005",
      "to": "word:permits",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "word:infer",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "word:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-006",
      "to": "word:secrets",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-007",
      "to": "word:outputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-007",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-008",
      "to": "word:lift",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-008",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "word:agent",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-009",
      "to": "word:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-010",
      "to": "word:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "word:for_each",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "word:tasks",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-012",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "word:prompt",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-014",
      "to": "word:when",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:exec",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:nika",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:shell",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-SEC-015",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TIMEOUT-001",
      "to": "word:for_each",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TIMEOUT-001",
      "to": "word:timeout",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-001",
      "to": "word:outputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-001",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-003",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-003",
      "to": "word:schema",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-004",
      "to": "word:decode",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-004",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-006",
      "to": "word:group",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "word:exec",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "word:invoke",
      "kind": "names"
    },
    {
      "from": "code:NIKA-TYPE-101",
      "to": "word:returns",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VALUES-002",
      "to": "word:env",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "word:const",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "word:inputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-001",
      "to": "word:secrets",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-003",
      "to": "word:schema",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-005",
      "to": "word:when",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-006",
      "to": "word:for_each",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-006",
      "to": "word:when",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-009",
      "to": "word:outputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-020",
      "to": "word:tasks",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:after",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:on_error",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:outputs",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:recover",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:tasks",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:with",
      "kind": "names"
    },
    {
      "from": "code:NIKA-VAR-021",
      "to": "word:workflow",
      "kind": "names"
    },
    {
      "from": "chapter:canon.yaml",
      "to": "layer:proof",
      "kind": "projects-to"
    },
    {
      "from": "chapter:examples/manifest.yaml",
      "to": "layer:proof",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/01-envelope.md",
      "to": "layer:boundary",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/01-envelope.md",
      "to": "layer:shape",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/02-verbs.md",
      "to": "layer:acts",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/03-dag.md",
      "to": "layer:flow",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/03-dag.md",
      "to": "layer:shape",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/04-variables.md",
      "to": "layer:boundary",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/04-variables.md",
      "to": "layer:shape",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/05-errors.md",
      "to": "layer:refusals",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/07-conformance.md",
      "to": "layer:proof",
      "kind": "projects-to"
    },
    {
      "from": "chapter:spec/09-types.md",
      "to": "layer:shape",
      "kind": "projects-to"
    },
    {
      "from": "chapter:stdlib/builtins-v0.1.md",
      "to": "layer:reach",
      "kind": "projects-to"
    },
    {
      "from": "chapter:stdlib/extract-modes-v0.1.md",
      "to": "layer:reach",
      "kind": "projects-to"
    },
    {
      "from": "chapter:stdlib/providers-v0.1.md",
      "to": "layer:reach",
      "kind": "projects-to"
    },
    {
      "from": "chapter:templates/README.md",
      "to": "layer:reach",
      "kind": "projects-to"
    },
    {
      "from": "showcase:bookmark-triage",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:bookmark-triage",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:bookmark-triage",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:bookmark-triage",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:convert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:date",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:ceo-monday-brief",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "tool:date",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "tool:emit",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:competitor-radar",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:emit",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:hash",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:json_diff",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:json_merge_patch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:config-drift-sentinel",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "tool:assert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "tool:validate",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:contract-guard",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "tool:glob",
      "kind": "witnesses"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:corpus-digest",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "tool:chart",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "tool:convert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:csv-chart-report",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "verb:agent",
      "kind": "witnesses"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:deep-research-brief",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "tool:convert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "tool:validate",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:etl-quarantine",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:image-fx-batch",
      "to": "tool:glob",
      "kind": "witnesses"
    },
    {
      "from": "showcase:image-fx-batch",
      "to": "tool:image_fx",
      "kind": "witnesses"
    },
    {
      "from": "showcase:image-fx-batch",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:image-fx-batch",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:assert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:wait",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:incident-war-room",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "tool:convert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:invoice-chaser",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "tool:glob",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:localization-factory",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "tool:log",
      "kind": "witnesses"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:meeting-actions",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:model-bench",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:model-bench",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:model-bench",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:model-bench",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:og-images",
      "to": "tool:image_generate",
      "kind": "witnesses"
    },
    {
      "from": "showcase:og-images",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "tool:grep",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "verb:agent",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:pr-review-fanout",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:price-watch",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:price-watch",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:price-watch",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "tool:edit",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-notes",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:json_diff",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-radar",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:assert",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:date",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:emit",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:prompt",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "tool:wait",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:release-train",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "tool:glob",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:resume-screener",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:seo-content-brief",
      "to": "tool:fetch",
      "kind": "witnesses"
    },
    {
      "from": "showcase:seo-content-brief",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:seo-content-brief",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:seo-content-brief",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:social-repurpose",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:social-repurpose",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:social-repurpose",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:social-repurpose",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:standup-digest",
      "to": "tool:date",
      "kind": "witnesses"
    },
    {
      "from": "showcase:standup-digest",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:standup-digest",
      "to": "verb:exec",
      "kind": "witnesses"
    },
    {
      "from": "showcase:standup-digest",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:standup-digest",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "tool:notify",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "tool:uuid",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:support-triage",
      "to": "verb:invoke",
      "kind": "witnesses"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "tool:jq",
      "kind": "witnesses"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "tool:read",
      "kind": "witnesses"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "tool:write",
      "kind": "witnesses"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "verb:infer",
      "kind": "witnesses"
    },
    {
      "from": "showcase:transcript-shownotes",
      "to": "verb:invoke",
      "kind": "witnesses"
    }
  ]
}
