Files
wiki/tasks/multi-agent/BRD.md
2026-05-15 01:20:01 +03:00

232 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BRD — Мультиагентная разработка ПО
---
type: brd
version: 1
status: draft
created_at: 2026-05-15
authors:
- "agent:stream"
- "human:slava"
related:
proposal: ../proposal_v1/README.md
---
## 1. Цель и метрика успеха
**Цель:** Построить систему, в которой Слава формулирует бизнес-требования, а агенты автоматически выполняют анализ, разработку, ревью, тестирование и деплой — с машинно-проверяемыми Quality Gates между этапами.
**Метрики успеха (пилот — проект Enduro Trails):**
- Lead time от постановки до деплоя в test ≤ 4 часа (для типовой фичи)
- Человеческое участие ≤ 3 действия на задачу (постановка + approve ТЗ + approve деплоя)
- Стоимость LLM ≤ $15/задача
- 0 деплоев сломанного кода (QG не пропускает)
## 2. Стейкхолдеры
| Роль | Кто | Интерес |
|------|-----|---------|
| Заказчик / Owner | Слава | Формулирует задачи, ставит approve, наблюдает в Plane |
| Analyst | Стрим (OpenClaw) | Пишет BRD/ТЗ, задаёт вопросы, координирует |
| Orchestrator | Скрипт (FastAPI) | Слушает webhooks, проверяет QG, запускает агентов |
| Architect | Claude Code CLI | ADR, C4-диаграммы, требования к инфре/данным |
| Developer | Claude Code CLI | Пишет код, тесты, открывает PR |
| Reviewer | Claude Code CLI | Проверяет код на соответствие ТЗ/ADR |
| Tester | Claude Code CLI | Запускает e2e/регресс, оформляет отчёт |
## 3. Scope
### В скоупе (пилот)
- Orchestrator: webhook-обработка Plane + Gitea, QG-проверки, запуск агентов
- Claude Code CLI на mva154: установка, авторизация, headless mode
- Gitea: репо Enduro Trails, branch protection, CI (Gitea Actions)
- Plane: шаблоны Work Item, webhooks, лейблы, custom fields
- Агенты: Architect, Developer, Reviewer, Tester (через Claude Code CLI)
- Quality Gates: QG-0 → QG-7 (полный конвейер)
- Пилотный проект: Enduro Trails
### Вне скоупа (v1)
- Designer-агент (UI-дизайн пока ручной)
- Deployer-агент (деплой ручной или через простой CI)
- Ephemeral preview-окружения
- Visual regression / a11y тесты
- Масштабирование на другие проекты
- Plane MCP-сервер (на старте — прямые API-вызовы из Orchestrator)
## 4. Архитектура (высокий уровень)
```
┌─────────────┐ webhook ┌──────────────┐ CLI ┌─────────────────┐
│ Plane │ ───────────────► │ Orchestrator │ ───────────► │ Claude Code CLI │
│ (витрина) │ ◄─────────────── │ (FastAPI) │ │ (на mva154) │
└─────────────┘ API updates └──────┬───────┘ └────────┬────────┘
│ │
│ git push/PR │ git commit
▼ ▼
┌──────────────┐ ┌─────────────────┐
│ Gitea │ ◄────────────│ Git repo │
│ (CI/forge) │ │ (source of truth)│
└──────────────┘ └─────────────────┘
│ webhook (CI result)
┌──────────────┐
│ Orchestrator │ (проверяет QG, двигает дальше)
└──────────────┘
```
**Стрим (OpenClaw):**
- Получает задачу от Славы в чате
- Пишет BRD/ТЗ, коммитит в ветку
- Ставит статус в Plane → триггерит Orchestrator
**Orchestrator (скрипт):**
- Слушает webhooks от Plane и Gitea
- Проверяет QG (наличие файлов, lint, CI status, reactions)
- Запускает Claude Code CLI в headless mode с конкретной задачей
- Обновляет статусы в Plane
**Claude Code CLI:**
- Запускается на mva154 в директории git-репо
- Получает задачу: "Прочитай docs/work-items/XXX/02-trz.md, реализуй, закоммить"
- Работает нативно (без cloaking, без прокси)
- Коммитит результат в ветку
**Gitea:**
- Хранит код (source of truth)
- CI (Gitea Actions): lint, test, build
- Webhooks → Orchestrator
- Branch protection на main
**Plane:**
- Витрина для Славы
- Work Items с подзадачами (этапы конвейера)
- Reactions как approve-механизм
- Webhooks → Orchestrator
## 5. Производственный процесс
```
Слава Стрим Orchestrator Claude Code CLI
│ │ │ │
├─ Задача в Plane ──►│ │ │
│ ├─ BRD/ТЗ ──────────►│ │
│◄── Вопросы ────────┤ │ │
├─── Ответы ────────►│ │ │
│ ├─ ТЗ ready ─────────►│ │
│◄── Прошу approve ──┤ │ │
├─── :approved: ─────► │ │
│ │ ├─ QG-1 check │
│ │ ├─ Запуск Architect ──►│
│ │ │ ├─ ADR + требования
│ │ │ ├─ git commit
│ │ │◄── push event │
│ │ ├─ QG-2 check │
│ │ ├─ Запуск Developer ──►│
│ │ │ ├─ Код + тесты
│ │ │ ├─ git commit + PR
│ │ │◄── webhook CI green │
│ │ ├─ QG-4 check │
│ │ ├─ Запуск Reviewer ───►│
│ │ │ ├─ Review
│ │ │ ├─ approve/reject
│ │ │◄── webhook review │
│ │ ├─ QG-5 check │
│ │ ├─ Запуск Tester ─────►│
│ │ │ ├─ e2e + отчёт
│ │ │◄── test report │
│ │ ├─ QG-6 check │
│ │ ├─ Merge PR │
│ │ ├─ Deploy test │
│◄── Готово, проверь ─┤ │ │
├─── :approved: ─────► │ │
│ │ ├─ Done │
```
**Этапы (7 из 8):**
1. **Постановка** — Слава в Plane (или через Стрим)
2. **Анализ** — Стрим пишет BRD/ТЗ/AC
3. **Архитектура** — Claude Code CLI (ADR, C4, требования к инфре/данным)
4. **Разработка** — Claude Code CLI (код + unit-тесты + PR)
5. **Code Review** — Claude Code CLI (другой запуск, проверка соответствия ТЗ/ADR)
6. **Тестирование** — Claude Code CLI (e2e, регресс, отчёт)
7. **Внедрение** — merge + deploy (CI или ручной)
Пропущен на пилоте: Дизайн (UI-макеты пока ручные).
## 6. Quality Gates
| QG | Между | Что проверяет | Как |
|----|-------|---------------|-----|
| QG-0 | Постановка → Анализ | title + description заполнены | Orchestrator (webhook) |
| QG-1 | Анализ → Архитектура | ТЗ/BRD/AC есть + :approved: от Славы | Orchestrator (файл + Plane API) |
| QG-2 | Архитектура → Разработка | ADR есть, req-coverage, диаграммы рендерятся | Orchestrator (lint-adr.sh) |
| QG-4 | Разработка → Review | CI зелёный (lint + test + build) | Gitea Actions → webhook |
| QG-5 | Review → Тестирование | Review approve + 0 unresolved | Orchestrator (Gitea API) |
| QG-6 | Тестирование → Внедрение | Все тесты зелёные, test-report создан | Orchestrator |
| QG-7 | Merge → Done | Deploy smoke OK + :approved: | Orchestrator |
## 7. Инфраструктура (что нужно поднять)
| Компонент | Статус | Действие |
|-----------|--------|----------|
| Plane | ✅ Работает | Настроить webhooks, лейблы, custom fields |
| Gitea | ✅ Работает | Создать репо Enduro Trails, настроить Actions, branch protection |
| Node.js на mva154 | ❌ Нет | Установить (для Claude Code CLI) |
| Claude Code CLI | ❌ Нет | npm install -g, авторизовать через Max |
| Orchestrator | ❌ Нет | Написать (FastAPI, ~500 строк), задеплоить в Docker |
| Gitea Actions runner | ❓ Проверить | Нужен для CI |
| Git repo Enduro Trails | ❌ Нет | git init, структура по канону, push в Gitea |
## 8. Бюджет и ограничения
**LLM:**
- Claude Max подписка ($100/мес) — для Claude Code CLI
- Vibecode — для Стрим (уже работает)
- Целевой бюджет: ≤ $15/задача
**Инфра:**
- Всё на mva154 (уже оплачен)
- Нет дополнительных серверов
**Ограничения:**
- Claude Code CLI: 5-часовое скользящее окно rate limit
- Один исполнитель одновременно (нет параллельных Claude Code сессий на одном аккаунте)
- Gitea Actions — нужно проверить, настроен ли runner
## 9. Риски
| Риск | Влияние | Вероятность | Митигация |
|------|---------|-------------|-----------|
| Claude Code CLI rate limit | Задачи встают в очередь | Средняя | Очередь в Orchestrator, приоритизация |
| Claude Code CLI не справляется с задачей | Код не проходит QG | Средняя | Retry (≤3), потом эскалация к Славе |
| Orchestrator падает | Конвейер стоит | Низкая | Docker restart policy, healthcheck |
| Gitea Actions не работает | Нет CI | Средняя | Проверить на старте, альтернатива — скрипт |
## 10. План запуска (3 недели)
**Неделя 1: Инфраструктура**
- [ ] Node.js на mva154
- [ ] Claude Code CLI установлен и авторизован
- [ ] Git repo Enduro Trails в Gitea (структура по канону)
- [ ] Gitea Actions runner работает
- [ ] Базовый CI (lint + build)
**Неделя 2: Orchestrator + интеграции**
- [ ] Orchestrator (FastAPI) написан и задеплоен
- [ ] Webhooks: Plane → Orchestrator, Gitea → Orchestrator
- [ ] Plane: лейблы, шаблоны подзадач
- [ ] Тест: ручной прогон одной задачи через конвейер
**Неделя 3: Пилот**
- [ ] Первая реальная фича через полный конвейер
- [ ] Метрики: lead time, cost, intervention rate
- [ ] Ретроспектива, корректировка
## 11. Definition of Done (BRD)
- [ ] Слава подтвердил scope и метрики
- [ ] Архитектура согласована
- [ ] План запуска реалистичен
- [ ] Риски приемлемы