Skip to content

Latest commit

 

History

History
244 lines (165 loc) · 17.6 KB

File metadata and controls

244 lines (165 loc) · 17.6 KB

Prove It

Твой ИИ говорит, что всё исправил. Пусть докажет.

Prove It — открытый Agent Skill для адверсариальной проверки результатов Claude Code, OpenAI Codex, Cursor и других ИИ-агентов для программирования.

English · 简体中文 · Português do Brasil · 日本語 · Español · Русский

Agent Skill No dependencies Benchmark License

Без Prove It зелёный тест создаёт преждевременную уверенность; Prove It замечает ослабленный ассерт и возвращает FAILED.

ИИ-агенты отлично находят подтверждения тому, что их работа завершилась успешно.

Тесты прошли. Сборка вернула 0. Healthcheck ответил 200. В логах нет ERROR.

А затем говорят: готово.

Но успешный сигнал ещё не означает успешный результат. Prove It заставляет агента активно искать доказательства того, что его вывод неверен, прежде чем разрешить ему поверить в этот вывод.

Используй его, чтобы проверять исправления багов, тесты, pull request, результаты CI, логи, деплои и любое уверенное «готово» до того, как ему поверить.

Не пытайся доказать, что это работает. Попытайся доказать, что это не работает.

Кому нужен Prove It?

Он нужен, если ты поручаешь ИИ-агенту:

Твой агент… Prove It спросит…
исправлять баги Может ли исходный баг всё ещё воспроизводиться?
писать или обновлять тесты Могут ли эти тесты пройти при нарушенном требовании?
ревьюить pull request Не ослаблены ли ассерты, типы или критерии приёмки?
читать CI или логи Полны ли эти данные, актуальны ли они и из того ли источника получены?
проверять деплои Действительно ли нужная версия запущена на всех инстансах?
сообщать, что задача готова Какой наблюдаемый факт сделал бы этот вывод ложным?

Это инструмент для промежутка между «ИИ закончил» и «ты ему поверил». Не нужно быть экспертом по тестированию: вызови один skill и передай ему утверждение, которое нужно поставить под сомнение.

Установка за 30 секунд

Prove It опубликован на skills.sh. Установщик определит Claude Code, Codex, Cursor и другие поддерживаемые агенты:

npx skills add Pablo-aps/prove-it

После этого попроси напрямую:

# Claude Code / Cursor
/prove-it review your last implementation and try to find a case where it still fails

# OpenAI Codex
$prove-it does this CI output actually prove the issue is resolved?

Skill также может активироваться автоматически, когда ты просишь агента доказать, проверить, подтвердить или перепроверить утверждение.

Ручная установка

Скопируй SKILL.md в директорию skill prove-it для своего агента:

Агент Путь в проекте Вызов
Claude Code .claude/skills/prove-it/SKILL.md /prove-it
OpenAI Codex .agents/skills/prove-it/SKILL.md $prove-it
Cursor .cursor/skills/prove-it/SKILL.md или .agents/skills/prove-it/SKILL.md /prove-it

Четыре правила. Один вердикт.

01 — СФОРМУЛИРУЙ 02 — АТАКУЙ
Преврати «вроде исправлено» в утверждение, которое может оказаться ложным. Зафиксируй границы и критерии приёмки. Спроси, что могло бы опровергнуть утверждение. Сначала выполни самые убедительные безопасные проверки.
03 — ПРОВЕРЬ 04 — ВЫНЕСИ ВЕРДИКТ
Проверяй реальный результат, а не косвенный сигнал: exit code, HTTP 200 или зелёный healthcheck. Верни PROVEN, FAILED, NOT PROVEN или BLOCKED вместе с доказательствами.
CLAIM
All production replicas run abc123 and the migration is applied.

VERDICT
NOT PROVEN

WHY
The deploy job passed, but only four of six replicas are represented.

FALSIFICATION ATTEMPTS
- checked rollback events -> none found
- compared runtime image SHAs -> evidence exists for 4/6 replicas
- checked migration version -> no production schema evidence supplied

NEXT PROOF
1. read the image SHA from every replica
2. read the production migration version through an approved read-only path

У каждого вердикта точное значение

Вердикт Когда использовать
PROVEN Прямые доказательства покрывают заявленные границы, а содержательные попытки опровержения не нашли противоречий.
FAILED Прямое доказательство противоречит утверждению.
NOT PROVEN Доступные проверки выполнены, но доказательства косвенные, неполные, устаревшие или слишком узкие.
BLOCKED Обязательную проверку нельзя выполнить из-за отсутствия доступа, данных, учётных данных, инструментов или возможности тестирования.

PROVEN намеренно ограничен конкретными рамками. Prove It не заявляет о математическом доказательстве, абсолютной корректности или безопасности в будущем.

Он ловит дорогие варианты «готово»

тесты зелёные           ≠ исходный баг исправлен
сборка зелёная          ≠ деплой работает
деплой завершён         ≠ все реплики запустили новую версию
healthcheck 200         ≠ воркеры и зависимости исправны
HTTP 200                ≠ асинхронная операция завершилась
в этих логах нет ошибок ≠ релевантной ошибки не было
один запрос успешен     ≠ race condition устранён
уверенность агента      ≠ доказательство

