docs(overview): sync system showcase with analyst open-questions auto-park (ORCH-120)
Address reviewer P1 (ось ORCH-011/ORCH-079, правило агентов №6): витрина описывала паузу serial-gate как исключительно операторскую, но ORCH-120 добавил движковый авто-park/unpark на analyst Needs Input. - tech-pipeline.md: абзац пауз теперь называет два источника (оператор + авто-park движком на Needs Input, флаг analyst_needs_input_autopause_enabled, скоуп self-hosting, симметричный unpark на resume). - tech-observability.md: пункт пауз в GET /queue — оба источника. - tech-agents.md: when-applicable сигнальный канал 01-questions.md у analyst (строка таблицы + поясняющая врезка; не machine-verdict, не deliverable). - CHANGELOG: запись ORCH-120 дополнена строкой про обновление витрины. tests/test_system_docs.py зелёный (29 passed). src/STAGE_TRANSITIONS/QG_CHECKS не тронуты — docs-only. Refs: ORCH-120 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
|
||||
| Роль | Стадия | Вход | Выходные артефакты | Machine-verdict ключ |
|
||||
|------|--------|------|--------------------|----------------------|
|
||||
| `analyst` | analysis | бизнес-запрос (`00-business-request.md`) | `01-brd.md`, `02-trz.md`, `03-acceptance-criteria.md`, `04-test-plan.yaml` | — (гейт проверяет полноту пакета + одобрение человека) |
|
||||
| `analyst` | analysis | бизнес-запрос (`00-business-request.md`) | `01-brd.md`, `02-trz.md`, `03-acceptance-criteria.md`, `04-test-plan.yaml`; when-applicable сигнальный `01-questions.md` | — (гейт проверяет полноту пакета + одобрение человека) |
|
||||
| `architect` | architecture | пакет аналитики | `06-adr/ADR-NNN-*.md`, when-applicable `07-infra-requirements.md` / `08-data-requirements.md`, `10-tech-risks.md` | — (гейт проверяет наличие ADR) |
|
||||
| `developer` | development | ТЗ + ADR | код в `src/`, тесты в `tests/`, обновлённые доки, `CHANGELOG.md`, PR в Gitea | — (гейт — зелёный CI ветки) |
|
||||
| `reviewer` | review | PR diff + ТЗ/ADR | `12-review.md` | `verdict:` (`APPROVED` \| `REQUEST_CHANGES`) |
|
||||
@@ -18,6 +18,15 @@
|
||||
Machine-verdict ключи читаются гейтами **только из YAML-frontmatter** артефакта (никогда из
|
||||
прозы) и неизменны байт-в-байт — подробнее в [блоке качества](tech-quality-security.md).
|
||||
|
||||
> **Сигнальный канал аналитика → Needs Input (ORCH-120).** Если на стадии `analysis` аналитик
|
||||
> упирается в блокирующие открытые вопросы, он не фабрикует обязательные deliverables, а выпускает
|
||||
> when-applicable артефакт `01-questions.md` — задача уходит в **Needs Input** и (под флагом
|
||||
> `analyst_needs_input_autopause_enabled`, скоуп self-hosting) автоматически встаёт на паузу, чтобы
|
||||
> не клинить очередь репозитория, пока ждём ответа человека; ответ возобновляет анализ и снимает
|
||||
> паузу. `01-questions.md` — сигнальный артефакт того же владельца/стадии, **не** machine-verdict и
|
||||
> **не** один из 4 обязательных deliverables (exit-гейт `check_analysis_complete` его не парсит). Как
|
||||
> это вплетено в serial-gate — [конвейер](tech-pipeline.md).
|
||||
|
||||
## Модель и эффорт
|
||||
|
||||
Модель и эффорт каждой роли резолвятся **только из конфига** (не из промпта); текущие
|
||||
|
||||
@@ -22,8 +22,10 @@
|
||||
- **`GET /queue`** — человекочитаемый снимок всего конвейера: очередь и job'ы, состояние
|
||||
serial gate (заморозки, паузы задач, причина ожидания успешника), авто-лейблы, багфикс-трек,
|
||||
coverage, журнал уроков, владение переходами (`transition_lease`), фоновые демоны. Первая
|
||||
точка диагностики «что сейчас происходит». Паузу/возобновление задачи в serial gate оператор
|
||||
включает явными эндпоинтами `POST /serial-gate/pause|resume`.
|
||||
точка диагностики «что сейчас происходит». Паузу/возобновление задачи в serial gate включают
|
||||
два источника: **оператор** — явными эндпоинтами `POST /serial-gate/pause|resume`, и **движок** —
|
||||
автоматически, когда аналитик задаёт блокирующие вопросы и задача уходит в Needs Input (авто-park;
|
||||
снимается на возобновлении; под флагом `analyst_needs_input_autopause_enabled`, скоуп self-hosting).
|
||||
- **`GET /metrics`** — машинный контракт для внешнего наблюдателя (версионированная схема):
|
||||
health, возраст последних событий, счётчики сбоев.
|
||||
- **`GET /health`** — живость процесса.
|
||||
|
||||
@@ -107,12 +107,17 @@ created → analysis → architecture → development → review → testing →
|
||||
прода после выкладки замораживает репозиторий (freeze) до ручного разбора — следующие задачи
|
||||
ждут.
|
||||
|
||||
У FIFO-порядка есть управляемое исключение — **пауза без блокировки**: оператор может явно
|
||||
поставить более раннюю задачу на паузу (durable-сигнал `tasks.paused_at`), и тогда срочный
|
||||
успешник её обгоняет, не дожидаясь завершения. Пауза — отдельная ось: она ≠ отмена (задача не
|
||||
терминальна и возвращается в гейт обратной командой) и **не** обходит ни freeze, ни объявленные
|
||||
зависимости. Свежесть базы возобновлённой задачи гарантируют те же механизмы (отложенный срез
|
||||
ветки + ребейз на слиянии), что и для обычного FIFO.
|
||||
У FIFO-порядка есть управляемое исключение — **пауза без блокировки**: более раннюю задачу можно
|
||||
снять с активной очереди репозитория, не дожидаясь её завершения, и тогда срочный успешник её
|
||||
обгоняет. Паузу (durable-сигнал `tasks.paused_at`) ставят два источника. **Оператор** — явно
|
||||
(`POST /serial-gate/pause`, снять — `/resume`). **Движок** — автоматически, когда аналитик
|
||||
упирается в блокирующие открытые вопросы и задача уходит в **Needs Input** (узкий триггер под
|
||||
флагом `analyst_needs_input_autopause_enabled`, скоуп self-hosting); на возобновлении (ответ
|
||||
человека) движок снимает паузу симметрично. Авто-park нужен, чтобы задача, ждущая человека часы
|
||||
или дни, не клинила FIFO-очередь репозитория в автономном пакетном прогоне. Пауза — отдельная ось:
|
||||
она ≠ отмена (задача не терминальна и возвращается в гейт обратной командой) и **не** обходит ни
|
||||
freeze, ни объявленные зависимости. Свежесть базы возобновлённой задачи гарантируют те же
|
||||
механизмы (отложенный срез ветки + ребейз на слиянии), что и для обычного FIFO.
|
||||
|
||||
## Отмена: STOP → `cancelled`
|
||||
|
||||
|
||||
Reference in New Issue
Block a user