Состояние на утро 4 сентября 2026. Всё, что здесь описано, работает и проверено на живых данных.


1. Коротко: что теперь есть

За ночь «Пульс» из набора скриптов превратился в приложение, которое живёт внутри Битрикс24.

Слой Состояние
Сбор портала → лента событий «клиент × время» работает, проверено на двух порталах
Движок находок (утечки в рублях) работает, 514 находок на нашем портале
Установка в Битрикс24: OAuth, встройки, события, удаление данных написано и покрыто тестами, ждёт живого портала
Сканер портала: «что я увидел» человеческим языком работает, читайте §4 — это лучшее, что получилось
Слой понятий: правила как данные, версии, предпросмотр работает
Голос → машинное правило работает от звука до правила, §5
Дайджесты, расписания, тихие часы, пинги работает
Разговор с данными, дашборды по фразе работает; включать не спешим — см. §9
Интерфейс приложения 16 экранов, демо-режим; снимки в docs/shots/

Две службы уже подняты и переживут перезагрузку сервера: - pulse.service — приложение, 127.0.0.1:8013 - pulse-worker.service — расписания, дайджесты, очередь записи в портал


2. Проверить, что всё живо — одна команда

cd ~/ai-lab/tb-pulse-dev
export CORE_DSN="postgresql://pulse:pulse@localhost:5436/pulse_dev"
set -a; . ./.env; set +a
.venv-core/bin/python -m pulse.cli --tenant 1 doctor

Ожидаемый ответ:

  БД                 ок, событий 2358
  модель             ок, 2 с
  приложение         ок
  расшифровка речи   ок, gigaam-v3-e2e-rnnt (1260 МБ)
  портал             ок, ключ принят

Если что-то «НЕТ» — там же написано, что именно сломалось.


3. Как посмотреть находки прямо сейчас

# что уже собрано
.venv-core/bin/python -m pulse.cli --tenant 1 stat

# утечки списком, с деньгами и обоснованием
.venv-core/bin/python -m pulse.cli --tenant 1 leaks --top 5

# HTML-отчёт (тот, что продаётся за 39 000 ₽)
.venv-core/bin/python -m pulse.cli --tenant 1 report --out /tmp/otchet.html

--tenant 1 — наш портал biztune39, --tenant 2 — 4keys (агентство недвижимости).


3-бис. Отчёт «Аудит утечек» — то, что продаётся

.venv-core/bin/python -m pulse.cli --tenant 1 audit --out /tmp/audit.html

Готовые примеры на живых данных лежат в репозитории: docs/audit-biztune39.html (наш портал) и docs/audit-4keys.html (агентство недвижимости).

Что в нём есть и почему именно так:

Вот что отчёт говорит про портал 4keys — это готовый текст для разговора с клиентом:

Из 136 полей карточки сделки заполнены хоть у кого-то только 44 — по остальным считать нельзя, я их не использую. Нашёл 549 тестовых сделок — это 23 % базы, из расчётов исключил. У 94 % сделок не указана сумма. 53 % закрытых сделок закрыли в тот же час, когда завели — обычно так выглядит перенос базы или дубли, а не продажа.

Историческая конверсия — 55 % по 1 751 закрытой сделке. Конверсия выше половины почти всегда значит, что «выиграно» здесь — не оплата, а этап. Деньги под риском поэтому считаю консервативно, по 20 %.


4. Сканер портала — покажите это клиенту первым

.venv-core/bin/python -m pulse.cli --tenant 1 scan

Он читает уже собранную ленту и рассказывает про портал по-русски. Вот что он говорит про наш портал:

У вас 9 воронок. Больше всего сделок в воронке «Основная воронка» — 41 %. Смотрю на портал с 5 февраля 2019 по 3 сентября 2026: 1 006 событий по 258 сделкам и лидам. В ленте видно 6 из 47 сотрудников — остальные за последние три месяца в CRM ничего не делали.

Дольше всего сделки стоят на стадии «Ждём закрывашки»: медиана 34 дня, а каждая десятая застревает там ещё дольше — на 2 месяца. Посчитано по 22 сделкам. Историю переходов между стадиями портал не отдал, поэтому время в стадии я считаю приближённо.

Работаете пн–пт, примерно с 10:00 до 18:00; тишину в выходные нарушением не считаю — на них приходится 4 % всей активности.

Из 291 полей карточки сделки заполнены хоть у кого-то только 70. Нашёл 14 тестовых сделок — это 5 % базы, из расчётов исключил. У 43 % сделок не указана сумма. У 19 клиентов одновременно открыто больше одной сделки — это 41 лишний трек, и по ним отчёты двоятся.

Историческая конверсия — 36 % по 152 закрытым сделкам, медианный чек 45 000 ₽.

