5 уровней мастерства Claude Code — от сырых промптов до 198 параллельных агентов
5 уровней мастерства Claude Code — от сырых промптов до 198 параллельных агентов
Один разработчик на Reddit описал свой путь через пять фаз использования Claude Code. На каждой фазе казалось: «вот теперь я разобрался». А потом что-то ломалось. Не модель тупела — рос проект.
Этот фреймворк совпал с тем, что описывают Boris Cherny (создатель Claude Code), Addy Osmani (в докладе на O'Reilly CodeCon) и десятки постов на Reddit. Разница только в нумерации уровней — суть одна.
TL;DR: Пять уровней: сырые промпты → CLAUDE.md → skills → hooks → оркестрация агентов. На каждом есть потолок, и вы не перешагнёте на следующий, пока не упрётесь в него. Перескакивать нельзя — инфраструктура нижнего уровня держит верхний.
Уровень 1: Сырые промпты
Открываешь claude, описываешь задачу — Claude пишет код. Для мелких задач это работает на удивление хорошо: «напиши функцию валидации email», «добавь тест для auth модуля», «почини этот баг» — и через минуту готово.
Потолок: проект перерастает одну беседу. Claude забывает ваши конвенции, подставляет npm вместо bun, пишет классы там, где у вас функциональный стиль. Вы тратите больше времени на коррекцию, чем на работу.
Как понять, что вы здесь: каждую сессию объясняете одно и то же. «У нас TypeScript, не JavaScript». «Мы используем Vitest, не Jest». «Тесты лежат рядом с модулями».
Уровень 2: CLAUDE.md + Rules
Создаёшь файл CLAUDE.md в корне проекта — Claude читает его при каждом старте сессии. Сюда идёт то, что агент не выведет из кода сам: стек, конвенции, запрещённые паттерны, команды для сборки и тестов.
# CLAUDE.md ## Stack TypeScript, Bun, Hono, Drizzle ORM, PostgreSQL ## Commands - Build: `bun run build` - Test: `bun test` - Lint: `bun run lint` ## Rules - NEVER use npm, only bun - Tests live next to source files: `foo.ts` → `foo.test.ts` - No classes — functional style only - All DB access through `db/repos/` — no raw SQL in routes
Ключевой лимит: Boris Cherny говорит, что LLM надёжно следует ~150-200 инструкциям, а системный промпт Claude Code уже съедает ~50. Остаётся место на 100-150 ваших правил. Практическая рекомендация — до 60 строк в файле, 200 — жёсткий потолок. Больше — и Claude начинает выборочно игнорировать правила, особенно те, что в конце файла.
Если правил много — выносите в .claude/rules/ и подгружайте по запросу.
Потолок: агент следует правилам, но импровизирует на процессах. Вы каждый раз объясняете как делать задачу, а не что делать.
Уровень 3: Skills
Skills — это markdown-файлы с пошаговыми процедурами для конкретных типов задач. Живут в .claude/skills/ или ~/.claude/skills/. Claude сканирует все установленные skills при старте, тратя ~100 токенов на каждый (только имя и описание). Полные инструкции загружаются только когда skill релевантен.
# .claude/skills/deploy/SKILL.md --- name: deploy description: Deploy to production via Railway --- ## Steps 1. Run `bun test` — abort if any fail 2. Run `bun run build` — check for errors 3. Commit with message `deploy: <summary>` 4. Run `railway up --detach` 5. Wait 30 seconds, then `curl https://api.myapp.com/health` 6. If health check fails — `railway rollback`
Вызов: /deploy — и агент идёт по чеклисту, а не фантазирует.
Важный нюанс: один инженер протестировал 47 skills и обнаружил, что 40 из них ухудшают качество — добавляют токены, задержки и сужают то, что Claude генерирует. Будьте избирательны. Самые полезные: frontend-design (277K установок — потому что без него каждый лендинг выходит с Inter, фиолетовым градиентом и одинаковой сеткой), simplify (чистит готовый код от мусора), superpowers (заставляет Claude планировать перед написанием).
Лучший skill — тот, что вы напишете сами. Если объясняете Claude один и тот же workflow второй раз — это сигнал к созданию skill.
Потолок: агент следует процедурам, но никто не проверяет его работу автоматически. Вы всё ещё — единственный quality gate.
Уровень 4: Hooks
Hooks — shell-команды, которые выполняются в определённые моменты жизненного цикла Claude Code. Это не «попроси агента сделать X» — это «гарантируй, что X произойдёт каждый раз».
PostToolUse — после каждого редактирования файла автоматически прогоняет prettier:
{ "hooks": { "PostToolUse": [ { "matcher": "Edit|Write", "hooks": [ { "type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write" } ] } ] } }
PreToolUse — блокирует редактирование защищённых файлов. Exit code 2 = блокировка:
#!/bin/bash
FILE_PATH=$(cat | jq -r '.tool_input.file_path // empty')
PROTECTED=(".env" "package-lock.json" ".git/")
for pattern in "${PROTECTED[@]}"; do
if [[ "$FILE_PATH" == *"$pattern"* ]]; then
echo "Blocked: $FILE_PATH matches '$pattern'" >&2
exit 2
fi
done
exit 0
Stop — проверяет, что все задачи реально выполнены, а не «объявлены выполненными»:
{ "hooks": { "Stop": [ { "hooks": [ { "type": "agent", "prompt": "Verify that all unit tests pass. Run the test suite and check the results.", "timeout": 120 } ] } ] } }
Anthropic поддерживает 24 типа hook-событий: от SessionStart и PreCompact до WorktreeCreate и FileChanged. Три типа исполнения: command (shell), prompt (одноходовый LLM-запрос), agent (субагент с доступом к инструментам).
Потолок: вы всё ещё один агент, одна сессия. Проект перерос то, что помещается в одно контекстное окно.
Уровень 5: Оркестрация
Параллельные агенты в изолированных git worktrees. Persistent файлы, которые несут стейт между сессиями. Координация, которая не даёт агентам редактировать одни и те же файлы.
Автор Reddit-поста запустил 198 агентов через 32 fleet-сессии с 3.1% конфликтов при мёрджах. Один разработчик — на масштабе целой команды.
Claude Code поддерживает это нативно через Agent Teams (экспериментально):
{ "env": { "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1" } }
Prompt:
Create an agent team to review PR #142. Spawn three reviewers: - One focused on security implications - One checking performance impact - One validating test coverage Have them each review and report findings.
Lead-агент создаёт команду, раздаёт задачи через shared task list, агенты общаются между собой через mailbox, и каждый работает в своём контекстном окне. Split panes через tmux показывают всех одновременно.
Когда оркестрация оправдана:
- Code review — 3 агента по разным аспектам (безопасность, перформанс, тесты)
- Дебаг — 5 агентов тестируют конкурирующие гипотезы и спорят друг с другом
- Новые модули — каждый агент владеет своими файлами
Когда НЕ оправдана: последовательные задачи, работа с одним файлом, задачи с множеством зависимостей. Токены масштабируются линейно с числом агентов — 5 агентов = 5x расход.
«Agent Dumb Zone» — главная ловушка всех уровней
На любом уровне есть невидимый враг: деградация при заполненном контексте. Когда usage превышает 60-70%, Claude начинает игнорировать инструкции и допускать базовые ошибки. Calvin French-Owen (сооснователь Segment, ex-Codex) называет это «LLM dumb zone» и считает management контекста главным фактором 5x продуктивности.
Что делать:
/compactна 50% — не ждите auto-compaction на 90%, когда уже поздно/clearмежду несвязанными задачами — свежий контекст = свежая голова/rewind(Esc Esc) — откат к предыдущему чекпоинту вместо коррекции в том же контексте (ошибочная логика остаётся в контексте и тянет агента назад)- Subagents для тяжёлых задач — они работают в отдельном контекстном окне и возвращают только результат
Подводные камни
Перескакивание уровней. Автор Reddit-поста пробовал прыгнуть на Level 5 без solid hooks — «it was a mess». Инфраструктура каждого уровня — фундамент следующего. Hooks без хорошего CLAUDE.md бессмысленны — они не знают, что проверять.
Skills bloat. 40 из 47 протестированных skills ухудшили результат — потому что добавляют инструкции в контекст, а контекст — конечный ресурс. Если skill не вызывается через / явно, он активируется вероятностным pattern matching — и может сработать не там, где нужно.
Agent Teams — drain по токенам. Каждый teammate — отдельный экземпляр Claude с полным контекстным окном. 3 агента при ревью PR — это 3x стоимость. Для рутинных задач одна сессия эффективнее. Рекомендация Anthropic: 3-5 агентов, 5-6 задач на агента.
Hook loops. Stop hook, который всегда возвращает «не всё сделано», создаёт бесконечный цикл. Нужно парсить stop_hook_active из JSON и выходить с кодом 0, если hook уже отработал на этом ходу.
Альтернативы: как устроена прогрессия в других инструментах
-
Cursor — четыре ступени: Tab completion → Cmd+K inline → Agent mode (мульти-файл) → Background Agents (фоновые задачи). Нет аналога hooks и skills — всё через
.cursorrulesи промпты. Background Agents пока в бете, параллельная работа ограничена. -
Codex CLI — три ступени: одиночный промпт → субагенты с TOML-конфигами → CSV batch режим для массовой обработки. Субагенты появились в марте 2026, но без оркестрации уровня Agent Teams.
-
Addy Osmani описывает 8 уровней: от ручного кодинга (L1) до программной оркестрации (L8), где вы пишете свой orchestration layer и маршрутизируете агентов кодом. Три тира: In-Process (subagents) → Local Orchestrators (Conductor, Vibe Kanban) → Cloud Async Agents (Claude Code Web, Codex Web).
Claude Code — единственный инструмент, где все пять уровней работают нативно: CLAUDE.md, skills, hooks, subagents и Agent Teams живут в одной экосистеме без сторонних обёрток.
Вердикт
Реальный скачок продуктивности дают уровни 2-4: CLAUDE.md + skills + hooks. Это покрывает 90% задач среднего проекта. Уровень 5 (оркестрация) — для тех, кому тесно в одном контекстном окне, и кто готов платить 3-5x за параллелизм. Не начинайте с оркестрации — начинайте с хорошего CLAUDE.md на 60 строк и одного skill для самого частого workflow.
Как попробовать
-
Создайте
CLAUDE.mdв корне проекта — стек, команды сборки/тестов, 5-10 главных правил. Держите под 60 строк. -
Напишите первый skill — возьмите workflow, который объясняете Claude чаще всего, и вынесите в
.claude/skills/<name>/SKILL.md. -
Добавьте один hook — начните с
PostToolUse+ prettier/eslint для автоформатирования после каждого редактирования. -
Мониторьте контекст —
/contextдля проверки,/compactна 50%,/clearмежду задачами. -
Попробуйте Agent Teams — включите
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1в settings.json, запустите ревью PR с 3 агентами и посмотрите, как они спорят друг с другом.