Skip to content
Development
Skill

/mm-projects

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

From plugin
markdown-memory
2514 skills

Claude Code

$ npx -y skills add mworldorg/markdown-memory --skill mm-projects --agent claude-code

SKILL.md

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

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>` = человекочитаемо: `сегодня` / `2д` / `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 пусто — пиши `—`.
Read more
@mworldorg
Ships withmarkdown-memory

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)

Stars on GitHub

Momentum

stars in total
25
Star history of mworldorg/markdown-memory on GitHub, a chart by star-history.com

Other skills on markdown-memory.

mm-bridge

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…

mm-clear-gate

mm-clear-gate

Гейт перед /clear — read-only проверка «всё ли записано», вердикт из exit code скрипта, а не из реплики модели. Проверяет…

mm-doctor

mm-doctor

Самопроверка mm-системы — junction'ы, конфиг, vault, паспорта, bridge-архив, GSD-консистентность (passport vs PROJECT.md),…

mm-focus

mm-focus

СНЯТ 2026-08-02 — команда больше ничего не грузит. Её детекция этапа дублировала /gsd-resume-work и расходилась с фактической…

mm-handoff

mm-handoff

Генерирует handoff.md — компактную сводку для нового чата claude.ai когда контекст текущего заполнился. Включает 15-категорийный…

mm-init-project

mm-init-project

Инициализирует или обновляет проект для mm-системы — создаёт passport.md в корне, копию в Obsidian, dashboard.md, handoff.md…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc12d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about mm-projects.

Which coding agents can use mm-projects?
mm-projects installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.