Policy as Code and Release Decisions

How evidence, policy and accountability converge into a decision somebody owns.

Policies tend to fail at the point where prose meets a pipeline.

Consider a policy that reads: high-risk agents require human oversight. It is correct, and no deployment system can act on it. Written in a form a gate can evaluate, the same requirement becomes something else entirely.

IF risk_tier = high
AND required_signoff != approved
THEN BLOCK
FROM POLICY STATEMENT TO EXECUTABLE RULEPOLICY STATEMENT“High-risk agents require human oversight and must notship with unresolved critical findings.”true, andunenforceableEXECUTABLE RULEscoperisk_tier = high, environment = productionthresholdsmin_final_score = 8.5hard metricssafety, tool_use — breach blocks, never reviewsblock rulespolicy_violation, unsafe_action, phantom_tool_callapprovalstwo roles, separated from the builderfreshnessre-evaluate weekly, and on any AI-BOM changeexceptionsrecorded, scoped, time-bounded, auto-expiringversionv4, effective 2026-06-01Anything a person has to remember at release time is not yet a control.
Figure 13.1From policy statement to executable rule.

This does not mean every ethical judgment becomes an if-statement. It means the parts that can be explicit should be executable and versioned, and human judgment stays exactly where the policy puts it — with a record that it happened.

What an executable policy has to state#

Eight elements cover most cases: the scope it governs, the thresholds an agent must meet, which breaches block rather than review, which controls must be passing, which roles sign off and who may not, how long evidence stays valid, how an exception is recorded and expired, and the policy’s own version and effective date.

That last element is easy to omit and awkward to be without. A reviewer needs to know not only what evidence existed but which rule set turned it into a decision.

What that looks like in practice#

A ProofAgent governance profile declares the agent’s risk context and lets a deterministic classifier derive the rest — the tier, the obligations, the frameworks in scope, and the guardrails.

agent_governance_profile:
  name: "Vendor Payment Exception — production"
  fail_on: block
  intake:
    use_case: creditworthiness
    autonomy_level: L3
    data_sensitivity: pii
    region: eu
    human_oversight: false
    takes_consequential_actions: true

Six answers produce a high-risk tier with its reasons attached, a minimum score, a blocking severity, a sign-off requirement, a re-evaluation cadence, and the frameworks that apply.

Figure 13.2Policies as the platform holds them: thresholds, block rules and the frameworks each policy checks. ProofAgent Governance Portal; fictional data.

The platform-side profile is more granular, and its shape is worth copying whatever tooling you use.

ElementExampleRead as
min_final_score8.5overall floor
min_<metric>min_safety: 9.0per-metric floor
hard_metrics["safety"]a breach here blocks; others review
block_rulesphantom_tool_call, pii_leak, unsafe_actionfinding types that block
block_severitycriticalthe severity at which those rules bite
review_severities["high", "critical"]findings that force review
max_metric_regression1.5tolerated drop against the baseline

Read in plain terms: require 8.5 overall, require safety at 9.0 and treat a shortfall there as a block rather than a review, send a low tool-use score to review, and block outright on any critical phantom tool call, personal-data leak, or unsafe action.

One enterprise-wide threshold is almost never right. Inheriting a baseline and adding requirements as risk rises — more adversarial turns, stronger context thresholds, mandatory controls, shorter freshness windows, additional approvers — is what turns a risk tier from a label into a constraint.

Because a policy is production logic, it deserves test cases: given this evidence package, expect a pass; given a critical control failure, expect a block; given a missing approval, expect a review. Determinism is what makes that possible, and a gate whose rule ordering varies cannot be tested or explained afterward.

The gate, and the three things it can say#

A release gate has one job: turn evidence and policy into a recorded decision.

THE RELEASE GATEAgentregistered identity and versionAI-BOMwhat is actually runningRisktier and obligationsEvaluationbehavior, with evidenceContextthe seven criteriaControlsstatus, including missingPAIreadiness, decomposedPolicythe version in forceSign-offnamed, and separatedRELEASE GATEdeterministic · recordedPASSauthorized,in scopeREVIEWaccountablejudgmentBLOCKnotauthorizedMissing evidence is not a pass. The gate fails closed.
Figure 13.3Everything the gate consumes, and the three things it can say.

A PASS means the required evidence and controls satisfy the release policy — for this version, this environment, this user population, this data class, this tool set. It is not a certificate that the agent cannot fail, and a PASS for a pilot does not authorize enterprise deployment.

A REVIEW means the policy requires human judgment. A named person with authority accepts a stated residual risk, in writing, with an expiry. It is neither a failure nor a formality.

A BLOCK means a release condition failed. The block names the exact reason and the remediation or missing evidence that would clear it.

PASS, REVIEW, BLOCKPASSAuthorized under astated scope: thisversion, thisenvironment, thispopulation, these tools.Not a certificate that itcannot fail.REVIEWA named person withauthority accepts aresidual risk, in writing,with a time bound.Not a failure, and not aformality.BLOCKA non-negotiablecondition failed. Theblock names the reasonand what would clear it.Cannot be averagedaway.
Figure 13.4PASS, REVIEW and BLOCK, defined so they cannot be used loosely.

Underneath, the ProofAgent gate engine evaluates five checks and takes the highest outcome, where BLOCK beats REVIEW beats PASS.

CheckTriggers whenOutcome
Block rulea listed finding type occurs at or above the blocking severityBLOCK
Overall thresholdthe final score is missing or below the floorBLOCK
Metric thresholda per-metric score is missing or below its floorBLOCK if the metric is hard, else REVIEW
Severity findingsany finding sits at a review severityREVIEW
Regressiona metric dropped against the baseline beyond toleranceBLOCK if configured, else REVIEW

Three details decide whether the gate can be trusted. Missing scores are treated as below threshold, so the gate fails closed rather than open. Severity is ranked rather than compared as text, so an unrecognized value ranks lowest and a typo cannot promote a finding. And every check that fired is recorded with a machine-readable key and a human-readable reason, because that list is the evidence behind the decision.

Figure 13.5A gate decision with its reasons: two block rules matched, the overall floor missed, two hard-metric floors breached. ProofAgent Governance Portal; fictional data.

A decision is a record, not a status light#

Four properties make a release decision useful months later. It is scoped, naming the environment, population, data classes, and tools it authorizes. It is versioned against the agent version, the composition record, and the policy. It is evidence-backed, linked to the run that qualified it. And it is recorded with requester, approver, role, timestamp, notes, and the rule that fired.

Figure 13.6The sign-off queue: what needs a human, who it is assigned to, the risk tier and the gate outcome. ProofAgent Governance Portal; fictional data.

For higher-risk agents, separation of duties means the builder cannot be the sole approver, and the system should enforce that rather than trusting it.

Two more things belong in the record. Exceptions, which real organizations need — an incident forcing temporary use outside the cadence, a control partly satisfied with compensating safeguards, a pilot approved for a limited population — recorded with an owner, a scope, an expiry, and a follow-up, so that they return to review automatically rather than persisting quietly. And the reversal path: how to remove credentials, disable tools, revert a model or prompt, restore a prior version, together with how long that actually takes when somebody tries it.

The test worth applying to the whole arrangement is simple. Could an independent reviewer reproduce the reason this exact agent version was allowed to operate on the day it was released?

A release decision should always be traceable to the evidence and policy that produced it.

Apply This Chapter

Convert your release intent into rules a gate could execute, then test the reversal path. Both are quick, and both tend to reveal that the current process depends on somebody remembering something.

Get these as working templates