А вот про 4keys — обратите внимание на последние две строки, это готовый разговор с клиентом:

53 % закрытых сделок закрыли в тот же час, когда завели — обычно так выглядит перенос базы, а не продажа.

Историческая конверсия — 55 %. Конверсия выше половины почти всегда значит, что «выиграно» здесь — не оплата, а этап. Деньги под риском поэтому считаю консервативно, по 20 %.

Что добавилось после разбора справочника VibeCode

Два источника, которых мы не использовали, закрывают ровно те дыры, о которых продукт до сих пор честно писал «не знаю»:

Звонки в CRM есть: 116 исходящих и 47 входящих. Но разговором стали не все: из 114 исходящих попыток дозвонились 60, это 53 % — остальное недозвоны, а в отчётах они обычно выглядят работой.

Это та самая продающая строка, ради которой в концепции заведены три уровня касания. До сегодня она была теорией.

🔴 Важно, как это устроено внутри: все цифры считает движок, а модель только связывает готовые фразы в текст. Валидатор проверяет ответ модели: если в нём есть хоть одна цифра — ответ выбрасывается и текст собирается механически. Без модели сканер работает тоже.

В конце рассказа — блок «Что здесь неверно?». Ответ человека на этот вопрос и есть главная настройка продукта.

Сверка с самим Битриксом

.venv-core/bin/python -m pulse.cli --tenant 1 reconcile

Десять контрольных срезов против портала. По нашему порталу сейчас расхождение ноль:

срез портал у нас расхождение
открытых сделок 198 198 0,00 %
сумма открытых сделок 9 463 846 ₽ 9 463 846 ₽ 0,00 %
выиграно за 30 дней 33 33 0,00 %
сумма выигранных за 30 дней 1 826 495 ₽ 1 826 495 ₽ 0,00 %
проиграно за 30 дней 35 35 0,00 %
лидов 93 93 0,00 %
лидов в работе 8 8 0,00 %
дел за 30 дней 151 151 0,00 %
активных сотрудников 12 12 0,00 %
новых сделок за 30 дней 38 38 0,00 %

Дрейф выше 0,5 % ставит в отчёте пометку «расходится с CRM» — цифра, которая не сходится с порталом, не должна выглядеть так же уверенно, как та, что сходится.

По дороге сверка поймала три ошибки в себе самой, и это ровно то, ради чего она нужна: она сравнивала всю историю портала с нашим окном в 90 дней, брала горизонт по самому старому сбору вместо последнего, и не учитывала, что портал живёт дальше, а наш снимок остановился в момент сбора. Единственное «лишнее» дело оказалось письмом, пришедшим через десять минут после сбора.


5. Голос → правило: как проверить

Это работает целиком. Живой прогон на фразе «считай сделку забытой если по ней больше пяти дней ничего не происходит и сумма выше трёхсот тысяч» даёт вот что (49 секунд):

Понял правило так: «Забытая крупная сделка»: дней без касания больше 5 дней (пять дней) и сумма больше 300 000 ₽ (триста тысяч рублей) и состояние «в работе»

Условие Поле в CRM Из ваших слов
Дней без касания больше 5 Дней без касания «больше пяти дней ничего не происходит»
Сумма больше 300 000 ₽ (триста тысяч) Сумма «сумма выше трёхсот тысяч»
Состояние «в работе» Состояние ⚠️ вы этого не говорили — добавил по умолчанию

Предупреждения: «больше»/«не больше» — инверсия · «пяти» — путаница 5/15/50 · «трёхсот тысяч» — порядок величины.

Почему так подробно: расшифровка речи путает «5/15/50» и «триста тысяч / три тысячи», а это разница в 10–100 раз в деньгах. Поэтому каждое число показывается цифрами и прописью, а каждое условие обязано иметь дословную цитату — условие без цитаты считается выдумкой модели и выбрасывается автоматически.

Проверить самому:

.venv-core/bin/python -c "
import os; os.environ.setdefault('CORE_DSN','postgresql://pulse:pulse@localhost:5436/pulse_dev')
from pulse.voice.to_rule import to_rule
from pulse.voice.confirm import build
d = to_rule('сделка горячая если клиент сам написал за последние два дня и сумма больше ста тысяч')
print(build(d, None)['natural_ru'])
"

6. Как подключить портал клиента

Способ 1 — быстрый, для аудита (то, что делаем сейчас)

Нужен только ключ VibeCode от портала клиента. Ничего устанавливать не надо, доступ только на чтение.

  1. Клиент заводит ключ у себя: Приложения → Разработчикам → Другое → VibeCode API, права crm.
  2. Дальше у нас:
