diff --git a/.gitignore b/.gitignore index ddae65ed..40b4e281 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # ============================================================================= -# .gitignore — Лидпоток +# .gitignore — Лидерра # ============================================================================= # ── Node / npm ────────────────────────────────────────────────────────────── @@ -86,7 +86,7 @@ memory/ .claude/local-* .claude/settings.local.json # Артефакты переноса проекта со старых машин (JSONL-сессии Claude) — например -# c--Users-KDV-Projects-lidpotok/ от 07.05.2026 (Win10 → Server 2022) +# c--Users-KDV-Projects-liderra/ от 07.05.2026 (Win10 → Server 2022) c--Users-*/ # ── Временные файлы ───────────────────────────────────────────────────────── diff --git a/.gitleaks.toml b/.gitleaks.toml index deae8408..ec1ffb9e 100644 --- a/.gitleaks.toml +++ b/.gitleaks.toml @@ -1,11 +1,11 @@ -# Конфигурация gitleaks для проекта Лидпоток +# Конфигурация gitleaks для проекта Лидерра # Правило §5.2 правил Claude: запрет на ПДн / токены / API-ключи в коммитах # # ВАЖНО: gitleaks использует Go RE2, который НЕ поддерживает lookbehind/lookahead. # Все правила ниже написаны без (?<=...), (?", # Внутренние URL из runbook (бастионы, sentry self-hosted) "^https?://bastion\\.", @@ -49,7 +49,7 @@ exclude = [ "^https?://example\\.com", "^https?://example\\.org", # Приватный репозиторий проекта (404 для анонимных запросов — это норма) - "^https?://github\\.com/CoralMinister/lidpotok" + "^https?://github\\.com/CoralMinister/liderra" ] # Игнорировать файлы вне аудита @@ -60,7 +60,7 @@ exclude_path = [ ] # User-Agent — некоторые сайты режут пустой -user_agent = "lychee/lidpotok" +user_agent = "lychee/liderra" # Не падать, если в файле нет ссылок no_progress = false diff --git a/.mcp.json b/.mcp.json index 0f98d1d7..7f3705bb 100644 --- a/.mcp.json +++ b/.mcp.json @@ -14,6 +14,6 @@ }, "comment": "Фаза 0 #3 — официальный hosted GitHub MCP (https://github.com/github/github-mcp-server). Требует env GITHUB_TOKEN с PAT (scopes: repo, read:org, не давать admin/delete). Раньше использовали deprecated @modelcontextprotocol/server-github — заменён 06.05.2026." }, - "_comment_postgres": "PostgreSQL MCP временно убран. Когда поднимется локальная dev-БД — добавить блок 'postgres' с command='npx', args=['-y', '@modelcontextprotocol/server-postgres', 'postgresql://localhost:5432/lidpotok_dev']. В фазе 1 — заменяется Laravel Boost (см. Tooling §3.1)." + "_comment_postgres": "PostgreSQL MCP временно убран. Когда поднимется локальная dev-БД — добавить блок 'postgres' с command='npx', args=['-y', '@modelcontextprotocol/server-postgres', 'postgresql://localhost:5432/liderra_dev']. В фазе 1 — заменяется Laravel Boost (см. Tooling §3.1)." } } diff --git a/CLAUDE.md b/CLAUDE.md index 2a8e49ee..c3064345 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,8 +1,10 @@ -# CLAUDE.md — техконтекст Лидпотока +# CLAUDE.md — техконтекст Лидерры -**Версия:** 1.0 от 06.05.2026 +**Версия:** 1.1 от 08.05.2026 **Назначение:** оперативная карта для Claude Code. Не первоисточник — первоисточники указаны в §0. +> **Ребрендинг 08.05.2026:** «Лидпоток» → **«Лидерра.»** (с точкой). Палитра, лого и шрифты — из handoff Платона (v8 Forest). Применяется только к дизайну/имени/логотипу; функционал, состав страниц и правила — без изменений (источник — ТЗ v8.5/schema v8.5). + --- ## 0. Источник истины @@ -14,9 +16,11 @@ | Главное ТЗ | [docs/CRM_bp-gr_Инструкция_v8_5.md](docs/CRM_bp-gr_Инструкция_v8_5.md) (v8.5 от 07.05.2026 — реализация 27 решений аудита C) | | Схема БД | [db/schema.sql](db/schema.sql) (v8.5 от 07.05.2026 — реализация 27 решений аудита C, narrative v8.5 готовится) | | Открытые вопросы | [docs/Открытые_вопросы_v8_3.md](docs/Открытые_вопросы_v8_3.md) (v1.12+) | -| Брендбук | [docs/brandbook.md](docs/brandbook.md) (v1.1) | +| **Брендбук** | [liderra_v8_handoff/docs/BRANDBOOK_v2.md](liderra_v8_handoff/docs/BRANDBOOK_v2.md) **(v2 Forest от 07.05.2026)** — старый `docs/brandbook.md` v1.1 удалён 08.05.2026 | +| **Дизайн-handoff (токены, компоненты, 25 экранов)** | [liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md](liderra_v8_handoff/docs/DEVELOPER_HANDOFF.md) (v8 Forest от 07.05.2026) — **только дизайн/токены/компоненты**; функционал и состав экранов — по ТЗ v8.5 | | Анализ оригинала | [docs/Analiz_originala_v8_3.md](docs/Analiz_originala_v8_3.md) (Прил. М v1.1) | -| Состав архива | [docs/README_АРХИВ_v8_4.md](docs/README_АРХИВ_v8_4.md) (v8.4 от 06.05.2026) | +| ТЗ рекламного лендинга | [лендинг/TZ_landing_v1_0.md](лендинг/TZ_landing_v1_0.md) (v1.0 от 08.05.2026, ⏸ Б-1 для продакшена) | +| Состав архива | [docs/README_АРХИВ_v8_5.md](docs/README_АРХИВ_v8_5.md) (v8.5 от 07.05.2026) | Этот файл — **оперативная карта**. При противоречии — приоритет у источников выше. @@ -55,7 +59,7 @@ | Sentry | self-hosted в Yandex Cloud | | Helpdesk | JivoSite | -**Шрифты:** Inter (UI), JetBrains Mono (код). **Палитра:** Teal (`#0F6E56` primary). **A11y:** WCAG 2.1 AA. +**Шрифты:** Inter (UI, axis `opsz` 14..32), JetBrains Mono (numerics с `tnum`, код). **Иконки:** Lucide. **Палитра v8 Forest:** Teal `#0F6E56` (primary, неоспариваемый), `#F6F3EC` warm ivory (page bg), `#012019` теало-нуар (sidebar). 14 OKLCH-статусов в [BRANDBOOK_v2 §3.6](liderra_v8_handoff/docs/BRANDBOOK_v2.md) — **палитра используется**, но мапить на 14 slug'ов из [db/schema.sql:2076](db/schema.sql#L2076) (источник истины для статусов воронки — schema/ТЗ §6.4, не handoff). **A11y:** WCAG 2.1 AA. --- @@ -151,7 +155,7 @@ npm run story # Histoire # Pre-prod (фаза 3+) npm run sast # Semgrep -trivy image lidpotok:latest +trivy image liderra:latest ``` --- @@ -163,7 +167,7 @@ trivy image lidpotok:latest 3. **Не запускать a11y через Lighthouse** — единственный источник истины Pa11y. 4. **Не использовать Superpowers `brainstorming` / `writing-plans` / `executing-plans` / `dispatching-parallel-agents` / `using-git-worktrees`** — конфликт с правилами проекта (§4.5, §8.4, §2.2) или нестабильно на Windows. 5. **Не помещать ПДн / токены / API-ключи в коммиты.** Правило §5.2 правил Claude. Защита — gitleaks в pre-commit. -6. **Не использовать Frontend Design plugin** — anti-pattern «Inter» противоречит брендбуку §4.1; не знает Vuetify; нет a11y. +6. **Не использовать Frontend Design plugin** — не знает Vuetify; нет a11y. (Замечание про anti-pattern «Inter» снято: в Forest Inter — наш основной UI-шрифт, см. [BRANDBOOK_v2 §4.1](liderra_v8_handoff/docs/BRANDBOOK_v2.md).) 7. **Не ставить два инструмента на одну задачу** — список 10+ запрещённых дублей в [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) §9. 8. **Не редактировать этот `CLAUDE.md` без обновления** [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md) и [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) — иначе три источника разойдутся. 9. **Не править `db/schema.sql`** без записи в [db/CHANGELOG_schema.md](db/CHANGELOG_schema.md) — правило §4.2 правил Claude. @@ -176,8 +180,8 @@ trivy image lidpotok:latest **Фаза 0 — документация + HTML-прототипы.** - Активно: 9 инструментов из 28 (см. §3.1). -- Готово: 17 файлов архива (narrative v8.4 финал 06.05.2026), 3 из 8 HTML-прототипов ([web/01-login.html](web/01-login.html), [web/02-dashboard.html](web/02-dashboard.html), [web/03-deals.html](web/03-deals.html)). -- Триггер фазы 1: `composer create-project laravel/laravel app`. +- Готово: 17 файлов архива (narrative v8.5 финал 07.05.2026), **13 концептов v8 Forest в [web/v8/](web/v8/)** (login/dashboard/deals/deal_card/kanban/billing/settings/reports/errors/admin/landing/brand/palette_options) — производные от [liderra_v8_handoff/concepts/](liderra_v8_handoff/concepts/). +- Триггер фазы 1: `composer create-project laravel/liderra app`. - Триггер фазы 2: первый коммит в `resources/js/` или Vue-папку. - Триггер фазы 3: ~спринт 12. @@ -213,4 +217,4 @@ trivy image lidpotok:latest --- -*CLAUDE.md v1.0 от 06.05.2026. При обновлении — синхронно править [docs/Tooling_v8_3.md](docs/Tooling_v8_3.md) и [docs/Pravila_raboty_Claude_v1_1.md](docs/Pravila_raboty_Claude_v1_1.md).* +*CLAUDE.md v1.1 от 08.05.2026. Изменения v1.1: ребрендинг Лидпоток→Лидерра; brandbook v1.1 удалён, источник — BRANDBOOK_v2.md из handoff Платона; добавлен handoff в §0; §2 палитра Forest; §6 — 13 концептов в web/v8/.* diff --git a/README.md b/README.md index 955bde03..f4c4b238 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Прил. Л — HTML-прототипы Лидпоток +# Прил. Л — HTML-прототипы Лидерра Самодостаточные HTML-прототипы 8 ключевых экранов клиентского приложения и админки SaaS. Это не боевой код — это **референс для дизайнера** (Диз-1) и **рабочая заготовка для frontend-команды** в спринтах 1, 4, 5, 8, 14. @@ -11,7 +11,7 @@ ## Структура проекта ``` -lidpotok/ +liderra/ ├── README.md ← этот файл (про прототипы) ├── CLAUDE.md ← оперативная карта для Claude Code (приоритет правил, 28 инструментов) ├── docs/ ← документация, инструкции, аудиты, брендбук, Прил. Н (tooling) @@ -91,4 +91,4 @@ lidpotok/ ## Репозиторий -https://github.com/CoralMinister/lidpotok (приватный) +https://github.com/CoralMinister/liderra (приватный) diff --git a/cspell-words.txt b/cspell-words.txt index 7fd2e757..acbbb321 100644 --- a/cspell-words.txt +++ b/cspell-words.txt @@ -1,9 +1,9 @@ -# Глоссарий проекта Лидпоток +# Глоссарий проекта Лидерра # Формат: одно слово на строке. Кириллица в нижнем регистре. # Бренд и термины проекта -лидпоток -lidpotok +лидерра +liderra бэкап бэкапы бэкапов @@ -694,3 +694,14 @@ gethostbyname KDV коммита коммитов + +# Лендинг (TZ_landing_v1_0) +SEO +продакшен +продакшена +финализируются +лидогенерации +лендингу +Habr +КПИ +Лидерры diff --git a/cspell.json b/cspell.json index a1618883..595d93a2 100644 --- a/cspell.json +++ b/cspell.json @@ -8,13 +8,13 @@ ], "dictionaryDefinitions": [ { - "name": "lidpotok-glossary", + "name": "liderra-glossary", "path": "./cspell-words.txt", "addWords": true } ], "dictionaries": [ - "lidpotok-glossary" + "liderra-glossary" ], "ignorePaths": [ "node_modules/**", diff --git a/db/CHANGELOG_schema.md b/db/CHANGELOG_schema.md index 953a62de..c4ec817f 100644 --- a/db/CHANGELOG_schema.md +++ b/db/CHANGELOG_schema.md @@ -1,4 +1,4 @@ -# CHANGELOG schema.sql — Лидпоток +# CHANGELOG schema.sql — Лидерра **Назначение:** консолидированный журнал изменений `schema.sql`. Содержит четыре записи в обратном хронологическом порядке (v8.5 → v8.4 → v8.3 → v8.2), как принято в keep-a-changelog. @@ -837,7 +837,7 @@ App\Events\Incident\Resolved ```bash # 1. Создать БД -createdb -E UTF8 lidpotok +createdb -E UTF8 liderra # 2. Применить консолидированную schema.sql v8.2 psql $DB_URL -f schema.sql @@ -867,7 +867,7 @@ psql $DB_URL -c "SELECT COUNT(*) FROM tariff_plans WHERE is_active = TRUE;" pg_dump --data-only $DB_URL > data-backup-$(date +%Y%m%d).sql # 2. Drop & recreate -dropdb lidpotok && createdb -E UTF8 lidpotok +dropdb liderra && createdb -E UTF8 liderra psql $DB_URL -f schema.sql # 3. Восстановить нужные данные (если есть) diff --git a/db/schema.sql b/db/schema.sql index 417f4735..442544d8 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -1,5 +1,5 @@ -- ============================================================================= --- schema.sql — единая схема БД для SaaS-аналога crm.bp-gr.ru («Лидпоток») +-- schema.sql — единая схема БД для SaaS-аналога crm.bp-gr.ru («Лидерра») -- Версия: v8.5 (07.05.2026, реализация 27 решений аудита C из реестра v1.12) -- Базовая версия: v8.4 (06.05.2026, синхронизация с narrative §19.10 outbound webhook) -- СУБД: PostgreSQL 16 @@ -1051,7 +1051,7 @@ CREATE TABLE outbound_webhook_deliveries ( id BIGSERIAL PRIMARY KEY, tenant_id BIGINT NOT NULL REFERENCES tenants(id) ON DELETE CASCADE, subscription_id BIGINT NOT NULL REFERENCES outbound_webhook_subscriptions(id) ON DELETE CASCADE, - delivery_uuid UUID NOT NULL, -- X-Lidpotok-Delivery, выдаётся 1 раз на событие + delivery_uuid UUID NOT NULL, -- X-Liderra-Delivery, выдаётся 1 раз на событие event VARCHAR(50) NOT NULL, -- deal.status_changed и т. п. payload JSONB NOT NULL, -- тело отправляемого запроса attempt_number SMALLINT NOT NULL DEFAULT 1 diff --git a/docs/Analiz_originala_v8_3.md b/docs/Analiz_originala_v8_3.md index b01bcdbd..df02156d 100644 --- a/docs/Analiz_originala_v8_3.md +++ b/docs/Analiz_originala_v8_3.md @@ -1,4 +1,4 @@ -# Приложение М — Анализ оригинала crm.bp-gr.ru и архитектурные следствия для Лидпотока (v8.3) +# Приложение М — Анализ оригинала crm.bp-gr.ru и архитектурные следствия для Лидерры (v8.3) **Дата:** 05.05.2026 (расширено по итогам партий 12–15). **Версия:** 1.1 (расширено по итогам параллельного аудита партий 12–15 от 05.05.2026). @@ -13,7 +13,7 @@ > **⚠ Состояние на 05.05.2026 (v8.3++ optimized):** 4 файла `audit-batch-12..15-2026-05-05.md` объединены в единый документ **`Аудит_partii_12_15_originala_v8_3.md`** (части 12, 13, 14, 15). Содержимое полностью сохранено без изменений. Все ссылки в данном Прил. М вида «партия 12.2.4», «партия 15.3» и т. п. читать с учётом нового размещения: соответствующая «Часть N, раздел X.Y» в `Аудит_partii_12_15_originala_v8_3.md`. -**Назначение:** перевести наблюдения аудита в формальные архитектурные решения для платформы Лидпоток. Закрыть пробелы между нашей моделью v8.3 и реальной структурой оригинала. Поднять перед заказчиком новые продуктовые вопросы, возникшие из аудита. +**Назначение:** перевести наблюдения аудита в формальные архитектурные решения для платформы Лидерра. Закрыть пробелы между нашей моделью v8.3 и реальной структурой оригинала. Поднять перед заказчиком новые продуктовые вопросы, возникшие из аудита. **История изменений:** @@ -24,7 +24,7 @@ ## 0. TL;DR -Аудит crm.bp-gr.ru, проведённый в 15 партий за 04.05–05.05.2026 (11 исходных + 4 параллельные), подтвердил архитектурные решения Лидпотока, обнаружил расхождения и выявил новые продуктовые вопросы. +Аудит crm.bp-gr.ru, проведённый в 15 партий за 04.05–05.05.2026 (11 исходных + 4 параллельные), подтвердил архитектурные решения Лидерры, обнаружил расхождения и выявил новые продуктовые вопросы. **Главное расхождение №1:** в оригинале существует архитектурный слой **«Поставщик» (B1/B2/B3)** с **разными capabilities** для каждого (B1 — звонки/сайты, B2 — sms+sender_name+keyword, B3 — sms+только sender_name). У нас этого слоя не было — нужна таблица `suppliers` с полями `channel`, `supports_sender_name`, `supports_keyword` + связь `project_suppliers`. @@ -1129,14 +1129,14 @@ GET/POST https://crm.bp-gr.ru/api/... **Контекст:** в оригинале (партия 13.1) есть полноценная фича `/admin/gck/dop-sources` — wizard на 3 шага: «Поиск (по доменам/ключевикам конкурентов) → Результат (рекомендованные домены/телефоны) → Чёрный список». Это **OSINT-инструмент** для самостоятельного поиска новых источников трафика клиентом — отдельная сущность, не связана с управлением поставщиками B1/B2/B3. -**Вопрос:** делаем такой wizard в Лидпотоке на MVP? +**Вопрос:** делаем такой wizard в Лидерре на MVP? **Рекомендация Claude:** **не делаем на MVP**, в Post-MVP по запросу. Аргументы: - Бизнес-ценность спорна: для арбитражной модели «получи лиды от B1/B2/B3» эта фича — «помощник по конкурентам», не основной flow. - Реализация требует внешнего OSINT API (поиск конкурирующих доменов и связанных телефонов), затраты ~3 спринта. - Если делать — отдельные таблицы: `source_recommendation_searches`, `source_recommendation_results`, `source_recommendation_blacklist` (см. партию 13.1.6). -- На старте Лидпотока эту функцию можно оставить за скобками без потери основных пользователей. +- На старте Лидерры эту функцию можно оставить за скобками без потери основных пользователей. **Дефолт при отсутствии решения:** не делаем на MVP, ставим в backlog с приоритетом P3. @@ -1146,11 +1146,11 @@ GET/POST https://crm.bp-gr.ru/api/... **Контекст:** в оригинале (партия 13.2.2) есть аккаунтная (не проектная!) модалка «Желаемое кол-во номеров в день». Это не лимит, а ориентир для сотрудников бэк-офиса ГЦК, которые ручным трудом дотягивают объём до нужного. -**Вопрос:** добавляем такое поле в Лидпотоке? +**Вопрос:** добавляем такое поле в Лидерре? **Рекомендация Claude:** **да, добавляем** как `tenants.desired_daily_numbers INT NULL`. Аргументы: -- Полезный сигнал саппорту Лидпотока: видеть, что клиент ожидает 100 лидов/день, а получает 30 — повод связаться с клиентом и помочь оптимизировать настройки проектов. +- Полезный сигнал саппорту Лидерры: видеть, что клиент ожидает 100 лидов/день, а получает 30 — повод связаться с клиентом и помочь оптимизировать настройки проектов. - Минимальная реализация: одно поле в `tenants`, одно поле в форме настроек аккаунта, одна колонка в админ-дашборде `/admin/tenants`. - Затраты ~0.1 спринта. @@ -1208,7 +1208,7 @@ GET/POST https://crm.bp-gr.ru/api/... ### 6.5. Урок для нашей платформы -**Принцип:** наша платформа Лидпоток должна быть **«AI-agent friendly»** в правильном смысле — то есть: +**Принцип:** наша платформа Лидерра должна быть **«AI-agent friendly»** в правильном смысле — то есть: - ✅ Семантическая разметка, корректные ARIA-атрибуты, осмысленные ID — для legitimate использования AI-агентов клиентов. - ❌ Никаких «AI-маркеров», специально размещённых для одних агентов и не других. @@ -1325,7 +1325,7 @@ GET/POST https://crm.bp-gr.ru/api/... **Чего нет:** drill-down в ячейку, экспорт XLSX/CSV. -**Решение для Лидпотока:** реализовать как **первоклассный отчёт §12 narrative**. На бэке — один read-эндпоинт `GET /api/projects/conversion?from=&to=&type=&search=`. На фронте — Vue-таблица. **Наше расширение сверх паритета:** экспорт XLSX (через `report_jobs`) + drill-down из ячейки в отфильтрованный список сделок. +**Решение для Лидерры:** реализовать как **первоклассный отчёт §12 narrative**. На бэке — один read-эндпоинт `GET /api/projects/conversion?from=&to=&type=&search=`. На фронте — Vue-таблица. **Наше расширение сверх паритета:** экспорт XLSX (через `report_jobs`) + drill-down из ячейки в отфильтрованный список сделок. #### 9.1.2. Напоминания — модель данных (Биз-10 переоткрыт) @@ -1344,7 +1344,7 @@ GET/POST https://crm.bp-gr.ru/api/... **Бесплатный «дашборд задач»:** дропдаун «Задачи» в шапке списка содержит 4 пункта с URL-параметрами `?reminders=today|last|future|none`. -**Решение для Лидпотока:** перепись таблицы `reminders` (см. §3.5.1). Удалить `deals.reminder_text` и `deals.reminder_at`. На MVP — поля паритета + `completed_at` (наше расширение). Расширения над паритетом — **Post-MVP по запросу**. +**Решение для Лидерры:** перепись таблицы `reminders` (см. §3.5.1). Удалить `deals.reminder_text` и `deals.reminder_at`. На MVP — поля паритета + `completed_at` (наше расширение). Расширения над паритетом — **Post-MVP по запросу**. #### 9.1.3. Модалка «Досье» — две разные сущности @@ -1354,7 +1354,7 @@ GET/POST https://crm.bp-gr.ru/api/... **Модалка №2 — `visitdop`** (el-dialog с табами): триггер — кнопка «Просмотр досье» в `.domen-right`; содержимое — 2 таба (Досье с полями `proceeds/profit/balance/arbitration` + Pr-cy SEO-данные); эндпоинт `GET /admin/visit/visit-dop-load?id={model.id}`; назначение — внешние данные о домене сделки. -**Решение для Лидпотока:** +**Решение для Лидерры:** - Модалка №1 — **Post-MVP** (естественное расширение Биз-1). - Модалка №2 — **НЕ делаем** на MVP (требует интеграции с Pr-cy / Контур, для арбитражной CRM избыточно). @@ -1365,13 +1365,13 @@ GET/POST https://crm.bp-gr.ru/api/... OSINT-инструмент по поиску внешних доменов и телефонов на основе ключевых запросов клиента. **НЕ управление поставщиками B1/B2/B3** (гипотеза партии 10 опровергнута). 3-шаговый wizard, аккаунтный скоуп. -**Решение для Лидпотока:** Биз-15 — на MVP **не делаем**, Post-MVP по запросу. +**Решение для Лидерры:** Биз-15 — на MVP **не делаем**, Post-MVP по запросу. #### 9.2.2. Аккордеон «Настройки» в шапке реестра проектов 6 кнопок: вкл/откл проектов, желаемое кол-во номеров, удалённые проекты, выгрузка источников, управление страницей, восстановление/удаление. -**Решение для Лидпотока:** +**Решение для Лидерры:** - **Биз-16** → новое поле `tenants.desired_daily_numbers INT NULL` (см. §3.5.3). Сигнал саппорту, отображается в админке SaaS, не влияет на биллинг и `effective_daily_limit`. - **Биз-14** → soft-delete проектов с TTL (см. §3.5.4). Дефолт 6 месяцев + cron disabled. @@ -1387,13 +1387,13 @@ OSINT-инструмент по поиску внешних доменов и т > «Указать в связке 'Наименование отправителя' и 'Ключевое слово' можно только по поставщику B2. Поставщик B3 работает только по наименованию отправителя». -Это требует расширения `suppliers` 5 полями (см. §3.5.2). В UI Лидпотока: при выборе поставщика(ов) frontend показывает только релевантные поля (intersection capabilities). +Это требует расширения `suppliers` 5 полями (см. §3.5.2). В UI Лидерры: при выборе поставщика(ов) frontend показывает только релевантные поля (intersection capabilities). #### 9.2.5. «Список звонков» — только агрегация Раздел `/admin/user/moizvonki` показывает агрегацию по менеджерам. **Сквозного журнала отдельных звонков нет.** Drill-down не предоставлен. -**Решение для Лидпотока:** подтверждает Биз-12 — телефонию не делаем на MVP. Звонки конкретной сделки — только в карточке сделки. +**Решение для Лидерры:** подтверждает Биз-12 — телефонию не делаем на MVP. Звонки конкретной сделки — только в карточке сделки. ### 9.3. Партия 14 — Редкие статусы + KB + Безопасность профиля @@ -1401,13 +1401,13 @@ OSINT-инструмент по поиску внешних доменов и т Эмпирически проверить не удалось (на текущем аккаунте 0 сделок во всех 14 статусах). Косвенно подтверждено через DOM фильтра — единый плоский список из 14 статусов без условных подразделов. -**Решение для Лидпотока:** одна универсальная карточка сделки, без условных полей по статусу. +**Решение для Лидерры:** одна универсальная карточка сделки, без условных полей по статусу. #### 9.3.2. База знаний — внешняя (HelpDeskEddy) Встроенной KB в CRM **нет**. В левом меню «База Знаний» — это `` на `data.helpdeskeddy.com`. Чат-виджет — `