Files
orchestrator/docs/_templates/01-questions.md
claude-bot d6b495f156
All checks were successful
CI / test (push) Successful in 1m14s
CI / test (pull_request) Successful in 1m11s
fix(analysis): activate analyst open-questions -> Needs Input flow (ORCH-120)
Activates and completes the previously dead "analyst asks BLOCKING questions ->
01-questions.md -> Needs Input" path. Four coordinated changes, additive, under
kill-switch, self-hosting scope, never-raise; STAGE_TRANSITIONS / QG_CHECKS /
check_* / machine-verdict keys / DB schema are byte-for-byte UNCHANGED (the flow
is a pre-gate engine branch, NOT a Quality Gate; 01-questions.md is a SIGNAL
artifact, NOT a machine-verdict).

- D1 contract + canon: analyst.md documents the 01-questions.md channel (blocking
  questions -> Needs Input, do NOT fabricate deliverables) + resume behaviour; new
  skeleton docs/_templates/01-questions.md; PIPELINE_DOCS.md manifest row + 01-
  prefix note.
- D2 freshness-supersede (DQ-2): pure offline mtime predicate questions_active in
  the new leaf src/analyst_questions.py (a full FRESH package supersedes a stale
  untouched 01-questions.md -> no Needs-Input loop, AC-6).
- D3 priority: questions take priority over "files ready" in
  _handle_analysis_approved_flow (_decide_analysis_outcome + _emit_analysis_*);
  off/out-of-scope runs the ORIGINAL byte-for-byte order (AC-9).
- D4 auto-park: set_task_paused on Needs Input via the ORCH-124 pause axis so the
  repo serial-gate FIFO is not wedged while waiting for a human (AC-4); D5 resume +
  unpark (clear_task_paused) in handle_status_start (analysis branch).

Flags (config.py, safe defaults): analyst_questions_gate_enabled /
analyst_questions_gate_repos (empty -> self-hosting only) /
analyst_needs_input_autopause_enabled.

Tests: test_orch120_analyst_needs_input.py (TC-01 regress + TC-02/03/06/09/10),
test_orch120_serial_gate_needs_input.py (TC-04), test_orch120_resume_unpark.py
(TC-05), test_orch120_questions_artifact_canon.py (TC-08), assert in
test_agent_prompts_canon.py (TC-07). Full suite green (2205 passed).

Refs: ORCH-120

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 13:15:27 +03:00

2.8 KiB
Raw Blame History

work_item, stage, author_agent, status, created_at, model_used
work_item stage author_agent status created_at model_used
ORCH-NNN analysis analyst needs-input <YYYY-MM-DD> <resolve ORCH-41>

01 — Открытые вопросы (Open Questions): ORCH-NNN — <название>

Work Item: ORCH-NNN · Repo: · Стадия: analysis

Сигнальный when-applicable артефакт (ORCH-120, adr-0053). Пишется аналитиком через Write tool ТОЛЬКО при блокирующей неоднозначности бизнес-запроса, когда выпустить корректные 4 deliverables нельзя без ответа заказчика. Наличие этого файла с активными вопросами уводит задачу в Needs Input (приоритет над «файлы готовы»). Не machine-verdict: гейтом (check_analysis_complete/check_analysis_approved) НЕ парсится — это сигнал движку (_handle_analysis_approved_flow).

⚠️ Если блокирующих вопросов НЕТне создавай этот файл; выпускай полный пакет (01-brd.md/ 02-trz.md/03-acceptance-criteria.md/04-test-plan.yaml). Не фабрикуй требования ради сдачи 4 файлов.

1. Контекст

<Что именно в бизнес-запросе (00-business-request.md) блокирует выпуск корректного пакета. Какие факты установлены, а какие — нет. На какой код src/ это влияет.>

2. Блокирующие вопросы

Каждый вопрос — конкретный, отвечаемый, с вариантами (где уместно) и указанием, почему ответ блокирует анализ. Нумеруй (Q-1, Q-2, …).

  • Q-1 — <вопрос>
    • Вариант A: <…> (последствие)
    • Вариант B: <…> (последствие)
    • Почему блокирует: <без ответа нельзя выпустить BR/TRZ, т.к. …>
  • Q-2 — …

3. Что разблокирует анализ

<Какие ответы переводят задачу из Needs Input обратно в работу: после ответов заказчика в Plane аналитик перезапускается (resume), читает свежие комментарии и выпускает полный пакет. Если часть вопросов снята, а часть осталась — перепиши этот файл (оставь только актуальные блокеры), иначе выпусти 4 deliverables (свежий пакет supersedeит этот файл по mtime, DQ-2).>