Files
obsidian-vault/personal/projects/personal-os/obsidian-vault-strategy.md
T

32 KiB
Raw Blame History

created, updated, tags, status
created updated tags status
2026-05-15 2026-05-16
personal-os
obsidian
vault
strategy
llm-wiki
active

Obsidian Vault Strategy & LLM Wiki Plan

Deep research 2026-05-15. Источники: Karpathy LLM Wiki gist (5000+ stars), LLM Wiki v2 (rohitg00, 1200+ stars), claude-obsidian (PyShine), Ar9av/obsidian-wiki (DeepWiki), Tom Nguyen 6-month report, Nodus Labs knowledge graph extension, mathisgauthey (r/ObsidianMD, 1000+ upvotes), MOC+Dataview guide, Obsidian+Claude Code integration, LifeOS, Obsidian Forum.


Часть 1 — Текущее состояние vault

Что есть

Тип контента Примеры Где лежит
Личные списки Список дел, Фильмы, Книги, Покупки personal/documents/, family/documents/
Брифы и планы Daily brief, weekly plan, inbox triage work/briefs/
Проектные заметки executor, media-pipeline, wiki personal/projects/, family/projects/
How-to документация HTPC, Кракен, WireGuard family/how-to/
Knowledge wiki Архитектура personal-os, схема БД wiki/

Что не работает

  • Граф пустой — 90% заметок без frontmatter, aliases, wikilinks. Поиск находит только по точному имени файла.
  • Воркер переименовал файлы без aliases → ✅ Список делtodo-list.md, поиск сломан.
  • Wiki-curation делает лишнее — Task 3b (раскладка файлов по папкам) не относится к Karpathy, добавлен ошибочно.
  • Нет накопления знаний — каждый research-сеанс начинается с нуля. Пример: анализ Obsidian PKM занял 15 минут и 10+ web запросов, которые нужно будет повторять снова.
  • Нет проактивных исследований — агент реагирует на запросы, не инициирует изучение пробелов.

Часть 2 — Анализ подходов из research

Karpathy LLM Wiki (оригинал, апрель 2026)

Суть: LLM читает сырые источники → строит wiki с entity/concept pages → cross-references → compounding knowledge base. Человек почти не пишет в wiki руками.

Ключевые цифры: Karpathy вырастил wiki на одну тему до ~100 статей, 400k слов, не написав ни одной напрямую. Tom Nguyen (6 месяцев в production): 77 wiki pages, 30+ источников, 13 custom skills читают из wiki.

Три операции:

  1. Ingest — дропаешь источник, агент создаёт/обновляет 10-15 wiki pages
  2. Query — агент читает index.md, находит нужные pages, даёт ответ со ссылками
  3. Lint — проверка orphan pages, противоречий, stale claims, пробелов

Применимость к нам: Wiki для накопления knowledge (техника, workflows, инфраструктура, AI tools) — да. Для личных списков — нет.


LLM Wiki v2 (rohitg00) — production extensions

Ключевые расширения:

4-tier memory pipeline:

Working Memory   → сырые наблюдения текущей сессии
Episodic Memory  → сжатые саммари сессий
Semantic Memory  → кросс-сессионные факты (wiki)
Procedural Memory → паттерны, workflows, skills

Confidence scoring: каждый факт имеет score (кол-во источников, свежесть, противоречия). Устаревает со временем, усиливается при подтверждении.

Event-driven automation:

On new source    → auto-ingest, extract entities, update graph
On session end   → compress session into observations, file insights  
On query         → check if answer worth filing back
On schedule      → periodic lint, consolidation

Кристаллизация: завершённые debug/research сессии автоматически дистиллируются в wiki pages.


claude-obsidian / Ar9av/obsidian-wiki — автономные skills

Наиболее зрелые production реализации. Ключевые skills:

wiki-synthesize — сканирует vault, находит concept pairs которые часто co-occur но не имеют synthesis page. Строит Concept A × Concept B pages автоматически.

