auto-sync: 2026-06-07 23:00:01
This commit is contained in:
@@ -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` — только старт.
|
||||
|
||||
Reference in New Issue
Block a user