Commit Graph

261 Commits

Author SHA1 Message Date
Дмитрий bfe6c9b685 fix(docs): B-2 — арифметика и опечатки в Открытые_вопросы и Tooling
- Открытые_вопросы §0 v1.10 (стр. 17): « 30 → 40, ⏸ 13 → 5, P2 10 → 0»
  → « 33 → 40, ⏸ 12 → 5, P2 7 → 0». Исходные значения соответствуют
  таблице §0 v1.9 (стр. 24: «33 / 5 / 12»). OPEN-К-1/К-7 учитываются
  в счётчике приложения К, не в счётчике «продуктовых».
- Открытые_вопросы CTO-12 (стр. 25): убрана несуществующая ссылка
  «Дефолт по Прил. Н §3.4: PHPUnit». В §3.4 такого дефолта нет —
  только требование «выбрать ОДИН до установки Boost» (§3.4 + §6 п. 2).
- Tooling §6 (стр. 184): ссылка `см. §11` для Lighthouse → `см. §12`
  («Что вне 28 инструментов»). §11 — про Windows/PowerShell.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 23:38:06 +07:00
Дмитрий 4321251bc1 docs(archive): README v8.3.3 → v8.4 (синхронизация с narrative v8.4)
- Переименование: docs/README_АРХИВ_v8_3.md → _v8_4.md.
- Шапка: версия v8.3.3 → v8.4, состав 18 → 17 файлов в docs/
  (минус удалённый Plan_narrative_v8_4.md).
- Эволюция версий: добавлена запись v8.4 (06.05.2026 поздний вечер,
  финал narrative + переименование + schema v8.4 + регистр v1.10).
- Главный narrative: имя файла _v8_3 → _v8_4, размер ~310→~340 КБ,
  описание расширено под все 13 разделов плана v8.4.
- Прил. А (schema.sql): v8.3 → v8.4, метрики 51/81/31 → 53/86/33,
  +outbound_webhook_subscriptions/deliveries (закрытие тех-долга §19.10).
- Прил. Е (Открытые_вопросы): v1.6 → v1.10 (40/5🟦/5⏸, 0 P2).
- «Что осталось мне (Claude)»: v8.4 narrative  выполнено;
  Прил. Л — 3/8 готово, осталось 04..08.
- История версий: добавлена строка v8.4.
- Обновлены кросс-ссылки в CLAUDE.md (§0), README.md, db/CHANGELOG_schema.md,
  docs/Tooling_v8_3.md, docs/CRM_bp-gr_Инструкция_v8_4.md.
- Исторические упоминания старого имени в Объединённый_конспект.md,
  Analiz_originala_v8_3.md, Pravila_raboty_Claude_v1_1.md и в записях
  прошлых версий — оставлены намеренно (правило §4.4 правил работы
  Claude — прослеживаемость решений).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:35:40 +07:00
Дмитрий c8db9a26c4 docs(narrative): v8.4 финал (§23.10 + 13/13 + rename _v8_3 → _v8_4)
- §23.10 Админка SaaS: расширен с 5 до 10 подсекций — Биз-16
  (колонка «Желаемое × факт сегодня» с цветовым кодированием),
  Ю-2 (поставщики, дашборд маржи, сверка счетов), OPEN-Д-5/И-1
  (incidents_log: 8 типов × 4 severity, 24ч SLA уведомления РКН для
  data_breach по 152-ФЗ ст.18.1 ч.3.1), Прил. Д (workflow обращений
  субъектов ПДн с 30-дневным SLA), таблица преимуществ vs оригинал.
- Шапка narrative: убрано «in progress», блок «Что нового в v8.4»
  дополнен §23.10. Подвал: имя файла v8.4.
- Переименование: CRM_bp-gr_Инструкция_v8_3.md → _v8_4.md.
- Кросс-ссылки обновлены: CLAUDE.md (§0/§2/§6/§8 — версии, метрики
  схемы 53/86/33, счётчик прототипов 3/8), README.md (версии, статусы
  прототипов, репо CoralMinister), db/schema.sql, db/CHANGELOG_schema.md,
  web/index.html.
- .lychee.toml: exclude приватного github.com/CoralMinister/lidpotok
  (404 анонимно — норма).
