Repository navigation
Workflow Walkthrough
Разбор одного шага рабочего процесса по следам демо-прогона CVStart (
projects/демо/). Все цитаты — из реальных файлов репозитория:.claude/skills/options/SKILL.md,.claude/agents/red-team.md,config/quality_gate.json,projects/демо/outputs/03_options.md. Английская версия: Workflow-Walkthrough-EN. Общая картина прогона — Demo-CVStart.
Шаг options («Варианты и возражения») — центральный в процессе: именно здесь размытый запрос превращается в содержательную развилку, а красота рекомендаций проверяется атакой. Правило процесса: не меньше трёх содержательно разных вариантов, включая «оставить как есть» и «закрыть/свернуть», с сильными возражениями, экономикой и условиями, при которых вариант верен — и выбор делает человек, а не агент.
К началу шага 5 в projects/демо/ уже лежат артефакты шагов 0–4:
| Вход | Что это даёт шагу |
|---|---|
00_brief.md |
решение, ось сравнения («рост платящих и ARR»), ограничения (MIT core, соло, доверие локального режима) — фильтр вариантов до их генерации |
sources/S001–S011.md, sources.jsonl
|
проверенные материалы: продукт, рынок, конкуренты, синтетика |
01_research_plan.md |
6 вопросов, меняющих решение; какие отвечены, какие остались открытыми |
claims.jsonl (C001–C018 к этому моменту) |
утверждения с типами и силой — единственный разрешённый «строительный материал» для экономики вариантов |
02_situation.md |
известное/пробелы/противоречия; в демо — противоречие «100% локально» [C001] против облака |
Агент не «вспоминает» это из истории чата — он читает файлы. Поэтому шаг воспроизводим и продолжаем после перерыва.
pfs step options
→ прочитать 02_situation.md + реестры (файлы, не память)
→ pfs kb search: карты M-goals-drivers-bets, M-solution-design, M-business-models,
M-unit-economics, M-risks, M-strategy-growth
→ pfs questions options (критерии · рамки · квотум возражений)
→ генерация 5–7 кандидатов → отбор 5 содержательно разных (A–E)
→ экономика каждого: формулы на [C016][C020], помечено forecast
→ субагент red-team ← 02 + 03 → 20 ударов (15 возражений + 5 допущений)
→ интеграция ударов: текст вариантов + митигации B + скрытые допущения
→ таблица сравнения по оси брифа (ARR)
→ рекомендация + условия пересмотра
→ pfs check (гейты 03_options.md) → 0 ошибок
→ pfs ask "Какой вариант берём в стратегию?" → СТОП: ждёт человека
Дальше — ответ руководителя («B с митигациями») → pfs answer → pfs step choice done. В демо
выбор зафиксирован утверждением [C019] и ответом руководителя [S011] — это основания будущего D001.
Инструкция шага (.claude/skills/options/SKILL.md) задаёт жёсткий порядок:
- Сгенерировать 5–7 кандидатов, оставить 3–5 содержательно разных (разная ставка: сегмент,
ценность, модель монетизации, канал, масштаб инвестиций), а не вариации одного. Обязательно:
Вариант A: Оставить как есть(базовый прогноз «ничего не делаем», а не «ноль») и вариант выхода (закрыть/свернуть/передать направление). - Для каждого варианта — фиксированная структура: суть; для кого и какую задачу решает; что должно быть правдой (допущения [C###]); ожидаемый эффект с диапазоном и типом (forecast); затраты и влияние на доходы; риски; Возражения (2–4, «как сказал бы умный скептик»); что опровергло бы вариант.
- Отдать документ субагенту
red-team; его возражения внести в варианты; «если возражение рушит вариант — скажи прямо». - Таблица сравнения по 4–6 критериям, вытекающим из цели брифа (не придумывать веса без основания).
- Рекомендация + условия, при которых рекомендация меняется.
pfs check. - Выбор:
pfs ask "Какой вариант берём в стратегию?" --options "A,B,C,…", остановиться, после ответа человека —pfs answer,pfs step choice done.
Перед работой агент подтягивает методику — через список карт шага и поиск по базе знаний:
pfs step options # заголовок шага, ворота, вопросный блок
pfs kb search "варианты и ставки" # по мере надобности — разделы карт, не вся база
Карты, предписанные skill'ом: M-goals-drivers-bets (варианты как ставки), M-solution-design
(гипотезы решения и риски), M-business-models (модели монетизации), M-unit-economics (экономика
варианта), M-risks (риски и митигации), M-strategy-growth (типы роста). Родственные карты
(pfs kb search): cannibalization (перетоки), traction-model (модели роста), model-validation
(проверка чисел). Правило экономичности: не читать базу целиком — 1–3 карты по поиску.
pfs questions options даёт 3 вопроса руководителю. Смысл блока — зафиксировать рамки сравнения
до того, как появится рекомендация, чтобы её нельзя было подогнать:
| Вопрос блока | Зачем | Рекомендация инструмента |
|---|---|---|
| options-criteria: по каким критериям сравнивать? | критерии фиксируются ДО выбора | «вклад в метрику» |
| options-borders: что точно вне рамок? | осознанные отказы — обязательная часть стратегии | «снижение приватности» (в демо это означало: облако только opt-in) |
| options-quorum: сколько возражений обязаны пережить варианты? | глубина атаки влияет на доверие комитета | «по 2–3 на вариант» |
В демо ось сравнения уже была дана руководителем на intake («рост платящих и ARR») — поэтому таблица сравнения в 03_options.md строится вокруг неё, без выдуманных весов.
Агент набрасывает кандидатов по осям ставок (кому продаём · что продаём · как монетизируем · куда инвестируем) и схлопывает дубликаты. В демо осталось 5, и они отличаются именно ставкой, а не формулировкой:
- A. Оставить как есть — бесплатный локальный OSS без коммерческой версии (базовый прогноз).
- B. Hosted freemium SaaS — облако, глобально; ставка: подписка на hosted-удобство + мультиязычность.
- C. B2B white-label — лицензии карьерным центрам и вузам; ставка: продажи организациям.
- D. Open-core dual-license — enterprise self-host + ATS-интеграции; ставка: enterprise-лицензии.
- E. Закрыть коммерческую ветку — проект остаётся некоммерческим OSS (вариант выхода).
Экономика каждого — формулы на допущениях [C016][C020] с явной пометкой типа (forecast/модельные вилки), рыночные числа — с тегами [C005][C006][C007][C011].
Субагент описан в .claude/agents/red-team.md: «умный скептик из совета директоров, которому этот
проект не нравится». На вход — 02_situation.md и 03_options.md (+ pfs claim list при
необходимости). От него требуют, по каждому варианту:
- 2–3 самых сильных возражения — конкретно: какое допущение ложно, каких данных нет, как отреагируют конкуренты/регулятор/пользователи;
- одно наблюдение, которое опровергло бы вариант быстрее и дешевле всего;
- какого содержательно иного варианта не хватает в наборе;
- отдельно по рекомендации: где гипотеза выдаётся за факт, где числа без источника, где «оставить как есть» нарисовано слишком мрачно. «Не смягчай. Не предлагай собственную стратегию».
В демо red team вернул 20 ударов: 15 возражений + 5 скрытых допущений. Примеры ударов по рекомендуемому B: «PII/GDPR и скрапинг переходят на разработчика» (юрисдикция и риск исков), «"$0 forever" — публичное обещание, HN/PH прочитают запуск подписки как bait-and-switch», «freemium-конверсия 2–5% [C020], продукт эпизодический — churn естественно высокий». По A: «MIT = чужая монетизация — форк завернёт код в закрытый SaaS (прецедент WordPress/WP Engine)».
Возражения не «учтены: да» — они встроены тремя механизмами:
- Текстом в вариант — блок «Возражения red team» у каждого варианта, формулировками скептика.
- Митигациями внутри варианта — у B: BYOK-free-тир (нулевые инференс-затраты на free — снимает удар «деньги против»), opt-in облако при локальном core (снимает «обвал доверия»), честный прайсинг [C014], пороги остановки из будущего 06.
- Скрытым допущением и условием верности — у каждого варианта названо допущение, на котором он стоит, и условие, при котором его надо снять с повестки.
Часть ударов становится контрметриками плана проверки (шаг 8): «обвал доверия» → падение звёзд GitHub
30% как стоп-сигнал. Полный разбор — Validation-Plans.
Гейты для 03_options.md из config/quality_gate.json:
| Проверка | Правило | В демо |
|---|---|---|
min_options: 3 |
минимум три варианта | 5 (A–E) |
status_quo_keywords |
«оставить как есть» присутствует | Вариант A |
exit_keywords |
вариант выхода присутствует | Вариант E («закрыть коммерческую ветку») |
per_option_sections: ["Возражения"] |
у каждого варианта есть возражения | 15 возражений red team |
numbers_need_tags: true |
числа с тегами [C###]/[S###] | все числа реестра |
option_heading_regex |
заголовки машиночитаемы (## Вариант X) |
A–E |
Незаведённый гейт = шаг не закрыт: pfs step options done не пройдёт, пока документ не соответствует.
Для контраста — что видит агент при нарушении правила. Гипотетические примеры (в демо гейты прошли с первого предъявления финальной версии):
| Нарушение | Реакция pfs check
|
|---|---|
| В документе 3 варианта, все — вариации «добавить фичи» | ошибка: нет status_quo_keywords («оставить как есть») и exit_keywords (закрыть/свернуть) |
| У варианта C нет блока «Возражения» | ошибка: per_option_sections не выполнен для одного из вариантов |
| Число «$2 млрд» без тега | предупреждение/ошибка numbers_need_tags: число без [C###]/[S###] |
| Экономика построена на утверждении, отозванном ранее | ошибка: ссылка на неактивное утверждение |
| Попытка записать «конверсия 4% (по нашим данным)» как fact без источника | отказ pfs claim add ещё на этапе реестра — в документ такое не попадёт |
Шаг нельзя «продавить» дальше при незакрытых ошибках — в этом смысл ворот: следующий шаг начинается только с валидным документом.
Таблица сравнения из демо (приведена дословно из projects/демо/outputs/03_options.md):
## Сравнение по оси «платящие подписчики/ARR» (цель руководителя)
| Вариант | ARR 12 мес (модель) | Риск | Соответствие ограничениям (MIT core, соло, доверие) | Red team |
|---|---|---|---|---|
| A | $0 | низкий | ✓ | «дорогое хобби» |
| B | $29/мес × 100–300 = $35–105 тыс ARR [C016][S008] | средний | ✓ при BYOK-free и opt-in облаке | лучший профиль роста |
| C | $24–60 тыс [C020] | высокий (продажи) | ✓ | нет продаж-компетенции |
| D | $10–50 тыс [C020] | высокий (релicensing) | ✗ (смена MIT) | рискованно и долго |
| E | $0 | — | ✓ | отказ от актива |
Рекомендация: **B — hosted freemium SaaS, глобально**, с BYOK-free-тиром (снимает инференс-риск),
волнами локалей из 19 готовых, честным прайсингом без автопродлений как позиционированием [C014],
и порогами остановки из 06. Выбор — за руководителем (шаг 6).Заметьте: рекомендация уже содержит условия (BYOK-free, opt-in, честный прайсинг, пороги) — то есть условия, при которых рекомендация меняется, сформулированы вместе с ней, как требует skill.
Документ готов — но выбор не делается автоматически:
pfs ask "Какой вариант берём в стратегию?" --options "A,B,C,D,E"
# …агент останавливается…
pfs answer "B — hosted freemium SaaS с митигациями"
pfs step choice done --next "стратегии: продуктовая и коммуникационная"В демо руководитель выбрал B с митигациями — ответ зарегистрирован [C019][S011] и стал основанием
решения D001. Дальше работают шаги 7–11; их выходы — 04_product_strategy.md, 05_comms_strategy.md,
06_validation_plan.md, decisions.jsonl — разобраны в Demo-CVStart.
- Каркас задаёт процесс, модель его наполняет. Число вариантов, структура, возражения, гейты — обязательны; содержимое — работа LLM с проверенными утверждениями.
- Проверяемость не «на честном слове». Каждое число — тег; каждая рекомендация — с условиями пересмотра; каждая атака — с источником и числом для контрметрики.
- Человек решает в точке наибольшей цены. Агент готовит развилку и защиту каждого пути, но выбор — шаг 6 — всегда за человеком.
См. также: Demo-CVStart · Skills · Subagents · Quality-Gates · Validation-Plans · Decisions-and-Monitoring
Стратег Фабрики продуктов
Устройство
Компоненты
Справочник
Процесс
Справка и прозрачность