agentsclimarketplace

Mm projects

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

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

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

Обзор всех зарегистрированных mm-проектов одним экраном — статус, тип, GSD-фаза, последняя активность, число открытых вопросов. Use when user says "/mm projects", "/mm list", "покажи все проекты", "что у меня по проектам", "обзор проектов", "какие проекты есть", "список проектов". Читает только Obsidian-копии (passport/dashboard/handoff/sessions), git по проектам не трогает без флага --git.

SKILL.md

7.4 KB, as published. Nobody here has run it

mm-projects — Cross-Project Overview

Отвечает на вопрос «что у меня вообще есть и где что в работе» — в отличие от /mm-resume, который про один проект. Команда независима от cwd: читает папку проектов в Obsidian, не код.

Только чтение. Ничего не пишет. Git по проектам — только с флагом --git (иначе дорого при многих проектах).

Конфиг

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

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

  • paths.obsidian_projects
  • paths.obsidian_sessions (для legacy-проектов без папки)

Процесс

Шаг 1. Собери список проектов

В <obsidian_projects>/:

  • Папки-проекты (новый формат от /mm-init-project): каждая подпапка = проект.
  • Legacy плоские файлы <name>.md в корне <obsidian_projects>/ (старый формат) — тоже проект.

Если папка проектов не существует → Папка проектов не найдена: <path>. Запусти /mm-init-project хотя бы в одном проекте. и стоп. Если проектов 0 → Зарегистрированных проектов пока нет. /mm new в любом проекте создаст первый.

Шаг 2. По каждому проекту прочитай дёшево (не углубляясь)

Папка-проект <obsidian_projects>/<name>/:

  • passport.md frontmatter: status, type, gsd_version, updated, mm_version.
  • passport.md секция 8: есть ли маркер <!-- TODO louise: заполни секцию 8 --> (не заполнена).
  • passport.md секция 9 (если GSD): Текущий milestone / phase.
  • passport.md секция 10: посчитай чекбоксы - [ ] в «Открытые вопросы».
  • dashboard.md frontmatter updated: + секция «Сейчас» (первая непустая строка).
  • handoff.md frontmatter generated: (для оценки свежести).
  • sessions/ — дата самого свежего файла (по имени YYYY-MM-DD... или mtime).

Legacy плоский <name>.md: вытащи что есть (секция «Текущее состояние», последняя сессия). Помечай в выводе как (legacy).

Last activity = максимум из: dashboard.updated, дата свежей сессии, handoff.generated, passport.updated.

Шаг 3. (Опционально) git — только если флаг --git

Если юзер передал --git: для каждого проекта, где из passport.md секции 1 «Путь к коду» извлекается существующий путь — выполни быстро:

git -C "<code_path>" branch --show-current
git -C "<code_path>" status --short    # посчитать строки = uncommitted

Без --git — пропусти, в выводе колонку git не показывай.

Шаг 4. Вывод (одним экраном, отсортировано по last activity ↓)

📂 mm-проекты (<N>)

<name>          <type>  <status>  <gsd>     <activity>   Q:<n>
   └ <одна строка из dashboard «Сейчас» или «—»>
...

Где:

  • <gsd> = если none, иначе v1·<phase> / v2·<phase> / core·<phase> (фаза из секции 9, кратко).
  • <activity> = человекочитаемо: сегодня / / 3нед / 2мес.
  • Q:<n> = число открытых вопросов.
  • С флагом --git добавь хвост · <branch> (<k> wip).

После таблицы — короткие сигналы (только непустые):

⚠️ Залежались (>30 дней без активности): <names>
⚠️ Паспорт без секции 8: <names>
⚠️ GSD есть, но в CLAUDE.md нет директивы: запусти /mm check в <names>   ← если знаешь (см. ниже)
📌 Паспорт старше config.version (нужен /mm new update): <names>

Примечание: «GSD без директивы» точно проверяет /mm-doctor; здесь упоминай только если это дёшево определить (флага в Obsidian-копии нет — обычно просто не пиши эту строку).

Шаг 5. Подсказка по навигации

Одной строкой в конце:

Подробнее по проекту: /mm projects <name>  (= /mm-resume для него)  ·  обзор с git: /mm projects --git

Режимы / аргументы

  • /mm projects — таблица всех.
  • /mm projects --git — + ветка и число несохранённых по каждому (медленнее).
  • /mm projects --active — только status: active.
  • /mm projects <name> — не таблица, а deep-dive: запусти логику /mm-resume для этого проекта (его путь к коду из passport секции 1; если кода нет на диске — выведи сводку из Obsidian-артефактов).

Edge cases

  • Папка проекта без passport.md (мусор / недоинициализирован): покажи строкой <name> — ⚠️ нет passport.md (недоинициализирован, /mm new).
  • Очень много проектов (>30): покажи топ-20 по активности + строку …ещё N (см. --all). С --all — все.
  • Рассинхрон дат (dashboard свежее passport): бери максимум, не падай.
  • Legacy и folder-формат для одного имени одновременно: предпочитай folder, отметь дубль.
  • Vault недоступен: останови, скажи путь из конфига.

Что НЕ делать

  • Не запускать git по всем проектам без флага --git — это дорого и шумит.
  • Не писать ничего (это read-only обзор).
  • Не углубляться в каждый проект — для этого /mm projects <name> или /mm-resume.
  • Не выдумывать «Сейчас», если в dashboard пусто — пиши .

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.