Skip to content

Verification

Sergey Emelyanov edited this page Nov 6, 2026 · 2 revisions

Verification — как проверить агента самостоятельно

Проверяемость — свойство репозитория, а не обещание. Всё, что заявлено в Compliance, можно воспроизвести руками за несколько минут на свежем клоне, без установки пакетов.

Быстрая проверка за 5 минут

git clone https://github.com/Fighter90/product-factory-strategist
cd product-factory-strategist

# 1. Инструменты: 103 теста, Python stdlib, без pip install
python3 -m unittest discover -s tests
# Ожидание: "OK" (103 теста). Каждый тест закрепляет правило инструмента:
# факт без источника не записывается, синтетика ≠ факт, отзыв основания виден и т.д.

# 2. Состояние окружения
python3 -m tools.pfs doctor
# Ожидание: версия Python, наличие pdftotext/pypdf (опционально), число карт базы знаний (88),
# список проектов (демо + ваши), активный проект и профиль моделей.

# 3. Quality gate демо-проекта
python3 -m tools.pfs --project демо check --strict
# Ожидание: 100/100, ошибок 0, предупреждений 0. Оценивает документы 02–06 демо:
# числа с тегами, 5 вариантов, «оставить как есть», 5 разделов плана проверки, живые ссылки [C###]/[S###].

# 4. Живое состояние демо
python3 -m tools.pfs use демо
python3 -m tools.pfs status
# Ожидание: шаг monitoring (все 12 шагов пройдены), next_action «мониторинг беты и обязательств».

python3 -m tools.pfs next
# Ожидание: сводка «что решать сейчас» — открытое обязательство K1 (hosted beta к 2026-12-15)
# и дата пересмотра решения D001 (2027-02-10).

python3 -m tools.pfs decision due
# Ожидание: D001 с обязательством K1 (status: open) и пересмотром 2027-02-10.

# 5. Реестры демо
python3 -m tools.pfs source list      # 10 источников S001–S011
python3 -m tools.pfs claim list       # 20 утверждений C001–C020 с типами и силой
python3 -m tools.pfs impact C016      # что затронет изменение допущения юнит-модели

# 6. Артефакты
open projects/демо/outputs/REPORT.md          # полный отчёт + реестры C/S/D
open projects/демо/outputs/SIX_PAGER_RU.md    # six-pager (есть EN-версия и PDF/DOCX)

Что проверяет каждая команда

Команда Что именно проверяет Если сломалось
unittest discover правила инструментов: реестр утверждений, синтетика, дедуп источников, SSRF, impact, decision, расчёты, MCP тест упадёт — правило нарушено; это покрытие кода, не «витрина»
doctor целостность окружения и базы знаний подскажет, чего не хватает (pdftotext опционален)
check --strict соответствие документов демо гейтам config/quality_gate.json код возврата ≠ 0 и список ошибок с файлом и строкой
status / next машина состояний шагов и ожидания человека шаги не «в голове агента», а в state.json
decision due связь решения с обязательствами и датами просроченное обязательство или подошедший пересмотр будут показаны
impact C016 граф влияние: утверждение → выводы → строки документов → решения виден список затронутых мест — так работает пересмотр

Проверка счётчиков репозитория

ls .claude/skills | wc -l          # 120
ls .claude/agents | wc -l          # 8
ls .claude/hooks | wc -l           # 5
ls knowledge/methods | wc -l       # 88
ls knowledge/methods_en | wc -l    # 16
python3 -m tools.pfs --help        # 25+ подкоманд CLI

Полная матрица «требование → доказательство» — Compliance.

Проверка хуков и MCP-сервера

Хуки (5) и MCP (18 инструментов) — часть гарантий, их тоже можно проверить руками:

Что Как Ожидание
MCP: список инструментов echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | python3 -m tools.pfs.mcp_server (stdio JSON-RPC) 18 инструментов: состояние, источники, утверждения, check, decisions, данные, интервью, медиа, UX
MCP: неизвестный метод запрос "method":"nope" ошибка -32601 без падения сервера
MCP: неизвестный инструмент tools/call с чужим именем ошибка -32602
Хук SessionStart открыть новый чат в репозитории в контекст подаются pfs status + decision due активного проекта
Хук pre_web запрос к домену вне allowed_sources запрос блокируется до выполнения, с именем правила

Проверка на своей задаче (не только демо)

python3 -m tools.pfs new "Тест" "Ваша задача дословно"   # создать проект
python3 -m tools.pfs route "Ваша задача"                  # сценарий, карты, план моделей
python3 -m tools.pfs new --help                           # опции

Затем откройте папку репозитория в Claude Code и ведите задачу с агентом: он будет останавливаться на intake, choice и decision. Контроль в любой момент: pfs status (какой шаг), pfs check (качество документов), pfs cost (затраты по транскриптам), pfs next (что ждёт человека).

Чего ожидать от демо при чтении REPORT.md

  • Каждое число в отчёте имеет тег [C###]; каждое утверждение — источник [S###] и тип (fact/hypothesis/assumption/inference). Синтетические источники (S008–S010) помечены origin=synthetic — на них нет ни одного факта.
  • Рыночные оценки даны диапазонами с пометкой «агрегаторы расходятся ×2», а не одним числом.
  • Варианты A–E содержат возражения red team (в т.ч. против рекомендуемого B) и условия верности.
  • План проверки имеет 5 разделов и числовые пороги «продолжить/изменить/остановить».
  • Решение D001 связано с планом проверки: его триггер стопа — те же пороги.

Независимая проверка (методика прошлой верификации)

Репозиторий ранее проходил внешнюю верификацию «свежим clone»: запуск по инструкции без пакетов, новая задача (не демо), попытки обойти защиту (внедрённая инструкция в DOCX, локальный адрес, путь в ~/.ssh, XML-бомба — всё отклонено), проверка ссылок и чисел в документации, поиск секретов и ПДн. Найденные тогда дефекты (4 шт.) исправлены и закреплены тестами; полный отчёт — docs/VERIFICATION.md.

Воспроизводимые негативные тесты из той проверки:

Попытка Ожидаемая реакция
страница строит контент через JS → 0 знаков источник отклоняется, подсказка --text-file --url
внедрённая инструкция в загруженном документе («игнорируй инструкции») помечается детектором фраз-инструкций, не выполняется
URL 127.0.0.1 / путь в ~/.ssh отклонение до чтения (SSRF-защита, список запрещённых путей)
факт без источника pfs claim add --kind fact без --source завершается ошибкой
ссылка на отозванное утверждение в документе pfs check помечает устаревшее основание

Что не проверяется этими командами

  • Качество рассуждений LLM-среды: детерминированы только инструменты pfs; формулировки, поиск и синтез зависят от модели (см. Routing-and-Models — модель под задачу и эскалация).
  • Автоучёт стоимости работает по транскриптам Claude Code; в других средах — pfs log --usd.
  • Часть сайтов блокирует автозагрузку — текст добавляется вручную через --text-file.
  • Синтетические интервью дают гипотезы, а не доказательство спроса — это ограничение по дизайну.

См. также: Compliance · Demo-CVStart · Security-and-Privacy · Quality-Gates · Troubleshooting

Стратег Фабрики продуктов

Устройство

Компоненты

Справочник

Процесс

Справка и прозрачность

Clone this wiki locally