Free SKILL.md scraped from GitHub. Clone the repo or copy the file directly into your Claude Code skills directory.
npx versuz@latest install product-discoverygit clone https://github.com/ipavelm/ultimate-product-discovery-skill.gitcp ultimate-product-discovery-skill/SKILL.md ~/.claude/skills/product-discovery/SKILL.md--- name: product-discovery description: "Product Discovery по методологии из 18 задач — от анализа рынка до финплана для инвестора. Используй когда человек хочет провести Product Discovery, верифицировать стартап, оценить рыночную гипотезу, подготовиться к инвест-раунду, или упоминает смежные темы: валидация идеи, оценка ниши, разбор конкурентов, product-market fit, подготовка питча, unit-экономика стартапа, географическая экспансия в новую страну, go-to-market для рынков SEA / Asia / MENA. Часто люди не называют это PD явно — говорят 'помоги понять есть ли рынок', 'оцени идею', 'нужна презентация для ангела', 'выходим в Таиланд/Сингапур/UAE, как оценить рынок?'. Используй скил и в этих случаях. Три режима: Light (~45 мин, idea-стадия), Full (~2–3 часа, MVP с клиентами), Geographic Expansion (~2 часа, продукт в новой гео). Результат — 3–4 артефакта в /mnt/user-data/outputs/: one-pager.pptx, financial-plan.xlsx, presentation.pptx, опционально interview-guide.docx." metadata: version: "3.8" --- # Product Discovery Скил проводит структурное исследование рыночной гипотезы стартапа. Объединяет методологии: Jobs-to-be-Done (Ulwick/Christensen), Opportunity Solution Tree (Teresa Torres), Customer Development (Steve Blank), The Mom Test (Rob Fitzpatrick), Lean Canvas (Ash Maurya), PESTEL, SWOT, Business Model Canvas. Результат — четыре артефакта в `/mnt/user-data/outputs/`: - `one-pager-[slug].pptx` — краткая выжимка для CEO / инвестора - `financial-plan-[slug].xlsx` — финансовая модель на основе главного сценария - `presentation-[slug].pptx` — презентация этапа Verification - `interview-guide-[slug].docx` — гайд для живых интервью (только в Full-режиме, из задачи 9) ## Как устроен скил Методология разбита на 18 задач в 6 блоках. Детальные инструкции по блокам вынесены в `references/` — читай соответствующий файл перед стартом блока, чтобы не держать все 1500 строк в контексте сразу. | Блок | Задачи | Файл | Что получится | |------|--------|------|---------------| | I. Анализ рынка | 1–6 | [references/block-1-market.md](references/block-1-market.md) | Карточка рынка, тренды, feature matrix, TAM/SAM/SOM, PESTEL | | II. Потребители | 7–9 | [references/block-2-customers.md](references/block-2-customers.md) | JTBD, Job Map, OS, CJM, таблица инсайтов, интервью-гайд | | III. Стратегия | 10–14 | [references/block-3-strategy.md](references/block-3-strategy.md) | Lean Canvas / BMC + PAC, SWOT, OST, скоринг сценариев, RICE | | IV. Валидация | 15–17 | [references/block-4-validation.md](references/block-4-validation.md) | Пул гипотез, план rapid testing, PMF-индикаторы | | V. Главный сценарий | 18a | [references/block-5-main-scenario.md](references/block-5-main-scenario.md) | Параметры для финплана | | VI. Артефакты | 18b–d | [references/block-6-artifacts.md](references/block-6-artifacts.md) | One-pager, финплан, презентация | Дополнительные материалы: - [references/glossary.md](references/glossary.md) — термины PD. Прочитай перед первой задачей или точечно при встрече незнакомого термина - [references/examples.md](references/examples.md) — сквозные примеры заполнения BMC, Lean Canvas, PAC, OST, Job Map. Читай перед заполнением холстов, чтобы сохранить уровень детализации - [references/customer-development.md](references/customer-development.md) — альтернативный путь для нового рынка (читай, если в задаче 1 тип рынка классифицирован как «Новый») - [references/strategic-pivot.md](references/strategic-pivot.md) — альтернативный путь для действующего бизнеса, рассматривающего стратегический pivot (Service → Product, новая гео, новый сегмент). Читай, если стадия = «есть выручка», бизнес работает ≥ 1 года, и вопрос не «есть ли рынок», а «стоит ли менять курс» Скрипты в `scripts/` для повторяющихся технических операций: - `preflight_check.sh` — проверка доступности инструментов перед стартом PD - `init_kb.py` — создание Knowledge Base со стандартным шаблоном + `/home/claude/.pd_env` с `PD_MODE` - `delete_light_slides.py` — удаление пустых слайдов в Light-режиме (из 34 → 21) - `reorder_summary_first.py` — перемещение листа Summary первым в финплане, если после openpyxl-операций он сместился - `add_competitor_comparison_slide.py` — вставка слайда «Сравнение конкурентов» в презентацию (применяется к шаблону один раз; если шаблон уже обновлён — пропускает) - `finalize_pptx.sh` — финальный шаг презентации: pack.py → LibreOffice round-trip → верификация через python-pptx (Правило 3) - `finalize_docx.sh` — финальный шаг интервью-гайда: LibreOffice round-trip → верификация через python-docx (Правило 6). Обязателен для Word-совместимости - `roll_formulas.py` — раскатывает формулы мес. 1 → мес. 2–12 в P&L и Cash Flow финплана (Правило 4) ## Критические правила безопасности Эти правила защищают артефакты от типовых ошибок, обнаруженных в продакшене. Нарушение любого — непригодный для инвестора результат. ### Правило 1 — Зафиксируй режим PD_MODE перед запуском скриптов В Шаге 0 после выбора режима установи переменную окружения: ```bash export PD_MODE=light # или full ``` Это нужно, чтобы скрипты `scripts/*.py` могли отказаться работать в неверном режиме. Таблица соответствия: | Скрипт | Запускать в режиме | НИКОГДА не запускать в | |--------|--------------------|--------------------------| | `delete_light_slides.py` | Light | Full / Geographic Expansion — удалит 13 нужных слайдов (тренды, PESTEL, CJM, альтернативный сценарий, RICE, PMF) | | `add_competitor_comparison_slide.py` | Light / Full / Geographic Expansion | — | | `reorder_summary_first.py` | Light / Full / Geographic Expansion | — | | `roll_formulas.py` | Light / Full / Geographic Expansion | — | Перед каждым `python3 scripts/X.py` проговаривай: «Режим проекта: [light/full] → этот скрипт [допустим/недопустим]». ### Правило 2 — НИКОГДА не используй `pack.py --validate false` Флаг `--validate false` отключает проверки целостности OOXML. Файл пройдёт `pack.py` без ошибок, но **PowerPoint откажется его открывать**. Типичная причина — дублированные ссылки на notesSlides после копирования слайдов. Если `pack.py` падает с ошибкой валидации — читай сообщение и устраняй корневую причину. Типичные ошибки и решения: [references/block-6-artifacts.md](references/block-6-artifacts.md) раздел «Troubleshooting pack.py». ### Правило 3 — PowerPoint round-trip как финальный шаг (STOP-GATE) **Когда срабатывает:** перед любым `cp *.pptx /mnt/user-data/outputs/`. **Что делать:** ВМЕСТО `cp` запусти `finalize_pptx.sh`. Скрипт сам копирует файл в outputs после round-trip: ```bash bash scripts/finalize_pptx.sh /home/claude/presentation.pptx /mnt/user-data/outputs/presentation-[slug].pptx ``` Этот скрипт делает за один вызов: валидную упаковку → LibreOffice round-trip через Impress Office Open XML filter → верификацию через python-pptx. **Failure mode без этого шага:** презентация открывается в LibreOffice и Google Slides, но PowerPoint отказывается её открывать из-за особенностей OOXML-манифестов (дублированные notesSlides-ссылки, некорректные relationships). Для инвестора это критично. **Как понять, что правило соблюдено:** если ты собираешься скопировать .pptx в outputs через `cp` или `present_files` без предварительного `finalize_pptx.sh` — СТОП. Вернись к скрипту. Ручной round-trip через `soffice --convert-to pptx` тоже работает в базовом случае, но `finalize_pptx.sh` дополнительно прогоняет python-pptx верификацию и ловит 4 класса ошибок (неправильные slide-references, sparse shapes, сломанные relationships, dangling notesSlides) — эти проверки не происходят при ручном soffice-вызове. ### Правило 4 — Раскатай формулы финплана на мес. 2–12 (STOP-GATE) **Когда срабатывает:** сразу после того, как заполнил лист «Допущения» финплана значениями проекта. До того, как заполнять P&L или Cash Flow. **Что делать:** ```bash python3 scripts/roll_formulas.py /home/claude/financial-plan.xlsx ``` Скрипт находит формулы в колонке C (мес. 1) на листах P&L и Cash Flow и раскатывает их в D–N (мес. 2–12) со сдвигом ссылок. Особые случаи (план роста клиентов, накопительные итоги) описаны в [references/block-6-artifacts.md](references/block-6-artifacts.md) Шаг 2.5. **Failure mode без этого шага:** финплан покажет выручку только за 1 месяц — инвестор откроет файл, увидит `GMV = 147K руб` в одной ячейке и пустые колонки D–N. Вывод: «модель не доделана». Доверие потеряно. **Как понять, что правило соблюдено:** после `roll_formulas.py` открой P&L и проверь — колонки D–N (мес. 2–12) содержат формулы, значения после `recalc.py` растут от мес. 1 к мес. 12. Если ручное раскатывание через `shift_formula` в собственном скрипте — ок технически, но теряешь защиту скрипта от типовых ошибок (например, некорректный сдвиг $-зафиксированных ссылок). ### Правило 5 — Очисти сегменты-плейсхолдеры в шаблоне финплана Начиная с v3.7 шаблон `financial-plan-template.xlsx` содержит нейтральные сегменты-плейсхолдеры: «Сегмент 1», «Сегмент 2», «Сегмент 3», «Сегмент 4» (ранее были одежные «Блогеры», «Локальные бренды» и т.п.). Формулы «Модели» ссылаются на структуру сегментов. **Что делать:** замени «Сегмент 1–4» на реальные имена твоих сегментов (из Lean Canvas / BMC). Если сегментов меньше 4 — оставь лишние как неиспользуемые, либо обнули их значения. **Рекомендуемый подход — сделать P&L автономным от «Модели»:** задать план роста клиентов и GMV напрямую в P&L, не ссылаясь на `='Модель'!...`. Это называется «Вариант A» в [references/block-6-artifacts.md](references/block-6-artifacts.md) Шаг 2.6. Плюс: если ошибся в «Модели» — Summary всё равно корректный. **Failure mode:** если оставить "Сегмент 1–4" как есть без замены на реальные, но при этом подключить P&L через `='Модель'!...` — Summary покажет выручку по несуществующим сегментам. Инвестор не поймёт, о чём модель. ### Правило 6 — Word round-trip для docx-артефактов (STOP-GATE) **Когда срабатывает:** перед любым `cp *.docx /mnt/user-data/outputs/`. **Что делать:** вместо `cp` запусти `finalize_docx.sh`: ```bash bash scripts/finalize_docx.sh /home/claude/interview-guide.docx /mnt/user-data/outputs/interview-guide-[slug].docx ``` Скрипт делает LibreOffice round-trip через Microsoft Word 2007 XML filter + верификацию через python-docx. Гарантирует, что файл откроется в Word. **Failure mode без этого шага:** библиотеки типа `docx` npm package создают технически валидные .docx файлы, которые LibreOffice, python-docx и Google Docs открывают без проблем, но Word отказывается открывать из-за битых ссылок на стили (≈30% параграфов с `style: None` при парсинге). Обнаруживается только когда пользователь открывает файл в Word и видит ошибку — слишком поздно. **Рекомендация по инструментам:** лучше использовать `python-docx` вместо `docx` npm package для генерации интервью-гайдов и других docx-артефактов. python-docx создаёт гарантированно валидную структуру для Word. Если npm используется для совместимости с другими частями pipeline — всегда прогоняй через `finalize_docx.sh` в конце. **Как понять, что правило соблюдено:** вывод `finalize_docx.sh` содержит `all styles resolved`. Если скрипт падает с `🚩 N paragraphs with broken style references` — docx реально поломан, нужно пересоздать через python-docx (извлечь текст из битого файла, вставить в новый doc через `python-docx`). ## Границы скила PD делает: верифицирует рыночную гипотезу, находит целевой сегмент и Job-to-be-Done, формирует финансовую модель на основе допущений, выявляет рисковые гипотезы, создаёт план rapid testing, синтезирует данные из интервью или суррогатов. PD не делает: не строит продуктовый роадмап, не проводит A/B тесты на живом продукте, не заменяет бухгалтерский учёт, не делает технический due diligence, не проводит юридическую проверку рынка, не заменяет живые интервью (только суррогат через G2/отзовики). Если человек просит что-то из второго списка — объясни, где проходит граница, и предложи подходящую альтернативу. ## Режимы работы: Light, Full, Geographic Expansion PD адаптируется под ситуацию. Это не «тарифы» — это разные глубины исследования под разный контекст. **Light (~45 минут)** — для idea-стадии, когда ещё нет ни MVP, ни клиентов. Задачи: 1, 3, 5, 7, 10, 11, 12, 14 (адаптированная), 18a, 18b/c/d (адаптированные). Пропускаются: тренды (2), ключевой конкурент (4), PESTEL (6), CJM (8), интервью (9), альтернативные сценарии (13), пул гипотез (15), rapid testing (16), PMF-индикаторы (17). **Full (~2–3 часа)** — для MVP со стадии первых клиентов или подготовки к инвест-раунду. Все 18 задач. **Geographic Expansion (~2 часа)** — для продукта, который уже работает в одной гео и выходит в новую (другая страна, другой язык, другой регулятор). Все 18 задач, но с модификацией инвест-трекера и критериев: - Трекшн из «домашней» гео засчитывается с дисконтом 0.5× (клиенты и LOI из старой гео — **половинная** валидация для новой). - В Шаге 0 обязательно уточни у человека: «Продукт уже работает где-то? Сколько платящих клиентов? В каком диапазоне ARR?» → записывай это в KB отдельной секцией «Home-geo baseline». - Задача 1 (тип рынка) почти всегда = «Существующий» для целевой гео (потому что переносите известный продукт), но валидация нужна, что конкретный сегмент в новой гео готов покупать. - Задача 9 (интервью) — обязательна. Нельзя опираться на интервью из «домашней» гео — культурные и регуляторные различия критичны. - Задача 16 (rapid testing) — стартует с тест-маркетинга в новой гео через суррогат (Telegram/LinkedIn native speakers), не со Smoke Test на существующую аудиторию. - Красный флаг SAM смягчается, если в Шаге 0 озвучен **multi-geo roadmap** с TAM всей Phase 2 ≥ стандартного SAM-порога. Пример Bittrace Thailand: SAM TH $6.3M < 1 млрд ₽, но SEA-5 Phase 2 даёт $95M — красный флаг становится «жёлтым». **Как выбрать режим:** сигналы для каждого: - Light: «быстро посмотреть», «оценить идею», нет MVP - Full: «нужна презентация для ангела», «есть клиенты, готовлю seed», MVP работает - Geographic Expansion: «продукт работает в РФ, хотим выйти в TH/UAE/SEA», «запускаем в новой стране», уже есть traction где-то Если пользователь описывает «идею продукта, который мы хотим сделать для нового рынка» — это Full, не Geographic Expansion. GE применяется только когда продукт уже работает. ## Красные флаги: когда прерывать PD PD может обнаружить сигналы, что продолжать нет смысла без перестройки гипотезы. Смысл их в том, что дальнейшая работа по исходной гипотезе даст артефакты, которые не отражают реальность — инвестору они покажутся неправдоподобными, команде дадут ложное чувство уверенности. | Сигнал | Порог | Почему важно | Действие | |--------|-------|--------------|----------| | SAM мал (Product/Service/Marketplace) | < 1 млрд ₽ | Даже 10% доли → 100 млн выручки — недостаточно для венчурной модели роста | Расширить сегмент или регион | | SAM мал (Hardware) | < 500 млн ₽ | У hardware ниши обычно уже, но и чек выше — 500 млн приемлемый порог | Расширить сегмент или регион | | OS низкий у всех outcomes | < 8 у всех | Нет ни одной болевой точки, за решение которой готовы платить — рынка нет | Пересмотреть JTBD и сегменты | | Интервью не подтверждают боль | < 5 из 10 | Боль воображаемая или сегмент не тот — продукт будет решать несуществующую проблему | Пересмотреть гипотезу потребности | | LTV/CAC не сходится даже в оптимисте | < 1.5x | Экономика unit-модели принципиально не складывается | Pivot по монетизации | | Нет дифференциации от 4 типов конкурентов | Все 4 закрыты | Продукт — копия существующих, без устойчивого преимущества | Пересмотреть Value Proposition | | Модель требует лицензии / сертификации, которой нет | PESTEL Legal: угроза c «Высокой» вероятностью | Инвестор проверяет regulatory compliance первым делом. Без лицензии/сертификации сделка не состоится ни на каком раунде — это блокер, а не риск | Перестроить модель (B2B вместо B2C с физлицами, лицензирование, партнёрство с лицензированным игроком) | **Регуляторный красный флаг подробнее.** Возникает чаще всего в FoodTech, MedTech, FinTech, EdTech, LegalTech — там, где государство исторически активно регулирует. Примеры блокирующих ситуаций: продажа еды от частных поваров без санэпидлицензии кухни (Роспотребнадзор), финансовые услуги без лицензии ЦБ, медицинские советы без статуса медорганизации, образование без лицензии Минпросвещения/Рособрнадзора для дипломов. В задаче 6 (PESTEL) выдели Legal-фактор: если угроза «Лицензирование обязательно» имеет Значимость 3 и Вероятность 4+, и у команды нет лицензии / плана её получения — это автоматически блокирующий флаг, не просто риск. Запиши в главный вывод. При появлении красного флага — прерви работу и сообщи человеку. Продолжать без его решения нельзя: артефакты получатся отражением нежизнеспособной гипотезы. ### Pivot vs. Корректировка | Ситуация | Рекомендация | |----------|-------------| | SAM мал + OS < 8 у всех сегментов | **Pivot:** смени целевой сегмент или проблему | | SAM мал, но OS ≥ 10 в одном сегменте | **Корректировка:** сузь фокус на этом сегменте | | Интервью не подтверждают боль + OS < 8 | **Pivot:** вернись к Шагу 0, пересмотри проблему | | Интервью не подтверждают боль, но OS ≥ 10 | **Корректировка:** замени гипотезу потребности, не продукт | | LTV/CAC < 1.5x везде | **Pivot:** смени модель монетизации или целевой сегмент | | LTV/CAC < 1.5x только в пессимисте | **Корректировка:** оптимизируй CAC или повысь чек | | Нет дифференциации | **Корректировка:** пересмотри Value Proposition, не рынок | ## Шаг 0: Сбор исходных данных Перед стартом PD нужны ответы на 16 вопросов. Используй `ask_user_input_v0` для структурированного сбора — группируй по 3 связанных вопроса в один вызов, чтобы человек отвечал потоком, а не 16 отдельными тапами. **Готовые JSON-шаблоны опросов:** [references/step-0-questions.md](references/step-0-questions.md). Там разбивка на 4 вызова `ask_user_input_v0` с готовыми options, плюс список вопросов в свободной форме. Бери оттуда, не пересобирай структуру вопросов с нуля. **Обязательные (1–8):** название проекта, описание (что предлагает и какую проблему решает), рынок (страна/регион), сегменты (кто клиент), конкуренты (2–3 названия), бизнес-модель (подписка/комиссия/разовые), B2B или B2C, бюджет на тестирование гипотез (в рублях). **Для финплана (9–12):** стадия (idea/MVP/клиенты/выручка), горизонт планирования (12 или 24 мес.), инвестиции (сумма или «нет»), первые клиенты/продажи. **Для обновления PD (13–14):** данные из CRM/аналитики (если есть — приложит файл), проводился ли PD раньше (если да — приложит прошлый финплан). **Контекстные (15–16):** - Тип рынка (если человек знает): существующий / ресегментированный / новый / «определим в задаче 1» - Тип бизнеса: Product (SaaS, приложение) / Service (консалтинг, агентство) / Marketplace / Hardware — используется в задачах 10, 18c и инвест-трекере для выбора правильных шаблонов и порогов **Про данные из CRM (вопрос 13):** для расчётов достаточно агрегированных метрик — количество клиентов, средний чек по сегменту, конверсии по этапам, churn по когортам. Имена, email, телефоны реальных клиентов не нужны. Если они есть в файле — человеку стоит их удалить перед отправкой; скил не блокирует обработку файлов с персональными данными, но честно отметит риск. После ответов: 1. **Запусти pre-flight check:** `bash scripts/preflight_check.sh`. Он за 10 секунд проверит `extract-text`, Python-библиотеки (`openpyxl`, `python-pptx`, `python-docx`), доступ к шаблонам в `assets/`. Если что-то недоступно — смотри таблицу fallback ниже. 2. **Составь план выполнения** — список задач, сроки, порядок. 3. **Если загружен предыдущий финплан (вопрос 14):** прочитай его через `extract-text` или `openpyxl`, определи, какие блоки устарели (обычно блок I — рынок/конкуренты, задачи 15–16 — гипотезы). Предложи: «Вижу предыдущий PD от [дата]. Обновим только блоки I и IV (~45 мин) или проведём полный PD?» 4. **Выбери режим** — Light, Full или Geographic Expansion — по ответу пользователя. 5. **Проверь совместимость горизонта и типа рынка:** если тип рынка «Новый» и горизонт 12 мес., предложи 24 мес. — на новом рынке 6 мес. уходит на Customer Discovery (см. `references/customer-development.md`), выручка первых 6 мес. близка к нулю, 12 мес. не хватит для Runway. 6. **Инициализируй Knowledge Base:** `python3 scripts/init_kb.py --project "Название" --mode Light|Full|GeoExpansion`. Скрипт также создаст `/home/claude/.pd_env` с экспортом `PD_MODE` — `source /home/claude/.pd_env` перед запуском скриптов из Правила 1. 7. Подтверди план с человеком и начинай с Задачи 1. ### Fallback при провале pre-flight | Что отсутствует | Последствия | Что делать | |-----------------|-------------|------------| | `extract-text` | Нельзя быстро читать текст из .pptx/.xlsx | Использовать `openpyxl` / `python-pptx` напрямую. Для 18c Шаг 1: `openpyxl.load_workbook()` + `ws.iter_rows()`. Для 18b: цикл по `slide.shapes` | | `openpyxl` | Задача 18c (финплан) невозможна | Остановить PD, сообщить человеку: «Без openpyxl финплан не создать. Могу сделать one-pager и презентацию — финплан опишу в markdown как inputs для ручного заполнения» | | `python-pptx` | Задачи 18b, 18d невозможны | Вернуть результаты в markdown, человек соберёт презентацию сам | | `python-docx` | Задача 9 упрощается | Вывести гайд как markdown в `/mnt/user-data/outputs/` | | `assets/` недоступны | Нет шаблонов | PD невозможен как дизайнерский результат. Остановить, уточнить путь к скилу | ## Формат summary после каждого блока После завершения блока (I–V) показывай человеку структурированное резюме и жди подтверждения перед переходом к следующему. Это две вещи сразу: даёт человеку точку контроля (можно прервать без потери результатов) и фиксирует прогресс для Knowledge Base. ``` ✅ БЛОК [N] ЗАВЕРШЁН — [Название блока] ───────────────────────────────────────── 📊 Ключевые находки: • [Факт 1 с конкретными цифрами] • [Факт 2 с конкретными цифрами] • [Факт 3 с конкретными цифрами] 📎 Сгенерированные артефакты: • [Имя файла или «нет артефактов в этом блоке»] 🚩 Красные флаги: [нет / описание если есть] ⚠️ Достоверность данных: [Высокая / Средняя / Низкая] Причина: [источники, на которые опирались] 💡 Рекомендация перед следующим блоком: [Конкретное действие или уточнение] ▶️ Продолжить → Блок [N+1]: [Название]? Да / Нет / Скорректировать ───────────────────────────────────────── ``` ## Knowledge Base и сохранение прогресса PD может длиться 2–3 часа и прерваться в любом месте. Knowledge Base в `/home/claude/pd-knowledge-base.md` — память скила, она же позволяет возобновить работу после паузы и передать контекст. **Два уровня сохранения:** - **После каждой задачи (инкрементально):** короткая запись в «Журнал выполнения» — название задачи, 3–5 ключевых находок, статус `done` / `partial` / `blocked`. Занимает 30 секунд и страхует от потери контекста в середине блока. - **После каждого блока (полное):** обновляй раздел блока по шаблону из `init_kb.py`. **Возобновление:** Если человек возвращается к прерванному PD («давай продолжим»), прочитай KB и: 1. Проверь режим в шапке (`mode: Light` или `mode: Full`). Если плейсхолдер не заполнен конкретным значением — KB повреждён, запроси режим у человека. 2. Проверь `skill-version` — если она старее текущей, предупреди и отметь, что формат может отличаться. 3. Найди последнюю запись `done`, скажи: «Последний завершённый шаг: [задача N] в режиме [M]. Следующий шаг: [задача N+1]. Продолжаем или нужно пересмотреть?» 4. После подтверждения — продолжай с N+1 в том же режиме. **Смена режима посреди PD:** - **Light → Full** — редкий случай, но реалистичный: человек увидел результаты Light и захотел глубже. Добери задачи 2, 4, 6, 8, 9, 13, 15, 16, 17 в порядке блоков. Артефакты пересоздай. Добавь в KB строку «Режим обновлён до Full: [дата]». - **Full → Light** — обычно означает, что человек спешит. Закрой PD текущим состоянием, создай артефакты из собранного, в финальной сводке пометь пропущенные задачи. ## Работа с неопределённостью Когда данных мало или рынок новый — несколько приёмов, которые помогают сохранить честность оценок без ухода в «ну, я ничего не знаю». **Метод аналогий** (для нового рынка). Ищи похожий рынок в другой стране или другом временном периоде: нет данных по РФ → бери Бразилию/Польшу/Турцию с поправкой на ВВП и численность; новый технологический рынок → смотри, как развивался похожий 3–5 лет назад в США; новая ниша внутри существующей вертикали → бенчмарки из соседней вертикали (например, FinTech for nurses → FinTech for teachers). Фиксируй аналогию явно: «Используем данные по рынку X в стране Y как прокси, коэффициент Z». **Индикатор достоверности** (🟢/🟡/🔴) — присваивай каждой ключевой цифре. 🟢 — первичный источник, верифицирован через `web_fetch`. 🟡 — агрегатор (Statista), оценки аналитиков. 🔴 — экспертная оценка без подтверждения. В финплане ячейки с 🔴 помечай жёлтым фоном. **Когда ставить 🔴 на весь блок, а не отдельные цифры:** нет ни одного отраслевого отчёта, нет конкурентов с публичными данными, менее 3 интервью, рынок существует менее 2 лет. В таком случае пиши в KB явно: «Блок N: достоверность 🔴 — данных недостаточно, все цифры требуют проверки после 10+ интервью». **Диапазоны вместо точных цифр:** «TAM 2–8 млрд ₽ (разброс 4x — данных мало)» лучше, чем «TAM 4.7 млрд ₽» без источника. Инвесторы ценят честность в оценках больше, чем псевдоточность. **Для нового рынка** — читай `references/customer-development.md`. Там описан протокол Customer Development (Steve Blank) как альтернатива стандартному Smoke Test + Pre-sale, который на новом рынке работает плохо. ## Бюджет tool calls PD не должен уходить в «глубокое исследование» без конца. Ориентируйся на лимиты: | Блок | Лимит `web_search` + `web_fetch` | |------|----------------------------------| | I. Рынок (задачи 1–6) | До 12 вызовов на блок, 3 на задачу | | II. Потребители (7–9) | До 6 вызовов (основной расход — задача 9C, суррогат интервью) | | III. Стратегия (10–14) | До 4 вызовов (проверка конкурентов в OST) | | IV. Валидация (15–17) | До 3 вызовов (бенчмарки по отрасли) | | Всего на полный PD | ~25 вызовов | Если лимит близок к исчерпанию — суммаризируй собранное в KB, переходи дальше с пометкой достоверности 🟡 или 🔴. Дополнительные поиски «для полноты картины» обычно не меняют выводов. Исключение: человек явно просит углублённый анализ — тогда лимиты снимаются, но уведоми о возможном превышении. **Работа с результатами `web_search`:** каждый поиск возвращает ~1500 слов × 10 источников. Если оставлять их в контексте целиком, за 25 вызовов накопится ~50k токенов только от поисковиков — это съедает бюджет контекста, который нужен под KB, артефакты и диалог. Поэтому: 1. **Сразу после `web_search`** — извлекай только конкретные цифры и факты, которые нужны для текущей задачи: объём рынка, CAGR, имя конкурента, цена, доля. Записывай их в KB или в ответ агента. 2. **Не держи полный текст поисковой выдачи в контексте** между задачами. Один раз извлёк цифру, зафиксировал источник (URL + дата), забыл про сам текст. 3. **Для `web_fetch`** — если статья длинная, читай только те секции, где упомянуты нужные цифры; остальное не загружай в контекст. Это не формальное правило, а практическая оптимизация: при 2–3 часах PD контекст — главный дефицит, и мусор от поисков оттесняет полезные данные (JTBD, интервью, финплан). ## Завершение PD Когда все три (или четыре в Full) артефакта созданы — не заканчивай разговор молча. Executive summary в чат нужен для того, чтобы человек за 30 секунд понял результат и следующие шаги. **Алгоритм определения главного вывода:** посчитай активированные критерии. | Условие | Счёт | |---------|------| | Красных флагов из STOP/PIVOT-таблицы активировано | 0 / 1-2 / ≥3 | | Инвест-готовность (трекер после PD) | ≥ 6/8 / 4-5/8 / < 4/8 | | OS главной возможности | ≥ 15 / 10-14 / < 10 | | LTV/CAC в базовом сценарии | ≥ 3x / 1.5-3x / < 1.5x | **Правила:** - **Автоматический No-go (regulatory blocker):** если активирован красный флаг «Модель требует лицензии, которой нет», то главный вывод — No-go независимо от остальных метрик. Даже идеальный OS, LTV/CAC и трекшн не компенсируют юридическую невозможность. Предложи 2–3 пути перестройки модели (B2B вместо B2C, лицензирование, партнёрство с лицензированным игроком) и возврат к Шагу 0. - **Go** — 0 красных флагов И инвест-готовность ≥ 6/8 И LTV/CAC ≥ 3x - **Go с рисками** — 1–2 красных флага (кроме LTV/CAC < 1.5x и regulatory blocker) И инвест-готовность ≥ 4/8. Указать риски и план их закрытия. - **Pivot** — 1–2 красных флага, включая LTV/CAC или отсутствие дифференциации, но OS ≥ 10 и SAM достаточный. Предложи конкретное направление pivot'а по таблице «Pivot vs. Корректировка». - **No-go** — ≥ 3 красных флагов ИЛИ SAM ниже порога ИЛИ OS < 8 у всех сегментов ИЛИ regulatory blocker. Рекомендуй остановку проекта или возврат к Шагу 0 с другой гипотезой. Честность важнее оптимизма. Если данные говорят No-go — так и скажи, не смягчая. Но даже при No-go предлагай альтернативу, если видишь сигнал: «B2C не подтвердился, но в интервью есть сигнал для B2B SMB — стоит проверить отдельной гипотезой». **Шаблон сводки:** ``` ✅ PRODUCT DISCOVERY ЗАВЕРШЁН — [Название проекта] ═══════════════════════════════════════════════ 📋 Выполнено: [N]/18 задач в режиме [Light/Full] 📁 Артефакты: • one-pager-[slug].pptx • financial-plan-[slug].xlsx • presentation-[slug].pptx • interview-guide-[slug].docx (если Full) 🎯 Главный вывод: [Go / Go с рисками / Pivot / No-go] Обоснование: [сколько красных флагов, инвест-готовность N/8, LTV/CAC, OS] 💡 Вердикт по ценности: Value Proposition: «[из задачи 10]» Главный сегмент: [из задачи 18a] Монетизация: [модель, чек в ₽] 📊 Ключевые метрики (базовый сценарий): • TAM / SAM / SOM: [X / Y / Z] • LTV / CAC: [N.Nx] • Runway: [N мес.] • Break-even: [мес. N] 🚩 Топ-3 риска: 1. [Гипотеза] — проверить методом: [метод] за [срок] 2. ... 3. ... 🎯 Инвест-готовность: [N/8 ✅] Закрыть до раунда: [⚠️ и ❌ пункты из трекера] ▶️ Следующие 3 шага (на 2 недели): 1. [Действие] — владелец [роль] — срок [+N дней] 2. ... 3. ... ═══════════════════════════════════════════════ ``` Если блоки пропущены (Light), пометь явно: «NPS/Retention требует верификации — задача 17 пропущена в Light-режиме». ## Трекер инвест-готовности Пороги зависят от двух параметров: **тип бизнеса** (вопрос 16 из Шага 0) и **этап раунда**, к которому человек готовится. Инвесторы pre-seed/seed смотрят на валидацию гипотезы и ранний traction, Series A — на proof of scalable GTM и метрики роста, Series B — на operational efficiency и готовность к масштабу. Метрики одни, а пороги для каждого этапа радикально разные. **Определение этапа раунда:** в Шаге 0 агент должен уточнить у человека (если не ясно из контекста): «Какой раунд планируете — pre-seed/seed, Series A, Series B или позже?». Сигналы из первого сообщения: «готовлюсь к ангелу», «seed-раунд» → pre-seed/seed; «раунд A», «~$5M ARR», «расширяемся на новые рынки» → Series A; «уже есть $10M+ ARR», «масштабируем команду», «международный выход» → Series B. ### Пороги для pre-seed / seed Это основной сценарий использования скила — стартапы, которые ищут первых-вторых чеков. Цель: доказать, что продукт решает реальную боль и есть ранний спрос. | # | Критерий | Product | Service | Marketplace | Hardware | Geographic Expansion | Источник | |---|----------|---------|---------|-------------|----------|----------------------|----------| | 1 | Боль подтверждена, OS ≥ 12 | ✅/⚠️/❌ | ✅/⚠️/❌ | ✅/⚠️/❌ (обе стороны) | ✅/⚠️/❌ | OS ≥ 12 в **новой** гео (не засчитывается OS из home-geo) | Задачи 7, 9 | | 2 | TAM ≥ 5 млрд ₽, SAM ≥ 1 млрд ₽ | Стандарт | Стандарт | Стандарт | SAM ≥ 500 млн ₽ | SAM новой гео может быть < 1B ₽, ЕСЛИ multi-geo roadmap даёт combined SAM ≥ 3B ₽ | Задача 5 | | 3 | LTV/CAC ≥ 3x (базовый) | ≥ 3x | ≥ 3x от проекта | ≥ 3x по сторонам | ≥ 2x | ≥ 3x в home-geo **или** проектная модель новой гео | Финплан | | 4 | Retention 3-й мес. (когортный) | ≥ 30% B2C / ≥ 50% B2B | Repeat rate ≥ 40% | ≥ 40% liquidity | Repeat rate ≥ 20% | Из home-geo (Full-credit: данные уже есть) | Задача 17 | | 5 | Команда с релевантным опытом | Обязательно | +продажи B2B | +operations | +production & supply chain | +local BDM / лицензия / Thai entity + партнёр-лоббист | Задача 10 | | 6 | Трекшн | ≥ 10 платящих или LOI | ≥ 3 оплаченных | ≥ 20 + 5 транзакций | ≥ 50 pre-order | **≥ 2 платящих в новой гео** ИЛИ **≥ 10 в home-geo × 0.5 + LOI в новой** | Задача 16 | | 7 | Break-even в базовом | ≤ 18 мес. | ≤ 12 мес. | ≤ 24 мес. | ≤ 36 мес. | ≤ 24 мес. (длиннее — setup local team + subsidiary) | Финплан P&L | | 8 | Уникальный канал / advantage | Обязательно | Экспертиза/бренд | Якорные партнёры | IP/патенты | Local reference / endorsement (регулятор, крупный клиент) | Задача 10 | **Интерпретация:** 7–8 ✅ → готов к pre-seed/seed. 5–6 ✅ → закрой ⚠️ за 1–2 мес. до раунда. < 5 ✅ → рано, фокус на валидации (задачи 15–17). **Для Geographic Expansion:** если 4+ критериев из 8 зелёные, и хотя бы один из критериев 6 или 8 зелёный — можно идти на pre-seed/seed для расширения. Home-geo traction как base, target-geo validation как promise. Цена раунда обычно дисконтируется на 20–30% vs. clean-idea стартап, потому что риск ниже. ### Пороги для Series A Здесь инвесторы уже не проверяют «есть ли боль» — это должно быть доказано к моменту раунда. Их вопрос: «масштабируется ли ваш канал продаж при кратном увеличении затрат». Пороги не просто выше, а качественно другие. | # | Критерий | Product (SaaS) | Service | Marketplace | Hardware | Источник | |---|----------|---------------|---------|-------------|----------|----------| | 1 | ARR / годовая выручка | ≥ $1M ARR (или ₽-эквивалент) | ≥ ₽100 млн/год | ≥ $1M GMV в мес. | ≥ 1000 шт. продано | Финплан | | 2 | Рост MoM / YoY | ≥ 10–15% MoM или 3x YoY | 2x YoY | 2x YoY GMV | 2–3x YoY | Финплан | | 3 | Gross Margin | ≥ 70% | ≥ 60% | ≥ 50% (после take rate) | ≥ 40% | Финплан | | 4 | Net Revenue Retention (NRR) | ≥ 110% B2B, ≥ 90% B2C | ≥ 80% repeat clients | ≥ 60% MAU retention | N/A — замеряй repeat rate | Задача 17 | | 5 | Payback period | ≤ 12 мес. | ≤ 6 мес. | ≤ 18 мес. | ≤ 18 мес. | Финплан | | 6 | Команда — закрыты key hires | CEO + CTO + VP Sales | CEO + Head of Delivery | CEO + Head of Ops + Growth | CEO + Head of Supply Chain | Задача 10 | | 7 | Воспроизводимый канал приобретения | ≥ 2 канала с предсказуемым CAC | Outbound SDR-процесс | Referral loop или paid acquisition | Retail-партнёры или DTC-канал | Задача 16 | | 8 | International / multi-market потенциал | Product-led expansion возможен | Replicable в другом регионе | Либо глубокий рынок, либо 2+ гео | SKU-расширение или гео | Задача 5, 12 | **Интерпретация:** 6–8 ✅ → готов к Series A. 4–5 ✅ → закрой пробелы за 3–6 мес. до раунда. < 4 ✅ → рано, фокус на скейле pre-seed/seed-результатов. ### Пороги для Series B и позже Series B редко обслуживается через PD — обычно у компании уже есть внутренний финансовый контроллер и стратеги. Но если PD нужен (для проверки нового сегмента, геоэкспансии или приобретения) — пороги ориентировочно: ARR ≥ $5–10M, рост ≥ 2x YoY, выход в EBITDA-break-even в горизонте 12–18 мес., операционная эффективность (Rule of 40: рост % + EBITDA margin % ≥ 40). Детальнее — заглядывай в индустриальные бенчмарки (a16z, Bessemer Cloud Index). ### Если этап раунда не указан По умолчанию используй пороги pre-seed/seed — это покрывает большинство кейсов PD. В финальной сводке явно напиши: «Инвест-трекер оценён по критериям pre-seed/seed. Если готовитесь к Series A/B — пересмотри по соответствующей таблице». ## Следующие шаги после PD | Действие | Владелец | Срок | |----------|----------|------| | 3–5 дополнительных интервью по уточнённым гипотезам | — | +1 нед. | | Smoke test / pre-sale по топ-1 гипотезе из OST | — | +1 нед. | | Разослать OS-опросник 20–50 респондентам | — | +2 нед. | | Заполнить финплан мес. 2–12 (или 2–24) | — | +2 нед. | | Синхронизировать команду по главному сценарию | — | +3 дня | **Типичное распределение ролей:** | Задача | Обычный владелец | Участники | |--------|-----------------|-----------| | Интервью и рекрутинг | CEO / CPO | Маркетинг | | Smoke Test, лендинг | Маркетинг | CEO | | Pre-sale, outreach | CEO / Sales | Маркетинг | | Финплан (мес. 2+) | CFO / CEO | — | | OST и гипотезы | CPO / CEO | Команда | | Разработка MVP | CTO | CPO | В команде 1–2 человек — по умолчанию CEO для всех блоков. ## Источники данных Подбирай источники по географии проекта. Приоритет: локальные первичные источники → глобальные отчёты для контекста. | Категория | Источники | |-----------|-----------| | Глобальные отчёты | Mary Meeker Internet Trends, Gartner Hype Cycle, CB Insights, PitchBook | | Консалтинг | McKinsey, BCG, Bain, Deloitte | | Статистика (мир) | Statista, SimilarWeb, World Bank Open Data, OECD Data | | Статистика (США) | US Census Bureau, Bureau of Labor Statistics, FRED | | Статистика (EU) | Eurostat, национальные статистические ведомства | | Статистика (РФ) | Росстат, РБК, Ведомости, АКРА, ЦБ РФ, Data Insight, «Яндекс», «Сбер» | | Статистика (Азия) | China Stats, India NSO, ASEAN Stats | | Классификаторы | G2, Capterra (мир); TAdviser, CNews (РФ) | | Новости / тренды | Product Hunt, TechCrunch, The Information, VC.ru, Habr | | Венчур | YCombinator, a16z, Sequoia, Index Ventures, ФРИИ | | Суррогат интервью (мир) | G2, App Store, Google Play, Reddit, Quora, Trustpilot | | Суррогат интервью (РФ) | Хабр, VC.ru, отзовики, Wildberries/Ozon | | Методологии | Continuous Discovery Habits (Torres), JTBD (Ulwick/Christensen), Lean Canvas (Maurya), Four Steps to the Epiphany (Blank), The Mom Test (Fitzpatrick) | ## Коммуникация с пользователем - Пиши план перед стартом, жди подтверждения - После каждой задачи — короткое резюме ключевых находок - Обновляй прогресс-трекер в начале ответа. Короткий формат лучше длинного списка: `🔄 Прогресс: 7/18 задач (39%) · Режим: Full · Блок II · Текущая: Задача 8 CJM` - При красном флаге — немедленно сообщай и жди решения - Используй `ask_user_input_v0` для структурированного сбора ответов с вариантами - При Early exit или пропуске задач — явно сообщай, какие задачи и почему - Общайся на русском языке