Claude Code + Obsidian. Как я перестал терять документацию между проектами.
Веду параллельно семь проектов на четырёх стеках. Документация по каждому актуальная. Не потому что я аккуратный. Потому что её больше не пишу я.
Её пишет Claude Code в моём Obsidian-vault.
Почему обычная документация умирает за неделю
Любой, кто вёл больше двух проектов одновременно, узнаёт картину. Confluence-страница «Setup» от прошлого года. README в репо, написанный когда стек был другой. Notion с API-ключами, половина из которых давно не валидна. Telegram-чат с «как мы деплоим этот сервис, спроси у Лёши».
Это не лень. Это экономика.
Чтобы обновить доку, нужно: переключить контекст, открыть нужный инструмент, вспомнить структуру, дописать, сослаться на тикет. Каждый такой апдейт — 10–15 минут чистого времени плюс налог на переключение. В сумме месяц в год можно отдать только на это. Никто не отдаёт.
Поэтому документация остаётся в голове. А голова уходит в отпуск, увольняется или просто забывает, в какой папке лежал тот самый docker-compose.
Что я поменял
Год назад я свёл всё в один Obsidian-vault. Markdown-файлы локально на машине, git-репо для бэкапа и истории. Никаких облачных CMS и WYSIWYG-редакторов. Один vault на проект, иногда один на группу проектов.
Поверх этого работает Claude Code в той же папке. Это CLI-агент, который читает и пишет файлы в директории, где ты его запустил. Запускаю в корне vault, и теперь у меня есть собеседник, который видит мою документацию целиком и умеет её редактировать.
Не «AI в окне браузера». Процесс в той же файловой системе, что и сами файлы.
Дальше работают четыре простых соглашения.
1. CLAUDE.md как контракт
В корне vault лежит CLAUDE.md. Claude Code читает его автоматически при старте. Туда я пишу не «what», а «how»:
- какой тон допустим в текстах,
- какие имена файлов canonical, какие устаревшие,
- где живут секреты и в какие файлы их класть нельзя,
- как нумеруются разделы, где индекс, где журнал.
Это контракт, не stylesheet. Когда агент правит файл, он сверяется с ним и не уходит в самодеятельность.
Аналог в обычной команде — onboarding-документ для нового сотрудника. Только здесь сотрудник перечитывает его каждый раз заново, не устаёт и не делает вид, что прочитал.
2. Frontmatter agent-hint на индексах
В заголовке каждого индекс-файла лежит блок:
---
type: index
section: "03 - Сайт"
agent-hint: >
Этот раздел документирует Next.js сайт. Код в /Users/me/projects/site.
При обновлении страниц обновлять Roadmap и SEO-чек-лист в этом же разделе.
---
Короткая записка для агента: зачем эта папка, куда смотреть, что обновить рядом. Когда я прошу добавить новую статью, агент сначала читает agent-hint и понимает, что после правки нужно обновить три связанных файла, а не один.
Результат — документация остаётся синхронизированной без моего напоминания. Раньше я отдельно правил roadmap, отдельно журнал публикаций, отдельно SEO-список. Теперь правлю один раз, остальное Claude разносит сам.
3. Skills и memory
Две вещи, которые у меня окупились быстрее всего.
Skills — вшитые навыки, подгружаются под задачу. У меня есть свой skill humanizer. Он чистит текст от типичных AI-маркеров перед публикацией. Этот пост через него тоже прошёл. Есть skill для брейншторма, есть для git-воркфлоу. Запускаются короткой командой, не нужно каждый раз пересказывать правила.
Memory — постоянная папка, куда агент пишет короткие заметки между сессиями. «Пользователь предпочитает первое лицо». «Коммиты в репо X идут от другого автора». «Токен для LinkedIn хранится там-то». Я туда даже не заглядываю. Но в новом разговоре Claude помнит контекст и не задаёт одни и те же вопросы заново.
Это снимает второй главный налог. Налог на повторение.
4. Subagents для исследования
Когда задача требует прочитать 30 файлов и найти что-то конкретное, я не делаю это руками и не заставляю основной поток разговора давиться выдачей grep.
Запускаю subagent через инструмент Agent с типом Explore. Он отдельно проходит по проекту, ищет паттерны, возвращает summary в три строки. Основной контекст не засоряется.
На vault из ~400 markdown-файлов это разница между «5 минут на ответ» и «30 секунд».
Что я измерил
Точных цифр держать смысла нет, они плавают каждую неделю. Порядок такой.
Возвращение в собственный проект, где не был два месяца, раньше съедало час. Сейчас уходит минут пять — открываю vault, спрашиваю «где мы остановились на N», получаю ответ со ссылками на нужные файлы.
Вечерние 20–40 минут на «дописать вики после рабочего дня» исчезли. Не потому что я стал собранным, а потому что апдейт идёт по ходу самой работы. К концу разговора файлы уже синхронизированы.
«Забытое» (нужно срочно, а оно нигде не записано) за два месяца случилось дважды. До этого — стабильно раз в неделю.
Что не работает
Чтобы пост не превратился в рекламную брошюру, несколько честных мест.
Claude не «понимает» проект. Он понимает то, что лежит в файлах. Если структура vault — каша, агент тоже выдаст кашу. У меня первая неделя ушла на то, чтобы навести порядок в папках и индексах. Без этого никакой AI не спасает.
Claude не заменяет архитектора. На вопрос «какой стек выбрать» отвечает правдоподобно, но без контекста твоего бизнеса и команды. Архитектурные решения остаются на мне. Записывает их за нами уже агент.
Claude иногда пишет слишком красиво. Поэтому в pipeline у меня последним шагом стоит тот самый humanizer-skill. Он убирает обороты, которые выдают AI: «leverage», «delve», em-dash в каждом абзаце, перечисления по три. Без этого шага тексты узнаются за два предложения.
Итог
У меня перестало быть отдельное окно «дописать документацию». Она дописывается сама, пока я делаю обычные задачи в том же vault.
Стек простой: markdown в Obsidian, Claude Code запущенный в этой же папке, и сверху четыре соглашения, которые я описал выше. Никаких новых SaaS, никаких подписок на «AI knowledge base за $30 за seat в месяц».
Если у вас уже есть Obsidian-vault и вы не запускали в нём Claude Code, попробуйте на одном небольшом проекте. Вечер на установку, ещё вечер на разметку CLAUDE.md и agent-hint. Дальше система начинает поддерживать сама себя, и это уже не дисциплина, а инерция.