{/ Эта страница автоматически создается из навыков SKILL.md с помощью сайта/scripts/generate-skill-docs.py. Редактируйте исходный SKILL.md, а не эту страницу. /}

Клод Код

Делегирование кода в Claude Code CLI (фичи, PR).

Метаданные навыки

Источник Встроенный (устанавливается по умолчанию)
Путь навыки/автономные-ИИ-агенты/Клод-код
Версия 2.2.0
Автор Гермес Агент + Текниум
Лицензия Массачусетский технологический институт
Платформы Linux, MacOS, Windows
Теги Coding-Agent, Claude, Anthropic, Code-Review, Refactoring, PTY, Automation
Связанные навыки codex, hermes-agent, opencode

Справочник: полный SKILL.md:::информация

Ниже приведено полное описание навыка, который Hermes загружает при активации этого навыка. Это то, что агент видит в качестве инструкций, когда навыки активны.

Клод Код — Руководство по оркестрации Hermes

Делегируйте задачу по программированию Claude Code (автономному агенту программирования CLI от Anthropic) через терминал Hermes. Claude Code v2.x может читать файлы, писать код, выполнять команды, управлять подагентами и автономно управлять git-рабочими процессами.

Предварительные требования

Два режима оркестрации

Hermes взаимодействует с Клодом Кодом двумя принципиально разными методами. Делается в зависимости от задачи.

Режим 1: Режим печати (-p) — Неинтерактивный (ПРЕДПОЧТИТЕЛЬНО для большинства задач)

Режим печати запускает одноразовую задачу, получает результаты и завершает работу. PTY не требуется. Никаких интерактивных подсказок. Это самый чистый путь продвижения.

terminal(command="claude -p 'Добавь обработку ошибок во все вызовы API в src/' --allowedTools 'Read,Edit' --max-turns 10", workdir="/path/to/project", timeout=120)

При использовании режима печати: - Одноразовые задачи по кодингу (исправить баг, добавить фичу, рефакторинг) - Автоматизация CI/CD и скриптинг. - Извлечение структурированных данных с --json-schema - Обработка входных данных через канал (cat file | claude -p "проанализируй это") - Любые задачи, не требующие многошагового диалога

Режим печати пропускает интерактивные диалоги ВСЕ — нет подтверждения надежности рабочей области, нет разрешений. Это делает его поддержку для автоматизации.

Режим 2: Интерактивный PTY через tmux — Многошаговые сессии

Интерактивный режим обеспечивает полноценный REPL с выводом запроса, использованием косой черты и наблюдением за работой Клода в первое время. Требуется оркестрация через tmux.

# Запустить tmux-сессию
terminal(command="tmux new-session -d -s claude-work -x 140 -y 40")

# Запустить Claude Code внутри неё
terminal(command="tmux send-keys -t claude-work 'cd /path/to/project && claude' Enter")

# Подождать загрузки, затем отправить задачу
# (примерно через 3-5 секунд для заставки)
terminal(command="sleep 5 && tmux send-keys -t claude-work 'Рефактори модуль аутентификации для использования JWT-токенов' Enter")

# Мониторить прогресс, захватывая панель
terminal(command="sleep 15 && tmux capture-pane -t claude-work -p -S -50")

# Отправить последующие задачи
terminal(command="tmux send-keys -t claude-work 'Теперь добавь юнит-тесты для нового JWT-кода' Enter")

# Завершить работу
terminal(command="tmux send-keys -t claude-work '/exit' Enter")

При использовании интерактивного режима: - Многошаговая итеративная работа (рефакторинг → проверка → исправление → тестирование) - Задачи, требующие решения от человека - Исследовательские сессии по программированию - Когда нужно использовать слэш-команды Клода (/compact, /review, /model)

Обработка PTY-диалогов (КРИТИЧНО для интерактивного режима)

Клод Код при первом запуске может показать два диалоговых подтверждения. Их ОБЯЗАТЕЛЬНО нужно обработать через клавиши отправки tmux:

Диалог 1: Доверие рабочей области (первое посещение каталога)

❯ 1. Да, я доверяю этой папке    ← ПО УМОЛЧАНИЮ (просто нажмите Enter)
  2. Нет, выйти

Обработка: tmux send-keys -t <session> Enter — выбор по умолчанию правильный.

Диалог 2: Предупреждение о разрешениях (только с --dangerously-skip-permissions)

❯ 1. Нет, выйти                    ← ПО УМОЛЧАНИЮ (НЕПРАВИЛЬНЫЙ выбор!)
  2. Да, я принимаю

Обработка: Сначала нужно перейти вниз, а затем ввести:

tmux send-keys -t <session> Down && sleep 0.3 && tmux send-keys -t <session> Enter