export CORE_DSN="postgresql://pulse:pulse@localhost:5436/pulse_dev"
VIBE_API_KEY="vibe_app_КЛЮЧ_КЛИЕНТА" \
BITRIX_PORTAL_URL="https://портал-клиента.bitrix24.ru" \
.venv-core/bin/python -m pulse.cli --tenant 10 sync --days 365 --rps 3

.venv-core/bin/python -m pulse.cli --tenant 10 scan
.venv-core/bin/python -m pulse.cli --tenant 10 report --out /tmp/otchet-klienta.html

--tenant — любое свободное число от 10. Заливка портала на 5–10 тысяч сделок идёт 3–5 часов — запускайте фоном заранее, это не время работы человека.

🔴 На клиентских порталах — только чтение. Режим записи по умолчанию none, приложение физически не пишет в портал, пока владелец не переключит.

Способ 2 — приложение внутри портала (для подписки)

  1. Клиент: Приложения → Разработчикам → Локальное приложение.
  2. Тип «Серверное», путь обработчика https://pulse.biztune.ru/b24/install, путь установки — он же.
  3. Права: crm, user, department, placement, im, imbot, bizproc, imopenlines, disk.
  4. Клиент нажимает «Установить» — дальше приложение всё делает само: заводит встройки, бота, роботов, синхронизирует людей и права.

⚠️ Что обязательно сказать клиенту до продажи: в России приложение не может быть бесплатным. REST-доступ работает только при подписке «BitrixGPT + Маркетплейс» — 500 ₽/мес на Базовом, 1 500 ₽/мес на Стандартном (наш реальный минимум, на Базовом всего 5 пользователей), 3 000 ₽/мес на Профессиональном. Это касается даже локальных приложений и вебхуков. Строку нужно называть на переговорах, а не после.


7. Опубликовать приложение наружу

Приложение работает на 127.0.0.1:8013. Чтобы Битрикс мог его открыть, нужен публичный адрес.

Всё подготовлено, осталась одна команда:

sudo bash ~/ai-lab/tb-pulse-dev/deploy/publish.sh

Она проложит маршрут pulse.biztune.ru → Beget → Hetzner → приложение. Перезагрузки мягкие, VPN не прерывается. Откат — sudo bash deploy/publish.sh --rollback.

Почему не сделал ночью: скрипт правит конфигурацию VPN-контура, и защита среды такие правки не пропускает без вашего участия. Это правильный барьер, ломать его не стал. Резервные копии конфигов уже лежат рядом с оригиналами.

Дальше скрипт напечатает вторую часть — команды для фронта на Beget (nginx + сертификат). Домен pulse.biztune.ru уже резолвится: у *.biztune.ru есть wildcard-запись, DNS трогать не надо.


8. Ежедневная работа

Приложение само, по расписанию: - 09:00 пн–пт — утренний дайджест руководителю; - 18:00 пн–пт — вечерний итог; - 03:30 ежедневно — синхронизация портала; - 17:30 пн–пт — вечерний обход менеджеров (выключен по умолчанию).

Вот реальный утренний дайджест по нашему порталу:

📊 ПУЛЬС — 3 сентября, четверг
💰 Под риском ≈ 3,7 млн ₽ · 137 находок

📞 КОМУ ЗВОНИТЬ СЕГОДНЯ (7)
   1. 5 открытых сделок у одного клиента · 250 186 ₽ · Александр Бобырь
   2. заявка на BI от Сергея Русанова · 185 263 ₽ · проиграна без касаний
   3. Модная елка — 420к · 151 974 ₽ · тишина 45 дней
   ...

Проверить руками:

.venv-core/bin/python -m pulse.cli --tenant 1 digest --kind morning

Правила доставки, заложенные в код: тихие часы откладывают сообщение, а не глотают · не больше 4 сообщений человеку в день, сверх — склеиваются в одно · пропущенный запуск не выполняется задним числом (иначе утром прилетит пачка вчерашних) · выполненное в срок не порождает уведомлений вообще.


9. 🔴 Что я обязан сказать против этого проекта

Запускал отдельного скептика с заданием разнести концепцию. Он нашёл вещи, которые важнее всего построенного за ночь. Полностью — в docs/SKEPTIC-2026-09.md, здесь пять главных.

1. Самое дорогое допущение не проверено ни разу. За «утечки, посчитанные в рублях» в России не нашлось ни одного оплаченного кейса. На этом допущении стоит и аудит за 39 000, и вся подписка. Проверено всё, кроме единственного, что решает.

2. Срок окупаемости больше срока жизни преимущества. До 34 платящих подписок — точки, где подписка выгоднее продажи тех же часов студией — 2,5–4 года. До того как Битрикс сам сделает дневной план — 6–12 месяцев, и это уже не прогноз: «Чекин 2.0» с AI-планом дня в проде с мая 2026.

