В этой серии постов я покажу вам, как использую pstack — свой личный набор навыков для выполнения тщательной инженерной работы. Это позволило мне с высокой уверенностью отправлять в продакшн 2000 PR в месяц.

Лично я никогда не придавал большого значения тому, сколько строк кода или PR я отправлял. До появления агентов это никого не волновало, и справедливо, ведь сырая продуктивность не всегда равнялась качеству или заметному результату для пользователей. Это был просто тщеславный показатель.
Но в процессе создания pstack я обнаружил, что объем имеет значение, особенно когда вы можете поддерживать или даже повышать качество продукта с помощью агентов. Например, я начал работать над Grok @Bot около 2 месяцев назад, когда он был еще на ранней стадии, а кодовая база была свежей, но уже начинала расти. Несмотря на то, что команда росла и теперь отправляет сотни PR в день в кодовую базу Grok @Bot, pstack позволил мне поддерживать высокое качество кода для всех, пока я постоянно контролирую код, рефакторю, добавляю новые линтеры и проверки, а также работаю над функциями.
https://x.com/poteto/status/2090546476464451907
https://x.com/poteto/status/2078527882499150286
Быть садовником и мейнтейнером Grok @Bot — это то, что мне удалось делать только благодаря pstack. Наш ранний импульс после создания прототипа был очень высок, и многие люди присоединялись к команде. У меня был критический момент возможности провести рефакторинг всей кодовой базы, пока она создавалась и расширялась, без простоев, превратив ее во что-то с прочным фундаментом. Кодовая база высокого качества, которая масштабируется независимо от того, сколько инженеров (и, что самое важное, не-инженеров) вносят в нее вклад. Вся эта работа требует от меня рефакторинга и улучшения основ Grok Bot в процессе его создания, и это возможно только тогда, когда фундамент успевает за количеством вкладов.

Grok Bot — одно из самых эффективных и производительных AI-приложений для настольных компьютеров на рынке.
Доказательством является сам Grok @Bot. В течение следующих нескольких недель я расскажу вам все, что нужно знать, чтобы создать и поддерживать высококачественное приложение с помощью pstack.
Часть 1 – Верификация — это всё, что вам нужно
Самый важный навык, который должен быть в вашем арсенале, — это высококачественный навык верификации. Этот навык настолько важен для развития и поддержания, что я считаю его скорее критической инфраструктурой, чем «просто» навыком. Хороший навык верификации усилит результат работы всей вашей команды, включая не-инженеров. При правильном подходе вы увеличите производительность всей команды в 100-1000 раз.
Если вы не знакомы с термином, верификация означает, что агент может проверять свою собственную работу. Он может продолжать, пока не выполнит задачу успешно, потому что теперь он может замкнуть цикл без вашего участия как узкого места. Если вам интересно узнать больше о том, как я создал свой первый навык верификации для Cursor, прочитайте мой предыдущий пост Циклы, которым можно доверять.
Давайте создадим навык верификации вместе
Для начала установите pstack, а затем запустите /create-verification-skill. Я также рекомендую добавить Dr Eggbot, моего бота, который помогает создавать высококачественных ботов, в ваш список. Dr Eggbot поставляется с pstack. Он научит ботов для кодинга использовать его, а также может создавать некодинговых ботов с той же тщательностью.
Вы можете попросить Dr Eggbot создать для вас бота-инженера, которому затем можно поручить запустить /create-verification-skill и настроить ежедневную рутину для запуска /maintain-verification-skill.

