Agent skill

Santa Method

by affaan-m in affaan-m/ECC

“具有收敛循环的多智能体对抗验证。两个独立的审查代理必须都通过,输出才能发送。”

— description from SKILL.md by affaan-m
MITAuto-check passed

Install Santa Method

skills CLI
$ npx skills add affaan-m/ECC --skill santa-method -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install affaan-m/ECC santa-method --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/affaan-m/ECC.git skills-src && mkdir -p .claude/skills && cp -r skills-src/docs/zh-CN/skills/santa-method .claude/skills/santa-method && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
santa-method
GitHub stars
276k
Token cost
~1.9k tokens
SKILL.md length
191 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

  • Works in 4 steps: 上下文隔离 — 两个审查者互不见面对方的评估 → 相同评估标准 — 两者收到相同的评估标准 → 相同输入 — 两者都收到原始规格说明和生成的输出 → …
  • SKILL.md covers 何时激活, 架构, 阶段详情 and 实现模式, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

About this skill

Santa Method is a skill in affaan-m/ECC (276k stars). Its SKILL.md is about 1.9k tokens. Licence: MIT.

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. 上下文隔离 — 两个审查者互不见面对方的评估
  2. 相同评估标准 — 两者收到相同的评估标准
  3. 相同输入 — 两者都收到原始规格说明和生成的输出
  4. 结构化输出 — 每个审查者返回类型化的判定,而非散文

What it can do on your machine

Read from SKILL.md and the folder at commit 4eb71d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python and bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Santa Method loads about 1.9k tokens when it runs. Until then it costs about 13 tokens; SKILL.md has 191 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~13
When it runs · the whole SKILL.md, loaded when a task matches
~1.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from affaan-m/ECC at commit 4eb71d9, republished under its MIT licence (© affaan-m). 191 words, ~1,892 tokens.

