Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Mm Doctor

ASecurity

Самопроверка mm-системы — junction'ы, конфиг, vault, паспорта, bridge-архив, GSD-консистентность (passport vs PROJECT.md), наличие сторонних плагинов (karpathy, context-mode). Auto-fix очевидного. Use when user says "проверь систему", "почему не работает", "/mm-doctor", "mm-status", "что-то сломалось", "проверь mm", "mm health". Запускать перед началом работы на новой машине ИЛИ когда что-то странно себя ведёт.

25 stars
0 votes
0 copies
0 views
Added 6/9/2026
ai-agentspythonshellbashdebugginggit

Works with

mcp

Security Analysis

A100/100

Scanned 6/9/2026

Install to Claude Code

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

Installs into .claude/skills of the current project.

Are you the author of Mm Doctor?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Mm Doctor
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/mworldorg-mm-doctor/badge)](https://www.skillsdirectory.com/skills/mworldorg-mm-doctor)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: mm-doctor
version: 0.5.0
description: Самопроверка mm-системы — junction'ы, конфиг, vault, паспорта, bridge-архив, GSD-консистентность (passport vs PROJECT.md), наличие сторонних плагинов (karpathy, context-mode). Auto-fix очевидного. Use when user says "проверь систему", "почему не работает", "/mm-doctor", "mm-status", "что-то сломалось", "проверь mm", "mm health". Запускать перед началом работы на новой машине ИЛИ когда что-то странно себя ведёт.
---

# mm-doctor — System Health Check & Auto-Fix

Прогон диагностики всей mm-системы. Не пишет ничего без подтверждения.

## Конфиг

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

Если loader падает — это уже первая ошибка, выведи её и предложи фикс из CONFIG-LOADING.md.

## Чек-лист (выполнять по порядку, помечать ✅ / ⚠️ / ❌)

### 1. Конфиг

- ✅ `mm-config.json` найден (откуда: env / junction / fallback)
- ✅ Валидный JSON
- ⚠️ Если использован legacy fallback (см. `docs/CONFIG-LOADING.md`) — предложи `[Environment]::SetEnvironmentVariable("MM_REPO_ROOT", "<repo>", "User")`
- ✅ `mm-config.local.json` (если есть) валидный, deep-merged
- ✅ Ключевые пути присутствуют: `obsidian_*`, `_repo_root`

### 2. Repo integrity

- ✅ `<repo>/templates/passport.md` существует
- ✅ `<repo>/templates/project-instructions.md` существует
- ✅ `<repo>/skills/mm-bridge/SKILL.md`, `mm-init-project`, `mm-setup`, `mm-resume`, `mm-handoff`, `mm-save-session`, `mm-instructions`, `mm-projects`, `mm-doctor`, `mm` существуют (10 skills)
- ✅ `<repo>/scripts/register-skills.py` существует

### 3. Симлинки / Junction'ы (`~/.claude/skills/mm-*`)

Для каждого `mm-*` в `<repo>/skills/` и `<repo>/vendor/`:
- ✅ Ссылка `~/.claude/skills/mm-<name>` существует
- ✅ Является reparse-point/symlink (симлинк на Mac/Linux, junction на Windows)
- ✅ Target указывает на `<repo>/skills/mm-<name>` (или `vendor/mm-<name>`)

Проверка на macOS/Linux:
```bash
ls -la ~/.claude/skills/
readlink ~/.claude/skills/mm-bridge  # должно вести на <repo>/skills/mm-bridge
```

PowerShell-проверка (Windows):
```powershell
$item = Get-Item "$env:USERPROFILE\.claude\skills\mm-bridge" -Force
$item.Attributes -band [System.IO.FileAttributes]::ReparsePoint  # должно быть != 0
$item.Target  # должно совпадать с <repo>/skills/mm-bridge
```

При ошибках предложи: `Запустить scripts/register-skills.py для пере-создания ссылок? (y/n)`. Если y — запусти.

### 4. Obsidian vault (Базовая настройка)

Если проект не открыт, проверь глобальные пути из конфига `paths.obsidian_*`:
- ✅ `obsidian_vault` существует
- ✅ `obsidian_claude_root` существует
- ✅ `obsidian_bridge` существует (создай если нет — это безопасно)
- ✅ `obsidian_bridge_archive` существует (создай если нет)
- ✅ `obsidian_sessions` существует (создай если нет)
- ✅ `obsidian_projects` существует (создай если нет)
- ⚠️ `obsidian_index` файл есть; если нет — предупреди но не падай

### 5. Bridge state

- ✅ `<obsidian_bridge>/next-prompt.md` — info: есть/нет, дата
- ⚠️ Если есть и старше 7 дней — намекни: `Старый бридж-промпт от <date>. Уже использован?`
- ⚠️ Архив старше 30 дней: посчитай файлы в `<obsidian_bridge_archive>` старше 30 дней. Если > 0:
  ```
  В архиве bridge-промптов: <N> файлов, <M> старше 30 дней.
  Удалить старые? (y/n)
  ```

### 6. Текущий проект и База Знаний (если cwd внутри проекта)

Если в `cwd` или родителях есть `passport.md`:
- ✅ Frontmatter паспорта валидный YAML
- ✅ Все 11 секций присутствуют в `passport.md`
- ✅ Frontmatter содержит `gsd_version: <none|v1|v2|core>`
- ⚠️ `updated:` в паспорте старше 30 дней → предложи `/mm-init-project --update`
- ⚠️ Секция 8 «Контекст для промптов» содержит маркер `<!-- TODO: заполни секцию 8 -->` → намекни завить
- ✅ Определение пути базы знаний `<vault_root>` (локальная папка `.vault/` в корне или глобальная `<obsidian_projects>/<name>/` из конфига)
- ✅ Папки базы знаний существуют:
  - `00-home/`
  - `atlas/`
  - `knowledge/` (и ее подпапки: `integrations/`, `decisions/`, `debugging/`, `patterns/`, `business/`)
  - `sessions/`
  - `inbox/`
- ✅ Ключевые файлы базы знаний существуют:
  - `00-home/index.md`
  - `00-home/текущие приоритеты.md`
  - `00-home/project-instructions.md`
  - `handoff.md` (скелет или полный)
  - `atlas/passport.md` (копия)
- ✅ В `CLAUDE.md` присутствует секция `## Obsidian Knowledge Vault` с правильным путем к базе знаний.
- ✅ Sync с копией паспорта в базе знаний (sha256): совпадают?
- ⚠️ handoff.md существует. Если нет → `⚠️ handoff.md отсутствует — запусти /mm save (или /mm next) чтобы создать; он нужен для Project Knowledge claude.ai.`

### 6.1. GSD ↔ passport консистентность (если есть GSD)

Если passport `gsd_version` ≠ none, прогони cross-check:

**Проверка 1: версия в passport совпадает с реальностью**
- Если в passport `gsd_version: v1` или `core`, проверь что `<project_root>/.planning/` существует. (Для `core` проверь также наличие `.planning/config.json`).
- Если `gsd_version: v2` — проверь `<project_root>/.gsd/`.
- Если расходится → `❌ passport говорит gsd_version: <v1|core>, но .planning/ не найдена. Запусти /mm-init-project --update.` (или аналогично для v2).

**Проверка 2: scope не разъехался**
- Если есть `.planning/PROJECT.md` (v1/core):
  - Прочитай первые 30 строк и сравни с секцией 1 («Назначение») паспорта.
  - Если **ключевые слова не пересекаются** (jaccard < 0.3 на нормализованных tokens) → `⚠️ passport.md секция 1 и .planning/PROJECT.md описывают разное. Возможно scope изменился. Обнови passport через /mm-init-project --update.`
- Если есть `.gsd/STATE.md` или AGENTS.md → аналогично.

**Проверка 3: текущая фаза не устарела в паспорте**
- В passport секция 9 строка `Текущий milestone / phase: <X>`.
- В `.planning/STATE.md` или `.gsd/STATE.md` — фактический current.
- Если расходятся → `⚠️ passport.md секция 9 говорит фаза «X», STATE.md показывает «Y». Обнови.`

**Проверка 4: source-of-truth direction**
- В passport секция 9 строка `Source-of-truth для scope/requirements: <X>`.
- Должна быть `.planning/PROJECT.md` (если GSD есть) или `passport.md` (если GSD нет).
- Иначе → `⚠️ Source-of-truth не указан явно — две системы могут разъехаться. Заполни секцию 9.`

**Проверка 5: mm не пишет в .planning/**
- Если git log показывает что любой mm-skill коммитил файлы в `.planning/*` за последние 30 дней → `❌ mm писал в .planning/ — это нарушение контракта. Откатить вручную.`
- (это защита от будущих багов; mm-skills не должны это делать)

**Проверка 6: GSD-директива есть в CLAUDE.md** (ретро-детектор)
- Если `gsd_version != none`, проверь что `<project_root>/CLAUDE.md` содержит подблок `### GSD в этом проекте` (его добавляет `/mm-init-project` с версии 0.5.0).
- Если блока нет → `⚠️ В проекте есть GSD, но в CLAUDE.md нет GSD-директивы (проект инициализирован старой версией mm). Запусти /mm-init-project (update) — добавит правило маршрутизации работы через GSD.`
- Это закрывает вопрос «какие старые проекты надо обновить под новую GSD-интеграцию» — doctor находит их сам.

### 7. Версии

**Единый источник версии mm-системы — `config.version`** в `mm-config.json` (repo-wide release). Per-skill `version:` в каждом `SKILL.md` — гранулярная история конкретного скилла; **разные per-skill версии это норма, не рассинхрон.**

Для каждого `mm-*/SKILL.md`:
- ✅ Имеет `version:` в frontmatter
- ✅ `name:` совпадает с папкой

Версионная консистентность:
- ✅ `config.version` присутствует и валиден (semver).
- ⚠️ Если у текущего проекта `passport.mm_version` **старше** `config.version` → `⚠️ Паспорт проштампован mm <passport.mm_version>, актуальная <config.version>. Прогони /mm-init-project (update) для refresh.`
- ⚠️ Проверка обновлений: запусти `python3 <repo>/scripts/auto-update.py` (или проверь командой `git fetch && git status`) для сверки с репозиторием GitHub. Если локальный репо отстает от origin/main → `⚠️ Доступно обновление системы. Запусти /mm update или npx markdown-memory для обновления.`
- (Файл `.mm-versions.json` больше не используется — игнорируй, если встретишь.)

### 8. Глобальный CLAUDE.md (опционально)

Прочитай `~/.claude/CLAUDE.md` если есть:
- ⚠️ Если содержит дублирующие правила Sessions/Projects/INDEX (старая ручная инструкция) — намекни упростить через ссылку на `/mm-save-session`
- ✅ Иначе — ok

### 9. Сторонние интеграции (плагины, MCP)

Проверь установлены ли рекомендованные плагины:

- **karpathy-skills** (`~/.claude/plugins/marketplaces/karpathy-skills/`) — 4 принципа кодинга
  - ✅ установлен / ⚠️ нет — `claude plugin marketplace add forrestchang/andrej-karpathy-skills && claude plugin install andrej-karpathy-skills@karpathy-skills`
  - ✅ В `~/.claude/CLAUDE.md` есть секция Karpathy Guidelines (4 принципа продублированы текстом для всех проектов)

- **context-mode** (`~/.claude/plugins/marketplaces/context-mode/`) — MCP-сервер экономии контекста
  - ✅ установлен / ⚠️ нет — `claude plugin marketplace add mksglu/context-mode && claude plugin install context-mode@context-mode`
  - Если установлен:
    - ✅ Каталог сессий `~/.claude/context-mode/sessions/` существует и есть `.db` файлы
    - ⚠️ База старше 90 дней без cleanup → намекни `/ctx-purge`
    - ⚠️ Хуки контекст-мода работают параллельно с GSD-хуками — это норм, оба независимы. Если видишь медленный PostToolUse — это сумма обоих, не баг.
    - 💡 Для расширенной диагностики используй `/ctx-doctor` (skill самого context-mode)
  - 📊 Опционально показать накопленную статистику: `~/.context-mode/stats.json` (если есть)

- **GSD hooks** в `~/.claude/hooks/` — должны быть в `settings.json` SessionStart/PreToolUse/PostToolUse. Уже проверено в этих секциях выше.

- **Telegram bridge** (claude-code-telegram, опционально):
  - Если в `mm-config.local.json` `tg_bridge.enabled = true`:
    - ✅ `<repo>/external/claude-code-telegram/` существует
    - ✅ `<repo>/external/claude-code-telegram/.env` существует
    - ✅ В `.env` заполнены `TELEGRAM_BOT_TOKEN`, `ALLOWED_USERS`, `APPROVED_DIRECTORY` (НЕ читай значения — только проверь не пустые)
    - ⚠️ Если `CLAUDE_MAX_COST_PER_USER` не задан — предупреди (риск runaway costs)
    - ⚠️ Если `APPROVED_DIRECTORY = C:\` или другой слишком широкий путь — предупреди про безопасность
    - 💡 Проверка процесса: `Get-Process python` (Windows) или `pgrep -f python` (macOS/Linux) — если ни одного Python-процесса бота нет, бот может быть не запущен. Это просто намёк, не ошибка.
  - Если `tg_bridge.enabled = false` or нет — пропусти. Это опциональная фича.

## Финальный отчёт

```
🩺 mm-doctor отчёт

✅ Конфиг: загружен через <env|junction|fallback>, valid
✅ Repo integrity: все templates и SKILL.md на месте
✅ Симлинки/Junction'ы: <N>/<N> OK
⚠️ Obsidian: vault найден, bridge_archive не было — создал
✅ Bridge state: next-prompt.md от <date> (свежий)
⚠️ Bridge archive: 47 файлов старше 30 дней — предложил удалить
✅ Текущий проект: <name>, passport валидный (gsd_version: <none|v1|v2|core>), sync OK
✅ handoff.md: на месте <или ⚠️ отсутствует — /mm save>
✅ GSD-директива в CLAUDE.md: есть <или ⚠️ нет — /mm new для retrofit; или n/a если GSD нет>
⚠️ Секция 8 паспорта: TODO-маркер не убран
✅ Skills frontmatter: <N>/<N> имеют version и name
✅ Версии: config.version <X.Y.Z>, passport.mm_version <X.Y.Z> <совпадают | паспорт старше — /mm new>
✅ Обновление mm-системы: <✅ актуально | ⚠️ доступно обновление — /mm update>
✅ karpathy-skills plugin: установлен
✅ context-mode plugin: установлен, sessions/ есть
⚠️ Telegram bridge: не установлен (опционально — см. docs/TG-BRIDGE.md)

Итого: 3 предупреждения, 0 ошибок.

Что предлагаю сделать сейчас:
1. Удалить 47 старых bridge-архивов (одна команда)
2. Заполнить секцию 8 в <path>/passport.md
3. (опционально) упростить ~/.claude/CLAUDE.md через ссылку на /mm-save-session
4. (опционально) обновить mm-систему через /mm update (если доступно обновление)

Согласовать каждое отдельно? (y / только 1 / только 2 / skip)
```

## Auto-fixes (требуют подтверждения)

С разрешения юзера:
- Создать недостающие папки в Obsidian (`bridge`, `archive`, `sessions`, `projects`)
- Пере-запустить `register-skills.py` при битых симлинках/junction'ах
- Удалить bridge-архивы старше N дней
- Установить `MM_REPO_ROOT` env var

**Никогда без подтверждения:**
- Удаление файлов в Obsidian (кроме архивов с явным yes)
- Правка `~/.claude/CLAUDE.md` (это вне репо, чувствительный файл)
- Правка чужих passport.md
- `git` операции (за исключением /mm update, выполняющего git pull)

## Edge cases

- **Запуск без интернета**: всё локально, должно работать.
- **Запуск из worktree**: используй ту же worktree-detection логику что и mm-init-project (resolve до main repo).
- **Несколько mm-config.json в разных папках** (по ошибке клонировали репо дважды): обнаружь и предупреди.
- **Junction указывает на старый репо** (после переезда): предложи запустить register-skills.ps1 в новой локации.

## Что НЕ делать

- Не молчать при ошибках — всегда показывай конкретную команду фикса.
- Не «чинить» вещи без подтверждения юзера.
- Не отчитываться победно если есть ⚠️/❌ — отчёт должен быть честным.

Attribution

mworldorgmworldorg
View sourceMore from mworldorg →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Caveman

Ultra-compressed communication mode. Cuts token usage ~75% by speaking like caveman while keeping full technical accuracy. Supports intensity levels: lite, full (default), ultra, wenyan-lite, wenyan-full, wenyan-ultra. Use when user says "caveman mode", "talk like caveman", "use caveman", "less tokens", "be brief", or invokes /caveman. Also auto-triggers when token efficiency is requested.

1023331 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

686011 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3331 votes

catchup

Recovers prior coding-agent session context by running `catchup <agent> --since-compact`, which extracts a clean summary of a previous Codex, Claude Code, Antigravity, OpenCode, or Pi Agent session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", or asks to recover/summarize a previous session before continuing. Do NOT use for the current conversation, git history, or any non-agent log.

611 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →