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

qa-quarto — скилл для Claude Code: проверка и установка

Сравнивает HTML-слайды Quarto с PDF-версией Beamer и помогает исправить расхождения. Запускайте его, когда нужно проверить соответствие презентаций.

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

Что делает qa-quarto

Скилл поручает субагенту-критику найти различия в содержании и оформлении, а субагенту-исправителю — внести правки. После повторного рендеринга проверка запускается снова. Цикл завершается после двух раундов без новых серьёзных замечаний или после пяти раундов; оставшиеся проблемы попадают в итоговый отчёт.

Для работы нужны отрендеренный файл .qmd и PDF-эталон Beamer. Скилл проверяет, не обрезан ли контент, на месте ли слайды и формулы, совпадают ли математические обозначения. Скрипт scripts/slide-qa.py открывает HTML в headless Chrome и сохраняет отчёт со скриншотами слайдов; если Playwright не установлен, этот этап не запустится, и критик перейдёт к чтению исходников.

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

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

  • сверить HTML-слайды Quarto с PDF-эталоном Beamer
  • найти пропущенные слайды, формулы и текст
  • обнаружить обрезанный контент и сломанные изображения
  • исправить подтверждённые расхождения и повторить проверку

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

  • Проверь, совпадает ли HTML из Lecture1.qmd с PDF Beamer.
  • Сверь презентацию Quarto с PDF-эталоном и исправь найденные расхождения.

Как установить qa-quarto

1Через Skills CLI (Vercel)

npx skills add pedrohcgs/claude-code-my-workflow --skill qa-quarto -a claude-code

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

~/.claude/skills/qa-quarto/SKILL.md

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

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

Вопросы о qa-quarto

Как установить qa-quarto в Claude Code?

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

Что делает qa-quarto?

Сравнивает HTML-презентацию Quarto с PDF-эталоном Beamer, запускает исправления и повторные проверки. В конце сохраняет отчёт о пройденных проверках и оставшихся проблемах.

Какие файлы нужны для проверки?

Нужны отрендеренный .qmd и PDF Beamer для сравнения. Для измерения переполнения слайдов скрипту scripts/slide-qa.py нужен Playwright.

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

SKILL.md · MIT
---
name: qa-quarto
description: Adversarial Quarto-vs-Beamer parity QA. A critic agent compares the Quarto HTML render to the Beamer PDF benchmark for content/visual parity; a fixer agent applies fixes; loops until APPROVED or two consecutive rounds turn up nothing new (fallback cap 5 rounds). Use when user says "qa the quarto", "check parity", "does the html match the pdf?", "quarto matches beamer?", or after a translate-to-quarto run. Requires both the `.qmd` rendered and a `.pdf` benchmark.
argument-hint: "[LectureN]"
allowed-tools: ["Read", "Grep", "Glob", "Write", "Edit", "Bash", "Agent", "Task"]
context: fork
---

# Adversarial Quarto vs Beamer QA Workflow

Compare Quarto HTML slides against their Beamer PDF benchmark using an iterative critic/fixer loop.

**Philosophy:** The Beamer PDF is the gold standard. The Quarto translation must be at least as good in every dimension.

---

## Workflow

```
Phase 0: Pre-flight → Phase 1: Critic audit → Phase 2: Fixer → Phase 3: Re-audit → Loop until APPROVED or dry (2 consecutive dry rounds; fallback cap 5)
```

## Hard Gates (Non-Negotiable)

| Gate | Condition |
|------|-----------|
| **Overflow** | NO content cut off |
| **Plot Quality** | Interactive charts >= static plots |
| **Content Parity** | No missing slides/equations/text |
| **Visual Regression** | Quarto >= Beamer in all dimensions |
| **Slide Centering** | Content centered, no jumping |
| **Notation Fidelity** | All math verbatim from Beamer |

## Phase 0: Pre-flight

1. Locate Beamer (.tex/.pdf) and Quarto (.qmd/.html) files
2. Check freshness (re-render if QMD newer than HTML)
3. Verify TikZ SVGs if applicable
4. Measure the render: `"${SLIDE_QA_PYTHON:-python3}" scripts/slide-qa.py Quarto/[Lecture].html`. It loads the deck in headless Chrome and writes `quality_reports/audits/slide-qa/[Lecture]/report.md` with per-slide overflow in pixels, plus one screenshot per slide. Exit 1 means it found something — overflow, clipped content, a broken image, or a missing or wrong-case file; exit 2 means it could not run (usually Playwright is missing — the script prints the one-time venv install and the `SLIDE_QA_PYTHON` line to set) — say so, and the critic falls back to reading the source.

## Phase 1: Initial Audit

Launch the `quarto-critic` agent to compare Beamer vs Quarto comprehensively, passing the slide-qa report path from Phase 0 for the Overflow gate. Report saved to `quality_reports/[Lecture]_qa_critic_round1.md`.

## Phase 2: Fix Cycle

If not APPROVED, launch `quarto-fixer` agent to apply fixes (Critical → Major → Minor), re-render, and verify.

## Phase 3: Re-Audit

