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— презентация этапа Verificationinterview-guide-[slug].docx— гайд для живых интервью (только в Full-режиме, из задачи 9)
Как устроен скил
Методология разбита на 18 задач в 6 блоках. Детальные инструкции по блокам вынесены в references/ — читай соответствующий файл перед стартом блока, чтобы не держать все 1500 строк в контексте сразу.
| Блок | Задачи | Файл | Что получится |
|---|---|---|---|
| I. Анализ рынка | 1–6 | references/block-1-market.md | Карточка рынка, тренды, feature matrix, TAM/SAM/SOM, PESTEL |
| II. Потребители | 7–9 | references/block-2-customers.md | JTBD, Job Map, OS, CJM, таблица инсайтов, интервью-гайд |
| III. Стратегия | 10–14 | references/block-3-strategy.md | Lean Canvas / BMC + PAC, SWOT, OST, скоринг сценариев, RICE |
| IV. Валидация | 15–17 | references/block-4-validation.md | Пул гипотез, план rapid testing, PMF-индикаторы |
| V. Главный сценарий | 18a | references/block-5-main-scenario.md | Параметры для финплана |
| VI. Артефакты | 18b–d | references/block-6-artifacts.md | One-pager, финплан, презентация |
Дополнительные материалы:
- references/glossary.md — термины PD. Прочитай перед первой задачей или точечно при встрече незнакомого термина
- references/examples.md — сквозные примеры заполнения BMC, Lean Canvas, PAC, OST, Job Map. Читай перед заполнением холстов, чтобы сохранить уровень детализации
- references/customer-development.md — альтернативный путь для нового рынка (читай, если в задаче 1 тип рынка классифицирован как «Новый»)
- references/strategic-pivot.md — альтернативный путь для действующего бизнеса, рассматривающего стратегический pivot (Service → Product, новая гео, новый сегмент). Читай, если стадия = «есть выручка», бизнес работает ≥ 1 года, и вопрос не «есть ли рынок», а «стоит ли менять курс»
Скрипты в scripts/ для повторяющихся технических операций:
preflight_check.sh— проверка доступности инструментов перед стартом PDinit_kb.py— создание Knowledge Base со стандартным шаблоном +/home/claude/.pd_envсPD_MODEdelete_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 после выбора режима установи переменную окружения:
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 раздел «Troubleshooting pack.py».
Правило 3 — PowerPoint round-trip как финальный шаг (STOP-GATE)
Когда срабатывает: перед любым cp *.pptx /mnt/user-data/outputs/.
Что делать: ВМЕСТО cp запусти finalize_pptx.sh. Скрипт сам копирует файл в outputs после round-trip:
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.
Что делать:
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 Шаг 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» (ранее были одежные «Блогеры», «Локальные бренды» и т.п.). Формулы «Модели» ссыл