Бесплатный интерактивный курс · aicoding.space
p-replicator: фабрика проектов и навыков для Claude Code
Курс о пакете @dzhechkov/p-replicator: как одной командой поставить в проект готовый набор .claude, провести идею через пятифазный конвейер /replicate до документов, кода и Docker, добавлять функции через /feature и не путать «проверка прошла» с «проверка не выполнена».
Содержание курса
1. Что решает p-replicator
Какую боль снимает пакет и кто такая Мира
Ключевая мысль: готовый набор .claude
Начнём с боли, а не с команд. Открываешь пустой проект, запускаешь Claude Code — и он не знает про твой продукт ничего: ни каким документам верить, ни какие проверки обязательны, ни куда складывать решения. Каждый раз всё заново, и каждый раз чуть иначе.
Знакомься: Мира, участница harness-мастерской. Ей поручили поднять новый продукт — маркетплейс изделий ручной работы. Она уже умеет ставить пакеты и запускать команды, но «просто попросить ассистента написать код» её пугает: потом не найдёшь, почему сделано именно так.
Пакет @dzhechkov/p-replicator отвечает на это одним движением: он кладёт в проект готовый набор .claude — 10 навыков, 11 команд, 4 агента, 9 правил, 10 хуков и настроенный settings.json. То есть ассистент получает не чистый лист, а оснастку: описанные роли, обязательные проверки и панель, которая показывает, на какой фазе ты стоишь.
Дальше готовый набор .claude годится для двух основных сценариев:
- Поднять новый проект с нуля — команда
/replicateведёт идею через пять фаз к документам, оснастке и контейнерам (45–90 минут). - Добавить функцию в существующий проект — команда
/featureпрогоняет одну функцию через тот же цикл проверки (10–30 минут).
Исходники и публичное зеркало: github.com/djd1m/dz-harness.
Компромиссы: пакет даёт готовую дисциплину и одинаковый результат от проекта к проекту, но он навязывает свои соглашения — пути документов, имена фаз, целевую архитектуру «распределённый монолит в Docker». Если у тебя другие соглашения, часть выигрыша уйдёт на подгонку.
💬 Просто попроси.
- «Расскажи, что такое p-replicator и зачем он мне» → ассистент откроет README пакета и перескажет раздел о двух сценариях применения.
- «Поставь мне оснастку Claude Code в этот проект» → ассистент предложит npx @dzhechkov/p-replicator init и объяснит, какие файлы появятся.
2. Установка: одна команда init
Как поставить пакет, что он создаёт и почему это безопасно для существующего проекта
Ключевая мысль: команда init
Мира боится ставить незнакомый пакет в рабочий проект: вдруг он затрёт её CLAUDE.md или самописные хуки. Это правильный страх, и у пакета на него есть прямой ответ — идемпотентность.
Команда init — единственная точка входа:
cd your-project
npx @dzhechkov/p-replicator initЧто появится: .claude/skills/ (10 навыков), .claude/commands/ (11 команд), .claude/agents/ (4 агента), .claude/rules/ (9 правил), .claude/hooks/ (10 сценариев на Node), .claude/settings.json и манифест установки .p-replicator.json.
Идемпотентность означает вот что: повторный запуск не перезаписывает существующие файлы без флага --force. Твой CLAUDE.md, твои команды и правленый settings.json остаются на месте. При обновлении с --force настройки не затираются, а сливаются: добавленный тобой хук сохраняется, изменённая тобой команда считается твоей и сохраняется, новый хук из шаблона добавляется, а исчезнувший из шаблона хук распознаётся как осиротевший и убирается. Полная перезапись — только явным --reset-settings.
Что ещё умеет утилита командной строки, кроме init: update (обновить файлы, сохранив правки), remove (удалить установленное), list (показать установленное), verify (проверить, что комплект цел) и doctor (то же самое плюс проверка окружения — например, есть ли git в PATH). Требования: Node ≥ 16, установленный Claude Code, инициализированный git, а для фазы сборки — Docker.
Проверка после установки: npx @dzhechkov/p-replicator verify возвращает 0, если комплект цел, и 1, если что-то потерялось; тогда положение исправит init --force.
Компромиссы: идемпотентность защищает твои файлы, но именно поэтому сломанную установку она не чинит сама — нужен осознанный --force. А слияние настроек опознаёт хуки по строке команды, так что переписанный тобой хук навсегда считается твоим и обновления шаблона в него не прилетят.
💬 Просто попроси.
- «Поставь p-replicator, но не трогай мои настройки» → ассистент выполнит init без --force и покажет, что было создано, а что пропущено.
- «Проверь, что установка цела» → ассистент запустит verify или doctor и разберёт код выхода.
- «Покажи, что изменится, но ничего не пиши» → ассистент добавит --dry-run.
3. Конвейер /replicate: пять фаз
Путь от одной фразы про идею до документов, оснастки и контейнеров
Ключевая мысль: пять фаз /replicate
Мира набирает в Claude Code одну фразу — и дальше начинается самое интересное:
/replicate "Маркетплейс изделий ручной работы с рекомендациями на ИИ"За этой фразой стоят пять фаз /replicate. Смотри на них как на конвейер, где у каждой фазы есть свой выход на диск, а между фазами стоит контрольная точка: ты оцениваешь результат и подтверждаешь переход.
- Фаза 0 — Изучение продукта (необязательная). Навык
reverse-engineering-unicornразбирает похожие компании, «голубой океан» и задачи, ради которых продукт «нанимают» (JTBD). Выход:docs/00_product_discovery.mdиdocs/product-discovery-brief.md. Пропускается для внутренних инструментов и там, где документы уже есть. - Фаза 1 — Планирование. Навык
sparc-prd-miniпишет 11 стандартных документов вdocs/. - Фаза 2 — Проверка. Рой из пяти агентов оценивает документы и выносит вердикт.
- Фаза 3 — Генерация оснастки. Навык
cc-toolkit-generator-enhancedделает то, что зависит от ТВОЕГО проекта: агентовplanner/code-reviewer/architect, правила безопасности и стиля,CLAUDE.md, дорожную карту функций. - Фаза 4 — Завершение.
docker-compose.yml,Dockerfile,.gitignoreи первый коммит.
Важная деталь третьей фазы: она не генерирует общие команды вроде /run или /feature — они приезжают готовыми при установке. Так было не всегда: до версии 1.4.0 фаза 3 пыталась породить вообще всё, и результат плавал от запуска к запуску, потому что модель то сокращала шаблон, то забывала его. Разделение на «привезённое» и «сгенерированное» — главное лекарство от этой нестабильности.
Полный проход занимает 45–90 минут. После него у Миры есть /start (поднять каркас по Architecture.md), /run mvp (автономно строить функции по дорожной карте) и /feature <id> (одна функция целиком).
Компромиссы: конвейер даёт воспроизводимый результат и понятные точки остановки, но он длинный и предполагает целевую архитектуру — распределённый монолит в Docker на VPS. Для маленького скрипта это перебор.
💬 Просто попроси.
- «Проведи мою идею через полный конвейер» → ассистент запустит /replicate с твоим описанием и остановится на первой контрольной точке.
- «У меня уже есть техдокументация, начни со второй фазы» → ассистент положит файлы в docs/existing/ и запустит /replicate, пропустив фазу 0.
4. Одиннадцать SPARC-документов
Что именно пишет фаза 1 и почему у каждого документа своя роль
Ключевая мысль: 11 SPARC-документов
Мира привыкла, что «документация» — это один файл, который пишут в конце и никто не читает. Здесь наоборот: фаза 1 порождает 11 SPARC-документов, и каждый из них — вход для следующего шага, а не отчёт.
SPARC — это порядок работы: Specification (что требуется), Pseudocode (как это считается), Architecture (где это живёт), Refinement (что ломается по краям), Completion (как это выкатывается). Пакет разворачивает этот порядок в набор файлов в папке docs/:
PRD.md— видение, роли пользователей, истории;Solution_Strategy.md— выбранный подход к решению;Specification.md— критерии приёмки и нефункциональные требования;Pseudocode.md— алгоритмы и потоки данных;Architecture.md— диаграммы C4 и стек;Refinement.md— краевые случаи и стратегия тестирования;Completion.md— выкатка, непрерывная сборка, наблюдаемость;Research_Findings.md,Final_Summary.md,C4_Diagrams.md,ADR.md.
Зачем такая нарезка? Потому что дальше по конвейеру документы соединяются по ключам. Требование FR-order-refund-1 объявляется в спецификации заголовком третьего уровня и должно найтись в псевдокоде строкой REQUIREMENT: внутри блока ### Algorithm:. Проверка считает разность двух множеств в обе стороны: и требование без алгоритма, и алгоритм без требования — это разрыв. Ключи здесь не украшение, а соединение.
Отдельная тонкость про решения: /replicate пишет их в один docs/ADR.md, а проекты, собранные иначе, держат папку docs/adr/*.md. Сканер оснастки читает обе формы и сводит их в один список решений.
Компромиссы: одиннадцать файлов дают прослеживаемость и дисциплину, но их надо поддерживать: устаревший Specification.md тут же роняет проверку связей. Совпадение ключей доказывает связь документов и ничего не говорит о том, что алгоритм действительно реализует требование.
💬 Просто попроси.
- «Собери SPARC-документы по моим существующим спекам» → ассистент запустит навык sparc-prd-mini в автоматическом режиме и пометит недостающие места как [GAP: ...].
- «Проверь, что все требования дошли до псевдокода» → ассистент запустит проверку связей и назовёт ключи, на которых рвётся цепочка.
5. Рой из пяти валидаторов и его вердикт
Кто проверяет документы, по каким критериям и что значит каждый цвет вердикта
Ключевая мысль: вердикт валидации
Документы написаны. Как понять, что они годные, а не просто красиво звучат? Здесь Мира встречает вторую фазу: рой из пяти агентов, каждый со своим углом зрения.
validator-stories— истории пользователей по INVEST: независима, обсуждаема, ценна, оцениваема, мала, проверяема;validator-acceptance— критерии приёмки по SMART: конкретно, измеримо, достижимо, уместно, ограничено сроком;validator-architecture— согласие архитектуры с целевыми ограничениями;validator-pseudocode— связность алгоритмов и потоков данных;validator-coherence— согласованность между документами.
Итог — вердикт валидации одного из трёх цветов, и у каждого свой следующий шаг:
- 🟢 ГОТОВО — средняя оценка ≥ 70 и ни одного блокирующего замечания → идём на фазу 3.
- 🟡 С ОГОВОРКАМИ — 50–69 без блокеров → идём дальше с записанными оговорками; в автоматическом режиме один повтор делается сам.
- 🔴 НУЖНА РАБОТА — меньше 50 или есть блокер → возврат к фазе 1, максимум три повтора, потом конвейер останавливается и зовёт человека.
Перед тем как звать рой, пакет задаёт дешёвый вопрос: проверка check-docs-complete.cjs смотрит, существуют ли файлы, не пусты ли они и не остались ли в них незаполненные заглушки. Смысл прост: тратить пятерых агентов на обнаружение пустого файла — расточительство, а сорок строк кода отвечают на это мгновенно.
Выход фазы: docs/validation-report.md и docs/test-scenarios.md со сценариями в стиле BDD, выведенными из критериев приёмки.
Компромиссы: численный порог даёт однозначное решение и повторяемость, но оценка ставится моделью — это суждение, а не измерение. Три повтора защищают от бесконечного цикла и одновременно означают, что после них решение придётся принимать тебе.
💬 Просто попроси.
- «Проверь мои документы перед реализацией» → ассистент запустит навык requirements-validator и покажет вердикт с разбивкой по пяти валидаторам.
- «Почему у меня жёлтый вердикт?» → ассистент откроет docs/validation-report.md и назовёт конкретные оговорки и их вес.
6. /feature: добавить функцию в живой проект
Тот же цикл проверки, но масштабом в одну функцию
Ключевая мысль: четыре фазы /feature
Проект уже живой: код есть, документы есть, люди пользуются. Прогонять весь /replicate ради приёма платежей глупо — и Мира берёт для этого /feature.
Четыре фазы /feature повторяют большой конвейер в миниатюре:
- PLAN — навык
sparc-prd-miniпишет пять документов вdocs/features/<id>/: спецификацию, псевдокод, архитектуру, доработку, завершение. - VALIDATE — тот же рой из пяти агентов, те же пороги 70/50 и та же логика повторов.
- IMPLEMENT — независимые куски работы расходятся по параллельным агентам: каждый пишет код, тесты и коммит, координатор собирает результат и гоняет весь набор тестов.
- REVIEW — навык
brutal-honesty-reviewраскладывает замечания по тяжести:blockerчинится до слияния,high— в рамках этой же функции,mediumуходит в отдельную задачу,lowпросто записывается.
Между PLAN и VALIDATE стоит жёсткий заслон: проверка связей по ключам. Только код выхода 0 пускает дальше. 1 возвращает в PLAN с точным списком разорванных ключей FR/NFR/AC, 2 останавливает работу, потому что карту ролей документов или сами документы не удалось прочитать.
Входить можно двумя путями. Режим 1 — проект уже поднят через /replicate. Режим 2 — существующий проект: ставишь пакет поверх (init бережёт CLAUDE.md), приводишь имена документов к стандартным docs/PRD.md, docs/Specification.md, docs/Architecture.md, и дальше цикл одинаков. Оговорки режима 2 честно перечислены: не запускать /start (он ждёт свежего каркаса), /feature-ent недоступна без документов DDD/ADR/C4, а хуки автокоммита могут поспорить с твоим порядком работы с git.
Компромиссы: цикл даёт проверенную функцию за 10–30 минут вместо часа с лишним, но требует стандартных путей к документам — флага вроде --prd-path нет, нужно один раз переименовать файлы или поставить ссылки.
💬 Просто попроси.
- «Добавь приём платежей как отдельную функцию с проверкой» → ассистент запустит /feature add-stripe-payments и остановится на вердикте валидации.
- «Собери все функции уровня mvp, каждую в своей ветке» → ассистент выполнит /run mvp --feature-branches.
7. Намеренные проверки и третий код выхода
Почему «проверка не выполнена» — отдельный ответ, а не «всё чисто»
Ключевая мысль: третий код выхода
Здесь самая ценная идея всего пакета, и Мира запоминает её на всю жизнь.
Обычная проверка отвечает двумя способами: всё хорошо или всё плохо. Проверки этого пакета отвечают тремя, и решающий — третий код выхода:
0— правило соблюдено в проверенной области;1— правило нарушено, нарушитель назван поимённо;2— проверка не выполнена: посмотреть не удалось, и об этом сказано вслух.
Почему это важно: проверка, которая отвечает «чисто», хотя посмотреть не смогла, превращает неизвестность в успокоение. Именно поэтому недоступный Docker, нечитаемая конфигурация или отсутствующий бриф дают 2, а не 0.
Три такие утилиты живут в .claude/hooks/ и намеренно не подключены ни к одному событию: обычный хук пакета по договору не блокирует — он может напечатать, но не может отказать, а проверка, которая обязана уметь сказать «нет», хуком быть не может.
check-ports.cjs— проверяет, что ни одно хранилище не смотрит в интернет. Режим каталога читает нормализованную конфигурациюdocker compose config; привязка к127.0.0.1законна. Отдельный режим--machineсмотрит живые контейнеры текущего контекста Docker — и его чистая квитанция честно ограничена моментом снимка.check-docs-complete.cjs— дешёвый вопрос перед роем валидации.check-growth-trace.cjs— требования ростаFR-GROWTH-nnnиз брифа фазы 0 должны либо дойти до спецификации, либо быть отклонены с записанной причиной; молча потерять требование нельзя. Нет брифа — это2, потому что «фаза 0 не запускалась» и «трассировать нечего» — разные утверждения.
Четвёртая проверка, check-pipeline-gaps.sh, живёт в самом пакете, а не среди хуков, и /feature вызывает её как блокирующий заслон.
Компромиссы: три кода выхода дают честную картину и не дают ложного спокойствия, но требуют дисциплины от вызывающей стороны: код 2 надо обрабатывать отдельно, иначе он по невнимательности сольётся с 0 и обесценит всю затею.
💬 Просто попроси.
- «Проверь, не торчит ли база наружу» → ассистент выполнит check-ports.cjs и разберёт код выхода, включая случай «проверка не выполнена».
- «Дошли ли требования роста до спецификации?» → ассистент запустит check-growth-trace.cjs и назовёт потерянные ключи.
9. Панель статуса и хуки
Как видеть фазу, дорожную карту и здоровье оснастки одним взглядом
Ключевая мысль: панель статуса и хуки
Мира ловила себя на одном и том же вопросе каждые полчаса: «а где я сейчас?». Панель статуса и хуки отвечают на него без единого запроса.
Панель — это шесть строк над приглашением Claude Code:
- заголовок: версия пакета, пользователь, модель;
- 🚀 Конвейер: текущая команда, фаза, шкала прогресса;
- 🎯 Дорожная карта: сколько функций сделано, какая следующая, домен проекта;
- 📊 SPARC: сколько документов из одиннадцати, оценка валидации, число планов и решений;
- 🛠️ Оснастка: навыки, команды, агенты, правила, хуки — привезённые плюс сгенерированные;
- 💡 Копилка: число «граблей», состояние тестов, серверы MCP, статус настроек.
Откуда берутся цифры: часть из файла состояния .claude/.p-replicator-state.json, который команды обновляют по ходу работы, часть — прямыми обходами файловой системы и разбором документов. Два защитных приёма стоит запомнить. Первый: каждая секция обёрнута в безопасный вызов, поэтому одна ошибка разбора гасит одну строку, а не всю панель. Второй: файл состояния старше тридцати минут игнорируется — и вместо вранья про «идёт фаза VALIDATE» панель показывает покой.
Хуки — десять сценариев на Node в .claude/hooks/. Часть работает сама: session-insights.cjs подсказывает при старте сессии и подмешивает нужные записи в момент запроса; три сценария автокоммита сохраняют дорожную карту, копилку и планы; statusline.cjs рисует панель. Все они обходятся без командной оболочки и зовут git напрямую, поэтому одинаково работают в Windows-cmd, bash и PowerShell. Каждый завёрнут в перехват ошибок и всегда завершается нулём: хук не имеет права заблокировать сессию.
Компромиссы: панель даёт постоянную обратную связь почти без затрат внимания, но её показатели — производные признаки, а не измерения: оценка валидации выдёргивается из отчёта регулярным выражением, а домен угадывается по ключевым словам в CLAUDE.md.
💬 Просто попроси.
- «Убери панель статуса, она мешает» → ассистент удалит поле statusLine из settings.json, и слияние сохранит это удаление при обновлении.
- «Почему панель показывает покой, хотя я в середине фазы?» → ассистент проверит возраст файла состояния и напомнит про порог в тридцать минут.
10. Известные ограничения и когда пакет не нужен
Что пакет не обещает и в каких случаях выбрать другой путь
Ключевая мысль: известные ограничения
Сильный инструмент узнаётся по тому, как честно он перечисляет свои границы. Первым делом Мира открывает не список возможностей, а отдельный файл KNOWN_LIMITATIONS.md: восемь записей, и известные ограничения названы там прямо.
Вот те, что чаще всего задевают на практике:
- M1 — поведение
--feature-branchesподтверждено только наличием описания, а не сквозным прогоном по git. То есть обещание есть, доказательства уровня теста — нет. - M2 — у входа «у меня уже есть техдокументация» нет формального флага командной строки, он работает только через фразу на естественном языке.
- M3 —
/featureтребует стандартных путей к SPARC-документам; флага--prd-pathнет, нужно один раз переименовать файлы или поставить символическую ссылку. - L5 — файл состояния не добавляется в
.gitignoreсам, его стоит вписать руками.
К ним добавляются два ограничения по существу. Первое: view() работает только в Claude Code — для других сред нужен отдельный путь со вклеиванием содержимого. Второе, самое важное по духу: ни одна проверка пакета не доказывает, что продукт хороший. Совпадение ключей доказывает связь документов, а не смысл; вердикт роя — это суждение модели; чистая квитанция проверки портов относится только к проверенной области.
А когда пакет вообще не нужен? Если задача — маленький скрипт, разовый разбор данных или правка в один файл, конвейер из пяти фаз обойдётся дороже самой работы. Пакет окупается там, где проект живёт долго и решения нужно будет объяснять через полгода.
Компромиссы: записанные ограничения делают ожидания честными и экономят часы разочарования, но список надо читать до начала работы — прочитанный после он превращается в объяснение уже потраченного времени.
💬 Просто попроси.
- «Покажи известные ограничения пакета» → ассистент откроет KNOWN_LIMITATIONS.md и перескажет записи по важности.
- «Стоит ли гнать эту задачу через полный конвейер?» → ассистент оценит объём и предложит /plan вместо /feature, если правка мелкая.
11. Твой ход: свой проект через конвейер
Собираем всё вместе: от установки до первой проверенной функции
Ключевая мысль: свой проект через конвейер
Последний раздел без новых понятий: ты ведёшь свой проект через конвейер сам, а Мира просто стоит рядом и задаёт неудобные вопросы.
Полный путь укладывается в шесть шагов:
npx @dzhechkov/p-replicator init— привозим готовый набор.claude;npx @dzhechkov/p-replicator verify— убеждаемся, что комплект цел (код0);/replicate "<одна фраза про твой продукт>"— пять фаз с контрольными точками;- на границе фаз 1 и 2 — дешёвые проверки: полнота документов и трассировка требований роста;
/start— каркас поArchitecture.md, затем/run mvpили/feature <id>;/harvestв конце — вытащить наработки, которые пригодятся следующему проекту.
Три решения, которые придётся принять именно тебе, и ни одно из них не имеет единственно верного ответа:
- Запускать ли фазу 0. Для нового продукта на рынке — да; для внутреннего инструмента она сожжёт время на анализ конкурентов, которых нет.
- Что делать с жёлтым вердиктом. Идти дальше с оговорками быстрее, вернуться и дописать — надёжнее. Цена ошибки определяется тем, дорого ли переделывать позже.
- Оставлять ли хуки автокоммита. Они удобны и они же спорят с аккуратным порядком работы с git; правится это в
settings.jsonсразу после установки.
И главное, что стоит унести из курса: разница между «проверено» и «не проверялось». Пакет держит эту разницу в трёх кодах выхода — и ровно этой привычки чаще всего не хватает инструментам, которые выглядят строгими.
Компромиссы: свобода решений делает конвейер применимым к разным проектам, но перекладывает ответственность на тебя — пакет не выберет за тебя ни глубину проработки, ни момент остановки.
💬 Просто попроси.
- «Проведи мой проект через конвейер и останавливайся на каждой контрольной точке» → ассистент запустит /replicate и будет спрашивать подтверждение между фазами.
- «Подведи итог: что у меня уже сделано и что дальше» → ассистент прочитает панель статуса, дорожную карту и отчёт валидации и назовёт следующий шаг.
Частые вопросы
- Можно ли ставить p-replicator в проект, где уже есть свой CLAUDE.md и настройки?
Да, для этого и сделана идемпотентность: без флага --force команда init не перезаписывает существующие файлы. При обновлении настройки сливаются — твои и изменённые тобой хуки сохраняются, новые из шаблона добавляются, исчезнувшие из шаблона убираются как осиротевшие. Полная перезапись возможна только явным --reset-settings.
- Обязательно ли проходить весь /replicate, если у меня уже есть техническая документация?
Нет. Положи документы в docs/existing/ и попроси пропустить фазу 0 — навык sparc-prd-mini прочитает их в автоматическом режиме, разложит по одиннадцати документам SPARC и пометит недостающие места как [GAP: ...]. Фазы со второй по четвёртую идут без изменений.
- Чем /feature отличается от /plan и как выбрать?
/plan — для мелкой задачи до трёх файлов: получается лёгкий план в docs/plans/. /feature — для функции от четырёх файлов: полный цикл PLAN → VALIDATE → IMPLEMENT → REVIEW с роем валидации и разбором замечаний. Если сомневаешься, запусти /go — он сам направит по объёму.
- Почему проверка вернула 2, а не 0, если она не нашла нарушений?
Потому что 2 означает «проверка не выполнена»: посмотреть не удалось — не было Docker, конфигурации, прав или нужного файла. Ответ «чисто» в такой ситуации превратил бы неизвестность в успокоение, поэтому пакет разделяет «проверено и чисто» (0) и «не смотрел» (2).
- Как убрать панель статуса, если она мешает?
Удали поле statusLine из .claude/settings.json. Слияние настроек считает это твоим осознанным изменением и сохранит удаление при следующем обновлении пакета.
- Работает ли пакет вне Claude Code — в Codex или OpenCode?
Пока нет в полном объёме: механизм view(), которым навык подтягивает файлы другого навыка в момент исполнения, работает только в Claude Code. Для других сред содержимое навыков нужно вклеивать при установке — этот путь описан в MULTIPLATFORM_ROADMAP.md.
- Гарантирует ли зелёный вердикт роя, что документы правильные?
Нет. Вердикт — это суждение модели по критериям INVEST и SMART, а не измерение. Дешёвые детерминированные проверки перед роем доказывают только структуру: файлы существуют, не пусты, ключи FR/NFR/AC совпадают в обе стороны. Смысловая правильность остаётся за людьми.