Claude Code в production: 6 месяцев, 9 проектов, лессоны

Веб Штурм
  • Claude Code
  • AI
  • DevOps
  • MCP
  • subagents

Claude Code за полгода прошёл путь от удобного CLI-помощника до основной среды разработки на 9 наших проектах. Не «кодогенератор» и не «pair-programmer», а оркестратор знаний и операций — со своей системой расширений, памятью и долгоживущими рабочими процессами.

Контекст

С ноября 2024 по октябрь 2025 Anthropic выпустил пять точек расширения подряд: MCP (ноябрь 2024), Subagents (июль 2025), Hooks (сентябрь 2025), Plugins и Skills (октябрь 2025). Каждый релиз раз в два месяца. К весне 2026 в открытом маркетплейсе уже 425 plugins, 2 810 skills и 200 agents [ccpi/tonsofskills.com].

В нашем боевом контуре — Круизный флот (бронирование речных круизов), Прогулочный флот (прогулки на теплоходах), ozsm.ru (B2B вибропогружатели), webshturm.ru (этот сайт), Hermes Stack (9 docker-сервисов на 185.179.188.145), Paperclip (knowledge-management), Gemma Oracle (локальный fine-tune). Среднее число коммитов в день — 15-30, среднее число subagent-dispatch’ей за сессию — 5-15.

MCP-серверы как источник правды

Главная проблема обычного LLM — у него только то, что помещается в окно. MCP это исправляет: Claude получает прямой доступ к внешним системам, без копирования данных в промпт.

У нас подключено три MCP:

Принципы:

Subagent-driven development

Один контекст плохо справляется с большим планом — копит ошибки, теряет фокус, поедает токены. Решение — каждый task получает свой fresh subagent с минимально необходимым контекстом.

Паттерн на webshturm.ru (этот сайт): план на 55 tasks разбит на семь фаз, каждая фаза — один subagent. Контроллер видит только итоги (DONE/CONCERNS, commit SHA, file count), а внутренние tool-calls остаются у subagent’а. Контекст контроллера экономится в 5-10 раз.

# Главный сеанс остаётся «дирижёром», работа делается в форках
Task("Phase 5a: Forms + API + hybrid mode") # → 5 commits, 9 vitest pass
Task("Phase 5b: Calculators + Pagefind + Я.Метрика") # → 4 commits, 16 vitest pass
Task("Phase 6a: Deploy artifacts (Caddyfile + workflow + DEPLOY.md)")

Цена паттерна — больше invocation’ов; зато провал одного task’а не загрязняет остальные.

Hooks для безопасности и автоматики

Hooks — это скрипты, привязанные к lifecycle-событиям Claude Code. Используем их в трёх ролях:

  1. Auto-lint после правки кода: PostToolUse hook на Edit запускает pnpm vitest run и блокирует следующий шаг, если тесты упали.
  2. Блокировка опасных команд: PreToolUse hook отлавливает docker system prune, git reset --hard origin/master, rm -rf /opt/webshturm-site/dist и требует явного подтверждения.
  3. Уведомления о завершении: Stop hook отправляет в Telegram бота @hermesdm64bot короткое уведомление со ссылкой на коммит и pipeline status.

Hooks не вмешиваются в код — они охраняют процесс.

Skills и Plugins как библиотека макросов

Skills — markdown-файлы, обучающие Claude повторяемому workflow. Один SKILL.md = одна slash-команда /штурм, /сохранись, /разбитьплан. Пишешь раз — используешь годами.

В нашем глобальном ~/.claude/skills/ лежат:

Plugins — следующий уровень: упакованные комплекты skills, hooks, MCP-конфигов. У нас стоит официальный superpowers: plugin (TDD, code-review, executing-plans), cybersecurity-skills (754 готовых рецепта по DFIR, malware analysis, pentesting) и собственный commit-commands:.

Что мы из этого вынесли

  1. Расширения важнее самой модели. Apples-to-apples сравнение «какая модель умнее» имеет смысл; но MCP+Skills+Hooks дают мультипликатор, который сильнее любой межмодельной разницы.
  2. Fresh context побеждает. Большой план в одном контексте — путь к деградации. Subagent-driven-development стоит дороже по токенам, но дешевле по итоговому браку.
  3. Автоматика возможна только через Hooks. Память и preferences не запускают команды — это делает только runtime-хук, привязанный к lifecycle-событию.

Ссылки