Skip to content
Back to skills

product-discovery

ASecurity

Product Discovery по методологии из 18 задач — от анализа рынка до финплана для инвестора. Используй когда человек хочет провести Product Discovery, верифицировать стартап, оценить рыночную гипотезу, подготовиться к инвест-раунду, или упоминает смежные темы: валидация идеи, оценка ниши, разбор конкурентов, product-market fit, подготовка питча, unit-экономика стартапа, географическая экспансия в новую страну, go-to-market для рынков SEA / Asia / MENA. Часто люди не называют это PD явно — говор...

  • 15 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added May 26, 2026
businesspythonrustgobashtestingapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 17 files and shows the line behind each finding

Scanned May 27, 2026

npx -y skills add ipavelm/ultimate-product-discovery-skill --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of product-discovery?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for product-discovery
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ipavelm-product-discovery/badge)](https://www.skillsdirectory.com/skills/ipavelm-product-discovery)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
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 или пропуске задач — явно сообщай, какие задачи и почему
- Общайся на русском языке

Files in this skill

  • CHANGELOG.md2.5 KB
  • SKILL.md58.3 KB
  • assets/interview-guide-template.docx24.9 KB
  • references/block-1-market.md14.4 KB
  • references/block-2-customers.md12 KB
  • references/block-3-strategy.md17.4 KB
  • references/block-4-validation.md9.4 KB
  • references/block-5-main-scenario.md2.6 KB
  • references/block-6-artifacts.md50.7 KB
  • references/customer-development.md8.5 KB
  • references/examples.md16 KB
  • references/glossary.md5.5 KB
  • references/step-0-questions.md9.4 KB
  • references/strategic-pivot.md11.9 KB
  • scripts/add_competitor_comparison_slide.py11.3 KB
  • scripts/delete_light_slides.py5.5 KB
  • scripts/finalize_docx.sh3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.