12 KiB
12 KiB
Статус проекта: Мультиагентная разработка ПО
Дата ревью: 2026-05-21
Ревьюер: Стрим
Общая зрелость
| Фаза (из BRD) | Статус | Комментарий |
|---|---|---|
| Фаза 0: Инфраструктура | ✅ Завершена | Всё установлено и работает |
| Фаза 1: Ручной конвейер | ✅ Завершена | ET-001 прошёл полный цикл |
| Фаза 2: Orchestrator MVP | ✅ Завершена (21.05) | QG реальные, автозапуск Claude CLI работает, 27 тестов green |
| Фаза 3: Plane интеграция | 🟡 В работе (21.05) | Webhook handlers готовы, настройка webhooks в Plane/Gitea UI — в процессе |
| Фаза 4: Полный конвейер | ❌ Не начата | — |
| Фаза 5: Оптимизация | ❌ Не начата | — |
Инфраструктура на mva154 (82.22.50.71)
Контейнеры (docker ps на 21.05.2026)
| Контейнер | Образ | Статус | Порт |
|---|---|---|---|
orchestrator |
orchestrator-orchestrator (self-built) | Up 46h | 127.0.0.1:8500 |
openclaw-gateway |
ghcr.io/openclaw/openclaw:latest | Up 15h (healthy) | 127.0.0.1:18789 |
enduro-trails-app-1 |
enduro-trails-app (self-built) | Up 5d (unhealthy) | 0.0.0.0:5558 |
gitea |
gitea/gitea:latest | Up 2d | 127.0.0.1:3000, 0.0.0.0:2222 |
claude-cli-proxy |
eceasy/cli-proxy-api:latest | Up 6d | 127.0.0.1:8317 |
xray |
ghcr.io/xtls/xray-core:latest | Up 2w | — |
plane-app-proxy-1 |
makeplane/plane-proxy:stable | Up 5d | 0.0.0.0:8091, 0.0.0.0:8443 |
plane-app-live-1 |
makeplane/plane-live:stable | Up 5d | 3000 (internal) |
plane-app-space-1 |
makeplane/plane-space:stable | Up 5d (healthy) | 3000 (internal) |
plane-app-admin-1 |
makeplane/plane-admin:stable | Up 5d (healthy) | 3000 (internal) |
plane-app-web-1 |
makeplane/plane-frontend:stable | Up 5d (healthy) | 3000 (internal) |
plane-app-beat-worker-1 |
makeplane/plane-backend:stable | Up 5d | 8000 (internal) |
plane-app-worker-1 |
makeplane/plane-backend:stable | Up 5d | 8000 (internal) |
plane-app-api-1 |
makeplane/plane-backend:stable | Up 5d | 8000 (internal) |
plane-app-plane-db-1 |
postgres:15.7-alpine | Up 5d | 5432 (internal) |
plane-app-plane-mq-1 |
rabbitmq:3.13.6-management-alpine | Up 5d | 5672 (internal) |
plane-app-plane-minio-1 |
minio/minio:latest | Up 5d | 9000 (internal) |
plane-app-plane-redis-1 |
valkey/valkey:7.2.11-alpine | Up 2w | 6379 (internal) |
Установленное ПО на хосте
| Компонент | Версия | Путь |
|---|---|---|
| Claude Code CLI | 2.1.142 | /usr/bin/claude |
| Node.js | v24.14.0 | — |
| Docker + Compose | — | — |
| Nginx | — | reverse proxy |
| Gitea Actions Runner | act_runner |
/home/slin/act_runner |
Директории на хосте
/home/slin/
├── openclaw/ # docker-compose.yml для OpenClaw + Xray
├── repos/
│ ├── enduro-trails/ # Пилотный проект (git repo)
│ └── orchestrator/ # Orchestrator (git repo)
├── gitea/ # docker-compose.yml для Gitea
├── gitea-data/ # Gitea data volume
├── plane-selfhost/ # Plane docker-compose
├── claude-cli-proxy/ # CLI proxy config
├── enduro-trails/ # Отдельная копия (app container)
├── act_runner/ # Gitea Actions runner binary
├── act_runner_data/ # Runner data
├── n8n/ # n8n (не запущен?)
├── duckdns/ # DuckDNS update script
└── backups/ # Бэкапы
Orchestrator — детальный статус
Репо: /home/slin/repos/orchestrator/
Контейнер: orchestrator (порт 8500)
Конфиг: .env (ORCH_PLANE_API_URL, ORCH_GITEA_URL, ORCH_CLAUDE_BIN, ORCH_REPOS_DIR)
Что работает
- ✅ FastAPI app запущен,
/healthотвечает 200 - ✅
/webhook/plane— принимает events, пишет в SQLite - ✅
/webhook/gitea— принимает events, пишет в SQLite - ✅
/status— показывает active tasks - ✅ SQLite БД инициализирована (tables: events, tasks, agent_runs)
- ✅ AgentLauncher — класс написан, конфиги 5 агентов определены
Что реализовано (21.05.2026 — DEV_TASK_ORCHESTRATOR_QG)
- ✅
qg/checks.py— 5 реальных QG-проверок (filesystem + Gitea API) - ✅
handle_work_item_created— создаёт task + ветку в Gitea + папку docs - ✅
handle_comment—:approved:→ QG check → advance stage → launch agent - ✅
handle_push/handle_pr/handle_ci_status— полная обработка - ✅ AgentLauncher — Claude CLI запускается из контейнера (binary mount)
- ✅ Stage machine (
src/stages.py) — конечный автомат 8 стадий - ✅ Notifications (
src/notifications.py) — structured logging - ✅ 27 тестов — all green
- ✅ Nginx proxy_pass
/orchestrator/→ localhost:8500 (уже был настроен) - 🟡 Plane webhooks → Orchestrator — настройка в процессе
- 🟡 Gitea webhooks → Orchestrator — настройка в процессе
Данные в БД (на 21.05.2026)
- events: 15 (4 старых + 11 от smoke tests)
- tasks: 6 (2 старых + 4 smoke tests: ET-001..ET-004)
- agent_runs: 3 (2x architect, 1x developer — реальные запуски Claude CLI)
Репозиторий enduro-trails — детальный статус
Репо: /home/slin/repos/enduro-trails/ (Gitea: admin/enduro-trails)
Ветки: main, feature/ET-001-barriers-footways, feature/ET-002-poi-toggle (active), feature/bootstrap, feature/migrate-prototype
Коммитов: 22
Структура (каноническая, по BRD)
enduro-trails/
├── CLAUDE.md ✅ Полный паспорт проекта
├── CHANGELOG.md ✅
├── Makefile ✅ (make dev/test/lint/build)
├── Dockerfile ✅
├── docker-compose.yml ✅
├── pyproject.toml ✅
├── run_architect.sh ✅ Скрипт ручного запуска
├── run_dev.sh ✅
├── run_review.sh ✅
├── run_test.sh ✅
├── .openclaw/agents/
│ ├── architect.md ✅ System prompt (Opus)
│ ├── developer.md ✅ System prompt (Sonnet)
│ ├── reviewer.md ✅
│ ├── tester.md ✅
│ └── deployer.md ✅
├── docs/work-items/
│ ├── ET-001/ ✅ ПОЛНЫЙ ЦИКЛ (merged)
│ │ ├── 00-business-request.md
│ │ ├── 01-brd.md
│ │ ├── 02-trz.md
│ │ ├── 03-acceptance-criteria.md
│ │ ├── 04-test-plan.yaml
│ │ ├── 06-adr/
│ │ ├── 07-infra-requirements.md
│ │ ├── 12-review.md ✅ APPROVED
│ │ └── 13-test-report.md ✅ PASS
│ └── ET-002/ 🟡 В РАБОТЕ (analysis done, approved)
│ ├── 00-business-request.md
│ ├── 01-brd.md
│ ├── 02-trz.md
│ ├── 03-acceptance-criteria.md
│ └── 04-test-plan.yaml
├── src/ ✅
├── tests/ ✅
├── scripts/ ✅
├── migrations/ ✅
└── infra/ ✅
Work Items — прогресс
| ID | Название | Этап | Статус |
|---|---|---|---|
| ET-001 | Исключить шлагбаумы и тротуары из OSRM | Done | ✅ Полный цикл: BRD → ADR → код → review (APPROVED) → test (PASS) → merged |
| ET-002 | Чекбокс POI в попапе рельефа | Analysis → approved | 🟡 BRD/ТЗ/AC/TestPlan готовы, status=approved, ветка создана, ждёт Architect |
Git history (последние коммиты)
73c9dc4 docs(ET-002): status → approved
f1f4d5f docs(ET-002): BRD, ТЗ, AC, Test Plan
832099c docs: restructure phases
f561c3b fix: switchMapStyle loads style as JSON
fdc9836 Merge PR #4: restore UI phase 5.4 + ET-001
8d36f38 fix: restore UI to phase 5.4
0d57e47 test(ET-001): test report — PASS
d171629 review(ET-001): code review — APPROVED
e263f84 feat(ET-001): implement barrier blocking and footway exclusion
c44dc5c arch(ET-001): ADR, infra requirements
Analyst agent (OpenClaw) — статус
Workspace: /home/node/.openclaw/workspace-analyst/
Что есть
- ✅ SOUL.md, IDENTITY.md, AGENTS.md, TOOLS.md, HEARTBEAT.md
- ✅ ET-002 артефакты (BRD, ТЗ, AC, test plan) — сгенерированы
- ✅ Workspace-state.json (OpenClaw знает о нём)
Что НЕ сделано
- ❌ Не зарегистрирован в
openclaw.json→agents.list[] - ❌ Нет Telegram binding (не получает сообщения напрямую)
- ❌ Нет отдельного Telegram-бота/группы
- ❌ Нет доступа к Plane API (PLANE_API_TOKEN не в env)
- ❌ Нет доступа к Gitea (SSH key / token)
Plane — статус
URL: https://plane.mva154.duckdns.org (порт 8091/8443)
Workspace slug: ag_proj
Что есть
- ✅ Plane развёрнут и работает (все контейнеры healthy)
- ✅ Workspace создан
Что НЕ сделано
- ❌ Webhooks → Orchestrator не настроены
- ❌ Custom fields (qg_status, stage) не созданы
- ❌ Лейблы (stage:, back-to:, escalation:*) не созданы
- ❌ Шаблон Work Item с подзадачами не создан
Gitea — статус
URL: https://git.mva154.duckdns.org (порт 3000 internal)
Домен: git.mva154.duckdns.org
Что есть
- ✅ Gitea работает
- ✅ Репо
enduro-trailsс полной структурой - ✅ Репо
orchestrator - ✅ CI workflow (Gitea Actions) — self-hosted runner (
act_runner) - ✅ Service account
claude-bot(предположительно — коммиты от агентов)
Что НЕ проверено / не сделано
- ❓ Branch protection на main (require PR, require CI green)
- ❓ Gitea Actions runner — работает ли сейчас?
- ❌ Webhooks → Orchestrator не настроены в Gitea UI
Доступ к mva154
Из OpenClaw контейнера:
/home/node/.openclaw/skills/installer/scripts/ssh_exec.sh --host mva154 --cmd "<command>"
- Тип:
ssh-direct - Хост:
82.22.50.71:22 - User:
slin - Auth: password (
MVA154_PASSWORDиз .env) - Sudo: yes (
MVA154_SUDO_PASS)
Следующие шаги (приоритет)
- Дотянуть Orchestrator — реализовать QG-проверки и автозапуск агентов (заглушки → реальная логика)
- Настроить webhooks — Plane → Orchestrator, Gitea → Orchestrator
- Nginx proxy — добавить
/orchestrator/location - Зарегистрировать Analyst в openclaw.json + binding
- Прогнать ET-002 через автоматический пайплайн (первый автоматический запуск)
Документация проекта
| Файл | Описание |
|---|---|
tasks/multi-agent/BRD.md |
Полный BRD с архитектурой, QG, roadmap |
tasks/multi-agent/BACKLOG.md |
Бэклог + решения по Analyst |
tasks/multi-agent/DEV_TASK_ORCHESTRATOR_MVP.md |
ТЗ для Dev-агента на Orchestrator |
tasks/multi-agent/STATUS.md |
Этот файл — актуальный статус |
tasks/multi-agent/proposal_v1/ |
Исходный proposal |
tasks/multi-agent/reports/ |
Отчёты Dev-агента |