Download SKILL.mdSave it as .claude/skills/santa-method/SKILL.md (or your agent's skills folder).
name
santa-method
description
具有收敛循环的多智能体对抗验证。两个独立的审查代理必须都通过,输出才能发送。
origin
Ronald Skelton - Founder, RapportScore.ai

圣诞老人方法

多智能体对抗验证框架。列个清单,检查两遍。如果行为不端,就修正直到表现良好。

核心洞察:单个智能体审查自身输出时,会共享产生该输出的相同偏见、知识盲区和系统性错误。两个没有共享上下文的独立审查者可以打破这种故障模式。

何时激活

在以下情况调用此技能:

  • 输出将被发布、部署或供最终用户使用
  • 必须强制执行合规、监管或品牌约束
  • 代码未经人工审查即投入生产
  • 内容准确性至关重要(技术文档、教育材料、面向客户的文案)
  • 大规模批量生成,抽检无法发现系统性模式
  • 幻觉风险较高(声明、统计数据、API 参考、法律用语)

不要用于内部草稿、探索性研究或具有确定性验证的任务(这些请使用构建/测试/代码检查流水线)。

架构

┌─────────────┐
│  生成器      │  阶段 1:列出清单
│  (代理 A)    │  生成交付物
└──────┬───────┘
       │ 输出
       ▼
┌──────────────────────────────┐
│     双重独立审查              │  阶段 2:复核两次
│                              │
│  ┌───────────┐ ┌───────────┐ │  两个代理,同一评分标准,
│  │ 审查者 B  │ │ 审查者 C  │ │  无共享上下文
│  └─────┬─────┘ └─────┬─────┘ │
│        │              │       │
└────────┼──────────────┼───────┘
         │              │
         ▼              ▼
┌──────────────────────────────┐
│       裁决门                  │  阶段 3:判定好坏
│                              │
│  B通过且C通过 → 好            │  两者必须通过。
│  否则 → 坏                    │  无例外。
└──────┬──────────────┬────────┘
       │              │
      好             坏
       │              │
       ▼              ▼
   [ 发布 ]    ┌─────────────┐
               │  修复循环    │  阶段 4:修复至通过
               │              │
               │ 迭代次数++   │  收集所有标记。
               │ 若 i > 最大: │  修复所有问题。
               │   升级处理   │  重新运行两个审查者。
               │ 否则:        │  循环直至收敛。
               │   跳至阶段2  │
               └──────────────┘

阶段详情

阶段 1:列清单(生成)

执行主要任务。无需改变正常的生成工作流程。圣诞老人方法是一个生成后验证层,而非生成策略。

python
# The generator runs as normal
output = generate(task_spec)
阶段 2:检查两遍(独立双重审查)

并行生成两个审查智能体。关键不变项:

  1. 上下文隔离 — 两个审查者互不见面对方的评估
  2. 相同评估标准 — 两者收到相同的评估标准
  3. 相同输入 — 两者都收到原始规格说明和生成的输出
  4. 结构化输出 — 每个审查者返回类型化的判定,而非散文
python
REVIEWER_PROMPT = """
You are an independent quality reviewer. You have NOT seen any other review of this output.

## Task Specification
{task_spec}

## Output Under Review
{output}

## Evaluation Rubric
{rubric}

## Instructions
Evaluate the output against EACH rubric criterion. For each:
- PASS: criterion fully met, no issues
- FAIL: specific issue found (cite the exact problem)

Return your assessment as structured JSON:
{
  "verdict": "PASS" | "FAIL",
  "checks": [
    {"criterion": "...", "result": "PASS|FAIL", "detail": "..."}
  ],
  "critical_issues": ["..."],   // blockers that must be fixed
  "suggestions": ["..."]         // non-blocking improvements
}

Be rigorous. Your job is to find problems, not to approve.
"""
python
# Spawn reviewers in parallel (Claude Code subagents)
review_b = Agent(prompt=REVIEWER_PROMPT.format(...), description="Santa Reviewer B")
review_c = Agent(prompt=REVIEWER_PROMPT.format(...), description="Santa Reviewer C")

# Both run concurrently — neither sees the other
评估标准设计

评估标准是最重要的输入。模糊的标准会产生模糊的审查。每个标准必须有客观的通过/失败条件。

标准通过条件失败信号
事实准确性所有声明均可根据源材料或常识验证编造的统计数据、错误的版本号、不存在的 API
无幻觉没有虚构的实体、引用、URL 或参考文献指向不存在页面的链接、无来源的引用
完整性规格说明中的每个要求都得到满足缺少章节、遗漏边缘情况、覆盖不完整
合规性通过所有项目特定的约束使用禁用术语、语气违规、监管不合规
内部一致性输出内无矛盾A 部分说 X,B 部分说非 X
技术正确性代码可编译/运行,算法合理语法错误、逻辑错误、错误的复杂度声明
特定领域评估标准扩展

内容/营销:

  • 品牌语气一致性
  • 满足 SEO 要求(关键词密度、元标签、结构)
  • 无竞争对手商标滥用
  • CTA 存在且链接正确

代码:

  • 类型安全(无 any 泄漏,正确处理 null)
  • 错误处理覆盖
  • 安全性(代码中无秘密、输入验证、注入防护)
  • 新路径的测试覆盖

合规敏感(受监管、法律、金融):

  • 无结果保证或未经证实的声明
  • 存在所需的免责声明
  • 仅使用批准的术语
  • 符合司法管辖区的语言
阶段 3:表现好坏(判定门控)
python
def santa_verdict(review_b, review_c):
    """Both reviewers must pass. No partial credit."""
    if review_b.verdict == "PASS" and review_c.verdict == "PASS":
        return "NICE"  # Ship it

    # Merge flags from both reviewers, deduplicate
    all_issues = dedupe(review_b.critical_issues + review_c.critical_issues)
    all_suggestions = dedupe(review_b.suggestions + review_c.suggestions)

    return "NAUGHTY", all_issues, all_suggestions

为什么两者都必须通过:如果只有一个审查者发现问题,那么该问题是真实存在的。另一个审查者的盲点正是圣诞老人方法旨在消除的故障模式。

阶段 4:修正直到表现良好(收敛循环)
python
MAX_ITERATIONS = 3

for iteration in range(MAX_ITERATIONS):
    verdict, issues, suggestions = santa_verdict(review_b, review_c)

    if verdict == "NICE":
        log_santa_result(output, iteration, "passed")
        return ship(output)

    # Fix all critical issues (suggestions are optional)
    output = fix_agent.execute(
        output=output,
        issues=issues,
        instruction="Fix ONLY the flagged issues. Do not refactor or add unrequested changes."
    )

    # Re-run BOTH reviewers on fixed output (fresh agents, no memory of previous round)
    review_b = Agent(prompt=REVIEWER_PROMPT.format(output=output, ...))
    review_c = Agent(prompt=REVIEWER_PROMPT.format(output=output, ...))

# Exhausted iterations — escalate
log_santa_result(output, MAX_ITERATIONS, "escalated")
escalate_to_human(output, issues)

关键:每轮审查使用全新的智能体。审查者不得携带之前轮次的记忆,因为先前的上下文会造成锚定偏差。

实现模式

模式 A:Claude Code 子智能体(推荐)

子智能体提供真正的上下文隔离。每个审查者是一个独立的进程,没有共享状态。

bash
# In a Claude Code session, use the Agent tool to spawn reviewers
# Both agents run in parallel for speed
python
# Pseudocode for Agent tool invocation
reviewer_b = Agent(
    description="Santa Review B",
    prompt=f"Review this output for quality...\n\nRUBRIC:\n{rubric}\n\nOUTPUT:\n{output}"
)
reviewer_c = Agent(
    description="Santa Review C",
    prompt=f"Review this output for quality...\n\nRUBRIC:\n{rubric}\n\nOUTPUT:\n{output}"
)
模式 B:顺序内联(备用方案)

当子智能体不可用时,通过显式上下文重置模拟隔离:

  1. 生成输出
  2. 新上下文:"你是审查者 1。仅根据此评估标准进行评估。找出问题。"
  3. 逐字记录发现
  4. 完全清除上下文
  5. 新上下文:"你是审查者 2。仅根据此评估标准进行评估。找出问题。"
  6. 比较两个审查结果,修复,重复

子智能体模式严格优于内联模拟——内联模拟存在审查者之间上下文渗透的风险。

模式 C:批量采样

对于大批量(100+ 项),对每个项目都执行完整的圣诞老人方法成本过高。使用分层采样:

  1. 对随机样本(批量的 10-15%,最少 5 项)运行圣诞老人方法
  2. 按类型对失败进行分类(幻觉、合规性、完整性等)
  3. 如果出现系统性模式,对整个批量应用针对性修复
  4. 重新采样并重新验证修复后的批量
  5. 持续直到干净的样本通过
python
import random

def santa_batch(items, rubric, sample_rate=0.15):
    sample = random.sample(items, max(5, int(len(items) * sample_rate)))

    for item in sample:
        result = santa_full(item, rubric)
        if result.verdict == "NAUGHTY":
            pattern = classify_failure(result.issues)
            items = batch_fix(items, pattern)  # Fix all items matching pattern
            return santa_batch(items, rubric)   # Re-sample

    return items  # Clean sample → ship batch

故障模式与缓解措施

故障模式症状缓解措施
无限循环修复后审查者仍不断发现新问题最大迭代次数限制(3 次)。升级处理。
橡皮图章两个审查者都通过所有内容对抗性提示:"你的工作是发现问题,而不是批准。"
主观漂移审查者标记风格偏好,而非错误严格的评估标准,仅包含客观的通过/失败标准
修复回归修复问题 A 引入了问题 B每轮使用全新的审查者来捕获回归
审查者一致性偏差两个审查者都遗漏了同一件事独立性可缓解但无法消除。对于关键输出,添加第三个审查者或人工抽检。
成本激增大型输出上迭代次数过多批量采样模式。每个验证周期的预算上限。

与其他技能的集成

技能关系
验证循环用于确定性检查(构建、代码检查、测试)。圣诞老人方法用于语义检查(准确性、幻觉)。先运行验证循环,再运行圣诞老人方法。
评估工具圣诞老人方法的结果反馈给评估指标。跟踪圣诞老人方法运行中的 pass@k,以衡量生成器质量随时间的变化。
持续学习 v2圣诞老人方法的发现成为本能。同一标准上的重复失败 → 学习到的行为以避免该模式。
战略压缩在压缩之前运行圣诞老人方法。不要在验证过程中丢失审查上下文。

指标

跟踪以下指标以衡量圣诞老人方法的有效性:

  • 首次通过率:第一轮通过圣诞老人方法的输出百分比(目标:>70%)
  • 收敛平均迭代次数:达到"表现良好"的平均轮数(目标:<1.5)
  • 问题分类:失败类型的分布(幻觉 vs. 完整性 vs. 合规性)
  • 审查者一致性:两个审查者都标记的问题与仅一个审查者标记的问题的百分比(一致性低 = 需要收紧评估标准)
  • 逃逸率:发布后发现但圣诞老人方法本应捕获的问题(目标:0)

成本分析

每个验证周期,圣诞老人方法的代币成本大约是单独生成的 2-3 倍。对于大多数高风险的输出,这很划算:

圣诞老人的成本 = (生成代币) + 2×(每轮审查代币) × (平均轮数)
不做圣诞老人的成本 = (声誉损害) + (纠正努力) + (信任侵蚀)

对于批量操作,采样模式将成本降低到完全验证的约 15-20%,同时捕获超过 90% 的系统性问题。

© affaan-m, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in docs/zh-CN/skills/santa-method of affaan-m/ECC.

Open the folder on GitHubat commit 4eb71d9

Compare with similar skills

Santa Method next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Santa Method compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Santa Method this skillaffaan-m/ECC276k—~1.9kAutomated safety check: PassMIT
Modern Array Methodsthedaviddias/Front-End-Checklist74k—~494Automated safety check: PassMIT
Refactor Method Complexity Reducegithub/awesome-copilot40k1 repos~1.1kAutomated safety check: PassMIT
Finetuning Method Selectionwshobson/agents40k—~2kAutomated safety check: PassMIT
Analytical Method Validation PlannerK-Dense-AI/scientific-agent-skills48k1 repos~4.9kAutomated safety check: NotesMIT
Java Refactoring Extract Methodgithub/awesome-copilot40k1 repos~873Automated safety check: PassMIT

Similar skills

  • Modern Array Methods

    thedaviddias/Front-End-Checklist

    A skill your agent uses when reviewing scripts, client components, bundles, or runtime behavior related to Use modern array and object methods.

    74k GitHub stars~494 tokensUpdated 3 days ago
    Auto-check passed
  • Refactor Method Complexity Reduce

    github/awesome-copilot

    Official

    Refactor given method ${input:methodName} to reduce its cognitive complexity to ${input:complexityThreshold} or below, by extracting helper methods.

    40k GitHub starsUsed in 1 repo~1.1k tokens
    DevelopmentAuto-check passed
  • Decide whether to fine-tune at all, and route to the right method (SFT, DPO/ORPO/KTO, GRPO/RLVR, continued pretraining) and base model.

    40k GitHub stars~2k tokensUpdated 5 days ago
    AI & LLM EngineeringAuto-check passed
  • Analytical Method Validation Planner

    K-Dense-AI/scientific-agent-skills

    Plans, runs, and documents analytical method validation, verification, or transfer studies under ICH Q2(R2)/Q14, USP, ICH M10, CLSI EP, or ISO/IEC 17025.

    48k GitHub starsUsed in 1 repo~4.9k tokens
    Research & ScienceAuto-check: notes
  • Java Refactoring Extract Method

    github/awesome-copilot

    Official

    Refactoring using Extract Methods in Java Language. An agent skill from github/awesome-copilot.

    40k GitHub starsUsed in 1 repo~873 tokens
    DevelopmentAuto-check passed
  • Client Methods

    BuilderIO/agent-native

    Client method surface rules. An agent skill from BuilderIO/agent-native.

    7.1k GitHub stars~1.2k tokensUpdated today
    Auto-check passed

More from affaan-m/ECC

All 683 skills in this repo
  • Skill Stocktake

    affaan-m/ECC

    Audits your installed Claude skills and commands for quality, with a quick mode for recently changed skills and a full mode that evaluates all of them through subagents.

    276k GitHub starsUsed in 5 repos~3.1k tokens
    Auto-check passed
  • Ingests, indexes, searches, edits and monitors video, audio and live streams through the VideoDB Python SDK, returning stream links, clips and timestamps.

    276k GitHub starsUsed in 3 repos~3.5k tokens
    Auto-check: notes
  • Docs Governance

    affaan-m/ECC

    Route broad documentation-governance requests to existing ECC skills and run an opt-in, read-only audit of mapped documentation roles, links, ADR indexes, and evidence references.

    276k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Rules Distillation

    affaan-m/ECC

    Scans installed skills for principles that recur across them and proposes rule-file changes: append, revise, add a section, create a file or leave as covered.

    276k GitHub starsUsed in 2 repos~2.3k tokens
    Auto-check passed
  • Builds DRAFT counterparty agreements from one markdown template and a small JSON spec per party, with clauses picked by the party's role.

    276k GitHub stars~2.9k tokensUpdated today
    Auto-check passed
  • Measures whether agents actually follow a skill, rule or agent definition by generating scenarios at three strictness levels and scoring tool-call traces.

    276k GitHub starsUsed in 1 repo~623 tokens
    Auto-check passed

Questions about Santa Method

How do I install Santa Method in Claude Code?

Run `npx skills add affaan-m/ECC --skill santa-method -a claude-code`. Or copy the skill folder (docs/zh-CN/skills/santa-method in affaan-m/ECC) into .claude/skills/santa-method in your project. Claude Code loads it when a task matches its description.

How do I install Santa Method in Codex?

Run `npx skills add affaan-m/ECC --skill santa-method -a codex`. Or copy the skill folder (docs/zh-CN/skills/santa-method in affaan-m/ECC) into .agents/skills/santa-method in your project. Codex loads it when a task matches its description.

Can I use Santa Method in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add affaan-m/ECC --skill santa-method -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/santa-method, .gemini/skills/santa-method, .github/skills/santa-method and .opencode/skills/santa-method in your project.

What does Santa Method need to run?

SKILL.md names no scripts, command-line tools or credentials: Santa Method is instructions for the agent only.

Does Santa Method access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Santa Method safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Santa Method use?

Santa Method is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Santa Method use?

About 1.9k tokens (SKILL.md is roughly 7.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Santa Method?

Skills that share tags, products or a category with Santa Method: Modern Array Methods (thedaviddias/Front-End-Checklist, 74k stars), Refactor Method Complexity Reduce (github/awesome-copilot, 40k stars), Finetuning Method Selection (wshobson/agents, 40k stars) and Analytical Method Validation Planner (K-Dense-AI/scientific-agent-skills, 48k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Santa Method?

affaan-m (a GitHub user) maintains it in affaan-m/ECC, which has 276,111 GitHub stars. The repository holds 683 skills in this directory. The repository was last updated on October 10, 2026.

Source: affaan-m/ECC on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.