Обожаю Dr Eggbot
Пока это выполняется, давайте разберем, что делает навык и как он создает для вас высококачественный навык верификации.
Я объединил все наши навыки верификации, которые мы используем для создания Grok @Bot и Cursor, в этот навык как своего рода мета-навык. Он учит вашего агента, как создать высококачественный навык для вашего собственного приложения.
И вот здесь важен выбор технологического стека. Если вы создаете приложение на Electron или для веба, например, вы можете воспользоваться богатыми инструментами отладки, доступными в экосистеме JS. Например, Chrome DevTools Protocol (CDP) позволяет использовать те же инструменты, что доступны в инструментах разработчика вашего браузера. Или, если вы создаете iOS-приложение, используйте симулятор.
В идеале вам нужна возможность взаимодействовать с вашим приложением, отлаживать его, снимать профили производительности и использовать любые другие инструменты отладки и разработки, которые вы обычно используете при ручной разработке. Если у вас нет богатой среды выполнения, возможно, вам придется попросить вашего агента создать для вас инструменты (например, используя lldb или специальный пакет, работающий как сайдкар в средах разработки) или просто использовать то, что у вас есть.
Я лично считаю, что агентная верификация настолько важна, что я бы без иронии предложил создать свои собственные богатые инструменты отладки или даже выбрать другой технологический стек, чтобы получить несправедливые преимущества и экстремальную продуктивность в разработке ПО. Как я упоминал ранее, предоставление агентам возможности проверять свою собственную работу открывает возможность для всех в вашей организации вносить вклад и подтверждать, что их изменения действительно работают. Чем сложнее ваш технологический стек в плане отладки и контроля, тем сложнее будет продуктивно использовать агентов.
Сделайте это воспроизводимым
В pstack у нас есть принцип, называемый "Создай рычаг". В контексте создания навыка это означает, что мы предпочитаем давать агентам инструменты, а не просто маркдаун. Для навыков верификации это означает создание небольшого CLI, который скриптует взаимодействие и отладку вашего приложения в небольшой, удобной для агента утилите. Это означает, что агенты потребляют меньше токенов, пытаясь выполнить задачу (запустить команду CLI вместо написания одноразового скрипта для клика по чему-либо), и делает ваш навык верификации более воспроизводимым и тестируемым.
Вот гипотетический пример CLI, который ваш агент может создать для Electron-приложения:
1# health2node .cursor/skills/verify-atlas/control-atlas.mjs doctor34# open a blank thread and send5node .cursor/skills/verify-atlas/control-atlas.mjs new-session6node .cursor/skills/verify-atlas/control-atlas.mjs send "list open tasks in this project"78# keyboard path9node .cursor/skills/verify-atlas/control-atlas.mjs press "Meta+KeyN"1011# accessibility snapshot of the live UI12node .cursor/skills/verify-atlas/control-atlas.mjs snapshot1314# screenshot for evidence15node .cursor/skills/verify-atlas/control-atlas.mjs screenshot /tmp/atlas-proof.png1617# wait for streaming / layout to settle18node .cursor/skills/verify-atlas/control-atlas.mjs wait-settle1920# flip a feature flag for the session21node .cursor/skills/verify-atlas/control-atlas.mjs feature-flag rooms_v2 on
Теперь все агенты могут использовать этот CLI для быстрой навигации и отладки вашего приложения. Вам также стоит начать думать о DevEx (опыте разработчика) при сборке вашего приложения:
- наполнение dev-базы данных
- как обрабатывать аутентификацию, тестовых пользователей, API-вызовы к тестовому/staging окружению
- установка и запуск вашего dev-окружения согласованным образом
Все это то, о чем вам, вероятно, уже приходилось думать, когда вы писали код сами. Так что думайте об этом как об основной утилите ваших агентов для выполнения работы по разработке вашего приложения. Поддерживайте ее в хорошем состоянии и тестируйте!
Вот некоторые другие примеры команд, которые вы, возможно, захотите рассмотреть:
1- **Инспекция:** `info`, `snapshot`, `screenshot`, `components`2- **Навигация:** `home`, `new-session`, `select-project`, `select-runtime`, `scroll`3- **Взаимодействие:** `send`, `click`, `click-xy`, `aria-click`, `type`, `press`, `eval`, `upload-image`, `add-context`, `feature-flag`4- **Производительность:** `trace`, `profile`, `record`, `perf-metrics`, `wait-settle`5- **Стриминг:** `console`, `network-log`, `network-summary`6- **Здоровье и очистка:** `doctor`, `cleanup`, `watch --restart`
Как только у вас будет эта базовая настройка, вы уже должны заметить значительное улучшение в работе ваших агентов. Они должны с легкостью перемещаться по вашему приложению и отлаживать его.
Я рекомендую потратить время на то, чтобы сделать этот CLI качественным и безошибочным, прежде чем переходить к чему-то более продвинутому. Вам также стоит подумать (или попросить вашего агента) о разработке CLI, удобного для агента. В интернете есть много ресурсов, на которые вы можете направить своего агента, но ключевые свойства, которые мне нравятся, таковы:
- API легко компоновать — подумайте о философии глубоких модулей Джона Аутерхаута
- любая команда с потенциально разрушительными побочными эффектами должна иметь опцию --dry-run
- используйте подкоманды для постепенного раскрытия функциональности, а не все сразу
- сообщения об ошибках должны быть очень подробными и говорить агенту, что ему следует сделать вместо этого
- богатый текст --help
- вывод в машиночитаемой форме (например, JSON)
Ускорьтесь с параллелизмом с помощью Cloud Agents вместо worktrees
Когда вы добьетесь определенного успеха в использовании вашего навыка верификации для отправки нескольких PR, вы можете начать задаваться вопросом, можно ли распараллелить больше задач. Например, если агент теперь может взять ваш промпт и в основном довести его до состояния, готового к мержу, разве это не освобождает вас для запуска большего количества агентов?
Вашим первым инстинктом будет добавить поддержку worktree, что означает, что ваши агенты могут использовать git для создания отслеживаемой копии репозитория, где они могут вносить изменения изолированно от основной ветки. Теоретически это позволяет запускать несколько агентов одновременно, не опасаясь, что их изменения перезапишут друг друга.
Я бы рекомендовал этого не делать. Во-первых, это потребляет много дискового пространства и ресурсов вашей машины. Возможно, вам удастся запустить до 10 агентов параллельно с worktrees в зависимости от размера вашего репозитория и мощности вашей машины. Но есть гораздо лучший способ!
Cloud agents от Cursor — это агенты, которые работают в облаке, на инфраструктуре Cursor. У этих агентов есть доступ к реальному компьютеру, что означает, что они могут устанавливать зависимости, запускать ваше приложение, записывать видео и делать скриншоты, а также взаимодействовать с вашим приложением как реальный пользователь. Если вы достаточно вложились в предыдущий шаг, чтобы сделать ваш опыт разработки хорошим, настройка облачных агентов не должна быть огромной проблемой. Когда вы впервые настраиваете свое облачное окружение, мы отправляем агента, чтобы помочь вам настроить и запустить его правильно. После первой сборки мы делаем снимок, что означает, что последующие запуски облачных агентов всегда будут быстрыми.
Я настоятельно рекомендую потратить время на настройку облачных агентов, так как это открывает огромный рост производительности за счет параллелизма. В одном из следующих постов я покажу вам, как я запускаю сотни под-агентов параллельно в облаке! А пока настройте свое окружение и доведите его до состояния, когда вы сможете уверенно запускать всех своих агентов в облаке.
Сохраняйте агентов умными с помощью Feature Maps
По мере того как ваше приложение становится сложнее, агентам требуется больше руководства для поиска функций и взаимодействия с ними. Для этого я придумал то, что называю Feature Map (Карта функций). Как следует из названия, это легко ищемый (searchable) список всех функций, доступных в вашем приложении, их описания и способы доступа к ним с точки зрения пользователя.
Вот пример Feature Map, который я подготовил для вымышленного приложения под названием Atlas. Это всего лишь пара маркдаун-файлов, на которые есть ссылки в SKILL.md навыка верификации.
Вы можете разместить этот файл где угодно, но в /create-verification-skill мы автоматически создаем директорию references/features вместе с README.md. Readme — это сама карта: высокоуровневый обзор всех основных доступных функций со ссылками на конкретные детали. Пример функции выглядит примерно так:
1# Настройки (Preferences)23Полноэкранное наложение настроек и его набор вкладок.45## Подфункции67- settings-overlay: полноэкранное наложение, открываемое через шестеренку или Cmd/Ctrl+,8- settings-nav: левая навигация по вкладкам (Общие, Внешний вид, Модели, План и использование, ...).9- settings-search: поиск внутри наложения (Cmd/Ctrl+K, пока открыты настройки).10- theme-picker: быстрое управление темой на вкладке Внешний вид.1112## Как добраться (с точки зрения пользователя)1314Нажмите на шестеренку рядом с аватаром аккаунта или нажмите Cmd/Ctrl+,. Выберите вкладку в левой навигации. Введите текст в поле поиска настроек для перехода. Escape или кнопка закрытия закрывает наложение.1516## Управление с помощью control-atlas1718bash19node .cursor/skills/verify-atlas/control-atlas.mjs press "Meta+Comma"20node .cursor/skills/verify-atlas/control-atlas.mjs snapshot21node .cursor/skills/verify-atlas/control-atlas.mjs press "Escape"2223- Корень наложения: ищите диалог/область с именем Preferences в дереве доступности (a11y).24- Вкладки: нажимайте по видимому имени. План и использование может отсутствовать для некоторых состояний аккаунта.25- Пока открыты настройки, Cmd/Ctrl+K — это поиск по настройкам, а не глобальная палитра (см. `multi-surface-journeys.md`).2627## Особенности (Gotchas)2829- Закрытие настроек в середине набора шагов может оставить фокус в бесполезном месте. `new-session` или `home` восстанавливают.30- Некоторые вкладки ограничены правами доступа. Пропустите с явным указанием причины для аккаунта.
Не беспокойтесь о том, чтобы писать это самостоятельно! Когда вы запустите /create-verification-skill, ваш агент автоматически пройдется по вашему приложению, каталогизирует все и создаст эти ссылки для вас.
Feature Map в сочетании с CLI — одна из главных причин, почему навыки верификации pstack так хороши. Теперь у агентов есть контекст о каждой функции и о том, как к ней добраться, что экономит драгоценные токены в их контекстном окне и точно учит их, для чего она нужна и как туда попасть.
Вы можете думать о Feature Map как о форме «материализованной памяти». Если вы уже некоторое время используете агентов, вы, вероятно, знакомы с концепцией памяти — обычно она может храниться в виде простых маркдаун-файлов (например, хранилище Obsidian) или даже чего-то более сложного, например векторной базы данных. Лично я считаю, что ваша кодовая база — это высшая форма памяти. Код — это проекция решений, принятых вами и вашей командой, и он представляет собой источник истины о том, что произошло и как все работает на самом деле. Feature Map — это просто более компактная форма этого, предназначенная для экономии токенов. И поскольку это просто маркдаун внутри навыка, все, кто вносит вклад в вашу кодовую базу, выигрывают от этой общей памяти.
Это означает, что поддержание навыка верификации очень важно. Я рекомендую запускать /maintain-verification-skill как минимум раз в день, чтобы ваши агенты всегда имели самую свежую информацию об управлении вашим приложением. Вы также можете заметить, что по мере более активного использования навыка верификации агенты будут автоматически обновлять его во время работы над вашим приложением. /maintain-verification-skill ловит все, что было пропущено.
Как использовать ваш навык верификации
Для справки, вот пример навыка верификации, созданного для вымышленного приложения: https://github.com/poteto/verification-skill-example. Напоминаю, запустите /create-verification-skill, чтобы создать его, что включает базовый CLI и Feature Map.
Вот как я обычно использую его с pstack.
Во-первых, конечно, нужно начать ваш промпт с /poteto-mode. Если вы используете pstack через Cursor, вы также можете нажать Opt + Enter вместо просто Enter, когда автодополняется /poteto-mode — это добавляет навык как Custom Mode, который закрепляет навык, так что ваш агент получает напоминание использовать навык на каждом новом шаге.

