Addy Osmani зашил сениор-инженерную дисциплину в скиллы для AI-агентов

Addy Osmani — бывший лид Chrome DevEx, сейчас Director в Google Cloud AI — собрал на GitHub 20 скиллов для AI-агентов. Разбираем, чем именно они заставляют агента вести себя как сениор и что забрать в свой инструмент без установки.

Обложка: Addy Osmani зашил сениор-инженерную дисциплину в скиллы для AI-агентов

AI-агент пишет фичу за минуту, а спецификация, тесты и ревью где-то теряются. Addy Osmani — бывший Engineering Lead Chrome Developer Experience в Google, сейчас Director в Google Cloud AI — собрал на GitHub репозиторий из 20 «навыков», которые заставляют агента не пропускать сениорские этапы работы. К моменту разбора в блоге репозиторий собрал 27 тысяч звёзд, к моменту этой публикации — уже больше 29 тысяч.

Скилл — это markdown-файл со специальной шапкой (frontmatter — служебный блок с метаданными в начале файла), который Claude Code или Anthropic Agent SDK подгружают в контекст агента по триггеру. Не справочник, а пошаговый workflow с чекпоинтами и критерием выхода: написать падающий тест, запустить, увидеть, что он падает, написать минимальный код, увидеть, что тест прошёл.

Поведение по умолчанию у любого AI-агента — кратчайший путь к «готово». Просишь функцию — он пишет функцию. Не задаёт вопросов про спеку, не пишет тест перед реализацией, не думает про границы доверия и не смотрит, как diff будет выглядеть в ревью. Скиллы прибивают сениорский каркас обратно.

Главное
Ключевые выводы
Что внутри Agent Skills и зачем оно нужно
  • Addy Osmani опубликовал на GitHub набор из 20 скиллов для AI-агентов — markdown-файлов, в которых процесс встроен прямо в инструкции.
  • За несколько недель проект собрал 27 000 звёзд и устанавливается в Claude Code одной командой.
  • Скиллы покрывают шесть этапов цикла разработки: определение, планирование, сборка, верификация, ревью и выкат, плюс сквозной режим упрощения кода.
  • Главные принципы дизайна: процесс важнее текста, антирационализационные таблицы, обязательная верификация, прогрессивное раскрытие, дисциплина по объёму.
  • Формат переносится: те же markdown-файлы работают в Claude Code, Cursor, Gemini CLI, Codex, Aider, OpenCode.

Что внутри: 20 скиллов на шесть этапов разработки

Двадцать скиллов организованы вокруг шести фаз жизненного цикла, поверх которых сидят семь slash-команд. Это та же модель, по которой работают здоровые инженерные команды, просто с другой лексикой.

  • Define — /spec: что именно мы строим.
  • Plan — /plan: разбиение работы на куски.
  • Build — /build: реализация вертикальными слайсами.
  • Verify — /test: доказательство, что работает.
  • Review — /review: что ускользнуло от автора.
  • Ship — /ship: безопасный выкат.
  • Cross-cutting — /code-simplify: упрощение в любой фазе.

Большая фича может активировать одиннадцать скиллов подряд, мелкий багфикс — три. Решает мета-роутер с именем using-agent-skills: он смотрит на запрос и подгружает только релевантные.

Пять принципов, на которых всё держится

1. Процесс важнее текста

Скилл — это последовательность шагов, а не эссе. Если положить в контекст агента двухтысячный текст «о лучших практиках тестирования», агент прочитает, сгенерирует правдоподобный ответ и тестов не напишет. Если положить workflow (пиши падающий тест → запусти → убедись, что упал → пиши код → убедись, что прошёл → рефактори), у агента есть, что делать, а у тебя — что проверять.

Это правило одинаково работает и для людей: справочник на 200 страниц никто не открывает в дедлайн, маленький workflow с чекпоинтами выполняется.

2. Антирационализационные таблицы

В каждом скилле есть таблица «оправданий» с заранее написанными контраргументами. Примеры:

  • «Эта задача слишком простая для спеки» → критерии приёмки всё равно нужны. Пять строк подойдёт; ноль строк нет.
  • «Тесты напишу позже» → «позже» — это слово-обманка. Никакого «позже» не будет: пиши падающий тест сейчас.
  • «Тесты прошли — мержим» → проходящий тест — это улика, а не доказательство. Запусти приложение, проверь поведение, дай человеку посмотреть diff.

LLM хорошо умеет в правдоподобную аргументацию: «именно эта задача спеки не требует, именно этот merge безопасный без ревью». Антирационализационная таблица — это заранее заготовленные ответы на отговорки, которые агент пока ещё даже не придумал. Тот же приём отлично работает в человеческих командах.

3. Верификация — не опция

Каждый скилл заканчивается конкретной уликой: тесты прошли, билд чистый, трейс рантайма показывает ожидаемое поведение, ревьюер подписался. «Кажется, ОК» — недостаточно никогда. Агент-генератор всегда скажет, что всё хорошо, поэтому нужен отдельный сигнал, что работа действительно сделана.

4. Прогрессивное раскрытие

