Treat a plausible approval screen as a claim, not proof. Verify the complete decision path before a human or an external enforcement point decides whether to act.
INCONCLUSIVE when required evidence
is unavailable.Set this field in every final result:
{"execution_authorized": false}
Request only the artifacts needed for the review:
List missing fields before analysis. Do not silently substitute defaults.
Create one normalized action object without dropping fields:
{
"operation": "git.push",
"target": "owner/repository",
"parameters": {
"branch": "fix/example",
"commit": "40-character-sha",
"remote": "origin"
},
"filesystem_scope": [],
"network_scope": ["github.com:443"],
"execution_count": 1,
"not_before": "RFC3339 timestamp",
"expires_at": "RFC3339 timestamp"
}
Use a project-specified canonicalization and digest algorithm when provided. Otherwise, report that cryptographic identity cannot be independently verified; still compare every field structurally.
Never normalize away a security-relevant distinction such as:
Evaluate every control as PASS, FAIL, INCONCLUSIVE, or NOT_APPLICABLE.
FAIL if the received result differs from recomputation.INCONCLUSIVE when only schema validation, an internal checksum, or an
unverifiable evaluator claim is available.FAIL if any material field changed after approval.FAIL for a reused nonce, wrong audience, expired approval, future-dated
approval, excessive use count, revoked identity, or role mismatch.INCONCLUSIVE if no trustworthy replay store or time source exists.Build a dependence table for every reviewer or evaluator:
| Dimension | Compare |
|---|---|
| Model | family, version, fine-tune |
| Provider | account and control plane |
| Prompt | shared template or ancestry |
| Retrieval | overlapping sources and indexes |
| Tools | shared evaluator code and runtime |
| Operator | common owner or approval authority |
Do not count correlated reviewers as independent quorum members. Mark FAIL if
the policy requires independent approval and the remaining independent set is
too small.
| Support | Refutation | Epistemic state |
|---|---|---|
| absent | absent | UNDETERMINED |
| present | absent | SUPPORTED_ONLY |
| absent | present | REFUTED_ONLY |
| present | present | CONFLICTED |
FAIL if evidence was removed, altered, expired, or concealed in a way
that changes the result.CONFLICTED into a numeric average that appears safe.Before producing the final result, attempt these mutations mentally or with project-provided test fixtures:
If any mutation would pass the reviewed controls, record the affected control
as FAIL; do not merely recommend future hardening.
Use exactly one result:
ELIGIBLE_FOR_HUMAN_DECISION: all required controls pass.ELIGIBLE_WITH_CONTROLS: no required control fails, and explicit external
controls can resolve the listed conditions before execution.BLOCKED: at least one required control fails or the action exceeds the
justified scope.INCONCLUSIVE: no required control is proven false, but evidence needed for
a safe decision is missing or unverifiable.ELIGIBLE_FOR_HUMAN_DECISION is not approval. A human authority and a separate
enforcement point remain responsible for any real action.
# Agent Action Review
## Result
- Review result: BLOCKED | INCONCLUSIVE | ELIGIBLE_WITH_CONTROLS |
ELIGIBLE_FOR_HUMAN_DECISION
- Execution authorized: false
- Exact action digest: <verified value or NOT_VERIFIED>
## Action
- Operation:
- Target:
- Material parameters:
- Scope:
- Validity window:
- Maximum uses:
## Control matrix
| Control | Status | Evidence | Reason |
|---|---|---|---|
| Recomputed assessment | PASS/FAIL/INCONCLUSIVE/N/A | ... | ... |
| Exact action binding | ... | ... | ... |
| Replay and identity | ... | ... | ... |
| Reviewer independence | ... | ... | ... |
| Evidence completeness | ... | ... | ... |
| Monitoring freshness | ... | ... | ... |
## Supporting evidence
- ...
## Refuting evidence and defeaters
- ...
## Required next action
- State the smallest concrete step that could change the result.
## Boundaries
- State what this review did not prove.
Lead with the result and the exact reason. Prefer a reproducible blocker over a confidence score.