Files
wiki/tasks/orchestrator/PROPOSAL_VS_REALITY.md
2026-06-02 21:00:01 +03:00

75 lines
7.1 KiB
Markdown
Raw Permalink 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.
# Сводная таблица расхождений: Proposal v1 vs Реализация
## Статус: 2026-06-01 (обновлено после полной интеграции Plane)
| # | Аспект | Proposal v1 | Реализация (факт) | Критичность | Статус |
|---|--------|-------------|-------------------|-------------|--------|
| **АГЕНТЫ** |||||
| 1 | Deployer | Полноценный агент: merge → tag → deploy → smoke → rollback | ✅ Deployer в AGENT_CONFIGS + stages.py. Prompt: merge → tag → deploy → healthcheck → smoke → rollback | ✅ DONE | Реализовано 01.06 |
| 2 | Designer | Отдельный агент между Architect и Developer (макеты, states, a11y) | Не реализован. Этап пропускается | 🟢 LOW | Skip (ui_affected=false). Добавить при UI-heavy задаче |
| 3 | Модели агентов | Analyst: Sonnet, Architect: Opus, Developer: Sonnet/GLM, Reviewer: Opus, Tester: Sonnet | Все на `claude-sonnet-4-6` | 🟡 MED | TODO: Architect/Reviewer на Opus |
| **QUALITY GATES** |||||
| 4 | QG-0 (Inception→Analysis) | Валидация: title 5-80, description ≥3 предложений, priority | ✅ Валидация title 5-80, description ≥2 предложений. При fail → Blocked + комментарий | ✅ DONE | Реализовано 01.06 |
| 5 | QG-1 (Analysis→Architecture) | `lint-spec.sh` + `lint-test-plan.sh` + `:approved:` | Проверка файлов + `:approved:` + In Review статус | 🟢 LOW | Lint-скрипты — backlog |
| 6 | QG-2 (Architecture→Development) | `lint-adr.sh` + req-coverage | `check_architecture_done` (файлы существуют) + conflict detection | 🟢 LOW | Lint — backlog |
| 7 | QG-4 (Development→Review) | CI: lint+type+unit+integration+build+coverage | `check_ci_green` через Gitea API | ✅ OK | Работает |
| 8 | QG-5 (Review→Testing) | Gitea PR review APPROVED + 0 unresolved | `check_reviewer_verdict` — читает `12-review.md` | 🟢 LOW | Оба подхода рабочие |
| 9 | QG-6 (Testing→Deploy) | CI на preview: e2e + visual + a11y + perf | `check_tests_passed``13-test-report.md` с "PASS" | 🟡 MED | Нет Playwright/e2e |
| 10 | QG-7 (Deploy test→prod) | smoke + healthcheck + user `:approved:` | ✅ Deployer делает smoke + healthcheck. При fail → Blocked + rollback | ✅ DONE | Реализовано 01.06 |
| 11 | QG-final | uptime 10min + user `:final-approved:` | Нет | 🟢 LOW | Backlog |
| **GIT WORKFLOW** |||||
| 12 | Ветки | `feature/<plane-id>-<slug>` | `feature/ET-NNN-<slug>` | ✅ OK | Работает |
| 13 | PR creation | Developer открывает PR через Forge MCP | `_ensure_pr()` после developer push | ✅ OK | Работает |
| 14 | PR merge | Deployer мержит после QG-6 | ✅ Deployer agent мержит PR | ✅ DONE | Реализовано 01.06 |
| 15 | Tags/semver | Deployer создаёт tag `vX.Y.Z` | ✅ В deployer prompt (semver patch) | ✅ DONE | В prompt deployer'а |
| 16 | Conventional commits | `feat(scope): описание` + `Refs: PROJ-NNN` | Частично (developer делает `feat(web): ...`) | 🟢 LOW | Добавить lint в CI |
| **PLANE INTEGRATION** |||||
| 17 | Подзадачи (7 subtasks) | Auto-create 7 подзадач при создании Feature | Нет. Одна задача, этапы через статусы + комментарии | 🟢 LOW | Backlog (статусы покрывают потребность) |
| 18 | Статусы | To Do → In Progress → Awaiting Approval → Done → Blocked | ✅ Backlog → Todo → In Progress → Needs Input → In Review → Blocked → Done | ✅ DONE | Реализовано 01.06 |
| 19 | Custom fields | `stage`, `agent_running`, `branch`, `pr_url` | Нет custom fields. Ссылки в комментариях | 🟢 LOW | Nice-to-have |
| 20 | Webhook events | `work_item.created`, `comment.created` | ✅ `work_item.created` (auto-init + QG-0) + `comment.created` (approve/reject/answer) | ✅ DONE | Реализовано 01.06 |
| 21 | Ссылки в комментариях | Branch URL, PR URL, артефакты | ✅ Branch + PR ссылки при переходах stage | ✅ DONE | Реализовано 01.06 |
| **ORCHESTRATOR** |||||
| 22 | Event journal (DB) | Postgres с полным журналом | SQLite с tasks + agent_runs + events | 🟢 LOW | SQLite достаточен |
| 23 | Idempotency | Повторный webhook → тот же результат | Частично (дубли комментариев возможны) | 🟡 MED | TODO: event dedup |
| 24 | Budget/kill-switch | `.openclaw/budget.yaml` | Только timeout watchdog (30 min) | 🟡 MED | TODO |
| 25 | Retry/escalation | 3 retry developer, escalation | ✅ 3 retry developer + tester fail → developer retry + Blocked при исчерпании | ✅ DONE | Реализовано 01.06 |
| 26 | Analyst questions | Analyst задаёт вопросы → ждёт ответа | ✅ 01-questions.md → Needs Input → relaunch (до 3 раундов) | ✅ DONE | Реализовано 01.06 |
| 27 | :rejected: с причиной | Откат + relaunch с контекстом | ✅ Парсинг причины + relaunch analyst/rollback | ✅ DONE | Реализовано 01.06 |
| **DEPLOY** |||||
| 28 | Environments | test + prod (два этапа) | Один merge в main = deploy | 🟡 MED | TODO: test/prod split |
| 29 | Rollback | Deployer откатывает при failed smoke | ✅ Deploy fail → Blocked + rollback + notification | ✅ DONE | Реализовано 01.06 |
| 30 | CHANGELOG.md | Deployer обновляет при merge | В deployer prompt (инструкция есть) | ✅ DONE | В prompt |
| **MONITORING** |||||
| 31 | Telegram notifications | На каждом переходе + ошибках | ✅ Реализовано | ✅ OK | Работает |
| 32 | Plane comments | На каждом переходе + ошибках + ссылки | ✅ Реализовано | ✅ DONE | Реализовано 01.06 |
| 33 | Метрики (время/стоимость) | Дашборд | Нет | 🟢 LOW | Backlog |
---
## Итого
- **✅ DONE:** 18 из 33 пунктов (55%)
- **🟡 MED (TODO):** 6 пунктов
- **🟢 LOW (Backlog):** 9 пунктов
### Оставшиеся TODO (🟡)
| # | Что | Приоритет |
|---|-----|-----------|
| 3 | Architect/Reviewer на Opus | Следующая итерация |
| 9 | E2E тесты (Playwright) | Когда будет UI-heavy задача |
| 23 | Event dedup (idempotency) | Следующая итерация |
| 24 | Budget tracking | Следующая итерация |
| 28 | Test/prod environments | Когда будет prod |
### Backlog (🟢)
- Designer agent
- Lint-скрипты для QG
- Plane подзадачи (7 subtasks)
- Custom fields в Plane
- Метрики/дашборд
- QG-final (uptime 10min)
- Conventional commits lint