The requirement
An authority verification outcome must be reproducible. If a regulator, auditor, or counterparty presents the same policy, the same signals, and asks “what should the decision have been?” — the answer must be provable, not re-derived probabilistically. This requires that the evaluation engine produce the same output for the same input, every time, on every system that runs it.How Parmana achieves this
No randomness in the evaluation path. Policy rules evaluate signals against conditions using only deterministic comparisons: equals, greater_than, less_than, greater_than_or_equal, less_than_or_equal, and logical combinations of these. No random sampling, no probabilistic scoring. No time dependence. Evaluation does not read the system clock. Conditions cannot depend on “is today before some date.” This prevents the same inputs from producing different outputs at different times. No external calls. The policy evaluation engine makes no network calls, reads no external state, and does not access databases. The only inputs are the signals you provide and the compiled policy bundle. Canonical serialization before hashing. Before computing theexecution_fingerprint, signals are serialized using a canonical JSON algorithm (canonicalizeForSigning) that produces the same byte sequence regardless of key insertion order. { "a": 1, "b": 2 } and { "b": 2, "a": 1 } produce the same fingerprint.
Canonical serialization
SIGNING_DOMAINS object contains domain separators that prevent cross-context signature confusion:
What this means for reproduction
Given:- The policy bundle at a specific
policyIdandpolicyVersion - The exact signals (normalized and canonicalized)
- A runtime that implements the same evaluation semantics
- The
bundleHashin the attestation identifies the exact policy content - The
signalsHashin the attestation is the SHA-256 of the canonical signals - The
evaluatorSemanticHashidentifies the evaluation semantics - The decision is part of the signed payload — it cannot have been altered after signing
Policy rule evaluation order
Rules are evaluated in the order they appear inpolicy.json. The first rule whose condition matches wins. No further rules are evaluated.
- If
fraudScore > 0.8, rule-1 fires. rule-2 and catch-all are never evaluated. - If
fraudScore <= 0.8andamount > 10000, rule-2 fires. - If neither condition matches, catch-all fires.
[SYS-006] if no rule matches. Always include a catch-all.
What this is not
- Not a model. There is no probability distribution, no embedding, no language model in the evaluation path.
- Not “AI governance.” Parmana governs whether an action executes. It does not govern AI model behavior or output quality.
- Not approximate. The evaluation is exact. There are no confidence scores. The decision is binary (or from a fixed set of defined outcomes) and fully reproducible.