Если вам интересна тема персональных систем управления знаниями и задачами - переходите в мой тг-канал. Там я разбираю инструменты, публикую кейсы и делюсь тем, что работает на практике, а не только выглядит красиво на скриншотах.


Я собираю персональные системы в Obsidian на заказ. Перед работой с новым клиентом я раскладываю его работу на этапы и выписываю, где уходит время и пропадает информация. У продакт-менеджера я насчитал 78 таких мест. Ниже - система, с которой я бы начал, и четыре её узла в деталях, с настройками, которые можно повторить у себя.

Это демо-кейс: типовой каркас профессии. Продукт, пользователи, цифры и конкуренты в примерах вымышлены.

Obsidian - программа для заметок, которая хранит всё в обычных текстовых файлах на вашем диске. Заметки связываются ссылками, а плагины добавляют таблицы, канбаны, графики, кнопки и шаблоны.

Где продакт теряет информацию

Беру продакт-менеджера в IT-компании. Он отвечает за одно направление, работает с разработчиками, дизайнером и аналитиком и отчитывается перед руководителем. Горизонт планирования - квартал. В примерах - мобильное приложение доставки из супермаркетов.

Этап

Что мешает

Запросы стейкхолдеров

Запросы приходят в чат, на созвоне и в комментарии к документу. Обещание, данное на встрече, через квартал каждый помнит по-своему

Исследования

30 расшифровок интервью лежат папкой документов. Найти, что говорили про оплату, можно только чтением подряд

Данные

Как считается метрика, знают продакт и аналитик, и в двух отчётах она посчитана по-разному. Объяснение февральского провала проговорили на созвоне и забыли

Бэклог

Почему задачу отложили в марте, нигде не записано, и в июне её обсуждают заново

Постановка

Разработчик спрашивает в чате, что показать, если дома нет в списке адресов. Продакт отвечает там же, ответ в постановку не попадает, и через месяц документ расходится с тем, что сделали

Разработка

Блокер держит задачу третью неделю. С какого числа и кого ждут, на каждой встрече выясняют заново

Эксперименты

Критерий успеха проговорён устно. Провалившийся тест не сохраняется, и через год та же идея приходит как новая

Роадмап

Роадмап живёт в презентации, предыдущая версия не сохраняется, сравнить обещанное и сделанное нельзя

Отчётность

Вопрос «почему мы выбрали этот путь» задают через год, а причина осталась в переписке

Обратная связь

Одна и та же жалоба приходит из интервью, поддержки и отзывов, но источники не сведены, и повторение видно на ощущение

Ещё несколько потерь встречаются на любом этапе. Ответы на типовые вопросы и объяснение продукта пишутся заново, хотя проговаривались десятки раз. Разбор конкурента живёт в личном файле коллеги. А весь контекст держится на одном человеке: продакт ушёл в отпуск, и решения встали.

Почти все эти потери об одном и том же: обоснования решений нигде не собраны вместе. Что говорили пользователи, что проверяли, чем кончилась проверка и почему выбрали этот вариант, разнесено по чатам, трекеру, презентациям и документам. Систему я собрал из четырёх узлов, связанных в цепочку: из того, что говорят пользователи, вырастает гипотеза, итог проверки записывается решением, и всё это привязано к инициативе.

Карта системы

Стартовую страницу открывает плагин Homepage: он показывает выбранный файл при каждом запуске Obsidian.

Наверху две колонки задач. Задачи записаны прямо в инициативах, встречах и решениях, а собирает их плагин Tasks: он находит строки-задачи с датами по всему хранилищу и показывает выборку по условию. Слева «Сегодня», справа «Просрочено»:

```tasks
not done
due today
sort by due
group by filename
hide backlink
hide toolbar
hide edit button
hide postpone button
hide task count
```

Запрос для правой колонки отличается одной строкой: due before today вместо due today.

Под задачами встречи на сегодня, блокеры и роадмап. Их собирает Bases - встроенный плагин Obsidian, который работает с заметками как с базой данных: поля заметок становятся колонками, набор заметок - таблицей.

