function apply(decision: PolicyDecision, draft: string): Outcome { switch (decision.verdict) { case "ALLOW": return { deliver: draft }; case "WARN": // The PDP rewrote the content; always prefer the transformed version. return { deliver: decision.transformedContent ?? draft }; case "BLOCK": return { deliver: safeRefusal(decision.reason) }; case "ESCALATE": queueForReviewer(decision); return { deliver: holdMessage() }; }}
On WARN you must use transformedContent if it is present. That is where
the PDP hands back, for example, a redacted version of the context with
non-essential identifiers removed. Ignoring it means delivering the unredacted
original, a policy violation you were just warned about.
The reference Kotlin client (AkharaPolicy.kt) additionally defines REWRITE
and PAUSE for forward-compatibility. The PDP’s shipped taxonomy is the four
verdicts above, treat WARN as the rewrite verdict. If you build a custom
client, map any unknown verdict to a fail-closed BLOCK rather than continuing.
See Fail-closed.For how a verdict is produced (what the PEP sends and how the latch decides),
see Tool-call interception. For where
verdicts go afterward, see Audit and evidence.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Akhara","description":"Verification suite for AI agents","colors":{"primary":"#0F0F0F","light":"#F6F3EE","dark":"#0F0F0F"},"logo":{"light":"https://mintcdn.com/rub-9649c3c5/7jGH415lt2Djr--7/logo/light.png?fit=max\u0026auto=format\u0026n=7jGH415lt2Djr--7\u0026q=85\u0026s=6aa508a6b0d1d232ca38155bd6a0d9ff","dark":"https://mintcdn.com/rub-9649c3c5/7jGH415lt2Djr--7/logo/dark.png?fit=max\u0026auto=format\u0026n=7jGH415lt2Djr--7\u0026q=85\u0026s=247d932babbd1f3a9c17b3c4743c731a","href":"/"},"favicon":"https://mintcdn.com/rub-9649c3c5/7jGH415lt2Djr--7/favicon.png?fit=max\u0026auto=format\u0026n=7jGH415lt2Djr--7\u0026q=85\u0026s=1c4a1fb79073e2429da8808aa28a9dff","api":{"openapi":"control-plane/api-reference/openapi.json"},"appearance":{"default":"light"},"background":{"color":{"light":"#F6F3EE","dark":"#0F0F0F"}},"navbar":{"links":[{"href":"https://admin-agi.akhara.ai","label":"Env dashboard"},{"href":"https://github.com/Akhara-AI/","label":"GitHub"}]},"footer":{"socials":{"website":"https://akhara.ai","github":"https://github.com/Akhara-AI"}},"search":{"prompt":"Search..."},"markdown":{"instructions":["Company name is Akhara AI (never Rubric AI). Keep lowercase rubric/rubrics only when meaning grading criteria.","Expert Review (docs path talent/) is enterprise BYO experts for audit and review: invite customer specialists; do not pitch Akhara recruiting or a public expert career portal. RLHF and domain writing are secondary work types.","Prefer concrete API examples against public hosts: Environments eval API https://agi.akhara.ai, Control plane PDP https://api.akhara.dev, Evaluation https://app.akhara.ai / https://api.akhara.ai, Expert Review portal https://talent.akhara.ai.","Do not invent a public hostname for private orchestrators or env API internals.","Do not confuse control-plane latches with Environments confirmation latches.","Environments SDK/API examples: curl against https://agi.akhara.ai. Evaluation SDK: from akhara import Akhara and AKHARA_API_KEY.","Start with /llms.txt for the docs index and OpenAPI links; fetch individual pages as .md exports."]},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rub-9649c3c5","hasAudioNarration":false,"actualSubdomain":"rub-9649c3c5","customDomains":["docs.akhara.ai"],"gitSource":{"type":"github","owner":"alignai-co","repo":"akhara-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a712cfff14ecf184337feb1","collectionId":"ae860011-5946-4c1c-84c4-7f3dbf85652a","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6a712cfff14ecf184337feb1"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a712cfff14ecf184337feb1:success","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"Evaluation","count":83},{"language":"default","tag":"API reference","count":70},{"language":"default","tag":"Documentation","count":49},{"language":"default","tag":"Control plane","count":31},{"language":"default","tag":"Environments","count":14},{"language":"default","tag":"Datasets","count":13},{"language":"default","tag":"Expert Review","count":13},{"language":"default","tag":"Akhara AI","count":12},{"language":"default","tag":"How it works","count":7},{"language":"default","tag":"Authentication","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes akh-gw-travel{0%{left:0;opacity:0}3%{left:0;opacity:1}13%,40%{left:calc(25% + 1px);opacity:1}50%,56%{left:50%;opacity:1}66%,86%{left:75%;opacity:1}92%,to{left:75%;opacity:0}}@keyframes akh-gw-c1{0%,15%,96%,to{background:0 0}17%,90%{background:var(--gw-ink)}}@keyframes akh-gw-c2{0%,21%,96%,to{background:0 0}23%,90%{background:var(--gw-ink)}}@keyframes akh-gw-c3{0%,27%,96%,to{background:0 0}29%,90%{background:var(--gw-ink)}}@keyframes akh-gw-c4{0%,33%,96%,to{background:0 0}35%,90%{background:var(--gw-ink)}}@keyframes akh-gw-land{0%,48%,98%,to{opacity:.35}52%,92%{opacity:1}}@keyframes akh-gw-go{0%,64%,98%,to{color:var(--gw-muted)}68%,92%{color:var(--gw-ink)}}@media (min-width:1024px){#navbar .max-w-8xl.mx-auto.relative{position:relative}#navbar [data-component-part=products-selector-trigger]{position:absolute;top:50%;right:14.5rem;transform:translateY(-50%);z-index:40}}:root{--akhara-ink:#0f0f0f;--akhara-muted:#5c5c5c;--akhara-cream:#f6f3ee;--akhara-orange:#fa8938;--akhara-rule:rgba(15, 15, 15, 0.14)}#assistant-entry,#assistant-entry-mobile,#chat-assistant-sheet,#page-context-menu,#page-context-menu-button,.chat-assistant-floating-input,[class*=chat-assistant],[data-component-part=search-ask-ai-button]{display:none!important}[data-component-part=search-ask-ai-item],[data-component-part=search-list] [role=group]:has(>[data-component-part=search-ask-ai-item]){display:none!important}#pagination{margin-bottom:1.75rem}div.callout[data-callout-type],div.callout[role=note]{background:0 0!important;background-color:transparent!important;border:0!important;border-left:2px solid var(--akhara-ink)!important;border-radius:0!important;box-shadow:none!important;color:var(--akhara-ink)!important;padding:.65rem 0 .65rem 1rem!important;margin:1.25rem 0!important;gap:.75rem!important}div.callout[data-callout-type=warning]{border-left-color:var(--akhara-orange)!important}div.callout[data-callout-type=info],div.callout[data-callout-type=note],div.callout[data-callout-type=tip]{border-left-color:var(--akhara-ink)!important}div.callout,div.callout :not(svg):not(path):not([data-component-part=callout-icon]){color:var(--akhara-ink)!important}div.callout [data-component-part=callout-icon],div.callout [data-component-part=callout-icon] path,div.callout [data-component-part=callout-icon] svg{color:var(--akhara-ink)!important;stroke:currentColor!important;fill:none!important}.dark div.callout[data-callout-type=warning] [data-component-part=callout-icon],.dark div.callout[data-callout-type=warning] [data-component-part=callout-icon] path,.dark div.callout[data-callout-type=warning] [data-component-part=callout-icon] svg,div.callout[data-callout-type=warning] [data-component-part=callout-icon],div.callout[data-callout-type=warning] [data-component-part=callout-icon] path,div.callout[data-callout-type=warning] [data-component-part=callout-icon] svg{color:var(--akhara-orange)!important;stroke:currentColor!important}.dark div.callout[data-callout-type],.dark div.callout[role=note]{background:0 0!important;color:#f6f3ee!important;border-left-color:#f6f3ee!important}.dark div.callout[data-callout-type=warning]{border-left-color:var(--akhara-orange)!important}.dark div.callout,.dark div.callout :not(svg):not(path):not([data-component-part=callout-icon]){color:#f6f3ee!important}.dark div.callout [data-component-part=callout-icon],.dark div.callout [data-component-part=callout-icon] path,.dark div.callout [data-component-part=callout-icon] svg{color:#f6f3ee!important;stroke:currentColor!important}.akh-gw{--gw-ink:var(--akhara-ink);--gw-muted:var(--akhara-muted);--gw-rule:var(--akhara-rule);margin:2rem 0 2.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.dark .akh-gw{--gw-ink:#f6f3ee;--gw-muted:rgba(246, 243, 238, 0.62);--gw-rule:rgba(246, 243, 238, 0.22)}.akh-gw-head{display:flex;justify-content:space-between;gap:1rem;padding-bottom:.55rem;border-bottom:1px solid var(--gw-ink);font-size:.6rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gw-muted)}.akh-gw-track{position:relative;height:7px;margin:1.5rem 0 1rem}.akh-gw-track::before{content:\"\";position:absolute;left:0;right:0;top:3px;height:1px;background:var(--gw-rule)}.akh-gw-stop{position:absolute;top:1px;width:5px;height:5px;background:var(--gw-ink)}.akh-gw-stop-1{left:0}.akh-gw-stop-2{left:25%;top:0;width:7px;height:7px}.akh-gw-stop-3{left:50%}.akh-gw-stop-4{left:75%}.akh-gw-token{position:absolute;top:1px;left:0;width:5px;height:5px;background:var(--gw-ink);opacity:0;animation:akh-gw-travel 12s linear infinite}.akh-gw-cols{display:grid;grid-template-columns:repeat(4,1fr)}.akh-gw-col{min-width:0;display:flex;flex-direction:column;gap:.35rem;padding-right:1.25rem}.akh-gw-col:last-child{padding-right:0}.akh-gw-kicker{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:var(--gw-muted);margin-bottom:.15rem}.akh-gw a.akh-gw-v,.akh-gw-col-gate .akh-gw-kicker{color:var(--gw-ink)}.akh-gw-num{color:var(--gw-muted);opacity:.6;margin-right:.2rem}.akh-gw-line{font-size:.76rem;color:var(--gw-ink)}.akh-gw-sub{font-size:.68rem;color:var(--gw-muted)}.akh-gw ul.akh-gw-checks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.3rem}.akh-gw ul.akh-gw-checks li{margin:0;padding:0;display:flex;align-items:center;gap:.5rem;font-size:.72rem;color:var(--gw-ink)}.akh-gw ul.akh-gw-checks li::before{content:\"\";flex:none;width:6px;height:6px;border:1px solid var(--gw-ink);border-radius:0;background:0 0}.akh-gw .akh-gw-check-1::before{animation:akh-gw-c1 12s linear infinite}.akh-gw .akh-gw-check-2::before{animation:akh-gw-c2 12s linear infinite}.akh-gw .akh-gw-check-3::before{animation:akh-gw-c3 12s linear infinite}.akh-gw .akh-gw-check-4::before{animation:akh-gw-c4 12s linear infinite}.akh-gw-verdict-word{letter-spacing:.1em;animation:akh-gw-land 12s linear infinite}.akh-gw-next-word{animation:akh-gw-go 12s linear infinite}.akh-gw-verdicts{margin-top:1.75rem;border-bottom:1px solid var(--gw-rule)}.akh-gw-verdicts-label{display:block;padding-bottom:.5rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.2em;color:var(--gw-muted)}.akh-gw a.akh-gw-v{display:grid;grid-template-columns:8.5rem 1fr;align-items:baseline;gap:1rem;border-top:1px solid var(--gw-rule);border-bottom:none;padding:.55rem 0;text-decoration:none;font-weight:400}.akh-gw a.akh-gw-v:focus-visible,.akh-gw a.akh-gw-v:hover{border-top-color:var(--gw-ink)}.akh-gw-v-name{display:flex;align-items:center;gap:.55rem;font-size:.7rem;letter-spacing:.12em}.akh-gw-v-name::before{content:\"\";flex:none;width:6px;height:6px}.akh-gw-v-allow .akh-gw-v-name::before{background:var(--gw-ink)}.akh-gw-v-warn .akh-gw-v-name::before{border:1px solid var(--gw-ink)}.akh-gw-v-block .akh-gw-v-name::before{background:var(--akhara-orange)}.akh-gw-v-escalate .akh-gw-v-name::before{border:1px solid var(--akhara-orange)}.akh-gw-v-what{font-size:.7rem;line-height:1.5;color:var(--gw-muted);opacity:0;transform:translateX(-4px);transition:opacity .2s ease,transform .2s ease}.akh-gw a.akh-gw-v:focus .akh-gw-v-what,.akh-gw a.akh-gw-v:focus-visible .akh-gw-v-what,.akh-gw a.akh-gw-v:hover .akh-gw-v-what{opacity:1;transform:translateX(0)}@media (hover:none){.akh-gw-v-what{opacity:1;transform:none}}@media (max-width:720px){.akh-gw-track{display:none}.akh-gw a.akh-gw-v,.akh-gw-cols{grid-template-columns:1fr}.akh-gw-col{padding:.65rem 0;border-bottom:1px solid var(--gw-rule)}.akh-gw a.akh-gw-v{gap:.3rem}.akh-gw-v-what{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.akh-gw-token{display:none}.akh-gw ul.akh-gw-checks li::before{animation:none;background:var(--gw-ink)}.akh-gw-next-word,.akh-gw-verdict-word{animation:none}.akh-gw-next-word{color:var(--gw-ink)}}"}],"page":{"pagePath":"control-plane/concepts/verdicts","slug":"/control-plane/concepts/verdicts","pageMetadata":{"title":"Verdicts","description":"The four decisions a latch can return, and what your runtime must do with each.","href":"/control-plane/concepts/verdicts"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"The four decisions a latch can return, and what your runtime must do with each.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Every `,_jsx(_components.code,{children:`authorize`}),` call resolves to exactly one verdict. The PDP’s live taxonomy\nis four values:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Verdict`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`mayContinue`})}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`Your runtime must…`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ALLOW`})}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`No violation`}),_jsxs(_components.td,{children:[`Continue. On an `,_jsx(_components.code,{children:`action`}),`, use the returned `,_jsx(_components.code,{children:`permitId`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`WARN`})}),_jsx(_components.td,{children:`✅`}),_jsx(_components.td,{children:`Allowed but rewritten/flagged`}),_jsxs(_components.td,{children:[`Continue `,_jsxs(_components.strong,{children:[`using `,_jsx(_components.code,{children:`transformedContent`})]}),`, keep the log.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BLOCK`})}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`Prohibited`}),_jsx(_components.td,{children:`Stop the step; withhold the response or action.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ESCALATE`})}),_jsx(_components.td,{children:`❌`}),_jsx(_components.td,{children:`Needs a human`}),_jsx(_components.td,{children:`Hold pending a reviewer; do not deliver or execute.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`mayContinue`}),` is a convenience the SDK derives: it is `,_jsx(_components.code,{children:`true`}),` for `,_jsx(_components.code,{children:`ALLOW`}),` and\n`,_jsx(_components.code,{children:`WARN`}),`, `,_jsx(_components.code,{children:`false`}),` for `,_jsx(_components.code,{children:`BLOCK`}),` and `,_jsx(_components.code,{children:`ESCALATE`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`decision-shape`,children:`Decision shape`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`interface`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` PolicyDecision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` verdict`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ALLOW\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"WARN\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"BLOCK\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ESCALATE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` stage`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// input | context_egress | output | delivery | action`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` policyId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// which latch fired, e.g. \"latch-1\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` rule`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// human-readable rule name`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` reason`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// why this verdict`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` transformedContent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// present on WARN rewrites (e.g. sensitive fields redacted)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` permitId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`?:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// present only on ALLOW + action`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` mayContinue`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` boolean`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`; `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// ALLOW || WARN`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`handling-each-verdict`,children:`Handling each verdict`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` apply`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`decision`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` PolicyDecision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`draft`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Outcome`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` switch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`decision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`verdict`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ALLOW\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`deliver:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` draft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"WARN\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // The PDP rewrote the content; always prefer the transformed version.`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`deliver:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` decision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`transformedContent`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ??`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` draft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"BLOCK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`deliver:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` safeRefusal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`decision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`reason`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) };`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ESCALATE\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` queueForReviewer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`decision`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`deliver:`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` holdMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() };`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`On `,_jsx(_components.code,{children:`WARN`}),` you `,_jsx(_components.strong,{children:`must`}),` use `,_jsx(_components.code,{children:`transformedContent`}),` if it is present. That is where\nthe PDP hands back, for example, a redacted version of the context with\nnon-essential identifiers removed. Ignoring it means delivering the unredacted\noriginal, a policy violation you were just warned about.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`verdict-→-delivery-mapping-in-the-evidence-feed`,children:`Verdict → delivery mapping in the evidence feed`}),`\n`,_jsxs(_components.p,{children:[`Each decision is logged with a `,_jsx(_components.code,{children:`delivery`}),` label so auditors can read outcomes at\na glance:`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Verdict`}),_jsxs(_components.th,{children:[`Logged `,_jsx(_components.code,{children:`delivery`})]})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`ALLOW`}),` (action)`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Action authorized`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[_jsx(_components.code,{children:`ALLOW`}),` (text)`]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Safe response delivered`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`WARN`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Delivered with warning`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ESCALATE`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Held pending reviewer`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BLOCK`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`Response or action withheld`})})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`a-note-on-client-enums`,children:`A note on client enums`}),`\n`,_jsxs(_components.p,{children:[`The reference Kotlin client (`,_jsx(_components.code,{children:`AkharaPolicy.kt`}),`) additionally defines `,_jsx(_components.code,{children:`REWRITE`}),`\nand `,_jsx(_components.code,{children:`PAUSE`}),` for forward-compatibility. The PDP’s shipped taxonomy is the four\nverdicts above, treat `,_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`WARN`}),` as the rewrite verdict`]}),`. If you build a custom\nclient, map any unknown verdict to a fail-closed `,_jsx(_components.code,{children:`BLOCK`}),` rather than continuing.\nSee `,_jsx(_components.a,{href:`/control-plane/concepts/fail-closed`,children:`Fail-closed`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`For how a verdict is produced (what the PEP sends and how the latch decides),\nsee `,_jsx(_components.a,{href:`/control-plane/concepts/interception`,children:`Tool-call interception`}),`. For where\nverdicts go afterward, see `,_jsx(_components.a,{href:`/control-plane/concepts/evidence`,children:`Audit and evidence`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Verdicts","description":"The four decisions a latch can return, and what your runtime must do with each.","href":"/control-plane/concepts/verdicts"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Decision shape","slug":"decision-shape","depth":2,"children":[]},{"title":"Handling each verdict","slug":"handling-each-verdict","depth":2,"children":[]},{"title":"Verdict → delivery mapping in the evidence feed","slug":"verdict-→-delivery-mapping-in-the-evidence-feed","depth":2,"children":[]},{"title":"A note on client enums","slug":"a-note-on-client-enums","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"rub-9649c3c5","siteName":"Akhara","title":"Verdicts - Akhara","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-04T00:07:28.221Z","originalFileLocation":"control-plane/concepts/verdicts.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"The four decisions a latch can return, and what your runtime must do with each.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Akhara\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Verdicts - Akhara\">\u003cmeta data-mint-head property=\"og:description\" content=\"The four decisions a latch can return, and what your runtime must do with each.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Akhara\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.akhara.ai/control-plane/concepts/verdicts\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rub-9649c3c5.mintlify.app/_mintlify/api/og/v2?division=How+it+works\u0026amp;title=Verdicts\u0026amp;description=The+four+decisions+a+latch+can+return%2C+and+what+your+runtime+must+do+with+each.\u0026amp;theme=e6417d47a5996b99c2389c22\u0026amp;signature=34736dfe40e8231260e7e5a6488ed1796eab75ed5af16ec59fbb3b0367b07c44\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Verdicts - Akhara\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"The four decisions a latch can return, and what your runtime must do with each.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rub-9649c3c5.mintlify.app/_mintlify/api/og/v2?division=How+it+works\u0026amp;title=Verdicts\u0026amp;description=The+four+decisions+a+latch+can+return%2C+and+what+your+runtime+must+do+with+each.\u0026amp;theme=e6417d47a5996b99c2389c22\u0026amp;signature=34736dfe40e8231260e7e5a6488ed1796eab75ed5af16ec59fbb3b0367b07c44\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rub-9649c3c5/k0XU1Hbr9jnjserA/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Akhara\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F0F0F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.akhara.ai/control-plane/concepts/verdicts\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/control-plane/concepts/verdicts.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.akhara.ai/#organization\",\"name\":\"Akhara\",\"url\":\"https://docs.akhara.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rub-9649c3c5/7jGH415lt2Djr--7/logo/light.png?fit=max\u0026auto=format\u0026n=7jGH415lt2Djr--7\u0026q=85\u0026s=6aa508a6b0d1d232ca38155bd6a0d9ff\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.akhara.ai#website\",\"name\":\"Akhara\",\"url\":\"https://docs.akhara.ai\",\"publisher\":{\"@id\":\"https://docs.akhara.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.akhara.ai/control-plane/concepts/verdicts#webpage\",\"url\":\"https://docs.akhara.ai/control-plane/concepts/verdicts\",\"name\":\"Verdicts\",\"description\":\"The four decisions a latch can return, and what your runtime must do with each.\",\"dateModified\":\"2026-08-04T00:07:28.221Z\",\"isPartOf\":{\"@id\":\"https://docs.akhara.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.akhara.ai/control-plane/concepts/verdicts#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.akhara.ai/control-plane/concepts/verdicts#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"How it works\",\"item\":\"https://docs.akhara.ai/control-plane/concepts/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Verdicts\",\"item\":\"https://docs.akhara.ai/control-plane/concepts/verdicts\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.akhara.ai/control-plane/concepts/verdicts#article\",\"headline\":\"Verdicts\",\"name\":\"Verdicts\",\"description\":\"The four decisions a latch can return, and what your runtime must do with each.\",\"url\":\"https://docs.akhara.ai/control-plane/concepts/verdicts\",\"mainEntityOfPage\":{\"@id\":\"https://docs.akhara.ai/control-plane/concepts/verdicts#webpage\"},\"dateModified\":\"2026-08-04T00:07:28.221Z\",\"publisher\":{\"@id\":\"https://docs.akhara.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.akhara.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Akhara\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Akhara","nav":{"global":{"anchors":[{"anchor":"Home","icon":"house","href":"/"}]},"products":[{"product":"Akhara AI","icon":"house","description":"Suite overview and verification stack","pages":[{"title":"Akhara AI","href":""}]},{"product":"Environments","icon":"cube","description":"Scored agent environments (EaaS)","pages":[{"title":"Environments","href":"/environments"}]},{"product":"Control plane","icon":"shield-halved","description":"Runtime policy enforcement","tabs":[{"tab":"Documentation","groups":[{"group":"Get started","pages":[{"title":"Control plane","sidebarTitle":"Introduction","href":"/control-plane"},{"title":"Quickstart","href":"/control-plane/quickstart"}]},{"group":"How it works","pages":[{"title":"Overview","href":"/control-plane/concepts/overview"},{"title":"Architecture","href":"/control-plane/concepts/architecture"},{"title":"Tool-call interception","href":"/control-plane/concepts/interception"},{"title":"Latching","description":"How a dormant policy snaps onto a consequential step and returns a binding verdict.","href":"/control-plane/concepts/latching"},{"title":"Verdicts","href":"/control-plane/concepts/verdicts"},{"title":"Fail-closed","description":"Why an unreachable decision point means the step is blocked, not allowed.","href":"/control-plane/concepts/fail-closed"},{"title":"Audit and evidence","href":"/control-plane/concepts/evidence"}]},{"group":"Enterprise onboarding","pages":[{"title":"Agent onboarding \u0026 connection","href":"/control-plane/onboarding/agents"},{"title":"Policies","href":"/control-plane/onboarding/policies"},{"title":"Verifier crafting","href":"/control-plane/onboarding/verifiers"},{"title":"Task publishing","href":"/control-plane/onboarding/tasks"},{"title":"Environment provisioning","href":"/control-plane/onboarding/environments"},{"title":"Running","href":"/control-plane/onboarding/running"}]},{"group":"Cookbooks","pages":[{"title":"Cookbook: healthcare","href":"/control-plane/cookbooks/healthcare"},{"title":"Cookbook: finance","href":"/control-plane/cookbooks/finance"},{"title":"Cookbook: insurance","href":"/control-plane/cookbooks/insurance"}]},{"group":"SDK","pages":[{"title":"SDK requirements","href":"/control-plane/sdk/requirements"},{"title":"TypeScript SDK","href":"/control-plane/sdk/typescript"},{"title":"Kotlin / Android SDK","href":"/control-plane/sdk/kotlin"}]}]},{"tab":"API reference","pages":[{"title":"API reference","href":"/control-plane/api-reference/introduction"}]}]},{"product":"Evaluation","icon":"clipboard-check","description":"Rubrics, CI gates, and scoring","pages":[{"title":"Evaluation","href":"/evaluation/docs/introduction"}]},{"product":"Expert Review","icon":"user-doctor","description":"Expert audit and review","pages":[{"title":"Expert Review","href":"/talent/introduction"}]}]},"basePath":"","title":"Verdicts - Akhara","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":[],"chunks":[]}