Claude Skill

mm-resume

Восстановить контекст в начале сессии или после /clear. Читает passport.md + dashboard + последнюю сессию + git status + (если есть GSD) полный контекст планирования (.planning/ для v1 или .gsd/ для v2 — STATE, ROADMAP, текущий phase CONTEXT/PLAN, HANDOFF.json). Выдаёт компактную

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download mworldorg-markdown-memory-skills_mm-resume-6de01f3.zip · 5 KB
Part of mworldorg/markdown-memory — 17 skills

Install

skills CLI npx skills add https://github.com/mworldorg/markdown-memory/tree/main/skills/mm-resume
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install mworldorg-markdown-memory@llmmart
Git 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-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-проверки.
Files (markdown-memory)
  • SKILL.md 14.6 KB
    ---
    name: mm-resume
    version: 0.4.0
    description: Восстановить контекст в начале сессии или после /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.
    ---
    
    # 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-контекст
    ```bash
    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>`:
       ```bash
       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-проверки.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related