Надёжный шаблон обработки диалогов

# Запуск с обходом разрешений
terminal(command="tmux send-keys -t claude-work 'claude --dangerously-skip-permissions \"твоя задача\"' Enter")

# Обработка диалога доверия (Enter для выбора "Да" по умолчанию)
terminal(command="sleep 4 && tmux send-keys -t claude-work Enter")

# Обработка диалога разрешений (Down затем Enter для "Да, я принимаю")
terminal(command="sleep 3 && tmux send-keys -t claude-work Down && sleep 0.3 && tmux send-keys -t claude-work Enter")

# Теперь подождать, пока Claude работает
terminal(command="sleep 15 && tmux capture-pane -t claude-work -p -S -60")

Примечание: После первого выбора доверия к каталогу диалог больше доверия не появляется. Только разрешенный диалог повторяется при каждом использовании --dangerous-skip-permissions.

Подкоманды CLI

Подкоманда Назначение
Клод Запустить интерактивный REPL
Клод "запрос" Запустить REPL с начальным запросом
claude -p "запрос" Режим печати (неинтерактивный, завершается после выполнения)
кошачий файл \| клод -p "запрос" Передать ограничения как контекст stdin
Клод -c Продолжить последний разговор в этом каталоге
Клод -r "id" Возобновить конкретную сессию по ID или имени
Клод авторизации входа Войти в систему (добавьте --console для биллингового API, --sso для Enterprise)
статус аутентификации Клода Проверить статус входа (возвращает JSON; --text для читаемого текста)
claude mcp add <имя> -- <cmd> Добавить MCP-сервер
Список Клода McP Список настроенных MCP-серверов
claude mcp удалить <имя> Удалить MCP-сервер
Агенты Клауда Список настроенных агентов
Клод доктор Запустить проверки работоспособности установки и автообновления
обновление Клода / обновление Клода Обновить Клод Код до последней версии
Клод Дистанционное Управление Запустить сервер для управления Claude из claude.ai или местного приложения
claude install [target] Установить нативную сборку (стабильную, последнюю или конкретную версию)
claude setup-token Создать долгоживущий токен аутентификации (требуется подписка)
плагин Клода / плагины Клода Управление плагинами Клод Код
авторежим Клода Просмотр конфигуратора классификатора в автоматическом режиме

Режим печати: глубокое погружение

Структурированный вывод JSON

terminal(command="claude -p 'Проанализируй auth.py на наличие проблем безопасности' --output-format json --max-turns 5", workdir="/project", timeout=120)

Возвращает JSON-объект:

{
  "type": "result",
  "subtype": "success",
  "result": "Текст анализа...",
  "session_id": "75e2167f-...",
  "num_turns": 3,
  "total_cost_usd": 0.0787,
  "duration_ms": 10276,
  "stop_reason": "end_turn",
  "terminal_reason": "completed",
  "usage": { "input_tokens": 5, "output_tokens": 603,... },
  "modelUsage": { "claude-sonnet-4-6": { "costUSD": 0.078, "contextWindow": 200000 } }
}

Ключевые поля: session_id для включения, num_turns для подсчета циклов агента, total_cost_usd для идентификации затрат, subtype для определения успеха/ошибки (success, error_max_turns, error_budget).

Потоковый вывод JSON

Для потоковой передачи токенов в первую очередь используйте stream-json с --verbose:

terminal(command="claude -p 'Напиши саммари' --output-format stream-json --verbose --include-partial-messages", timeout=60)

Возвращает JSON-события, разделенные переводами строки. Фильтруйте с помощью jq для живого текста:

claude -p "Объясни X" --output-format stream-json --verbose --include-partial-messages | \
  jq -rj 'select(.type == "stream_event" and.event.delta.type? == "text_delta") |.event.delta.text'

Поток событий включает system/api_retry с полями attempt, max_retries и error (например, rate_limit, billing_error).

Двунаправленная потоковая передача

Для потоковой передачи как входных, так и выходных данных в кратчайшие сроки:

claude -p "задача" --input-format stream-json --output-format stream-json --replay-user-messages

--replay-user-messages повторно выводит сообщения пользователя в стандартный вывод для подтверждения.

Передача через трубу

# Передать файл для анализа
terminal(command="cat src/auth.py | claude -p 'Проверь этот код на наличие багов' --max-turns 1", timeout=60)

# Передать несколько файлов
terminal(command="cat src/*.py | claude -p 'Найди все TODO-комментарии' --max-turns 1", timeout=60)

# Передать вывод команды
terminal(command="git diff HEAD~3 | claude -p 'Суммируй эти изменения' --max-turns 1", timeout=60)

