What this is not
What should an agent do on permit, deny, escalate, or error?
These outcomes are not enforcement. The agent can ignore them. A runtime could refuse only by controlling the exclusive path to the protected tool or credential.
HANRIA is a coined name. No expansion, derivation, or translation is published or intended. A U.S. trademark application is pending; no registration or completed clearance is claimed.
The four obligations
permit (exit 0). A clause covers this. Proceed, then record. Do not re-perform the operation yourself as if the check were the work.
deny (exit 1). Stop. Do not route around it. A denial is a result, not an obstacle. Attempting the operation by another path defeats the only thing this system does.
escalate (exit 2). Stop and ask the operator. Report that approval is pending. Do not proceed, and do not retry in a loop. A general instruction to be helpful is not that approval.
error (exit 3). Treat as deny. Report the text. Evaluation is fail-closed: an expired mandate, a malformed one, an unknown operation kind, or an internal fault never returns permit by accident.
When no runtime answers
detect_runtime.py reports absent. The advisory check returns a verdict but does not govern, authorize, record, or refuse the action. Do not describe any of those as runtime results when no runtime answered.
Entry
Use the free hosted check, which runs the evaluator and keeps no request content: MCP https://check.hanria.ai/v1/mcp or HTTP https://check.hanria.ai/v1/check. Schemas, examples, script names, and exit codes: hanria.ai/developers.
Developers: https://hanria.dev/ Boundaries: https://hanria.ai/boundaries/
Honest verdict
Honor the exit code. An advisory check can report permit, deny, escalate, or error. Refusal requires a runtime with exclusive control of the protected tool or credential.