Mm focus
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
npx -y skills add mworldorg/markdown-memory --skill mm-focusAssembled 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
Stage-scoped reload файлов текущего GSD-этапа в свежий контекст ПОСЛЕ ручного /clear, mid-phase. Не сводка «где мы» (это /mm resume), а ЗАГРУЗКА самих рабочих файлов этапа (STATE + CONTEXT/PLAN/SUMMARY по статусу), чтобы сразу продолжать работу. Только для GSD-проектов. Read-only. Use when user says "/mm-focus", "/mm focus", "перечитай этап", "перечитай файлы этапа после clear", "scoped reload", "загрузи текущий этап", "вернуть контекст этапа после /clear".
SKILL.md
8.9 KB, as published. Nobody here has run it
mm-focus — Stage-Scoped Reload after /clear
Решает узкую проблему: ты сделал ручной /clear посреди GSD-фазы, контекст пуст, и нужно снова втянуть в контекст рабочие файлы именно текущего этапа — не сводку, а сами файлы, чтобы продолжить работу с того же места.
Отличие от /mm resume: resume даёт компактную СВОДКУ «где мы» (passport + git + last session + выжимки). mm-focus НИЧЕГО не пересказывает — он загружает полное содержимое минимального scoped-набора файлов текущего этапа в контекст и выдаёт одну строку-ориентир. Это не дубль resume.
Когда вызывать:
- ПОСЛЕ ручного
/clear, mid-phase, когда работа над фазой не закончена. - Когда нужно «вернуть в голову» файлы текущего этапа, не читая весь проект.
- Цикл: GSD-этап в работе →
/clear→/mm-focus→ продолжаешь.
Чего скилл НЕ делает:
- НЕ выполняет
/clearсам — это клиентская операция, недоступная из скилла. Скилл рассчитан на запуск ПОСЛЕ ручного/clear. - НЕ пишет ничего — ни в
.planning/*, ни в.gsd/*, ни куда-либо ещё (там file-lock'и/хуки). Только чтение. - НЕ делает resume-стиль дамп — только scoped-набор этапа.
- Не для не-GSD проектов — там используй
/mm resume.
Процесс
Шаг 1. Определи проект (worktree-aware)
То же, что в mm-resume Шаг 1:
- Если cwd внутри
.claude/worktrees/...— resolve до main repo через.gitфайл-указатель. - Иначе — поднимись до корня (где
.git/,package.json,pyproject.toml, и т.п.). - Имя проекта = из
passport.mdfrontmatter (если есть) ИЛИ basename корневой папки.
Если нет passport.md ИЛИ проект не под GSD (см. Шаг 2 — ни .planning/, ни .gsd/) — скажи:
GSD-фаз тут нет, используй /mm resume. и остановись.
Шаг 2. Dual-detection GSD (v1/core/v2) — как в mm-resume
Определи версию:
<project_root>/.planning/существует:- есть
<project_root>/.planning/config.json→ GSD Core - иначе → GSD v1
- есть
<project_root>/.gsd/существует → GSD v2- Оба → возьми
gsd_versionиз passport frontmatter; если нет — спроси. - Ничего нет → остановись с подсказкой
/mm resume(см. Шаг 1).
Шаг 3. Определи текущую фазу и ЭТАП
GSD v1 / Core (.planning/):
- Прочитай
.planning/STATE.md— оттуда текущий milestone и position (номер/имя текущей фазы). - Найди папку текущей фазы
.planning/phases/<NN-current>/. - Определи ЭТАП по статусу фазы в STATE.md (
draft/discussed/planned/in-progress/verified/complete) И по наличию артефактов — артефакты приоритетнее, если расходятся:- нет
CONTEXT.md→ Discuss - есть
CONTEXT.md, нетPLAN.md→ Plan - есть
PLAN.md, нетSUMMARY.md→ Execute - есть
SUMMARY.mdИЛИ статусverified/complete→ Verify
- нет
GSD v2 (.gsd/): этапная модель в файлах слабее — определи позицию из .gsd/STATE.md (rendered dashboard) и, если доступен sqlite3, из gsd.db (активный slice/tasks). Per-phase PLAN.md/SUMMARY.md может не быть — грузи что есть (см. Шаг 4).
Шаг 4. Прочитай scoped-набор (ЗАГРУЗИ ПОЛНОЕ содержимое в контекст, НЕ пересказывай)
Цель шага — чтобы файлы оказались в контексте целиком. Читай их Read-инструментом полностью. Не выжимай, не суммируй.
GSD v1 / Core (.planning/):
- Всегда:
STATE.md+HANDOFF.json(если есть). - Discuss →
+строка текущей фазы изROADMAP.md+PROJECT.md(vision/scope; если файл большой — раздел целей/scope или первые ~40 строк)+CONTEXT.md(если уже есть). - Plan →
+CONTEXT.md+PLAN.md(если уже частично есть). - Execute →
+PLAN.md+CONTEXT.md. - Verify →
+PLAN.md+SUMMARY.md.
Все per-phase файлы — из .planning/phases/<NN-current>/.
GSD v2 (.gsd/):
- Всегда:
.gsd/STATE.md+.gsd/AGENTS.md(≈ CONTEXT). - Задачи текущего slice из
.gsd/gsd.dbчерезsqlite3, если он в PATH:
Еслиsqlite3 "<project_root>/.gsd/gsd.db" "SELECT title, status FROM tasks WHERE slice_id=(SELECT id FROM slices WHERE active=1) LIMIT 20;"sqlite3недоступен — пропусти, набор беднее но не падает. - Per-phase
PLAN.md/SUMMARY.mdв v2 может не быть — грузи только то, что реально существует.
Шаг 5. Вывод — МИНИМАЛЬНЫЙ
Это не resume-сводка. Суть в том, что файлы уже в контексте. Выдай только:
📍 Фаза <NN> «<title>» · этап <Discuss|Plan|Execute|Verify> · загружено: <file1>, <file2>, ...
И, если в HANDOFF.json есть «Точка возврата» / what_next — добавь её ОДНОЙ строкой:
↩️ Точка возврата: <следующий конкретный шаг>
Всё. Не делай развёрнутую сводку, не дублируй resume, не пересказывай содержимое загруженных файлов.
Шаг 6. После вывода — жди
Контекст загружен. Пользователь сам решит, что делать дальше.
Edge cases
- Артефакт этапа отсутствует (напр. на Discuss ещё нет
CONTEXT.md): грузи что есть, в строке «загружено» отметь чего нет (CONTEXT.md — нет), не падай. - GSD есть, но нет активной фазы (между milestone'ами): скажи
GSD: активной фазы нет — /mm resume или /gsd-new-milestone.и остановись. HANDOFF.jsonотсутствует: пропусти строку «Точка возврата».- Расхождение статуса STATE.md и артефактов: верь артефактам (наличие файлов важнее декларации), упомяни расхождение одной фразой.
Жёсткие правила
- Read-only по GSD. НИКОГДА не писать в
.planning/*или.gsd/*(file-lock'и/охраняющие хуки). Никаких git-мутаций, никаких авто-коммитов. - Не выполнять
/clear— это клиентская операция вне скилла; mm-focus запускается ПОСЛЕ ручного/clear. - Не дублировать
/mm resume— никакого полного дампа и сводки, только scoped-набор текущего этапа и одна строка-ориентир. - Только GSD-проекты — нет GSD → отправляй на
/mm resume.