agentsclimarketplace

Mm resume

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

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-resume

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

Восстановить контекст в начале сессии или после /clear. Читает passport.md + dashboard + последнюю сессию + git status + (если есть GSD) полный контекст планирования (.planning/ для v1 или .gsd/ для v2 — STATE, ROADMAP, текущий phase CONTEXT/PLAN, HANDOFF.json). Выдаёт компактную сводку «где мы». Use when user says "ну что у нас", "напомни где мы остановились", "вернулся", "возобновляю", "/mm resume", "/mm start", "/mm context", "что у нас по проекту", "где мы" в начале новой сессии Claude Code или после /clear.

SKILL.md

14.6 KB, as published. Nobody here has run it

mm-resume — Context Restore for Claude Code

Решает проблему: после /clear, exit && claude, или после паузы на день — нет контекста. Этот skill за один вызов читает все источники и говорит «где мы, что в работе, что брать следующим».

Это аналог git status, но для проекта в целом — не для рабочей копии, а для головы.

Когда вызывать

  • В начале новой Claude Code сессии в проекте — первая команда
  • После /mm save/clear — восстановить контекст в той же сессии
  • После недели паузы — догнать что вообще происходило
  • Когда юзер пишет «где мы», «что у нас», «напомни» — сразу запускай, не переспрашивай

Конфиг

Загрузи mm-config.json по алгоритму из <repo>/docs/CONFIG-LOADING.md. Поддержка mm-config.local.json overlay обязательна.

Понадобятся:

  • paths.obsidian_projects
  • paths.obsidian_sessions (на случай старого формата без папки проекта)

Процесс

Шаг 0. Фоновый автоапдейт mm-системы (неблокирующий)

Выполни в фоновом режиме команду проверки обновлений:

  • На macOS/Linux: python3 $MM_REPO_ROOT/scripts/auto-update.py --background & (или используя путь ~/.markdown-memory/scripts/auto-update.py если переменная не задана)
  • На Windows: запусти python со скриптом auto-update.py --background в фоновом режиме (скрипт сам сделает Popen detached-процесс и мгновенно вернет управление).

Шаг 1. Определи проект (worktree-aware)

То же что в mm-init-project Phase 0:

  • Если cwd внутри .claude/worktrees/... — resolve до main repo через .git файл-указатель
  • Иначе — поднимись до корня (где .git/, package.json, pyproject.toml, и т.п.)
  • Имя проекта = из passport.md frontmatter (если есть) ИЛИ basename корневой папки

Если в проекте нет passport.md — скажи: Проект не инициализирован для mm. Запустить /mm new сначала? и остановись.

Шаг 2. Прочитай источники (параллельно если можно)

2a. Паспорт

  • <project_root>/passport.md — frontmatter, секция 8 (контекст промптов), секция 10 (текущее состояние)