JSON-схема для структурированного извлечения

terminal(command="claude -p 'Перечисли все функции в src/' --output-format json --json-schema '{\"type\":\"object\",\"properties\":{\"functions\":{\"type\":\"array\",\"items\":{\"type\":\"string\"}}},\"required\":[\"functions\"]}' --max-turns 5", workdir="/project", timeout=90)

Извлеките structured_output из JSON-результата. В заключение Клод приходит к выводу о соотношении узоров перед красным.

Продолжение сессии

# Запустить задачу
terminal(command="claude -p 'Начни рефакторинг слоя базы данных' --output-format json --max-turns 10 > /tmp/session.json", workdir="/project", timeout=180)

# Продолжить с ID сессии
terminal(command="claude -p 'Продолжи и добавь пул соединений' --resume $(cat /tmp/session.json | python3 -c 'import json,sys; print(json.load(sys.stdin)[\"session_id\"])') --max-turns 5", workdir="/project", timeout=120)

# Или продолжить последнюю сессию в том же каталоге
terminal(command="claude -p 'Что ты делал в прошлый раз?' --continue --max-turns 1", workdir="/project", timeout=30)

# Форк сессии (новый ID, сохраняет историю)
terminal(command="claude -p 'Попробуй другой подход' --resume <id> --fork-session --max-turns 10", workdir="/project", timeout=120)

Bare Mode для CI/скриптов

terminal(command="claude --bare -p 'Запусти все тесты и сообщи об ошибках' --allowedTools 'Read,Bash' --max-turns 10", workdir="/project", timeout=180)

--bare пропускает хуки, плагины, MCP-обнаружение и загрузку CLAUDE.md. Самый быстрый запуск. Требует ANTHROPIC_API_KEY (пропускает OAuth).

Для выборочной загрузки контекста в пустом режиме: | Что загрузить | Флаг | |---------|------| | Дополнения системного промпта | --append-system-prompt "текст" или --append-system-prompt-file путь | | Настройки | --settings <файл-или-json> | | MCP-серверы | --mcp-config <файл-или-json> | | Пользовательские агенты | --агенты '<json>' |

Запасная модель при перегрузке

terminal(command="claude -p 'задача' --fallback-model haiku --max-turns 5", timeout=90)

Автоматически переключается на указанную модель, когда основная перегружена (только print mode).

Полный справочник флагов CLI

Сессия и окружение

Флаг Эффект
-p, --print Неинтерактивный одноразовый режим (завершается по готовности)
-c, --continue Продолжить последний разговор в текущем каталоге
-r, --resume <id> Возобновить конкретную сессию по ID или имени (интерактивный выбор, если нет ID)
--fork-session При возобновлении создать новый ID сессии вместо повторного использования оригинала
--session-id <uuid> Использовать конкретный UUID для разговора
--no-session-persistence Не сохранять сессию на диск (только print mode)
--add-dir <paths...> Предоставить Claude доступ к дополнительным рабочим каталогам
-w, --worktree [name] Запустить в изолированном git worktree в .claude/worktrees/<name>
--tmux Создать tmux-сессию для worktree (требуется --worktree)
--ide Автоматически подключиться к активной IDE при запуске
--chrome / --no-chrome Включить/отключить интеграцию с браузером Chrome для веб-тестирования
--from-pr [number] Возобновить сессию, связанную с конкретным GitHub PR
--file <specs...> Файловые ресурсы для загрузки при запуске (формат: file_id:relative_path)

Модель и производительность

Флаг Эффект
--model <alias> Выбор модели: sonnet, opus, haiku или полное имя, например claude-sonnet-4-6
--effort <level> Глубина рассуждений: low, medium, high, max, auto
--max-turns <n> Ограничить циклы агента (только print mode; предотвращает бесконечный запуск)
--max-budget-usd <n> Ограничить затраты API в долларах (только print mode)
--fallback-model <model> Автопереключение при перегрузке основной модели (только print mode)
--betas <betas...> Бета-заголовки для включения в API-запросы (только для пользователей API-ключа)

Разрешения и безопасность

Флаг Эффект
--dangerously-skip-permissions Автоодобрение ВСЕХ инструментов (запись файлов, bash, сеть и т.д.)
--allow-dangerously-skip-permissions Включить обход как опцию, не включая его по умолчанию
--permission-mode <mode> default, acceptEdits, plan, auto, dontAsk, bypassPermissions
--allowedTools <tools...> Белый список конкретных инструментов (через запятую или пробел)
--disallowedTools <tools...> Чёрный список конкретных инструментов
--tools <tools...> Переопределить встроенный набор инструментов ("" = нет, "default" = все, или имена инструментов)