wiki-research (3-round autonomous loop):

  • Round 1: decompose topic → 3-5 angles → broad search
  • Round 2: find gaps/contradictions → targeted search
  • Round 3: resolve contradictions → synthesis

wiki-capture — конвертирует AI-human сессии в declarative wiki notes. Эта сессия (анализ Obsidian PKM) должна была бы стать wiki pages автоматически.

autoresearch (claude-obsidian):

/autoresearch topic
→ Round 1: query wiki → identify gaps → ingest sources
→ Round 2: re-query → find remaining gaps → more sources
→ Round 3: synthesis → comprehensive result with citations

Session hooks:

  • SessionStart → load hot cache, read schema
  • PostToolUse → auto-commit if files changed
  • Stop → save final state, update manifest

Knowledge Graph extension (Nodus Labs)

Добавляет структурную самоосознанность поверх Karpathy:

Gap detection: находит disconnected clusters в wiki graph. Там, где два тематических кластера не связаны — это часто место для нового insight или исследования.

Prompt-to-structure: вместо "объясни X" → "как A связан с B, учитывая что они в разных кластерах?" → более точные, оригинальные ответы.


Проактивные исследования — PersonalAgent pattern (arxiv 2512.15302)

Идея: агент строит user profile → из профиля выводит гипотезы что пользователю может быть интересно → инициирует исследования без запроса.

Применительно к нам: агент знает что ты работаешь над personal-os, media-pipeline, executor — и проактивно исследует смежные темы: новые подходы к orchestration, медиа-библиотеки, home automation.

Реализация: weekly cron который читает wiki + профиль + последние сессии → формирует список hypothesis → запускает wiki-research по каждой → результаты в inbox для review.


Часть 3 — Что реально нужно нам

Три разных задачи (не смешивать!)

Задача A: Vault enrichment — сделать личные заметки searchable и связными

  • frontmatter + aliases на существующие файлы
  • wikilinks между связанными заметками
  • MOC/index files для навигации

Задача B: LLM Wiki для knowledge accumulation — накапливать research результаты

  • wiki/ как compounding knowledge base
  • Research сессии → wiki pages
  • Lint + gap detection

Задача C: Проактивные автономные исследования — агент сам генерирует гипотезы и исследует

  • User profile → hypothesis generation
  • Scheduled research runs
  • Results → inbox для review

Часть 4 — План: три проекта

Проект 1: Vault Enrichment

Цель: граф живой, поиск работает по aliases, Dataview агрегирует, файлы связаны по смыслу.

Ключевой принцип: topic map как источник правды

family/index.md и personal/index.md — это не просто каталоги файлов, а топик-карты vault.

Карта содержит:

  • Топики / кластеры (Алтай, Лаки Парк, Kraken, psychologist-app, …)
  • Какие файлы принадлежат каждому кластеру
  • Ссылку на hub-note кластера (основную заметку)

Enrichment воркер читает карту первым делом и работает по ней — не по хардкоду в промпте. Если находит новый кластер которого в карте нет — добавляет его туда сам. Карта самодополняется.

family/index.md  (topic map)
    ├── ## Место: Алтай
    │     hub: family/places/altai.md  (создать при необходимости)
    │     files: altai-shopping, altai-house-inventory
    ├── ## Место: Лаки Парк (Тайга)
    │     hub: family/how-to/truenas-infrastructure.md
    │     files: lerua-shopping, fasteners-nomenclature
    ├── ## Инфраструктура: Kraken
    │     hub: family/how-to/kraken-access.md
    │     files: kraken-portainer-access, openmediavault-rpi5, …
    └── …

