auto-sync: 2026-06-07 23:00:01

This commit is contained in:
Stream
2026-06-07 23:00:01 +03:00
parent e3e8156ad3
commit ecbdb9cab1

View File

@@ -45,36 +45,58 @@
Предлагаю **`Deploying`** — орк ставит при старте Phase B (detached прод-деплой идёт),
снимает в Done после health-OK финалайзера (или в Rejected/Blocked при фейле).
## 3. Предлагаемая статусная модель (итог)
## 3. Предлагаемая статусная модель (итог) — v2 с правками Славы
### A. Новые статусы (создать в Plane + замапить в резолвере)
| Статус | Класс | Группа | Кто ставит/жмёт | Смысл |
|---|---|---|---|---|
| **Analysis** | 🔵 выход | started | орк | идёт анализ/BRD (1-я стадия) — СВОЙ статус вместо In Progress |
| **Awaiting Deploy** | 🔵 выход | started | орк (Phase A) | staging зелёный, merge готов — жду Confirm Deploy на прод |
| **Confirm Deploy** | 🟢 вход | started | человек | запустить Phase B прод-деплой (УЖЕ создан в ORCH-59 ✅) |
| **Deploying** | 🔵 выход | started | орк (Phase B) | прод-деплой идёт (detached), health-check в процессе |
| **Deploying** | 🔵 выход | started | орк (Phase B) | прод-деплой идёт (detached), health-check |
| **Monitoring** | 🔵 выход | started | орк (post-deploy ORCH-21) | деплой встал, идёт пост-деплой окно (~15мин, 30 опросов) — ещё НЕ Done |
(имена `Awaiting Deploy` / `Monitoring` — рабочие; финал — по ответам Славы, см. §5)
### B. Семантика `In Review` — РАЗГРУЗИТЬ
- Оставить `In Review` ТОЛЬКО за approve-pending артефактов конвейера (BRD/ревью на ранних
стадиях) — это его исходный смысл.
- Оставить `In Review` ТОЛЬКО за approve-pending артефактов конвейера (BRD/ревью) — исходный смысл.
- Phase A перестаёт ставить `In Review` → ставит **`Awaiting Deploy`**.
### C. Полный жизненный цикл задачи (целевой)
```
Backlog → Todo → In Progress(analysis) → [In Review → Approved] → Architecture →
Development → Review → Testing → Awaiting Deploy → [Confirm Deploy] → Deploying → Done
(человек) (орк)
```
Ветки: Rejected (откат), Needs Input (нужен ввод), Blocked (затык), Cancelled.
### B2. Вход в analysis — РАЗГРУЗИТЬ (пункт 3 Славы)
- Сейчас: человек жмёт `In Progress` (вход-триггер) → но и стадия `analysis` маппится в
`in_progress` (`_STAGE_TO_STATE_KEY`), и `deploy` тоже → ТРОЙНАЯ перегрузка `In Progress`.
- Проблема: задача в анализе висит как «In Progress», не видно ЧТО именно идёт (анализ).
- Решение: ввести выходной статус **`Analysis`** (по аналогии с Architecture/Development/...).
`In Progress` остаётся ТОЛЬКО входным триггером «начать конвейер» (человек жмёт), а орк сразу
переводит в `Analysis`. После ввода Awaiting Deploy/Deploying/Monitoring статус `In Progress`
больше НЕ используется как индикация стадии — только как кнопка старта. Чисто.
### D. Что УБРАТЬ / признать лишним (гигиена)
Кандидаты на чистку (проверить, что нигде в коде не читаются как триггер):
- **`Blocked`** — код его не выставляет и не читает как триггер (есть в маппинге, но не в
жизненном цикле). Либо начать использовать осмысленно (затык внешней зависимости), либо убрать.
- **Дубль индикации:** `In Progress` используется и для analysis, и для deploy-стадии
(STAGE_TO_STATE). После ввода Awaiting Deploy/Deploying стадия deploy получит свои статусы —
In Progress останется только за analysis. Чище.
- Проверить `Todo` vs `Backlog`оба «не начато»; возможно один лишний (низкий приоритет).
### B3. post-deploy monitor → статус `Monitoring` (пункт 1 Славы)
- Сейчас: после health-OK задача СРАЗУ → Done, а монитор (ORCH-21) тикает «после Done» 15 мин.
`Done` означает «процесс стартовал», а не «доказанно здоров».
- Решение: ввести **`Monitoring`** между Deploying и Done. Финалайзер при health-OK ставит
`Monitoring` (а не Done) → пост-деплой окно тикает → при чистом закрытии (HEALTHY, 30 опросов)
`Done`; при деградации (5xx/UNHEALTHY) → `Blocked` + Telegram + сигнал к откату.
Тогда `Done` = «развёрнуто И доказанно стабильно 15 минут».
### C. Полный жизненный цикл задачи (целевой v2)
```
Backlog → Todo → [In Progress*] → Analysis → [In Review → Approved] → Architecture →
Development → Review → Testing → Awaiting Deploy → [Confirm Deploy] → Deploying →
Monitoring → Done
(* In Progress = только кнопка старта, человек; дальше всё ставит орк)
[...] = действие человека (вход-триггер)
```
Ветки: Rejected (откат), Needs Input (нужен ввод), **Blocked (затык/поломка/фейл деплоя)**, Cancelled.
### D. Гигиена — ИСПРАВЛЕНО по факту кода
- **`Blocked`НЕ убирать, он РАБОЧИЙ** (проверено grep'ом, был неправ ранее). Код ставит
`set_issue_blocked` в 9+ местах: фейл гейтов, retry-cap, бюджет исчерпан (anti-livelock),
БАГ-8 rollback (deploy→development), падение агента (launcher), reconciler Guard 2 пропускает
blocked-задачи. Именно его Слава видел при поломках. Несущий статус — ОСТАВИТЬ.
Доп.выгода новой модели: фейл деплоя `Deploying`/`Monitoring``Blocked` (консистентно).
- **Разгрузка `In Progress`:** см. B2 — станет чисто входным триггером.
- `Todo` vs `Backlog`оба «не начато»; проверить, возможно один лишний (низкий приоритет).
## 4. Объём изменений (для будущего ТЗ Dev-агенту)
- **Plane (инфра, делаю я через API):** создать `Awaiting Deploy`, `Deploying`
@@ -90,10 +112,16 @@ Development → Review → Testing → Awaiting Deploy → [Confirm Deploy] →
- Тесты: Phase A ставит Awaiting Deploy (не In Review); Phase B ставит Deploying;
fail-closed при отсутствии статусов.
## 5. Открытые вопросы Славе
1. Имя для approve-pending деплоя: **`Awaiting Deploy`** или **`Ready for Deploy`**? (склоняюсь
к `Awaiting Deploy` подчёркивает «жду тебя», но `Ready for Deploy` тоже ок).
2. При фейле прод-деплоя `Deploying` → куда? Предлагаю **`Rejected`** (откат на deploy, повторный
Confirm Deploy после фикса) — консистентно с текущим rollback. Или отдельный `Deploy Failed`?
3. `Blocked` — начать использовать (внешний затык) или убрать как мёртвый?
4. Оформить как work item эпика ORCH-54 (например ORCH-60-status-model)? Делать после ORCH-23?
## 5. Открытые вопросы Славе (v2)
1. **Имя approve-pending деплоя:** `Awaiting Deploy` или `Ready for Deploy`? (склоняюсь к
`Awaiting Deploy` — «жду тебя»; `Ready for Deploy` = «готово к деплою», тоже ясно).
2. **Имя пост-деплой статуса:** `Monitoring` / `Monitoring after Deploy` / `Post-Deploy Watch` /
`Verifying`? (склоняюсь к `Monitoring` — коротко; `Verifying` подчёркивает «проверяю здоровье»).
3. **Фейл деплоя `Deploying`/`Monitoring` → куда?** Предлагаю **`Blocked`** (консистентно с тем,
как код уже метит фейлы) + Telegram + сигнал к откату на rollback-снимок. Согласен?
4. **`Analysis` статус** для 1-й стадии — вводим (как просил, п.3)? Да/нет.
5. **Оформить как work item** эпика ORCH-54 (напр. `ORCH-XX-status-model`)? Сейчас или после ORCH-23?
### Сводка новых статусов к созданию в Plane (после согласования имён):
`Analysis`, `Awaiting Deploy`, `Deploying`, `Monitoring` (+ `Confirm Deploy` уже есть).
`Blocked` — остаётся. `In Review` — разгружается (только артефакты). `In Progress` — только старт.