mm-init-project — Project Bootstrap & Refresh (safe edition)

SkillDocs & knowledge

Initializes or updates a project for the mm system — creates passport.md in the root, a copy in Obsidian, dashboard.md, handoff.md (skeleton), and project-instructions.md for claude.ai. Use when the user says "оформи проект", "сделай паспорт", "init project", "/mm-init", "/mm-init-project", "обнови

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the mm-init-project — Project Bootstrap & Refresh (safe edition) skill

What this skill tells your AI

The instructions your AI receives, as published by mworldorg/markdown-memory in skills/mm-init-project/SKILL.md and read by ahel’s review.

Создаёт «паспорт» проекта — единый источник контекста для claude.ai Project Knowledge и для всех mm-* skills. Всегда показывает план перед записью, никогда не уничтожает чужие .md файлы.

Контракт безопасности (это важно — соблюдай дословно)

Skill ПИШЕТ только в эти файлы:

  • <project_root>/passport.md — создаёт или обновляет
  • <project_root>/CLAUDE.mdтолько добавляет секции ## Obsidian Knowledge Vault и ## mm-system если их нет; никогда не редактирует существующие секции
  • <project_root>/.gitignore — добавляет правила для игнорирования локальных настроек Obsidian (.vault/.obsidian/)
  • Файлы Obsidian Vault (хранилище в <project_root>/.vault/ при локальном режиме или <obsidian_projects>/<name>/ при глобальном режиме):
    • 00-home/index.md — карта всех заметок; в режиме update не трогает, если файл есть и непустой
    • 00-home/текущие приоритеты.md — текущие приоритеты; в режиме update не трогает, если файл есть и непустой
    • project-instructions.md — инструкции для claude.ai (в корне хранилища, туда же пишет /mm rules)
    • handoff.md — создаёт скелет на старте (в корне хранилища)
    • passport.md — копия паспорта проекта (в корне хранилища; её читают /mm projects, clear-gate.py и sync-check фазы 1f)
    • atlas/архитектура проекта.md — описание архитектуры
    • atlas/база данных.md — схема БД
    • atlas/деплой.md — информация о деплое
    • Создает папки knowledge/integrations/, knowledge/decisions/, knowledge/debugging/, knowledge/patterns/, knowledge/business/, sessions/, inbox/ if they don't exist.

Skill ТОЛЬКО ЧИТАЕТ (никогда не редактирует):

  • README.md, ARCHITECTURE.md, NOTES.md, OVERVIEW.md, CONTEXT.md, DESIGN.md, ROADMAP.md, TODO.md, BUGS.md, DECISIONS.md, и любые другие *.md в проекте
  • package.json, pyproject.toml, requirements.txt, go.mod, Cargo.toml, pom.xml
  • .env.example (не .env!)
  • Dockerfile, docker-compose.yml, railway.json, vercel.json
  • .git/config, git log, git status

Skill НЕ ТРОГАЕТ ВООБЩЕ:

  • .env, *.key, *.pem, secrets/ — даже не читает значения
  • node_modules/, .venv/, dist/, build/, target/
  • Файлы вне <project_root> за исключением Obsidian-папки из конфига

Перед любой записью — обязательная фаза Preview (см. ниже). Без подтверждения y — ничего не пишется.

Конфиг

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

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

  • paths.obsidian_projects
  • _repo_root (для templates/passport.md и templates/project-instructions.md)
  • bot_defaults.*
  • default_language

Фаза 0. Определи целевую папку (worktree-aware)

Целевая папка = «корень проекта», не «cwd как есть».

Алгоритм:

  1. Возьми cwd.
  2. Если в пути есть подстрока \.claude\worktrees\ или /.claude/worktrees/ — это worktree. Найди корневой репо:
    • Прочитай <cwd>/.git (это файл-указатель, не папка). Извлеки gitdir: <path>. Из него выведи main repo path.
    • Если не получилось — спроси: Это git worktree. Какую папку считать корнем проекта? <предложи: ...>.
  3. Иначе — поднимись от cwd пока не найдёшь .git/ (папку, не файл) или package.json / pyproject.toml / любой явный маркер корня. Если ничего нет — cwd и есть корень.

Имя проекта = basename целевой папки. Покажи: Имя проекта: <name> (целевая папка: <path>). Ок? (y/n или новое имя).

Фаза 1. Discovery (что уже есть в проекте)

Просканируй и выведи отчёт пользователю перед любыми действиями.

