Skip to content
Development
Skill

/mm-update

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

From plugin
markdown-memory
2514 skills
Install
$ npx -y skills add mworldorg/markdown-memory --skill mm-update --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/mm-update

Context preview

The summary Claude sees to decide when to auto-load this skill.

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

SKILL.md

mm-update.SKILL.md
name: mm-update
version: 0.1.0
description: Самообновление 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".

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`, при `y` → `git 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 не репо mm** — `git fetch` не найдёт origin/упадёт; сообщи, что запускать надо из корня репо mm или задать `MM_REPO_ROOT`.
  • **Detached HEAD** — `HEAD...origin/main` отработает, но pull в detached не имеет смысла; предупреди и не делай pull.
  • **Нет интернета** — `git fetch` упадёт на шаге 1, дальше не идём (см. шаг 1).
  • **
Read more
Ships withmarkdown-memory

A file-based memory and prompt bridge that connects claude.ai (where you think) ↔ Claude Code (where you build) ↔ Obsidian (shared long-term memory). -lightgrey.svg)

Get the whole plugin
Stats
25
Stars
3
Forks
Active
Maintenance
Python
Language
MIT
License
2d ago
Last commit
3mo ago
Created

Repo: mworldorg/markdown-memory

Other skills on markdown-memory.

mm-clear-gate
Skill

mm-clear-gate

Гейт перед /clear — read-only проверка «всё ли записано», вердикт из exit code скрипта, а не из реплики модели. Проверяет свежесть GSD-handoff в репозитории…

mm-doctor
Skill

mm-doctor

Самопроверка mm-системы — junction'ы, конфиг, vault, паспорта, bridge-архив, GSD-консистентность (passport vs PROJECT.md), наличие сторонних плагинов…

mm-focus
Skill

mm-focus

СНЯТ 2026-08-02 — команда больше ничего не грузит. Её детекция этапа дублировала /gsd-resume-work и расходилась с фактической раскладкой GSD, из-за чего…

mm-handoff
Skill

mm-handoff

Генерирует handoff.md — компактную сводку для нового чата claude.ai когда контекст текущего заполнился. Включает 15-категорийный Session Guide (вдохновлено…