Capability Boundaries Are Runtime-Enforced, Not Policy-Checked

The runtime platform enforces capability boundaries at the runtime level, not at the application policy layer. Each agent runs as a privileged identity the runtime checks on every state read, mutation, or invocation. An agent attempting an action outside its capability does not receive a permission error to handle in user code -- the operation rolls back as if it never ran, and there is no half-completed state to clean up.

Why it is held

Capability boundaries that depend on cooperating application code are advisory, not enforced. They work when the code remembers to check; they fail silently when the code does not. In agent infrastructure -- where LLM-driven actors take novel actions, where prompt injection can subvert intent, where tool calls can attempt operations their principals never sanctioned -- "did the application remember to check?" is the failure mode that scales worst with agent volume. Runtime enforcement removes the entire class: the platform checks every operation, regardless of whether the application code thought to.

The runtime-enforcement stance composes with atomicity. The atomic primitive ([[Agent Operations Commit Wholly or Roll Back Wholly]]) treats failure mid-operation as rollback to the pre-operation snapshot; the capability primitive treats out-of-capability operations as one such failure class. Rollback IS the enforcement: the runtime does not signal a permission error and continue; it reverts the operation as if it never ran. Weakening capability separation to "permission error returned to caller" would also weaken atomicity, because partial state reached before the permission check would persist. The two primitives reinforce each other; they are best held together.

The reference runtime provides this via a call-chain introspection mechanism that lets kernel-tier code determine which tier called it. The foundation layer's kernel and system tier macros gate access to privileged operations; a file-access daemon mediates file-level permissions. These mechanisms are part of the foundation layer the MVA adopts, not a policy layer added on top. Capability separation is a runtime primitive in the platform's roots, and it operates with the same all-or-nothing semantics as every other runtime primitive.

Multi-agent settings amplify the value. When agents share state and may attempt mutations on each other's data, the cost of "trust each agent's code to honor capability boundaries" rises with agent count. By the time the system has more agents than any single contributor reads code for, runtime-level enforcement is the only enforcement that operates at the system's scale. Honest scope-of-applicability for the platform (as the anti-pitch Conviction surfaces) acknowledges that this is precisely the workload class where capability separation pays back the platform's other costs.

What it asks

Honoring this Conviction asks the project to defend the runtime-enforcement boundary as the locus of capability checking, not as one check among several application-layer checks.

Drift recognition

The Conviction has weakened when the project's outputs treat capability checks as the application's responsibility rather than as the runtime's guarantee.

Sources

Relations