4.1 KiB
4.1 KiB
type, work_item_id, verdict, version
| type | work_item_id | verdict | version |
|---|---|---|---|
| review | ORCH-069 | APPROVED | 3 |
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 → 863 passed (включая 10 новых тестов ORCH-069,
файл tests/test_qg0_title_limit.py, все зелёные). Документация обновлена в том же
PR полностью. Блокирующих и must-fix findings нет → APPROVED.
Соответствие ТЗ / ADR
src/config.py— полеqg0_title_max: int = 200+ валидатор_qg0_title_max_default(mode="before", try/except → 200 приNone/пустой/нечисловой): 1:1 с ADR Р-1/Р-2 и ТЗ §2/§5. ✓src/webhooks/plane.py— хардкод> 80заменён на> settings.qg0_title_max, текст ошибки динамический (f-string с актуальным числом); сигнатура_qg0_errors, нижний лимит title< 5, проверка description< 20не тронуты: ADR Р-3, ТЗ §3/§4. ✓- Граница строгая (
len == limitPASS,limit+1FAIL) — подтверждена tc01–tc04. ✓ - Инварианты (ADR Р-4 / AC-8):
STAGE_TRANSITIONS,QG_CHECKS, схема БД, slug[:30], soft-QG-0, API — НЕ изменены (diffsrc/= только 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 зелёный) — 863 passed ✓
- AC-6 (документация в том же PR) — выполнен полностью ✓
- AC-7 (обратная совместимость, ≤80 проходит при 200) — tc10 ✓
- AC-8 (изоляция изменений) — ✓
Findings
P0 — Blocker
- (нет)
P1 — Must fix
- (нет)
P2 — Should fix
- (нет)
P3 — Nice-to-have (не блокирует)
- В конце
06-adr/ADR-001-configurable-qg0-title-limit.mdприсутствуют артефактные хвостовые теги (</content>,</invoke>). Косметика в артефакте стадии architecture; на корректность кода/контракта не влияет. Править артефакт чужой стадии в рамках ревью не уполномочен — отмечено для будущей чистки.
Документация
.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. ✓- 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-реестр не менялись). ОК.