| name | mm-vault |
| version | 0.1.1 |
| description | Создаёт приватный vault-репозиторий памяти проекта в Obsidian и пушит его на GitHub для синхронизации с claude.ai Knowledge. Use when user says "создай vault", "синхронизация памяти", "memory sync", "/mm vault", "/mm-vault". |
mm-vault — Memory Vault Git Sync Initializer
Инициализирует и настраивает приватный git-репозиторий для папки памяти проекта Obsidian Vault. Это позволяет синхронизировать долгосрочную память с claude.ai Project Knowledge/Files через интеграцию с GitHub, исключая ручной копипаст.
Конфиг
Загрузи mm-config.json по алгоритму из <repo>/docs/CONFIG-LOADING.md. Поддержка mm-config.local.json overlay обязательна.
Понадобятся:
paths.obsidian_projects
paths.obsidian_vault
Процесс
Шаг 1. Определи проект и папку памяти (Vault Root)
- Определи проект по
passport.md в текущей cwd или её родительских директориях.
- Извлеки имя проекта из YAML frontmatter
project: (или из поля "Имя" таблицы Идентификация).
- Если
passport.md не найден, выведи предупреждение и спроси имя проекта или предложи запустить /mm new сначала.
- Определи slug проекта (в нижнем регистре, с заменой пробелов на дефисы). Для
markdown-memory slug равен markdown-memory.
- Определи путь базы знаний
<vault_root> по единому алгоритму резолва:
- (1) из секции
## Obsidian Knowledge Vault в CLAUDE.md со строкой Хранилище знаний: <путь>, если она есть;
- (2) локальная папка
.vault/ в корне проекта;
- (3) глобальная папка проекта
<obsidian_projects>/<slug>/ из конфига.
- Выведи пользователю подтвержденный путь папки памяти.
Шаг 2. Покажи состав папки и прогони Secret-Scan
- Сделай рекурсивный обход папки
<vault_root> и покажи дерево файлов, которые попадут в репозиторий.
- Прогони все файлы папки через паттерны из канона
<repo>/config/secret-patterns.json (пояснение — <repo>/docs/SECRET-PATTERNS.md).
- Класс A (Высокоточные секреты):
- Если найден хотя бы один реальный секрет, останови выполнение (hard-stop).
- Покажи пользователю найденную строку и файл.
- Жди явного исправления/подтверждения перед созданием репозитория. Не продолжай автоматически. Блокирует только реальный секрет (когда человек сам убирает реальный секрет).
- Класс B (Широкие совпадения / предупреждения):
- Выведи предупреждения в формате:
⚠️ возможный секрет/длинная строка в <файл>, строка N: <первые 12 симв.>… — проверь вручную (не замаскировано).
- Важно: Класс B служит только для предупреждения пользователя. НИКОГДА не редактируй содержимое файлов памяти проекта ради сканера. Скилл никогда не переписывает текст заметок.
- Жди подтверждения (y/n) от пользователя для создания репозитория и первого пуша.
Шаг 3. Создай или обнови .gitignore
В папке <vault_root> создай или обнови файл .gitignore со следующим содержимым:
.obsidian/
.trash/
Thumbs.db
.DS_Store
*.tmp
*.log
Шаг 4. Инициализация репозитория (Идемпотентно)
- Проверь, инициализирован ли уже Git в
<vault_root> (наличие папки .git).
- Если Git не инициализирован:
- Выполни
git init в <vault_root>.
- Настрой ветку по умолчанию (например,
git checkout -b main или git branch -M main).
- Добавь файлы в индекс и сделай коммит:
git add -A
git commit -m "init: <slug> vault (passport, handoff, dashboard, sessions)"
Шаг 5. Создание приватного репозитория на GitHub
- Проверь, настроен ли уже remote
origin (git remote -v).
- Если remote
origin уже настроен:
- Выведи:
GitHub remote origin уже настроен: <remote_url>
- Выполни пуш:
git push -u origin main
- Если remote
origin не настроен:
- Создай приватный репозиторий на GitHub под владельцем (по умолчанию
mworldorg или по умолчанию из gh CLI):
gh repo create mworldorg/<slug>-vault --private --description "Memory vault for <slug> project" --source . --push
- Если команда завершилась успешно, переходи к Шагу 6.
- Если произошел сбой создания через CLI, предложи пользователю создать репозиторий вручную, добавить remote и сделать пуш.
Шаг 6. Инструкция по ручному подключению
Напечатай URL созданного репозитория и выведи подробную инструкцию по ручному подключению памяти в claude.ai:
✅ Репозиторий памяти успешно синхронизирован!
URL: https://github.com/mworldorg/<slug>-vault
Теперь подключи его к claude.ai:
1. Открой нужный Project в claude.ai
2. Перейди в раздел "Project Knowledge" (или "Files")
3. Нажми кнопку "+" -> выбери "GitHub"
4. Выбери репозиторий: mworldorg/<slug>-vault
5. Отметь файлы для синхронизации:
• passport.md
• handoff.md
• dashboard.md
• sessions/ (все файлы сессий)
6. Сними галочку со скачивания .gitignore (если применимо)
7. Нажми "Add to Project"
8. Каждый раз после вызова `/mm save` новые изменения будут запушены в репо автоматически. В claude.ai останется лишь нажать кнопку "Sync now" в панели Files/Project Knowledge.
Идемпотентность и ограничения
- Репозиторий ВСЕГДА должен быть приватным (
--private).
- Не пересоздавай репозиторий, если он уже есть на GitHub и настроен remote. Просто сделай коммит изменений и пуш.
- Не модифицируй файлы кода основного репозитория проекта, только папку Obsidian Vault.