Настройки Bases пишутся текстом. Их можно вставить в любую заметку блоком кода base, и Obsidian сразу покажет таблицу. Или положить в отдельный файл с расширением .base. В одних настройках можно описать несколько таблиц с разными условиями, они называются видами. Встречи на сегодня показывает такой блок:

```base
filters:
  and:
    - file.inFolder("Встречи")
views:
  - type: table
    name: Сегодня
    filters:
      and:
        - note["дата"] == today()
    order:
      - время
      - file.name
      - инициатива
    sort:
      - property: время
        direction: ASC
```

Узел 1. Инициатива

Инициатива - одна доработка продукта: новый онбординг, оплата при получении, повтор прошлого заказа. У каждой своя заметка, и все устроены одинаково.

Поля на странице

В Obsidian у заметки есть свойства - поля в её шапке. У инициативы это стадия, срок, цель квартала, блокер, дата блокера и дата выхода. Свойства в шапке редактировать неудобно, поэтому они выведены таблицей в начало заметки плагином Meta Bind: он вставляет в текст поля ввода, связанные со свойствами. Поменял стадию в таблице - поменялось свойство.

| Стадия | `INPUT[inlineSelect(option(Идея), option(Исследование), option(Постановка), option(Разработка), option(Вышла)):стадия]` |
| --- | --- |
| Срок | `INPUT[datePicker:срок]` |
| Цель квартала | `INPUT[text:цель]` |
| Блокер | `INPUT[text:блокер]` |
| Дата блокера | `INPUT[datePicker:дата-блокера]` |
| Вышла | `INPUT[datePicker:вышла]` |

Ниже разделы «Зачем», «Постановка» со ссылкой на макеты и «Задачи».

Задачи

Задачи по инициативе стоят в её заметке:

- [ ] Принять экран выбора адреса 📅 2026-11-11
- [ ] Получить от юристов текст согласия на геолокацию 📅 2026-11-12

Tasks показывает их на стартовой странице в день срока. Срок, обещанный смежной команде, стоит внутри своей инициативы и одновременно виден в общем списке на день.

Что собирается из других заметок

Нижнюю половину заметки заполнять не нужно. Цитаты пользователей, встречи и поручения с них находит в хранилище плагин Dataview: он выполняет запросы к заметкам хранилища. FROM [[]] значит «заметки, которые ссылаются на эту»:

```dataview
TABLE WITHOUT ID file.link AS "Что говорили", тип AS "Откуда", сегмент AS "Сегмент", дата AS "Когда"
FROM [[]] AND "Обратная связь"
SORT дата DESC
```

```dataview
TASK
FROM [[]] AND "Встречи"
WHERE !completed
```

Второй запрос собирает невыполненные поручения со всех встреч по этой инициативе. Договорились на планировании, что дизайнер отдаст экран к среде, - поручение видно и в заметке встречи, и на странице инициативы.

В той же заметке собраны гипотезы и решения по этой инициативе.

Канбан, роадмап и блокеры

Все инициативы сводит картотека Инициативы.base. Вид «Канбан» раскладывает их по стадиям, и карточка переносится в следующую стадию перетаскиванием.

Вид «Roadmap» на стартовой странице - невышедшие инициативы по сроку с целью квартала.

Вид «Блокеры» показывает инициативы, у которых заполнено поле блокер, и считает, сколько дней они ждут:

```base
filters:
  and:
    - file.inFolder("Инициативы")
    - '!note["блокер"].isEmpty()'
formulas:
  дней_в_ожидании: (today() - date(note["дата-блокера"])).days
properties:
  formula.дней_в_ожидании:
    displayName: Дней в ожидании
views:
  - type: table
    name: Блокеры
    order:
      - file.name
      - блокер
      - дата-блокера
      - formula.дней_в_ожидании
    sort:
      - property: дата-блокера
        direction: ASC
```

В демо-хранилище онбординг 8 дней ждёт юристов, оплата при получении 12 дней ждёт расчёта от финансов. На статусной встрече всё видно одной таблицей, и вспоминать, где это обсуждали, не нужно.