Шаги

  1. Убрать Task 3b из wiki-curation промпта — сделано 2026-05-16
  2. Добавить frontmatter + aliases на 24 файла documents/ — сделано 2026-05-16
  3. Создать enrichment cron (воскресенье 03:00) — запущен 2026-05-16
  4. Пересобрать family/index.md и personal/index.md как топик-карты (кластеры вместо плоских списков)
  5. Обновить промпт enrichment воркера: читать index как карту, линковать по ней, дополнять при находке новых кластеров — никакого хардкода в промпте
  6. Создать personal/places/ и family/places/ hub-notes для физических мест если нужны (Алтай, Лаки Парк)

Стек: Hermes cron + obsidian MCP + terminal toolset

Правило: воркер никогда не хардкодит конкретные файлы или топики в промпте. Карта = единственный источник правды о кластерах.


Проект 2: LLM Wiki — Knowledge Accumulation

Цель: каждая research-сессия накапливается. Следующий вопрос про memory architectures → читаю 2 страницы wiki вместо 10 web запросов.

Компоненты

Crystallization — сессии → wiki pages (ежедневно в wiki-curation-daily)

  • Воркер сканирует дневные сессии
  • Критерий: знание painful to re-derive + fit wiki domain
  • Дистиллирует факты (не разговор), создаёт/обновляет wiki pages
  • Добавлено в wiki-curation-daily промпт (2026-05-16)

Wiki-Synthesize — co-occurring concepts → synthesis pages

  • Воркер ищет темы из 3+ страниц без synthesis page
  • Создаёт comparisons/A-vs-B.md или concepts/A-and-B.md
  • Лимит: 1 страница за прогон
  • Добавлено в wiki-curation-daily промпт (2026-05-16)

Inbox drop — быстрый путь добавить knowledge в очередь

  • Файл в wiki/raw/inbox/research-SLUG-YYYYMMDD.md → обрабатывается следующей ночью
  • Сегодняшняя сессия (vault strategy + memory architecture) заброшена в инбокс

Что войдёт в wiki

AI/ML memory architectures, Obsidian PKM patterns, personal-os architecture decisions, Swift/iOS patterns, media pipeline learnings, enrichment patterns.

Стек: wiki-curation-daily (расширенный) + inbox mechanism

Статус: Реализован 2026-05-16


Проект 3: Proactive Research Agent

Цель: агент сам инициирует исследования исходя из профиля и пробелов в wiki.

Архитектура

Gap Detector (читает vault, находит темы без wiki-страниц)
    ↓
research-queue.md (приоритизированный список)
    ↓
proactive-research cron (суббота 05:00, 1 тема за прогон)
    ↓
3-round research loop → wiki page
    ↓
queue item помечается [x], wiki/index.md обновляется

Компоненты

research-queue.md (wiki/research-queue.md)

  • Живой список тем для исследования
  • Воркер берёт top-1 [ ] item каждую субботу
  • Alex может добавлять вручную
  • Создан с 7 начальными темами (2026-05-16)

proactive-research cron (суббота 05:00)

  • Gap detection: темы 3+ упоминаний в vault без wiki-страницы → добавляет в queue
  • 3-round research loop: broad → deep → synthesis
  • Создаёт/обновляет wiki page, обновляет index.md, отмечает queue item
  • Cron создан (job: 41896d17f5fc, 2026-05-16)

Начальная очередь:

  • Obsidian Bases vs Dataview 2026
  • Skip.tools production-readiness
  • Home Assistant + Zigbee для RPi5
  • AI mental health apps landscape
  • Swift Concurrency 2026
  • Personal OS orchestration alternatives
  • Indie iOS monetization 2026

Статус: Инфраструктура создана 2026-05-16. Первый прогон: 2026-05-23.


Проект 4: Cross-domain Enrichment Agent

Цель: vault note + external signal → personalized insight. Два режима: разовое обогащение и регулярный мониторинг.

Архитектура

Enrichment:  Vault note + External (web) → companion note рядом с исходником
Monitoring:  External stream → фильтр через user-profile → digest delivered

