/dr-qa
Многоуровневая проверка качества: PRD, дизайн, план, код
Обзор
/dr-qa запускает четырёхуровневую проверку качества, которая сверяет реализацию с тем, что было запланировано, спроектировано и заявлено в требованиях. Сначала определяет целевую задачу, затем каждый уровень запускается условно — только при наличии соответствующих артефактов.
Использование
/dr-qa
Четыре уровня
- Уровень 1: Соответствие PRD — сравнивает требования с реализацией. Выявляет пропущенные фичи и расползание скоупа. Только если есть
datarim/prd/*.md. - Уровень 2: Соответствие дизайну — проверяет, соблюдены ли архитектурные решения (ADR) и выбранные паттерны. Только если есть
datarim/creative/*.md. - Уровень 3: Полнота плана — проверяет выполнение каждого запланированного шага. Только если в
tasks.mdесть шаги реализации. - Уровень 4: Качество кода — выполняется всегда. Включает пять подпроверок:
- 4a. Тесты — запускает тест-сьют проекта, считает pass/fail/skip
- 4b. Безопасность — сканирует захардкоженные секреты, открытые эндпоинты, отсутствующую валидацию, уязвимости зависимостей
- 4c. Антипаттерны — методы более 50 строк, 7+ параметров, дублирование кода, пропущенная обработка ошибок
- 4d. Live Smoke-Test Gate — если изменённый код использует
$queryRaw,raw(),sequelize.query()или любой путь, обходящий ORM, живой smoke-тест против реальной БД обязателен. Mock/unit-тесты не удовлетворяют этот контроль. В multi-datasource проектах проверяется корректность инжектированного клиента. Без smoke-теста вердикт уровня 4 = FAIL. - 4e. Definition of Done — проверяет каждый критерий из
tasks.mdилиprd/*.md
Паттерн exit code CLI-агентов
Многие CLI-агенты возвращают exit code 0 даже когда JSON-вывод содержит is_error: true. При тестировании интеграций проверяйте is_error/subtype в JSON, а не exit code.
Аргументы
Нет. Работает с текущей активной задачей (через Task Resolution).
Результат
Создаёт: datarim/qa/qa-report-{task-id}.md с вердиктами по каждому уровню.
Вердикты
- PASS — все проверки пройдены
- PASS_WITH_NOTES — пройдено с замечаниями, не блокирующими
- FAIL — есть критические проблемы
Итоговый: ALL_PASS (продолжаем), CONDITIONAL_PASS (продолжаем с замечаниями), BLOCKED (возврат к /dr-do со списком исправлений).
Пример сессии
> /dr-qa
Определение задачи: AUTH-0001 (Уровень 3)
Уровень 1: Соответствие PRD — PASS
8/8 требований реализовано
Уровень 2: Соответствие дизайну — PASS_WITH_NOTES
ADR-001 (WebSocket): Соблюдено
Замечание: добавлен пул соединений (улучшение)
Уровень 3: Полнота плана — PASS
8/8 шагов выполнено
Уровень 4: Качество кода — PASS
4a. Тесты: 14 пройдено, 0 провалено
4b. Безопасность: 0 проблем
4c. Антипаттерны: 0
4d. Smoke-тест: SELECT 1 на auth DB — OK (1 row)
4e. DoD: 5/5 критериев выполнено
Итого: ALL_PASS
Отчёт: datarim/qa/qa-report-AUTH-0001.md
Связанные команды
- /dr-do — возврат при BLOCKED
- /dr-compliance — следующий этап для L3-4
- /dr-archive — следующий этап для L1-2 (рефлексия выполняется как Step 0.5)