An agent checking its own work shares the blind spots that produced it. Two reviewers who haven't seen the drafting, or each other's verdict, catch what one misses, and both must pass before the work ships. This is for non-code work. Code changes go through code-review-grill, and anything a script can check (links, required sections, banned words, length limits) is checked by the script first.
When to use
- A client deliverable, newsletter, published page, report or customer-facing copy is about to ship
- Accuracy, compliance or brand rules matter, and a made-up fact would be costly
- A large generated batch needs checking
Not for internal drafts or exploratory notes.
Steps
- Write the rubric first. Each line gets an objective pass condition and a failure signal (table below). Cut anything that is taste.
- Run the scripted checks and fix what they find before any reviewer sees the work.
- Start two reviewers at once, each a fresh agent or a cleared context. Give both the same four things: the brief, the output, the rubric, the source material. Tell them to find problems, not to approve. Each returns pass or fail per rubric line and quotes the exact problem.
- Gate. Ship only if both pass. A flag from either one is real. Merge the flags and drop duplicates.
- Fix only what was flagged. No rewrites and no extras. Suggestions are optional.
- Re-review with two new reviewers who haven't seen earlier rounds.
- Stop after three rounds. Hand a person the output, the open flags and both reviews.
Rules
- Reviewers never see each other's verdict, earlier rounds, or the generator's reasoning.
- Same rubric and same inputs for both reviewers.
- No partial credit: one fail means not ready.
- If both reviewers pass everything, the rubric or the brief is too soft. Tighten it.
- For the highest-stakes work, add a third reviewer or a human spot-check. Independence cuts shared blind spots; it doesn't remove them.
- With 100 or more items, sample instead of reviewing each one (see Big batches).
Rubric
| Line | Passes when | Fails on |
|---|---|---|
| Factual accuracy | Every claim checks out against the source material | Invented figures, wrong names or dates, misquoted sources |
| Nothing invented | No made-up people, quotes, links or references | A link to a page that doesn't exist, a quote with no source |
| Complete | Every requirement in the brief is covered | A missing section, a skipped audience, an unanswered question |
| Compliance | Meets the stated legal, regulatory and house rules | Banned terms, missing disclaimers, outcome guarantees |
| Consistent | No contradictions inside the piece | Section 2 says one thing, section 5 the opposite |
Add lines for the job. Content and marketing: the brand voice guide's named rules, links and calls to action point where the brief says, no misuse of other companies' trademarks. Regulated work (legal, financial, health): required disclaimers present, approved terms only, language fits the jurisdiction, no unsupported claims.
Reviewer brief
You are an independent reviewer. You have not seen any other review of this work.
Brief: <the original request>
Source material: <what claims must match>
Output: <the work under review>
Rubric: <the lines above>
Check the output against each rubric line. For each, return PASS, or FAIL with the
exact passage and what is wrong. Then list blocking issues and, separately, optional
suggestions. Your job is to find problems, not to approve.
Without separate agents
If the environment can't start separate agents, run the reviewers one after the other with a fully cleared context between them. Record the first review word for word before starting the second, and never show it to the second. Separate agents are better; one context risks the first review leaking into the second.
Big batches
Reviewing every item in a batch of 100 or more costs too much. Sample instead:
- Run the full gate on a random sample of 10 to 15 percent, at least 5 items.
- Group failures by type: invented facts, compliance, completeness.
- If a pattern shows up, fix it across the whole batch.
- Draw a fresh sample and repeat until a sample passes clean.
Failure modes
| Failure | Sign | Fix |
|---|---|---|
| Endless loop | New issues every round | The three-round cap, then a person |
| Rubber stamp | Both pass everything | "Find problems, not approve"; a tighter rubric |
| Taste creep | Flags are style preferences | Objective pass conditions only |
| Fix breaks something else | Issue A fixed, issue B appears | Fresh reviewers each round catch it |
| Shared blind spot | Both miss the same thing | A third reviewer or a human spot-check |
| Cost | Long outputs, many rounds | Sampling for batches; a budget per gate |
What to track
- First-round pass rate. Low means the generator needs a better brief.
- Average rounds to pass.
- Which rubric lines fail most.
- How often only one reviewer flags an issue. High means the rubric is vague.
- Issues found after shipping that the gate should have caught. The target is zero.
Source
The Santa Method was created by Ronald Skelton, founder of RapportScore.ai, and published as santa-method in ECC by Affaan Mustafa (MIT licence, notice in LICENSE.txt), upstream commit d2ef268. This version is rewritten and scoped to non-code work.