vault-cross-enrichment cron (воскресенье 04:00, web+file+terminal toolsets)

  • Target discovery: enrich-me тег, файлы 30+ дней без обновления, app-ideas
  • Enrichment types: app-ideas competitive analysis, wishlists (games/books/movies), travel, home automation
  • Profile-aware: всё фильтруется через wiki/user-profile.md
  • Output isolation: результат в -enriched.md companion файле, исходник не трогает
  • Monitoring digest: tech stack updates, indie/App Store news, Bishkek local
  • Cron создан (job: f3de00040aac, 2026-05-16)

Часть 5 — Последовательность

Сейчас → Проект 1 (enrichment) — быстро, ощутимый результат
         ↓
         Проект 2 (wiki accumulation) — параллельно или после
         ↓
         Проект 3 (proactive research) — когда wiki достаточно наполнена

Проект 3 имеет смысл только когда в wiki есть достаточно контента чтобы gap detection давал сигнал. Сначала нужно наполнить wiki (Проект 2).



Часть 5a — Паттерн: Personal Context → External Signal → Insight

Это отдельный класс задач — cross-domain enrichment с внешними данными. Агент читает личные данные из vault, учитывает профиль пользователя, обогащает внешними сигналами и возвращает персонализированный результат.

Ключевое отличие от Google: контекст про тебя уже внутри — агент не ищет абстрактный ответ, а фильтрует под конкретного человека.

Общий паттерн

Заметка/список в vault
    + Связанные заметки (через wikilinks / поиск)
    + User Profile (возраст, интересы, текущий стек, предпочтения)
    + External signal (web, API, RSS, marketplace)
    ↓
Enrichment Agent (по триггеру или расписанию)
    ↓
Enriched note в vault (insights + cross-links + источники)

Два режима агента

Примеры выше делятся на два разных паттерна — важно не смешивать:

Enrichment — обогащаешь данные один раз (или при изменении)

  • Исходная заметка есть, нужно добавить внешний контекст
  • Запускается по триггеру (новая запись) или периодически
  • Результат стабилен, обновляется редко
  • Примеры: анализ идей приложений, learning path по списку книг, фильтрация игр под профиль

Monitoring — следишь за потоком внешнего мира, фильтруешь через твой контекст

  • Внешний мир меняется, vault — точка отсчёта для фильтрации
  • Запускается регулярно (ежедневно / еженедельно)
  • Результат — дайджест / алерт, не постоянная заметка
  • Примеры: новые заведения в Бишкеке, распродажи билетов под планы поездок, конференции по твоим темам, апдейты инструментов из стека
Enrichment:  Vault (данные) + External (контекст) → Enriched note в vault
Monitoring:  External (поток) → фильтр через Vault (профиль) → Алерт / Дайджест

Оба нужны, но реализуются по-разному: enrichment — разовый агент с obsidian MCP, monitoring — регулярный cron с web toolset и доставкой в inbox/Zulip.

Иллюстративные примеры (не задачи, а цепочки мышления)

1. Список идей приложений → конкурентный анализ Читает каждую идею → ищет по YC directory / ProductHunt / web по ключевым словам → кто уже делает, funding, незакрытые ниши → сохраняет анализ рядом с идеей

2. Активности с ребёнком × список игр × профиль ребёнка Читает списки активностей + игр → читает профиль (возраст, интересы, темперамент, что работает) → cross-links между файлами → фильтрует игры под совместную игру → ищет новые по интересам → персонализированные рекомендации с обоснованием

3. Список для чтения → learning path Книги/статьи + текущие знания из wiki → определяет prerequisites, оптимальный порядок, находит пробелы в теме

4. Wishlist путешествий → план поездок Список мест + сезонность + текущие проекты (когда реально есть время) → какие места удобно совмещать, оптимизированный план на год

5. Профили контактов → напоминания о связи Список людей с датой последнего общения + интересы → "давно не писал X, вот повод" (вышла статья по его теме, etc.)

