agentsclimarketplace

Mm update

Skill mworldorg/markdown-memory/skills/mm-update

A cross-platform, file-based persistent memory and prompt bridge for Claude Code, claude.ai, and Antigravity IDE. Synchronizes project passports, handoffs, and session logs in an Obsidian Vault, connecting web planning with local CLI execution. Install via: npx markdown-memory

Install
npx -y skills add mworldorg/markdown-memory --skill mm-update

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 23 stars23 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Самообновление mm-системы из удалённого репозитория. mm раздаётся через git clone + register-skills (не npm), поэтому update = git pull свежего mm из origin/main + повторный register-skills + notice о перезапуске Claude Code. Use when user says "обнови mm", "обнови систему", "/mm update", "update mm", "подтяни свежий mm", "проверь обновления mm".

SKILL.md

9.4 KB, as published. Nobody here has run it

mm-update — Self-Update from Git Remote

Обновляет mm-систему до свежей версии из origin/main. mm установлен как git-клон с junction'ами в ~/.claude/skills/ — поэтому обновление это git pull репозитория + повторный прогон register-skills, а не пакетный менеджер.

Ничего не сливает и не ребейзит автоматически. При любом расхождении или ошибке --ff-only — стоп с инструкцией разрулить вручную.

Ручной интерактивный аналог фонового scripts/auto-update.py (ff-only, дёргается из mm-resume); git-поток общий — отличие в том, что здесь показывается changelog и спрашивается подтверждение.

Где работать

Корень репозитория mm:

  • $env:MM_REPO_ROOT если задан;
  • иначе текущая рабочая директория (cwd).

Все git-команды и register-skills выполняй из этого корня.

Процесс

0. Guard: это вообще git-репо?

Проверь, что в корне репо (см. «Где работать») есть .git:

Test-Path (Join-Path $repoRoot ".git")

Если .git нет — mm установлен не как git-репо (например, распакован из tarball). Стоп:

❌ mm установлен не как git-репозиторий — обновлять через git нечем.
Обнови через `npx markdown-memory update` или переустанови mm.

Не продолжай. (По смыслу как auto-update.py: «Not a git repository. Skipping update».)

1. Забрать состояние remote

git fetch origin main

Если git fetch упал (нет сети / нет доступа к origin) — стоп: ⚠️ Не удалось связаться с origin. Проверь сеть и доступ к github.com/mworldorg/markdown-memory. Не продолжай.

2. Сравнить версии

  • Локальная версия: поле version из config/mm-config.json (читай файл напрямую).
  • Удалённая версия:
    git show origin/main:config/mm-config.json
    
    распарси JSON, возьми version.

Это поле — единый источник версии системы (repo-wide release). Per-skill version: в каждом SKILL.md гранулярны и здесь не сравниваются.

3. Определить расхождение ветки

git rev-list --left-right --count HEAD...origin/main

Вывод — два числа через таб: первое = ahead (коммиты, которые есть локально, но нет в origin/main), второе = behind (коммиты, которые есть в origin/main, но нет локально). Не перепутай порядок.

4. Развилка по (ahead, behind)

СостояниеЧто делать
behind=0, ahead=0✅ Уже синхронизировано с origin/main (версия X). Обновлять нечего. → выход
behind=0, ahead>0ℹ️ Локаль впереди origin/main на N коммит(ов) — машина разработчика или есть незапушенное. Обновлять нечего. → выход
behind>0, ahead=0Показать локаль X → remote Y + changelog (см. ниже), спросить y/n, при ygit pull --ff-only
behind>0, ahead>0⚠️ Ветки разошлись (N локальных / M удалённых). Авто-обновление отменено — разрули вручную. → выход, без pull

Changelog (только для случая behind>0, ahead=0):

git log --oneline HEAD..origin/main

Покажи список как есть. Никакого CHANGELOG.md — changelog это git-лог между HEAD и origin/main.

Формат запроса подтверждения:

Доступно обновление mm: версия X → Y
Новые коммиты (N):
  <hash> <subject>
  ...
Подтянуть (git pull --ff-only)? (y/n)

При n — стоп: Обновление отменено.

5. Pull (только при подтверждённом behind>0, ahead=0)

git pull --ff-only origin main

Если --ff-only упал (обычно из-за локальных незакоммиченных правок или непушенных дивергентных коммитов):

  • Стоп: ❌ git pull --ff-only не прошёл. Вероятно есть локальные правки в репо mm. Закоммить/стэшни их и повтори /mm update, либо разрули вручную.
  • Никогда не делай авто-merge или rebase чтобы «починить» это. Останавливайся и отдавай решение пользователю.

6. Переджанкшенить скиллы

После успешного pull прогони регистрацию (pull мог добавить/переименовать скиллы):

.\scripts\register-skills.ps1

(На macOS/Linux — python3 scripts/register-skills.py.)

Покажи вывод скрипта.

7. Финал

✅ Обновлено до версии Y.
Перезапусти Claude Code, чтобы подхватить обновлённые скиллы.

Скиллы загружаются на старте сессии — без рестарта новые/изменённые скиллы не активируются.

Ограничения

  • Не трогать config.version. Обновление это потребление релиза, не выпуск. Версию проставляет мейнтейнер при релизе, не этот скилл.
  • Вендоренные скиллы (vendor/) не обновляются отдельной логикой. git pull тянет их вместе со всем репо — это нормально. Перевендоринг (обновление до новой upstream-версии ECC и т.п.) — ручная работа мейнтейнера, не часть /mm update.
  • Никогда не делать авто-merge/rebase: ни при расхождении веток (ahead>0 && behind>0), ни при падении --ff-only.
  • mm-config.local.json и _generated/ — gitignored, git pull их не трогает. Отдельной защиты добавлять не нужно.
  • Только origin/main. Других веток/ремоутов скилл не рассматривает.

Финальный отчёт (пример)

🔄 mm-update

Repo root: <path> (из MM_REPO_ROOT | cwd)
fetch origin main: ✅
Версия: локаль 0.6.0 → remote 0.7.0
Состояние: behind 4, ahead 0

Новые коммиты:
  a1b2c3d feat: ...
  ...

git pull --ff-only: ✅ (4 коммита подтянуто)
register-skills.ps1: ✅ (N junction'ов)

Перезапусти Claude Code, чтобы подхватить обновлённые скиллы.

Edge cases

  • Нет $env:MM_REPO_ROOT и cwd не репо mmgit fetch не найдёт origin/упадёт; сообщи, что запускать надо из корня репо mm или задать MM_REPO_ROOT.
  • Detached HEADHEAD...origin/main отработает, но pull в detached не имеет смысла; предупреди и не делай pull.
  • Нет интернетаgit fetch упадёт на шаге 1, дальше не идём (см. шаг 1).
  • Запуск из worktree — git-команды отрабатывают в контексте worktree; если worktree указывает на тот же origin/main — ок. Иначе предупреди.

Что НЕ делать

  • Не делать авто-merge/rebase ни при каких обстоятельствах.
  • Не править config.version и любые файлы — только git pull и register-skills.
  • Не пушить, не коммитить, не стэшить за пользователя.
  • Не молчать при ошибке — всегда показывай конкретную причину и команду фикса.
  • Не обновлять с других веток/ремоутов кроме origin/main.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.