Продвинутые приёмы: CLAUDE.md для контекста проекта, хуки для автопроверок, multi-file рефакторинг.
CLAUDE.md — это файл в корне проекта, который Claude Code читает при запуске. Здесь описывается структура проекта, команды сборки, код-стайл, правила и соглашения команды. Claude использует этот контекст во всех ответах.
# CLAUDE.md — файл контекста проекта # Claude Code читает этот файл при запуске в директории проекта ## СТРУКТУРА ПРОЕКТА src/ — исходный код (FastAPI + SQLAlchemy) tests/ — pytest тесты (фикстуры в conftest.py) migrations/ — Alembic миграции docs/ — документация (MkDocs) scripts/ — утилиты (seed_db.py, export.py) ## КОМАНДЫ make test — pytest -x --cov=src make lint — ruff check . && mypy src make dev — uvicorn src.main:app --reload docker compose up — продакшен-окружение ## КОД-СТАЙЛ - Python 3.12, строгая типизация (mypy strict) - Ruff для форматирования (line length 100) - Все публичные функции с docstring (Google style) - Исключения через кастомные классы в src/exceptions.py ## ПРАВИЛА - ВСЕГДА писать тесты для нового кода - НЕ ИСПОЛЬЗОВАТЬ print() — использовать logging - НЕ коммитить .env, секреты в переменных окружения
Хуки в .claude/hooks/ позволяют запускать проверки до и после каждого вызова инструментов. Например, pre-tool-use может проверить код линтером перед записью файла, а post-tool-use — запустить тесты.
# .claude/hooks/pre-tool-use.sh # Запускается перед вызовом любого инструмента #!/bin/bash # Если Claude пишет Python-файл — проверяем линтером if [[ "$CLAUDE_TOOL" == "write" && "$CLAUDE_PATH" == *.py ]]; then echo "🔍 Pre-check: linting $CLAUDE_PATH..." ruff check "$CLAUDE_PATH" 2>/dev/null && echo "✅ OK" fi # .claude/hooks/post-tool-use.sh # Запускается после вызова инструмента #!/bin/bash if [[ "$CLAUDE_TOOL" == "write" && "$CLAUDE_PATH" == *.py ]]; then # Автоформатирование после записи ruff format "$CLAUDE_PATH" echo "✨ Auto-formatted $CLAUDE_PATH" fi
Claude Code может рефакторить десятки файлов за один запрос. Используйте CLAUDE.md для контекста и просите Claude проверить тесты после изменений.
# Пример multi-file рефакторинга — запрос к Claude Code: """ Переименуй класс UserModel в User во всех файлах проекта. После этого: 1. Обнови все импорты (from models.user import UserModel → User) 2. Поправь type hints (UserModel → User) 3. Обнови фикстуры в conftest.py 4. Запусти make test и убедись что все тесты проходят 5. Если есть падения — исправь их """ # Claude Code выполнит: # 1. search_files(pattern="UserModel") — найдёт все вхождения # 2. patch() в каждом файле — заменит UserModel → User # 3. terminal("make test") — запустит тесты # 4. При падении — проанализирует ошибки и исправит # Стратегия для больших рефакторингов: # 1. Начать с одного файла → проверить # 2. Расширить на модуль → запустить тесты модуля # 3. Закончить весь проект → полный прогон тестов
Создайте свои slash-команды в .claude/commands/. Каждая команда — это Markdown-файл с инструкцией. Claude Code будет выполнять её при вводе /command.
# .claude/commands/review.md Проведи код-ревью staged изменений: 1. Выполни git diff --cached 2. Проверь: безопасность, стиль, производительность, логика 3. Для каждой проблемы предложи конкретное исправление 4. Выведи результат в формате: файл:строка → проблема → fix # .claude/commands/deploy.md Выполни деплой проекта: 1. Запусти make test — убедись что все тесты проходят 2. Запусти make lint — проверь код-стайл 3. Выполни docker compose build && docker compose up -d 4. Проверь healthcheck: curl http://localhost:8000/health 5. Выведи статус: ✅ деплой успешен или ❌ ошибка + логи # .claude/commands/fix.md Проанализируй последнюю ошибку и исправь её: 1. Найди последнюю ошибку в логах или выводе тестов 2. Определи первопричину 3. Предложи и примени исправление 4. Запусти тесты для проверки
Интегрируйте Claude Code в GitHub Actions. Автоматическое исправление багов, генерация документации и проверка PR в CI-пайплайне.
# .github/workflows/claude-ci.yml name: Claude Code CI on: pull_request: types: [opened, synchronize] jobs: claude-fix: runs-on: ubuntu-latest env: ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} steps: - uses: actions/checkout@v4 - name: Install Claude Code run: npm install -g @anthropic-ai/claude-code - name: Auto-fix bugs run: | claude "Проанализируй изменения в PR и исправь все найденные баги. Запусти тесты для проверки." # Важно: Claude Code в CI требует ANTHROPIC_API_KEY # и запускается в неинтерактивном режиме с флагом -p (print)
Используйте продвинутые техники промпт-инжиниринга: chain-of-thought, tree-of-thought и self-consistency. Они повышают качество ответов Claude для сложных задач.
# 1. Chain-of-Thought (пошаговое рассуждение) """Рефакторинг модуля аутентификации. Думай по шагам: 1. Проанализируй текущую архитектуру 2. Выдели проблемные места 3. Предложи план рефакторинга 4. Реализуй изменения по одному файлу 5. После каждого файла — проверяй тесты""" # 2. Tree-of-Thought (исследование альтернатив) """Нам нужна система кэширования. Рассмотри 3 варианта: A. Redis — плюсы/минусы для нашего случая B. Memcached — плюсы/минусы C. In-memory LRU cache — плюсы/минусы Выбери оптимальный и реализуй.""" # 3. Self-Consistency (несколько проходов) """Напиши SQL-запрос для отчёта по продажам. Проверь его 3 раза с разных точек зрения: 1. Корректность JOIN-ов 2. Производительность (индексы, EXPLAIN) 3. Граничные случаи (пустые данные, NULL) Выдай финальную версию.""" # 4. Role-based prompting """Действуй как senior backend разработчик с 15-летним опытом. Твоя задача — спроектировать API для микросервиса платежей. Учти: идемпотентность, retry logic, транзакционность, мониторинг."""