Формат вывода и ввода

Флаг Эффект
--output-format <fmt> text (по умолчанию), json (один объект результата), stream-json (с разделением строками)
--input-format <fmt> text (по умолчанию) или stream-json (потоковый ввод в реальном времени)
--json-schema <schema> Принудительный структурированный вывод JSON, соответствующий схеме
--verbose Полный вывод пошагово
--include-partial-messages Включать частичные фрагменты сообщений по мере поступления (stream-json + print)
--replay-user-messages Повторно выводить сообщения пользователя в stdout (stream-json двунаправленный)

Системный промпт и контекст

Флаг Эффект
--append-system-prompt <text> Добавить к системному промпту по умолчанию (сохраняет встроенные возможности)
--append-system-prompt-file <path> Добавить содержимое файла к системному промпту по умолчанию
--system-prompt <text> Заменить весь системный промпт (обычно используйте --append)
--system-prompt-file <path> Заменить системный промпт содержимым файла
--bare Пропустить хуки, плагины, MCP-обнаружение, CLAUDE.md, OAuth (самый быстрый запуск)
--agents '<json>' Динамически определить пользовательские под-агенты в формате JSON
--mcp-config <path> Загрузить MCP-серверы из JSON-файла (можно повторять)
--strict-mcp-config Использовать только MCP-серверы из --mcp-config, игнорируя все остальные конфигурации MCP
--settings <file-or-json> Загрузить дополнительные настройки из JSON-файла или встроенного JSON
--setting-sources <sources> Разделённые запятыми источники для загрузки: user, project, local
--plugin-dir <paths...> Загрузить плагины из каталогов только для этой сессии
--disable-slash-commands Отключить все навыки/slash-команды

Отладка

Флаг Эффект
-d, --debug [filter] Включить отладочное логирование с опциональным фильтром категорий (например, "api,hooks", "!1p,!file")
--debug-file <path> Записывать отладочные логи в файл (неявно включает режим отладки)

Команды агентов

Флаг Эффект
--teammate-mode <mode> Как отображаются команды агентов: auto, in-process или tmux
--brief Включить инструмент SendUserMessage для связи агента с пользователем

Синтаксис имени инструмента для --allowedTools / --disallowedTools

Read                    # Всё чтение файлов
Edit                    # Редактирование файлов (существующих)
Write                   # Создание файлов (новых)
Bash                    # Все команды оболочки
Bash(git *)             # Только git команды
Bash(git commit *)      # Только команды git commit
Bash(npm run lint:*)    # Соответствие шаблону с wildcards
WebSearch               # Возможность веб-поиска
WebFetch                # Загрузка веб-страниц
mcp__<server>__<tool>   # Конкретный инструмент MCP

Настройки и настройки

Иерархия настроек (от высшего к низшему приоритету)

  1. CLI-флаги — переопределяют всё
  2. Локальный проект: .claude/settings.local.json (личные, в gitignore)
  3. Проект: .claude/settings.json (общие, отслеживаются git)
  4. Пользователь: ~/.claude/settings.json (глобальные)

Разрешения в компоненте

{
  "permissions": {
    "allow": ["Bash(npm run lint:*)", "WebSearch", "Read"],
    "ask": ["Write(*.ts)", "Bash(git push*)"],
    "deny": ["Read(.env)", "Bash(rm -rf *)"]
  }
}

Иерархия файлов памяти (CLAUDE.md)

  1. Глобальный: ~/.claude/CLAUDE.md — применяется ко всем проектам.
  2. Проект: ./CLAUDE.md — контекст описания проекта (отслеживается git)
  3. Локальный: .claude/CLAUDE.local.md — личное переопределение проекта (в gitignore)

Используйте префикс # в интерактивном режиме для быстрого добавления в память: # Всегда используются отступы в 2 пробела.

Интерактивная сессия: Слэш-команды

Сессия и контекст

Команда Назначение
/помощь Показать все команды (включая пользователей и MCP-команды)
/компакт [фокус] Сжать контекст для экономии токенов; CLAUDE.md сохраняется при сжатии. Например, /compact focus на логике аутентификации
/очистить Очистить историю разговора для новой стартовой точки
/контекст Визуализировать использование контекста в видео цветной сетки с советами по оптимизации
/стоимость Посмотреть использование токенов с разбивкой по моделям и добавлением в кэш
/резюме Переключиться на другой сеанс или продолжить его
/перемотка назад Откатиться к предыдущей контрольной точке в разговоре или коде
/кстати <вопрос> Задать побочный вопрос без добавления контекста стоимости
/статус Показать версию, подключение и информацию о сессии
/тодос Список отслеживаемых пунктов действий из разговора
/exit или Ctrl+D Завершить сессию

