{
  "tool_id": "art-628-declarative-decision-tree-evaluator",
  "kernel_id": "art-628-declarative-decision-tree-evaluator",
  "display_name": "Declarative Decision-Tree Evaluator",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_mandate",
  "purpose": "Evaluates a caller-supplied, hash-pinned decision tree against caller-supplied facts entirely offline, client-side. The tree is inert data -- one audited interpreter walks it over a closed operator set (eq, in, lt, lte, gt, gte, between, all_of, any_of, none_of), never eval and never a function-valued criterion. Every node in the tree, internal criteria included and not leaves only, must carry a citation to a pinned clause snapshot; a tree with any uncited node is rejected by the loader. Independently recomputes the tree's own tree_digest from its bytes and refuses to evaluate on a mismatch -- never trusting the declared digest as an oracle for itself. Ships with a demonstrator tree exercising the Reg D Rule 501(a) entity-type accredited-investor category test (17 CFR 230.501(a)(1), (2), (3), (8), (9)), enumerated exhaustively over its 5 declared boolean fields (32 combinations, 0 unexplained results) because every criterion in that tree is a bounded enum. Never a full accredited-investor determination: the natural-person and numeric-threshold prongs of Rule 501(a) are explicitly out of this demonstrator's scope.",
  "control_description": "Evaluates a caller-supplied, hash-pinned decision tree against caller-supplied facts entirely offline, client-side. The tree is inert data -- one audited interpreter walks it over a closed operator set (eq, in, lt, lte, gt, gte, between, all_of, any_of, none_of), never eval and never a function-valued criterion. Every node in the tree, internal criteria included and not leaves only, must carry a citation to a pinned clause snapshot; a tree with any uncited node is rejected by the loader. Independently recomputes the tree's own tree_digest from its bytes and refuses to evaluate on a mismatch -- never trusting the declared digest as an oracle for itself. Ships with a demonstrator tree exercising the Reg D Rule 501(a) entity-type accredited-investor category test (17 CFR 230.501(a)(1), (2), (3), (8), (9)), enumerated exhaustively over its 5 declared boolean fields (32 combinations, 0 unexplained results) because every criterion in that tree is a bounded enum. Never a full accredited-investor determination: the natural-person and numeric-threshold prongs of Rule 501(a) are explicitly out of this demonstrator's scope.",
  "declared_inputs": [],
  "declared_outputs": [],
  "kernel_digest": "sha256:23fafefb1f2949dbb40b7bfb74f121ebae0388f743e72666aba5713731f80239",
  "trust_label": "deferred: deterministic source published, zkVM proof not yet generated; New gpu:false node, art-628, staged 2026-08-16 (ACCT-DTREE-K-1). No GPU proving attempted this session -- GPU-CYCLE-PREFLIGHT-1's exec-cycle check could not be run (runq-cpu unavailable in this environment, same precedent as art-626/ACCT-AMORT-K-1's cycle_preflight: PENDING). Ratchet-visible deferral per the Sec.18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Proving is a follow-on, gated by SIDEBYSIDE-BEFORE-PROVE-1 (SO #39) since this is a standards-implementing node (17 CFR 230.501(a)).",
  "data_vintage": "2026-08-16",
  "last_validated": "2026-08-16",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "deferred",
  "wave": 100,
  "source_url": "https://ainumbers.co/chaingraph/art-628-declarative-decision-tree-evaluator.html",
  "generated_at": "2026-08-16T20:24:46.973Z"
}
