Most teams write agent safety as prose. A system prompt says the agent must not touch billing records. A wiki page says refunds need approval. A security review says production changes are proposal-only. None of that is read at the moment of execution, and all of it drifts the first time someone edits the prompt. The OWASP Top 10 for LLM Applications puts excessive agency at position six, describing exactly the failure where an LLM system is granted more autonomy and more connected permissions than the task requires (OWASP). A prompt line is a suggestion the model follows most of the time and ignores when it matters most; tests on commercial models show that reframing an attack as a fictional scenario defeats a "never discuss X" instruction with significant success (Kalvium Labs).
Policy-as-code is the established answer to this class of problem outside AI: rules expressed in a human-readable declarative format, versioned alongside application code, evaluated by a policy engine, and checked in CI/CD before deployment (Wiz). For agents, the same pattern applies at the runtime boundary, with a policy decision point placed before retrieval, tool invocation, workflow writes and privileged operations, so that model output is treated as a request for authorization rather than authorization itself (Thomas Thelliez).
The distinction that matters is enforcement versus documentation. A policy file that is only read by humans is a wiki page with YAML syntax. The same file becomes a control when three conditions hold: the runtime loads it fresh at the start of every run, unmatched actions are denied rather than allowed, and the test suite parses the identical file to build its expectations.



