auto-sync: 2026-06-04 02:20:01
This commit is contained in:
@@ -400,3 +400,33 @@ PR #12 (status-only verdict, баг3 эхо-самоудар) → PR #13 (баг
|
||||
- PR #16 баг5 make→pytest (merge main 994f73a, `fix(qg): run pytest directly instead of make`)
|
||||
- PR #17 баг6 drop local QG (commit e15d339, merge main 7922f6b, `fix(qg): use check_ci_green instead of local tests on development stage`)
|
||||
- PR #18 баг7 CI-fail retry (commit 3a285de, merge main a0621b9, `fix(ci): bounce task back to developer on red CI (capped retries)`)
|
||||
|
||||
---
|
||||
|
||||
## 🏆 ИСТОРИЧЕСКОЕ: ET-011 прошёл ВЕСЬ конвейер автономно (03.06 ночь, 02:12)
|
||||
|
||||
**task 29 → stage `done`.** Первый в истории полный сквозной автономный прогон оркестратора с одного Approved Славы.
|
||||
|
||||
### Цепочка runs (все exit 0):
|
||||
```
|
||||
analyst(63) → architect(64) → developer(65)
|
||||
→ [красный CI E402] → developer retry(66) → reviewer(67)
|
||||
→ [reviewer request_changes] → developer(68) → reviewer(69) ✅APPROVED
|
||||
→ tester(70) ✅ → deployer(71) ✅ → DONE
|
||||
```
|
||||
|
||||
### Что отработало автономно (БЕЗ ручного касания после Approved):
|
||||
- **2 цикла самовосстановления:** (1) CI-retry баг 7 — красный CI E402 → developer сам поднял импорты + объявил deps в pyproject (commit 7d8407a3 `fix(ci): hoist imports to satisfy E402 + declare runtime/test deps`); (2) reviewer request_changes → ещё один developer-цикл (68→69).
|
||||
- CI позеленел полностью: lint/test/build × push+PR = success.
|
||||
- Конвейер сам: development→review→testing→deploy→done. Plane статусы синхронизировались.
|
||||
|
||||
### Итог: оркестратор сам пишет код, гоняет CI, чинит свои ошибки, ревьюит, тестирует, деплоит. С одного Approved.
|
||||
|
||||
### Вопрос Славы «почему 2 сообщения на deploy» — ОТВЕЧЕНО:
|
||||
- Это 2 РАЗНЫХ события (не дубль): `notify_stage_change` (deploy→done, смена СТАДИИ) + `notify_agent_finished` (deployer завершил 4 мин, exit 0). Приходят парой на каждом шаге. notifications.py:53 vs :71.
|
||||
- TODO-косметика на будущее: можно слить в одно сообщение на финальной стадии.
|
||||
|
||||
## Онтология обновлена (03.06, с ОК Славы)
|
||||
- Создан **Project `proj_orchestrator`** (status active, folder tasks/orchestrator/, doc ORCHESTRATOR_DOCS.md) — раньше проекта в графе НЕ БЫЛО вообще.
|
||||
- Баги 5/6/7 как **Task(status=done)** (типа Bug в схеме нет): task_orch_bug5/bug6/bug7, привязаны has_task к проекту. Детали PR/коммитов в description.
|
||||
- Правило подтверждено: баг = Task done (фикс), не отдельный тип.
|
||||
|
||||
@@ -152,3 +152,10 @@
|
||||
{"op":"create","entity":{"id":"task_karaoke_setup","type":"Task","properties":{"title":"Оформить проект Караоке-генератор","status":"open","project":"proj_karaoke","folder":"tasks/karaoke/TASKS/active/project-setup/","doc_path":"tasks/karaoke/TASKS/active/project-setup/TASK.md","description":"Создать структуру папок, PROJECT.md, TASK.md, обновить онтологию.","priority":"high"},"created":"2026-04-29T21:21:00Z"},"timestamp":"2026-04-29T21:21:00Z"}
|
||||
{"op":"create","entity":{"id":"proj_enduro_trails","type":"Project","properties":{"name":"Enduro Trails","status":"planning","folder":"tasks/enduro-trails/","doc_path":"tasks/enduro-trails/PROJECT.md","description":"OSM-карта с фокусом на грунтовые дороги для эндуро: роутинг с максимизацией грунтовок, визуализация рельефа, POI, поиск красивых маршрутов","start_date":"2026-05-02"},"created":"2026-05-02T03:51:00Z"},"timestamp":"2026-05-02T03:51:00Z"}
|
||||
{"op":"create","entity":{"id":"task_enduro_prototype","type":"Task","properties":{"title":"Прототип Enduro Trails на mva154","status":"open","project":"proj_enduro_trails","folder":"tasks/enduro-trails/TASKS/active/prototype-setup/","doc_path":"tasks/enduro-trails/TASKS/active/prototype-setup/TASK.md","description":"Настроить прототип на mva154: парсинг PBF (ЦФО+Чувашия), Spatialite, базовый рендеринг тайлов, веб-карта MapLibre GL","priority":"high"},"created":"2026-05-02T03:51:00Z"},"timestamp":"2026-05-02T03:51:00Z"}
|
||||
{"op": "create", "entity": {"id": "proj_orchestrator", "type": "Project", "properties": {"name": "Orchestrator Multi-Agent Pipeline", "status": "active", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "description": "\u0410\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u044b\u0439 multi-agent \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440: analysis\u2192architecture\u2192development\u2192review\u2192testing\u2192deploy\u2192done. \u0410\u0433\u0435\u043d\u0442\u044b analyst/architect/developer/reviewer/tester/deployer. \u0422\u0440\u0438\u0433\u0433\u0435\u0440 \u2014 \u0441\u0442\u0430\u0442\u0443\u0441 Plane Issue. QG-\u0433\u0435\u0439\u0442\u044b, self-recovery \u043d\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u043c CI. \u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442 \u043d\u0430 mva154, \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440 orchestrator:8500.", "start_date": "2026-05-31"}, "created": "2026-06-03T23:19:40.094782+00:00", "updated": "2026-06-03T23:19:40.094782+00:00"}, "timestamp": "2026-06-03T23:19:40.094782+00:00"}
|
||||
{"op": "create", "entity": {"id": "task_orch_bug5", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 5: check_tests_local \u0437\u043e\u0432\u0451\u0442 make \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043d\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #16 (commit 90c9ffe, merge 994f73a). QG check_tests_local \u0437\u043e\u0432\u0451\u0442 [make,test], \u043d\u043e make \u043d\u0435\u0442 \u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435 \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430. \u0424\u0438\u043a\u0441: \u043f\u0440\u044f\u043c\u043e\u0439 \u0432\u044b\u0437\u043e\u0432 python -m pytest ../../tests/ -v, cwd=<repo>/src/api (1:1 \u0441 Makefile \u0446\u0435\u043b\u044c\u044e test). make \u0432 Dockerfile \u041d\u0415 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u043b\u0438 \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u043d\u043e."}, "created": "2026-06-03T23:19:40.137632+00:00", "updated": "2026-06-03T23:19:40.137632+00:00"}, "timestamp": "2026-06-03T23:19:40.137632+00:00"}
|
||||
{"op": "create", "entity": {"id": "task_orch_bug6", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 6: \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0439 QG \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043b CI \u0438 \u0433\u043e\u043d\u044f\u043b \u0442\u0435\u0441\u0442\u044b \u0431\u0435\u0437 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0435\u043a\u0442\u0430", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #17 (commit e15d339, merge 7922f6b). check_tests_local \u2014 \u043b\u0435\u0433\u0430\u0441\u0438-\u0437\u0430\u0442\u044b\u0447\u043a\u0430 \u044d\u043f\u043e\u0445\u0438 S-1 (CI \u043d\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u2192always false). CI \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d (.gitea/workflows/ci.yml, \u0433\u043e\u043d\u044f\u0435\u0442 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u043c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0438 \u0441 pip install .[dev]). \u0424\u0438\u043a\u0441: QG \u0441\u0442\u0430\u0434\u0438\u0438 development check_tests_local\u2192check_ci_green. check_tests_local \u041d\u0415 \u0443\u0434\u0430\u043b\u0451\u043d, \u043f\u043e\u043c\u0435\u0447\u0435\u043d DEPRECATED, \u0432 QG_CHECKS \u043d\u0435 wired. CI-failure \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f. \u041f\u0440\u0438\u043d\u0446\u0438\u043f: \u043e\u0440\u043a\u0435\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u041d\u0415 \u0433\u043e\u043d\u044f\u0435\u0442 \u0442\u0435\u0441\u0442\u044b \u0447\u0443\u0436\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0441\u0432\u043e\u0451\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u0435."}, "created": "2026-06-03T23:19:40.171469+00:00", "updated": "2026-06-03T23:19:40.171469+00:00"}, "timestamp": "2026-06-03T23:19:40.171469+00:00"}
|
||||
{"op": "create", "entity": {"id": "task_orch_bug7", "type": "Task", "properties": {"title": "\u0411\u0430\u0433 7: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 CI \u043d\u0430 development \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b \u0437\u0430\u0434\u0430\u0447\u0443 developer'\u0443", "project": "proj_orchestrator", "folder": "tasks/orchestrator/", "doc_path": "tasks/orchestrator/ORCHESTRATOR_DOCS.md", "status": "done", "priority": "high", "assignee": "dev", "description": "PR #18 (commit 3a285de, merge a0621b9). \u0414\u044b\u0440\u0430-\u043f\u043e\u0431\u043e\u0447\u043a\u0430 \u0431\u0430\u0433\u0430 6: CI \u0441\u0442\u0430\u043b \u0430\u0432\u0442\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u043c \u0433\u0435\u0439\u0442\u043e\u043c, \u043d\u043e handle_ci_status \u043f\u0440\u0438 failure \u0434\u0435\u043b\u0430\u043b \u0422\u041e\u041b\u042c\u041a\u041e notify_qg_failure\u2192\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u0438\u0441. \u0424\u0438\u043a\u0441 \u043f\u043e \u043e\u0431\u0440\u0430\u0437\u0446\u0443 review-retry: \u043a\u0440\u0430\u0441\u043d\u044b\u0439 CI\u2192retry developer'\u0430 (enqueue_job attempt N/3), \u043b\u0438\u043c\u0438\u0442 \u041e\u0411\u0429\u0418\u0419 MAX_DEV_RETRIES=3 (review+CI \u0432\u043c\u0435\u0441\u0442\u0435), \u043f\u043e\u0442\u043e\u043c \u044d\u0441\u043a\u0430\u043b\u0430\u0446\u0438\u044f. \u041f\u0440\u043e\u0432\u0435\u0440\u0435\u043d\u043e \u0431\u043e\u0435\u0432\u044b\u043c \u043f\u0440\u043e\u0433\u043e\u043d\u043e\u043c ET-011 \u2014 \u0441\u0430\u043c\u043e\u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u043e."}, "created": "2026-06-03T23:19:40.212443+00:00", "updated": "2026-06-03T23:19:40.212443+00:00"}, "timestamp": "2026-06-03T23:19:40.212443+00:00"}
|
||||
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug5", "properties": {}, "timestamp": "2026-06-03T23:19:40.245963+00:00"}
|
||||
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug6", "properties": {}, "timestamp": "2026-06-03T23:19:40.286870+00:00"}
|
||||
{"op": "relate", "from": "proj_orchestrator", "rel": "has_task", "to": "task_orch_bug7", "properties": {}, "timestamp": "2026-06-03T23:19:40.334105+00:00"}
|
||||
|
||||
Reference in New Issue
Block a user