- Plan_narrative_v8_4.md удалён (план v8.4 выполнен полностью, 13/13).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 19:14:53 +07:00
Дмитрий 60897e0ed2 docs(narrative): v8.4 +4 разделов (§5, §8, §9, §12)
§5 Источник данных — Webhook:
- §5.1 переписан: 3 канала ingress (webhook ~95%, manual ~3%, CSV ~2%)
- Добавлен блок про outbound webhook как уникальное преимущество
  с привязкой к §19.10 и 7 линиям доказательств

§8 Воронка и статусы:
- §8.1: 14 статусов с явным разделением 6 системных vs 8 настраиваемых,
  цвета hex из брендбука v1.1, описание каждого статуса
- §8.2: free state machine (CTO-2) с 4-пунктным обоснованием
- §8.5 переписан в 4 подсекции: что настраивается (только название
  на MVP), примеры, резолв через Redis-кеш, UX inline-редактирования

§9 Мои Проекты (большой раздел):
- 5 → 10 подсекций
- §9.2: таблица с лимитами/регионами/днями
- §9.4: карточка проекта 11 секций (паритет с оригиналом, партии 10.3-10.7)
- §9.5: EffectiveLimitCalculator (главное расхождение №2 с оригиналом):
  динамический effective_daily_limit_today, 5 триггеров пересчёта,
  логирование в project_limit_adjustments
- §9.6: project_suppliers m2m
- §9.7: soft-delete + retention 180 дней (Биз-14, cron disabled до Б-1)
- §9.8: capabilities поставщиков B1/B2/B3 (партия 13.3.5)
- §9.9: расширенные действия. §9.10: окно обслуживания (паритет не делаем)

§12 Дашборд:
- §12.5.6 «Конверсия проектов» (паритет с /admin/visit/rt-stat,
  партия 12.1): 17 колонок (id/тег/проект/статус/источник/обработано
  + 11 status-колонок), формат N (XX.XX%), monotone per column,
  total-row, видимость через users.preferences
- Наши расширения сверх паритета: экспорт XLSX через report_jobs +
  drill-down из ячейки в /deals
- +2 эндпоинта в §12.6

Шапка narrative обновлена. План v8.4: 12/13  (было 8/13).
Осталось только §23.10 Админка SaaS (большой). cspell-words.txt:
+резолв, +пунктным.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:55:31 +07:00
Дмитрий a05b09a025 schema(v8.4)+docs(narrative): §7 + outbound_webhook_* DDL
schema.sql v8.3 → v8.4 (закрывает тех-долг §19.10):
- +outbound_webhook_subscriptions (15 полей: target_url, secret_hash,
  secret_prefix, events JSONB, custom_headers, is_active, paused_at,
  consecutive_failures, …) + 2 индекса
- +outbound_webhook_deliveries (16 полей с retry-флоу: attempt_number 1-7,
  status pending/success/failed/permanently_failed, scheduled_at,
  next_retry_at, response_body, …) + 3 индекса
- +RLS-политики tenant_isolation для обеих таблиц
- Шапка обновлена: 51→53 таблицы, 81→86 индексов, 31→33 RLS,
  32→34 ENABLE RLS

db/CHANGELOG_schema.md: новая запись §Z (v8.3 → v8.4) с обоснованием,
сводной таблицей, описанием новых таблиц/индексов, разъяснением что
crm_connections/crm_field_mappings отложены до спринта 14-15 (amoCRM).

narrative §7: синхронизация с фактическим schema.sql v8.4.
- §7.1: метрики обновлены (53/12/86/33/34), карта таблиц расширена
  до полного списка (включая ранее отсутствовавшие
  tenant_custom_domains, user_recovery_codes, user_sessions,
  project_suppliers, project_limit_adjustments, incidents_log,
  report_jobs, document_sequences, outbound_webhook_*)
- §7.3: DDL deals — удалены reminder_text/reminder_at/idx_deals_reminder
  (синхронизация с v8.3, партия 12.2.5). Добавлены DDL reminders v8.3,
  outbound_webhook_subscriptions, outbound_webhook_deliveries