6. Wishlist умного дома → совместимость и реализация Хотелки + текущий стек (Zigbee, HA версия) → что реально интегрируется, community-решения, очерёдность

7. Дневник тренировок → инсайты Лог активностей + самочувствие + погода → что коррелирует с хорошими результатами, когда лучше тренироваться

8. Скетчи музыкальных идей → рыночный контекст Заметки по трекам (BPM, настроение, референсы) → Spotify анализ похожих, что в тренде в жанре

9. Список подарков → актуальные варианты Профили близких (интересы, что уже есть) × ближайшие даты → marketplace search с обоснованием почему подходит

10. Wishlist ресторанов → фильтр по контексту Список + предпочтения + что уже посетил → фильтр под конкретный контекст (с ребёнком / романтический / деловой), актуальные часы

11. Темы для изучения → дайджест новостей Список интересующих тем → еженедельный дайджест из HN / arxiv / RSS, отфильтрованный от шума под твои конкретные темы

12. Финансовый watchlist → контекст для решений Список активов/инструментов → агрегация сигналов (не трейдинг, а понимание контекста для своих решений)

13. Проекты и интересы → конференции, семинары, learning events Текущие рабочие и личные проекты + домены интереса → поиск конференций, митапов, онлайн-курсов, воркшопов по теме → дайджест "что скоро, что стоит посетить" с приоритизацией по релевантности

14. Планы поездок × текущее местоположение → акции на билеты и туры Wishlist мест + даты отпуска (если есть) + текущий город → поиск распродаж, горящих туров, пакетов (не только авиа) → алерт когда появляется подходящее предложение

15. Контакты → дни рождения и поводы Профили людей с датами рождения + история общения → заблаговременное напоминание + идея подарка по интересам человека

16. Проекты и интересы → новые идеи, best practices, апдейты инструментов Текущий технический стек + активные проекты → мониторинг HN / changelog / блогов → "вышел X, релевантно для твоего проекта Y", "новый паттерн для Z", "есть решение лучше чем то что ты сейчас используешь"

17. Место проживания → новые заведения и места Текущий город + категории интереса (рестораны, кофейни, etc.) → мониторинг новых открытий → периодический дайджест "что открылось, что стоит попробовать"

Триггеры обогащения

  1. По изменению — новая запись в списке → автоматически запускает анализ (git diff)
  2. По расписанию — раз в неделю проходит по спискам, обновляет что устарело
  3. По запросу — "проведи анализ по этой теме"

Проект 5: Memory Organizer

Цель: память агента актуальна, не переполнена, детальные факты живут в vault а не в MEMORY.md.

Контекст

Hermes хранит память в двух файлах (~/.hermes/memories/):

Файл Назначение Лимит
MEMORY.md Факты об окружении, проектах, инструментах ~3000 chars
USER.md Профиль пользователя — предпочтения, стиль ~1375 chars

Оба инжектируются в system prompt как frozen snapshot при старте сессии. Агент видит их как часть контекста.

Три уровня памяти (по когнитивной науке, arXiv 2603.07670):

  • Episodic — сессионные логи (SQLite, session_search). Уже работает.
  • Semantic — факты/предпочтения (MEMORY.md + USER.md). Нужна curation.
  • Procedural — навыки и workflows (skills/). Уже работает.

Текущие проблемы (2026-05-16):

  • MEMORY.md переполнен — 3164 chars при лимите ~3000
  • 8 записей про media-pipeline баги/§9.x/транслит — это детальные технические заметки, а не факты для быстрого доступа. Должны жить в wiki/tech/ или в project notes.
  • Нет механизма устаревания — записи про баги давно пофикшенные продолжают занимать место
  • Нет связи memory ↔ vault: детальный контекст дублируется, не синергирует

Правило разграничения (что куда)

MEMORY.md       → короткие стабильные факты: SSH хосты, namespace rules, 
                  активные токены, конфиги. Макс ~150 chars на запись.
