---
title: "Patterns"
canonical: "https://verificationdesign.com/patterns/"
license: "CC BY 4.0"
generated: true
---

# Patterns

- [Constitution](https://verificationdesign.com/patterns/context-and-state/constitution.md): Represent the system’s verification criteria as explicit, versioned, machine-readable data, rather than as scattered prompt prose.
- [Guardrail Decorator](https://verificationdesign.com/patterns/context-and-state/guardrail-decorator.md): Wrap a model call, tool call, or other model-output boundary in a policy decorator that can deny, replace, sanitize, or convert errors, so policy lives in code at the boundary the model crosses instead of in prompt prose the model is asked to obey.
- [Causal Tag](https://verificationdesign.com/patterns/context-and-state/causal-tag.md): Stamp emitted events with stable joinable identifiers and parent links, then join destination observations to recorded actions; causal attribution depends on trustworthy tag generation and propagation.
- [Trajectory Cursor](https://verificationdesign.com/patterns/context-and-state/trajectory-cursor.md): Maintain an explicit, structured record of where the agent is in its multi-step process and what happened at each boundary, so the verifier and the next turn can read the trajectory instead of inferring it from chat history or model recall.
- [State Baseline](https://verificationdesign.com/patterns/context-and-state/state-baseline.md): Capture the relevant environment or process state before an action under verification, so the verifier can establish that observed state did not already exist before the action; causal attribution requires isolation or a Causal Tag.
- [Executable Analog](https://verificationdesign.com/patterns/verification/executable-analog.md): Translate a subjective, language-based verification step into a deterministic, programmatic execution step that yields a binary pass/fail signal independent of the agent's judgment.
- [Blind Oracle](https://verificationdesign.com/patterns/verification/blind-oracle.md): Derive expected evidence from the spec, the question, or independent re-execution without conditioning that derivation on the agent's draft, reasoning trace, or shortcut history.
- [Comparator](https://verificationdesign.com/patterns/verification/comparator.md): Express verification comparison as a named operator from a finite family, so the verdict is a deterministic function of (expected, observed, operator, threshold, normalization) rather than a model's interpretation of "does this look right?"
- [Delta](https://verificationdesign.com/patterns/verification/delta.md): Check whether the observed change in environment state satisfies an action's expected postcondition; attribution to that action requires isolation or a propagated causal tag.
- [Judge Harness](https://verificationdesign.com/patterns/verification/judge-harness.md): Wrap an LLM judge in a structural harness of perturbation, repetition, calibration, and reporting so that one judge verdict becomes a measured signal with visible consistency and bias controls.
- [Admissibility Gate](https://verificationdesign.com/patterns/verification/admissibility-gate.md): Replace tone-level skepticism instructions with admissibility rules that define what counts as proof, name common shortcut paths to reject, and invert the verifier's default from "accept if plausible" to "fail unless backed by trusted evidence."
- [Cross-Family](https://verificationdesign.com/patterns/orchestration/cross-family.md): Run high-leverage generation and high-leverage assessment on deliberately different model families, and record both identities, so exposure to shared training-data biases and shared latent priors is reduced rather than assumed away, and any residual correlated error is attributable to named models.
- [Adversary](https://verificationdesign.com/patterns/orchestration/adversary.md): Assign a structurally separate role whose only job is to find failures in another role's output, and require that role to emit a negative channel the orchestrator can inspect.
- [Debate](https://verificationdesign.com/patterns/orchestration/debate.md): Run bounded disagreement among multiple roles before a decision, with turn order, round count, phase, and consensus threshold held in orchestration state instead of model discretion.
- [Escalation Chain](https://verificationdesign.com/patterns/orchestration/escalation-chain.md): Route work to a higher-authority or different-capability handler through a typed, validated handoff, so the next owner is code-level state instead of a model's memory of who to call.
- [Backpressure](https://verificationdesign.com/patterns/orchestration/backpressure.md): When a downstream check fails, route the failure back upstream as structured rerun context within a bounded retry budget, instead of swallowing the failure or retrying blindly.
- [Tool Adapter](https://verificationdesign.com/patterns/orchestration/tool-adapter.md): Normalize model-emitted tool calls at a typed boundary: derive or fetch a schema, validate arguments before invocation, call the tool with typed arguments, and return a typed observation.

## Start from the failure

First the pain, then the pattern. Each failure lists the patterns to reach for, closest fit first.

### The agent says done, but the work is not actually done.

The workflow has no external signal for completion.

- [Executable Analog](https://verificationdesign.com/patterns/verification/executable-analog.md)
- [Comparator](https://verificationdesign.com/patterns/verification/comparator.md)
- [Constitution](https://verificationdesign.com/patterns/context-and-state/constitution.md)

### The agent reviews itself and misses obvious problems.

The verifier is too close to the generator.

- [Blind Oracle](https://verificationdesign.com/patterns/verification/blind-oracle.md)
- [Cross-Family](https://verificationdesign.com/patterns/orchestration/cross-family.md)
- [Adversary](https://verificationdesign.com/patterns/orchestration/adversary.md)
- [Admissibility Gate](https://verificationdesign.com/patterns/verification/admissibility-gate.md)

### The same prompt produces different outcomes across runs.

Variance is leaking through sampling, state, timing, or judge behavior.

- [State Baseline](https://verificationdesign.com/patterns/context-and-state/state-baseline.md)
- [Judge Harness](https://verificationdesign.com/patterns/verification/judge-harness.md)
- [Backpressure](https://verificationdesign.com/patterns/orchestration/backpressure.md)

### The check passes because the environment already looked right.

The verifier observes a true fact, but not causality.

- [Delta](https://verificationdesign.com/patterns/verification/delta.md)
- [Causal Tag](https://verificationdesign.com/patterns/context-and-state/causal-tag.md)
- [Trajectory Cursor](https://verificationdesign.com/patterns/context-and-state/trajectory-cursor.md)

### Agents disagree, loop, or escalate randomly.

The system has no explicit routing policy for uncertainty.

- [Escalation Chain](https://verificationdesign.com/patterns/orchestration/escalation-chain.md)
- [Debate](https://verificationdesign.com/patterns/orchestration/debate.md)
- [Backpressure](https://verificationdesign.com/patterns/orchestration/backpressure.md)

### Tool calls are messy, unsafe, or hard to verify.

The boundary between model intent, tool input, and policy is ambiguous.

- [Guardrail Decorator](https://verificationdesign.com/patterns/context-and-state/guardrail-decorator.md)
- [Tool Adapter](https://verificationdesign.com/patterns/orchestration/tool-adapter.md)
- [Constitution](https://verificationdesign.com/patterns/context-and-state/constitution.md)

If the failure is still unclear, start with [Constitution](https://verificationdesign.com/patterns/context-and-state/constitution.md). Most verification failures become easier to diagnose once the system has an explicit answer to what is being checked.