Шапка narrative: блок «Что нового в v8.4» обновлён (+§7).
План v8.4: 8/13  (было 7/13). cspell-words.txt: +воркер, +деплой формы.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:35:18 +07:00
Дмитрий 63b45217dc docs(narrative): v8.4 +§22 (CSP + prompt injection + антипаттерны)
§22.2 Транспортный уровень: CSP-строка расширена до полной политики
(script-src без 'unsafe-inline', object-src 'none', frame-ancestors
'none', report-uri /csp-report).

§22.11 «Защита от prompt injection в DOM» (новый, 4 уровня):
- 22.11.1 — полная CSP-политика с 13 директивами
- 22.11.2 — CI-линтер запрещает в DOM элементы с ID/class
  на префиксы claude-/gpt-/agent-/ai-
- 22.11.3 — DOMPurify-конфиг для всех v-html
- 22.11.4 — методология аудита third-party скриптов
  (31 keyword grep + SRI-хеши + ежеквартальный re-audit)
- 22.11.5 — что НЕ делаем (не блокируем легитимных AI-агентов)

Контекст — атака `claude-agent-stop-container/glow-border/animation-styles`,
найденная во ВСЕХ страницах crm.bp-gr.ru (партии 10, 12-15 аудита).

§22.12 «Антипаттерны оригинала» (новый):
- 22.12.1 — защита формы смены пароля (vs пароль в `<input type="text">`
  оригинала, партия 14.3.4)
- 22.12.2 — защита форм интеграций (vs API credentials в `<input type="text">`
  всех 5 карточек оригинала, партия 15.2.3)
- 22.12.3 — code review checklist (7 пунктов)

Шапка narrative обновлена. План v8.4: 7/13  (было 6/13).
cspell-words.txt: +санитизация, +санитизируются.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:32:13 +07:00
Дмитрий 6648fdd52f docs(narrative): v8.4 +3 разделов (§14, §18.4, §19.10)
§14 Activity Log: 17 событий (+6 новых: project_changed, phone_changed,
phones_changed, contact_name_changed, reminder_completed, restored).
§14.7 vs оригинал — таблица «что не логирует crm.bp-gr.ru» (партия 11.4).

§18.4 Безопасность: §18.4.1 Биз-9 (2FA на всех тарифах), §18.4.3 retention
auth_log, §18.4.4 уведомления о подозрительной активности (6 типов алертов),
§18.4.5 vs оригинал — 7 функций безопасности (партии 14.3.2–14.3.4).

§19.10 Outbound webhook: статус MVP по OPEN-И-2 (был «v2, не реализуется»).
10 подсекций: 7 линий доказательств уникальности (партии 9–15), формат
запроса, HMAC SHA-256, retry до 24ч, защита от SSRF, rate-limit.

Шапка narrative: блок «Что нового в v8.4» обновлён.
План: 6/13  (было 3/13). Тех-долг — DDL outbound_webhook_subscriptions
+ outbound_webhook_deliveries при правке §7 v8.4.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 14:08:03 +07:00
Дмитрий 938066fefe docs(narrative)+web: narrative v8.4 partial (§1, §17, §26) + HTML-прототип 03 «Список сделок»
Narrative переработан под решения 04–06.05 + аудит партий 1–15:
- §1.4.1 — 7 конкурентных преимуществ vs оригинал crm.bp-gr.ru
- §1.5 — 3 формата ingress (webhook/manual/CSV), 3 чекбокса click-wrap
- §17.8 — Тихие часы (start_hour/end_hour 0..23, минимум 3 часа,
  общий timezone тенанта), паритет с партией 13.2.1