Узел 2. Обратная связь

Обычно обратная связь пользователей лежит в пяти местах: расшифровки интервью, система поддержки, отзывы в сторах, письма партнёров, заметки продаж. В системе каждая цитата или обращение - отдельная заметка.

Одна цитата - одна заметка

У заметки поля: откуда пришло (интервью, поддержка, отзыв в сторе, партнёры), кто сказал, сегмент, дата, ссылка на источник и на инициативу. Тема - тегом: #онбординг, #оплата, #брошенные-корзины.

Из интервью цитаты выписываются командой плагина QuickAdd «Обратная связь». Открываешь конспект интервью, выделяешь фразу, запускаешь команду. QuickAdd спрашивает, откуда, кто сказал и тему, и создаёт заметку по шаблону:

---
тип: {{VALUE:Интервью,Поддержка,Отзыв в сторе,Партнёры}}
кто:
  - {{VALUE:Кто сказал}}
сегмент: {{FIELD:сегмент}}
дата: {{DATE:YYYY-MM-DD}}
откуда: "{{LINKCURRENT}}"
инициатива: "{{FIELD:инициатива}}"
tags:
  - {{VALUE:Тема тегом}}
---
> {{VALUE:Цитата}}

{{LINKCURRENT}} - ссылка на заметку, из которой запустили команду. Через год по цитате видно, из какого интервью она пришла, а в конспекте интервью встроен список цитат, которые из него выписали.

Что повторяется

Картотека Обратная связь.base группирует заметки по теме. Сколько раз всплывала тема, видно по группе. Про оплату говорили в интервью и писали в поддержку, про баллы партнёров - в отзывах и в письме банка.

На странице инициативы эти же заметки показывает запрос Dataview. Перед защитой инициативы под рукой цитаты с именами и датами.

Узел 3. Гипотезы и метрики

Критерий до старта

Гипотеза - заметка со ссылкой на инициативу и метрику. Поля: статус, критерий успеха, границы теста, итог. Критерий записывается до запуска, иначе обсуждение после теста сводится к тому, считать ли результат победой.

| Статус | `INPUT[inlineSelect(option(Идея), option(На проверке), option(Подтвердилась), option(Не подтвердилась)):статус]` |
| --- | --- |
| Критерий успеха | `INPUT[text:критерий]` |
| Границы теста | `INPUT[text:границы]` |
| Итог | `INPUT[text:итог]` |

Под таблицей раздел «Внешние факторы»: что ещё могло сдвинуть метрику, пока шёл тест. В гипотезе «Онбординг в три экрана» там записано, что 27 октября маркетинг поднял промокод на первый заказ до 500 ₽, поэтому установки после этой даты считаются отдельно.

Провалившиеся гипотезы хранятся наравне с подтвердившимися. На странице инициативы и метрики виден весь список с итогами, и идея, которую уже проверяли, не приходит в бэклог как новая.

Метрика с замерами

У метрики своя заметка: как считается, запрос к данным и замеры. Определение одно на всю команду, и запрос не нужно искать в истории чата с аналитиком.

Замеры ведутся таблицей «Дата | Значение | Что случилось». Раз в неделю туда переносится цифра с дашборда, а если был скачок, в той же строке записывается причина. Над таблицей график, который строится из неё. Его рисует плагин Charts, данные ему отдаёт скрипт DataviewJS:

