У вас сильная инженерная команда. Часть людей уже пишет код через Claude Code и не представляет работу без него. Другие только присматриваются. Третьи предпочитают Cursor или Copilot. Кто-то работает с фронтендом, кто-то с бэкендом, кто-то пишет автотесты, а кто-то трогает всё сразу. Проект крутится на Docker Compose, вы практикуете trunk-based development, управляете функциональностью через feature flags, а инженеры плотно работают с продактами.
Как внедрить AI-ассистента так, чтобы он работал для всех — и для новичков, и для мастеров, и для скептиков?
Диагностика: почему «просто дать доступ» не работает
Типичный сценарий: компания покупает лицензии, присылает ссылку в Slack и ждёт чуда. Через месяц 20% команды пользуется активно, остальные открыли один раз и забыли. CTO видит умеренный прирост вместо ожидаемого трансформационного эффекта.
И это не единичные наблюдения. Исследование Стэнфорда (Yegor Denisov-Blanch, 136 команд в 27 компаниях, ~100k разработчиков) показало:
- Максимальный прирост продуктивности — на простых задачах в greenfield-проектах (новых, начатых с нуля).
- Для зрелых проектов ускорение падает до 0-40%.
- В зрелых проектах есть заметная вероятность отрицательного эффекта — AI может замедлить работу.
Выборка достаточно репрезентативна, чтобы экстраполировать на большую часть индустрии. А значит, для зрелого проекта вопрос не «дать ли людям AI», а «как подготовить кодовую базу и процессы, чтобы AI не стал обузой».
Причины предсказуемы:
- Разный уровень навыков. Кто-то уже настроил субагентов и hooks, а кто-то не знает, как запустить Claude Code в терминале.
- Нет общего контекста. Каждый инженер описывает проект агенту с нуля, теряя время на одни и те же объяснения.
- Нет guardrails. Без тестов и линтеров агент генерирует код, который «выглядит правильно», но ломает соседние модули.
- Ускорили кодинг, а не доставку. Код пишется быстрее, но ревью стоит днями, CI красный, а спеки обсуждаются на часовых митингах.
Модель зрелости: от Locked до Artisan
Block описывает четыре уровня AI-зрелости команды. Это полезная рамка, чтобы понять, где вы сейчас и куда двигаться:
| Уровень | Признаки | Действия |
|---|---|---|
| Locked | AI не используется или запрещён. Нет контекстных файлов, нет процессов. | Создать CLAUDE.md, дать свободу пробовать, запустить Champions Program. |
| Novice | Есть CLAUDE.md. Инженеры используют AI для генерации кода, но ad-hoc. | Стандартизировать skills, настроить hooks, автоматизировать типовые задачи. |
| Adept | Skills переиспользуются между командами. AI code review на PR. Headless-агенты чинят CI. | Мерить AI contribution в PR, автоматизировать больше этапов pipeline. |
| Artisan | AI встроен в CI/CD. Рецепты и workflows публикуются как shared-библиотеки. Данные о вкладе AI прозрачны. | Оптимизировать по закону Амдала — искать и устранять следующее бутылочное горлышко. |
Вам не нужно тащить всю команду на уровень Artisan одновременно. Достаточно, чтобы базовый пайплайн (CLAUDE.md + guardrails) работал для всех, а продвинутые инструменты были доступны тем, кто готов.
Базовый пайплайн: CLAUDE.md и context files
Первое и самое важное — общий контекст проекта, который агент получает автоматически. Это устраняет главную проблему: каждый инженер перестаёт объяснять AI одно и то же.
CLAUDE.md — инструкции для агента
Файл в корне репозитория, который Claude Code читает автоматически при старте. Он описывает:
- Архитектуру проекта и структуру директорий
- Команды для сборки, тестирования и линтинга
- Code style conventions и naming patterns
- Что можно и нельзя делать (guardrails)
- Ссылки на расширенный контекст (.claude/context.md)
# CLAUDE.md (минимальный пример)
## Стек
Ruby 3.1, Rails 7.0, PostgreSQL 14
Docker Compose для локального окружения
## Команды
bundle exec rspec # Тесты
bundle exec rubocop -A # Линтер с автофиксом
docker compose up # Поднять окружение
## Архитектура
- Контроллеры: app/controllers/web/ (модуль Web::)
- Trunk-based development: все коммиты в main
- Feature flags через Flipper
## Правила
- Не пушить напрямую в main без PR
- Все новые endpoints покрыты тестами
- Миграции обратимы (reversible)
HOWTOAI.md — гайд для людей
Отдельный файл, адресованный инженерам, а не агенту. Описывает как пользоваться AI-инструментами в репозитории:
- Как запустить Claude Code и первые шаги
- Какие skills доступны и когда их использовать
- Примеры рабочих процессов (workflow examples)
- Что делать, если предпочитаешь Cursor или Copilot
Skills и субагенты: переиспользуемые рабочие процессы
Skills — это упакованные, переиспользуемые workflow для типовых задач. Вместо того чтобы каждый инженер писал промпт «сгенерируй тест для этого контроллера», вы создаёте skill /write-spec, который знает структуру проекта, паттерны тестирования и conventions.
Структура skill
.claude/skills/
write-spec/
SKILL.md # Инструкции для Claude
template.md # Шаблон результата
examples/
sample_spec.rb # Пример правильного теста
deploy/
SKILL.md
scripts/
validate.sh # Скрипт предварительной проверки
review-article/
SKILL.md
Каждый инженер вызывает /write-spec app/controllers/web/motions_controller.rb и получает качественный тест, построенный по стандартам проекта, а не по общим представлениям LLM о том, как «обычно» пишут тесты.
Субагенты для специализации
Субагенты — это конфигурируемые агенты внутри Claude Code, каждый со своей специализацией и ограниченным набором инструментов. Основной агент может делегировать им часть работы — например, отправить субагента проверить код, пока сам продолжает писать тесты. Субагент работает в изолированном контексте: он видит только те файлы и инструменты, которые ему явно разрешены:
# .claude/agents/code-reviewer.md
---
name: code-reviewer
description: Expert code review specialist
tools: Read, Grep, Glob, Bash
model: inherit
---
Ты — ревьюер кода. Фокусируйся на:
- Безопасность (OWASP Top 10)
- Производительность запросов к БД
- Соответствие conventions из CLAUDE.md
Субагенты хранятся в .claude/agents/ и доступны всей команде через git. Один инженер настроил — все пользуются.
Работа по ролям: фронтенд, бэкенд, тесты
В команде, где кто-то пишет React-компоненты, кто-то Rails-контроллеры, а кто-то Capybara-тесты — единый подход к AI не сработает. Нужна базовая инфраструктура + специализированные расширения.
| Роль | Базовый пайплайн | Специализированные skills |
|---|---|---|
| Frontend | CLAUDE.md, линтер, CI | /component — scaffold компонента по дизайн-системе, /a11y-check — проверка доступности |
| Backend | CLAUDE.md, линтер, CI | /write-spec — генерация RSpec тестов, /migration — создание обратимой миграции |
| QA / Автотесты | CLAUDE.md, линтер, CI | /e2e-test — Capybara-сценарий, /coverage-gap — поиск непокрытого кода |
| Full-stack | CLAUDE.md, линтер, CI | Все вышеперечисленные + /feature — scaffold сквозной фичи от миграции до теста |
Ключевой принцип: базовый пайплайн обязателен для всех, специализированные skills — опциональны. Инженер, предпочитающий Cursor, всё равно получает guardrails через CI и CLAUDE.md (который Cursor тоже умеет читать как rules file).
Общий контекст: как делиться знаниями на одной задаче
Когда два инженера работают над одной фичей — один пишет бэкенд, другой фронтенд — контекст рассинхронизируется. Каждый объясняет свою часть заново. С AI-агентами эта проблема усиливается: у каждой сессии свой контекст, и он теряется при перезапуске.
Слои разделяемого контекста
- CLAUDE.md (проектный уровень) — общая архитектура, conventions, команды. Обновляется редко, читается всеми.
-
Issue tracker с персистентным состоянием — задачи должны содержать не только «что сделать», но и «что уже решено» и «какие есть зависимости». Git-backed трекер (вроде beads) позволяет агенту подхватывать контекст через
bd showдаже после перезапуска сессии. - PR как документация — автоматически генерируемые описания PR (commit-spec + LLM-суммаризация diff) позволяют коллеге понять, что изменилось, не читая каждую строку.
-
Feature flag как контракт — при trunk-based development фронтенд и бэкенд договариваются через имя флага:
enable_new_billing_flow. Бэкенд закрывает endpoint флагом, фронтенд проверяет его — оба работают в main, не мешая друг другу.
- Продакт создаёт задачу: «Добавить экспорт отчётов в PDF»
- Бэкенд-инженер берёт задачу, пишет API endpoint за флагом
export_pdf, оставляет в задаче: «API готов, формат ответа:{url: string, expires_at: timestamp}» - Фронтенд-инженер открывает ту же задачу, видит контракт API, scaffold'ит компонент
- Оба работают в main, оба безопасно деплоят — фича скрыта за флагом
- Флаг включается после проверки на staging
Guardrails: тесты, линтеры и CI как ограничители
AI-агент — это мощный исполнитель, но без чётких ограничений он может распространить ошибку на соседние модули. Logic Inc сравнивают его с роботом-пылесосом: без барьеров он может разнести последствия одного столкновения по всему дому.
Единственные ограничения — те, которые вы задали и реально enforc'ите. Чем жёстче guardrails, тем предсказуемее результат.
Минимальный набор guardrails
| Guardrail | Что обеспечивает | Инструмент |
|---|---|---|
| Линтер | Code style, naming, сложность методов | RuboCop, ESLint |
| Тесты | Корректность поведения, регрессии | RSpec, Jest |
| CI pipeline | Автоматическая проверка каждого коммита | GitHub Actions, GitLab CI |
| Type checking | Контракты между модулями | Sorbet, TypeScript |
| Pre-commit hooks | Быстрая обратная связь до push | Claude Code hooks, Overcommit |
Почему высокое покрытие тестами критично
Команда Logic Inc требует 100% покрытия кода и называет это «секретным оружием». Суть не в предотвращении багов, а в том, что агент проверяет поведение каждой строки, которую написал.
- При 95% вы всё ещё решаете, что «достаточно важно» тестировать.
- При 100% происходит фазовый переход: если строка не покрыта — это потому, что ты только что что-то сделал. Coverage-отчёт превращается в TODO-лист.
Для вашей команды необязательно сразу целиться на 100%. Но CI не должен проходить без тестов на новый код — это минимальное требование, которое превращает агента из генератора кода в генератор проверенного кода.
docker compose run web rspec занимает 10 минут — агент деградирует. Инвестируйте в параллельность, кэширование и изоляцию тестов. Цель — полный тест-сьют за 1-2 минуты.
AI code review и самообучение процесса
Code review — одно из главных бутылочных горлышек. Изменение ждёт ревью часами или днями, пока коллеге некогда. AI-review не заменяет человеческий взгляд на архитектурные решения, но убирает рутину.
Многослойный code review
- Автоматические commit-сообщения. LLM генерирует описание из diff по единым правилам (commit-spec). Стиль одинаков у всей команды. Побочный эффект: если в описании появляется «add debug statements» — это сигнал, что отладочный код забыли убрать.
- AI-ревью на PR. Claude анализирует diff по чеклисту: функции не длиннее 50 строк, нет захардкоженных значений, нет console.log, все TODO привязаны к тикетам, миграции обратимы. Может оставлять комментарии и вносить правки.
- Самообучение. После апрува PR — отдельный промпт извлекает «уроки» из комментариев людей и дописывает их в CLAUDE.md. Со временем количество типовых замечаний снижается.
- Человеческий ревью. Фокусируется на решениях и компромиссах, а не на стилистике и рутине.
Закон Амдала: ускоряйте не код, а всю цепочку
В 1967 году Gene Amdahl сформулировал очевидную задним числом вещь: ускорение части системы ограничено долей, которую эта часть занимает.
Если написание кода — это 20% времени разработки (P = 0.2) и вы ускоряете его в 10 раз (S = 10), итоговое ускорение — 1.22x, а не 10x.
В больших компаниях разработчики пишут код около часа в день. Остальное время — планирование, ревью, тестирование, дебаг, документация, координация. Это 80% времени, которое AI не трогает, если вы ускоряете только кодинг.
Где применять AI кроме написания кода
| Этап | Без AI | С AI |
|---|---|---|
| Спецификация | Часовые митинги с продактом, неделя на PRD | Агентное интервью: исследует кодовую базу, задаёт контекстные вопросы, генерирует PRD за часы |
| Code review | Ожидание ревью 1-3 дня | Автоматический AI-ревью за минуты, человек проверяет только архитектурные решения |
| Тестирование | Ручное написание тестов, забытые edge cases | AI генерирует тесты, находит пробелы в покрытии, пишет regression-тесты на баги |
| Дебаг | Воспроизведение, чтение логов, гипотезы | AI получает симптомы, ищет root cause, пишет фикс с регрессионным тестом |
| Документация | Ручное написание, быстро устаревает | PR-summary и диаграммы генерируются автоматически из diff |
100x — это не про скорость кодинга
Есть ещё один угол, который часто упускают. Juraj Masar (Better Stack) описывает феномен «100x-инженера»: это не тот, кто печатает в 100 раз быстрее, а тот, кто понимает контекст бизнеса настолько глубоко, что убирает 95% ненужной работы.
Примеры повсюду: WhatsApp обслуживал 600 миллионов пользователей с ~50 инженерами. Instagram имел 30 миллионов пользователей с 13 инженерами на момент покупки за $1 млрд. Basecamp начался как побочный проект.
Разница между уровнями:
- 1x-инженер — получил задачу, реализовал в лоб.
- 10x-инженер — понимает, что часть задачи решается существующей библиотекой, и не изобретает велосипед.
- 100x-инженер — понимает продуктовый roadmap, бизнес-модель и боли клиентов настолько, что может отрезать правильные 5% фичи и упростить реализацию в 100 раз. Он pushback'ит определение задачи до того, как начнёт писать код.
План раскатки и Champions Program
Block рекомендует два принципа для внедрения: Freedom to Explore и Champions Program. Вот как это выглядит на практике для вашей команды:
Фаза 1: Фундамент (1-2 недели)
- Написать CLAUDE.md с описанием проекта, команд и conventions
- Написать HOWTOAI.md с инструкциями для инженеров
- Определить 2-3 Champions — тех, кто уже активно использует AI и готов помогать другим
- Убедиться, что CI проходит быстро (< 5 минут для основных проверок)
Фаза 2: Базовые skills (2-4 недели)
- Создать 3-5 skills для типовых задач:
/write-spec,/lint,/deploy - Настроить hooks для валидации и автоматизации
- Провести workshop для команды: демо от Champions, hands-on практика
- Собрать обратную связь: что работает, что бесит, чего не хватает
Фаза 3: AI в pipeline (1-2 месяца)
- Добавить AI code review на PR (начать с advisory mode — комментарии, но без блокировки)
- Автоматизировать commit-сообщения и PR-описания
- Настроить headless-агента для фикса CI failures
- Добавить PR-лейблы для отслеживания AI contribution
Фаза 4: Оптимизация (постоянно)
- Анализировать метрики: время от задачи до merge, время ревью, CI pass rate
- Находить следующее бутылочное горлышко по закону Амдала
- Публиковать рецепты и workflows как shared-библиотеки между командами
- Обновлять CLAUDE.md из уроков code review (самообучающийся процесс)
Champions Program: как это работает
Champions — это не назначенные «ответственные за AI». Это инженеры, которые уже используют инструмент активно и органически помогают коллегам:
- Демонстрируют рабочие процессы на внутренних митапах
- Пишут skills и делают их доступными через git
- Помогают в Slack-канале
#ai-helpили#claude-tips - Собирают паттерны и антипаттерны в HOWTOAI.md
Резюме
| Принцип | Действие |
|---|---|
| Стандартизируйте контекст, не инструмент | CLAUDE.md + HOWTOAI.md в репозитории |
| Базовый пайплайн для всех + расширения для продвинутых | CI + линтер обязательны; skills и субагенты опциональны |
| Guardrails жёстче — результат предсказуемее | Тесты, линтеры, type checking, pre-commit hooks |
| Ускоряйте всю цепочку, не только кодинг | AI review, автодокументация, агентные спецификации |
| Делитесь контекстом через git | Feature flags как контракт, задачи с контекстом, PR-описания |
| Champions, не мандаты | Свобода выбора + демонстрация результатов |