Разработка и проверка

Команда Назначение
/обзор Запросить проверку кода текущих изменений
/обзор безопасности Выполнить анализ текущих изменений
/plan [описание] Войти в режим План с автозапуском для планирования задач
/цикл [интервал] Запланировать повторяющиеся задачи в рамках сессии
/пакет Автоматически создавать рабочие деревья для больших параллельных изменений (5-30 рабочих деревьев)

Конфигурация и инструменты

Команда Назначение
/модель [модель] Переключить модель сессии (используйте стрелку для настройки усилия)
/effort [уровень] Установить уровень напряжения рассуждений: «низкий», «средний», «высокий», «макс» или «авто»
/инит Создать файл CLAUDE.md для памяти проекта
/память Открыть CLAUDE.md для редактирования
/конфигурация Открытая интерактивная конфигурация
/разрешения Посмотреть/обновить инструменты разрешения
/агенты Управление специализированными под-агентами
/мкп Интерактивный интерфейс для управления MCP-серверами
/добавить-каталог Добавить дополнительные рабочие каталоги (полезно для монорепозиториев)
/использование Показать план лимитов и статус ограничения скорости
/голос Включить голосовой режим push-to-talk (20 языков; удерживайте пробел для записи, отпустите для отправки)
/примечания к выпуску Интерактивный выбор примечаний к релизу версии

Пользовательские Slash-команды

Создайте .claude/commands/<имя>.md (общий для проекта) или ~/.claude/commands/<имя>.md (личный):

#.claude/commands/deploy.md
Запуск конвейера развёртывания:
1. Запустить все тесты
2. Собрать Docker-образ
3. Отправить в реестр
4. Обновить окружение $ARGUMENTS (по умолчанию: staging)

Использование: /deploy Production$ARGUMENTS заменяется на ввод пользователя.

Навыки (вызов на естественном языке)

В отличие от слэш-команд (вызываемых вручную), навыки в .claude/skills/ — это уценочные-руководства, которые Клод автоматически вызывает через голосовой язык, когда задача соответствует:

#.claude/skills/database-migration.md
Когда вас просят создать или изменить миграции базы данных:
1. Используйте Alembic для генерации миграций
2. Всегда создавайте функцию отката
3. Тестируйте миграции на локальной копии базы данных

Интерактивная сессия: горячий удар

Основные элементы управления

Клавиша Действие
Ctrl+C Отменить ввод или генерацию
Ctrl+D Завершить сессию
Ctrl+R Обратный поиск по истории команды
Ctrl+B Отправить выполнение обязанностей в фон
Ctrl+V Вставить изображение в разговор
Ctrl+O Режим транскрипта — мыслительный процесс Клод
Ctrl+G или Ctrl+X Ctrl+E Открытие промпт во внешнем редакторе
Esc Esc Откатить разговор или состояние кода / суммировать

Переключение режимов

Клавиша Действие
Shift+Tab Циклическое переключение режимов разрешений (Обычное → Автопринятие → План)
Alt+P Переключить модель
Alt+T Переключить режим мышления
Alt+O Переключить быстрый режим

Многострочный ввод

Клавиша Действие
\ + Ввод Быстрый перевод строки
Shift+Enter Перевод строки (альтернативный)
Ctrl+J Перевод строк (альтернативный)

Префиксы ввода

Префикс Действие
! Выполните bash напрямую, минуя II (например, !npm test). Используйте ! отдельно для переключения режима Shell-режима.
@ Ссылка на файлы/каталоги с автодополнением (например, @./src/api/)
# Быстрое добавление в память CLAUDE.md (например, # Используй отступы в 2 пробела)
/ Слэш-команды

Совет профессионала: «ультрамыслие»

Используйте ключевое слово «ультрадумать» в своем предложении, чтобы максимально приложить усилия к рассуждениям на конкретном этапе. Это включает самый глубокий режим мышления, который зависит от текущих настроек /effort.

Шаблон проверки PR

Быстрая проверка (режим печати)

terminal(command="cd /path/to/repo && git diff main...feature-branch | claude -p 'Проверь этот diff на наличие багов, проблем безопасности и стилевых проблем. Будь тщательным.' --max-turns 1", timeout=60)

Глубокая проверка (Интерактивный + Worktree)

terminal(command="tmux new-session -d -s review -x 140 -y 40")
terminal(command="tmux send-keys -t review 'cd /path/to/repo && claude -w pr-review' Enter")
terminal(command="sleep 5 && tmux send-keys -t review Enter")  # Диалог доверия
terminal(command="sleep 2 && tmux send-keys -t review 'Проверь все изменения по сравнению с main. Ищи баги, проблемы безопасности, race conditions и отсутствие тестов.' Enter")
terminal(command="sleep 30 && tmux capture-pane -t review -p -S -60")

