Claude Skill

mm-projects

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

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-projects-6de01f3.zip · 3 KB
Part of mworldorg/markdown-memory — 17 skills

Install

skills CLI npx skills add https://github.com/mworldorg/markdown-memory/tree/main/skills/mm-projects
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-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 пусто — пиши —.
Files (markdown-memory)
  • SKILL.md 7.4 KB
    ---
    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 «Путь к коду» извлекается существующий путь — выполни быстро:
    ```bash
    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 пусто — пиши `—`.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related