Последняя рабочая глава собирает всё в готовый production-профиль - но это не универсальная политика, а reviewable отправная точка. Команды, пути и домены в примере обязаны соответствовать вашему репозиторию; копировать чужой профиль механически нельзя. Смысл профиля не в том, чтобы дать единственно верный конфиг, а в том, чтобы показать связную форму: минимальные общие настройки, явные permissions, sandbox, фиксация версии и гейты - которые вы наполните своими значениями.
База профиля - это .claude/settings.json со связкой permissions и sandbox. Режим по умолчанию default; в allow - семейства команд проверки; в ask - push и выход из sandbox; в deny - чтение .env, секретов и служебных каталогов вроде dist и coverage. Sandbox включён в строгом режиме, с узким сетевым allowlist и явными deny на credentials - ssh, aws, GITHUB_TOKEN, NPM_TOKEN. Полезно один раз увидеть такой baseline целиком: он читается как явное описание рабочих границ, а не как набор случайных ключей.
У этого baseline есть ожидаемое следствие, которое и есть точка ревью. Он может сломать ваши легитимные GitHub- и npm-команды, потому что закрывает токены и push. Это не ошибка примера, а приглашение подумать: если задача действительно требует credential, его выдают через более узкий доверенный маршрут, а не удаляют всю защиту разом. Профиль намеренно строг по умолчанию - ослабляют его точечно и осознанно, под конкретную доказанную потребность, а не "чтобы заработало".
Второй элемент профиля - runbook одного изменения, превращающий разрозненные приёмы книги в повторяемый порядок. Он проходит пять фаз: PREPARE, RESEARCH, IMPLEMENT, VERIFY и HANDOFF - от проверки версии и контракта задачи до сводки результата и коммита только по человеческому решению. Полезно один раз увидеть его целиком; ниже он и приведён как готовый чек-лист.
Управление версиями - обязательная часть профиля, потому что Claude Code обновляется часто. Разумный ритм: держать stable-канал для большинства и тестировать latest на canary; читать changelog на security, удалённые команды и миграции конфига; задавать requiredMinimumVersion только после раскатки; закреплять модель и провайдера в автоматизации, если дрейф алиасов неприемлем; раз в месяц гонять /doctor, негативные тесты политики и evals навыков и hooks.
После обновления особенно перепроверяют поведение permissions, sandbox, worktrees и hooks - именно здесь чаще всего живут значимые изменения. Показательный пример: в версии, на которой зафиксирована эта книга, changelog содержит security-фиксы вокруг изоляции worktree и обхода hooks. Такие изменения важнее любого нового UI-сочетания клавиш, и пропустить их при апгрейде - значит унести в прод поведение, которое авторы уже признали небезопасным. Читать changelog на security - не формальность, а часть эксплуатации.
Есть и критерий готовности к автономности - definition of ready. Повышать режим с Manual до Accept edits или Auto стоит, когда репозиторий имеет чистые тесты, точные команды, scoped-правила, защищённые секреты, sandbox, обратимый git-workflow и измеримый review. Ключевая мысль: автономность - это следствие зрелости окружения, а не настройка ради скорости. Отдать агенту больше свободы в незрелой среде - значит не ускориться, а перенести цену ошибки на прод, где она дороже всего.
На этом рабочая часть книги закрывается одним принципом: Claude Code превращается из набора функций в управляемую систему тогда, когда среда воспроизводима, границы явны, а результат проверяем. Профиль, runbook и ритм миграции - инструменты именно этого. И последнее, что стоит запомнить: продукт быстро меняется, эта редакция сверена с официальной документацией на конкретную версию, и ссылки в каждой главе - часть инструкции. Проверяйте версию командой, держите конфиг минимальным и объяснимым, а автономность повышайте по мере зрелости, а не по желанию.
# Runbook одного изменения
PREPARE версия = baseline; git понятен; /status ожидаемый; контракт задачи
RESEARCH plan mode; entry points/callers/tests; migration/rollback для risky
IMPLEMENT правки в scope; generated/vendor/secrets не трогать; focused-тесты по ходу
VERIFY lint/typecheck/тесты; integration по риску; diff; независимый review
HANDOFF сводка результата; changed files + команды; риски; commit по решению человека// .claude/settings.json - reviewable baseline (замените под свой repo)
{
"$schema": "https://json.schemastore.org/claude-code-settings.json",
"permissions": {
"defaultMode": "default",
"allow": ["Bash(npm run lint:*)", "Bash(npm run typecheck:*)", "Bash(npm test:*)"],
"ask": ["Bash(git push:*)", "Bash(dangerouslyDisableSandbox:true)"],
"deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)",
"Read(/dist/**)", "Read(/coverage/**)"]
},
"sandbox": {
"enabled": true, "autoAllowBashIfSandboxed": true, "allowUnsandboxedCommands": false,
"network": { "allowedDomains": ["registry.npmjs.org"] },
"credentials": {
"files": [{ "path": "~/.ssh", "mode": "deny" }, { "path": "~/.aws/credentials", "mode": "deny" }],
"envVars": [{ "name": "GITHUB_TOKEN", "mode": "deny" }, { "name": "NPM_TOKEN", "mode": "deny" }]
}
},
"respectGitignore": true,
"cleanupPeriodDays": 30
}