diff --git a/memory/2026-06-05.md b/memory/2026-06-05.md index 18f85d5..2608ff7 100644 --- a/memory/2026-06-05.md +++ b/memory/2026-06-05.md @@ -747,4 +747,13 @@ Dev (session orch9_docs_canon) отработал, я проверила не с ### 🛠️ Инфра-грабли прода (05.06) - **В контейнере `orchestrator` НЕТ `curl` и НЕТ `sqlite3`** — запросы к Gitea/Plane/БД делать через `python3 -c` (urllib + sqlite3-модуль). - **Таблица `tasks`: нет колонок `status`/`role`** — реальные: `id, plane_id, repo, branch, stage, agent_running, work_item_id, plane_issue_id, tracker_message_id, title, brd_review_started_at, brd_review_ended_at`. Статус задачи = `stage` + Plane-state; статус job — в таблице `jobs` (колонка `agent`, не `role`). -- **Создание задачи Plane через скрипт:** писать .py на проде через `ssh cat > /tmp/x.py` (НЕ локальный heredoc+scp — разные хосты!) → `docker cp` → `docker exec python3`. +- **Создание задачи Plane через скрипт:** лучший способ — написать .py локально → `base64 -w0` → `ssh "echo | base64 -d > /tmp/x.py"` → `docker cp` → `docker exec python3`. **base64 полностью обходит экранирование кириллицы/скобок** (heredoc с кириллицей и `(` падает с `Syntax error`). Локальный heredoc+scp НЕ работает — разные хосты. + +### 🔁 ORCH-17 — петля dev↔review↔testing и разбор с Славой (05.06 вечер) +- После пинка CI-гейта задача нарезала круги и упёрлась в **`max retries reached`** (MAX_DEVELOPER_RETRIES=3, stage_engine.py:56). Встала на development, ждёт человека. +- **Два разных заворота в петле:** (a) tester FAIL `check_tests_passed: No machine-readable verdict/status`; (b) reviewer `REQUEST_CHANGES` — governance: дев протащил правку **shared quality-gate** `src/qg/checks.py` в косметическую задачу про ссылки (влияет на ВСЕ проекты общего прода, требует ADR по CLAUDE.md правило 2). +- **Ключевой вывод про правку гейта:** дев починил РЕАЛЬНЫЙ баг ядра — `_parse_tests_verdict` читал только `verdict:/status:`, а промпт тестера велит писать `result: PASS`. Честный тестер → ложный FAIL → петля. Т.е. дев прав по сути, reviewer прав процедурно (shared-инфра без ADR). +- **Почему дев не понял ревьюера (корень для ORCH-46):** орк при REQUEST_CHANGES шлёт деву только *"Fix findings in 12-review.md"* — без текста претензий (испорченный телефон); + противоречивые сигналы (tester "чини тесты" vs reviewer "не трогай gate"); + нет памяти между кругами (каждый dev = новый чистый агент). +- **Решение Славы (вариант А):** из ORCH-17 убрать правку гейта (оставить только ссылки), фикс гейта — отдельной задачей следующей. +- **Новые задачи:** ORCH-46 (id `beaab0e7-eb49-41b9-b5e5-8d7246a3d9f1`, Backlog, high) — передача замечаний деву; **ORCH-47** (id `89d9a4b3-f80c-4387-b6f1-97b1f6dc9113`, Backlog, high) — фикс `check_tests_passed` читать `result:` (с ADR, идёт следующей, готовый код-референс уже в ветке ORCH-017). +- **Дотолкивание ORCH-17:** Dev-агент откатывает 2 файла к origin/main (`src/qg/checks.py`, `tests/test_qg.py`), остальное (ссылки/доки/ADR) остаётся → потом пинок гейта.