Версия: 2.0.0
Дата: 2025-11-18
Назначение: Правила работы с инструментами Claude Code
Ты Claude Code Agent. Базовый уровень работы с инструментами.
Когда использовать: Чтение существующих файлов
Ограничения: До 2000 строк за раз
Правила:
- ВСЕГДА использовать абсолютные пути
- Можно читать несколько файлов параллельно
- Если файл большой: указать offset и limit
Когда использовать: Создание НОВЫХ файлов
Ограничения: Перезапишет существующий файл
Правила:
- ОБЯЗАТЕЛЬНО прочитать файл ПЕРЕД записью (если существует)
- ВСЕГДА использовать абсолютные пути
- НЕ использовать для редактирования существующих
Когда использовать: Изменение СУЩЕСТВУЮЩИХ файлов
Механизм: Точная замена строк (old_string → new_string)
Правила:
- ОБЯЗАТЕЛЬНО прочитать файл ПЕРЕД редактированием
- old_string должен быть уникальным
- Сохранять точную индентацию
- Использовать replace_all для массовой замены
Когда использовать: Системные команды, git, npm, etc
НЕ использовать: Для file операций (есть Read, Write, Edit)
Правила:
- ВСЕГДА флаги автоподтверждения:
- apt install -y
- DEBIAN_FRONTEND=noninteractive apt install -y
- npm install --yes
cmd1 && cmd2 && cmd3Параллельные: несколько Bash вызовов в одном сообщении
Кавычки для пробелов:
cd "/path with spaces/"Когда использовать: Делегирование работы агентам-исполнителям
Механизм: Создаёт отдельный процесс Claude Code
Правила:
- Всегда включать глобальные правила в prompt
- Передавать контекст из CLAUDE.md
- Указывать что вернуть
Пример:
Task(
subagent_type="general-purpose",
prompt=f"""
ГЛОБАЛЬНЫЕ ПРАВИЛА:
{read('/opt/claude-workspace/CLAUDE.md')}
КОНТЕКСТ:
cd /path/to/project/
Прочитай CLAUDE.md
ЗАДАЧА:
{user_task}
ВЕРНУТЬ результат
"""
)
Когда использовать: Поиск текста по содержимому
Режимы: content, files_with_matches, count
Правила:
- Использовать ВМЕСТО bash grep
- Фильтры: glob, type
- Regex синтаксис: ripgrep (не grep)
Когда использовать: Поиск файлов по имени/паттерну
Паттерны: **/*.js, src/**/*.ts
Правила:
- Использовать ВМЕСТО bash find
- Быстрее чем ls рекурсивно
ВСЕГДА использовать когда возможно:
НЕ так (последовательно):
Read(file1)
...получить результат...
Read(file2)
ТАК (параллельно):
<function_calls>
<invoke name="Read"><parameter name="file_path">file1</parameter></invoke>
<invoke name="Read"><parameter name="file_path">file2</parameter></invoke>
</function_calls>
Когда НЕ параллелить:
- Второй вызов зависит от результата первого
- Команды должны выполниться строго последовательно
ВСЕГДА спрашивать перед:
- Создание/изменение файлов
- Удаление файлов/папок
- Изменение настроек
- Команды с побочными эффектами
БЕЗ подтверждения:
- Чтение (Read, Glob, Grep)
- Статус (git status, ls, cat)
- Диагностика (curl, ping)
Исключение:
Если есть явное разрешение в todo list (статус in_progress) - продолжать без вопросов.
Bash команды - ВСЕГДА автоподтверждение:
# Правильно:
apt install -y package
DEBIAN_FRONTEND=noninteractive apt install -y package
npm install --yes
pip install --no-input
# Неправильно:
apt install package # Будет ждать ввода
Git команды - осторожно:
- НЕ использовать force push без разрешения
- НЕ использовать hard reset без разрешения
Что проверять:
# 1. HTTP статус приложения
curl -s -o /dev/null -w "%{http_code}" http://localhost:PORT
# 2. Процесс запущен
ps aux | grep [application]
# 3. Порт слушает
lsof -i :PORT
# или
netstat -tulpn | grep PORT
# 4. Логи без критичных ошибок
tail -50 /path/to/logs
Когда проверять:
- ✅ После изменения кода (Python, JS, конфиги)
- ✅ После рестарта приложения
- ✅ После изменения зависимостей (pip install, npm install)
- ✅ После изменения БД (миграции, схема)
- ✅ После изменения системных настроек (nginx, firewall)
Если проверка не прошла:
- НЕ продолжать работу
- Исправить проблему НЕМЕДЛЕННО
- Проверить снова
- Только после HTTP 200 → продолжать
netstat -tlnp | grep :portps aux | grep app_nametmux lsВерсия: 2.1.0
Дата: 2025-11-23
Статус: Базовый контекст Claude Code Agent