2b. Obsidian-артефакты (Obsidian Knowledge Vault)

  • Определи путь к хранилищу <vault_root> (из секции ## Obsidian Knowledge Vault в CLAUDE.md, либо дефолтная локальная папка .vault/, либо глобальная папка проекта <obsidian_projects>/<name>/).
  • Прочитай <vault_root>/00-home/текущие приоритеты.md — извлеки текущие цели, WIP и следующие шаги.
  • Прочитай <vault_root>/00-home/index.md — для понимания структуры доступных в knowledge/ и atlas/ заметок.
  • <vault_root>/handoff.md (если есть) — последний snapshot для chat; обязательно вытащи секцию «Точка возврата» (следующий шаг + висящее: неотправленный промпт прошлой сессии, недоделанное, WIP).
  • <vault_root>/sessions/ — найди самый свежий .md по mtime; прочти секции «Что сделано», «Открытые вопросы», «Следующие шаги».
  • Если текущая задача пользователя касается конкретных интеграций, решений или архитектурных вопросов, найди релевантные заметки в <vault_root>/knowledge/ (или в atlas/) и предложи агенту прочитать их.

2c. Git-контекст

git rev-parse --show-toplevel
git branch --show-current
git status --short              # сколько uncommitted
git log --oneline -5            # последние коммиты
git stash list 2>/dev/null      # есть ли stash'ы

2d. GSD-контекст (dual-detection v1/v2/core)

Сначала определи версию:

  • <project_root>/.planning/ существует:
    • Если <project_root>/.planning/config.json существует → GSD Core
    • Иначе → GSD v1
  • <project_root>/.gsd/ существует → GSD v2
  • Оба → используй gsd_version из passport frontmatter; если нет — спроси.
  • Ничего нет → пропусти секцию.

Если GSD v1 или GSD Core (.planning/) — прочитай в этом порядке (приоритет ↓):

  1. .planning/STATE.md — главное. Из него: текущий milestone, position (phase/step), последние решения, blockers.
  2. .planning/HANDOFF.json (если существует) — самый свежий snapshot от /gsd-pause-work. Если его mtime > чем у последней mm-сессии — приоритет HANDOFF.
  3. .planning/ROADMAP.md — список фаз с [x]/[~]/[ ]. Покажи позицию: фаза X из Y, прогресс milestone'а.
  4. .planning/phases/<NN-current>/CONTEXT.md (если есть текущая фаза) — preferences и решения этой фазы. Это критично — покажет что мы решали в текущей фазе.
  5. .planning/phases/<NN-current>/PLAN.md — что планировали. Извлеки список задач, посчитай completed/pending.
  6. .planning/phases/<NN-current>/SUMMARY.md (если фаза завершена) — итог.
  7. .planning/threads/ (если есть) — активные темы для cross-session.

Если GSD v2 (.gsd/):

  1. .gsd/STATE.md (rendered dashboard от gsd CLI) — главное.
  2. .gsd/AGENTS.md — preferences для агентов (равно CONTEXT.md v1).
  3. .gsd/gsd.db (SQLite) — опционально, если есть sqlite3 в PATH. Используй абсолютный путь от <project_root>:
    sqlite3 "<project_root>/.gsd/gsd.db" "SELECT name, status FROM milestones WHERE active=1; SELECT name, status FROM slices WHERE milestone_id=(SELECT id FROM milestones WHERE active=1); SELECT title, status FROM tasks WHERE slice_id=(SELECT id FROM slices WHERE active=1) LIMIT 10;"
    
    Парси вывод. Если sqlite3 недоступен — пропусти, сводка будет беднее но не сломается.

Это эквивалент /gsd-progress плюс часть /gsd-resume-work — встроено сюда, не нужно дёргать GSD-команды отдельно.

Не пиши в .planning/* или .gsd/* — только читай (там file-lock'и и охраняющие хуки).

2e. mm-система (smoke check)

Быстрая проверка:

  • ~/.claude/skills/mm-bridge существует и junction живой → ✅
  • Иначе — намекни запустить /mm check

Не делай полный /mm-doctor — это лишнее на старте, юзер вызовет если нужно.

Шаг 3. Синтезируй сводку

Не просто вывали данные — синтезируй. Коротко, в одном экране. Веди той же формой, что и возвращение в claude.ai: ориентир по структуре плана (GSD-фаза или чек-лист открытых вопросов — что у проекта есть), затем «Точка возврата», затем один следующий конкретный шаг. Не плоский дамп коммитов.

Формат:

🚀 <project_name> — где мы

Стек: <язык> · <фреймворк> · <DB>
Ветка: <branch> | <N> uncommitted | <K> stash'ей
Последний коммит: <hash> "<subject>" (<X дней назад>)

📍 Сейчас в работе
<1-3 строки из текущие приоритеты.md (раздел WIP/Приоритеты) + если есть текущая GSD-фаза — она>

<Если GSD:>
🎯 GSD <v1|v2|core>: M<N> «<milestone_title>», фаза <X>/<Y> — «<phase_title>»
   Статус: <X задач completed, Y pending, Z blocked>
   Текущая фаза: <статус из STATE.md>
   <Если есть HANDOFF.json свежее последней сессии:>
   📌 HANDOFF (от /gsd-pause-work, <date>): <первый параграф what_next>
   Решения текущей фазы (из CONTEXT.md): <топ-2 пункта>
   Следующее: <next phase title или "execute current" или "verify">

📝 Последняя сессия (<date>)
   Тема: <тема из имени файла>
   Сделано: <первые 2 пункта>
   Решения: <если были — 1 ключевое>

❓ Открытые вопросы (<всего N>)
   1. <q1>
   2. <q2>
   3. <q3>
   <если больше — «...ещё (N-3)»>

🐛 Известные баги (если есть)
   • <bug1>

📌 Точка возврата (из handoff.md / последней сессии)
   Следующий шаг: <один конкретный>
   Висит: <неотправленный промпт прошлой сессии / недоделанное / WIP — если есть; иначе пропусти строку>

💡 Что брать следующим
   <синтезируй из: GSD next phase ИЛИ первый open question ИЛИ последний "Следующий шаг" из сессии>
   Аргумент: <почему именно это>

⚙️ Команды
   /mm prompt "..."     — собрать промпт для PowerShell-Клода (если ты сейчас в claude.ai)
   /gsd-execute-phase N — выполнить текущую GSD-фазу (если применимо)
   /mm save             — закрыть сессию когда закончишь
   /mm next             — обновить handoff.md перед новым чатом claude.ai

Шаг 4. После сводки — жди

Не предлагай делать что-то конкретное автоматически. Юзер прочёл, решил, скажет.

Особые режимы

Если включена опция --quick (или юзер пишет «коротко»)

Выдай только:

<name> · <branch> · <N> uncommitted · последняя сессия <date>
Сейчас: <одна строка>
Дальше: <одна строка>

3 строки максимум. Для случая «я просто проверить вспомнить».

Если включена --verbose (или «подробно»)

Дополни:

  • Полный список open questions (без обрезки)
  • Полное «Сделано» из последней сессии (не первые 2)
  • Список последних 3 сессий с темами
  • Список фаз GSD с галочками

Edge cases

  • Несколько проектов в моно-репо: в Discovery возьми проект ближе к cwd. Если cwd на корне — спроси какой.
  • Свежий /mm new, ещё нет сессий: пропусти секцию «Последняя сессия», в «Что брать следующим» предложи «заполнить секцию 8 паспорта».
  • GSD без активной фазы (между milestone'ами): «GSD: между фазами, последняя завершена N дней назад. /gsd-new-milestone?»
  • Нет git вообще (просто папка с файлами): пропусти git-секцию.
  • passport.md очень старый (updated: > 60 дней назад): добавь предупреждение «Паспорт давно не обновлялся, может быть неточен. /mm new для refresh».
  • Уже Memory у Anthropic накопилась: не дублируй её. mm-resume — про актуальное (что сейчас, что вчера). Memory — про долгосрочное (как ты любишь работать).

Что НЕ делать

  • Не запрашивать данные из чата если их можно прочитать из файлов.
  • Не выводить полные тексты файлов — только выжимки.
  • Не делать git pull / git fetch без явного запроса.
  • Не запускать сам /gsd-progress как отдельную команду — логика встроена сюда.
  • Не предлагать действие если не уверен что нужно — лучше промолчать чем советовать наугад.
  • Не дублируй чек /mm-doctor — для смок-теста достаточно одной junction-проверки.

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.