К основному содержанию
скилл CX Codex

differential-audit — скилл для Claude Code: аудит и установка

Сравнивает две реализации одной логики и выявляет расхождения в результатах, предупреждениях и обработке ошибок. Пригодится для переноса кода между языками, проверки рефакторинга и воспроизведения исследований.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add pedrohcgs/claude-code-my-workflow --skill differential-audit -a claude-code
Открыть на GitHub

Что делает differential-audit

Скилл differential-audit задаёт протокол сравнения двух реализаций: например, пакета на R и его версии на Python, исследовательского репозитория и повторной реализации или новой версии программы и предыдущей. Сначала фиксируются версии кода и библиотек, входные данные, случайные seed, настройки, ожидаемые результаты и допустимые отклонения. Затем составляется перечень выходных объектов, чтобы обе реализации проверялись по одному контракту.

Для каждого типа результата задаётся свой способ сравнения. Имена, порядок строк, размеры выборок и статусы проверяются на точное совпадение после согласованной нормализации; численные значения сопоставляются с установленными абсолютными и относительными допусками. Проверка охватывает также предупреждения, диагностику и ошибки. Сам компаратор предварительно испытывают на неверном значении, пропущенном результате, несовпадающем порядке строк и пустом выводе: он должен обнаруживать такие случаи, а не пропускать их.

Каждому расхождению присваивается постоянный ID, минимальный воспроизводимый пример и категория: дефект, намеренное различие, ограничение эталона или нерешённая проблема. После исправления нужно повторить весь аудит. Скилл также предусматривает независимую проверку тестовых сценариев и отдельные заключения по научной и технической сторонам работы. Совпадение результатов подтверждает соответствие зафиксированному контракту, но само по себе не доказывает правильность метода.

Какие задачи решает

  • сопоставить результаты версий программы на R и Python
  • проверить воспроизведение результатов исследовательского проекта
  • зафиксировать расхождения после рефакторинга
  • обнаружить пропущенные выходные данные и ошибки компаратора
  • проверить регрессию перед обновлением реализации

Примеры запросов агенту

  • Сравни две реализации на R и Python: зафиксируй входные данные, настройки и ожидаемые результаты, затем составь полный отчёт о расхождениях.
  • Проведи аудит новой версии относительно старой, включая предупреждения, ошибки и порядок строк, и присвой каждому расхождению отдельный ID.
  • Проверь компаратор на пропущенных результатах и неверных значениях, затем подготовь минимальные воспроизводимые примеры для найденных проблем.

Как установить differential-audit

1Через Skills CLI (Vercel)

npx skills add pedrohcgs/claude-code-my-workflow --skill differential-audit -a claude-code

2Вручную: положить файлы

~/.claude/skills/differential-audit/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/differential-audit/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о differential-audit

Как установить differential-audit в Claude Code?

Выполни npx skills add pedrohcgs/claude-code-my-workflow --skill differential-audit -a claude-code. Файл скилла находится по пути ~/.claude/skills/differential-audit/SKILL.md.

Что делает differential-audit?

Скилл организует проверку двух реализаций по заранее зафиксированным входам, настройкам и ожидаемым результатам. Он помогает выявлять различия в числах, структуре выходных данных, предупреждениях и ошибках.

Доказывает ли совпадение результатов правильность реализации?

Нет. Аудит показывает соответствие зафиксированному контракту, но обе реализации могут содержать одну и ту же ошибку. Правильность метода и его предположений проверяется отдельно.

Исходный текст

SKILL.md · MIT
---
name: differential-audit
description: Compare two implementations of the same thing — a port (R↔Python↔Stata), a reimplementation, a replication package, a refactor, or a new version against the old — so that agreement means something. Freeze inputs first, inventory every expected output, test the comparator itself, compare every channel (not just the headline number), and give each divergence a stable ID and a smallest witness. Use for cross-language parity, replication, upgrade/regression gates, or whenever "the numbers match" is about to license a claim.
allowed-tools: ["Read", "Grep", "Glob", "Bash", "Write"]
metadata:
  protocol: implementation-fidelity
---


# Make agreement mean something

Two implementations agreeing proves they satisfy a **prespecified contract**. It does not prove either is correct, and it never validates the method or its assumptions. Both can be wrong in the same way — especially when one was written by reading the other. Design the comparison so that agreement is informative and disagreement is legible.

**Rule: freeze before you compare; test the comparator before you trust it.**

## 1. State the claim and the reference

Write down: what is being compared, which side is the reference, and **what agreement would and would not establish**. "Matches the R package" is a conformance claim, not a correctness claim. Say so explicitly, so nobody later reads parity as validation.

## 2. Freeze the inputs before inspecting anything

Record and fix: data versions or hashes, code and package versions, random seeds or realized sample splits, options and defaults, the outputs to be compared, and the acceptance thresholds. Freezing *after* a first look invites tolerance drift toward whatever the run produced.

Do **not** compare defaults across systems as if only the language changed. Map the choices explicitly — a "default" is a substantive modeling decision that usually differs between implementations.

## 3. Declare tolerance classes, and make them binding

Do not carry a single fuzzy epsilon. Classify each output:
- **EXACT** — names, ordering, sample masks, counts, statuses, return/error codes, warning classes, option defaults. Byte-equal after documented normalization.
- **Scalar numeric** — deterministic estimates, standard errors, p-values, critical values. State absolute and relative tolerances and the justification.
- **Matrix/vector** — covariance matrices, influence summaries, weight vectors, plot data.
- **Stochastic** — must meet a prespecified error-rate criterion with uncertainty reported.

A looser tolerance may be used **only through a recorded approved divergence** with a reason. Silent widening is the most common way a parity gate stops testing anything.

