# pstack: скилы Лорен Тан для строгой работы агента

Как устроен набор скилов разработчицы React Compiler, что делают плейбуки poteto-mode и принципы, как работает ревью несколькими моделями и установка в Claude Code.

- Автор: Guide DAO
- Опубликовано: 2026-10-24
- Теги: Claude, AI-агенты
- Страница: https://www.guidedao.xyz/blog/pstack-poteto-mode

Лорен Тан (Lauren Tan, в X [@poteto](https://x.com/poteto)) входит в команду React и работает над React Compiler. До этого она писала код в Meta и Netflix, сейчас работает в Cursor. Свои скилы для AI-агентов она собрала в плагин pstack, он лежит в официальном репозитории плагинов Cursor [cursor/plugins](https://github.com/cursor/plugins/tree/main/pstack). 29 сентября Мэтт Покок (Matt Pocock) поставил её первой в [списке](https://x.com/mattpocockuk/status/2105022638368403658) трёх лучших авторов скилов и написал, что всегда многому учится, читая их скилы. Пост собрал больше 7500 лайков, а на следующий день Мэтт [анонсировал](https://x.com/mattpocockuk/status/2105239236178018636) с ней интервью в прямом эфире.

Статья описывает версию 0.15.32 от 23 октября 2026 года, а набор обновляется почти каждый день.

## Какую проблему решает pstack

В README Лорен соглашается, что AI-агенты пишут много небрежного кода, и отвечает так: «if you want to go fast, go deep first», то есть чтобы работать быстро, сначала работайте глубоко. Если одному агенту можно доверить проверенный код, таких агентов можно запускать параллельно и не перепроверять каждого вручную. Цель набора, по её словам, писать меньше кода, но лучшего качества.

Принципы, как Лорен [рассказывает](https://x.com/poteto/status/2098648935619551698), появились ещё в её проекте до Cursor. Потом ей надоело вызывать скилы по одному, и она сделала внутренний `/lauren-mode`, который сам выбирает скилы под тип задачи, а наружу выложила его как `/poteto-mode`.

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

В pstack 58 скилов. Точка входа одна, `poteto-mode`. Ещё 24 скила содержат по одному инженерному принципу, остальные описывают воркфлоу: `how` объясняет устройство кода, `why` ищет причины решений, `architect` проектирует интерфейсы до кода, `interrogate` устраивает ревью. У всех скилов, кроме `setup-pstack`, в шапке стоит `disable-model-invocation: true`. Агент не подгружает их сам, они работают только по вызову, поэтому Лорен [пишет](https://x.com/poteto/status/2110760668987322408), что сама установка токенов не тратит.

Вы пишете `/poteto-mode` перед задачей. Скил сопоставляет её с одним из 23 плейбуков: исследование, исправление бага, производительность, фича, рефакторинг, прототип, автономный прогон на ночь и другие. Шаги плейбука агент копирует дословно в начало списка задач. Шаг, который он решил не делать, остаётся в списке с пометкой `skip: <причина>`. В ответе агент обязан назвать каждый принцип, повлиявший на решение, и само решение, которое тот изменил.

В скиле записаны и правила автономии. Обратимую работу агент делает без вопросов, а перед необратимой останавливается: force-push в общую ветку, деплой, удаление данных, сообщения клиентам. Отдельно сказано, что «нет» тоже допустимый ответ, и агент должен возражать, если идея не стоит усилий.

## Исправление бага по шагам

Плейбук Bug fix начинается с правила: каждая отправленная строка опирается на данные из работающей программы. Правка, которая «может помочь», считается гипотезой и в коммит не попадает. Если данные опровергли гипотезу, всё, что из неё выросло, откатывается.

Первое: агент сам воспроизводит баг там же, где его видит пользователь, и не перекладывает это на человека. Если баг не воспроизводится, агент создаёт условия или добавляет логирование, пока ошибка не сработает. Второе: ищет причину бинарным поиском. На каждом проходе он выбирает проверку, которая отсекает больше всего гипотез, пока не останется одна, подтверждённая данными. Третье: планирует исправление и отдаёт его субагенту, а если правка затрагивает границы функций, сначала вызывает `architect`. Четвёртое: проверяет результат в том же месте, где воспроизводил баг. Результат «не удалось проверить» не засчитывается, а юнит-тесты, по формулировке плейбука, проверяют ветки кода и не доказывают, что бага нет. Пятое: коммит с падающим тестом идёт в истории раньше исправления. В ответе агент вставляет вывод до и после правки дословно.

## Прототип вместо вопроса

Отдельное правило касается вопросов к человеку. Прежде чем спросить «какой подход выбрать», агент классифицирует вопрос. Если ответ можно увидеть, запустив код (поведение, тайминг, вёрстку, вывод, производительность), человеку его задавать не нужно, агент делает быстрый прототип. В скиле это сформулировано коротко: «The ask is the slow path», то есть вопрос к человеку дольше всего. Спрашивать стоит только о продуктовых решениях и вкусах, которые эксперимент не решит.

Плейбук Prototype единственный, где качество кода не важно. Агент называет решение, ради которого строит прототип, пишет одноразовый код в отдельной папке, кладёт варианты за один переключатель и проверяет их наблюдением: скриншотами, логами таймингов, выводом.

## Фича начинается с формы данных

Для любого кода правило одно: сначала назвать форму данных. Принцип Model the Domain предлагает конечный автомат вместо разбросанных булевых флагов и таблицу или реестр вместо ветвлений по разным файлам. Признак, что этот шаг пропустили, назван прямо: новая фича добавила ещё одну ветку в цепочку if/else или второй флаг, который приходится синхронизировать с первым.

Плейбук Feature идёт так. `how` изучает затронутую подсистему. `architect` просит несколько моделей набросать дизайн: сначала код вызывающей стороны, потом типы и сигнатуры с пустыми телами. Лучший набросок дополняется находками остальных. Потом агент пишет чекпоинт: что блокирует остальную работу, что можно распараллелить, где исполнители делят изменяемое состояние и какое разбиение самое безопасное. Код пишет субагент, а ведущий агент читает его diff сам.

## Короткие принципы

Каждый принцип занимает от 10 до 20 строк, и Лорен [считает](https://x.com/poteto/status/2110496830429839869) их самой долговечной частью набора. Многие из них она вытащила из своих сессий, где поправляла агентов с начала 2026 года.

Laziness Protocol требует держать каждое решение в одном источнике правды и делать самый маленький diff, который решает задачу. Subtract Before You Add велит сначала удалить лишнее, а потом строить, проектировать под реальное использование и не добавлять валидаторы и проверки сверх спеки. Prove It Works запрещает судить о результате по косвенным признакам вроде «компилируется» или отчёта субагента. Агент проверяет сам артефакт, а если проверка упала, сначала подозревает способ проверки. Guard the Context Window отправляет объёмное чтение в субагентов и оставляет в главном контексте только выводы. Как это работает в Claude Code, мы разбирали в [статье о субагентах](https://www.guidedao.xyz/blog/subagenty-v-claude-code). Attack the Premise срабатывает, когда два исправления на одном допущении провалили одну и ту же проверку: агент записывает допущение и проверяет его до третьей попытки.

Именами принципов удобно поправлять агента. Гайд pstack предлагает написать «apply prove it works» и попросить показать реальные записи после импорта: полное правило агент уже прочитал, и одна фраза заменяет абзац инструкций.

Этот подход Лорен применяет к самому набору. 10 октября она сжала промпты скилов, и, по её [словам](https://x.com/poteto/status/2109116030761230571), pstack стал на 10% меньше без потерь в поведении. На следующий день она вырезала из семи скилов разделы, которые агент выполняет и без текста. В описании коммита сказано, что каждый вырез сверяли с поведением скила до и после. Изменения скилов она проверяет эвалами по отдельному плейбуку. Кандидаты в нём не знают, что их оценивают, а судья видит ответы под нейтральными метками, без названий моделей.

## Ревью несколькими моделями

`/interrogate` отдаёт один и тот же diff, рубрику и чек-лист качества кода нескольким ревьюерам на разных моделях, по умолчанию Claude Opus 5.5 и Grok 4.7. Скил рассчитывает на разницу между моделями, а не на роли, которые раздают ревьюерам в промпте. Замечание, которое нашли две модели независимо, считается самым надёжным. Ведущий агент раскладывает находки по четырём группам: исправить, обдумать, принять к сведению, отклонить с причиной. Код он не правит, результат скила только вердикт.

## Свой режим через /automate-me

`poteto-mode` описывает стиль Лорен, и она предлагает собрать свой. `/automate-me` читает транскрипты текущего проекта, только его папку и без чужих проектов. Субагенты параллельно разбирают отрезки истории за последние недели, и паттерн принимается, только если встретился хотя бы в двух. Потом скил задаёт пару вопросов с вариантами ответа и один открытый, пишет черновик `<имя>-mode` с тем же флагом `disable-model-invocation: true`, вычищает текст скилом `unslop` и открывает PR из отдельного git worktree.

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

В Cursor плагин ставится командой `/add-plugin pstack`. Поддержка Claude Code появилась 16 октября, в README она описана так:

```bash
/plugin marketplace add cursor/plugins
/plugin install pstack@cursor-plugins
```

Команды плагина в Claude Code идут с префиксом: `/pstack:poteto-mode`, `/pstack:setup-pstack`. Начать стоит с `setup-pstack`, он записывает модели для ролей в `~/.claude/rules/pstack-models.md`. Автообновление для сторонних маркетплейсов Claude Code по умолчанию выключает. Включить его можно в `/plugin` на вкладке маркетплейсов, а обновить вручную командой `claude plugin update pstack@cursor-plugins`. Как устроены скилы в плагинах, мы разбирали в [статье о скилах](https://www.guidedao.xyz/blog/skily-v-claude-code).

Скилы написаны под Cursor, и [адаптер для Claude Code](https://github.com/cursor/plugins/blob/main/pstack/docs/harness/claude-code.md) переводит их имена: тул `Task` становится `Agent`, субагент только для чтения становится `Explore`, облачный агент становится отдельным git worktree. У адаптера есть два ограничения. Модели не от Anthropic он не подставляет, такой субагент работает на модели сеанса. Поэтому все ревьюеры `/interrogate` в Claude Code работают на моделях Claude, и разница между моделями, на которой построен скил, теряется. Шаги с функциями, которых в Claude Code нет (Bugbot, Cursor Automations, облачные агенты), агент пропускает и пишет об этом одной строкой.

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

Несколько правил переносятся в свой `CLAUDE.md` или скил почти дословно. Шаги процесса агент копирует в список задач, а пропущенный оставляет с причиной. На вопрос, ответ на который можно увидеть, агент отвечает прототипом. Каждое утверждение в ответе помечено как измеренное, выведенное или догадка. Принципы короткие и с именами, чтобы поправлять агента одной фразой.

Ещё одну идею Лорен называет перевёрнутой пирамидой. В [посте](https://x.com/poteto/status/2111133080526495985) от 16 октября больше всего усилий она советует вкладывать в архитектуру и типы, меньше в линтеры, тесты и CI, ещё меньше в текстовые правила вроде `AGENTS.md` и скилов, и меньше всего в ручное ревью. По этой же логике работает скил `/correct`: он находит в истории коммитов повторяющиеся ошибки агентов и закрывает каждую на самом сильном уровне, от архитектуры и типов до тестов, а документацию оставляет напоследок.

## Ограничения

Субагенты, панели ревью и параллельные попытки тратят много токенов. Гайд советует снизить бюджет в `setup-pstack`, урезать панели и вызывать `/poteto-mode` только там, где нужна строгость. Больше всего, по словам Лорен, тратят большие рои субагентов, и агенту можно прямо запретить их создавать.

Набор рассчитан на Cursor, часть шагов ссылается на его встроенные функции и на плагин `cursor-team-kit`, который в pstack не входит. Сообщения в рабочий чат и правки тикетов агент делает без вопросов, это стоит сверить с правилами команды. И набор быстро меняется: в июньской версии 0.9.0 было 15 плейбуков, сейчас 23. На наш взгляд, pstack полезнее всего как образец того, как писать плейбуки и принципы для своих скилов, даже если целиком вы его ставить не будете.

Как писать свои скилы, настраивать субагентов и проверять работу агента в Claude Code, разбираем на курсе.

Курс Guide DAO: [Основы Claude Code](https://www.guidedao.xyz/claude)
