---
name: claude-md-bootstrap
description: >
  Use when the user wants to create or bootstrap a project-local CLAUDE.md - the auto-loading
  project context file for the agent. Russian triggers: "сделай/создай проектный CLAUDE.md",
  "настрой контекст проекта для агента", "забутстрапь CLAUDE.md", "CLAUDE.md для проекта".
  English triggers: "bootstrap project CLAUDE.md", "set up project agent context".
  Generates an opinionated CLAUDE.md adapted to project type (code/ops/agent/content): iron
  rules and gotchas as IF-THEN with primacy+recency placement, a work protocol including a
  keep-docs-live rule, and progressive-disclosure pointers to docs/ and project memory.
  Extends an existing CLAUDE.md instead of overwriting. Do NOT use for editing arbitrary files,
  the generic codebase summary that built-in /init produces, or non-CLAUDE.md docs.
---

# claude-md-bootstrap

Создаёт проектный `CLAUDE.md` в корне проекта - авто-загружаемый каждую сессию контекст для агента:
железные правила-грабли, протокол работы, указатели на доки и память. Цель - чтобы агент был
эффективен в проекте сразу, без переоткрытия граблей, и чтобы документация поддерживалась ПО ХОДУ
работы, а не постфактум.

**Методика заимствована** из opencode-скила `project-bootstrap`
(https://github.com/dimkurilo/opencode-skills/tree/main/skills/project-bootstrap) и адаптирована под
Claude Code: `CLAUDE.md` вместо `AGENTS.md`, память проекта (`~/.claude/projects/<proj>/memory/`)
вместо `.agents/`, без модельных профилей (DeepSeek/GLM) и без GRACE-якорей. Что заимствовано
дословно: Variant E (правила в primacy + recency против "Lost in the Middle"), классификация проекта,
режим расширения, contradiction check, progressive disclosure, лимит "не больше 2 вопросов".

## Когда этот скил, а когда встроенный /init

- **`/init`** - дженерик: сводка кодовой базы в CLAUDE.md. Используй, если нужен просто обзор кода.
- **Этот скил** - опинионейтед агент-контекст: правила-грабли как IF-THEN, протокол, primacy/recency,
  "док как часть работы". Используй, когда проект сложный и нужен надёжный контекст для агента.
- Можно комбинировать: сначала `/init` для черновой архитектуры, затем этот скил для структуры и правил.

## Workflow

### Фаза 0: Классификация + режим

1. **Тип проекта** (определи по файлам, НЕ спрашивай):

   | Тип | Сигналы |
   |-----|---------|
   | `code` | исходники (py/ts/js/go/...), тесты, CI |
   | `ops` | Docker, SSH, .env, nginx, продакшен-риски |
   | `agent` | скиллы, промпты, агенты, модели |
   | `content` | статьи, briefs, Excel, документы |

   Приоритет гибридов: ops > code > agent > content.

2. **Режим**: `ls CLAUDE.md` в корне. Если есть -> **РЕЖИМ РАСШИРЕНИЯ** (дополнять, не перезатирать;
   сохранить ручные правки пользователя, добавить недостающие секции).

3. **Загрузи контекст** (Read/Glob/Grep, без вопросов):
   - `README*`, `docs/**`, корневые конфиги.
   - `git log --oneline -30` и багфиксы - источник граблей.
   - Память проекта: `~/.claude/projects/<кодированный-путь>/memory/MEMORY.md` (если есть).
   - Глобальный `~/.claude/CLAUDE.md` и `~/.claude/rules/*` - чтобы НЕ дублировать и не конфликтовать.

### Фаза 1: Сбор (НЕ больше 2 вопросов)

Собери из контекста, спроси только то, что не выводится:
- **Overview** - 1 строка + 1 абзац (из README/кода).
- **Грабли (gotchas)** - из памяти, git-истории, троблшутинга в docs. Если неочевидно - ОДИН вопрос:
  "Какие грабли/правила в проекте обязательно знать, чтобы не наступить?".
- **Протокол** - команды запуска/тестов (из README/scripts/CI); правило "при изменении X обнови Y".
- Чего не знаешь - НЕ выдумывай, ставь `<!-- TODO: уточнить -->`.

### Фаза 2: Генерация CLAUDE.md

Собери файл по шаблону ниже. Принципы:
- **Железные правила - дважды**: в преамбуле (primacy) и в конце (recency). Кратко, IF-THEN.
- **Progressive disclosure**: CLAUDE.md - ИНДЕКС. Не копируй сюда содержимое docs/ - давай указатели.
- **Грабли конкретны**: симптом -> причина -> фикс/правило.
- В режиме расширения - вставляй только недостающее, существующее не трогай.

### Фаза 3: Contradiction check (обязательно)

Сверь сгенерированный CLAUDE.md с глобальным `~/.claude/CLAUDE.md`, `~/.claude/rules/*` и памятью:
- нет правила, противоречащего глобальному;
- нет дублирования того, что уже в глобальных правилах (ссылайся, не копируй);
- одно значение параметра во всех местах;
- **ФОРМАТ соблюдён** по глобальным правилам (`~/.claude/rules/text-formatting.md`, `~/.claude/CLAUDE.md`):
  напр. без `ё` (заменить на `е`), без длинных тире (`-` вместо `—`/`–`). Проверка: `grep -nE 'ё|—|–' CLAUDE.md`.
Конфликты (MAJOR) - исправь. Запиши решения в память проекта, если она есть.

### Фаза 4: Сводка

Что создано/дополнено, какие правила вынесены, что осталось как `TODO`, на что обратить внимание.
Предложи: держать CLAUDE.md живым (обновлять по протоколу), при росте >200 строк - выносить детали в docs/.

## Шаблон CLAUDE.md

```markdown
# ${PROJECT} - ${ONE_LINER}

> Проектный контекст для агента. Это ИНДЕКС: детали - в docs/ и памяти проекта (см. "Где что искать").
> Не дублировать сюда содержимое docs/.

## Железные правила (всегда)
- IF ${условие или действие} THEN ${правило}        # грабля/риск 1
- IF ${...} THEN ${...}                              # грабля/риск 2
- ${ещё критичные инварианты проекта}

## Протокол работы
- Запуск: `${команда запуска}`
- Тесты: `${команда тестов}`
- Док как часть работы: изменил ${модуль} -> обнови ${docs/...}; добавил скрипт -> строку в README;
  новое решение/грабля -> память проекта. (НЕ копить документацию в долг.)
- ${command-first / прочие конвенции}

## Архитектура (кратко)
${2-3 фразы про устройство}. Подробно - ${docs/архитектура}.

| Модуль | Файл | Ответственность |
|--------|------|----------------|
| ${...} | ${path} | ${за что отвечает} |

## Где что искать (progressive disclosure)
- docs/ - ${что в каком документе}
- Память проекта - ${путь к memory/MEMORY.md}: решения, грабли, состояние
- Траблшутинг/грабли - ${docs/operations или ниже}

## Известные грабли (топ)
- ${симптом} -> ${причина} -> ${фикс/правило}

---
КРИТИЧНЫЕ ПРАВИЛА (повтор для recency):
- ${те же железные правила, одной строкой каждое}
```

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

- НЕ перезатирать существующий CLAUDE.md - режим расширения.
- НЕ задавать больше 2 вопросов - выводи из проекта.
- НЕ дублировать в CLAUDE.md то, что уже в глобальном `~/.claude/CLAUDE.md` или `~/.claude/rules/` - ссылайся.
- НЕ копировать содержимое docs/ в CLAUDE.md - только указатели (progressive disclosure).
- НЕ выдумывать факты/грабли - `<!-- TODO -->` если не знаешь.
- НЕ раздувать: CLAUDE.md - индекс правил и указателей, не место для длинных описаний.
- НЕ добавлять GRACE-якоря/`<!-- @rule -->` - Claude Code их не парсит, правила работают через primacy/recency.

## Референс

Первоисточник методики (для opencode, не для прямой установки в Claude Code):
https://github.com/dimkurilo/opencode-skills/tree/main/skills/project-bootstrap
(README.ru.md - разбор на русском; references/variant-e-structure.md - структура Variant E).
