Agent skill

Santa Method

by affaan-m in affaan-m/ECC

収束ループを持つマルチエージェント敵対的検証。2つの独立したレビューエージェントが両方合格して初めて出力を出荷できます。

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/ja-JP/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
~2.1k tokens
SKILL.md length
214 words
Files
1
Skills in repo
683
Repo updated
First seen
Licence
MIT

At a glance

収束ループを持つマルチエージェント敵対的検証。2つの独立したレビューエージェントが両方合格して初めて出力を出荷できます。

  • Works in 4 steps: コンテキスト分離 — どちらのレビュアーも相手の評価を見ない → 同一ルーブリック — 両方が同じ評価基準を受け取る → 同じ入力 — 両方がオリジナルの仕様と生成された出力を受け取る → …
  • SKILL.md covers 起動するタイミング, アーキテクチャ, フェーズの詳細 and 実装パターン, plus 4 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Santa Method is an agent skill from affaan-m/ECC. 収束ループを持つマルチエージェント敵対的検証。2つの独立したレビューエージェントが両方合格して初めて出力を出荷できます。

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

The repository describes itself as: The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond. The licence is MIT.

Example prompts

  • “/santa-method”

Requirements

  • Python 3

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 2.1k tokens when it runs. Until then it costs about 18 tokens; SKILL.md has 214 words of instructions outside code blocks.

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

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). 214 words, ~2,087 tokens.

