What this is not
How to write an agent mandate: denials first, expiry, requires_human
This is not enforcement. A checked mandate does not stop an action. Only a runtime that exclusively controls the protected tool or credential could refuse it.
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.
Three rules that actually restrict
- Denials first. Clauses are first-match-wins. A denial written after a broader permit never runs. It reads as though it applies and does nothing. The checker refuses a mandate where a later denial is unreachable.
- Set
not_valid_after. An unbounded mandate lets delegated authority outlive the task it was granted for. After that timestamp every action is denied.
- List
requires_human. Typical kinds:credential_use,transaction,administrative. That list turns a permitting clause into an escalation. A ceiling narrows what may be asked for. It does not remove the person.
What does not restrict
Prose in purpose, a clause note, or a request justification is for whoever reviews this later. Only structured match conditions decide. Writing "never touch payroll" in purpose and not as a clause restricts nothing.
The mandate default must be deny or escalate. permit by default cannot express a limit.
Prefix matching is literal. It does not resolve symlinks. Directory prefixes end in /. Write /srv/tickets/, not /srv/tickets.
A worked shape
Deny secrets and home paths first. Then permit a narrow read. Then permit a narrow write or post. Keep transaction in requires_human even if you also write a refund ceiling.
The skill includes an example mandate that exercises permit, deny, escalate, and a shadowed-denial file that is supposed to be refused.
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 and examples: hanria.ai/developers.
Developers: https://hanria.dev/ Boundaries: https://hanria.ai/boundaries/
Honest verdict
Write the grant as clauses, not as hopes in a paragraph. Do not treat the skill as a lock. It checks and records, but it never holds the tool or credential.