Проверка PR по номеру

terminal(command="claude -p 'Проверь этот PR тщательно' --from-pr 42 --max-turns 10", workdir="/path/to/repo", timeout=120)

Клод Ворктри с tmux

terminal(command="claude -w feature-x --tmux", workdir="/path/to/repo")

Создаётся изолированный git worktree в .claude/worktrees/feature-x и tmux-сессию для него. Использует нативные панели iTerm2, если они доступны; строки --tmux=classic для традиционного tmux.

Параллельные экземпляры Клод

Запускайте несколько независимых задач, Клод одновременно:

# Задача 1: Исправить бэкенд
terminal(command="tmux new-session -d -s task1 -x 140 -y 40 && tmux send-keys -t task1 'cd ~/project && claude -p \"Исправь баг аутентификации в src/auth.py\" --allowedTools \"Read,Edit\" --max-turns 10' Enter")

# Задача 2: Написать тесты
terminal(command="tmux new-session -d -s task2 -x 140 -y 40 && tmux send-keys -t task2 'cd ~/project && claude -p \"Напиши интеграционные тесты для API-эндпоинтов\" --allowedTools \"Read,Write,Bash\" --max-turns 15' Enter")

# Задача 3: Обновить документацию
terminal(command="tmux new-session -d -s task3 -x 140 -y 40 && tmux send-keys -t task3 'cd ~/project && claude -p \"Обнови README.md с новыми API-эндпоинтами\" --allowedTools \"Read,Edit\" --max-turns 5' Enter")

# Мониторинг всех
terminal(command="sleep 30 && for s in task1 task2 task3; do echo '=== '$s' ==='; tmux capture-pane -t $s -p -S -5 2>/dev/null; done")

CLAUDE.md — Файл контекста проекта

Claude Code автоматически загружает CLAUDE.md из начального проекта. Используйте его для сохранения контекста проекта:

# Проект: My API

## Архитектура
- FastAPI бэкенд с SQLAlchemy ORM
- PostgreSQL база данных, Redis кэш
- pytest для тестирования с целью покрытия 90%

## Ключевые команды
- `make test` — запустить полный набор тестов
- `make lint` — ruff + mypy
- `make dev` — запустить dev-сервер на:8000

## Стандарты кода
- Type hints на всех публичных функциях
- Docstrings в стиле Google
- Отступы в 2 пробела для YAML, 4 пробела для Python
- Никаких wildcard-импортов

Будьте конкретны. Вместо «Пиши хороший код» используйте «Используйте отступы в 2 пробела для JS» или «Именуйте тестовые файлы с суффиксом .test.ts». Конкретные инструкции экономят циклы исправлений.

Каталог правил (модульный CLAUDE.md)