Download SKILL.mdSave it as .claude/skills/santa-method/SKILL.md (or your agent's skills folder).
name
santa-method
description
収束ループを持つマルチエージェント敵対的検証。2つの独立したレビューエージェントが両方合格して初めて出力を出荷できます。
origin
Ronald Skelton - Founder, RapportScore.ai

Santa Method

マルチエージェント敵対的検証フレームワーク。リストを作り、二度確認する。問題があれば、良くなるまで修正する。

核心的な洞察: 自分の出力をレビューする単一のエージェントは、その出力を生み出したのと同じバイアス、知識のギャップ、体系的なエラーを共有しています。共有コンテキストを持たない2人の独立したレビュアーは、この障害モードを解消します。

起動するタイミング

以下の場合にこのスキルを呼び出します:

  • 出力が公開、デプロイ、またはエンドユーザーに提供される場合
  • コンプライアンス、規制、またはブランドの制約が適用される必要がある場合
  • コードが人間のレビューなしに本番環境にデプロイされる場合
  • コンテンツの正確性が重要な場合(技術文書、教育資料、顧客向けコピー)
  • スポットチェックで体系的なパターンを見逃す可能性のある大規模バッチ生成
  • ハルシネーションリスクが高い場合(主張、統計、API リファレンス、法的言語)

内部ドラフト、探索的調査、または確定的な検証がある場合(それらにはビルド/テスト/Lint パイプラインを使用)には使用しないでください。

アーキテクチャ

┌─────────────┐
│  GENERATOR   │  フェーズ1: リストを作る
│  (Agent A)   │  成果物を生成する
└──────┬───────┘
       │ output
       ▼
┌──────────────────────────────┐
│     DUAL INDEPENDENT REVIEW   │  フェーズ2: 二度確認する
│                                │
│  ┌───────────┐ ┌───────────┐  │  2つのエージェント、同じルーブリック、
│  │ Reviewer B │ │ Reviewer C │  │  共有コンテキストなし
│  └─────┬─────┘ └─────┬─────┘  │
│        │              │        │
└────────┼──────────────┼────────┘
         │              │
         ▼              ▼
┌──────────────────────────────┐
│        VERDICT GATE           │  フェーズ3: 良いか悪いか
│                                │
│  B passes AND C passes → NICE  │  両方が合格する必要がある。
│  Otherwise → NAUGHTY           │  例外なし。
└──────┬──────────────┬─────────┘
       │              │
    NICE           NAUGHTY
       │              │
       ▼              ▼
   [ SHIP ]    ┌─────────────┐
               │  FIX CYCLE   │  フェーズ4: 良くなるまで修正
               │              │
               │ iteration++  │  全フラグを収集する。
               │ if i > MAX:  │  全問題を修正する。
               │   escalate   │  両レビュアーを再実行する。
               │ else:        │  収束するまでループ。
               │   goto Ph.2  │
               └──────────────┘

フェーズの詳細

フェーズ1: リストを作る(生成)

主要タスクを実行します。通常の生成ワークフローに変更はありません。Santa Method は生成後の検証レイヤーであり、生成戦略ではありません。

python
# ジェネレーターは通常通り実行される
output = generate(task_spec)
フェーズ2: 二度確認する(独立したデュアルレビュー)

2つのレビューエージェントを並列で起動します。重要な不変条件:

  1. コンテキスト分離 — どちらのレビュアーも相手の評価を見ない
  2. 同一ルーブリック — 両方が同じ評価基準を受け取る
  3. 同じ入力 — 両方がオリジナルの仕様と生成された出力を受け取る
  4. 構造化出力 — それぞれが散文ではなく型付き判定を返す
python
REVIEWER_PROMPT = """
あなたは独立した品質レビュアーです。この出力に対する他のレビューは見ていません。

## タスク仕様
{task_spec}

## レビュー対象の出力
{output}

## 評価ルーブリック
{rubric}

## 指示
各ルーブリック基準に対して出力を評価してください。それぞれに対して:
- PASS: 基準が完全に満たされ、問題なし
- FAIL: 特定の問題が見つかった(正確な問題を引用)

評価を構造化JSONとして返してください:
{
  "verdict": "PASS" | "FAIL",
  "checks": [
    {"criterion": "...", "result": "PASS|FAIL", "detail": "..."}
  ],
  "critical_issues": ["..."],   // 修正が必要なブロッカー
  "suggestions": ["..."]         // ブロックしない改善提案
}

厳格に評価してください。あなたの仕事は問題を見つけることであり、承認することではありません。
"""
python
# レビュアーを並列で起動(Claude Code サブエージェント)
review_b = Agent(prompt=REVIEWER_PROMPT.format(...), description="Santa Reviewer B")
review_c = Agent(prompt=REVIEWER_PROMPT.format(...), description="Santa Reviewer C")

# 両方が同時に実行される — 互いに見えない
ルーブリックの設計

ルーブリックは最も重要な入力です。曖昧なルーブリックは曖昧なレビューを生みます。すべての基準には客観的な合否条件が必要です。

基準合格条件失敗シグナル
事実の正確性すべての主張がソース資料または常識から検証可能作り上げられた統計、誤ったバージョン番号、存在しないAPI
ハルシネーションなし作り上げられたエンティティ、引用、URL、参照なし存在しないページへのリンク、出典のない引用
完全性仕様のすべての要件が対応されている欠落しているセクション、スキップされたエッジケース、不完全なカバレッジ
コンプライアンスすべてのプロジェクト固有の制約に合格禁止語の使用、トーン違反、規制への非準拠
内部一貫性出力内に矛盾なしセクションAがXと言い、セクションBがX以外と言う
技術的正確性コードがコンパイル/実行され、アルゴリズムが健全構文エラー、ロジックのバグ、誤った計算量の主張
ドメイン固有のルーブリック拡張

コンテンツ/マーケティング:

  • ブランドボイスの遵守
  • SEO要件の充足(キーワード密度、メタタグ、構造)
  • 競合他社の商標の誤用なし
  • CTAが存在し正しくリンクされている

コード:

  • 型安全性(any リークなし、適切なnull処理)
  • エラー処理のカバレッジ
  • セキュリティ(コードにシークレットなし、入力検証、インジェクション防止)
  • 新しいパスのテストカバレッジ

コンプライアンスが重要な場合(規制対象、法的、財務的):

  • 結果の保証や根拠のない主張なし
  • 必要な免責事項が存在する
  • 承認された用語のみ
  • 管轄区域に適した言語
フェーズ3: 良いか悪いかの判定(Verdict Gate)
python
def santa_verdict(review_b, review_c):
    """両方のレビュアーが合格する必要がある。部分的な評価なし。"""
    if review_b.verdict == "PASS" and review_c.verdict == "PASS":
        return "NICE"  # 出荷する

    # 両方のレビュアーのフラグをマージし、重複を排除
    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

両方が合格する必要がある理由: 1人のレビュアーだけが問題を検知した場合、その問題は実在します。もう1人のレビュアーのブラインドスポットこそ、Santa Method が解消しようとしている障害モードです。

フェーズ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)

    # すべての重大な問題を修正する(提案はオプション)
    output = fix_agent.execute(
        output=output,
        issues=issues,
        instruction="フラグが立てられた問題のみを修正してください。リファクタリングや未要求の変更は行わないでください。"
    )

    # 修正した出力で両方のレビュアーを再実行する(新しいエージェント、前のラウンドの記憶なし)
    review_b = Agent(prompt=REVIEWER_PROMPT.format(output=output, ...))
    review_c = Agent(prompt=REVIEWER_PROMPT.format(output=output, ...))

# イテレーション回数を超えた — エスカレート
log_santa_result(output, MAX_ITERATIONS, "escalated")
escalate_to_human(output, issues)

重要: 各レビューラウンドは新鮮なエージェントを使用します。レビュアーは前のラウンドの記憶を持ってはいけません。前のコンテキストはアンカリングバイアスを生み出すためです。

実装パターン

パターンA: Claude Code サブエージェント(推奨)

サブエージェントは真のコンテキスト分離を提供します。各レビュアーは共有状態を持たない別個のプロセスです。

