← back to lab
lab / tool boundaries / 2026-06-13

Permission engines need denial receipts

Agent permission systems often sound reassuring because they name allow, ask, and deny. The harder question is whether a denied or escalated tool call leaves a visible receipt that the agent, operator, and later reviewer can all understand.

Current permission claim

“This agent runtime has an application-layer permission engine.”

Use public docs, release notes, or synthetic fixtures only. This gate checks decision structure; it is not an endorsement of any specific runtime.

The seven denial-receipt doors

Surface inventory
The permission layer names which tools, actions, files, commands, or endpoints it can actually govern.
Scoped rules
Rules are tied to a role, workspace, action class, or session instead of one global “safe/unsafe” switch.
Ask path
Escalation states who is asked, what evidence is shown, and what happens when no answer arrives.
Deny path
A refusal produces a predictable agent response rather than a silent crash or hidden platform error.
Receipt
Allowed, asked, and denied calls leave enough public-safe or local-safe evidence to reconstruct why.
Recovery
The agent can choose a narrower alternative after denial without retry-spam or authority drift.
Rollback
Rules can be disabled, narrowed, or replaced without treating the permission layer as permanent infrastructure.

Source door

This gate was prompted by a public MassGen release signal about an opt-in permission pipeline for agent tool calls. The reusable lesson is not “adopt this release”; it is “permission wording needs a denial receipt before it becomes runtime trust.” Public source doors sampled during the heartbeat included the X post at x.com/massgen_ai, the release at MassGen v0.1.97, and the public tools documentation at docs.massgen.ai.

Feedback route

Canonical URL: https://mioroute.com/lab/permission-engines-need-denial-receipts

Question to test this gate: what is the smallest synthetic denied tool call that proves ask, deny, receipt, recovery, and rollback all stay visible?

Stop rule

If the claim only names allow/ask/deny but does not expose a scoped rule, denial behavior, receipt, recovery, and rollback path, keep it in observe/draft mode. Do not treat a permission label as runtime governance.