const file = app.vault.getAbstractFileByPath(dv.current().file.path);
const text = await app.vault.cachedRead(file);
const section = (text.split(/^# Замеры\s*$/m)[1] || "").split(/\n# /)[0];
const rows = section.split("\n")
  .filter(l => l.trim().startsWith("|"))
  .map(l => l.trim().replace(/^\||\|$/g, "").split("|").map(c => c.trim()))
  .filter(r => /^\d{4}-\d{2}-\d{2}$/.test(r[0]) && r[1]);
const events = rows.map(r => (r[2] || "").replace(/\[\[|\]\]/g, ""));
window.renderChart({
  type: "line",
  data: {
    labels: rows.map(r => r[0].slice(8, 10) + "." + r[0].slice(5, 7)),
    datasets: [{
      data: rows.map(r => parseFloat(r[1].replace(",", "."))),
      borderColor: "#7c5cff",
      backgroundColor: "rgba(124, 92, 255, 0.12)",
      fill: true,
      tension: 0.3,
      pointRadius: events.map(e => e ? 6 : 3),
      pointBackgroundColor: events.map(e => e ? "#fff" : "#7c5cff"),
      pointBorderColor: "#7c5cff",
      pointBorderWidth: 2
    }]
  },
  options: {
    plugins: {
      legend: { display: false },
      tooltip: { callbacks: { afterLabel: c => events[c.dataIndex] } }
    }
  }
}, dv.container);

Скрипт читает текст заметки, находит раздел «Замеры», разбирает таблицу и передаёт даты и значения в график. Точки, у которых заполнено «Что случилось», крупнее, и при наведении показывают событие. Скрипт лежит одним файлом, а в каждой метрике стоит одна строка вызова:

```dataviewjs
await dv.view("Скрипты/метрика")
```

Когда в августе провал повторится, объяснение февральского будет в той же таблице.

Узел 4. Решения

Решение - заметка с четырьмя разделами: вопрос, варианты, что выбрали, что отбросили и почему. Поля: статус (принято, отклонено, отложено), дата, инициатива и кто участвовал.

На этом решении видна вся цепочка. В интервью новая пользовательница говорит, что карта у мужа, а наличными она заплатила бы курьеру. Гипотеза «Оплата при получении для всех новых» поднимает конверсию с 18 до 25%, но отказы при получении доходят до 11% при критерии ниже 4%. Решение: оплата при получении со второго заказа. В разделе «Что отбросили и почему» записаны оба отвергнутых варианта с цифрами. Через полгода на вопрос «почему не для всех» ответ открывается одной ссылкой.

Отложенные решения

У отложенного решения есть задача «вернуться» с датой:

- [ ] Вернуться к баллам партнёров 📅 2027-01-15

В январе она появится на стартовой странице, и к решению вернутся вместе с аргументами, которые были в октябре.

Все решения сводит картотека Решения.base, сгруппированная по статусу. В инициативе встроен вид, который показывает только её решения.

Что ещё есть в системе

  • Входящее. Запрос из чата, жалобу или идею записываешь командой QuickAdd, не открывая нужную заметку. Строка встаёт во «Входящее» с датой и типом, разбирается потом.

  • Встречи. Повестка до, договорённости и поручения после, ссылка на инициативу. Поручения со встречи видны на странице инициативы.

  • Конкуренты. Функции, история цен с датами, жалобы из отзывов. Цифра из отраслевого отчёта цитируется ссылкой на страницу PDF: плагин PDF++ открывает файл сразу на нужном месте.

  • Свои формулировки. Ответ на «почему пока нет баллов партнёров», объяснение продукта, шаблон описания релиза. Выделил удачный ответ - QuickAdd сохранил его в заметку. Шаблон Templater вставляет любую формулировку в текущую заметку из списка.

Что получается

В такой системе каждая доработка продукта - одна страница: стадия, срок, блокер, задачи, цитаты пользователей, гипотезы с итогами, решения и поручения со встреч. Стартовая страница каждое утро показывает задачи и встречи на сегодня, просроченное, блокеры со сроком ожидания и роадмап. А на вопрос «почему мы так решили» ответ находится по ссылкам от решения к гипотезе и от гипотезы к цитате.

Под конкретного человека половина узлов перестраивается: кто-то ведёт задачи в трекере команды и в Obsidian хранит только обоснования, а у руководителя направления добавляются продакты в подчинении. В канале я собираю такие схемы систем под профессии подписчиков. Раз в несколько недель я публикую там пост, под которым подписчики пишут свою профессию, и присылаю каждому схему в личку.

Больше разборов и кейсов - в моём тг-канале.