bash
# Claude Code セッションでエージェントツールを使用してレビュアーを起動する
# 速度のために両エージェントを並列で実行する
python
# エージェントツール呼び出しの擬似コード
reviewer_b = Agent(
    description="Santa Review B",
    prompt=f"この出力の品質をレビューしてください...\n\nルーブリック:\n{rubric}\n\n出力:\n{output}"
)
reviewer_c = Agent(
    description="Santa Review C",
    prompt=f"この出力の品質をレビューしてください...\n\nルーブリック:\n{rubric}\n\n出力:\n{output}"
)
パターンB: 逐次インライン(フォールバック)

サブエージェントが利用できない場合、明示的なコンテキストリセットで分離をシミュレートします:

  1. 出力を生成する
  2. 新しいコンテキスト: 「あなたはレビュアー1です。このルーブリックのみに対して評価してください。問題を見つけてください。」
  3. 所見を逐語的に記録する
  4. コンテキストを完全にクリアする
  5. 新しいコンテキスト: 「あなたはレビュアー2です。このルーブリックのみに対して評価してください。問題を見つけてください。」
  6. 両方のレビューを比較し、修正して繰り返す

サブエージェントパターンは厳密に優れています — インラインシミュレーションはレビュアー間のコンテキスト漏れのリスクがあります。

パターンC: バッチサンプリング

大規模バッチ(100件以上)の場合、全アイテムへの完全な Santa 適用はコスト的に非現実的です。層別サンプリングを使用します:

  1. ランダムサンプルで Santa を実行(バッチの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)  # パターンに一致する全アイテムを修正
            return santa_batch(items, rubric)   # 再サンプリング

    return items  # クリーンなサンプル → バッチを出荷

障害モードと緩和策

障害モード症状緩和策
無限ループレビュアーが修正後に新しい問題を見つけ続ける最大イテレーション上限(3回)。エスカレートする。
スタンプ承認両方のレビュアーがすべてを通す敵対的プロンプト: 「あなたの仕事は問題を見つけることであり、承認することではありません。」
主観的ドリフトレビュアーがエラーではなくスタイルの好みにフラグを立てる客観的な合否基準のみを持つ厳格なルーブリック
修正による退行問題Aの修正が問題Bを引き起こすラウンドごとの新鮮なレビュアーが退行を検知
レビュアーの合意バイアス両方のレビュアーが同じことを見逃す独立性によって緩和されるが排除はされない。重要な出力には3人目のレビュアーか人間のスポットチェックを追加
コスト爆発大規模出力に対して多すぎるイテレーションバッチサンプリングパターン。検証サイクルあたりの予算上限。

他のスキルとの統合

スキル関係
Verification Loop確定的なチェック(ビルド、Lint、テスト)に使用。Santa はセマンティックチェック(正確性、ハルシネーション)に使用。先に検証ループを実行し、その後 Santa を実行。
Eval ハーネスSanta Method の結果がEval メトリクスに反映される。Santa の実行全体で pass@k を追跡して、経時的なジェネレーターの品質を測定。
Continuous Learning v2Santa の発見が本能になる。同じ基準での繰り返し失敗 → パターンを避ける学習された行動。
Strategic Compactコンパクト前に Santa を実行する。検証途中でレビューコンテキストを失わない。

メトリクス

Santa Method の効果を測定するためにこれらを追跡します:

  • 初回合格率: ラウンド1で Santa を通過する出力の % (目標: >70%)
  • 収束までの平均イテレーション: NICE になるまでの平均ラウンド数(目標: <1.5)
  • 問題の分類: 失敗の種類の分布(ハルシネーション対完全性対コンプライアンス)
  • レビュアー合意: 両方のレビュアーがフラグを立てた問題 対 片方のみの % (低い合意 = ルーブリックの改善が必要)
  • エスケープ率: Santa が検知すべきだったが出荷後に見つかった問題(目標: 0)

コスト分析

Santa Method は検証サイクルあたり、生成単体のトークンコストの約2〜3倍のコストがかかります。高リスクな出力のほとんどにとって、これは割安です:

Santa のコスト = (生成トークン) + 2×(ラウンドあたりのレビュートークン) × (平均ラウンド数)
Santa を使わないコスト = (評判の損害) + (修正の労力) + (信頼の侵食)

バッチ操作では、サンプリングパターンにより、体系的な問題の>90%を検知しながら、完全な検証の約15〜20%のコストに削減されます。

© 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/ja-JP/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—~2.1kAutomated 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 4 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

What does Santa Method do?

収束ループを持つマルチエージェント敵対的検証。2つの独立したレビューエージェントが両方合格して初めて出力を出荷できます。. Santa Method is an agent skill from affaan-m/ECC.

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/ja-JP/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/ja-JP/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. Our summary lists: Python 3.

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 2.1k tokens (SKILL.md is roughly 8.3k 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.