Как не дать проекту деградировать при работе с Claude Code: правила, хуки и автоматизация

Как не дать проекту деградировать при работе с Claude Code: правила, хуки и автоматизация

Работа с LLM-агентами, такими как Claude Code, позволяет ускорить разработку, но при этом несёт риски деградации кодовой базы. В соло-проекте с реальными пользователями — React + TypeScript, Express/Node.js, PostgreSQL и DeepSeek в роли LLM — автор столкнулся с типичными проблемами: потеря контекста, дублирование решений, пропущенные деплои и несогласованный стиль кода. Чтобы стабилизировать процесс, была создана система, основанная на структурированной автоматизации, памяти и жёстких правилах.

Почему проекты с LLM-агентами деградируют

Агенты не обладают долгосрочной памятью и каждый раз начинают с нуля. Это приводит к трём основным векторам деградации:

  • Контекстуальная амнезия — агент не помнит, какие решения уже были приняты и почему, и может предлагать откат к отвергнутым вариантам.
  • Отсутствие единого стиля — без чётких правил каждая сессия вносит свои нюансы в код, что со временем превращает базу в лоскутное одеяло.
  • Процессные пробелы — агент может написать рабочий код, но забыть запустить аудит, перевести текст или добавить трекинг. Эти пропуски накапливаются и ведут к потерям времени.

Важно: всё описанное относится к Claude Code (CLI-агент от Anthropic). Некоторые идеи применимы к другим агентам, но механика — CLAUDE.md, хуки, settings.json — специфична именно для него.

CLAUDE.md: навигационный слой, а не энциклопедия

CLAUDE.md — это файл, который агент читает в начале каждой сессии. Главная ошибка — превращать его в свалку. После ~200 строк значимость инструкций резко падает. Вместо этого файл должен быть кратким и содержать только ключевые правила и указатели.

Если описание занимает больше трёх строк — оно не для CLAUDE.md. Лучше разнести информацию по папкам в .claude/. Самое важное правило в файле: после выполнения задачи анализировать процесс и предлагать улучшения. Это правило стало основой всей системы.

Memory-файлы: имитация долгосрочной памяти

Поскольку агент не помнит прошлые сессии, память нужно выносить в файлы. Три ключевых файла:

  • integration-contracts.md — контракты API: методы, пути, параметры, форматы ответов. Без этого агент продолжает использовать устаревшие эндпоинты.
  • architecture-decisions.md — решения, которые были отвергнуты и почему. Это предотвращает возврат к уже обсуждённым и отброшенным вариантам.
  • tasks-completed.md — архив завершённых задач с датами и кратким описанием. Помогает избежать повторного внедрения откатанных улучшений.

Memory-файлы работают только при автоматическом обновлении. В CLAUDE.md есть правило: «После каждой задачи (без исключений): обновить todo.md и соответствующие файлы памяти».

Rules и Skills: разделение знаний и действий

Разделение между Rules и Skills помогает агенту эффективнее использовать информацию.

  • Rules — пассивные знания: структура проекта, гайдлайны стиля, правила общения. Хранятся в rules/.
  • Skills — активные процедуры с чётким вводом и выводом. Например, проверка контрактов или генерация карты проекта. Хранятся в skills/.

Простой тест: если можно сказать «запусти X и скажи, что получилось» — это Skill. Если это справочная информация — это Rule.

Templates: шаблоны вместо изобретения

Агент не должен придумывать структуру для типовых операций. Вместо этого используются шаблоны:

  • new-api-endpoint.md — готовый Express-роут с авторизацией, валидацией, обработкой ошибок и логированием.
  • new-db-table.md — шаблон миграции с именованием, .down.sql и нумерацией.

Каждый раз, когда агент делает что-то не так — это сигнал: нужен шаблон.

Хуки: автоматизация процессов

Хуки — скрипты, запускаемые до и после действий агента. Они надёжнее правил в промпте, потому что их нельзя проигнорировать.

  • hook-pre-deploy.sh — блокирует деплой, если не было git push. Предотвращает расхождение между локальным кодом и сервером.
  • hook-post-commit.sh — напоминает обновить memory-файлы и проверить, нужен ли деплой.
  • hook-stop-reminder.sh — при завершении сессии выводит чеклист: обновлены ли документы, запущен ли аудит, сделан ли пуш.

Ключевое преимущество хуков: их нельзя «забыть». Правило в промпте агент может проигнорировать. Хук — нет.

Агентная оркестрация: параллелизм для ускорения

Для сложных задач используется многоагентная архитектура. Задача разбивается, и части выполняются параллельно:

  • orchestrator-agent.md — декомпозирует задачу и координирует других.
  • backend-agent.md — работает с Express, БД, LLM.
  • frontend-agent.md — отвечает за React, i18n, дизайн.
  • shared-agents.md — ревью, тесты, аудит безопасности.

Порядок выполнения:

  1. Сначала миграция БД — нельзя писать код для несуществующей таблицы.
  2. Потом API — фронтенд должен знать контракт.
  3. Ревью и тесты — параллельно, не зависят друг от друга.

Параллелизм сокращает время выполнения в 2–3 раза и экономит токены.

Дизайн-аудит: нулевая толерантность к визуальным ошибкам

Без контроля UI быстро деградирует. Решение — автоматический аудит стилей:

  • Поиск inline-градиентов.
  • Запрет хардкодных цветов вне CSS-переменных.
  • Блокировка запрещённых Tailwind-классов.

Скрипт style-audit.mjs запускается перед коммитом. Если найдены ошибки — коммит не проходит. Это жёсткое правило, но оно спасает от визуального хаоса.

Что ещё можно улучшить

Система не идеальна. Есть открытые проблемы:

  • Автоматическая синхронизация языков — английская локализация должна обновляться автоматически при появлении нового текста на русском.
  • Проверка работоспособности после деплоя — сейчас проверяется только запуск процесса, но не функциональность.
  • Список запрещённых паттернов — нет явного запрета на добавление зависимостей без обсуждения, изменение схемы БД без миграции или использование any в TypeScript.
  • Архивация memory-файловtasks-completed.md растёт бесконечно. Нужно переносить старые задачи в архив, чтобы не засорять контекст.

Итог: принципы стабильной работы с Claude Code

Система строится на шести принципах:

  • Не сваливай всё в CLAUDE.md — он должен быть структурированным и кратким.
  • Не полагайся на память агента — важное знание должно быть в файлах.
  • Кодируй правила в инфраструктуру — хуки надёжнее промптов.
  • Нулевая толерантность к стилевым ошибкам — не пропускай нарушения дизайна.
  • Декомпозируй и параллели — агентная оркестрация окупается на задачах от 10+ минут.
  • Используй шаблоны — типовые операции не должны требовать творчества.

Эти принципы не устраняют все боли, но значительно снижают потребление токенов, повышают прозрачность и замедляют деградацию. Claude Code — мощный инструмент, но без системы вокруг него проект будет деградировать быстрее, чем с обычной командой.

Читать оригинал