Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mdr — квалификация лидов и персональные заходы (Mindbox)

Полный цикл MDR по ивенту в одном скилле, две части: (1) квалификация всех лидов → таблица «целевой / уточнить / нецелевой»; (2) по лидам «Работаем = Да / Уточнить» — бриф из Pipedrive + персональный заход на встречу.

📄 Формат брифа — отдельный файл

Формат брифа по лиду вынесен из общего описания и живёт отдельно:

Файл Что это
references/brief_format.md канон формата: восемь блоков, значки, правила схлопывания, схема JSON, пример
scripts/render_brief.py печатает бриф из JSON — вид форсится кодом, а не памятью агента
python3 scripts/render_brief.py --in brief.json

Ключевое, если скилл уже скачан раньше 18.08.2026:

  • вердикт «можно ли писать» и бриф теперь ОДИН документ, а не два вывода;
  • история касаний идёт третьим блоком, сразу после вердикта — с неё MDR начинает читать;
  • гипотез о боли в брифе больше нет — вместо вывода строка «сигналы» с фактами;
  • старый абзац с каноном в references/outreach_brief.md заменён указателем сюда.

Логика

Часть 1 — квалификация:

  1. Собрать лидов с ивента (по коду кампании / активности регистрации).
  2. Pipedrive-first: всё берём готовым. Сами определяем только: статус у нас, компания/персона целевая, причина, работаем.
  3. Данные компании — as-is из Pipedrive (индустрия / модель / уровень / посещаемость / конкурент). ⚠️ С 21.07.2026 своей квалификации НЕТ: на сайты и в SimilarWeb не ходим, поле пусто → в таблице пусто.
  4. Вердикт + причина; дисквалификаторы: конкурент/партнёр/агентство/незаконное. ⛔ Wood — не работаем вообще (отдельный автоагент).
  5. Таблица в Google Sheet (канон формата, форсится format_table.py).

Часть 2 — заходы (по «Да/Уточнить»): 6. Бриф из Pipedrive (история, конкурент, боль из Activity) → колонка «Бриф». Формат — references/brief_format.md, печать — scripts/render_brief.py. 7. Персональный заход (режим A/B, стиль Тагир/Андрей, кейс с цифрой) → колонка «Заход». Батчем параллельными агентами + агент-критик.

Установка (у каждого MDR своя таблица, свой Google)

  1. Скопировать папку mdr/ в ~/.claude/skills/. ⚠️ В workflow.js путь SKILL — литерал; другой домашний каталог → передай args.skill_dir.
  2. Доступ к Pipedrive MCP (только чтение).
  3. Браузер для SimilarWeb — больше не нужен (фаза Traffic удалена 21.07.2026).
  4. Google Sheet (без сервис-аккаунта и Google Cloud):
    • Рекомендуется: одна командная таблица на всех, 1 вкладка = 1 ивент. Один человек создаёт таблицу и шарит её на каждого MDR как Editor. У всех в config.json один и тот же sheet_id.
    • Альтернатива: у каждого своя таблица (свой sheet_id).
    • cp config.example.json config.json → вписать sheet_id.
    • Один раз авторизоваться СВОИМ Google (scope Sheets) — токен сохранится в token_path. Готовый flow: Personal/Integrations/Scripts/sheets_auth.py (браузер → логин → токен Gmail+Sheets). Каждый под своим аккаунтом.
    • config.json и токен — личные, в GitHub не коммитятся (см. .gitignore).

Скилл читает sheet_id и token_path из config.json. sheet_id может быть общим (командная таблица) или личным — код один и тот же; каждый пишет своим Google-токеном. ⚠️ OAuth-токен в testing-режиме живёт ~7 дней — при ошибке доступа перезапустить sheets_auth.py.

Запуск

/mdr Ивент: 250729_on_foxford · «квалифицируй лидов с Фоксфорда» · «проквалифицируй cc.kz».