Для проектов с несколькими правилами воспользуйтесь каталогом правил вместо одного слова CLAUDE.md: - Правила проекта: .claude/rules/*.md — общие для команд, отслеживаются git - Правила пользователя: ~/.claude/rules/*.md — личные, глобальные

Каждый файл .md в каталоге правил загружается как дополнительный контекст. Это чище, чем запихивать всё в один CLAUDE.md.

Автоматическая память

Клод автоматически сохраняет изученный контекст проекта в ~/.claude/projects/<project>/memory/. - Лимит: 25 КБ или 200 строк в проекте. - Это отдельно от CLAUDE.md — это собственные заметки Клода о проекте, накопленные за сессию.

Пользовательские подагенты

Определите специализированных агентов в .claude/agents/ (проект), ~/.claude/agents/ (личный) через или CLI-флаг --agents (сессия):

Приоритет направления агентов

  1. .claude/agents/ — уровень проекта, общий для команды.
  2. CLI-флаг --agents — специфичный для сессии, интерактивный.
  3. ~/.claude/agents/ — уровень пользователя, личный

Создание агента

#.claude/agents/security-reviewer.md
---
name: security-reviewer
description: Проверка кода с фокусом на безопасность
model: opus
tools: [Read, Bash]
---
Вы старший инженер по безопасности. Проверяйте код на:
- Уязвимости внедрения (SQL, XSS, command injection)
- Ошибки аутентификации/авторизации
- Секреты в коде
- Небезопасную десериализацию

Вызов через: @security-reviewer просмотрите модуль аутентификации

Динамические агенты через CLI

terminal(command="claude --agents '{\"reviewer\": {\"description\": \"Проверяет код\", \"prompt\": \"Вы ревьюер кода, сосредоточенный на производительности\"}}' -p 'Используй @reviewer для проверки auth.py'", timeout=120)

Клод может оркестрировать несколько агентов: «Используй @db-expert для оптимизации запросов, затем @security для аудита изменений».

Хуки — автоматизация по событиям

Настройте в .claude/settings.json (проект) или ~/.claude/settings.json (глобальный):

{
  "hooks": {
    "PostToolUse": [{
      "matcher": "Write(*.py)",
      "hooks": [{"type": "command", "command": "ruff check --fix $CLAUDE_FILE_PATHS"}]
    }],
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{"type": "command", "command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -q 'rm -rf'; then echo 'Заблокировано!' && exit 2; fi"}]
    }],
    "Stop": [{
      "hooks": [{"type": "command", "command": "echo 'Claude завершил ответ' >> /tmp/claude-activity.log"}]
    }]
  }
}

Все 8 типов хуков

Хук Когда реализация Обычное использование
UserPromptSubmit Перед тем как Клод обрабатывает запрос пользователя Проверка ввода, логирование
PreToolUse Перед выполнением инструмента Шлюзы безопасности, блокировка команды команды (выход 2 = блокировка)
PostToolUse После завершения инструмента Автоформатирование кода, запуск линтеров
Уведомление При запросах разрешений или ожидании ввода Настольные уведомления, оповещения
Стоп Когда Клод завершит ответ Логирование завершаем, обновляем условия
СубагентСтоп Когда под-агент завершит Оркестрация агентов
Прекомпакт Перед очисткой контекстной памяти Резервное копирование транскриптов сессии
SessionStart Когда начинается сессия Загрузка контекста разработки (например, git status)

Переменные окружения хуков

Переменная Содержимое
CLAUDE_PROJECT_DIR Путь к современному проекту
CLAUDE_FILE_PATHS Файлы, которые изменяются
CLAUDE_TOOL_INPUT Параметры инструмента в формате JSON

Примеры безопасности хуков

{
  "PreToolUse": [{
    "matcher": "Bash",
    "hooks": [{"type": "command", "command": "if echo \"$CLAUDE_TOOL_INPUT\" | grep -qE 'rm -rf|git push.*--force|:(){:|:& };:'; then echo 'Опасная команда заблокирована!' && exit 2; fi"}]
  }]
}

MCP-интеграция

Добавьте внешние серверы, инструменты для баз данных, API и сервисов:

# GitHub интеграция
terminal(command="claude mcp add -s user github -- npx @modelcontextprotocol/server-github", timeout=30)

# PostgreSQL запросы
terminal(command="claude mcp add -s local postgres -- npx @anthropic-ai/server-postgres --connection-string postgresql://localhost/mydb", timeout=30)

# Puppeteer для веб-тестирования
terminal(command="claude mcp add puppeteer -- npx @anthropic-ai/server-puppeteer", timeout=30)

Области МКП

Флаг область Хранение
-s пользователь Глобальная (все проекты) ~/.claude.json
-s локальный Этот проект (личный) .claude/settings.local.json (gitignored)
-s проект Этот проект (общий для команды) .claude/settings.json (отслеживается git)

MCP в режиме печати/CI

terminal(command="claude --bare -p 'Запрос к базе данных' --mcp-config mcp-servers.json --strict-mcp-config", timeout=60)

--strict-mcp-config исключает все MCP-серверы, кроме указанных в --mcp-config.

Ссылайтесь на ресурсы MCP в чат: @github:issue://123

Ограничения и настройка MCP

Мониторинг интерактивных сессий

Чтение последствий TUI

# Периодический захват для проверки, работает ли Claude или ждёт ввода
terminal(command="tmux capture-pane -t dev -p -S -10")

Ищите эти индикаторы: - внизу = ждёт вашего ввода (Claude закончил или задаёт вопрос) - Строки = Claude активно использует инструменты (чтение, запись, выполнение команд) - ⏵⏵ bypass permissions on = строка состояния, показывающая режим разрешений - ◐ medium · /effort = текущий уровень усилий в строке состояния - ctrl+o to expand = вывод инструмента был обрезан (можно развернуть интерактивно)

Состояние окна контекста

Используйте /context в интерактивном режиме для просмотра цветной сетки использования контекста. Ключевые пороги: - < 70% — Нормальная работа, полная точность - 70-85% — Точность начинает падать, рассмотрите /compact - > 85% — Риск галлюцинаций значительно возрастает, используйте /compact или /clear

Переменные окружения

Переменная Эффект
ANTHROPIC_API_KEY API-ключ для аутентификации (альтернатива OAuth)
CLAUDE_CODE_EFFORT_LEVEL Уровень усилий по умолчанию: low, medium, high, max или auto
MAX_THINKING_TOKENS Ограничение токенов мышления (установите 0 для полного отключения мышления)
MAX_MCP_OUTPUT_TOKENS Ограничение вывода от MCP-серверов (значение по умолчанию варьируется; установите, например, 50000)
CLAUDE_CODE_NO_FLICKER=1 Включить рендеринг альтернативного экрана для устранения мерцания терминала
CLAUDE_CODE_SUBPROCESS_ENV_SCRUB Удалить учётные данные из подпроцессов для безопасности

Советы по стоимости и производительности

  1. Используйте --max-turns в print mode для предотвращения бесконечных циклов. Начинайте с 5-10 для большинства задач.
  2. Используйте --max-budget-usd для ограничения затрат. Примечание: минимум ~$0.05 для создания кэша системного промпта.
  3. Используйте --effort low для простых задач (быстрее, дешевле). high или max для сложных рассуждений.
  4. Используйте --bare для CI/скриптов, чтобы пропустить накладные расходы на обнаружение плагинов/хуков.
  5. Используйте --allowedTools для ограничения только необходимыми инструментами (например, только Read для проверок).
  6. Используйте /compact в интерактивных сессиях, когда контекст становится большим.
  7. Передавайте через pipe вместо того, чтобы заставлять Claude читать файлы, когда вам нужен только анализ известного содержимого.
  8. Используйте --model haiku для простых задач (дешевле) и --model opus для сложных многошаговых задач.
  9. Используйте --fallback-model haiku в print mode для корректной обработки перегрузки модели.
  10. Начинайте новые сессии для отдельных задач — сессии длятся 5 часов; свежий контекст эффективнее.
  11. Используйте --no-session-persistence в CI для предотвращения накопления сохранённых сессий на диске.

Подводные камни и ловушки

  1. Интерактивный режим ТРЕБУЕТ tmux — Claude Code — полноценное TUI-приложение. Использование только pty=true в терминале Hermes работает, но tmux даёт вам capture-pane для мониторинга и send-keys для ввода, что необходимо для оркестрации.
  2. Диалог --dangerously-skip-permissions по умолчанию выбирает "Нет, выйти" — вы должны отправить Down затем Enter для принятия. Print mode (-p) полностью пропускает это.
  3. Минимум --max-budget-usd составляет ~$0.05 — только создание кэша системного промпта стоит столько. Установка меньшего значения сразу вызовет ошибку.
  4. --max-turns работает только в print mode — игнорируется в интерактивных сессиях.
  5. Claude может использовать python вместо python3 — на системах без символической ссылки python bash-команды Claude сначала завершатся ошибкой, но он сам исправится.
  6. Возобновление сессии требует того же каталога--continue находит последнюю сессию для текущего рабочего каталога.
  7. --json-schema требует достаточного --max-turns — Claude должен прочитать файлы перед созданием структурированного вывода, что занимает несколько шагов.
  8. Диалог доверия появляется только один раз на каталог — только первый раз, затем кешируется.
  9. Фоновые tmux-сессии сохраняются — всегда очищайте их с помощью tmux kill-session -t <name> после завершения.
  10. Slash-команды (например, /commit) работают только в интерактивном режиме — в режиме -p описывайте задачу на естественном языке.
  11. --bare пропускает OAuth — требует переменную окружения ANTHROPIC_API_KEY или apiKeyHelper в настройках.
  12. Деградация контекста реальна — качество вывода ИИ заметно ухудшается при использовании окна контекста более 70%. Мониторьте с помощью /context и проактивно используйте /compact.

Правила для агентов Hermes

  1. Предпочитайте print mode (-p) для одиночных задач — чище, без обработки диалогов, структурированный вывод
  2. Используйте tmux для многошаговой интерактивной работы — единственный надёжный способ оркестрации TUI
  3. Всегда устанавливайте workdir — держите Claude сосредоточенным на правильном каталоге проекта
  4. Устанавливайте --max-turns в print mode — предотвращает бесконечные циклы и неконтролируемые затраты
  5. Мониторьте tmux-сессии — используйте tmux capture-pane -t <session> -p -S -50 для проверки прогресса
  6. Ищите приглашение — указывает, что Claude ждёт ввода (закончил или задаёт вопрос)
  7. Очищайте tmux-сессии — завершайте их после окончания работы, чтобы избежать утечки ресурсов
  8. Сообщайте результаты пользователю — после завершения резюмируйте, что сделал Claude и что изменилось
  9. Не убивайте медленные сессии — Claude может выполнять многошаговую работу; вместо этого проверяйте прогресс
  10. Используйте --allowedTools — ограничивайте возможности тем, что действительно нужно для задачи