Моя девушка — мой кофаундер. У нас AI-музыкальный лейбл на двоих, 50/50. Мы пока даже живём в разных местах — поэтому общая база знаний для нас не удобство, а необходимость.
Все гайды по shared Obsidian vault, что я читал, написаны для инженерных команд. Ни один не закрывает реальную проблему: один и тот же vault должен держать инвойс клиенту, маршрут отпуска и скетч из её отдельной творческой практики, не имеющей отношения к музыке.
Граница тут не «работа vs личное». Она запутана.
Мы крутим всё через один vault уже пару месяцев. Self-hosted синк на дешёвой VPS. Telegram-бот, который проглатывает войс-заметки на ходу и кидает их прямо в инбокс. Один Claude-аккаунт на двоих. Шестизонная структура папок, которая делает большую часть работы, чтобы компания и отношения не слипались друг с другом.
Это недели, не годы — но уже поменяло то, как мы работаем.
Почему советы про shared vault не работают для пары
В командных сетапах исходят из того, что люди уходят с работы. Между рабочими и личными файлами есть чистая граница — рабочее живёт за корп SSO, личное нет. Два человека в отношениях, которые ещё и ведут общий бизнес, такой границы не имеют. Одна и та же Claude-сессия, которая в 14:00 драфтит контракт с вендором, в 21:00 планирует нашу следующую поездку.
Можно решить это, разведя на несколько vault’ов — один для бизнеса, один для меня, один для неё — и потом страдать, что [[wikilinks]] не ходят через границы vault’ов. Мы пробовали. Заметка о подрядчике лейбла хотела линкнуться на реферал, который он дал ей по одному из её проектов — а это лежало в её личном vault. Ссылки не дотягиваются. Граф умирает.
Один vault, шесть зон.
Архитектура
Our Vault/
├── 00-inbox/ сырой дамп, разделён на mine/ и hers/
├── 01-business/ лейбл — стратегия, клиенты, финансы,
│ операции, контент, продукт, встречи
├── 02-mine/ моё — стартапы, обучение, личное
├── 03-hers/ её — проекты, обучение, личное
├── 04-us/ общая жизнь — поездки, дом, здоровье, события,
│ личные финансы, цели
├── 05-resources/ инструменты, контакты, референсы, шаблоны
└── CLAUDE.md system prompt для общего AI
Правило простое. 01-business/ — компания. 04-us/ — всё, что мы делим вне компании. 02-mine/ и 03-hers/ — приватно-но-видимое: по умолчанию мы заметки друг друга не читаем, но можем.
Зоны делают почти всю когнитивную работу. Когда я собираюсь писать заметку и должен выбрать папку, папка заставляет меня ответить: это про лейбл, это про нашу жизнь, это моё? Раньше на этот вопрос нужен был разговор.
Почему один vault, а не три
Три vault’а казались чище в теории. На практике все кросс-доменные ссылки ломались.
Killer use case — это граф людей. Саунд-инженер, который работает над треками лейбла, ещё и дал ей реферал на поставщика, которым она потом воспользовалась на одном из своих проектов. В одном vault его карточка в 05-resources/contacts/ линкуется на заметку встречи в 01-business/, на интро-заметку в 04-us/ и на цепочку рефералов в 03-hers/projects/. В трёх vault’ах ты бы имел три копии этого человека и никогда не увидел связь.
Граф — это продукт. Раздробить vault по владельцам — убить граф.
Self-hosted синк-стек
Вся система стоит на одном решении: markdown-файлы на диске. Не SaaS-база. Не проприетарный формат. Plain text в папках, на железе, которое контролируем мы. Профит — независимость от инструментов: Claude, Cursor, любой будущий AI-клиент, обычный текстовый редактор, даже grep — они все работают с одними и теми же файлами. Цена — синк ты должен решать сам.
iCloud создаёт дубликаты (conflict), когда мы редактируем одновременно. Obsidian Sync — это ежемесячный фи и данные на чужих серверах. У нас уже была небольшая VPS с Caddy и парой других контейнеров. Добавить туда CouchDB заняло пятнадцать минут.
Контейнер:
docker run -d --name obsidian-couchdb \
--restart unless-stopped \
-e COUCHDB_USER=user \
-e COUCHDB_PASSWORD=strong-password \
-v /opt/obsidian-sync/couchdb-data:/opt/couchdb/data \
-v /opt/obsidian-sync/couchdb-config/local.ini:/opt/couchdb/etc/local.d/local.ini \
-p 127.0.0.1:5984:5984 \
couchdb:3
Caddy проксирует sync.ourdomain.org на контейнер. Плагин Self-hosted LiveSync в Obsidian общается с ним по HTTPS. Всё end-to-end шифруется до того, как уйти с устройства — CouchDB видит только зашифрованные блобы.
Подключить её устройство к синку — это один паст. Плагин экспортирует Setup URI со всей конфигой; я отправил его в Telegram, она вставила на своей стороне, отдельно ввела passphrase для шифрования, и второй клиент стартовал. Без перепечатывания.
Round-trip на одно нажатие клавиши — около секунды. Разрешение конфликтов — автомат через CouchDB replication protocol. Первый синк большого vault занимает 10–30 минут; дальше ходят только дельты.
VPS уже крутилась под другие задачи. Marginal cost от добавления синка — ноль.
Telegram-инбокс
Мобильное приложение Obsidian — норм для чтения, но тормозное для capture. Открывать его на телефоне ради одной строчки — friction, который мозг платить отказывается. Большинство идей гибнет в этом зазоре.
Фикс — маленький Telegram-бот на той же VPS. Кидаешь ему что угодно — текст, войс, фото, ссылку — и он сохраняет markdown-файл в 00-inbox/ с timestamp-именем и тегом отправителя (mine или hers), чтобы followup был привязан к правильному человеку. Войсы транскрибируются и сохраняются как текст рядом с аудио.
Типичный capture: иду куда-то, прилетает идея, отправляю боту 30-секундный войс. Пока я дойду до дома, в vault уже лежит транскрибированный markdown-файл, готовый к следующему compile pass (ниже).
Бот — это разница между «у меня была мысль» и «я потерял мысль». Мобильный Obsidian сам этот разрыв не закрывает. Telegram уже живёт у тебя в руке.
Воскресный compile pass
Capture — это половина петли. Вторая половина — чтобы ничего не потерялось.
Раз в неделю — обычно в воскресенье — Claude проходит по всему новому в 00-inbox/: транскрипты войсов, недописанные заметки, скриншоты, ошмётки из бота. Для каждой штуки он понимает, о чём это, тегает, линкует к связанным заметкам через [[wikilinks]] и кладёт в нужную зону. Всё неоднозначное остаётся в инбоксе с флагом и вопросом к тому, кто это закинул.
Инбокс разделён по отправителю — 00-inbox/mine/ и 00-inbox/hers/ — именно для этого пасса. Когда Claude находит задачу, зашитую в войс, он уже знает, чья она, ещё до того, как спросит.
Пропусти эту петлю на три недели — инбокс перестанет быть полезным. Гоняй еженедельно — и vault растёт сам.
CLAUDE.md — самый важный файл в vault
В корне vault лежит файл CLAUDE.md. Каждый раз, когда кто-то из нас стартует Claude-сессию с этой папкой, модель читает его первым. Это общий мозг.
Реальный отрывок:
## Кто говорит
Если непонятно, спроси: «Кто из нас?»
Подсказки:
- Треки, код, серверы, музыкальное продакшн → Ник
- Дизайн и творческая практика → она
- Контент, SMM, бренд, мерч, книги → может быть любой
## Где что лежит
- Бизнес-решения → 01-business/meetings/ с датой
- Финансы → только 01-business/finance/
- Идеи без места → 00-inbox/(mine или hers)/
- Всё про треки и релизы → 01-business/product/
## Не надо
- Не удалять файлы без подтверждения
- Не переносить файлы между 02-mine/ и 03-hers/ без спроса
- Не писать "AI slop" — мы ценим конкретику и ненавидим воду
Структура папок — это не то, что заставляет систему работать. Работает она потому, что модель знает структуру и следит за ней. Когда я закидываю полудраную мысль в сессию, Claude видит, что файл мой, кладёт в 00-inbox/mine/, тегает, линкует к существующим заметкам. Когда она просит черновик поста в Instagram, Claude вытаскивает наш tone of voice из 01-business/content/, а не угадывает.
В отрывке есть маленький, но важный паттерн: «Если непонятно, спроси: кто из нас?» Большинство shared AI-сетапов гадают про контекст. Наш — спрашивает. Когда автор заметки неоднозначен, Claude сначала уточняет, потом тегает. Цена — один лишний вопрос на неоднозначную заметку. Профит — ничего не атрибутируется не тому: черновик, который должен попасть в мою очередь, не оседает у неё, и наоборот.
Этот файл — разница между общей папкой и общей системой знаний.
CLAUDE.md ещё и playbook для переговоров
Правила роутинга папок очевидны. Они держат заметки от падения не в ту зону. То, ради чего CLAUDE.md заслуживает корня vault — это другая секция. Про внешнюю переписку.
Когда кто-то из нас просит Claude написать ответ на саппорт-тикет, на письмо вендору, на письмо налоговой, на аудит-запрос дистрибьютора — модель идёт по четырём правилам, зашитым в файл:
- Не признавай ошибку, которую тебе не предъявили. Если в их письме «ваш листинг был удалён» — не пиши в ответ «я понимаю, что мой контент нарушает правила». Это письменное признание, которое потом процитируют против тебя на апелляциях. Признавай только то, что они реально сказали.
- Один конкретный ask. Не три. Не «что мне делать?». Один. «Подавать апелляцию с укороченными названиями или снять и переподать как новые?» Без одного конкретного ask письмо превращается в обмен любезностями, который никуда не идёт.
- Назови leverage. Что у тебя реально есть — дедлайн, который ты не пропустишь, альтернативный путь, который пойдёшь, заявка, которая уже в работе. Не угроза. Data point, который меняет их приоритет.
- Опиши fallback. Что ты делаешь, если они не ответят или ответят не то. План Б. Полезно тебе, потому что план есть, и сигнал им, что ты не на их милости.
И один явный anti-pattern: не извиняйся за то, что не твоя вина. AI по дефолту стелет ковёр перед тем, как задать вопрос. Срежь ковёр. «Спасибо за ответ» — ок. «Извиняюсь за непонимание правил платформы» — нет, особенно когда правила сами были не сформулированы чётко.
Мы дописали эту секцию после серии саппорт-тикетов, где Claude драфтил полезные, вежливые, обречённые письма. С правилами в CLAUDE.md любой внешний черновик теперь имеет структурную дисциплину раньше, чем тон. То, что мы делим между собой — это не только заметки. Это posture в переговорах.
Что это реально даёт
Несколько реальных штук за последнюю неделю.
У меня был созвон с вендором про пересмотр условий. Claude прочитал папку с заметками встреч, вытянул нужный cost-контекст из 01-business/finance/, набросал followup-письмо и добавил followup-задачи в 01-business/operations/ с тегом @nik, чтобы каждая ушла на правильного человека. Четыре минуты от «мы положили трубку» до «всё захвачено».
Она прорабатывала один из своих проектов, нужен был поставщик. Попросила Claude найти контакты. Модель прошлась по 05-resources/contacts/, нашла двоих, которых мы добавляли несколько недель назад в совершенно других контекстах, и выкатила их вместе с оригинальными заметками — почему мы им доверяли.
Мы планировали поездку. Claude вытянул бюджетные cap’ы из 04-us/finance-personal/, предпочтения по отелям из прошлых поездок в 04-us/travel/ и список городов из заметки, которую она писала в 03-hers/personal/ и которую я никогда не видел. Черновик поездки за пятнадцать минут.
Магии тут нет. Это то, что происходит, когда у одной модели есть непрерывный контекст по всему, что ты вообще удосужился записать.
Что бы я сделал иначе
Не кодь в папке vault. Я думал, LiveSync синкает только markdown. Не синкает — он синкает всё в папке. Я как-то решил начать в той же папке небольшой dev-проект; npm install уронил сотни мегабайт node_modules, скачались SDK и бинарники, синк подавился, база сдохла, пришлось снести и переподключить оба клиента с нуля. Код теперь живёт в отдельной репе ~/Code/. Vault — только для заметок. Если без бинарей не обойтись — исключи их в настройках LiveSync до того, как закоммитишь.
Мобильный Obsidian тормозит на первом открытии. Telegram-бот закрывает большую часть мобильного use case (capture); приложение — для чтения на ходу, и мы с этим лагом миримся.
Два человека редактируют один файл в одну и ту же минуту — изредка случается конфликт. CouchDB его решает, но надо проверить, что выиграла нужная версия. Решение: не редактьте один файл одновременно. Сначала поговорите.
Настрой автоматические бэкапы в первый день, а не через три недели. В те первые недели ничего не отвалилось, но если бы CouchDB сам себя поломал или диск умер — отката не было бы. Сейчас по ночам tar /opt/obsidian-sync/couchdb-data уходит на внешний бокс.
Выдели папку 04-us/ пораньше. Мы не поняли, сколько контента про общую жизнь по ошибке падает в бизнес-папку — ресёрч по путешествиям оседал рядом с vendor diligence — пока куча не разрослась настолько, что стало раздражать.
Шаблон
Чистая версия этой штуки лежит на GitHub. Пустой скелет vault (шесть зон, README, .gitkeep-маркеры), template CLAUDE.md, который можно подогнать под свой бизнес, полный install guide для self-hosted LiveSync на Hetzner + Caddy + CouchDB, и Obsidian-плагин, которым мы реально пользуемся (Self-hosted LiveSync — пока что один).
github.com/nikmcfly/shared-vault-template
Клонируй, направь Obsidian на эту папку — ты прошёл 80% пути. Без git? Скачай zip.
PR’ы welcome — особенно если ты решил проблему мобильного capture на Android.
Один vault. Шесть зон. Твой ход.
Скучный урок: большинство советов про «командный Obsidian» не выживают при контакте с двумя людьми, чьи жизни пересекаются так сильно, как наши. Структура должна делать работу, которую раньше делал социальный контракт.
Интересный урок: когда структура правильная и AI её знает, ты перестаёшь быть бутылочным горлышком. Claude умеет написать заметку встречи, найти поставщика, набросать пост, спланировать поездку. Ты становишься редактором собственной жизни вместо её секретаря.
Мы пара. Мы кофаундеры. Наш vault знает разницу.
Твой тоже может.