Файлы

  • SKILL.md — воркфлоу обеих частей + канон формата таблицы + границы.
  • Часть 1 (квалификация):
    • references/qualification_criteria.md — правила целевой/нет, уровни, сегменты, индустрии, модели, гео, роли, трафик, отток-по-дате, автосайнап.
    • references/pipedrive_fields.md — карта полей Pipedrive + как искать ивент + рецепт стадии сделки + тест-сделки.
    • references/competitors.md · references/partners.md — дисквалификаторы (компания = конкурент/партнёр → нецелевая).
    • references/notion_mdr_playbook.md — дословный MDR Playbook из Notion (первоисточник правил).
    • references/edge_cases.md — крайние случаи и разрешение коллизий: won-и-ушёл, pipe-7 рабочий/шум, дубли org, смена работодателя, JS-SPA ≠ мусор, НКО, нет email/сайта/кейса.
    • references/operations.md — операционка: батчи параллельными агентами (волнами, JSON-хендофф, ретраи), лимиты Pipedrive MCP (custom_fields, getStage, нет getUsers), грабли Sheets API (merge съедает запись), что реально работает с SimilarWeb / журналом / Notion.
    • references/fields.json — 🔑 ЕДИНСТВЕННЫЙ источник ID полей Pipedrive (машиночитаемый). Workflow и скрипты читают ID отсюда, а не из прозы. Заведён после двух повторов бага «в Уровень попал Сегмент» и бага «трафик не читался» (неверный ID поля посещаемости).
  • Часть 2 (заходы):
    • references/outreach_brief.md — как собрать бриф из Pipedrive (боль явная + косвенная из Activity).
    • references/outreach_message.md — как написать заход (режимы A/B, стили Тагир/Андрей, тон, кейс, конкурент, анти-паттерны).
    • references/product.md · references/case_library.md · references/zahody_examples.md · references/restrictions.md — матчасть Mindbox (продукт, кейсы с цифрами, эталоны заходов, стоп-факторы).
  • scripts/build_table.py — writer: создаёт вкладку ивента и пишет заголовок + сводку (считает сам) + шапку 23 колонок + данные + структуру (merge/заморозка/фильтр/ширины). python3 scripts/build_table.py --rows rows.json [--tab NAME] [--write]. Контракт rows.json — в докстринге.
  • scripts/format_table.py — форматтер: 2 цветовые схемы, прочерки действующим, персона «—» у нецелевых, чистка доменов, мусор→Нецелевая, заморозка A–F. python3 scripts/format_table.py --tab <вкладка> [--write].
  • scripts/write_part2.py — writer части 2: точечно дописывает «Бриф» · «Кейсы» · «Заход — Telegram» · «Заход — Email» в существующую вкладку, не пересоздавая её. Ест каталог с res_<ROW>.json от агентов. Сверяет ФИО в строке (защита от записи не в ту строку) и не перезатирает заполненное без --force. python3 scripts/write_part2.py --dir <каталог> --tab <вкладка> [--write].
  • scripts/apply_touches.py — применяет тест занятости контакта: занят, если двустороннее общение <3 мес (клиент отвечал) ИЛИ есть договорённость о контакте в ближайшие 3 мес (блокирует независимо от даты общения). ⚠️ НЕ блокируют общение в одни ворота без ответа и односторонняя задача «попробовать зайти» — двусторонность и природу задачи размечает фаза Touch (last_touch / one_way_touch / task_agreed), скрипт считает только пороги. Ест qualified_<event>.json + touches_<event>.json, перезаписывает строки на месте. python3 scripts/apply_touches.py --rows … --touches … --today YYYY-MM-DD. ⚠️ Пустой last_touch = двустороннего общения не было = пишем (это норма, а не «нет данных»).
  • scripts/validate_rows.py — детерминированная валидация квалификации (замена агента-аудитора): уровень ≠ сегмент и только Wood…Diamond, индустрия из фикс-списка (пустая → WARN), чистые домены, согласованность вердиктов с «Работаем», действующие в прочерках. python3 scripts/validate_rows.py --rows rows.json --fields references/fields.json [--json]. Возвращает 1 при ERROR — прогон должен падать.
  • workflow.js — 🚀 канонический прогон квалификации. Не писать workflow заново под каждый ивент: Workflow({scriptPath:"<скилл>/workflow.js", args:{event_code, out_dir}})больше ничего не нужно, регистранты собираются сами. Зашито: сбор регистрантов САМОСТОЯТЕЛЬНО по коду ивента (никаких заранее заведённых фильтров — фаза Collect сканирует активности регистраций окнами) → один bulk-проход Pipedrive (все поля, включая посещаемость) → склейка дублей орг по названию → отсечение действующих/нецелевых обычным кодом (0 токенов) → сделки только по кандидатам (открытая сделка = батч 2, компания целевая по умолчанию) → тест занятости контакта по шорт-листу (двустороннее общение <3 мес ИЛИ договорённость → не пишем) → валидация скриптом. ⚠️ Фазы Qualify (сайты) и Traffic (SimilarWeb) удалены 21.07.2026 — это они жгли часы и лимиты.
  • Порядок на новом ивенте: workflow.jsbuild_table.py --writeformat_table.py --write(апрув SDR)write_part2.py --writeformat_table.py --write.

Границы

Только ивенты (не контент/курсы). Ничего не пишет в Pipedrive (только читает). Заходы — только тёплым лидам после ивента, и это черновик (MDR доводит текст). Не выдумывает цифры.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages