Команда Pipeline

/dr-qa

Многоуровневая проверка качества: PRD, дизайн, план, код

Обзор

/dr-qa запускает четырёхуровневую проверку качества, которая сверяет реализацию с тем, что было запланировано, спроектировано и заявлено в требованиях. Сначала определяет целевую задачу, затем каждый уровень запускается условно — только при наличии соответствующих артефактов.

Использование

/dr-qa

Четыре уровня

  1. Уровень 1: Соответствие PRD — сравнивает требования с реализацией. Выявляет пропущенные фичи и расползание скоупа. Только если есть datarim/prd/*.md.
  2. Уровень 2: Соответствие дизайну — проверяет, соблюдены ли архитектурные решения (ADR) и выбранные паттерны. Только если есть datarim/creative/*.md.
  3. Уровень 3: Полнота плана — проверяет выполнение каждого запланированного шага. Только если в tasks.md есть шаги реализации.
  4. Уровень 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)