docs(checklist): add Plane status model + agent-bot membership steps (ORCH onboarding lessons)

This commit is contained in:
2026-06-05 15:39:17 +03:00
parent 3b0ea4443a
commit e8d521bf7a

View File

@@ -8,6 +8,15 @@
- [ ] Добавить запись в реестр орка `ORCH_PROJECTS_JSON` (env орка): `plane_project_id → repo + work_item_prefix + name`. См. orchestrator `src/projects.py` (ADR-0001). - [ ] Добавить запись в реестр орка `ORCH_PROJECTS_JSON` (env орка): `plane_project_id → repo + work_item_prefix + name`. См. orchestrator `src/projects.py` (ADR-0001).
- [ ] Настроить вебхуки: Plane → `/webhook/plane`, Gitea → `/webhook/gitea` (HMAC-секрет в env орка). - [ ] Настроить вебхуки: Plane → `/webhook/plane`, Gitea → `/webhook/gitea` (HMAC-секрет в env орка).
### ⚠️ Шаг 1a. Статусная модель Plane (ОБЯЗАТЕЛЬНО — иначе стадии не отобразятся)
- [ ] Создать в новом Plane-проекте **все 14 статусов**, как в эталонном (enduro): Backlog, Todo, In Progress, Architecture, Development, Review, Testing, Approved, Rejected, Done, Cancelled, Needs Input, In Review, Blocked. Новый проект по умолчанию имеет только 5 базовых — недостающие 9 добавить через Plane API (`POST /projects/<id>/states/`, поля name/color/group).
- [ ] Убедиться, что орк резолвит статусы **per-project** (ORCH-10): `get_project_states(project_id)` читает UUID статусов из Plane API по project_id. UUID у каждого проекта СВОИ — НЕ хардкодить. Проверка: `get_project_states(<новый pid>)` возвращает 14 ключей с UUID этого проекта.
- ⚠️ **Грабля (05.06.2026):** без стадийных статусов webhook НЕ распознаёт «старт конвейера» (In Progress) → задача не запустится.
### ⚠️ Шаг 1b. Боты-агенты — члены Plane-проекта (ОБЯЗАТЕЛЬНО — иначе 403 на комменты)
- [ ] Добавить **все 7 ботов-агентов** (Analyst, Architect, Developer, Reviewer, Tester, Deployer, Stream) в новый Plane-проект как членов (`POST /projects/<id>/members/`, поле `{"member": <user_id>, "role": 15}`). user_id ботов можно взять из эталонного проекта (`GET /projects/<et-id>/members/`).
- ⚠️ **Грабля (05.06.2026):** каждый агент постит коммент-артефакт под СВОИМ ботом (`PLANE_BOT_<ROLE>`). Если бот не член проекта → Plane отдаёт **403 Forbidden** на коммент, и ссылки на артефакты (BRD/ADR/review/…) не лягут в задачу. Конвейер продолжит работу, но без видимых комментов. admin-токен работает (он овнер), поэтому баг легко просмотреть при ручном тесте.
## Шаг 2. Паспорт проекта — `CLAUDE.md` в корне репо ## Шаг 2. Паспорт проекта — `CLAUDE.md` в корне репо
- [ ] TL;DR, стек, команды (тесты/запуск/деплой), среды (prod/staging), структура. - [ ] TL;DR, стек, команды (тесты/запуск/деплой), среды (prod/staging), структура.
- [ ] Раздел «Артефакты задачи» — точные имена (00-business-request..15-staging-log, 04-test-plan.YAML). - [ ] Раздел «Артефакты задачи» — точные имена (00-business-request..15-staging-log, 04-test-plan.YAML).
@@ -32,6 +41,9 @@
## Шаг 5. Проверка готовности ## Шаг 5. Проверка готовности
- [ ] Тестовая задача в Plane → проходит весь конвейер до `done`. - [ ] Тестовая задача в Plane → проходит весь конвейер до `done`.
- [ ] **Название задачи ≤80 символов** (иначе QG-0 завернёт в Blocked на старте).
- [ ] **Комменты-артефакты реально ложатся в Plane** на каждой стадии (нет 403) — проверка Шага 1b.
- [ ] **Стадии отображаются на доске** (Architecture/Development/…) — проверка Шага 1a.
- [ ] Вебхук фильтрует чужие проекты (unknown → ignored). - [ ] Вебхук фильтрует чужие проекты (unknown → ignored).
- [ ] Артефакты пишутся в `docs/work-items/<id>/` с правильными именами. - [ ] Артефакты пишутся в `docs/work-items/<id>/` с правильными именами.
- [ ] Quality Gates читают машинные вердикты (verdict:/deploy_status:/staging_status:). - [ ] Quality Gates читают машинные вердикты (verdict:/deploy_status:/staging_status:).