3. Цена 9 900 ₽/мес в мёртвой зоне. Битрикс24 Стандартный стоит 5 590–6 990 ₽/мес. Надстройка дороже самой CRM в 1,4–1,8 раза. Соседи в Маркете берут 990–6 990 ₽.

4. Половина концепции уже занята. Разговор с данными — CRMbot, 32 734 установки. Дашборды по фразе — AI Аналитика24, это буквально их ядро. Пинги по разделам — Bambit, 1 026 установок, обновлено 26.08.2026. Рейтинг менеджеров — штатный в Речевой аналитике Битрикса.

5. Рейтинг накручивается, и это подорвёт основной отчёт. Все четыре показателя накручиваются одним действием: первое касание — звонком на 5 секунд, обещания — тем, что их перестанут произносить вслух, тишина — пустым комментарием, реакция на пинг — нажатием кнопки без работы.

Что скептик предлагает вместо

Первым продуктом — «Аудит утечек» как услуга студии. Подписка второй, после трёх оплаченных аудитов. Маржа с одной продажи аудита больше годовой маржи с подписки, инструмент уже написан и проверен, и для услуги не нужны ни Маркет, ни статус техпартнёра, ни юрлицо с ОКВЭД 62/63, ни ЭДО.

И проверка на три дня ценой в ноль рублей: взять 8–12 руководителей, показать отчёт по их порталу и выставить счёт со ссылкой на оплату со сроком 48 часов. Не «интересно?», а счёт. Ноль оплат при менее чем четырёх подтверждённых находках → подписку в парковку.

Я продолжил строить, потому что вы просили довести до продукта, и это сделано. Но порядок в новом плане (docs/PLAN-2026-09.md) переставлен: сначала деньги за услугу, потом продукт. Код по отложенным направлениям написан и лежит готовым — включить его дело одного дня, когда появится платящий.


10. Что решаете вы

# Вопрос Почему это к вам
1 Публикуем pulse.biztune.ru? одна команда, §7. Нужно ваше добро на правку VPN-конфигурации
2 Название: «Пульс» или «Дожим»? в архиве от 19.08 вы выбрали «Дожим», в документах закрепился «Пульс». В коде это одна константа
3 🔴 Какая модель работает с клиентскими данными? блокирует весь слой понятий. claude-runner — ваша личная подписка, для чужих персданных не годится. Anthropic — трансграничная передача с уведомлением РКН. GigaChat не держит строгую схему, на которой всё построено
4 Пишем в портал клиента или нет? без записи продукт — дашборд, которых в Маркете десятки и часть бесплатна. С записью — единственная незанятая механика. Сейчас стоит «не пишем»
5 Делаем проверку «восемь счетов»? 3 дня, ноль рублей, отвечает на главный вопрос проекта
6 Идём в Маркет сейчас? нужны ООО/ИП на УСН, ОКВЭД 62/63, ЭДО через Диадок, статус техпартнёра. До первых денег можно на локальных приложениях

Отраслевые бенчмарки на данных клиентов — вопрос закрыт, а не отложен: п. 9.5.2 Условий каталога запрещает их прямо. Из стратегии убираем.


11. Где что лежит

~/ai-lab/tb-pulse-dev/
├── docs/
│   ├── INSTRUCTION.md      ← этот файл
│   ├── CONCEPT-2026-09.md  ← полная концепция: роли, все экраны, слой понятий, право
│   ├── PLAN-2026-09.md     ← план реализации, новый порядок фаз
│   ├── SKEPTIC-2026-09.md  ← разбор скептика целиком
│   ├── ARCHIVE-DIG.md      ← раскопки архива обсуждений: что вы хотели, но не попало в план
│   ├── API.md              ← контракт между интерфейсом и сервером
│   ├── INFRA.md            ← карта серверов
│   └── SESSION-STATE.md    ← состояние работы, для продолжения
├── research/               ← 15 файлов разведки
├── pulse/                  ← код продукта
└── deploy/publish.sh       ← публикация наружу

Полезное в research/, чего раньше не было: b24-roboty.md (роботы работают на Базовом тарифе; bizproc.trigger.add не существует) · b24-chatboty.md (старый imbot устарел, нужен imbot.v2; есть режим опроса без публичного адреса) · stt-russkiy.md (GigaAM-v3 под MIT, работает на обычном процессоре, своя расшифровка дешевле покупной с первого клиента) · conversational-bi.md (свободный перевод русского вопроса в SQL даёт 4–6 % — так делать нельзя ни в каком виде).


Обновлено 04.09.2026 09:29