## 4. Crosswalk and output inventory

Write the mapping between the two implementations, plus an inventory of every expected output with expected row/cell counts. Every declared object must have a **live comparison or an explicit out-of-scope reason**. Without an inventory, both sides can silently omit the same result and the comparison reports success.

## 5. Build cases that isolate mechanisms

Not just the happy path:
- analytically solvable or known-truth cases;
- relevant data problems (missing, unbalanced, near-collinear, extreme-but-valid weights, shuffled row order, ties);
- **compound** cases combining several problems;
- published examples;
- randomized valid designs across the supported surface, not a handful of fixtures.

Fixed fixtures are necessary but not sufficient — they test what the author already thought of.

## 6. Test the comparator itself

Before trusting a green result, feed the comparison a wrong value, a missing result, a misaligned row, and an empty result. **It must fail, not skip.** A comparator that silently passes over what it cannot reconcile turns every subsequent green into noise. (See `vaccinate`.)

## 7. Compare every declared channel

Not only the headline coefficient: estimates, uncertainty measures, sample counts, labels and ordering, diagnostics, warnings, and failure statuses. Divergent warnings and differing error behavior are real defects — they change what a user does next.

## 8. Give every divergence an ID and a smallest witness

For each difference: a stable identifier, the smallest reproducible case, and a classification — **defect / intentional difference / limitation of the reference / unresolved**. Unresolved stays red; it is not averaged away or waived. A fix must turn its witness green **and** survive a rerun of the full audit, so a local patch does not break something else.

## 9. Adversarial expansion by someone else

Fixtures written by the implementer test the implementer's mental model. Have an independent reviewer add designs **not shared in advance**, and preserve any that reveal bugs or materially increase coverage as permanent fixtures. This is the cheapest defense against a suite that passes because it was written to pass.

## 10. Close with separate reviews and an honest scope statement

End with distinct scientific and implementation sign-off, recording: checks run, open findings, accepted differences, explicit non-claims, and who approved release. State plainly that the audit establishes conformance to the frozen contract — not the truth of the method.

## Minimum checklist

1. Name the reference; state what agreement would and would not establish.
2. Freeze versions, hashes, seeds, options, outputs, tolerances.
3. Declare binding tolerance classes; record any approved divergence.
4. Crosswalk + expected-output inventory with counts.
5. Known-truth, dirty, compound, and randomized cases.
6. Seed comparator faults — it must fail, not skip.
7. Compare all channels, including warnings and failures.
8. Stable ID + smallest witness + classification per divergence; unresolved stays red.
9. Independent reviewer adds unseen designs.
10. Separate sign-offs; state the non-claims.

## Cross-references

- [`provenance-and-ground-truth.md`](../../references/provenance-and-ground-truth.md) — ranked oracles, declared precedence, the divergence taxonomy
- [`.claude/rules/replication-protocol.md`](../../rules/replication-protocol.md) — the tolerance contract

© pedrohcgs · MIT · pedrohcgs/claude-code-my-workflow

Похожие скиллы

Все скиллы по теме «Тесты и QA» →
improve-codebase-architecture Matt Pocock Скилл ищет архитектурные узкие места в кодовой базе и показывает варианты углубления модулей в HTML-отчёте. Подойдёт для ревью перед рефакторингом. 1 163 035установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок tdd Matt Pocock Скилл управляет циклом красный-зелёный в TDD: проверяет, что тесты пишутся до кода, держит их на уровне публичных интерфейсов и не завязывает на внутреннюю структуру. 1 141 062установок skill-creator официальный anthropics Помогает создать новый скилл, доработать существующий и проверить результат через тестовые промпты и оценки. 414 180установок agent-browser vercel-labs Скилл управляет браузером через CLI: открывает страницы, заполняет формы, нажимает кнопки и проверяет веб-приложения. Подходит для задач, где агенту нужно действовать в интерфейсе. CX Codex +1 1 200 000установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок

Из того же набора48

interview-me Проводит многошаговое интервью и превращает сырую идею исследования в структурированную спецификацию: вопрос, гипотезы, идентификация, данные, стратегия. CX Codex +1 ★ 1 671звёзд репо humanize Находит штампы и речевые маркеры нейросетей в текстах LaTeX, Quarto и Markdown. Создаёт отчёт с проблемными местами перед подачей статьи в журнал. CX Codex +1 ★ 1 671звёзд репо grant-proposal Собирает черновик исследовательской грантовой заявки из существующей спецификации проекта. Пригодится для NSF, NIH, ERC или фонда. CX Codex +1 ★ 1 671звёзд репо disclosure-check Предварительно проверяет таблицы, графики и логи на утечки приватных данных и правила раскрытия статистики. Помогает подготовить отчёты перед выгрузкой из защищённых контуров вроде Census или IRS. CX Codex +1 ★ 1 671звёзд репо diagnose Ведёт от воспроизведения бага к минимальному примеру, гипотезам и починке. Нужен, когда регрессия выдаёт не то число или скрипт падает. CX Codex +1 ★ 1 671звёзд репо deploy Скилл собирает слайды Quarto в HTML и синхронизирует файлы с docs/ для GitHub Pages. Запускайте его, когда нужно опубликовать лекцию. CX Codex +1 ★ 1 671звёзд репо deep-audit Разбирает теорию, доказательство, статью или кодовую базу на части, гоняет по ним независимых скептиков и чинит всё подтверждённое. Нужен, когда одного прохода ревью мало. CX Codex +1 ★ 1 671звёзд репо data-management-plan Генерирует план управления данными под требования грантов NSF, NIH, ERC и Horizon Europe. Пригодится при оформлении заявки на финансирование или перед сбором исследовательских данных. CX Codex +1 ★ 1 671звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой