Технологии37 阅读

Matt Pocock Skills: заставьте ИИ программировать как настоящий инженер

Проект Skills от Matt Pocock — это инженерный набор навыков для AI-ассистентов программирования (например, Claude Code), который решает ключевую проблему нестабильного качества генерируемого AI кода путем модуляризации стандартных процессов разработки ПО. Этот проект, построенный всего на нескольких Markdown-файлах, получил 23 000 звезд на GitHub и стал важной практикой в области AI-ассистированной разработки.

Предыстория проекта: четыре режима неудач AI-программирования

Традиционные инструменты AI-разработки склонны к подходу «один умный агент делает всё», но Matt Pocock выбрал противоположную стратегию: сначала выявить реальные сценарии неудач AI, а затем для каждого спроектировать соответствующий навык. Проект определяет четыре типичные ситуации:

  1. Agent didn't do what I want (AI не понял ваших намерений) — когнитивный разрыв между разработчиком и AI, из-за чего результат отклоняется от ожиданий.

  2. Agent is way too verbose (чрезмерная многословность) — AI генерирует много бесполезного кода или документации.

  3. The code doesn't work (код не работает) — отсутствие обратной связи от тестов, нестабильное качество кода.

  4. We built a ball of mud (архитектура превращается в «грязевой шар») — после долгой итерации кодовая база теряет четкую структуру.

Эта философия дизайна отказывается от оптимистичного предположения «если AI достаточно умён, он решит всё», и вместо этого компенсирует неопределённость AI с помощью структурированных процессов.

Ключевая идея: стандартизация процессов и модульность навыков

Ценность проекта Skills заключается в том, чтобы разбить опыт «как использовать AI для анализа требований, проектирования, кодирования» на многократно используемые плагины навыков, заставляя AI работать по фиксированным надёжным шаблонам, а не полагаться на удачу. Каждый навык — это полный рабочий сценарий, содержащий метаданные в формате YAML (имя, описание, условия запуска) и конкретные шаги выполнения.

Компонуемость — ещё одна особенность проекта: выход одного навыка может служить входом для следующего. Например, write-a-prd генерирует документ PRD в GitHub issue, а prd-to-issues разбивает его на план реализации. Это позволяет командам создавать настраиваемые рабочие процессы путём последовательного соединения навыков.

Пять ключевых навыков образуют полную рабочую цепочку

1. grill-me: этап уточнения требований

Этот навык, состоящий всего из 11 строк, заставляет AI задавать вопросы один за другим, как интервьюер, чтобы обе стороны пришли к единому пониманию требований. Его ключевые особенности:

Один разработчик поделился, что при использовании этого навыка ему задали 16 вопросов, а для сложных функций может потребоваться глубокое интервью из 30–50 вопросов. Этот навык решает проблему преждевременной генерации решений Claude Code, заставляя проводить достаточное предварительное обсуждение.

2. to-prd: создание документа требований

На основе истории диалога генерируется формальный документ с описанием требований к продукту (PRD), содержащий описание проблемы, решение, пользовательские истории, решения по реализации, решения по тестированию, а также то, что не будет сделано. Документ автоматически сохраняется как GitHub issue с помощью команды gh.

3. to-issues: декомпозиция задач вертикальными срезами

PRD разбивается на отдельные выполнимые небольшие задачи, используя методологию вертикальных срезов (tracer-bullet), а не традиционное деление на фронтенд/бэкенд или модули. Каждый срез проходит полный путь от базы данных до интерфейса и тестов, при этом явно указывается, требуется ли ручное вмешательство. Задачи упорядочены по зависимостям, последующие задачи ожидают завершения предыдущих.

4. tdd: разработка через тестирование

Обеспечивается строгий процесс TDD: не разрешается писать реализующий код, пока не существует проваливающегося теста. Это гарантирует стабильное качество кода и подходит для проектов с уже сложившейся культурой тестирования.

5. improve-codebase-architecture: улучшение архитектуры

На основе предметно-ориентированного языка из CONTEXT.md и записей архитектурных решений (ADR) в docs/adr/ находит «возможности углубления» в кодовой базе. Применяется принцип «глубоких модулей» Джона Аутерхаута (маленький интерфейс скрывает большую реализацию) для повышения тестируемости и удобства навигации для AI. Этот навык выявляет мелкие модули, тесно связанные компоненты и непроверенные границы, а затем предлагает рефакторинг.

Установка и использование

Формат команды для установки одного навыка:

bash
npx skills add mattpocock/skills skill=grill-me -y -g

Skills использует стандартную структуру, поддерживает имена пакетов с областью видимости (mattpocock/skills) и теги версий. После установки навык может быть вызван AI-ассистентом, поддерживающим протокол навыков.

Другие полезные навыки

Помимо основного рабочего процесса, проект включает несколько вспомогательных навыков:

Ограничения и развитие

Основное ограничение текущей версии — глубокая интеграция с GitHub: все навыки, связанные с операциями над issue, жёстко закодированы на команду gh. Командам, использующим другие инструменты управления проектами (Linear, Jira и т.п.), потребуется форкнуть и изменить код, хотя официально заявлено, что поддержка других платформ находится в разработке (по состоянию на апрель 2026 года).

В апреле 2026 года Matt Pocock обновил набор навыков: /domain-model заменил /grill-me, интегрировав концепции предметно-ориентированного проектирования (Domain-Driven Design, DDD), и теперь в процессе обсуждения синхронно генерируются документы и ADR. Это показывает, что проект постоянно развивается, постепенно вбирая в себя лучшие практики программной инженерии.

Сценарии применения

Этот набор навыков особенно подходит для разработчиков, которые:

Как подметил один разработчик после удаления большинства раздутых навыков: набор навыков Matt Pocock воплощает философию минимализма — небольшие и точные, чётко названные примитивы, меньшая площадь поверхности даёт больший рычаг воздействия.

Выводы

Matt Pocock Skills — это не просто «заставить AI генерировать код как попало», а приблизить AI-программирование к работе настоящего инженера через уточнение требований, TDD, диагностику, декомпозицию задач и улучшение архитектуры. Здесь подчёркивается инженерная разработка: с процессами, обратной связью, декомпозицией и ретроспективой, а не «Vibe Coding» на основе ощущений. Именно это сейчас больше всего нужно в области AI-ассистированной разработки — не более умный AI, а лучшие рабочие процессы.

Поделиться

Поделиться

Поделиться этой статьей.