3.7 KiB
type, work_item_id, verdict, version
| type | work_item_id | verdict | version |
|---|---|---|---|
| review | ORCH-069 | APPROVED | 2 |
Review ORCH-069
Summary
Реализация конфигурируемого QG-0 title-лимита ORCH_QG0_TITLE_MAX (дефолт 200)
выполнена дословно по ТЗ/ADR и качественно: поле Settings.qg0_title_max,
graceful field_validator(mode="before") (never-raise → дефолт 200), динамическое
чтение settings.qg0_title_max в _qg0_errors с f-string-текстом ошибки. Код
изолирован (затронуты только src/config.py и src/webhooks/plane.py), инварианты
не нарушены, нижние лимиты сохранены. Полный тест-сет зелёный: pytest tests/ -q
→ 757 passed (включая 10 новых тестов ORCH-069).
Единственное замечание прошлой ревизии (v1) — отсутствие строки ORCH_QG0_TITLE_MAX
в README-таблице конфигов — устранено коммитом bce287e (строка добавлена
в таблицу «Все переменные с префиксом ORCH_»). Блокирующих и must-fix findings
не осталось → APPROVED.
Соответствие ТЗ / ADR
src/config.py— полеqg0_title_max: int = 200+ валидатор_qg0_title_max_default(mode="before", try/except → 200): 1:1 с ADR Р-1/Р-2 и ТЗ §2/§5. ✓src/webhooks/plane.py:362— хардкод> 80заменён на> settings.qg0_title_max, текст ошибки динамический (f-string с актуальным числом); сигнатура_qg0_errors, нижний лимит< 5, проверка description< 20не тронуты: ADR Р-3, ТЗ §3/§4. ✓- Граница строгая (
len == limitPASS,limit+1FAIL) — подтверждена tc01–tc04. ✓ - Инварианты (AC-8):
STAGE_TRANSITIONS,QG_CHECKS, схема БД, slug[:30], soft-QG-0, API — НЕ изменены (diff src = только 2 файла). ✓
Acceptance criteria
- AC-1 (дефолт 200, граница 201, текст упоминает 200) — tc01/tc02 ✓
- AC-2 (лимит 120, граница 121, текст 120 не 80) — tc03/tc04 ✓
- AC-3 (graceful пустое/
abc→ 200 без краха) — tc05/tc06/tc07 + валидатор ✓ - AC-4 (нижние лимиты title<5 / desc<20) — tc08/tc09 ✓
- AC-5 (pytest зелёный) — 757 passed ✓
- AC-6 (документация в том же PR) — выполнен полностью ✓ (README-таблица дополнена)
- AC-7 (обратная совместимость, ≤80 проходит) — tc10 ✓
- AC-8 (изоляция изменений) — ✓
Findings
P0 — Blocker
- (нет)
P1 — Must fix
- (нет)
P2 — Should fix
- (нет)
Документация
.env.example— добавленORCH_QG0_TITLE_MAX=200с комментарием. ✓.env.staging.example— добавленORCH_QG0_TITLE_MAX=200. ✓CHANGELOG.md— подробная запись об ORCH-069 (Added). ✓README.md— таблица env-конфигов дополнена строкойORCH_QG0_TITLE_MAX(коммитbce287e). ✓- ADR
06-adr/ADR-001-configurable-qg0-title-limit.md— присутствует, согласован с кодом. ✓ docs/architecture/README.md/CLAUDE.md— обновления не требуют (QG-0 — inline soft/hard-валидация входа, не зарегистрированный stage-gate; API/стадии/QG-реестр не менялись). ОК.