Re-run `scripts/slide-qa.py` on the fixer's re-render, then re-launch the critic with the fresh report to verify fixes. Loop back to Phase 2 if needed.

## Iteration Limits — loop-until-dry

This is the **loop-until-dry** primitive from [`orchestrator-protocol.md`](../../rules/orchestrator-protocol.md): the critic returns `FINDING`s (the hard-gate table is the CRITICAL roll-up, per [`orchestration-schemas.md`](../../references/orchestration-schemas.md)); the loop **converges after 2 consecutive dry rounds** — rounds that add 0 new CRITICAL/MAJOR findings (deduped on `id = sha1(file:line:locus)`) — not at a fixed round count.

- **Fallback cap:** 5 rounds bounds a non-converging loop, then escalate to the user with remaining issues.
- **Two-strikes:** the same gate failing in rounds N and N+2 is flagged for the user, not patched again ([`summary-parity.md`](../../rules/summary-parity.md)).
- APPROVED iff every hard gate passes and no CRITICAL or MAJOR finding remains (minor ones are listed for the user).

## Final Report

Save to `quality_reports/[Lecture]_qa_final.md` with hard gate status, iteration summary, and remaining issues.

## Findings are validated, not just written (v2.5)

This skill's reviewers emit findings under the machine-checked contract in
[`finding-schema.json`](../../references/finding-schema.json). Reports are JSON **arrays**.

**Smoke-test the harness before spending review effort** — a run that fans out reviewers and
then cannot write a valid report has wasted the whole pass:

```bash
echo '[]' | python3 scripts/validate-findings.py
```

Reviewer agents are read-only, so **this skill writes the files**. For each reviewer's final
response: save the prose report to this skill's report path for that reviewer, copy its closing fenced `json` block
to a scratch file, and fill the ids while validating:

```bash
python3 scripts/validate-findings.py --fill-ids block.json > <report>.json.tmp \
  && mv <report>.json.tmp <report>.json || rm -f <report>.json.tmp   # exit 0 required; a failed run keeps no file
python3 scripts/validate-findings.py --check-quotes <report>.json   # each quote must be the file's own text (orchestration-schemas.md §1)
```

A reviewer that returned no `json` block, or a block that does not validate, has not reviewed:
re-dispatch it once with the validator's error text, then report the lens as missing rather
than reducing without it.

What the contract forces, and why:

- **`rule`** — the documented rule or standard violated. A finding citing no rule is an
  opinion, and opinions do not gate a commit.
- **`failing_case`** — a concrete configuration under which the claim breaks, or the exact
  missing hypothesis. *"This could be clearer"* does not validate.
- **`id = sha1("<file>:<line>:<locus>")`** — deterministic, so dedup across rounds is
  exact and the two-strikes rule is checkable rather than eyeballed.
- **`mechanical`** — `true` only for fixes that cannot change a result (typo, cross-reference,
  formatting, label). **Never** for an estimand, assumption, specification, inference
  procedure, sample definition, or reporting language: those return to the researcher.

Apply the **per-lens evidence burdens** and the **"does NOT count" filters** in
[`orchestration-schemas.md` §7](../../references/orchestration-schemas.md) *before*
verification, so known false alarms never reach the judge. The verifier pass is
**refute-biased** and sets each finding's `verdict` (reviewers leave it unset): only `verdict: "confirmed"` findings ship; anything it cannot ground is
dropped, not downgraded to a warning.

© 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

review-paper Разбирает научную рукопись, проверяет аргументацию и методологию. Можно получить обычный отчёт, пройти цикл критики с правками или смоделировать рецензирование для выбранного журнала. CX Codex +1 ★ 1 671звёзд репо respond-to-referees Собирает документ с ответами на замечания рецензентов: находит каждое замечание в правленой рукописи, помечает, что учтено, и пишет вежливый ответ. CX Codex +1 ★ 1 671звёзд репо research-ideation Скилл превращает тему, явление или описание датасета в исследовательские вопросы, гипотезы и варианты эмпирической проверки. CX Codex +1 ★ 1 671звёзд репо replication-package Собирает депозит для журнала: README, манифест данных, карту «таблица → скрипт:строка» и чек-лист DCAS. Пригодится после принятия статьи. CX Codex +1 ★ 1 671звёзд репо proofread Прогоняет файлы лекций .tex и .qmd через вычитку и отдаёт отчёт с ошибками. Исходники при этом не трогает. CX Codex +1 ★ 1 671звёзд репо promote-memory Фильтрует локальные заметки Claude Code и переносит важные правила в MEMORY.md через голосование пяти независимых субагентов. CX Codex +1 ★ 1 671звёзд репо preregister Создаёт Markdown-план предварительной регистрации исследования в стиле OSF, AsPredicted или AEA RCT Registry. Запустите его до сбора данных или анализа результатов. CX Codex +1 ★ 1 671звёзд репо power-analysis Считает мощность, нужный размер выборки и минимальный детектируемый эффект для дизайна исследования, а затем пишет готовый раздел для пререгистрации. CX Codex +1 ★ 1 671звёзд репо

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

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