Все 20 скиллов в контекст не загружаются. На старте сессии активен только маленький мета-навык using-agent-skills, который выбирает релевантный скилл под текущую задачу. Каждый лишний токен в контексте где-то уменьшает качество, поэтому подгружать нужно только то, что реально применимо.

5. Дисциплина по объёму

Мета-скилл фиксирует жёсткое правило: трогай только то, о чём попросили. Не рефактори соседние модули. Не сноси код, который не понимаешь до конца. Это самый частый параметр, по которому пулреквест агента становится немёрджибельным: где-то по пути он решил «заодно отрефакторить».

ДНК Google в каждом скилле

Скиллы насыщены практиками из книги Software Engineering at Google и публичной инженерной культуры. Это сделано осознанно: большая часть того, что заставляет работать большой код, задокументирована — и именно это агент пропускает первым делом.

  • api-and-interface-design — закон Хайрама: любое наблюдаемое поведение API кто-то рано или поздно начнёт использовать.
  • test-driven-development — пирамида ~80/15/5 (unit / integration / e2e) и правило Бейонсе: «если функционал тебе нравится — обязательно прикрой его тестом». DAMP важнее DRY в тестах: тест должен читаться как спецификация, даже ценой дублирования.
  • code-review-and-quality — пулреквесты по 100 строк и метки Critical / Nit / Optional / FYI. Большие PR не ревьюят, их штампуют.
  • code-simplification — забор Честертона: не сноси, пока не понял, зачем поставили. Удалённый код имеет привычку возвращаться багом.
  • git-workflow-and-versioning — trunk-based development и атомарные коммиты.
  • ci-cd-and-automation — shift-left и feature-флаги: лови проблемы как можно раньше, выкат и релиз — разные операции.
  • deprecation-and-migration — код как обязательство: каждая строка живёт ровно столько, сколько её обслуживают.

Любая модель видела в обучении словосочетание «закон Хайрама», но не применяет его, проектируя API в три часа ночи. Скиллы — способ сделать так, чтобы применяла.

Три режима использования

Режим 1: установка плагином в Claude Code.

			/plugin marketplace add addyosmani/agent-skills
/plugin install agent-skills@addy-agent-skills
		

Получаешь все slash-команды, скиллы активируются автоматически по контексту.

Режим 2: ручной импорт markdown в свой инструмент. Скиллы — это plain-markdown, переносится куда угодно. В Cursor — в .cursor/rules/. Gemini CLI, Codex, Aider, Windsurf, OpenCode — у каждого свой путь, но workflow одинаковый.

Режим 3: ничего не устанавливать, читать как спеку. Открыть code-review-and-quality.md и применить пятиосевую шкалу серьёзности замечаний (Critical / Nit / Optional / FYI плюс blocking-комментарий) к ревью своей команды. Открыть test-driven-development.md и закрыть следующий спор «нужно ли писать тест первым». Открыть мета-навык и взять оттуда пять non-negotiables в свой AGENTS.md.

Частые вопросы
1
Что такое скилл в Claude Code и Anthropic Agent SDK?

Markdown-файл с frontmatter, описывающий пошаговый workflow и подгружаемый в контекст агента по триггеру. Не справочник, а runbook с чекпоинтами и явным критерием выхода.

2
Сколько скиллов в Agent Skills и какие фазы они покрывают?

Двадцать скиллов на шести фазах SDLC: spec, plan, build, test, review, ship. Поверх — семь slash-команд, включая cross-cutting code-simplify.

3
Как поставить набор в Claude Code?

Через marketplace: /plugin marketplace add addyosmani/agent-skills, затем /plugin install agent-skills@addy-agent-skills. После этого появляются slash-команды и автоматическая активация скиллов.

4
Подойдёт ли формат другим инструментам, кроме Claude Code?

Да. Markdown с frontmatter переносится: Cursor через .cursor/rules/, Gemini CLI, Codex, Aider, Windsurf, OpenCode — везде, где есть system-prompt и подгрузка инструкций.

5
Зачем именно антирационализационные таблицы?

LLM умеет генерировать правдоподобные оправдания пропуска шагов. Заранее зафиксированные отговорки и встречные реплики не дают агенту обойти процесс «по ситуации».

Выводы

Главная идея проекта не в самих скиллах, а в подходе. AI-агент — это крайне способный джуниор без инстинкта на ту часть работы, которая не попадает в diff. Сениор-инженерные шаги — спека, размер изменений, оставленные доказательства, отказ мержить непрослеживаемое — именно то, что агент пропустит, если пропуск возможен в принципе.

Задача всё чаще сводится к тому, чтобы закодировать эту дисциплину так, чтобы агент не мог уговорить себя её обойти.
Addy OsmaniDirector Google Cloud AI, по материалам блога addyosmani.com

Репозиторий лежит на github.com/addyosmani/agent-skills под лицензией MIT, разбор подхода опубликован в блоге Addy Osmani. Те же markdown-файлы можно прочитать как описание того, как должна выглядеть инженерия с AI-агентами — и забрать оттуда пять non-negotiables в свой AGENTS.md без установки чего-либо.

Берите одну фазу — спеку, ревью или верификацию — и закрепляйте её в правилах своего агента. Дальше расширяйте по мере того, какие шаги команда чаще всего пропускает.

Рекомендуем