Files
Deal/docs/superpowers/reviews/2026-09-11-docs-final-sweep.md
T
Rustam Khalimov 27c7831910
ci / build-test (push) Canceled after 0s
Deal — единая кодовая база
SaaS-мониторинг Telegram: ядро (модули Cards/Kanban/Pipeline/Tenants/Settings/
Discovery, Api, Infrastructure), сервисы telegram/ai/ml/storage, фронт Vue,
контракты и grpc-hosting, деплой-конфиги (dev/prod/observability/CI-раннер),
Gitea Actions CI, документация (ТЗ, техдок, api-map, код-стайл, планы, бэклог).

Текущее состояние: все этапы роадмапа 0–12 закрыты, сборка 5 sln 0/0,
тесты 1340/130/52/38/9 зелёные.
2026-09-11 23:56:47 +03:00

96 lines
10 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-09-11)
> Дата: 2026-09-11
> Периметр: все `docs/**` (актуальные доки — spec/user-guide/technical/api/STATUS; исторические —
> `plans/*`, `reviews/*`, `specs/*`, старые `architecture/*`).
> Метод: сквозной поиск по проблемным терминам (`Boards`, `ProjectCards`, `Deal.Modules.Projects`,
> `ProjectStages`, корневой `docker-compose.yml`, `DEAL_DEMO`, демо-эндпоинты, `l_`/`pr_`, `app_settings`,
> «лид» как сущность, старые порты/пути/счётчики тестов) + чтение актуальных доков и сверка с кодом
> (`src/**`, `deploy/compose.*.yml`, `scripts/dev-smoke.sh`, `deploy/observability/grafana/dashboards/`).
> Докер не поднимался, тесты не перезапускались. Предшествующий аудит — `2026-09-10-docs-audit.md`
> (30 расхождений, уже помечен как исторический).
## Сводка
- Найдено новых расхождений: **9** (по таблице ниже).
- Исправлено в актуальных доках: **9**.
- Добавлено исторических пометок: **20** файлов.
- Переписывание содержания исторических артефактов не выполнялось (по правилам задачи).
## Расхождения (файл:строка → в доке → реальность → действие)
| # | Файл:строка | В доке | Реальность | Действие |
|---|---|---|---|---|
| 1 | `docs/superpowers/STATUS.md` ~L4 | «Все этапы **010** выполнены (100%)» | таблица этапов — **012**, «Итого 0–12 = 100%» (строка ниже) | ✅ исправлено на 0–12 |
| 2 | `docs/superpowers/STATUS.md` ~L25 | этап 10 — «**ELK**-дашборды» | стек — Loki + promtail + Grafana (`deploy/observability/grafana/dashboards/Deal-*.json`); Elasticsearch/Kibana нет | ✅ «Grafana/Loki-дашборды» |
| 3 | `docs/superpowers/STATUS.md` ~L54 | «Настройки (ключи **AI/Telegram** enc:, промпты, валюты)» у тенанта | ключи Telegram — глобально у оператора (`public.global_settings`); у тенанта только подключение аккаунта | ✅ «ключи AI enc: …; Telegram-ключи — глобально у оператора» |
| 4 | `docs/superpowers/STATUS.md` ~L134 | «судьба legacy `docker-compose.yml`» (открытый вопрос) | файл перенесён в `archive/leadradar-legacy/` (2026-09-10) | ✅ «перенесён в `archive/leadradar-legacy/`» |
| 5 | `docs/superpowers/STATUS.md` ~L141 | «Core-тесты **1245/1245**» | актуально **1275/1275** (в том же разделе ниже уже 1275) | ✅ исправлено на 1275/1275 |
| 6 | `docs/superpowers/STATUS.md` ~L167 | «реестр id-стадий `ProjectStages`» | с этапа 9 каталог — `CardsDefaultContainers` (`Deal.Modules.Cards/Application/CardsDefaultContainers.cs`) | ✅ аннотировано «(с этапа 9 — `CardsDefaultContainers`)» |
| 7 | `docs/superpowers/STATUS.md` ~L7, ~L94 | «dev-smoke **12/12**» (в двух местах) | `scripts/dev-smoke.sh` выполняет **14** проверок (config + 6 контейнеров + login/status/containers/create/list/trash/ML-флашер); таблица этапа 9 уже фиксирует `PASS=14` | ✅ исправлено на 14/14 |
| 8 | `docs/technical/Техническая-документация-Дейл.md` §8 ~L319 | `dev-smoke.sh`: «… → `/api/tg/status`**simulate-lead** → флашер MlOutbox …» | скрипт: `/api/tg/status``POST /api/cards` → trash → флашер MlOutbox | ✅ заменено на `POST /api/cards` → trash |
| 9 | `docs/user-guide/Инструкция-пользователя-Дейл.md` ~L6, L32-34, L41, L262 | «dev/демо-окружение», «демо-пространство с входом `admin`/`admin`» | демо удалено; dev-seed создаёт bootstrap-тенанта `Default` (env `DEAL_BOOTSTRAP_LOGIN/PASSWORD`, дефолт `admin`/`admin`) | ✅ «Dev-окружение», «bootstrap-пространство `Default`» |
## Добавленные исторические пометки
Единая шапка: `> Исторический документ этапа N. Актуальное состояние — docs/superpowers/STATUS.md и docs/technical/Техническая-документация-Дейл.md.`
Планы (`docs/superpowers/plans/`, 15 файлов):
`2026-09-04-channel-discovery.md` (план Discovery прототипа LeadRadar),
`2026-09-05-deal-roadmap.md` (roadmap этапов 07),
`2026-09-05-deal-scaffold.md` (этап 0),
`2026-09-05-deal-stage1-tenancy.md``2026-09-05-deal-stage7-saas.md` (этапы 17),
`2026-09-09-deal-stage9-unified-card.md` (этап 9),
`2026-09-10-deal-stage10-operator-analytics.md` (этап 10),
`2026-09-10-deal-stage11-i18n.md` (этап 11),
`2026-09-10-deal-stage12-observability-hardening.md` (этап 12).
Ревью (`docs/superpowers/reviews/`):
`2026-09-08-code-quality-review.md` (этап 8),
`2026-09-10-tz-compliance-audit.md` (аудит соответствия ТЗ),
`2026-09-10-docs-audit.md` (аудит документации; добавлена ссылка на текущий отчёт).
Специи/архитектура:
`docs/superpowers/specs/2026-09-04-channel-discovery-design.md` (дизайн Discovery прототипа),
`docs/architecture/2026-09-05-deal-architecture-design.md` (архдизайн-черновик),
`docs/architecture/2026-09-09-unified-card.md` (дизайн единой карточки, этап 9).
Не тронуты по существу (актуальны): `docs/architecture/2026-09-10-unified-api-contract.md`,
`docs/architecture/2026-09-10-operator-analytics-contract.md`.
## Проверено и сходится
- **Единый API**: `/api/cards` + `/api/containers`; `api-map` §1/§3.5 корректно фиксирует удаление
`/api/leads|projects|boards|columns` и переименование `new_lead → new_card`; ссылки на «бывшие» домены —
в контексте «удалено», а не как действующие.
- **Ключи Telegram**: spec §4.1/§8, user-guide §3, api-map §6, technical §13.7/§13.10 — везде у оператора
(`/api/operator/settings/telegram-keys`, `public.global_settings`).
- **Оператор-консоль/активация**: `#/operator`, `#/join?code=…` — spec §10, user-guide §11, technical §13.10,
api-map — совпадают.
- **Порты**: core 5080/5082, telegram 5101, ai 5102, ml 5103, metrics 9464, postgres 5433, minio 9000/9001,
grafana 3001, prometheus 9090 — совпадают между spec/user-guide/technical/api и compose-файлами.
- **Core-тесты**: 1275 (technical §13.6/§16, STATUS таблица/итоги) — противоречий в актуальных доках нет.
- **Префиксы id**: `c_` (единый) — api-map §4.1, technical §11/§12/§8; `l_`/`pr_` в актуальных доках отсутствуют
(остались только в помеченных исторических разделах и внешних исторических артефактах).
- **`app_settings`**: в актуальных доках нет; актуальная таблица — `global_settings` (`public`).
- **Исторические артефакты**: `Boards`/`ProjectCards`/`Deal.Modules.Projects`/`ProjectStages`/`DEAL_DEMO`/
демо-ручки/`docker-compose.yml` встречаются только в документах, получивших историческую пометку.
## Осталось спорным / намеренно не тронуто
1. **Ссылка из spec на исторический архдизайн.** `docs/spec/ТЗ-дейл-новая-архитектура.md` (шапка)
указывает среди связанных `docs/architecture/2026-09-05-deal-architecture-design.md` — документ теперь
помечен историческим. Формально не ошибка (файл существует, помечен), но при следующей редакции ссылку,
возможно, стоит заменить на `2026-09-10-unified-api-contract.md`.
2. **`tgKeys` в historical §13.4b технического дока** (`GET /api/settings` перечисляет `tgKeys`): раздел
помечен историческим (§13 шапка + заметка §13.4a о переносе ключей к оператору). По правилам задачи
содержание исторических разделов не переписывалось.
3. **Счётчики тестов сервисов** (telegram 125, ai 52, ml 38): не перепроверялись кодом/прогоном
(запрет на долгие процессы); в актуальных доках они не противоречат друг другу.
4. **«Live SaaS 15/15»** — цифра из исторических приёмок, независимо не подтверждалась.
5. **Число операторских ручек (25)** в api-map §5 — подсчёт по `Endpoints/Operator*` + `/api/join`;
группировка может отличаться от авторской (ранее было 21). Не перепроверялось.
6. **Исторический журнал §11 техдока** (этапы 17) и §13.4c/4d/4e намеренно сохраняют легаси-термины
под пометками; сведение их в ссылки на §3 — задача следующей редакции, а не этой подбивки.
7. **`docs/architecture/2026-09-10-*`** (контракты) по условию задачи не редактировались; они актуальны.