8.4 KiB
verdict, work_item, stage, author_agent, status, created_at, model_used, type, work_item_id, version
| verdict | work_item | stage | author_agent | status | created_at | model_used | type | work_item_id | version |
|---|---|---|---|---|---|---|---|---|---|
| REQUEST_CHANGES | ORCH-120 | review | reviewer | changes-requested | 2026-06-17 | claude-opus-4-8 | review | ORCH-120 | 1 |
Review ORCH-120 — Открытые вопросы аналитика → Needs Input
Summary
Реализация по существу сильная и завершённая: мёртвый путь «аналитик задаёт блокирующие
вопросы → 01-questions.md → Needs Input» корректно активирован четырьмя согласованными
изменениями (контракт промпта + канон артефакта; приоритет вопросов над files_ok; авто-park
через ось «пауза» ORCH-124; resume + unpark). Чистая логика вынесена в leaf src/analyst_questions.py
(never-raise, kill-switch, self-hosting-скоуп — зеркало coverage_gate/serial_gate). Side-effects
изолированы в stage_engine (_decide_analysis_outcome/_emit_analysis_*). ORCH-089 autoApprove-блок
перенесён байт-в-байт. STAGE_TRANSITIONS / реестр и имена QG_CHECKS / check_* /
machine-verdict-ключи / схема БД — подтверждённо не тронуты (git diff по src/stages.py,
src/qg/checks.py, src/db.py пуст). Все 11 AC реализованы и покрыты; обязательный регресс-тест
TC-01 — подтверждённо красный на дофиксовом коде (files_ok проверялся до вопросов) и зелёный
после. Полный регресс pytest tests/ — 2205 passed.
Блокирующий дефект один: PR меняет функциональность, описанную в витрине системы
docs/overview/ (ось пауз serial-gate), но витрина не обновлена в том же PR — нарушение оси
обзорных доков (ORCH-011 / ORCH-079, правило для агентов №6). Это требует REQUEST_CHANGES.
Findings
P0 — Blocker
(нет)
P1 — Must fix
-
Витрина системы
docs/overview/не обновлена при изменении функциональности, которую она описывает (ось ORCH-011 / ORCH-079; CLAUDE.md правило №6; reviewer-prompt<constraints>). ORCH-120 вводит движковый авто-park/unpark оси «пауза» (db.set_task_pausedв_emit_analysis_needs_input,clear_task_pausedвhandle_status_start) — задача ставится на паузу автоматически, без действия оператора. Однако витрина описывает ось пауз как исключительно операторскую, и теперь это утверждение неполно/противоречит коду:docs/overview/tech-pipeline.md:110-112— «пауза без блокировки: оператор может явно поставить более раннюю задачу на паузу (durable-сигналtasks.paused_at)». Нет упоминания авто-park движком на Needs Input.docs/overview/tech-observability.md:25-26— «Паузу/возобновление задачи в serial gate оператор включает явными эндпоинтамиPOST /serial-gate/pause|resume». После ORCH-120 пауза также триггерится движком автоматически (analyst Needs Input) и снимается на resume.docs/overview/tech-agents.md:11— строка агентаanalystперечисляет выходы как 4 deliverable без нового канала «блокирующие вопросы →01-questions.md(when-applicable, сигнальный) → Needs Input».
Витрина — единая точка входа «бизнес + тех» (ORCH-011); читатель получает картину, где пауза — только ручная, что больше не соответствует поведению. Требуется обновить
docs/overview/в этом же PR: как минимум дополнить абзац пауз вtech-pipeline.mdи пункт пауз вtech-observability.mdупоминанием авто-park/unpark движком на Needs Input (узкий триггер, под флагомanalyst_needs_input_autopause_enabled, скоуп self-hosting); опционально — отметить вtech-agents.mdwhen-applicable канал01-questions.md. После обновления —tests/test_system_docs.pyдолжен оставаться зелёным.Примечание по классификации: остальная документация (README архитектуры,
CHANGELOG.md,PIPELINE_DOCS.md,analyst.md, скелетdocs/_templates/01-questions.md, work-item ADR-001 + сквозной adr-0053) обновлена качественно — поэтому это не «src/изменён, документация не обновлена» (P0), а точечное необновление обзорной витрины (явная ось ≥P1).
P2 — Should fix
(нет)
Документация
Обновлено (проверено по diff):
docs/architecture/README.md— новый раздел «Открытые вопросы аналитика → Needs Input (ORCH-120 — реализовано)» со ссылкой на adr-0053.CHANGELOG.md— запись[Unreleased]с полным описанием 4 изменений и флагов.docs/_standards/PIPELINE_DOCS.md— строка манифеста для01-questions.md(владелецanalyst,when-applicable, сигнальный, не machine-verdict) + примечание о префиксе01-(DQ-4)..openclaw/agents/analyst.md— контракт «блокирующие вопросы →01-questions.md, НЕ фабриковать deliverables» + поведение на resume; канон 52d сохранён (анти-дрейф-assert вtests/test_agent_prompts_canon.pyзелёный).docs/_templates/01-questions.md— новый скелет (frontmatter 52c с плейсхолдерами, контекст / блокирующие вопросы / что разблокирует анализ)..env.example— 3 новых ключаORCH_ANALYST_*с описанием и безопасными дефолтами.- ADR:
docs/work-items/ORCH-120/06-adr/ADR-001-analyst-open-questions-needs-input.md+ сквознойdocs/architecture/adr/adr-0053-analyst-open-questions-needs-input-flow.md.
Нужно обновить (P1): docs/overview/ — витрина системы (см. P1 выше). Конкретно
tech-pipeline.md (абзац пауз) и tech-observability.md (пункт пауз GET /queue); опц.
tech-agents.md (канал 01-questions.md).
Проверки осей (для прозрачности)
- Соответствие ТЗ/AC: AC-1…AC-11 реализованы и покрыты (
tests/test_orch120_*+ assert канона). Полный регресс зелёный (2205 passed). TC-01 подтверждённо RED→GREEN. - Соответствие ADR/трассировка: реализация = ADR-001/adr-0053.
STAGE_TRANSITIONS/QG_CHECKS/check_*/machine-verdict/схема БД не тронуты. ORCH-089 autoApprove перенесён вербатим; инварианты ORCH-066/088/124 не сломаны (маркеры сверены). - Качество кода + багфикс-регресс (ORCH-019 BR-4): leaf-паттерн чистый, never-raise во всех врезках, kill-switch + скоуп корректны; задача — Bug→escalate full-cycle, обязательный тест-фиксатор дефекта (TC-01) присутствует и валиден.
- Документация: номерные/стандартные доки обновлены; обзорная витрина — нет (P1).