$npx -y skills add mworldorg/markdown-memory --skill mm-init-projectИнициализирует или обновляет проект для mm-системы — создаёт passport.md в корне, копию в Obsidian, dashboard.md, handoff.md (скелет), project-instructions.md для claude.ai. Use when user says "оформи проект", "сделай паспорт", "init project", "/mm-init", "/mm-init-project", "обн
| 1 | # mm-init-project — Project Bootstrap & Refresh (safe edition) |
| 2 | |
| 3 | Создаёт «паспорт» проекта — единый источник контекста для claude.ai Project Knowledge и для всех mm-* skills. **Всегда показывает план перед записью**, никогда не уничтожает чужие .md файлы. |
| 4 | |
| 5 | ## Контракт безопасности (это важно — соблюдай дословно) |
| 6 | |
| 7 | **Skill ПИШЕТ только в эти файлы:** |
| 8 | - `<project_root>/passport.md` — создаёт или обновляет |
| 9 | - `<project_root>/CLAUDE.md` — **только** добавляет секции `## Obsidian Knowledge Vault` и `## mm-system` если их нет; **никогда** не редактирует существующие секции |
| 10 | - `<project_root>/.gitignore` — добавляет правила для игнорирования локальных настроек Obsidian (`.vault/.obsidian/`) |
| 11 | - Файлы Obsidian Vault (хранилище в `<project_root>/.vault/` при локальном режиме или `<obsidian_projects>/<name>/` при глобальном режиме): |
| 12 | - `00-home/index.md` — карта всех заметок |
| 13 | - `00-home/текущие приоритеты.md` — текущие приоритеты |
| 14 | - `00-home/project-instructions.md` — инструкции для claude.ai |
| 15 | - `handoff.md` — создаёт **скелет** на старте (в корне хранилища) |
| 16 | - `atlas/passport.md` — копия паспорта проекта |
| 17 | - `atlas/архитектура проекта.md` — описание архитектуры |
| 18 | - `atlas/база данных.md` — схема БД |
| 19 | - `atlas/деплой.md` — информация о деплое |
| 20 | - Создает папки `knowledge/integrations/`, `knowledge/decisions/`, `knowledge/debugging/`, `knowledge/patterns/`, `knowledge/business/`, `sessions/`, `inbox/` if they don't exist. |
| 21 | |
| 22 | **Skill ТОЛЬКО ЧИТАЕТ (никогда не редактирует):** |
| 23 | - README.md, ARCHITECTURE.md, NOTES.md, OVERVIEW.md, CONTEXT.md, DESIGN.md, ROADMAP.md, TODO.md, BUGS.md, DECISIONS.md, и любые другие *.md в проекте |
| 24 | - package.json, pyproject.toml, requirements.txt, go.mod, Cargo.toml, pom.xml |
| 25 | - .env.example (не .env!) |
| 26 | - Dockerfile, docker-compose.yml, railway.json, vercel.json |
| 27 | - .git/config, git log, git status |
| 28 | |
| 29 | **Skill НЕ ТРОГАЕТ ВООБЩЕ:** |
| 30 | - `.env`, `*.key`, `*.pem`, `secrets/` — даже не читает значения |
| 31 | - node_modules/, .venv/, dist/, build/, target/ |
| 32 | - Файлы вне `<project_root>` за исключением Obsidian-папки из конфига |
| 33 | |
| 34 | **Перед любой записью** — обязательная фаза Preview (см. ниже). Без подтверждения `y` — ничего не пишется. |
| 35 | |
| 36 | ## Конфиг |
| 37 | |
| 38 | Загрузи `mm-config.json` по алгоритму из `<repo>/docs/CONFIG-LOADING.md`. Поддержка `mm-config.local.json` overlay обязательна. `<repo>` берётся из `_repo_root` инжектированного loader'ом. |
| 39 | |
| 40 | Понадобятся: |
| 41 | - `paths.obsidian_projects` |
| 42 | - `_repo_root` (для `templates/passport.md` и `templates/project-instructions.md`) |
| 43 | - `bot_defaults.*` |
| 44 | - `default_language` |
| 45 | |
| 46 | ## Фаза 0. Определи целевую папку (worktree-aware) |
| 47 | |
| 48 | **Целевая папка** = «корень проекта», не «cwd как есть». |
| 49 | |
| 50 | Алгоритм: |
| 51 | 1. Возьми `cwd`. |
| 52 | 2. Если в пути есть подстрока `\.claude\worktrees\` или `/.claude/worktrees/` — это worktree. Найди корневой репо: |
| 53 | - Прочитай `<cwd>/.git` (это файл-указатель, не папка). Извлеки `gitdir: <path>`. Из него выведи main repo path. |
| 54 | - Если не получилось — спроси: `Это git worktree. Какую папку считать корнем проекта? <предложи: ...>`. |
| 55 | 3. Иначе — поднимись от `cwd` пока не найдёшь `.git/` (папку, не файл) или `package.json` / `pyproject.toml` / любой явный маркер корня. Если ничего нет — `cwd` и есть корень. |
| 56 | |
| 57 | **Имя проекта** = basename целевой папки. Покажи: `Имя проекта: <name> (целевая папка: <path>). Ок? (y/n или новое имя)`. |
| 58 | |
| 59 | ## Фаза 1. Discovery (что уже есть в проекте) |
| 60 | |
| 61 | Просканируй и **выведи отчёт пользователю** перед любыми действиями. |
| 62 | |
| 63 | ### 1a. Существующие паспорта (миграция) |
| 64 | |
| 65 | Поищи (case-insensitive) в `<project_root>` и `<project_root>/docs/`: |
| 66 | - `passport.md`, `PASSPORT.md`, `Passport.md`, `passport.MD` — варианты case |
| 67 | - `PROJECT_PASSPORT.md`, `project_passport.md` — старая louise-система (`Claude Setup/`) |
| 68 | - `*_passport.md`, `passport_*.md` |
| 69 | |
| 70 | Любой найденный — **кандидат на миграцию**, не конфликт-блокер. |
| 71 | |
| 72 | ### 1b. Документы которые могут содержать контекст |
| 73 | |
| 74 | Просканируй `*.md` в: |
| 75 | - `<project_root>/` (корень) |
| 76 | - `<project_root>/docs/`, `<project_root>/notes/`, `<project_root>/_docs/` |
| 77 | - `<project_root>/.planning/` (GSD-документы) |
| 78 | |
| 79 | Распознай семантически по имени (case-insensitive substring): |
| 80 | | В имени есть | Категория | |
| 81 | |---|---| |
| 82 | | `readme` | Описание / overview | |
| 83 | | `architecture`, `design`, `arch` | Архитектура | |
| 84 | | `overview`, `context`, `intro` | Контекст | |
| 85 | | `notes`, `ideas` | Заметки | |
| 86 | | `decisio |