1a. Существующие паспорта (миграция)

Поищи (case-insensitive) в <project_root> и <project_root>/docs/:

  • passport.md, PASSPORT.md, Passport.md, passport.MD — варианты case
  • PROJECT_PASSPORT.md, project_passport.md — старая louise-система (Claude Setup/)
  • *_passport.md, passport_*.md

Любой найденный — кандидат на миграцию, не конфликт-блокер.

1b. Документы которые могут содержать контекст

Просканируй *.md в:

  • <project_root>/ (корень)
  • <project_root>/docs/, <project_root>/notes/, <project_root>/_docs/
  • <project_root>/.planning/ (GSD-документы)

Распознай семантически по имени (case-insensitive substring):

В имени естьКатегория
readmeОписание / overview
architecture, design, archАрхитектура
overview, context, introКонтекст
notes, ideasЗаметки
decisions, adr, rfcРешения
roadmap, planПланы
todo, tasks, backlogЗадачи
bugs, issues, known-issuesПроблемы
changelog, historyИстория
claude (CLAUDE.md, claude-rules.md)Правила для AI

Прочитай первые 50 строк каждого найденного файла — для понимания.

1c. Маркеры стека (auto-detection)

Manifest-файлы — прочитай если есть:

  • package.json, pyproject.toml, requirements.txt, go.mod, Cargo.toml, pom.xml, composer.json, Gemfile, mix.exs, pubspec.yaml
  • Dockerfile, docker-compose.yml, railway.json, vercel.json, fly.toml, Procfile
  • .env.example, .env.template (не .env!)
  • tsconfig.json, next.config.*, vite.config.*, astro.config.*, nuxt.config.*, svelte.config.*, remix.config.*
  • .python-version, .nvmrc, .tool-versions, runtime.txt

Auto-detection: пакет → стек (по подстроке в зависимостях):

Если в зависимостяхТипФреймворкКатегория
aiogram, python-telegram-bot, telethon, pyrogram, telegraf, grammybotпо имениtg-bot
discord.py, discord.js, discordenobotпо имениdiscord-bot
fastapi, flask, django, starlette, litestar, quart, sanic, bottle, pyramidwebпо имениpython-web
express, koa, hapi, fastify, nest, polka, hono, elysiawebпо имениnode-web
next, nuxt, astro, remix, sveltekit, gatsby, solid-start, qwikwebпо имениmeta-framework
react, vue, svelte, solid-js, preact, lit, htmxwebпо имениspa-frontend
gin, echo, fiber, chi, gorilla/mux, humawebпо имениgo-web
actix-web, axum, rocket, warp, tide, salvowebпо имениrust-web
rails, sinatra, hanami, rodawebпо имениruby-web
phoenix, plugwebпо имениelixir-web
laravel, symfony, slimwebпо имениphp-web
sqlalchemy, sqlmodel, alembic, tortoise-orm, peewee, pydanticpython-db
prisma, drizzle, kysely, typeorm, sequelize, mongoose, mikro-ormnode-db
gorm, ent, sqlx, bun, pgxgo-db
diesel, sea-orm, sqlx (rust)rust-db
pytest, unittest, nose2, toxтесты Pythontesting
vitest, jest, mocha, playwright, cypress, ava, tapтесты JStesting
cargo test (default), nextestтесты Rusttesting
loguru, structlog, winston, pino, zap, tracing, slogлогированиеobservability
pydantic, zod, joi, yup, ajv, valibot, arktypeвалидацияvalidation
openai, anthropic, litellm, langchain, llama-index, instructorai-llm
huggingface, transformers, torch, tensorflow, jax, kerasai-ml
pandas, polars, numpy, scipy, daskdata
dlt, airflow, prefect, dagster, kafka-python, aiokafkapipelines
redis, aioredis, kombu, celery, rq, bullmqqueue/cache
scrapy, playwright, puppeteer, selenium, httpx, aiohttpscraping/http
tauri, electron, wailsdesktop