- §26 — полная замена под брендбук v1.1: палитра Teal (#0F6E56),
  сетка 4px, JetBrains Mono, маскирование credentials как
  антипаттерн оригинала.

Шапка narrative — блок «Что нового в v8.4» с маппингом 11 закрытых
вопросов из реестра v1.10. Остальные 9 разделов плана —
в Plan_narrative_v8_4.md (отдельные сессии).

web/03-deals.html — прототип «/deals»:
- Sidebar + topbar + balance widget (как 02-dashboard)
- Sticky-фильтры: поиск FTS, проект, статус, менеджер, период, теги,
  «только с напоминанием», кнопки Колонки/Экспорт/Создать
- Bulk-actions bar при выборе строк
- Таблица 20 демо-строк с 14 цветными статусами (включая 🔥 Горячий)
- Pagination, low-balance баннер, чекбоксы, sort-индикаторы
- Телефоны маскированы по правилу gitleaks `ru-phone-unmasked`
  и брендбуку §9 (формат +7 (XXX) ***-XX-XX)
- web/index.html: 03 → готов, счётчик 3/8

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 13:25:35 +07:00
Дмитрий 4df66c3776 docs(archive): close 11 P1/P2 defaults → registry v1.10, add Plan_narrative_v8_4
Закрытие 11 вопросов с дефолтами (утверждено 06.05.2026):
- Биз-6 — режим «по запросу» (15 партий аудита уже сделано)
- Биз-10..13 — модель reminders, один кошелёк ₽, телефония Post-MVP, magic-link 24ч
- Биз-14..16 — TTL 180д, OSINT не делаем, desired_daily_numbers
- OPEN-К-1, К-7 — Cloud Boost grant и CVoS отложены
- OPEN-И-12 — контакты эскалации в Notion private до DO-4

Сводка после v1.10: 50 продуктовых = 40  + 5 🟦 + 5 ⏸ (Б-1 P0;
Диз-1/3, DO-2/4 — все P1 ждут Б-1 или у Claude). Все P2 закрыты.

Plan_narrative_v8_4.md — компактный план переписывания 13 разделов
ТЗ под решения 04–06.05 + аудит партий 1–15. Сам narrative не трогали.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 12:37:58 +07:00
Дмитрий 04f38b1e57 docs(archive): add Прил. Н + CLAUDE.md, sync archive to v8.3.3
Новые файлы:
- CLAUDE.md (корень) — оперативная карта для Claude Code: приоритет правил
  (5 уровней), стек проекта, карта 28 инструментов «когда что использовать»,
  10 запретов, текущая фаза.
- docs/Tooling_v8_3.md (Прил. Н v1.0) — единый реестр 28 инструментов
  разработки, скиллов Claude Code, MCP-серверов и плагинов в 4 фазах
  (фаза 0 — текущая, +1 Laravel, +2 Vue/Vuetify, +3 pre-prod). §6 конфликты
  и решения, §7 приоритет правил, §9 что НЕ ставим (10+ запретов), §10
  процедура перехода между фазами, §11 Windows + PowerShell.

Обновления версий:
- docs/Pravila_raboty_Claude_v1_1.md → v1.2: §4.8 «Шифры приложений» —
  Н занят (12 шифров: А, Б, В, Г, Д, Е, Ж, З, И, К, М, Н).
- docs/README_АРХИВ_v8_3.md → v8.3.3: добавлена строка истории, обновлены
  таблицы состава (18 файлов в docs/+db/ + CLAUDE.md), добавлена ветка
  чтения «Claude / разработчик».
- docs/Открытые_вопросы_v8_3.md → v1.9 (через шапку, упоминание Прил. Н).

Точечные правки в архиве:
- 6 фиксов MD028 (пустые строки внутри blockquote → заменены на `>`):
  docs/Админка_SaaS_v8_2.md (1), docs/Приложение_Б_В_БД_диаграммы_v8_3.md (3),
  docs/Oferta_i_Politika_v8_2.md (2).
- 1 фикс MD056 (недостающая колонка в таблице) в
  docs/Аудит_partii_12_15_originala_v8_3.md:1085.
- 2 опечатки (русские буквы в латинских словах):
    docs/README_АРХИВ_v8_3.md: `соft-deleted` → `soft-deleted`
    docs/CRM_bp-gr_Инструкция_v8_3.md: `raтe limit` → `rate limit`
- Авто-форматирование trailing whitespace и blanks-around-lists
  через markdownlint --fix (хук .claude/settings.json).

Baseline после коммита:
- markdownlint: 0 errors
- cspell: 0 unknown words
- lychee: 24 OK / 0 errors
- stylelint: 0 errors
- gitleaks: no leaks

Архитектурных изменений: 0. Состав архива: 18 файлов в docs/+db/ + CLAUDE.md.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 04:45:22 +07:00
Дмитрий b5cda8886d Restructure: split files into docs/web/db folders 2026-05-06 01:39:59 +07:00