USER.md         → предпочтения, стиль, ожидания. Не меняется часто.
wiki/tech/      → детальные технические заметки: питфолы, баг-паттерны,
                  разборы архитектур. Длинные, с контекстом.
personal/projects/ → статус проектов, решения, дебаггинг-логи
skills/         → процедуры и workflows пошагово

Overflow pattern: если запись в MEMORY.md > 150 chars или содержит пошаговые инструкции → переносим в vault, в MEMORY.md оставляем pointer: media-pipeline питфолы → wiki/tech/media-pipeline.md

Шаги

Шаг 0 — One-time audit & purge (сейчас)

  1. Пройти по всем записям MEMORY.md
  2. Записи про media-pipeline (bugs, §9.x, транслит, KP rate limit, Docker cmd) → создать wiki/tech/media-pipeline-pitfalls.md, в MEMORY.md оставить короткий pointer
  3. Удалить записи про пофикшенные баги (они уже в истории сессий)
  4. Проверить USER.md — убрать устаревшее
  5. После: MEMORY.md < 2000 chars, USER.md < 1100 chars (оставить запас для новых фактов)

Шаг 1 — Создать wiki/tech/ как хранилище детальных техфактов

  • wiki/tech/media-pipeline-pitfalls.md — все §9.x, транслит, баги
  • wiki/tech/kraken-infra.md — SSH, WireGuard, Docker deploy паттерны
  • wiki/tech/gitea.md — токены, repos, API endpoints
  • Эти страницы живут в wiki (curation воркер их maintainит)

Шаг 2 — Memory curation cron (еженедельно, воскресенье 04:00)

Читает ~/.hermes/memories/MEMORY.md и USER.md
    ↓
Для каждой записи:
  - Старше 60 дней И не изменялась → кандидат на архивацию
  - > 150 chars → кандидат на перенос в vault
  - Противоречит другой записи → флажок для review
    ↓
Детальные записи → переносит в wiki/tech/ (создаёт/обновляет страницы)
В MEMORY.md → заменяет на pointer (1 строка)
Совсем устаревшие (проект завершён) → удаляет
    ↓
Репортирует: что удалено, что перенесено, текущий % заполненности

Стек: Hermes cron + terminal + obsidian MCP

Оценка: Шаг 0 — 30 мин сейчас. Шаг 1-2 — 1 день.


Статус проектов (2026-05-16)

Проект Статус Следующий шаг
Проект 1: Vault Enrichment 🟡 В процессе Воскресный прогон по топик-картам
Проект 2: LLM Wiki Accumulation Готов crystallization + synthesize + inbox в wiki-curation
Проект 3: Proactive Research Готов research-queue.md + cron суббота 05:00
Проект 4: Cross-domain Enrichment Готов vault-cross-enrichment cron воскресенье 04:00
Проект 5: Memory Organizer 🟡 В процессе daily cron 04:00; wiki/tech/ частично заполнена

Что сделано (2026-05-16)

  • Task 3b убран из wiki-curation
  • frontmatter + aliases + titles на 24 файла documents/
  • Enrichment воркер создан (воскресенье 03:00)
  • wiki/tech/media-pipeline-pitfalls.md создан
  • MEMORY.md разгружена: 105% → 50%

Известные долги

  • wiki/tech/ не отражена в wiki/index.md и wiki/SCHEMA.md
  • family/index.md и personal/index.md — плоские списки, не топик-карты
  • Memory curation cron не создан (только описан в плане)

Что НЕ нужно делать

  • Task 3b в wiki-curation (убрать) сделано 2026-05-16
  • Переименовывать файлы с кириллицей/эмодзи
  • Применять Karpathy-wiki к личным спискам (разные задачи)
  • Глубже вкладывать папки
  • Внешние сервисы (LifeOS plugin, Todoist) — у нас есть Asana + Hermes
  • Хранить в MEMORY.md записи > 150 chars — детали → в vault

Ссылки