Файловые маркеры (если manifest неоднозначен):

  • *.tsx / *.jsx → React
  • *.vue → Vue
  • *.svelte → Svelte
  • *.astro → Astro
  • app/page.tsx → Next.js App Router
  • pages/*.tsx → Next.js Pages Router
  • wrangler.toml → Cloudflare Workers
  • serverless.yml → Serverless Framework
  • terraform/, *.tf → Terraform
  • helm/, Chart.yaml → Kubernetes Helm

Combo-recognition (комплекты):

  • React + TypeScript + Tailwind + shadcn → пометить «modern react stack»
  • FastAPI + Pydantic + sqlmodel + pytest → пометить «modern python web»
  • aiogram + sqlmodel + loguru → пометить «default bot stack» (из bot_defaults конфига)
  • Наличие telethon в зависимостях → установить внутренний флаг telethon_project: true
  • Наличие фреймворков категории tg-bot (aiogram, python-telegram-bot, telegraf, grammy и др.) в зависимостях → установить внутренний флаг tg_bot_project: true

Приоритет определения типа (когда несколько матчей):

  1. tg-bot / discord-bot (если есть бот-фреймворк) — bot
  2. meta-framework (Next/Nuxt/Astro/Remix) — web
  3. python-web / node-web / go-web / rust-web — web
  4. spa-frontend без backend — web (frontend-only)
  5. ai-ml / ai-llm + entry point — script или service
  6. data / pipelines — script
  7. desktop — desktop
  8. lib (если в pyproject.toml [project] без entry point ИЛИ в package.json main без bin) — lib
  9. иначе — script

Версии:

  • Питон: из .python-version или pyproject.toml requires-python
  • Node: из .nvmrc, engines.node в package.json
  • Go: из go.mod строка go X.Y
  • Rust: из rust-toolchain.toml или edition в Cargo.toml

1d. Git-контекст

git rev-parse --show-toplevel
git remote -v
git branch --show-current
git log --oneline -10

1e. Системы которые могут конфликтовать (dual-detection GSD)

GSD detection (определи версию):

  • <project_root>/.planning/ существует:
    • Если <project_root>/.planning/config.json существует → GSD Core. В passport frontmatter gsd_version: core.
    • Иначе → GSD v1. В passport frontmatter gsd_version: v1.
  • <project_root>/.gsd/ существует → GSD v2. В passport frontmatter gsd_version: v2.
  • Оба → смешанный (редкость, после миграции). Спроси: какой считать активным?
  • Ни одного → gsd_version: none.

Если GSD есть — попробуй импортировать scope/requirements (чтобы не дублировать):

GSD v1 (.planning/):

  • PROJECT.md → vision, audience, goals → секция 1 (Назначение) + секция 3 (Архитектура краткая)
  • REQUIREMENTS.md → REQ-001..N → можно вытащить топ-5 в секцию 4 как «функциональные требования» (опционально)
  • ROADMAP.md → phases, статусы → секция 9 паспорта строка Текущий milestone / phase: <M1 / phase 03 — <title>>
  • STATE.md → current phase / position → секция 10 «В работе сейчас»
  • codebase/STACK.md, codebase/ARCHITECTURE.md, codebase/CONVENTIONS.md, codebase/CONCERNS.md → если есть, переносим в секции 2, 3, 7, 10 паспорта (НЕ дублируя — кратко + ссылка см. .planning/codebase/STACK.md)

GSD v2 (.gsd/):

  • gsd.db (SQLite) → если можешь прочитать через sqlite3 CLI/Python — извлеки текущий milestone/slice/task; иначе пропусти
  • STATE.md (rendered dashboard) → парсинг как у v1
  • AGENTS.md → preferences для агентов → ссылка в секции 7 паспорта

Важное правило про дубликацию:

  • Если в .planning/PROJECT.md уже есть подробное описание проекта — в секции 1 паспорта пиши краткое summary + ссылку (см. .planning/PROJECT.md), не копируй целиком.
  • В секции 9 явно укажи source-of-truth: Source-of-truth для scope/requirements: .planning/PROJECT.md. Это нужно чтобы будущий читатель не запутался какой документ актуальный.

Никогда не пиши в .planning/* или .gsd/* напрямую — там file-lock'и, hook'и-охранники GSD. Только читать.

CLAUDE.md → читай, оценивай размер: маленький (< 30 строк) — добавим секцию; большой — спросим перед добавлением.

passport.md (точное совпадение) → режим update, см. фазу 3.

1f. Sync-check между копиями паспорта

Копий паспорта ровно две: <project_root>/passport.md и <vault_root>/passport.md. Тот же путь пишет фаза 4.2 — второго места для паспорта в скилле нет.

Если есть и <project_root>/passport.md И <vault_root>/passport.md:

  • Сравни sha256 содержимого (или хотя бы mtime + size).
  • Если расходятся — это значит юзер редактировал одну из копий (например в Obsidian app). Покажи в Discovery:
    ⚠️ Рассинхрон: passport.md в проекте и в Obsidian отличаются.
       Проект:  updated <date>, sha <hex8>
       Obsidian: updated <date>, sha <hex8>
    
       Какую версию считать source-of-truth?
       [1] Проект (Obsidian перезапишется) — дефолт
       [2] Obsidian (проект перезапишется)
       [3] Show diff first
       [4] Cancel
    
  • Запомни выбор для фазы 4 (write).

1g. Вывод фазы Discovery (покажи пользователю)

🔍 Discovery: <project_name>

Целевая папка: <abs_path>
Git: <branch>, <N> коммитов, remote: <url или local>

Найдено существующих паспортов:
  • PROJECT_PASSPORT.md  ← старая louise-система, можно мигрировать
  • passport.md          ← текущий формат, режим update
  (или: «не найдено»)

Найдено документов с контекстом:
  • README.md (описание)
  • docs/architecture.md (архитектура)
  • NOTES.md (заметки)
  (используются ТОЛЬКО для чтения — не будут изменены)

GSD detection:
  • Версия: <none | v1 (.planning/) | v2 (.gsd/) | core (.planning/ config.json)>
  • PROJECT.md: <есть, 240 строк — могу импортировать vision и audience в секции 1, 3>
  • REQUIREMENTS.md: <есть, REQ-001..REQ-014 — топ-5 в секцию 4?>
  • Текущий milestone: <M1 «MVP», phase 03/07 «add /stats command» (in-progress)>
  • codebase/: <STACK.md, ARCHITECTURE.md, CONVENTIONS.md — могу подсосать в секции 2, 3, 7>

Стек определён (auto-detection):
  • Язык: Python 3.12 (из .python-version)
  • Фреймворк: aiogram 3.x (из pyproject.toml)
  • DB: SQLite через sqlmodel
  • Тесты: pytest
  • Логирование: loguru
  • Тип: bot (combo: «default bot stack»)

Существующий CLAUDE.md: <нет / <N> строк, добавлю секцию mm-system / большой — спрошу>

Фаза 2. Решения (если нужны)

Задай только реально неопределённые вопросы (максимум 3-4):

  1. Расположение Obsidian Vault (КРИТИЧНО): Спроси пользователя, где хранить базу знаний (Obsidian Vault):

    Выберите расположение Obsidian Vault для проекта:
    [1] Локально в папке проекта (рекомендуется: <project_root>/.vault/, версионируется в git, синхронизируется с claude.ai автоматически) — дефолт
    [2] Глобально в папке Obsidian (из конфига: <obsidian_projects>/<name>/)
    
  2. Если найден PROJECT_PASSPORT.md или другой кандидат миграции: Найден старый паспорт <file>. Мигрировать его контент в новый passport.md? (y = мигрировать, переименую старый в .legacy / n = игнорировать)

  3. Если есть passport.md И он явно устарел (mtime старше 30 дней или git log показывает много коммитов после updated): Просто переходи в режим update без вопроса.

  4. Если CLAUDE.md > 30 строк: CLAUDE.md существует и непустой (<N> строк). Добавить правила базы знаний в конец? (y/n)

  5. Если папка пустая (новый проект):

    • Тип: bot / web / lib / script?
    • Язык / фреймворк? (для bot — дефолт aiogram из bot_defaults)
    • Назначение в одном предложении?
  6. Если в выбранной директории Vault уже есть файлы: В директории базы знаний уже есть файлы. Update (y) / Создать папку с суффиксом -2 (n) / Отмена (c)?

  7. Если есть GSD (.planning/PROJECT.md или .gsd/) и режим init: Найден <PROJECT.md / .gsd/>. Импортировать описание/scope в секции 1, 3 паспорта (y) / только сослаться, не дублировать (n) / отмена (c)? Дефолт n — паспорт ссылается, не дублирует.

Если пользователь говорит «решай сам» — выбирай разумный дефолт, отмечай в финальном отчёте <assumed: ...>.

Фаза 3. План записи (Preview / Dry-run)

Это обязательная фаза. Без подтверждения — НИЧЕГО не пишется.

Покажи пользователю полный план в формате:

📋 План записи

Расположение Obsidian Vault: <локальное (.vault/) | глобальное (<path>)>

СОЗДАМ:
  + <project>/passport.md (новый файл, <N> секций)
    Источники: README.md, package.json, etc.
  + <vault_root>/00-home/index.md (карта всех заметок; в update — только если файла нет или он пуст)
  + <vault_root>/00-home/текущие приоритеты.md (активные приоритеты; в update — только если файла нет или он пуст)
  + <vault_root>/project-instructions.md (инструкции для claude.ai)
  + <vault_root>/handoff.md (скелет)
  + <vault_root>/passport.md (копия паспорта)
  + <vault_root>/atlas/архитектура проекта.md (архитектура)
  + <vault_root>/atlas/база данных.md (схемы БД)
  + <vault_root>/atlas/деплой.md (информация о деплое)
  + <vault_root>/knowledge/integrations/ (папка)
  + <vault_root>/knowledge/decisions/ (папка)
  + <vault_root>/knowledge/debugging/ (папка)
  + <vault_root>/knowledge/patterns/ (папка)
  + <vault_root>/knowledge/business/ (папка)
  + <vault_root>/sessions/ (папка для логов сессий)
  + <vault_root>/inbox/ (папка для входящего)

ИЗМЕНЮ:
  ~ <project>/CLAUDE.md (добавлю правила Obsidian Knowledge Vault, +18 строк)
  <если локальный режим:>
  ~ <project>/.gitignore (добавлю .vault/.obsidian/ в конец, +2 строки)

ПЕРЕИМЕНУЮ:
  → PROJECT_PASSPORT.md → PROJECT_PASSPORT.md.legacy

НЕ ТРОНУ:
  README.md, .planning/*, .env, src/

Continue? (y / n / edit)

edit → дай возможность изменить план: «Не переименовывай PROJECT_PASSPORT» / «Не трогай CLAUDE.md» / «Не создавай dashboard» — пользователь редактирует список через простой dialog, ты применяешь.

n → останови, ничего не пиши.

y → переходи к фазе 4.

Фаза 4. Запись (atomic: всё или ничего)

Делай в этом порядке. Если хоть один шаг падает — откати уже сделанное (удали созданные файлы, восстанови переименованный):

4.1. Сгенерируй текст passport.md в памяти

Возьми шаблон <skills_repo>/templates/passport.md. Заполни:

  • Секции 1-7, 9 — из discovery (стек, архитектура, команды, конвенции из README, ENV из .env.example).
  • Секция 8 «Контекст для промптов»:
    • Если миграция из PROJECT_PASSPORT.md и там есть аналогичный раздел — перенеси.
    • Иначе:
      • Если telethon_project == true, добавь следующие жесткие правила:
        • При написании кода для Telethon-аккаунтов строго следуй правилам из [[telethon-sessions|инструкции по сессиям Telethon]].
        • Запрещены параллельные запуски сессий с одним файлом .session (риск AuthKeyDuplicatedError).
        • Все параметры устройства (fingerprint) бери строго из соответствующего .json файла.
        • Используй SOCKS5-прокси с rdns=True для всех подключений.
      • Если tg_bot_project == true, добавь следующие жесткие правила:
        • При проектировании интерфейса бота (текст, кнопки, эмодзи) строго следуй правилам из [[tg-bot-ui-ux|руководства по UI/UX ботов Telegram]].
      • Иначе оставь шаблон + <!-- TODO: заполни секцию 8 — критично, читается каждым промптом -->.
  • Секция 10 «Текущее состояние»:
    • Init: пустой шаблон.
    • Update (есть passport.md): сохрани существующий текст 1:1.
    • Migration: если в старом паспорте была секция «Текущее состояние / Status / Now» — перенеси.
  • Секция 11 «История»:
    • Init: одна строка « Initial».
    • Update: добавь строку « Refresh: <что обновилось>».
    • Migration: « Migrated from PROJECT_PASSPORT.md».

Frontmatter: created из существующего файла или сегодня; updated = сегодня; mm_version = config.version из mm-config.json (подставь значение, не оставляй плейсхолдер <MM_VERSION>); telegram_ui_ux = true (если tg_bot_project == true), иначе false.

4.2. Сгенерируй файлы Obsidian Vault в памяти

Сгенерируй структуру и контент для файлов базы знаний:

Guard режима update (по образцу handoff.md): 00-home/index.md и 00-home/текущие приоритеты.md — живой курируемый контент, их владелец /mm save, а не инициализатор. В режиме update не трогай их, если файл существует и непустой; генерируй только в режиме init или когда файла нет/он пуст. Затирать накопленное содержимое нельзя.

  1. 00-home/index.md: Карта всех файлов в Vault. На старте содержит ссылки на [[текущие приоритеты]], [[project-instructions]], [[handoff]], [[atlas/passport|паспорт проекта]], [[atlas/архитектура проекта]], [[atlas/база данных]], [[atlas/деплой.md]] и заглушки для подразделов в knowledge/ и sessions/. Если telethon_project == true, добавь также ссылку на [[knowledge/integrations/telethon-sessions|инструкцию по сессиям Telethon]]. Если tg_bot_project == true, добавь также ссылку на [[knowledge/patterns/tg-bot-ui-ux|инструкцию по UI/UX ботов Telegram]].
  2. 00-home/текущие приоритеты.md: Содержит текущий milestone и приоритетные задачи, извлеченные из GSD или Discovery (на старте).
  3. project-instructions.md (в корне Vault — туда же пишет /mm rules, второго места быть не должно): Возьми <skills_repo>/templates/project-instructions.md, подставь <PROJECT_NAME>, замени пути к файлам на новые пути в структуре базы (например, 00-home/index.md вместо dashboard.md), добавь топ-3 пункта из секции 8 паспорта.
    • Если telethon_project == true, добавь в инструкции для ИИ блок:
      • Этот проект использует Telethon. При написании кода по работе с сессиями/аккаунтами руководствуйся правилами из [[knowledge/integrations/telethon-sessions.md]].
    • Если tg_bot_project == true, добавь в инструкции для ИИ блок:
      • При создании диалогов, кнопок, FSM-сценариев и форматировании сообщений следуй правилам из [[knowledge/patterns/tg-bot-ui-ux.md]].
  4. handoff.md (в корне Vault): Скелет handoff (шаблон см. в Appendix). В режиме update не трогай, если файл уже существует.
  5. passport.md (в корне Vault): Копия сгенерированного <project_root>/passport.md. Именно эту копию читают /mm projects, clear-gate.py и sync-check фазы 1f — atlas/passport.md не создавай, иначе появится вторая копия, которую никто не читает и которая разъедется по датам.
  6. atlas/архитектура проекта.md: Содержит описание архитектуры из секции 3 паспорта.
  7. atlas/база данных.md: Содержит модели данных из секции 6 паспорта.
  8. atlas/деплой.md: Содержит инструкции и команды деплоя из секции 5/2 паспорта.
  9. knowledge/integrations/telethon-sessions.md (только если telethon_project == true): скопируй содержимое из <skills_repo>/templates/telethon-sessions.md.
  10. knowledge/patterns/tg-bot-ui-ux.md (только если tg_bot_project == true): скопируй содержимое из <skills_repo>/templates/tg-bot-ui-ux.md.

4.3. Сгенерируй патч для CLAUDE.md (если нужен)

Если CLAUDE.md существует и в нём нет секции ## Obsidian Knowledge Vault — добавь в конец:


## Obsidian Knowledge Vault
Хранилище знаний: <vault_path>

### При старте сессии
Прочитай 00-home/index.md и текущие приоритеты.md.
Если задача касается модуля — прочитай заметку из knowledge/.

### При завершении (пользователь: "сохрани сессию")
1. Создай заметку в sessions/ с датой
2. Обнови текущие приоритеты.md
3. Если решение — создай в knowledge/decisions/
4. Если баг — создай в knowledge/debugging/
5. Обнови index.md если новые заметки

## Режимы работы (IDE vs CLI)
1. **Если ты запущен в чат-окне Antigravity IDE (Gemini)**:
   - Ты выступаешь **исключительно как Планировщик и Архитектор**.
   - Тебе **категорически запрещено** самостоятельно изменять файлы проекта, записывать код в файлы или запускать изменяющие состояние команды (типа `git commit`, `git push`).
   - Твоя задача — использовать инструменты чтения (файлы, логи) и поиска, анализировать код, планировать изменения и генерировать готовый промпт для CLI-агента.
2. **Если ты запущен в консоли/терминале как CLI-агент (Claude Code / CLI-клиент)**:
   - Ты выступаешь как **Исполнитель**.
   - Ты должен автоматически вносить изменения в файлы, запускать тестов, делать коммиты и пушить изменения без подтверждений (согласно Karpathy-style discipline) на основе промптов, полученных из IDE.

Shortened here. Read the whole file on GitHub.

Signals

GitHub stars
25
Forks
3
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
mm-init-project
Source
github.com/mworldorg/markdown-memory