Введите /poteto-mode и нажмите Opt + Enter, чтобы закрепить его как Custom Mode
В Grok @Bot установите плагин, затем введите /poteto-mode.

Вы также можете использовать pstack в Grok Bot!
Пример: Создание новых функций
Для создания новых функций я обычно использую навык верификации вместе с /poteto-mode, чтобы агент проверял свою работу. Например, я могу задать такой промпт:
/poteto-mode build <описание функции, любой полезный контекст>. используй /control-app для проверки своих изменений и покажи мне видео и скриншоты в качестве доказательства
Где /control-app — это результат работы /create-verification-skill. В Grok @Bot я бы задал такой промпт:
запусти облачного агента, чтобы использовать /poteto-mode для создания <описание функции, любой полезный контекст>. используй /control-app для проверки своих изменений и покажи мне видео и скриншоты в качестве доказательства
Небольшое различие здесь в том, что в Grok @Bot вы говорите своему боту запустить облачного агента вместо того, чтобы делать работу самому. Основная причина, по которой я предпочитаю так делать, заключается в том, что это освобождает вашего бота для других задач и сохраняет его контекстное окно чистым. В этом смысле я думаю о своих ботах больше как о координаторах, которые управляют облачными агентами и контролируют их. Облачные агенты также означают, что вы можете воспользоваться полным набором моделей, доступных в Cursor, у которых есть своя отдельная машина, так что компьютер вашего бота остается свободным для других задач.
Пример: Работа с производительностью
запусти облачного агента, чтобы использовать /poteto-mode для улучшения времени начальной загрузки нашего приложения. сначала используй /control-app, чтобы снять профиль (trace) текущего состояния и определить возможности для улучшения. затем сделай целенаправленное исправление и используй /control-app +
/swarm для подтверждения выигрыша
/swarm — один из лучших навыков для сочетания с вашим навыком верификации. Он разворачивает любое количество облачных агентов для запуска вашего навыка верификации, так что вы можете делать такие вещи, как подтверждение выигрыша в производительности с достаточно большой выборкой или фаззинг вашего приложения, чтобы убедиться, что вы ничего не сломали и не вызвали регрессию.
Пример: Автоматическое воспроизведение отчетов пользователей
Когда вы будете довольны своим навыком верификации, вы можете поместить их в рутины Grok @Bot или Cursor Automations. Рутины и автоматизации позволяют запускать задачи по расписанию или при наступлении определенного события.
Например, если вы направляете отзывы пользователей в Slack и/или у вас есть собственный внутренний канал обратной связи, вы можете настроить своих ботов на прослушивание каждого отчета и автоматическую попытку воспроизвести его с помощью облачного агента. Если ваш навык верификации и Feature Map достаточно хороши, вы можете даже решить автоматически исправлять проблемы.
Вот почему я сказал ранее, что верификация — один из самых важных навыков в вашем арсенале. Он дает вам основу для создания новых навыков и рутин поверх него. И, что самое важное, от этого выигрывает вся ваша команда.
Инвестируйте в свой навык верификации
Как только вы создали свой навык верификации, поддерживайте его в остроте с помощью /maintain-verification-skill. Продолжайте улучшать CLI и инвестируйте в навык, как в критическую инфраструктуру. Возможно, вы даже захотите ввести дежурства по нему — вот насколько он важен для достижения 100-1000-кратной производительности вашей команды.
Этот навык является основой для многих других навыков, которые мы рассмотрим в руководстве по pstack, и он прекрасно сочетается со всеми ними.
- pstack: https://x.ai/bot/plugin/9717366 (ссылка на github
- Dr Eggbot: https://x.ai/bot/93gOz3op1UQdBdbekQFLK
Я рекомендую добавить Dr Eggbot, моего бота, который помогает создавать высококачественных ботов, в ваш список. Dr Eggbot поставляется с pstack. Он научит ботов для кодинга использовать его, а также может создавать некодинговых ботов с той же тщательностью.
Вы можете попросить Dr Eggbot создать для вас бота-инженера, которому затем можно поручить запустить /create-verification-skill и настроить ежедневную рутину для запуска /maintain-verification-skill.
Спасибо за чтение и следите за Частью 2!





