4.4 KiB
Критерии приёмки — ORCH-069
Work Item ID: ORCH-069
Формат: каждый критерий имеет чёткое условие PASS/FAIL.
AC-1 — Дефолтный лимит 200, граница на 201
Дано: env ORCH_QG0_TITLE_MAX не задан (используется дефолт 200), description валиден (≥ 20 символов).
Тогда:
- заголовок длиной 200 символов →
_qg0_errorsНЕ содержит ошибки про длину title (PASS); - заголовок длиной 201 символ →
_qg0_errorsсодержит ошибку про длину title, и текст ошибки упоминает «200». FAIL если: на 200 появляется ошибка длины, либо на 201 ошибки нет, либо текст не упоминает 200.
AC-2 — Настраиваемый лимит 120, граница на 121
Дано: ORCH_QG0_TITLE_MAX=120 (через мок/патч settings в тесте), description валиден.
Тогда:
- заголовок 120 символов → нет ошибки длины title (PASS);
- заголовок 121 символ → есть ошибка длины title, текст упоминает «120». FAIL если: граница срабатывает не на 121, либо текст ошибки упоминает не 120.
AC-3 — Graceful при невалидном/пустом значении
Дано: ORCH_QG0_TITLE_MAX пустой ("") или нечисловой ("abc").
Тогда:
- инстанцирование
Settings()/ импорт приложения НЕ выбрасывает исключение (процесс не падает); - эффективное значение лимита = дефолт 200 (поведение AC-1 сохраняется).
FAIL если: старт процесса падает с
ValidationError, либо лимит != 200.
AC-4 — Нижние лимиты не сломаны
Дано: любое валидное значение ORCH_QG0_TITLE_MAX.
Тогда:
- заголовок длиной < 5 символов →
_qg0_errorsсодержит ошибку «Title слишком короткий»; - description длиной < 20 символов →
_qg0_errorsсодержит ошибку «Description слишком короткий». FAIL если: нижний лимит title или лимит description перестал срабатывать.
AC-5 — Юнит-тесты зелёные
Дано: реализованные юнит-тесты на _qg0_errors с разными значениями лимита (мок settings).
Тогда: pytest tests/ -q проходит полностью (зелёный), включая новые тесты ORCH-069 и существующий набор.
FAIL если: хотя бы один тест падает.
AC-6 — Документация обновлена в том же PR
Дано: PR с изменениями кода. Тогда в том же PR:
.env.exampleсодержитORCH_QG0_TITLE_MAXс дефолтом и комментарием;.env.staging.exampleсодержитORCH_QG0_TITLE_MAX;CHANGELOG.mdсодержит запись об ORCH-069;- при наличии релевантной таблицы конфигов в README /
CLAUDE.md— она обновлена. FAIL если: какой-либо из обязательных файлов документации не обновлён (reviewer → REQUEST_CHANGES).
AC-7 — Обратная совместимость
Дано: env не задан. Тогда: любой заголовок, который проходил QG-0 при прежнем лимите 80 (len ≤ 80), проходит и теперь (len ≤ 200). FAIL если: ранее валидный заголовок отклоняется.
AC-8 — Изоляция изменений
Тогда: не изменены slug-логика ([:30]), схема БД, реестры STAGE_TRANSITIONS / QG_CHECKS, контракты handle_*, soft-QG-0 поведение (warning на work_item.created).
FAIL если: затронут любой из перечисленных вне-объёмных элементов.