Prove It также ищет поддельные доказательства: пропущенные тесты, ослабленные ассерты, проигнорированные коды возврата, пустые catch, захардкоженные результаты, замоканное поведение и увеличенные таймауты без воспроизведения проблемы с таймингом.

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

Примеры с деплоем, логами, асинхронными задачами, гонкой платежей, положительным доказательством и заблокированной проверкой находятся в EXAMPLES.md.

Vibe Verification — проверка по ощущениям

Проверка по ощущениям — это момент, когда агент видит достаточно положительных сигналов, обретает уверенность и перестаёт искать причины, по которым его вывод может быть ложным.

Проверка по ощущениям: «Тесты прошли. Выглядит нормально.»
Prove It:              «Как тесты могли пройти, если баг всё ещё существует?»

Это небольшое, запоминающееся и универсальное изменение: оно меняет цель проверки, а не тестовый фреймворк.

Доказательства вместо театра промптов

В репозитории есть воспроизводимый benchmark из 12 сценариев:

  • обманчивые сигналы успеха, которые должны привести к FAILED;
  • неполные доказательства, которые должны привести к NOT PROVEN;
  • недоступные доказательства, которые должны привести к BLOCKED;
  • положительные контрольные сценарии, которые должны привести к PROVEN.

Один ориентировочный прогон с Codex CLI 0.147.0 · gpt-5.6-luna · low reasoning · 2026-08-18:

Без skill С Prove It
Верный вердикт 9/12 (75%) 12/12 (100%)
Положительные контроли 2/3 (67%) 3/3 (100%)
Ложная уверенность 0/12 0/12
Попытка опровержения 12/12 12/12

В этом прогоне Prove It изменил три решения: два заведомо недоступных пути проверки были правильно отмечены как BLOCKED, а одно полностью покрытое доказательствами утверждение о деплое с чёткими границами получило PROVEN, вместо того чтобы навсегда остаться недоказанным.

Для каждого сценария используются одна модель, один материал промпта, одна схема ответа и одна настройка рассуждений. В экспериментальной группе меняется только одно: Prove It устанавливается и вызывается явно. Можно прочитать 24 исходных ответа и полную методологию benchmark/.

Это один прогон на ячейку по сценариям, созданным во время разработки skill. Результат показывает, что skill изменил поведение этой модели на данном наборе сценариев. Это не независимое исследование, не рейтинг моделей и не заявление об универсальном росте качества.

Дизайн опирается и на более широкий вывод: языковые модели могут отдавать предпочтение подтверждающим данным, а поиск контрпримеров способен уменьшить это искажение. См. Failing to Falsify, Large Language Models Cannot Self-Correct Reasoning Yet и работу Anthropic о соглашательстве языковых моделей. Эти источники объясняют мотивацию механизма, но не доказывают, что skill работает для каждой модели и задачи.

Частые вопросы

Что такое Prove It?

Prove It — небольшой открытый Agent Skill, который заставляет ИИ-агента сформулировать опровержимое утверждение, искать контрдоказательства, проверять реальный результат и выносить подкреплённый фактами вердикт.

Какие ИИ-агенты он поддерживает?

Skill следует открытой спецификации Agent Skills и работает с Claude Code, OpenAI Codex, Cursor и другими совместимыми агентами. Вся логика находится в одном переносимом SKILL.md.

Чем это отличается от тестирования или код-ревью?

Тесты и ревью создают доказательства. Prove It меняет то, как агент ставит их под сомнение и интерпретирует. Он не заменяет ни тесты, ни ревью.

Может ли Prove It доказать корректность программы?

Нет. Он выносит вердикт только в рамках реально доступных проверок и доказательств. Он не заявляет о формальной корректности, универсальной безопасности или достоверности ненаблюдаемого поведения.

Чем этот проект не является

Prove It намеренно состоит из одного читаемого SKILL.md. У него нет runtime-зависимостей, hook, фонового процесса, телеметрии, MCP server или слоя оркестрации.

Это не:

  • тестовый фреймворк или сканер безопасности;
  • замена предметным тестам, наблюдаемости или человеческому ревью;
  • разрешение на разрушительные эксперименты в production;
  • утверждение, что ИИ способен доказать корректность любого ПО.

Это поведенческое ограничение: сформулируй утверждение, атакуй его, проверь результат и заслужи вердикт.

Маленький намеренно

prove-it/
├── README.md          # понять проект за две минуты
├── README.*.md        # пять локализованных руководств
├── EXAMPLES.md        # шесть конкретных сценариев
├── skills/prove-it    # всё поведение skill
├── benchmark/         # воспроизводимые доказательства
└── LICENSE

Skill следует открытой спецификации Agent Skills. Приветствуются изменения, которые делают основное поведение точнее, не превращая проект во фреймворк.

ИИ пишет исправление. Prove It пытается его сломать.

Создан и поддерживается PABLO.

Сообщить о проблеме · Прочитать skill · Запустить benchmark