Первый запуск в реальном репозитории задаёт тон всей работе, и начать его разумнее не с задачи, а с состояния. Прежде чем набрать claude, стоит самому посмотреть git status и текущую ветку - чтобы знать исходную точку и потом отличить свои изменения от чужих. Это дешёвая страховка: агент будет менять файлы, и чистый старт превращает любой последующий diff в осмысленную картину, а не в загадку.
На первом запуске Claude Code просит подтвердить доверие к рабочему каталогу, и это не формальность. Project settings, project MCP, agent hooks и другие исполняемые кастомизации могут прийти из клонированного репозитория - то есть быть написаны кем-то другим. Пока workspace не доверен, Claude Code намеренно игнорирует часть project-approvals и hooks. Доверие здесь - осознанное решение допустить исполняемую конфигурацию репозитория, а не кнопка "ок" на пути к работе.
Сразу после входа полезно выполнить диагностический минимум и прочитать, что реально загрузилось. Команды /status, /context и /permissions показывают текущий каталог и корень репозитория, модель и provider, загруженные user-, project- и local-источники настроек, memory-файлы, активный permission mode и уже существующие MCP-серверы и плагины. Это снимок среды: пока вы его не увидели, вы не знаете, в каких условиях работает агент, и любая неожиданность потом будет стоить дороже.
Стартовый CLAUDE.md удобно создать командой /init, но относиться к нему надо как к заготовке, а не к источнику истины. /init исследует проект и предлагает первый CLAUDE.md, а если файл уже есть - предлагает улучшения, а не молча перезаписывает. Из заготовки убирают очевидное, что Claude и так видит в package.json, и добавляют то, что нельзя надёжно угадать по коду: команды проверки, границы ("не менять миграции без подтверждения") и определение готовности.
Полезно один раз увидеть, каким должен быть осмысленный CLAUDE.md - контракт проекта, а не пересказ структуры. Ниже - компактный пример с командами, границами и определением готовности. К этой форме возвращаются, наполняя память проекта: она держит инструкции короткими и проверяемыми, называет то, что агент не выведет сам, и задаёт критерий, по которому задача считается выполненной.
Первый запрос решает почти всё, и хороший запрос - это не "разберись в проекте", а конечный результат с границами. Разумно начать с исследования без изменений: попросить найти точки входа, команды проверки, границы модулей и механизм конфигурации, а в конце дать карту фактически прочитанных файлов и список вопросов, которые нельзя надёжно решить по коду. Явный запрет на правки на этом шаге удерживает агента от преждевременного редактирования плохо понятого кода.
Изменение оформляют отдельным, столь же конкретным запросом. Вместо "почини баг X" просят сначала воспроизвести его существующим тестом или минимальным детерминированным сценарием, показать корневую причину, внести минимальное изменение, запустить проверку и сообщить точные команды, коды возврата и оставшиеся риски - с явным запретом трогать публичный API и файлы вне нужного модуля. Такой запрос сам по себе структурирует работу лучше любого переключателя режима.
Инженерный вывод прост: первый turn лучше потратить на карту проекта и критерий проверки, а не на правки. Агент, который сразу редактирует плохо понятый код, быстро создаёт ложную уверенность в том, что "всё понял". Plan mode из следующих глав помогает, но конкретный проверяемый запрос важнее самого переключателя. Типичный провал - широкая задача без границ на недоверенном workspace; правильный старт - чистый git, прочитанный /status и запрос с целью, границами и проверкой.
# Project contract
## Commands
- Test: `pnpm test`
- Typecheck: `pnpm typecheck`
- Lint: `pnpm lint`
## Boundaries
- Do not change database migrations without explicit approval.
- Do not edit generated files under `src/generated/`.
## Definition of done
- Typecheck and focused tests pass.
- Report changed files, commands run, exit codes and remaining risks.# Сначала - состояние самому, потом запуск
git status --short
git branch --show-current
claude
# После входа - что реально загрузилось
/status # каталог, модель, provider, источники настроек
/context # memory files, заполнение контекста
/permissions # активный режим и правила