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: Классификация + режим
Тип проекта (определи по файлам, НЕ спрашивай):
| Тип |
Сигналы |
code |
исходники (py/ts/js/go/...), тесты, CI |
ops |
Docker, SSH, .env, nginx, продакшен-риски |
agent |
скиллы, промпты, агенты, модели |
content |
статьи, briefs, Excel, документы |
Приоритет гибридов: ops > code > agent > content.
Режим: ls CLAUDE.md в корне. Если есть -> РЕЖИМ РАСШИРЕНИЯ (дополнять, не перезатирать;
сохранить ручные правки пользователя, добавить недостающие секции).
Загрузи контекст (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 -nP '[\x{451}\x{401}\x{2014}\x{2013}]' CLAUDE.md.
Конфликты (MAJOR) - исправь. Запиши решения в память проекта, если она есть.
Фаза 4: Сводка
Что создано/дополнено, какие правила вынесены, что осталось как TODO, на что обратить внимание.
Предложи: держать CLAUDE.md живым (обновлять по протоколу), при росте >200 строк - выносить детали в docs/.
Шаблон CLAUDE.md
# ${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).
1---2name: claude-md-bootstrap3description: 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.4---56# claude-md-bootstrap78Создает проектный `CLAUDE.md` в корне проекта - авто-загружаемый каждую сессию контекст для агента:9железные правила-грабли, протокол работы, указатели на доки и память. Цель - чтобы агент был10эффективен в проекте сразу, без переоткрытия граблей, и чтобы документация поддерживалась ПО ХОДУ11работы, а не постфактум.1213**Методика заимствована** из opencode-скила `project-bootstrap`14(https://github.com/dimkurilo/opencode-skills/tree/main/skills/project-bootstrap) и адаптирована под15Claude Code: `CLAUDE.md` вместо `AGENTS.md`, память проекта (`~/.claude/projects/<proj>/memory/`)16вместо `.agents/`, без модельных профилей (DeepSeek/GLM) и без GRACE-якорей. Что заимствовано17дословно: Variant E (правила в primacy + recency против "Lost in the Middle"), классификация проекта,18режим расширения, contradiction check, progressive disclosure, лимит "не больше 2 вопросов".1920## Когда этот скил, а когда встроенный /init2122- **`/init`** - дженерик: сводка кодовой базы в CLAUDE.md. Используй, если нужен просто обзор кода.23- **Этот скил** - опинионейтед агент-контекст: правила-грабли как IF-THEN, протокол, primacy/recency,24 "док как часть работы". Используй, когда проект сложный и нужен надежный контекст для агента.25- Можно комбинировать: сначала `/init` для черновой архитектуры, затем этот скил для структуры и правил.2627## Workflow2829### Фаза 0: Классификация + режим30311. **Тип проекта** (определи по файлам, НЕ спрашивай):3233 | Тип | Сигналы |34 |-----|---------|35 | `code` | исходники (py/ts/js/go/...), тесты, CI |36 | `ops` | Docker, SSH, .env, nginx, продакшен-риски |37 | `agent` | скиллы, промпты, агенты, модели |38 | `content` | статьи, briefs, Excel, документы |3940 Приоритет гибридов: ops > code > agent > content.41422. **Режим**: `ls CLAUDE.md` в корне. Если есть -> **РЕЖИМ РАСШИРЕНИЯ** (дополнять, не перезатирать;43 сохранить ручные правки пользователя, добавить недостающие секции).44453. **Загрузи контекст** (Read/Glob/Grep, без вопросов):46 - `README*`, `docs/**`, корневые конфиги.47 - `git log --oneline -30` и багфиксы - источник граблей.48 - Память проекта: `~/.claude/projects/<кодированный-путь>/memory/MEMORY.md` (если есть).49 - Глобальный `~/.claude/CLAUDE.md` и `~/.claude/rules/*` - чтобы НЕ дублировать и не конфликтовать.5051### Фаза 1: Сбор (НЕ больше 2 вопросов)5253Собери из контекста, спроси только то, что не выводится:54- **Overview** - 1 строка + 1 абзац (из README/кода).55- **Грабли (gotchas)** - из памяти, git-истории, троблшутинга в docs. Если неочевидно - ОДИН вопрос:56 "Какие грабли/правила в проекте обязательно знать, чтобы не наступить?".57- **Протокол** - команды запуска/тестов (из README/scripts/CI); правило "при изменении X обнови Y".58- Чего не знаешь - НЕ выдумывай, ставь `<!-- TODO: уточнить -->`.5960### Фаза 2: Генерация CLAUDE.md6162Собери файл по шаблону ниже. Принципы:63- **Железные правила - дважды**: в преамбуле (primacy) и в конце (recency). Кратко, IF-THEN.64- **Progressive disclosure**: CLAUDE.md - ИНДЕКС. Не копируй сюда содержимое docs/ - давай указатели.65- **Грабли конкретны**: симптом -> причина -> фикс/правило.66- В режиме расширения - вставляй только недостающее, существующее не трогай.6768### Фаза 3: Contradiction check (обязательно)6970Сверь сгенерированный CLAUDE.md с глобальным `~/.claude/CLAUDE.md`, `~/.claude/rules/*` и памятью:71- нет правила, противоречащего глобальному;72- нет дублирования того, что уже в глобальных правилах (ссылайся, не копируй);73- одно значение параметра во всех местах;74- **ФОРМАТ соблюден** по глобальным правилам (`~/.claude/rules/text-formatting.md`, `~/.claude/CLAUDE.md`):75 напр. без буквы е с точками (заменить на `е`), без длинных и коротких тире (`-` вместо них).76 Проверка: `grep -nP '[\x{451}\x{401}\x{2014}\x{2013}]' CLAUDE.md`.77Конфликты (MAJOR) - исправь. Запиши решения в память проекта, если она есть.7879### Фаза 4: Сводка8081Что создано/дополнено, какие правила вынесены, что осталось как `TODO`, на что обратить внимание.82Предложи: держать CLAUDE.md живым (обновлять по протоколу), при росте >200 строк - выносить детали в docs/.8384## Шаблон CLAUDE.md8586```markdown87# ${PROJECT} - ${ONE_LINER}8889> Проектный контекст для агента. Это ИНДЕКС: детали - в docs/ и памяти проекта (см. "Где что искать").90> Не дублировать сюда содержимое docs/.9192## Железные правила (всегда)93- IF ${условие или действие} THEN ${правило} # грабля/риск 194- IF ${...} THEN ${...} # грабля/риск 295- ${еще критичные инварианты проекта}9697## Протокол работы98- Запуск: `${команда запуска}`99- Тесты: `${команда тестов}`100- Док как часть работы: изменил ${модуль} -> обнови ${docs/...}; добавил скрипт -> строку в README;101 новое решение/грабля -> память проекта. (НЕ копить документацию в долг.)102- ${command-first / прочие конвенции}103104## Архитектура (кратко)105${2-3 фразы про устройство}. Подробно - ${docs/архитектура}.106107| Модуль | Файл | Ответственность |108|--------|------|----------------|109| ${...} | ${path} | ${за что отвечает} |110111## Где что искать (progressive disclosure)112- docs/ - ${что в каком документе}113- Память проекта - ${путь к memory/MEMORY.md}: решения, грабли, состояние114- Траблшутинг/грабли - ${docs/operations или ниже}115116## Известные грабли (топ)117- ${симптом} -> ${причина} -> ${фикс/правило}118119---120КРИТИЧНЫЕ ПРАВИЛА (повтор для recency):121- ${те же железные правила, одной строкой каждое}122```123124## Что НЕ делать125126- НЕ перезатирать существующий CLAUDE.md - режим расширения.127- НЕ задавать больше 2 вопросов - выводи из проекта.128- НЕ дублировать в CLAUDE.md то, что уже в глобальном `~/.claude/CLAUDE.md` или `~/.claude/rules/` - ссылайся.129- НЕ копировать содержимое docs/ в CLAUDE.md - только указатели (progressive disclosure).130- НЕ выдумывать факты/грабли - `<!-- TODO -->` если не знаешь.131- НЕ раздувать: CLAUDE.md - индекс правил и указателей, не место для длинных описаний.132- НЕ добавлять GRACE-якоря/`<!-- @rule -->` - Claude Code их не парсит, правила работают через primacy/recency.133134## Референс135136Первоисточник методики (для opencode, не для прямой установки в Claude Code):137https://github.com/dimkurilo/opencode-skills/tree/main/skills/project-bootstrap138(README.ru.md - разбор на русском; references/variant-e-structure.md - структура Variant E).