post-patch-validation — скилл для Claude Code: проверка патчей
Скилл гоняет эксплойты и проверки на двух версиях кода — уязвимой и пропатченной — и показывает, что патч действительно закрывает баг.
npx skills add trailofbits/skills --skill post-patch-validation -a claude-codeЧто делает post-patch-validation
Скилл ставит план проверки для уже готового патча: берёт уязвимый коммит и пропатченный, для незакоммиченной работы просит сначала собрать бинарный патч-файл. Собирая план, агент изучает находку, diff, вызывающий код, соседние пути и обработку ошибок, а затем расписывает набор проверок. Сам diff, автор правки и исходный proof of concept корректность не доказывают.
Внутри scripts/post_patch_validation.py с подкомандами scaffold, print-schema, validate-plan и run. Плану нужна хотя бы одна проверка каждого вида: контроль, исходный эксплойт, вариант той же корневой причины, сохранение поведения, регрессия, новая уязвимость рядом и штатный набор проекта. Команды передаются массивами argv, не строками шелла, раннер фиксирует локаль, таймзону и hash-seed и не трогает рабочий каталог. Эксплойты и варианты обязаны печатать маркер PPV_REACHED в stdout на обеих ревизиях, иначе в отчёте останется пробел marker_missing. Таймаут проверки по умолчанию 300 секунд, допустимо от 1 до 3600.
Для запуска нужен uv, а сложную подготовку надо вынести в скрипт и подключать через {plan_dir}. Скилл выполняет только локальный код: для удалённого или продакшен-стенда он не годится, и запускать тесты репозитория стоит лишь с разрешения владельца кода.
Какие задачи решает
- Доказать, что патч закрывает исходный эксплойт, а не только компилируется
- Найти другие пути к той же корневой причине, которые патч пропустил
- Поймать регрессию в обычном поведении после правки безопасности
- Заметить новую уязвимость, которую внёс сам патч
- Отдать автору патча конкретные падения с логами до следующей ревизии
Примеры запросов агенту
- Проверь патч в
patch.diffпротив коммитаa1b2c3d, собери план и прогони его - Собери план валидации для PR с исправлением, добавь вариант эксплойта через другой вход
- Прогони валидацию прошлого рана и покажи, какие проверки оставили пробелы
Как установить post-patch-validation
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill post-patch-validation -a claude-code2Вручную: положить файлы
~/.claude/skills/post-patch-validation/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/post-patch-validation/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill post-patch-validation -a codex2Вручную: положить файлы
.agents/skills/post-patch-validation/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill post-patch-validation -a cursor2Вручную: положить файлы
.cursor/skills/post-patch-validation/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install trailofbits/skills post-patch-validation2Вручную: положить файлы
.github/skills/post-patch-validation/SKILL.md1Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill post-patch-validation -a gemini-cli2Командой платформы
gemini skills install https://github.com/trailofbits/skills --path plugins/post-patch-validation/skills/post-patch-validationВручную: положить файлы
.devin/skills/post-patch-validation/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add trailofbits/skills --skill post-patch-validation -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о post-patch-validation
Как установить post-patch-validation в Claude Code?
Выполните npx skills add trailofbits/skills --skill post-patch-validation -a claude-code, затем проверьте, что файл ~/.claude/skills/post-patch-validation/SKILL.md на месте.
Что делает post-patch-validation?
Строит план проверок для готового патча безопасности и прогоняет его на уязвимой и пропатченной версиях. На выходе агент получает result.json и report.md с падениями и пробелами в покрытии.
Можно ли прогнать скилл на продакшене или удалённом сервере?
Нет. Он выполняет только локальный код и тесты, а для запуска тестов репозитория нужно разрешение владельца кода.