mm-vault
Создаёт приватный vault-репозиторий памяти проекта в Obsidian и пушит его на GitHub для синхронизации с claude.ai Knowledge. Use when user says "создай vault", "синхронизация памяти", "memory sync", "/mm vault", "/mm-vault".
Install
npx skills add https://github.com/mworldorg/markdown-memory/tree/main/skills/mm-vault
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install mworldorg-markdown-memory@llmmart
git clone https://github.com/mworldorg/markdown-memory.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole mworldorg/markdown-memory collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
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_projectspaths.obsidian_vault
Процесс
Шаг 1. Определи проект и папку памяти (Vault Root)
- Определи проект по
passport.mdв текущейcwdили её родительских директориях.- Извлеки имя проекта из YAML frontmatter
project:(или из поля "Имя" таблицы Идентификация). - Если
passport.mdне найден, выведи предупреждение и спроси имя проекта или предложи запустить/mm newсначала.
- Извлеки имя проекта из YAML frontmatter
- Определи slug проекта (в нижнем регистре, с заменой пробелов на дефисы). Для
markdown-memoryslug равенmarkdown-memory. - Определи путь базы знаний
<vault_root>по единому алгоритму резолва:- (1) из секции
## Obsidian Knowledge VaultвCLAUDE.mdсо строкойХранилище знаний: <путь>, если она есть; - (2) локальная папка
.vault/в корне проекта; - (3) глобальная папка проекта
<obsidian_projects>/<slug>/из конфига.
- (1) из секции
- Выведи пользователю подтвержденный путь папки памяти.
Шаг 2. Покажи состав папки и прогони Secret-Scan
- Сделай рекурсивный обход папки
<vault_root>и покажи дерево файлов, которые попадут в репозиторий. - Прогони все файлы папки через паттерны из канона
<repo>/config/secret-patterns.json(пояснение —<repo>/docs/SECRET-PATTERNS.md).- Класс A (Высокоточные секреты):
- Если найден хотя бы один реальный секрет, останови выполнение (hard-stop).
- Покажи пользователю найденную строку и файл.
- Жди явного исправления/подтверждения перед созданием репозитория. Не продолжай автоматически. Блокирует только реальный секрет (когда человек сам убирает реальный секрет).
- Класс B (Широкие совпадения / предупреждения):
- Выведи предупреждения в формате:
⚠️ возможный секрет/длинная строка в <файл>, строка N: <первые 12 симв.>… — проверь вручную (не замаскировано). - Важно: Класс B служит только для предупреждения пользователя. НИКОГДА не редактируй содержимое файлов памяти проекта ради сканера. Скилл никогда не переписывает текст заметок.
- Выведи предупреждения в формате:
- Класс A (Высокоточные секреты):
- Жди подтверждения (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 -Agit 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 и сделать пуш.
- Создай приватный репозиторий на GitHub под владельцем (по умолчанию
Шаг 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.
Files (markdown-memory)
-
SKILL.md 7.9 KB
--- 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) 1. Определи **проект** по `passport.md` в текущей `cwd` или её родительских директориях. - Извлеки имя проекта из YAML frontmatter `project:` (или из поля "Имя" таблицы Идентификация). - Если `passport.md` не найден, выведи предупреждение и спроси имя проекта или предложи запустить `/mm new` сначала. 2. Определи **slug** проекта (в нижнем регистре, с заменой пробелов на дефисы). Для `markdown-memory` slug равен `markdown-memory`. 3. Определи путь базы знаний `<vault_root>` по единому алгоритму резолва: - (1) из секции `## Obsidian Knowledge Vault` в `CLAUDE.md` со строкой `Хранилище знаний: <путь>`, если она есть; - (2) локальная папка `.vault/` в корне проекта; - (3) глобальная папка проекта `<obsidian_projects>/<slug>/` из конфига. 4. Выведи пользователю подтвержденный путь папки памяти. ### Шаг 2. Покажи состав папки и прогони Secret-Scan 1. Сделай рекурсивный обход папки `<vault_root>` и покажи дерево файлов, которые попадут в репозиторий. 2. Прогони все файлы папки через паттерны из канона `<repo>/config/secret-patterns.json` (пояснение — `<repo>/docs/SECRET-PATTERNS.md`). - **Класс A (Высокоточные секреты):** - Если найден хотя бы один реальный секрет, **останови выполнение (hard-stop)**. - Покажи пользователю найденную строку и файл. - **Жди явного исправления/подтверждения** перед созданием репозитория. Не продолжай автоматически. Блокирует только реальный секрет (когда человек сам убирает реальный секрет). - **Класс B (Широкие совпадения / предупреждения):** - Выведи предупреждения в формате: `⚠️ возможный секрет/длинная строка в <файл>, строка N: <первые 12 симв.>… — проверь вручную (не замаскировано).` - **Важно:** Класс B служит только для предупреждения пользователя. **НИКОГДА** не редактируй содержимое файлов памяти проекта ради сканера. Скилл никогда не переписывает текст заметок. 3. **Жди подтверждения (y/n)** от пользователя для создания репозитория и первого пуша. ### Шаг 3. Создай или обнови .gitignore В папке `<vault_root>` создай или обнови файл `.gitignore` со следующим содержимым: ```gitignore .obsidian/ .trash/ Thumbs.db .DS_Store *.tmp *.log ``` ### Шаг 4. Инициализация репозитория (Идемпотентно) 1. Проверь, инициализирован ли уже Git в `<vault_root>` (наличие папки `.git`). 2. Если Git **не инициализирован**: - Выполни `git init` в `<vault_root>`. - Настрой ветку по умолчанию (например, `git checkout -b main` или `git branch -M main`). 3. Добавь файлы в индекс и сделай коммит: - `git add -A` - `git commit -m "init: <slug> vault (passport, handoff, dashboard, sessions)"` ### Шаг 5. Создание приватного репозитория на GitHub 1. Проверь, настроен ли уже remote `origin` (`git remote -v`). 2. Если remote `origin` **уже настроен**: - Выведи: `GitHub remote origin уже настроен: <remote_url>` - Выполни пуш: `git push -u origin main` 3. Если 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.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.