7.0 KiB
Аудит документации оркестратора — 2026-06-02
Проверка всех доков orchestrator/docs/ + README.md + агентских промптов на старьё и неактуальность.
Сводка
| Документ | Дата | Статус | Вердикт |
|---|---|---|---|
README.md |
— | ⚠️ Частично устарел | Правка (QG-таблица врёт) |
docs/ARCHITECTURE.md |
31.05 | ⚠️ Частично устарел | Правка (QG, docker-запись) |
docs/BACKLOG_PIPELINE.md |
23.05 | ✅ Актуален | Оставить (открытые вопросы валидны) |
docs/BUGFIXES_2026-05-21.md |
22.05 | ✅ Исторический | Оставить как есть (лог) |
docs/LESSONS_ET006.md |
22.05 | 🔴 Критично актуален | Баг P1 НЕ починен — эскалировать |
docs/SETUP_WEBHOOKS.md |
21.05 | ✅ Актуален | Оставить (инструкция рабочая) |
🔴 Главная находка: P1 zombie из ET-006 жив до сих пор
LESSONS_ET006.md (22 мая) раздел P1. Zombie processes:
Monitor threads умирают при
docker compose up --build, agent процессы остаются zombie. Daemon threads в Python не переживают restart, child processes (claude.exe) наследуются init.
Это ТОЧНО тот же баг B-2 из моего аудита 02.06. Предложены 3 решения (A: safe.directory, B: orphan recovery, C: tini). Применены только частично:
- ✅ Решение B (orphan recovery) — есть в
main.py, но грубый (M-1) - ✅ tini — есть в compose (
tini -s -- node... но это для node, не для orchestrator-контейнера; проверить) - 🔴 Корневой PIPE-deadlock + daemon-поток — НЕ устранён
Вывод: lessons-док зафиксировал баг 11 дней назад, но фикс не довели. Урок не выучен → повторился на ET-008 и ET-009. Это системная проблема: lessons пишутся, но не конвертируются в задачи.
Аналогично:
- P2 stale reviews — workaround «ручной re-approve», корня (отключить dismiss_stale_approvals) не сделали → ручник повторяется.
- P3 Plane sync 404 — помечен LOW, до сих пор сломан (в моём аудите M-6).
- P6 tester timeout — actual на ET-009 (collector 25 мин).
Постраничный разбор
README.md — ⚠️ правка
Устарело:
- Таблица «Стадии пайплайна»:
development | developer | CI green— на деле CI в Gitea нет, QG не отрабатывает. После фикса S-1 будетlocal tests. review | reviewer | PR approved (no stale)— но код используетcheck_reviewer_verdict(файловый), неcheck_review_approved(PR-based). Расхождение код↔док.- Структура
src/описана верно.
Действие: входит в Task 8 Dev-ТЗ (Dev обновит QG-таблицу).
docs/ARCHITECTURE.md — ⚠️ правка
Устарело:
- Таблица QG:
check_review_approvedдля review — но вstages.pyстоитcheck_reviewer_verdict. Док отстал от кода. - Не упоминает, что
.taskпишется через docker (и что это сломано). - Описывает «идеальный» автономный pipeline, который из-за B-1/B-2 не работает.
Действие: Dev обновляет в Task 8. Добавить раздел «Известные ограничения».
docs/BACKLOG_PIPELINE.md — ✅ актуален
BL-001 (аудит вне work item) и BL-002 (управление бэклогом) — открытые архитектурные вопросы, всё ещё валидны. BL-002 даже отмечает «Plane sync сломан» — подтверждает M-6. Действие: оставить. Можно добавить отметку, что Plane sync — кандидат на фикс.
docs/BUGFIXES_2026-05-21.md — ✅ исторический лог
5 багов ET-005, все помечены исправленными. Это лог-запись, трогать не надо. Полезен как история. Действие: оставить как есть.
docs/LESSONS_ET006.md — 🔴 критично актуален
См. выше. Документ ОТЛИЧНЫЙ по содержанию, но его выводы не реализованы. Действие: НЕ удалять. Наоборот — использовать как доказательство, что фиксы назрели. После Dev-фиксов добавить пометку «P1 устранён в BUGFIXES_2026-06-02».
docs/SETUP_WEBHOOKS.md — ✅ актуален
Инструкция по настройке webhook'ов Gitea/Plane. URL, события, секреты — соответствуют конфигу. Рабочий референс. Действие: оставить.
Расхождения код ↔ документация (для исправления)
| # | Док говорит | Код делает | Где править |
|---|---|---|---|
| 1 | review QG = check_review_approved |
check_reviewer_verdict |
README, ARCHITECTURE |
| 2 | development QG = CI green | CI нет, не работает | README, ARCHITECTURE (после S-1) |
| 3 | .task запись (не описано) |
через docker (сломано) | ARCHITECTURE |
| 4 | pipeline автономен | ручной запуск из-за B-1/B-2 | ARCHITECTURE «Известные ограничения» |
Рекомендации по процессу (мета)
- Lessons → задачи.
LESSONS_ET006зафиксировал баги, но их не конвертировали в трекаемые задачи → повтор на ET-008/009. Завести правило: каждый P0/P1 из lessons → задача в бэклоге с дедлайном. - Один changelog фиксов.
BUGFIXES_2026-05-21+ будущийBUGFIXES_2026-06-02— ок, но нужен сводный индекс «что починено / что висит». - Doc-as-code QG. В идеале — тест, проверяющий что таблица QG в README совпадает с
stages.py. Чтобы доки не расходились с кодом.
Аудитор: Стрим | Дата: 2026-06-02 | Связан с: AUDIT_2026-06-02.md, DEV_TASK_ORCHESTRATOR_FIXES.md