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

94 lines
7.0 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-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 «Известные ограничения» |
---
## Рекомендации по процессу (мета)
1. **Lessons → задачи.** `LESSONS_ET006` зафиксировал баги, но их не конвертировали в трекаемые задачи → повтор на ET-008/009. Завести правило: каждый P0/P1 из lessons → задача в бэклоге с дедлайном.
2. **Один changelog фиксов.** `BUGFIXES_2026-05-21` + будущий `BUGFIXES_2026-06-02` — ок, но нужен сводный индекс «что починено / что висит».
3. **Doc-as-code QG.** В идеале — тест, проверяющий что таблица QG в README совпадает с `stages.py`. Чтобы доки не расходились с кодом.
---
*Аудитор: Стрим | Дата: 2026-06-02 | Связан с: AUDIT_2026-06-02.md, DEV_TASK_ORCHESTRATOR_FIXES.md*