Files
wiki/memory/2026-06-01.md
2026-06-01 20:20:01 +03:00

284 lines
18 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.
# 2026-06-01
## Orchestrator: Полная интеграция с Plane
### Что сделано
- Написано ТЗ для Dev-агента: `tasks/multi-agent/DEV_TASK_PLANE_FULL_INTEGRATION.md` (12 задач)
- Dev-агент реализовал все 12 пунктов, acceptance checks пройдены
- Обновлена документация: `ORCHESTRATOR_DOCS.md` (полностью переписана)
- Обновлена таблица расхождений: `PROPOSAL_VS_REALITY.md` (18/33 = 55% done)
### Реализованные фичи (Plane integration)
- 8 статусов Issue: Backlog, Todo, In Progress, Needs Input, In Review, Blocked, Done, Cancelled
- Analyst questions flow: 01-questions.md → Needs Input → ответ Славы → relaunch (макс 3 раунда)
- :rejected: с причиной + relaunch analyst / rollback
- :approved: → In Progress → advance
- Tester FAIL → developer retry (до 3 раз → Blocked)
- Deploy FAIL → Blocked + rollback + notification
- Architect conflict (10-conflict.md) → rollback to analysis
- QG-0 при создании Issue (title 5-80, description ≥2 предложений)
- Ссылки в комментариях Plane (branch URL + PR link)
### Модели агентов
- Сейчас все на `claude-sonnet-4-6`
- В контейнере доступен `claude-opus-4-7` (подписка Max 5x)
- Слава спросил про переключение Architect/Reviewer на Opus — ждёт подтверждения
- Нужно добавить `--model opus` в launcher.py для architect и reviewer
### Оставшиеся TODO (🟡)
- Architect/Reviewer на Opus (ждёт подтверждения Славы)
- E2E тесты (Playwright)
- Event dedup (idempotency)
- Budget tracking
- Test/prod environments split
# 2026-06-01
## Orchestrator: Полная интеграция с Plane
### Что сделано
- Написано ТЗ для Dev-агента: `tasks/multi-agent/DEV_TASK_PLANE_FULL_INTEGRATION.md` (12 задач)
- Dev-агент реализовал все 12 пунктов, acceptance checks пройдены
- Обновлена документация: `ORCHESTRATOR_DOCS.md` (полностью переписана)
- Обновлена таблица расхождений: `PROPOSAL_VS_REALITY.md` (18/33 = 55% done)
### Реализованные фичи (Plane integration)
- 8 статусов Issue: Backlog, Todo, In Progress, Needs Input, In Review, Blocked, Done, Cancelled
- Analyst questions flow: 01-questions.md → Needs Input → ответ Славы → relaunch (макс 3 раунда)
- :rejected: с причиной + relaunch analyst / rollback
- :approved: → In Progress → advance
- Tester FAIL → developer retry (до 3 раз → Blocked)
- Deploy FAIL → Blocked + rollback + notification
- Architect conflict (10-conflict.md) → rollback to analysis
- QG-0 при создании Issue (title 5-80, description ≥2 предложений)
- Ссылки в комментариях Plane (branch URL + PR link)
### Модели агентов — обновлено
- **Architect и Reviewer переключены на Opus** (claude-opus-4-7) — подтверждено Славой
- Analyst, Developer, Tester, Deployer — остаются на Sonnet (claude-sonnet-4-6)
- Добавлено поле `model` в AGENT_CONFIGS + `--model` в команду запуска launcher.py
- Контейнер пересобран и задеплоен
### Оставшиеся TODO (🟡)
- ~~Architect/Reviewer на Opus~~ ✅ сделано
- E2E тесты (Playwright)
- Event dedup (idempotency)
- Budget tracking
- Test/prod environments split
### Баги
#### 🐛 Plane comment webhook не доходит до orchestrator'а
- **Симптом:** Слава написал `:approved:` в Plane, orchestrator не получил webhook, pipeline не продвинулся
- **Контекст:** webhook `work_item.created` работает (Issue создание → analyst запуск сработал), а `comment.created` — нет
- **Workaround:** вручную advance через python3 в контейнере
- **Гипотезы:**
- Webhook URL в Plane настроен только на `work_item.created`, не на comments
- Plane шлёт comment webhook на другой endpoint
- Webhook secret mismatch для comment events
- **Приоритет:** 🔴 HIGH (без этого Слава не может approve'ить через Plane)
- **Статус:** не починен, нужно разобраться
#### 🐛 Claude CLI зависает при rate limit (Max 5x)
- **Симптом:** run 35, 36 зависли — процесс не стартовал, лог пустой (только git output)
- **Причина:** rate limit после run 34 (Opus, 9 мин работы)
- **Фикс:** добавлен startup timeout 120 сек + kill + Telegram уведомление (задеплоен 01.06)
- **Статус:** ✅ починен
#### 🐛 Analyst не использовал Write tool (run 34)
- **Симптом:** analyst вывел артефакты в stdout, файлы на диске не создал
- **Причина:** в prompt не было явной инструкции использовать Write tool
- **Фикс:** добавлен раздел "КРИТИЧЕСКИ ВАЖНО: Используй Write tool!" в analyst.md (merged в main)
- **Статус:** ✅ починен
### Изменения модели
- Analyst: opus → sonnet (вернули обратно, экономия лимитов Max 5x)
- Architect: opus (оставили)
- Reviewer: opus (оставили)
### ET-008: GPS-треки с публичных платформ
- Issue создан в Plane (id: 020811f2-eaf0-434e-8257-f5e0d141274b)
- Sequence: ET-008 (в Plane отображается как #4)
- Branch: feature/ET-008-gps
- Analyst завершён (v2, артефакты запушены)
- Слава approve'нул → architect запущен (run_id=38, Opus)
- Pipeline: analysis ✅ → architecture ⏳ → development → review → testing → deploy → done
# 2026-06-01
## Orchestrator: Полная интеграция с Plane
### Что сделано
- Написано ТЗ для Dev-агента: `tasks/multi-agent/DEV_TASK_PLANE_FULL_INTEGRATION.md` (12 задач)
- Dev-агент реализовал все 12 пунктов, acceptance checks пройдены
- Обновлена документация: `ORCHESTRATOR_DOCS.md` (полностью переписана)
- Обновлена таблица расхождений: `PROPOSAL_VS_REALITY.md` (18/33 = 55% done)
### Реализованные фичи (Plane integration)
- 8 статусов Issue: Backlog, Todo, In Progress, Needs Input, In Review, Blocked, Done, Cancelled
- Analyst questions flow: 01-questions.md → Needs Input → ответ Славы → relaunch (макс 3 раунда)
- :rejected: с причиной + relaunch analyst / rollback
- :approved: → In Progress → advance
- Tester FAIL → developer retry (до 3 раз → Blocked)
- Deploy FAIL → Blocked + rollback + notification
- Architect conflict (10-conflict.md) → rollback to analysis
- QG-0 при создании Issue (title 5-80, description ≥2 предложений)
- Ссылки в комментариях Plane (branch URL + PR link)
### Модели агентов — обновлено
- **Architect и Reviewer переключены на Opus** (claude-opus-4-7) — подтверждено Славой
- **Analyst возвращён на Sonnet** (01.06 — экономия лимитов Max 5x)
- Developer, Tester, Deployer — Sonnet (claude-sonnet-4-6)
- Добавлено поле `model` в AGENT_CONFIGS + `--model` в команду запуска launcher.py
- Контейнер пересобран и задеплоен
### Оставшиеся TODO (🟡)
- E2E тесты (Playwright)
- Event dedup (idempotency)
- Budget tracking
- Test/prod environments split
### Баги
#### 🐛 Plane comment webhook не доходит до orchestrator'а
- **Симптом:** Слава написал `:approved:` в Plane, orchestrator не получил webhook, pipeline не продвинулся
- **Контекст:** webhook `work_item.created` работает (Issue создание → analyst запуск сработал), а `comment.created` — нет
- **Workaround:** вручную advance через python3 в контейнере
- **Гипотезы:**
- Webhook URL в Plane настроен только на `work_item.created`, не на comments
- Plane шлёт comment webhook на другой endpoint
- Webhook secret mismatch для comment events
- **Приоритет:** 🔴 HIGH (без этого Слава не может approve'ить через Plane)
- **Статус:** не починен, нужно разобраться после ET-008
#### 🐛 Claude CLI зависает при rate limit (Max 5x)
- **Симптом:** run 35, 36 зависли — процесс не стартовал, лог пустой (только git output)
- **Причина:** rate limit после run 34 (Opus, 9 мин работы)
- **Фикс:** добавлен startup timeout 120 сек + kill + Telegram уведомление (задеплоен 01.06)
- **Статус:** ✅ починен
#### 🐛 Analyst не использовал Write tool (run 34)
- **Симптом:** analyst вывел артефакты в stdout, файлы на диске не создал
- **Причина:** в prompt не было явной инструкции использовать Write tool
- **Фикс:** добавлен раздел "КРИТИЧЕСКИ ВАЖНО: Используй Write tool!" в analyst.md (merged в main)
- **Статус:** ✅ починен
#### 🐛 Popen launcher зависает (не rate limit)
- **Симптом:** architect run_id=38 завис — лог пустой, CLI при ручном запуске работает
- **Причина:** вероятно shell expansion `$(cat .task.md)` ломается в контексте Popen
- **Workaround:** ручной запуск через `docker exec -e HOME=/home/slin`
- **Статус:** нужно разобраться с launcher.py (как именно формируется cmd)
### Изменения модели (01.06.2026)
- Analyst: opus → sonnet (вернули обратно, экономия лимитов Max 5x)
- Architect: sonnet → opus (оставили)
- Reviewer: sonnet → opus (оставили)
### ET-008: GPS-треки с публичных платформ
- Issue создан в Plane (id: 020811f2-eaf0-434e-8257-f5e0d141274b)
- Sequence: ET-008 (в Plane отображается как #4)
- Branch: feature/ET-008-gps
- Analyst завершён v2 (артефакты запушены, 6 файлов в docs/work-items/ET-008/)
- Слава approve'нул → architect запущен (run_id=38, Opus)
- **Pipeline прогресс (01.06 ~12:00 UTC):**
- ✅ analysis (run_id=37, sonnet)
- ✅ architecture (run_id=38/39, opus) — 7 ADR, infra/data requirements, tech risks
- ✅ development (run_id=40, sonnet) — backend + frontend + 48 тестов
- ✅ review (run_id=41, opus) — нашёл 1xP0, 4xP1 → developer починил
- ⏳ testing — rate limit Sonnet, ждём сброса ~13:40 UTC
- ⬜ deploy
- Источники MVP: OSM GPS Traces + EnduroRussia + ttrails (Wikiloc/Strava/Komoot — out of scope, OAuth/платный API)
- Серверный pipeline gps_collect.py по cron, отдельная БД gps_tracks.sqlite
- Дедупликация: bbox-bucket + length + date
- Визуализация: vector tiles на z8-11, GeoJSON на z12+
# 2026-06-01
## Orchestrator: Полная интеграция с Plane
### Что сделано
- Написано ТЗ для Dev-агента: `tasks/multi-agent/DEV_TASK_PLANE_FULL_INTEGRATION.md` (12 задач)
- Dev-агент реализовал все 12 пунктов, acceptance checks пройдены
- Обновлена документация: `ORCHESTRATOR_DOCS.md` (полностью переписана)
- Обновлена таблица расхождений: `PROPOSAL_VS_REALITY.md` (18/33 = 55% done)
### Реализованные фичи (Plane integration)
- 8 статусов Issue: Backlog, Todo, In Progress, Needs Input, In Review, Blocked, Done, Cancelled
- Analyst questions flow: 01-questions.md → Needs Input → ответ Славы → relaunch (макс 3 раунда)
- :rejected: с причиной + relaunch analyst / rollback
- :approved: → In Progress → advance
- Tester FAIL → developer retry (до 3 раз → Blocked)
- Deploy FAIL → Blocked + rollback + notification
- Architect conflict (10-conflict.md) → rollback to analysis
- QG-0 при создании Issue (title 5-80, description ≥2 предложений)
- Ссылки в комментариях Plane (branch URL + PR link)
### Модели агентов — обновлено
- **Architect и Reviewer переключены на Opus** (claude-opus-4-7) — подтверждено Славой
- **Analyst возвращён на Sonnet** (01.06 — экономия лимитов Max 5x)
- Developer, Tester, Deployer — Sonnet (claude-sonnet-4-6)
- Добавлено поле `model` в AGENT_CONFIGS + `--model` в команду запуска launcher.py
- Контейнер пересобран и задеплоен
### Оставшиеся TODO (🟡)
- E2E тесты (Playwright)
- Event dedup (idempotency)
- Budget tracking
- Test/prod environments split
### Баги
#### 🐛 Plane comment webhook — ПОЧИНЕН (01.06 ~16:00 UTC)
- **Симптом:** Слава написал `:approved:` в Plane, orchestrator не получил webhook
- **Причина:** Plane шлёт comment event с полем `"issue": "<uuid>"`, а код искал `"work_item_id"` и `"issue_id"`
- **Фикс:** fallback chain `work_item_id → issue_id → issue` + читать `comment_stripped` первым
- **Файл:** `src/webhooks/plane.py` — функция `handle_comment`
- **Коммит:** `e27e489` fix(plane-webhook): read issue/comment_stripped fields from Plane comment payload
- **Статус:** ✅ починен, протестирован
#### 🐛 Claude CLI зависает при rate limit (Max 5x)
- **Симптом:** run 35, 36 зависли — процесс не стартовал, лог пустой (только git output)
- **Причина:** rate limit после run 34 (Opus, 9 мин работы)
- **Фикс:** добавлен startup timeout 120 сек + kill + Telegram уведомление (задеплоен 01.06)
- **Статус:** ✅ починен
#### 🐛 Analyst не использовал Write tool (run 34)
- **Симптом:** analyst вывел артефакты в stdout, файлы на диске не создал
- **Причина:** в prompt не было явной инструкции использовать Write tool
- **Фикс:** добавлен раздел "КРИТИЧЕСКИ ВАЖНО: Используй Write tool!" в analyst.md (merged в main)
- **Статус:** ✅ починен
#### 🐛 Popen launcher зависает (не rate limit)
- **Симптом:** architect run_id=38 завис — лог пустой, CLI при ручном запуске работает
- **Причина:** вероятно shell expansion `$(cat .task.md)` ломается в контексте Popen
- **Workaround:** ручной запуск через `docker exec -e HOME=/home/slin`
- **Статус:** нужно разобраться с launcher.py (как именно формируется cmd)
### Изменения модели (01.06.2026)
- Analyst: opus → sonnet (вернули обратно, экономия лимитов Max 5x)
- Architect: sonnet → opus (оставили)
- Reviewer: sonnet → opus (оставили)
### ET-008: GPS-треки с публичных платформ
- Issue создан в Plane (id: 020811f2-eaf0-434e-8257-f5e0d141274b)
- Sequence: ET-008 (в Plane отображается как #4)
- Branch: feature/ET-008-gps
- Analyst завершён v2 (артефакты запушены, 6 файлов в docs/work-items/ET-008/)
- Слава approve'нул → architect запущен (run_id=38, Opus)
- **Pipeline прогресс (01.06 финал ~17:00 UTC):**
- ✅ analysis (run_id=37, sonnet)
- ✅ architecture (run_id=38/39, opus) — 7 ADR, infra/data requirements, tech risks
- ✅ development (run_id=40, sonnet) — backend + frontend + 48 тестов
- ✅ review (run_id=41, opus) — нашёл 1xP0, 4xP1 → developer починил
- ✅ testing (run_id=42, sonnet) — PASS
- ✅ deploy (deployer) — merge PR → tag → deploy → smoke ✓
- ✅ done — Issue закрыт в Plane
- Источники MVP: OSM GPS Traces + EnduroRussia + ttrails (Wikiloc/Strava/Komoot — out of scope)
- Серверный pipeline gps_collect.py по cron, отдельная БД gps_tracks.sqlite
- Дедупликация: bbox-bucket + length + date
- Визуализация: vector tiles на z8-11, GeoJSON на z12+
- **Pending:** `docker compose up -d gps-collector` на mva154 (ждёт Славу)
### Итог дня
- 3 бага починены (webhook, rate limit timeout, analyst Write tool)
- ET-008 прошёл полный pipeline analyst→architect→developer→reviewer→tester→deployer→done
- Orchestrator документация актуализирована
- MEMORY.md обновлена