# Скилы Мэтта Покока для Claude Code и Codex

Как устроен набор mattpocock/skills, что агент делает по скилам grilling, tdd, diagnosing-bugs и codebase-design, как его поставить и что перенести в свой CLAUDE.md.

- Автор: Guide DAO
- Опубликовано: 2026-10-24
- Теги: Claude, Вайбкодинг
- Страница: https://www.guidedao.xyz/blog/skily-mehtta-pokoka

Мэтт Покок (Matt Pocock, [@mattpocockuk](https://x.com/mattpocockuk)), автор Total TypeScript и AI Hero, в феврале 2026 года выложил на GitHub репозиторий [mattpocock/skills](https://github.com/mattpocock/skills) с названием «Skills For Real Engineers». Это скилы, которыми он сам пользуется каждый день для инженерной работы, а не для вайбкодинга, как сказано в описании. 24 октября Покок [написал](https://x.com/mattpocockuk/status/2113920252593786989), что у репозитория 300 тысяч звёзд и почти 30 миллионов установок. GitHub в тот же день показывал 302 тысячи звёзд, текущая версия набора 1.3.1, лицензия MIT.

Как Claude Code подгружает скилы, мы разбирали в [отдельной статье](https://www.guidedao.xyz/blog/skily-v-claude-code). Здесь речь о том, что делает агент по скилам Покока и что из них забрать себе.

## Маленькие скилы вместо фреймворка

В README Покок сравнивает свой набор с готовыми методологиями для работы с агентами:

> Approaches like GSD, BMAD, and Spec-Kit try to help by owning the process.

По его словам, такие подходы забирают у разработчика контроль, а ошибки в самом процессе становится трудно исправить. Его скилы задуманы маленькими: их легко поправить под себя и сочетать друг с другом, и они работают с любой моделью. Новых скилов со стороны репозиторий не принимает, а настройки под свой процесс автор советует держать в своём `CLAUDE.md` или в форке.

Набор вырос из четырёх сбоев, которые Покок видит у Claude Code, Codex и других агентов. Агент сделал не то, что вы хотели, потому что вы не договорились. Агент многословен, потому что не знает жаргона проекта. Код не работает, потому что агенту не хватает обратной связи от типов, браузера и тестов. Кодовая база превращается в «большой ком грязи», потому что агенты ускоряют и написание кода, и рост энтропии.

## Как устроен набор

Скилы делятся по тому, кто их вызывает. Пользовательские (user-invoked) срабатывают только по команде вроде `/grill-with-docs` и управляют процессом, в Claude Code у них в шапке стоит `disable-model-invocation: true`. Модельные (model-invoked) агент подгружает сам, когда задача подходит под описание, и в них записана дисциплина: как писать тесты, как искать баг, как проектировать модуль.

Точка входа `/ask-matt`, маршрутизатор по остальным скилам. Один раз на репозиторий запускают `/setup-matt-pocock-skills`: он спрашивает, где вести задачи (GitHub, GitLab, локальные файлы), какими метками их размечать и куда складывать документы.

Основной путь от идеи до релиза такой. `/grill-with-docs` расспрашивает вас об идее. Если вопрос не решить на словах, помогает `/prototype`. Для работы на несколько сеансов `/to-spec` собирает из разговора спеку, `/to-tickets` режет её на тикеты, а `/implement` или `/implement-spec` их выполняют, вызывая по пути `/tdd` и `/code-review`. Описание пул-реквеста пишет `/pr`, а `/retro` в конце ищет, что улучшить в окружении агента.

## grilling: договориться до начала работы

Самые популярные скилы набора, по словам автора, `/grill-me` и `/grill-with-docs`. Оба вызывают модельный скил `grilling`, и агент расспрашивает вас, прежде чем что-то делать.

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

`/grill-with-docs` добавляет к расспросу скил `domain-modeling`. По ходу разговора агент уточняет термины проекта и записывает их в `GLOSSARY.md`, а трудно обратимые решения в ADR (architecture decision records, записи об архитектурных решениях). В README есть пример из проекта Покока: длинное «урок внутри раздела курса получает место в файловой системе» сжимается в термин «materialization cascade». По словам автора, с таким словарём агент тратит меньше токенов на рассуждения.

Перегибать с расспросами Покок тоже не советует. В его [списке типичных ошибок](https://x.com/mattpocockuk/status/2109973273924579720) рядом стоят «не согласуете задачу перед работой» и «согласуете слишком часто и слишком жёстко».

## tdd: красный тест, потом зелёный

Скил `tdd` ведёт агента по циклу red-green: сначала тест, который падает, потом ровно столько кода, чтобы он прошёл. До первого теста агент выписывает швы (seams), публичные границы, на которых будут тесты, и согласует их с вами, коротко объясняя, что каждый шов ловит и что пропускает. На несогласованном шве тест не пишется.

Работа идёт вертикальными срезами: один тест, одна реализация, следующий тест. Сначала все тесты, потом весь код скил называет антипаттерном, потому что такие тесты проверяют воображаемое поведение. Ещё два антипаттерна: тесты, привязанные к реализации (моки собственных модулей, проверка через запрос в базу в обход интерфейса), и тавтологические, где ожидаемое значение вычисляется тем же способом, что и в коде. Моки допустимы только на границах системы: внешние API, время, случайность, иногда база и файловая система. Рефакторинг в цикл не входит, его оставляют на ревью.

Как устроен сам юнит-тест и зачем агенту тесты, рассказывал Иван Балашов в статье «[Юнит-тесты в вайбкодинге](https://www.guidedao.xyz/blog/yunit-testy-v-vajbkodinge)».

## diagnosing-bugs: сначала воспроизвести

Скил для трудных багов делит работу на шесть фаз, и первую автор называет главной: построить петлю обратной связи, которая краснеет именно на этом баге. Скил перечисляет десять способов по порядку, от падающего теста и запроса curl к dev-серверу до скрипта для `git bisect run`, и только в крайнем случае bash-скрипт, который ведёт по шагам человека.

Фаза пройдена, когда у агента есть одна команда, которую он уже запускал. Команда проверяет ровно тот симптом, о котором сообщил пользователь, каждый раз даёт один и тот же результат, работает секунды и запускается без человека. Если агент поймал себя на чтении кода ради теории до появления такой команды, скил велит остановиться.

Дальше агент сокращает сценарий до минимального, который всё ещё краснеет, выдвигает три-пять гипотез с проверяемым предсказанием и показывает их вам до проверки. Отладочные логи помечаются уникальным префиксом вроде `[DEBUG-a4f2]`, чтобы потом убрать их одним grep. Регрессионный тест пишется до исправления, если для него есть правильный шов. Если шва нет, это тоже вывод: архитектура мешает закрепить исправление.

## codebase-design и тест удаления

`codebase-design` даёт агенту словарь для проектирования модулей, во многом по книге Джона Остерхаута (John Ousterhout) «A Philosophy of Software Design». Глубокий модуль прячет много поведения за маленьким интерфейсом, у мелкого интерфейс почти так же сложен, как реализация.

Самый практичный приём здесь тест удаления. Мысленно удалите модуль: если сложность исчезла, он был прослойкой, а если она расползлась по вызывающим местам, модуль себя окупал. Второе правило про швы: один адаптер означает воображаемый шов, два адаптера (например, боевой и тестовый) означают настоящий, поэтому абстракцию ради единственной реализации не заводят. Покок [предлагал](https://x.com/mattpocockuk/status/2105563604384915639) такой промпт, чтобы убрать лишние абстракции:

```text
/codebase-design Take a look in the repo for shallow modules, applying the deletion test and look for candidates for deletion.
```

Для обхода всей кодовой базы есть `/improve-codebase-architecture`: он ищет модули, которые можно углубить, и собирает кандидатов в HTML-отчёт. Автор советует запускать его раз в несколько дней.

## pr и retro: доказательства и разбор сеанса

`/pr` и `/retro` появились в версии 1.3 в начале октября. `/pr` задаёт описанию пул-реквеста три части. Сводка показывает изменение самой маленькой подходящей картинкой: псевдокодом, деревом файлов, диаграммой Mermaid или diff. Доказательства показывают «до» и «после»: скриншот, если изменение видно глазами, или тест, который раньше падал, а теперь проходит. Оценка риска говорит, можно ли откатить изменение (двусторонняя дверь) или нельзя (односторонняя) и как широко оно задевает систему. Раздел про сводку взят из скила show-me Декса Хорти (Dex Horthy) из HumanLayer, это указано в `CREDITS.md`.

`/retro` автор в [анонсе версии](https://x.com/mattpocockuk/status/2107062474914550098) назвал самым большим улучшением. Скил читает транскрипт сеанса, по умолчанию текущего, и ищет, что поменять в окружении агента: где агент долго искал файл, какую его ошибку поймала бы автоматическая проверка, какое правило в `CLAUDE.md` ничего не меняет в поведении, какой тул тратит слишком много токенов. Механические нарушения вроде запрещённого API или неправильного импорта скил предлагает ловить правилом линтера, pre-commit-хуком или задачей в CI. Предложения он выдаёт по убыванию серьёзности.

## Как поставить

В Claude Code набор ставится плагином из официального маркетплейса и дальше обновляется сам:

```bash
claude plugin install mattpocock-skills@claude-plugins-official
```

В Codex сначала добавляют маркетплейс, потом плагин:

```bash
codex plugin marketplace add mattpocock/skills
codex plugin add mattpocock-skills@mattpocock
```

Команды для GitHub Copilot и Gemini CLI есть в README. Для Cursor, opencode, Windsurf и других агентов подходит установщик [skills.sh](https://skills.sh/mattpocock/skills):

```bash
npx skills@latest add mattpocock/skills -a cursor
```

Установщик skills.sh копирует скилы в проект: их можно менять под себя, но обновлять придётся командой `npx skills@latest update`. Автор просит выбрать один способ на агента, иначе каждый скил окажется в списке дважды. После установки один раз на репозиторий запустите `/setup-matt-pocock-skills`.

## Что взять, даже если не ставить

Формулировки скилов переносятся в свои инструкции. На наш взгляд, первыми стоит взять четыре правила: не строить гипотез о баге без команды, которая его воспроизводит; согласовывать границы тестов до первого теста; задавать вопросы раундами с рекомендуемым ответом и самому искать факты; держать словарь терминов проекта. В `CLAUDE.md` это может выглядеть так:

```markdown
## Баги
Прежде чем называть причину, напиши одну команду, которая воспроизводит симптом из отчёта, и запусти её.

## Тесты
До первого теста согласуй со мной публичные интерфейсы, на которых будут тесты. Мокай только внешние сервисы, время и случайность.

## Вопросы
Задавай вопросы пронумерованными раундами, к каждому пиши свой рекомендуемый ответ. Факты из репозитория ищи сам, у меня спрашивай только решения.

## Термины
Термины проекта лежат в GLOSSARY.md. Используй их в именах, тестах и описаниях пул-реквестов.
```

Из скила `writing-for-agents` полезны две мысли. То, что агент сам найдёт в `package.json` или конфиге, в инструкцию не переписывают, потому что копия устареет. Правило лучше формулировать как нужное поведение: запрет вносит запрещённое в контекст и делает его заметнее. Подробнее о таких правилах в статье «[Что писать в AGENTS.md](https://www.guidedao.xyz/blog/agents-md-pravila-dlya-agenta)».

Скил `git-guardrails-claude-code` из папки misc, которую автор больше не развивает, ставит хук PreToolUse, и тот блокирует `git push`, `git reset --hard`, `git clean -f` и другие разрушительные команды до выполнения. Как работают такие хуки, мы разбирали в [статье о хуках](https://www.guidedao.xyz/blog/huki-v-claude-code).

## Когда это лишнее

Набор рассчитан на продуктовую разработку с трекером задач, спеками и пул-реквестами, и для скрипта на вечер полный путь до `/retro` займёт больше времени, чем сама задача. На наш взгляд, начинать лучше с модельных скилов `tdd`, `diagnosing-bugs` и `codebase-design`: они не требуют настройки трекера и срабатывают сами, когда задача подходит.

Скилы меняются быстро: в версии 1.3 `CONTEXT.md` стал `GLOSSARY.md`, и старый файл нужно переименовать вручную. Плагин обновляется сам, поэтому поведение агента может поменяться без вашего участия. Если нужна стабильность или своя правка, берите копию через skills.sh.

В том же списке ошибок Покок называет слишком длинные скилы и слишком высокий уровень рассуждений (effort). Его `grilling` занимает около 330 слов, и это хороший ориентир для собственных скилов.

Если вы работаете в Claude Code или Codex, поставьте плагин, начните следующую задачу с `/grill-with-docs`, а трудный баг отдайте `diagnosing-bugs`. Если ставить не хочется, откройте `SKILL.md` этих скилов на GitHub и перенесите в свой `CLAUDE.md` их критерии завершения: на наш взгляд, от них поведение агента меняется сильнее всего.

Курс Guide DAO: [Вайбкодинг](https://www.guidedao.xyz/vibecoding)
