acceptance
Orchestrates automated verification checks to ensure an implementation matches its requirements.
Install
mkdir -p .claude/skills/acceptance && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/13156" && unzip -o skill.zip -d .claude/skills/acceptance && rm skill.zipInstalls to .claude/skills/acceptance
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Verify an implementation against its spec (feature) or confirm a bug no longer reproduces (bug fix). Fans out parallel checks and aggregates verdicts into one receipt. Triggers: "test this", "verify against spec", "QA the implementation", "run the test plan", "validate acceptance criteria", "verify the PR", "verify the fix", "confirm bug is gone", "acceptance", "verify this", "test this".Key capabilities
- →Detect project type from build files and manifests
- →Gather verification sources like specs and test plans
- →Fan out parallel checks to specialized agents
- →Aggregate verdicts into a single receipt
- →Re-verify changes in a fix-loop
How it works
This skill detects the project type, gathers verification sources, and then dispatches parallel checks to specialized agents. It aggregates their verdicts into a structured receipt.
Inputs & outputs
When to use acceptance
- →Verify feature specs
- →Confirm bug fix
- →Run acceptance criteria
- →Validate implementation
About this skill
Acceptance
Скилл-хореограф и единственный обязательный гейт после реализации. Он исполняет уже существующий контракт верификации и никогда не выдумывает проверки. Контракта нет — шаг 1.5 останавливает прогон и называет вышестоящий скилл, который его производит.
Сильнее всего этот скилл опирается на принцип пирамиды: уровень говорит, что обязано быть доказано, а проект говорит, чем именно. Поэтому каждую команду acceptance выводит из проекта, с которым работает.
| Файл | Содержит |
|---|---|
references/source-branches.md | Шаг 1: frontmatter спецификации и четыре ветки test_plan_source (receipt / mounted / on-the-fly / absent) |
references/judgement-layers.md | Блок 2: маршрутизация ревьюеров, паттерн-триггеры безопасности, coverage-аудит, цикл фиксов и бюджет раундов |
references/subcheck-prompts.md | Контракты промптов и пути вывода для каждой подпроверки |
references/aggregation.md | Шаг 6: агрегация PoLL, таблица Aggregated Status, шаблон расписки, маршрутизация дальше |
references/re-verification.md | Цикл повторной верификации: таблица решений по diff_hash и переопределения при изменении спеки и тест-плана |
Входные данные
Аргументы приходят одной свободной строкой — её надо разобрать, позиционной подстановки не ждать. Всё необязательно: без аргументов гейт прогоняет полную пирамиду для слага, выведенного из ветки. Неизвестный токен — остановиться и сказать, что именно не понято; не угадывать.
По умолчанию гейт только читает. Он прогоняет все уровни, сообщает все находки и ничего не
меняет. Правки включаются флагом --fix, потому что незапрошенная правка — это изменение, которого
вызывающий не просматривал; а на чужом репозитории гейт, переписывающий рабочий код, чтобы доказать
себя, хуже гейта, который просто отчитывается.
| Аргумент | Действие |
|---|---|
<slug> (первый голый токен) | Семейство артефактов в swarm-report/. Не задан — вывести из имени ветки, сняв префикс feature/, fix/, chore/, refactor/, docs/. |
--fix | Разрешить мутации: цикл фиксов чинит находки уровня BLOCK. Без флага находки только сообщаются. Никогда не распространяется на авторство проверок — это /cover-with-tests отдельным шагом. |
--levels=<список> | Прогнать ровно эти уровни. L0,L1,L2 — только механический блок плюс статика; L1b — только панель суждения; L3,L4,L5 — только device. L1 означает оба подуровня, L1a и L1b адресуются и по отдельности. Не задан — уровни выводятся из типа задачи. Не названный уровень получает SKIPPED с blocked_on: excluded by --levels. |
--review-experts=<список> | Состав панели L1b вместо отбора по триггерам, например security-expert,ux-expert. Не задан — панель определяют триггеры профиля. Отклонение от триггерного состава уходит в расписку как принятый риск с причиной вызывающего. |
--source-of-truth=<path> | Взять этот файл источником истины вместо зондирования. Не задан — источник находится сам по шагу 1. Отменяет пробу шага 1, но не требование шага 1.5, чтобы источник вообще существовал. |
--max-rounds=<N> | Бюджет цикла фиксов, по умолчанию 3. Имеет смысл только с --fix; переданный сам по себе — no-op, о котором лучше сказать, чем молча его проигнорировать. |
--security-review=<yes|no> | Форсировать или подавить ревью безопасности. Не задан — решают frontmatter-триггер и diff-паттерны. no не рекомендуется и уходит в расписку. |
--coverage-audit=<yes|no> | Форсировать или подавить coverage-аудит. Не задан — решают diff-триггеры. |
Служебный параметр, в подсказке не показывается: --base=<ref> задаёт базу диффа для diff-триггеров
и diff_hash. Руками он не нужен — по умолчанию берётся merge-base с дефолтной веткой remote, и
этого хватает; параметр существует для вызывающего агента, который уже знает точную границу scope.
Флаг сужает scope, но никогда не меняет вердикт. Каждый исключённый уровень, подавленный ревьюер и пропущенный аудит попадают в расписку в раздел принятых рисков — с аргументом дословно и причиной вызывающего. Исключённый уровень это отслеживаемое исключение, а не молчаливый проход. Если флаг исключает уровень, обязательный для данного типа задачи (L5 для бампов версий, миграций, изменений infra-слоя и задач «поведение не должно измениться»), сказать это в начале прогона и потребовать подтверждения.
L0 исключить нельзя. Это неявный входной гейт всех остальных уровней: про код, который не собирается, не доказано ничего.
Модель исполнения — три блока
Пирамида отвечает на вопрос «что обязано быть проверено», а не «в каком порядке запускаются процессы». Исполнение делится на три блока, и ось контракта — соответствие источнику истины — проходит поперёк всех трёх.
- Механический блок — L0 сборка, L1a линт и типы, L2 изолированные тесты, затем гейт покрытия public API. Машинные вердикты, fail-fast, без суждения.
- Слои суждения — L1b.
code-reviewerплюс условная экспертная панель и coverage-аудит, поверх зелёного механического блока. Под--fixмеханический блок перепрогоняется после каждой мутации; этот интерливинг несущий, а не деталь: фикс, ломающий сборку, обесценивает все суждения, вынесенные после него. - Device-блок — L3 UI-тесты → L4 E2E → L5 ручная верификация, строго в этом порядке. Гейт владеет устройством и установленной сборкой на всём протяжении блока.
Блоки упорядочены. Красный механический блок не веерится в суждение; слой суждения с непогашенным BLOCK не пускает в device-блок.
Словарь
Канонические значения; create-pr и все потребители ниже по потоку читают их из расписки.
project_type—android | ios | web | desktop | backend-jvm | backend-node | cli | library | generic.has_ui_surface— выводится изproject_type. Истина дляandroid,ios,web,desktop; дляgeneric— спросить пользователя.ecosystem— стек сборки (gradle | node | rust | go | python | xcode), нужен только для выбора команд механического блока. Ортогоналенproject_type.- Вердикт подпроверки —
PASS | WARN | FAIL | SKIPPED, плюсseverity(critical | major | minor),confidence(high | medium | low) иdomain_relevanceдля агрегации. - Оценка находки — находки суждения оцениваются по рубрике confidence 0–100, определённой один
раз в
~/.claude/agents/code-reviewer.mdи унаследованной везде. BLOCK — critical/major ≥ 75. WARN — minor ≥ 50, только сообщается. Ниже порога — отбрасывается. - Aggregated Status —
VERIFIED | FAILED | PARTIAL. - Уровни пирамиды —
L0сборка,L1aстатический анализ,L1bэкспертное агентное ревью,L2изолированные тесты,L3интеграционные,L4E2E,L5ручная верификация.--levelsадресует их этими именами;L1означает оба подуровня сразу.
Шаг 0: определить тип проекта
Определять по build-файлам, манифестам и раскладке исходников: Android (AndroidManifest.xml,
build.gradle* с com.android.application), iOS (*.xcodeproj, Package.swift с iOS-таргетами),
web (package.json с браузерным фреймворком), desktop (Compose Desktop, Tauri, Electron), backend
(Spring/Ktor/Express без UI), CLI и библиотека (UI-поверхности нет). Неоднозначно — спросить. На
выходе: project_type, has_ui_surface, ecosystem.
Правило переопределения. Непустой platform: во frontmatter спецификации побеждает: первое его
значение становится project_type, полный список записывается как platforms: [...], тип
multi-platform не выдумывается. Записать project_type_override: spec, либо user, если
пользователь поправил определение по ходу.
Чтения файлов шага 0 и шага 1 не пересекаются — выдать оба набора одним пакетом вызовов Read.
Шаг 1: собрать входы
Приёмке нужен хотя бы один источник верификации. Прочитать источники спецификации (Figma, PRD,
список AC, описание PR, issue) и загрузить frontmatter спеки (platform, surfaces, risk_areas,
non_functional, acceptance_criteria_ids, design.figma).
Прозондировать артефакты одним пакетом вызовов Read: swarm-report/<slug>-test-plan.md,
docs/testplans/<slug>-test-plan.md, swarm-report/<slug>-debug.md.
Чистота рабочего дерева. Проверить git status --porcelain до всего остального. Слои суждения
считают дифф по диапазону коммитов, а механический блок и device-блок исполняют рабочее дерево:
пока в дереве есть незакоммиченные изменения затронутых исходников, эти два блока проверяют не то,
что судят ревьюеры, и diff_hash описывает не то, что прогонялось. Найдено — назвать файлы и
потребовать решения (закоммитить либо явно принять расхождение записью в расписке), а не
продолжать молча. Незакоммиченный прогон code-simplifier — самый частый источник этого
расхождения, но правило общее и от него не зависит.
Выбранный источник запускает одну из четырёх веток — test_plan_source: receipt | mounted | on-the-fly | absent. debug.md как единственный источник подходит под ветку 3 (on-the-fly):
верификация багфикса относится к нему как к спека-подобному входу. Семантика веток, переопределения
mount-расписки и инварианты по surfaces — в
references/source-branches.md. Ветку записать в расписку.
Верификация инструментирования. Если тест-план несёт раздел ## Non-functional / Instrumentation, и он не N/A: <причина>, проверить на работающем приложении, что каждое
объявленное событие, метрика или span действительно испускается, когда исполняется его поведение.
Объявлено, но не испускается, либо испускается с неверными полями — находка P1 через обычный цикл
FAILED.
Шаг 1.5: гейт отсутствующего источника
Срабатывает только на test_plan_source: absent.
| Ситуация | Предложение |
|---|---|
| Нет спеки, нет тест-плана (фича) | /write-spec за требованиями, затем повторить прогон |
| Спека без AC, тест-плана |
Content truncated.
When not to use it
- →When no verification source is available
- →When the task is to invent checks rather than execute pre-existing ones
- →When the project type cannot be detected or overridden
Limitations
- →Requires at least one verification source to proceed
- →Does not invent checks; executes pre-existing verification contracts
- →Missing per-check artifact results in a FAIL verdict
How it compares
This skill orchestrates a complete, multi-agent verification process against predefined specifications, providing a formal, evidence-backed receipt, unlike a single manual check.
Compared to similar skills
acceptance side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| acceptance (this skill) | 0 | 1mo | No flags | Advanced |
| bug-report-writer | 0 | 1mo | No flags | Beginner |
| file-todos | 0 | 5mo | Review | Beginner |
| team-workflow | 0 | 1mo | No flags | Advanced |
Try saying
Example prompts that trigger this skill in your AI assistant.
You might also like
bug-report-writer
Ruslana16
Use this skill whenever the user asks to write a bug report, turn notes into a Jira ticket, clean up a defect, make a bug report clear, summarize a failed test as a bug, draft a defect report, or create a QA issue from rough notes.
file-todos
JimmyChen-NXP
This skill should be used when managing the file-based todo tracking system in the todos/ directory. It provides workflows for creating todos, managing status and dependencies, conducting triage, and integrating with slash commands and code review processes.
team-workflow
jevonsnotes
>
team-routing
WellApp-ai
Detect domain from context and find appropriate team member
agent-github-pr-manager
ruvnet
Agent skill for github-pr-manager - invoke with $agent-github-pr-manager
linear-ci-integration
jeremylongshore
Configure Linear CI/CD integration with GitHub Actions and testing. Use when setting up automated testing, configuring CI pipelines, or integrating Linear sync into your build process. Trigger with phrases like "linear CI", "linear GitHub Actions", "linear automated tests", "CI linear pipeline", "linear CI/CD".