mm-bridge
Compose a ready-to-copy prompt for the user's OTHER Claude Code instance (running in PowerShell). Use when the user asks to "напиши промпт для powershell",…
Гейт перед /clear — read-only проверка «всё ли записано», вердикт из exit code скрипта, а не из реплики модели. Проверяет свежесть GSD-handoff в репозитории проекта, свежесть vault-файлов для Project Knowledge, состояние vault-репо, дерево проекта, запушенность, лог сессии, плюс
$ npx -y skills add mworldorg/markdown-memory --skill mm-clear-gate --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/mm-clear-gateContext preview
The summary Claude sees to decide when to auto-load this skill.
Гейт перед /clear — read-only проверка «всё ли записано», вердикт из exit code скрипта, а не из реплики модели. Проверяет свежесть GSD-handoff в репозитории проекта, свежесть vault-файлов для Project Knowledge, состояние vault-репо, дерево проекта, запушенность, лог сессии, плюс
name: mm-clear-gate version: 0.2.0 description: Гейт перед /clear — read-only проверка «всё ли записано», вердикт из exit code скрипта, а не из реплики модели. Проверяет свежесть GSD-handoff в репозитории проекта, свежесть vault-файлов для Project Knowledge, состояние vault-репо, дерево проекта, запушенность, лог сессии, плюс validate.health как предупреждение. Два режима планки - mid (между этапами GSD, дефолт) и end (конец сессии). Use when user says "/mm gate", "/mm-gate", "можно чистить", "всё ли записано", "готов к clear", "проверь перед clear", ЛИБО когда сам собираешься предложить /clear.
Решает проблему: единственным подтверждением «всё сохранено» была фраза модели о сессии, память о которой `/clear` и стирает. Вердикт должен приходить **из скрипта с exit code**, а не из реплики.
**Вся логика — в скрипте.** Скилл его запускает, печатает вывод целиком и переводит exit code в одну строку. Ничего не пересчитывает и не пересказывает.
python <repo>/scripts/clear-gate.py --mode mid # дефолт: между этапами GSD python <repo>/scripts/clear-gate.py --mode end # конец сессии
`<repo>` — корень mm-репозитория (`paths.skills_repo` из конфига). Проверяемый проект — текущий cwd; можно задать явно через `--project <путь>`.
Режим: `/mm gate` → `mid`, `/mm gate end` (или «конец сессии», «закругляемся») → `end`.
1. Напечатай вывод скрипта **целиком, дословно** — секции блокеров, предупреждений и пройденного. Не сокращай список файлов, не убирай подсказки-команды. 2. Добавь одну строку по exit code:
3. При exit 1 **не предлагай `/clear`** и не утверждай, что всё записано. Блокеры перечислены — назови их и остановись. 4. Ничего не чини сам. Гейт read-only, исправления — отдельное решение оператора.
| Проверка | mid | end | |---|---|---| | Свежесть **GSD-handoff** в репозитории проекта (`.planning/HANDOFF.json`, `.continue-here.md`) | блокер | блокер | | Свежесть **vault-файлов** для Project Knowledge (`handoff.md`, `dashboard.md`) | предупреждение³ | блокер³ | | Vault-репо: грязный или не запушен | блокер | блокер | | Дерево проекта незакоммичено | предупреждение¹ | блокер | | HEAD впереди origin | предупреждение | блокер | | Лог сессии в `<vault>/sessions/` | не проверяется | блокер | | Фаза Complete без passing-`VERIFICATION.md` | блокер² | блокер² | | `validate.health` | предупреждение | предупреждение |
¹ становится блокером, если GSD-handoff устарел: незаписанное состояние плюс грязное дерево — это уже потеря.
² только фазы **текущего** milestone (берётся из `milestone:` в `STATE.md`). Архивные вехи не трогаем: чинить их поздно, а гейт, краснеющий на том, что никто не пойдёт исправлять, начинают пролистывать. Строки со статусом `Deferred`, `In Progress`, `Executed — verification partial` не проверяются — ловится ровно расхождение «ROADMAP говорит `Complete`, а `verification.status` даёт не `passed`».
Зачем: в `execute-phase` шаг `verify_phase_goal` стоит **перед** `update_roadmap` и guard'а не имеет, то есть при полном прогоне фаза физически не может стать Complete без отчёта. Но если планы гонять поштучно, а ROADMAP править отдельно, весь хвост workflow (верификация, learnings, todos) пропускается — так у Filtrator фаза 8 простояла Complete без единого `VERIFICATION.md`, и пять фаз из восьми оказались без отчётов. Сигнал у GSD был всегда (`verification.status`), но оставался advisory: его никто не читал. Здесь он становится вердиктом.
³ два разных места записи, и одно другое не заменяет. **GSD-handoff** — `.planning/*` в репозитории проекта, пишет `/gsd-pause-work`. **Vault-файлы** — `handoff.md` и `dashboard.md` в vault, пишет `/mm save`; именно они едут в Project Knowledge claude.ai. Срабатывает, если mtime любого из них старше даты последнего коммита в репозитории проекта. Отдельного порога у проверки нет: пятиминутный порог GSD-handoff переиспользуется лишь как допуск на дребезг (`/mm save` пишет файлы, коммит ложится следом) — планка это сам факт «старше коммита».
Планка по режимам — та же, что у лога сессии: между этапами GSD claude.ai vault не перечитывает, контекст восстанавливается из `.planning/`, поэтому в `mid` это предупреждение и на вердикт не влияет. Потерей устаревший vault становится на выходе из сессии — в `end` блокер.
Зачем: 2026-08-08 на RasilshikParser `/gsd-pause-work` обновил `.planning/HANDOFF.json`, и гейт дал `exit 0` — проверка свежести смотрела на GSD-handoff и была права, проверка vault смотрела на чистоту репо и тоже была права. Vault был чист, запушен и отставал по содержанию на 65 часов. Новый чат прочитал состояние трёхдневной давности и предложил уже сделанное. Ни одна из двух проверок не задавала вопрос «а описывают ли vault-файлы сегодняшнюю работу».
Почему так: `/clear` не трогает диск, поэтому между этапами GSD незакоммиченное и незапушенное ничего не теряют — блокировать их значит красить гейт в красный там, где всё в порядке, и приучать себя его пролистывать. Настоящий вопрос mid-режима — записано ли *состояние работы* (GSD-handoff) и доехало ли записанное (vault-репо). Vault-файлы для claude.ai между фазами не перечитываются, поэтому там они лишь предупреждение; спрашиваются в полную силу на выходе из сессии.
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)
Repo: mworldorg/markdown-memory
Compose a ready-to-copy prompt for the user's OTHER Claude Code instance (running in PowerShell). Use when the user asks to "напиши промпт для powershell",…
Самопроверка mm-системы — junction'ы, конфиг, vault, паспорта, bridge-архив, GSD-консистентность (passport vs PROJECT.md), наличие сторонних плагинов…
СНЯТ 2026-08-02 — команда больше ничего не грузит. Её детекция этапа дублировала /gsd-resume-work и расходилась с фактической раскладкой GSD, из-за чего…
Генерирует handoff.md — компактную сводку для нового чата claude.ai когда контекст текущего заполнился. Включает 15-категорийный Session Guide (вдохновлено…
Инициализирует или обновляет проект для mm-системы — создаёт passport.md в корне, копию в Obsidian, dashboard.md, handoff.md (скелет), project-instructions.md…
Генерирует текст для claude.ai → Project → Instructions из шаблона + персонализирует под текущий проект. Кладёт результат в Obsidian для копипаста. Use when…