# Бэклог — Мультиагентная разработка ПО --- type: backlog updated_at: 2026-06-03 --- ## TODO: Plane — авто-добавление ботов в новый проект (03.06.2026) **ORCH-9** · приоритет: средний · родитель: задача **Plane per-agent authorship** (PR #9 `e9fd3052`, замержена 03.06). **Проблема:** 7 сервис-ботов орка (🧠 Analyst / 🏗️ Architect / 💻 Developer / 🔍 Reviewer / 🧪 Tester / 🚀 Deployer / 🌊 Стрим) добавлены в `project_members` только текущего проекта enduro (`7a79f0a9-...`). При создании НОВОГО проекта в Plane боты в нём не состоят → POST коммента вернёт **403 Forbidden** (аутентификация ок, прав нет). Авторство сломается на новом проекте. **Решение:** автоматически добавлять 7 ботов в `project_members` (role 15) при появлении нового проекта. Точка интеграции — resolve проекта в ORCH-6 (`src/projects.py` / реестр Plane id→repo): когда оркестратор впервые видит новый project_id, дёрнуть «ensure bots in project». Идемпотентно (`NOT EXISTS`). **Грабли (зафиксированы 03.06):** - `project_members` NOT NULL: `member_id` обязателен (без него INSERT падает молча в транзакции). - Боты должны быть И в `workspace_members`, И в `project_members` — членство в воркспейсе само по себе НЕ даёт права комментить в проекте. - Связь автор↔токен: `issue_comments.actor_id` = владелец `api_tokens.token`. **Done when:** новый проект → боты авто-добавлены → коммент любого бота возвращает 201, автор в Plane = бот (не mva154). **Источники:** `memory/2026-06-03.md` (раздел «Plane per-agent authorship»), ТЗ `DEV_TASK_PLANE_PER_AGENT_AUTHOR.md`. --- ## Решения (19.05.2026) ### Analyst — пересмотр архитектуры **Было:** Analyst = Стрим (OpenClaw main agent), работает как посредник. **Стало:** Analyst = **отдельный полноценный агент OpenClaw** (не субагент). **Ключевые решения:** - Analyst — первоклассный агент в `agents.list[]`, равноправен с main - Слава общается с Analyst **напрямую** (не через Стрим) - Каналы связи: **отдельный Telegram-чат** + **Plane** (комментарии) - Модель: `anthropic/claude-sonnet-4-6` (API, не CLI) - Свой workspace, своя память, свои сессии **Поведение:** 1. Получает задачу от Славы (Telegram или Plane) 2. Читает `00-business-request.md` + `CLAUDE.md` проекта 3. Если неясности → формирует вопросы, останавливается, ждёт ответа 4. Пишет BRD, ТЗ, AC, Test Plan 5. Коммитит в feature-ветку 6. Запрашивает approve у Славы **Правила:** - ❌ Не пишет код - ❌ Не трогает архитектуру, дизайн, ADR - ❌ Не закрывает задачу без `:approved:` от Славы - ❌ Не угадывает — спрашивает - ✅ Читает весь репо (контекст) - ✅ Пишет только в `docs/work-items//` - ✅ Коммитит в feature-ветку - ✅ Обновляет статусы в Plane **Поток:** ``` Слава (Telegram) ──────► Analyst agent Слава (Plane comment) ──► Analyst agent (через webhook) Analyst ──► Git (коммит в feature-ветку) Analyst ──► Plane (статус, комментарии) Analyst ──► Слава (ответ в Telegram / Plane) ``` Стрим в цепочке НЕ участвует — Analyst автономен. --- ## TODO: Analyst agent - [ ] Решить: тот же Telegram-бот (binding по peer) или отдельный бот? - [ ] Решить: Plane webhook сразу или пока руками? - [ ] Решить: первый проект — enduro-trails? - [ ] Добавить `analyst` в `agents.list[]` в openclaw.json - [ ] Создать workspace `~/.openclaw/workspace-analyst/` с AGENTS.md (промпт из proposal) - [ ] Настроить Telegram binding - [ ] Дать доступ к Gitea (SSH key или token для `claude-bot`) - [ ] Дать `PLANE_API_TOKEN` в env агента - [ ] Написать скилл `plane-api` (или использовать exec curl) - [ ] Тестовый прогон: создать Work Item → Analyst пишет BRD --- ## TODO: Инфраструктура (из ревью 18.05) - [x] Claude Code CLI установлен на mva154 (v2.1.142) - [x] Gitea работает (v1.25.5) - [x] Plane работает - [x] Node.js на mva154 (v24.14.0) - [x] Service account `claude-bot` в Gitea - [x] Репо enduro-trails — каноническая структура - [x] CI workflow (lint + test + build) - [ ] Проверить авторизацию Claude CLI (`claude auth status`) - [ ] Проверить Gitea Actions runner (работает ли?) - [ ] Настроить branch protection на main - [ ] Plane webhooks → endpoint --- ## TODO: Orchestrator (Фаза 2) - [ ] FastAPI скелет: `/webhook/plane`, `/webhook/gitea`, `/health` - [ ] QG-проверки (lint-spec, req-coverage, reaction check) - [ ] Запуск агентов по событиям - [ ] Репо `admin/agent-dev` — заполнить кодом --- ## TODO: Тестирование / аудит (24.05.2026) - [ ] Определить тип Work Item для чистого тестирования (Audit / Regression или Feature+skip:*) - [ ] Описать YAML-схему Test Plan (чтобы Tester agent мог исполнять автономно) - [ ] Обновить `proposal_v1/09_ui_testing.md` под сценарий «регресс без новой фичи» - [ ] Прописать как Tester agent запускает Playwright + vision + формирует отчёт - [ ] Добавить тип `Audit` в список типов Work Item в `06_plane_integration.md` --- ## TODO: Управление бэклогом (24.05.2026) - [ ] Решить: кто и куда заводит задачи (Слава → Plane / через Analyst / через Стрим) - [ ] Описать правила декомпозиции крупных фич (тип `Decomposition`, когда и как) - [ ] Прописать правила работы с backlog (приоритет, эпик/фаза, когда заводить Phase) - [ ] Решить: кто обновляет статусы в Plane (Analyst? Orchestrator?) - [ ] Решить: Plane — единственный источник backlog'а или нужно отдельное хранилище --- ## TODO: Остальные агенты (после Analyst) - [ ] Architect (Claude CLI, Opus) - [ ] Developer (Claude CLI, Sonnet) - [ ] Reviewer (Claude CLI, Opus) - [ ] Tester (Claude CLI, Sonnet) - [ ] Deployer (Claude CLI, Sonnet)