Guard modules emit normalized findings and gates.
.agent-context/runs/<task-id>/iterations/<nnn>/
guard.findings.json
guard.gates.json
decision.jsoninterface GuardFinding {
id: string;
source: "policy" | "hallucination" | "regression";
kind: "forbidden" | "required" | "risk" | "info";
status: "failed" | "missing" | "warning" | "satisfied" | "passed";
severity: "error" | "warning" | "required" | "info";
message: string;
evidence: string[];
requiredCommands: string[];
}interface GuardGate {
id: string;
guard: "context" | "boundary" | "evidence" | "hallucination" | "regression";
blocking: boolean;
action: "repack" | "rollback" | "human-review" | "run-tests" | "repair" | "block";
evidence: string[];
findingIds: string[];
}Gates feed the orchestrator decision router, which writes a decision report such as finalize, repair, repack, block, rollback, or require-human-review.