
Пятница, вечер. Я уже не за рабочим местом, но в голове крутится идея, которую стоит зафиксировать. Открываю Telegram, надиктовываю голосовое и переключаюсь к повседневным делам. Когда вернусь к системе — увижу расшифрованное аудио, извлечённые структурированные поля, определённый продуктовый домен. Идею уже обогатили связанными артефактами из базы знаний и поставили на канбан с готовностью 44%.
Это PM Assistant — система, которую я построил, работая продактом в OTA-компании. Четыре Python-микросервиса в Docker, Obsidian vault как база знаний, гибридный LLM-слой с fallback-цепочкой, 14 cron-задач, которые работают, пока я сплю. Она снимает с меня рутину и оставляет то, чем и должен заниматься продакт — думать над продуктом.
Проблема: рутина съедает время на продуктовую работу
Пять продуктовых доменов. Три команды разработки. Ежедневные стендапы, спринты, стейкхолдерские ревью раз в две недели. Бэклог растёт быстрее, чем я успеваю его грумить.
Проблема — это не генерация идей и не стратегическое мышление. Проблема — рутинные операции, которые съедают часы каждый день. Пять зон, где продакт работает ручным конвейером:
-
Протоколы встреч. Транскрипт со вторника содержит три экшен-айтема, два решения и одну идею. К среде транскрипт — в email-архиве, экшены — в голове, идея — нигде. Разбор одной встречи вручную — 30–40 минут.
-
Отчёты по разработке. Ежедневные и еженедельные сводки: что движется, что буксует, какие блокеры. Собирать из Jira, чатов и заметок — 20–30 минут в день.
-
Анализ рынка и сигналы. Новости конкурентов, изменения в отрасли, тренды. Без системы фиксации сигнал из марта невидим, когда в апреле я пишу PRD. Формирование идей для бэклога из внешнего контекста — задача, которую продакт делает от случая к случаю, а должен непрерывно.
-
Фиксация продуктовых идей. Идея приходит в метро, на встрече, на прогулке. Записать — полдела. Превратить заметку в структурированную идею с проблемой, метрикой, сегментом и Job Story — ещё 15–20 минут на каждую.
-
Контекст проекта. Быстрый поиск: какие решения принимались по домену? Какие идеи рассматривались? Без единой базы знаний — археология по Confluence, Jira и Google Docs. А из контекста нужно генерировать артефакты для разработки: PRD, ADR, эпики с задачами.
Инструменты, которые я пробовал — Confluence, Obsidian с плагинами — reshaют задачу еухранения. Ни один не решает задачу обработки.
Мне нужна была система, которая берёт на себя механическую часть этих пяти зон — непрерывно, автоматически и не забывая.
Подход: vault как база данных
Отправная точка — заметка Андрея Карпати о персональном управлении знаниями. Его модель: raw → compile → wiki. Эto ровно то, что продакт-менеджер делает каждый день — только руками.
Raw — всё, что приходит извне: голосовое сообщение с идеей, транскрипт встречи, тикет из Jira, вырезка из новости о конкуренте. Raw-файлы не редактируются никогда. Они — аудитный след, источник правды.
Wiki — скомпилированные знания: структурированные заметки, организованные по продуктовым доменам. YAML-фронтматтер для метаданных (id, статус, домен, теги). Тело файла — контент. Файловая система — индекс. Git — полная история.
Ключевой инсайт — использовать Obsidian vault как базу данных. Каждый файл одновременно читаем человеком в Obsidian и парсится машиной через REST API. Не нужно выбирать между инструментом для человека и инструментом для машины — vault является и тем, и другим. Я пишу заметки v Obsidian на телефоне в метро. Система обогащает их перекрёстными ссылками, пока я сплю. Утром те же заметки доступны через 72 API-эндпоинта, которые кормят веб-дашборд.
Как это работает: пять зон автоматизации
Четыре Python-микросервиса в Docker Compose работают с одним Obsidian vault. Но архитектура — это не про сервисы. Эto про пять зон, где система забирает рутину.
Зона 1 — Фиксация продуктовых идей. Идея приходит — открываю Telegram, надиктовываю голосовое или пишу текст. pm-bot принимает сообщение, faster-whisper транскрибирует аудио локально (данные не покидают машину), система создаёт файл в vault, определяет продуктовый домен, ставит статус «Новая». Я не открываю Obsidian, не переключаю контекст.
Зона 2 — Обработка протоколов встреч. Транскрипт приходит по email (IMAP-фетчер каждый час) или я кладу файл в папку (watchdog). Дальше — файловая очередь: pending → processing → done, атомарные os.rename(), без брокера сообщений. Claude пишет протокол, artifact_extractor раскладывает по доменам: action items в tasks/, решения в decisions.md, новые идеи в ideas/. Один транскрипт — три домена обновлены. Если LLM-обработка падает после 5 попыток с фоллбэком между провайдерами — файл уходит в failed/ на ручной разбор.
Зона 3 — Отчёты по разработке. knowledge-engine синхронизируется с Jira каждые 3 часа: статусы тикетов, блокеры, прогресс по спринту. Ежедневные и еженедельные сводки собираются автоматически — что движется, что буксует, где нужно моё внимание.
Зона 4 — Анализ рынка и сигналы. News Moderator фильтрует travel-новости по релевантности → скоринг → AgentLoop с QualityGate → диспатч сигналов. На выходе — HITL-триаж: я нажимаю «Approve», черновой сигнал превращается в идею для бэклога. Сигнал из марта не теряется, когда в апреле я пишу PRD.
Зона 5 — Контекст проекта и генерация артефактов. Vault с перекрёстными ссылками между доменами — единая база знаний, где каждый файл одновременно читаем человеком в Obsidian и парсится машиной через 72 API-эндпоинта. Когда идея созрела — idea-pipeline запускает цепочку из трёх AI-агентов: Analyst (идея + контекст vault → анализ), PM (анализ → PRD с acceptance criteria), Decomposer (PRD → эпик + задачи). Полный пакет за ~2 минуты вместо 3–4 часов вручную.
Под капотом — гибридный LLM-слой. Локальный Ollama (QWEN 3.5) для рутинных задач: классификация, ключевые слова. Claude API — сложная работа: синтез, обогащение, idea pipeline. OpenRouter — транскрипции с фоллбэк-цепочкой. Если Ollama недоступен — система автоматически переключается на Claude. Эto скорость (локальная модель отвечает быстрее на простых задачах), приватность (часть данных не покидает машину) и экономия. 14 cron-задач в ke-cron держат всё это в движении: синтез, индексация, линтинг vault, health-check, Jira-синхронизация. Self-hosted Langfuse — трейсинг промптов и контроль стоимости.
Жизненный цикл идеи: 9 полей, 2 барьера, 1 статус Отсев
Готовность идеи в моем процессе — это не оценка на глазок, а формула. Считается доля заполненных полей из девяти доступных. Параметр рассчитывается автоматически, а переходы между статусами происходят с моим подтверждением.
Блок 1 — Паспорт идеи Ш4 поля, 44% готовности). Проблема/Боль, Решение, Ценность (USP), Метрика. Метрики нет — идея сразу в Отсев: дальше без неё двигаться некуда. Все четыре заполнены — статус «Проверка гипотезы».
Блок 2 — Посадочный талон (5 полей, 100% готовности). Сегмент (не «все»), Job Story (один сценарий, не пачка), In scope, Out of scope, Ограничения. 9 из 9 = 100%. Но это условие необходимое, не достаточное.
Переход в «Готова к производству» требует артефакта валидации — конкретного, а не пересказанного: цифра из аналитики, тикет с частотой, прямая цитата пользователя. И контрольный вопрос: смогу ли я завтра прийти с этим на планирование к разработчикам без созвонов на неделю? Ответ «нет» — идея не готова.
Отсев — отдельный статус в моем жизненном цикле идеи. Четыре возможные причины отсева:
1. нет метрики
2. не удалось определить границы MVP
3. нет артефакта валидации
4. контрольный вопрос дал ответ «нет».
Без явного статуса отсева воронка превращается в склад: идеи висят «в проработке» месяцами, потому что закрыть — эмоционально сложнее, чем оставить. Отсев решает эту проблему прямо.
Замыкающий цикл: из «Готова к производству» идея превращается в эпик, связь фиксируется полем epic_ref. При закрытии эпика — дозапись: метрика выросла или нет, что подтвердилось, дата. Так идея становится полным кейсом: гипотеза → что сделали → что получили.
Результаты за 5 месяцев
219 идей обработано. 115 фич отгружено в продакшен. Конверсия идея → shipped feature — 52%.
Idea Pipeline (Analyst → PM → Decomposer) генерирует полный пакет (анализ + PRD + эпик + задачи) за ~2 минуты. Раньше я тратил 3–4 часа на ту же работу вручную.
Стоимость: локальный Ollama — бесплатно (электричество не считаю), модели OpenRouter — бесплатно, self-hosted Langfuse — бесплатно. Итого: инфраструктура решения 100% бесплатная. Если подключить Claude Cowork для работы с vault — стоимость равна стоимости вашей подписки.
Веб-дашборд обрабатывает запросы за <200ms (FastAPI + файловая система, никакой базы данных кроме SQLite для дедупликации сигналов).
Что система не делает: не принимает решений. Не выбирает, какую идею брать в спринт. Не оценивает приоритеты. Она устраняет механическую работу между «я это придумал» и «это можно отдать в разработку» — и делает это непрерывно, автоматически и не забывая.
Диагноз
Соблазн описать это как «ИИ, который думает за продакт-менеджера». Он не думает. Он автоматизирует механическую часть — транскрипция, структурирование, перекрёстное связывание, декомпозицию — чтобы я тратил больше времени на то, что действительно требует суждения: что строить, что убивать, что откладывать.
Система работает у меня каждый день и решает свою задачу. Если рассматривать для командного использования, то потребуется доработка — аутентификация, разделение прав.
Честный итог за 5 месяцев: система убрала ~4 часа документационной работы в неделю и поймала ~30 идей, которые я бы потерял. Она также создала новые режимы отказа — галлюцинации LLM при обогащении, устаревшие ссылки Jira, ошибки парсинга транскриптов — которые требуют своего времени на поддержку.
Код на GitHub под MIT: github.com/afr13nd77/pm_assistant. Это рабочий инструмент, который решает реальную проблему реального продакт-менеджера. Код открыт, чтобы другие могли адаптировать решение под свой процесс.
Если ваш процесс похож — форкайте, адаптируйте. Issues и PR открыты.
ссылка на оригинал статьи https://habr.com/ru/articles/1090428/