La guía completa de pstack (Parte 1)

@poteto
INGLÉS31 ago 2026
620K
4.8K
412
165
10.3K

TL;DR

Lauren (@poteto) presenta pstack, un framework para escalar la ingeniería con agentes de IA. La primera parte se centra en desarrollar habilidades de verificación y mapas de funcionalidades para que los agentes puedan probar y navegar por bases de código de forma autónoma.

En esta serie de publicaciones, te voy a mostrar cómo uso pstack, mi conjunto personal de habilidades para realizar trabajo de ingeniería riguroso. Me ha permitido enviar 2,000 PRs al mes a producción con alta confianza.

lauren - inline image

Personalmente, nunca le he dado mucha importancia a la cantidad de líneas de código o PRs que estaba enviando. Antes de los agentes, a nadie le importaba, y con razón, ya que la productividad bruta no siempre equivalía a calidad o a un resultado visible para los usuarios. Era simplemente una métrica vanidosa.

Pero he descubierto, durante el proceso de construir pstack, que el volumen sí importa, especialmente cuando puedes mantener o incluso aumentar el nivel de calidad del producto con agentes. Por ejemplo, comencé a trabajar en Grok @Bot hace unos 2 meses, cuando aún estaba en sus inicios y la base de código era nueva pero empezaba a crecer. A pesar de que el equipo crecía y ahora envía cientos de PRs al día a la base de código de Grok @Bot, pstack me ha permitido mantener la calidad del código alta para todos, mientras superviso constantemente el código, refactorizo, añado nuevas comprobaciones y lints, y también trabajo en funcionalidades.

https://x.com/poteto/status/2090546476464451907

https://x.com/poteto/status/2078527882499150286

Ser el jardinero y mantenedor de Grok @Bot es algo que solo pude lograr gracias a pstack. Nuestro impulso inicial después de construir el prototipo fue muy alto y mucha gente se unió al equipo. Tuve un momento crítico de oportunidad para refactorizar toda la base de código, mientras se construía y ampliaba y sin tiempo de inactividad, para convertirla en algo con bases sólidas. Una base de código de alta calidad que escala sin importar cuántos ingenieros (y lo más importante, no ingenieros) contribuyan a ella. Todo este trabajo requiere que refactorice y mejore los cimientos de Grok Bot mientras se construye, y solo puedes hacerlo cuando los cimientos pueden seguir el ritmo de la cantidad de contribuciones.

lauren - inline image

Grok Bot es una de las aplicaciones de escritorio de IA más eficientes y con mejor rendimiento del mercado

La prueba está en el propio Grok @Bot. Durante las próximas semanas, te contaré todo lo que necesitas saber para poder construir y mantener una aplicación de alta calidad usando pstack.

Parte 1 – La verificación es todo lo que necesitas

La habilidad más crítica que debes tener en tu caja de herramientas es una habilidad de verificación de alta calidad. Esta habilidad es tan importante de tener y mantener que la considero más como una infraestructura crítica que como una "simple" habilidad. Una buena amplificará el resultado de todo tu equipo, incluidos los no ingenieros. Bien hecha, multiplicarás por 100 o 1000 el resultado de todo tu equipo.

Si no estás familiarizado con el término, verificación significa que un agente puede verificar su propio trabajo. Puede seguir adelante hasta que tenga éxito en su tarea, porque ahora puede cerrar el ciclo sin que tú seas el cuello de botella. Si te interesa saber más sobre la historia de cómo creé mi primera habilidad de verificación para Cursor, echa un vistazo a mi publicación anterior Loops You Can Trust.

Construyamos una habilidad de verificación juntos

Para empezar, instala pstack y luego ejecuta /create-verification-skill. También recomiendo añadir a Dr Eggbot, mi bot que te ayuda a crear bots de alta calidad, a tu equipo. Dr Eggbot viene incluido con pstack. Le enseñará a los bots de codificación cómo usarlo, y también puede crear bots que no sean de codificación con el mismo rigor.

Puedes pedirle a Dr Eggbot que te cree un bot ingeniero al que luego puedas pedirle que ejecute /create-verification-skill y configure una rutina diaria para ejecutar /maintain-verification-skill.

lauren - inline image

Amo a Dr Eggbot

Mientras eso se ejecuta, repasemos qué hace la habilidad y cómo te crea una habilidad de verificación de alta calidad.

Destilé todas nuestras habilidades de verificación que usamos para construir Grok @Bot y Cursor en esta habilidad como una especie de meta-habilidad. Le enseña a tu agente cómo crear una de alta calidad para tu propia aplicación.

Aquí es donde la elección del stack tecnológico es importante. Por ejemplo, si estás construyendo una aplicación en Electron o para la web, puedes aprovechar las ricas herramientas de depuración disponibles en el ecosistema JS. Por ejemplo, el Chrome DevTools Protocol (CDP) te permite usar las mismas herramientas disponibles en las herramientas de desarrollador de tu navegador. O si estás construyendo una aplicación iOS, usando el simulador.

Idealmente, quieres la capacidad de interactuar con tu aplicación, depurarla, tomar trazas de rendimiento y cualquier otra herramienta de depuración y desarrollo que usarías normalmente si estuvieras desarrollando la aplicación manualmente. Si no tienes un runtime enriquecido para usar, es posible que necesites pedirle a tu agente que te cree herramientas (por ejemplo, usando lldb, o un paquete personalizado que se ejecute como sidecar en entornos de desarrollo), o simplemente usar lo que tengas disponible.

Personalmente, creo que la verificación agéntica es tan importante que sugeriría sin ironía construir tus propias herramientas de depuración enriquecidas, o incluso elegir un stack tecnológico diferente, para tener ventajas injustas y una productividad extrema en la construcción de software. Como mencioné antes, dar a los agentes la capacidad de verificar su propio trabajo desbloquea a todos en tu organización para que puedan contribuir y validar que sus cambios realmente funcionan. Cuanto más difícil sea depurar y controlar tu stack tecnológico, más difícil será usar agentes de manera productiva.

Hazlo Reproducible

En pstack, tenemos un principio llamado "Build the Lever". Lo que esto significa en el contexto de crear una habilidad es que preferimos dar a los agentes herramientas en lugar de solo markdown. Para las habilidades de verificación, esto significa crear una pequeña CLI que automatice la interacción y depuración de tu aplicación en una utilidad pequeña y amigable para el agente. Esto significa que los agentes consumen menos tokens al intentar realizar una tarea (ejecutar un comando CLI en lugar de escribir un script desechable para hacer clic en algo), y hace que tu habilidad de verificación sea más reproducible y comprobable.

Aquí hay un ejemplo hipotético de una CLI que tu agente podría crear para una aplicación Electron:

bash
1# health
2node .cursor/skills/verify-atlas/control-atlas.mjs doctor
3
4# open a blank thread and send
5node .cursor/skills/verify-atlas/control-atlas.mjs new-session
6node .cursor/skills/verify-atlas/control-atlas.mjs send "list open tasks in this project"
7
8# keyboard path
9node .cursor/skills/verify-atlas/control-atlas.mjs press "Meta+KeyN"
10
11# accessibility snapshot of the live UI
12node .cursor/skills/verify-atlas/control-atlas.mjs snapshot
13
14# screenshot for evidence
15node .cursor/skills/verify-atlas/control-atlas.mjs screenshot /tmp/atlas-proof.png
16
17# wait for streaming / layout to settle
18node .cursor/skills/verify-atlas/control-atlas.mjs wait-settle
19
20# flip a feature flag for the session
21node .cursor/skills/verify-atlas/control-atlas.mjs feature-flag rooms_v2 on

Ahora, todos los agentes pueden usar esta CLI para navegar y depurar tu aplicación rápidamente. También querrás empezar a pensar en la experiencia de desarrollo de construir tu aplicación:

  • sembrar una base de datos de desarrollo
  • cómo manejar la autenticación, usuarios de prueba, llamadas API contra un entorno de prueba/staging
  • instalar y levantar tu entorno de desarrollo de manera consistente

Todo esto es algo que probablemente ya necesitabas considerar cuando escribías código tú mismo. Así que piensa en esto como la utilidad principal de tus agentes para hacer trabajo de desarrollo en tu aplicación. ¡Mantenla bien mantenida y probada!

Algunos otros comandos de ejemplo que podrías considerar:

markdown
1- **Inspección:** `info`, `snapshot`, `screenshot`, `components`
2- **Navegación:** `home`, `new-session`, `select-project`, `select-runtime`, `scroll`
3- **Interacción:** `send`, `click`, `click-xy`, `aria-click`, `type`, `press`, `eval`, `upload-image`, `add-context`, `feature-flag`
4- **Rendimiento:** `trace`, `profile`, `record`, `perf-metrics`, `wait-settle`
5- **Streaming:** `console`, `network-log`, `network-summary`
6- **Salud y limpieza:** `doctor`, `cleanup`, `watch --restart`

Una vez que tengas esta configuración básica, ya deberías empezar a ver una gran mejora en tus agentes. Deberían poder navegar y depurar tu aplicación con facilidad.

Recomiendo dedicar tiempo aquí para que esta CLI sea buena y esté libre de errores antes de hacer algo más avanzado. También querrás pensar (o pedirle a tu agente) en diseñar una CLI amigable para el agente. Hay muchos recursos en línea a los que puedes dirigir a tu agente, pero las propiedades clave que me gustan son:

  • la API es fácil de componer - piensa en la filosofía de módulos profundos de John Ousterhout
  • cualquier comando con efectos secundarios potencialmente destructivos debe tener una opción --dry-run
  • usa subcomandos para revelar funcionalidad gradualmente en lugar de todo a la vez
  • los mensajes de error deben ser muy descriptivos y decirle al agente qué debería hacer en su lugar
  • texto --help enriquecido
  • salidas devueltas en formato legible por máquina (por ejemplo, JSON)

Acelera con paralelismo usando Cloud Agents en lugar de worktrees

Cuando hayas tenido algo de éxito ejecutando tu habilidad de verificación para enviar algunos PRs, podrías empezar a preguntarte si puedes paralelizar más. Por ejemplo, si un agente ahora puede tomar tu prompt y llevarlo mayormente a un estado fusionable, ¿no te libera eso para ejecutar más agentes?

Tu primer instinto será añadir soporte para worktrees, lo que significa que tus agentes pueden usar git para crear una copia rastreada del repositorio donde puedan hacer cambios de forma aislada del checkout principal. En teoría, esto te permite ejecutar múltiples agentes a la vez sin que sus cambios se sobrescriban entre sí.

Recomendaría no hacer esto. Por un lado, usa mucho espacio de almacenamiento y recursos en tu máquina. Puede que puedas ejecutar hasta 10 agentes en paralelo con worktrees dependiendo del tamaño de tu repositorio y de lo potente que sea tu máquina. ¡Pero hay una forma mucho mejor!

Los cloud agents de Cursor son agentes que se ejecutan en la nube, en la infraestructura de Cursor. Estos agentes tienen acceso a una computadora real, lo que significa que pueden instalar dependencias, ejecutar tu aplicación, tomar videos y capturas de pantalla, e interactuar con tu aplicación como lo haría un usuario real. Si has invertido lo suficiente en el paso anterior para hacer que tu experiencia de desarrollo sea buena, no debería ser un gran esfuerzo poder configurar cloud agents. Cuando configures tu entorno en la nube por primera vez, enviamos un agente para ayudarte a configurarlo y ejecutarlo correctamente. Después de la primera compilación, tomamos una snapshot, lo que significa que las ejecuciones posteriores del cloud agent siempre se inician rápidamente.

Recomiendo encarecidamente tomarse el tiempo para configurar cloud agents, ya que desbloquea un aumento masivo en la productividad a través del paralelismo. ¡En una publicación posterior te mostraré cómo ejecuto cientos de subagentes en paralelo en la nube! Pero por ahora, configura tu entorno y llévalo a un estado en el que puedas empezar a sentirte seguro de ejecutar todos tus agentes en la nube.

Mantén a los agentes inteligentes con Mapas de Funcionalidades

A medida que tu aplicación se vuelve más compleja, los agentes necesitan más orientación para poder encontrar funcionalidades e interactuar con ellas. Para ello, he ideado algo que llamo el Mapa de Funcionalidades. Como su nombre indica, es un mapa fácilmente buscable de todas las funcionalidades disponibles en tu aplicación, qué hace cada una y cómo llegar a ella desde la perspectiva del usuario.

Aquí tienes un ejemplo de Mapa de Funcionalidades que he preparado para una aplicación ficticia llamada Atlas. Son solo un par de archivos markdown que se mencionan en el SKILL.md de la verificación.

Puedes poner este archivo en cualquier lugar, pero en /create-verification-skill creamos automáticamente un directorio references/features junto con un README.md. El readme es el mapa en sí mismo: una visión general de alto nivel de todas las funcionalidades principales disponibles, con enlaces a detalles específicos. Un ejemplo de funcionalidad se ve así:

markdown
1# Preferencias
2
3Superposición de pantalla completa de preferencias y su conjunto de pestañas.
4
5## Sub-funcionalidades
6
7- settings-overlay: superposición de pantalla completa abierta desde el engranaje o Cmd/Ctrl+,
8- settings-nav: navegación izquierda de pestañas (General, Apariencia, Modelos, Plan y Uso, ...).
9- settings-search: búsqueda dentro de la superposición (Cmd/Ctrl+K mientras la configuración está abierta).
10- theme-picker: control rápido de tema en Apariencia.
11
12## Cómo llegar (desde el punto de vista del usuario)
13
14Haz clic en el engranaje junto al avatar de la cuenta, o presiona Cmd/Ctrl+,. Elige una pestaña de la navegación izquierda. Escribe en el cuadro de búsqueda de preferencias para saltar. Escape o el control de cierre descarta.
15
16## Cómo manejarlo con control-atlas
17
18bash
19node .cursor/skills/verify-atlas/control-atlas.mjs press "Meta+Comma"
20node .cursor/skills/verify-atlas/control-atlas.mjs snapshot
21node .cursor/skills/verify-atlas/control-atlas.mjs press "Escape"
22
23- Raíz de la superposición: busca un diálogo/región llamado Preferencias en el árbol de accesibilidad.
24- Pestañas: haz clic por nombre visible. Plan y Uso puede estar ausente para algunos estados de cuenta.
25- Mientras la configuración está abierta, Cmd/Ctrl+K es la búsqueda de preferencias, no la paleta global (consulta `multi-surface-journeys.md`).
26
27## Problemas comunes
28
29- Cerrar la configuración a mitad de una suite puede dejar el foco en un lugar inútil. `new-session` o `home` lo recuperan.
30- Algunas pestañas están restringidas por permisos. Omite con una razón de cuenta explícita.

¡No te preocupes por escribir esto tú mismo! Cuando ejecutes /create-verification-skill, tu agente revisará automáticamente tu aplicación, catalogará todo y creará estas referencias para ti.

El Mapa de Funcionalidades, cuando se combina con la CLI, es una de las principales razones por las que las habilidades de verificación de pstack son tan buenas. Los agentes ahora tienen contexto sobre cada funcionalidad y cómo llegar a ella, ahorrando valiosos tokens en su ventana de contexto y enseñándoles exactamente para qué sirve y cómo llegar.

Puedes pensar en el Mapa de Funcionalidades como una forma de "memoria materializada". Si has estado usando agentes por un tiempo, probablemente estés familiarizado con el concepto de memoria; normalmente, estos podrían almacenarse como simples archivos markdown (por ejemplo, una bóveda de Obsidian), o incluso algo más complejo como una base de datos vectorial. Personalmente, creo que tu base de código es la forma definitiva de memoria. El código es una proyección de las decisiones que tú y tu equipo han tomado y representa la fuente de la verdad sobre lo que ha sucedido y cómo funcionan realmente las cosas. Un Mapa de Funcionalidades es solo una forma más compacta de eso, diseñada para ahorrar tokens. Y debido a que es solo markdown dentro de una habilidad, todos los que contribuyen a tu base de código se benefician de esta memoria compartida.

Esto significa que mantener la habilidad de verificación es realmente importante. Recomiendo ejecutar /maintain-verification-skill al menos una vez al día para asegurarte de que tus agentes siempre tengan los últimos detalles sobre el control de tu aplicación. También puedes descubrir, a medida que usas más tu habilidad de verificación, que los agentes las actualizarán automáticamente mientras trabajan en tu aplicación. /maintain-verification-skill captura lo que sea que se haya pasado por alto.

Cómo usar tu habilidad de verificación

Como referencia, aquí hay un ejemplo de habilidad de verificación creada para una aplicación ficticia: https://github.com/poteto/verification-skill-example. Como recordatorio, ejecuta /create-verification-skill para crear una, que incluye una CLI básica y un Mapa de Funcionalidades.

Así es como suelo usarla con pstack.

Primero, por supuesto, es comenzar tu prompt con /poteto-mode. Si estás usando pstack a través de Cursor, también puedes presionar Opt + Enter en lugar de solo Enter cuando autocompletes /poteto-mode; esto añade la habilidad como un Custom Mode, que fija la habilidad para que tu agente recuerde usarla en cada nuevo turno.

lauren - inline image

Escribe /poteto-mode y presiona Opt + Enter para fijarlo como un Custom Mode

En Grok @Bot, instala el plugin, luego escribe /poteto-mode.

lauren - inline image

¡También puedes usar pstack en Grok Bot!

Ejemplo: Construyendo nuevas funcionalidades

Para construir nuevas funcionalidades, normalmente uso la habilidad de verificación junto con /poteto-mode para que el agente verifique su trabajo. Por ejemplo, podría pedir algo como:

/poteto-mode build <descripción de la funcionalidad, cualquier contexto útil>. usa /control-app para verificar tus cambios y muéstrame un video y capturas de pantalla como prueba

Siendo /control-app el resultado de /create-verification-skill. En Grok @Bot, pediría algo como:

spawn a cloud agent to use /poteto-mode to build <descripción de la funcionalidad, cualquier contexto útil>. usa /control-app para verificar tus cambios y muéstrame un video y capturas de pantalla como prueba

La pequeña diferencia aquí es que en Grok @Bot le dices a tu bot que genere un cloud agent en lugar de hacer el trabajo él mismo. La razón principal por la que prefiero hacer esto es porque libera a tu bot para hacer otras cosas y mantiene limpia su ventana de contexto. En ese sentido, pienso en mis bots más como coordinadores que gestionan y supervisan cloud agents. Los cloud agents también significan que puedes aprovechar la gama completa de modelos disponibles en Cursor que tienen su propia máquina separada, por lo que la computadora de tu bot permanece libre para otras cosas.

Ejemplo: Trabajo de rendimiento

spawn a cloud agent to use /poteto-mode to improve the initial loading time of our app. first use /control-app to take a trace of the status quo, and identify opportunities for improvement. then do a targeted fix and use /control-app + a

/swarm to confirm the win

/swarm es una de las mejores habilidades para combinar con tu habilidad de verificación. Despliega cualquier número de cloud agents para ejecutar tu habilidad de verificación, para que puedas hacer cosas como confirmar una mejora de rendimiento con un tamaño de muestra suficientemente grande, o hacer fuzzing de tu aplicación para asegurarte de que no rompiste o degradaste nada.

Ejemplo: Reproducir automáticamente informes de usuarios

Cuando estés satisfecho con tu habilidad de verificación, puedes ponerlos dentro de las rutinas de Grok @Bot, o Cursor Automations. Las rutinas y automatizaciones te permiten ejecutar cosas en un horario, o activarlas cuando ocurre un evento.

Por ejemplo, si canalizas los comentarios de los usuarios a Slack, y/o tienes tu propio canal de comentarios interno, puedes hacer que tus bots escuchen cada informe e intenten reproducirlos automáticamente con un cloud agent. Si tu habilidad de verificación y Mapa de Funcionalidades son lo suficientemente buenos, incluso podrías decidir auto-corregir los problemas también.

Hay una razón por la que dije antes que la verificación es una de las habilidades más importantes en tu caja de herramientas. Te da una base para construir nuevas habilidades y rutinas encima. Y lo más importante, todo tu equipo se beneficia.

Invierte en tu habilidad de verificación

Una vez que hayas creado tu habilidad de verificación, mantenla afilada con /maintain-verification-skill. Sigue mejorando la CLI e invierte en la habilidad como lo harías con una infraestructura crítica. Incluso podrías querer poner una rotación de guardia en ella: así de importante es para desbloquear una productividad 100-1000x para tu equipo.

Esta habilidad es la base para muchas otras habilidades que cubriremos en la guía de pstack, y se combina maravillosamente con todas ellas.

Recomiendo añadir a Dr Eggbot, mi bot que te ayuda a crear bots de alta calidad, a tu equipo. Dr Eggbot viene incluido con pstack. Le enseñará a los bots de codificación cómo usarlo, y también puede crear bots que no sean de codificación con el mismo rigor.

Puedes pedirle a Dr Eggbot que te cree un bot ingeniero al que luego puedas pedirle que ejecute /create-verification-skill y configure una rutina diaria para ejecutar /maintain-verification-skill.

¡Gracias por leer y estad atentos a la Parte 2!

Guardar con un clic

Lee artículos virales en profundidad con IA en YouMind

Guarda la fuente, haz preguntas concretas, resume el argumento y convierte un artículo viral en notas reutilizables en un único espacio de trabajo con IA.

Explora YouMind
Para creadores

Convierte tu Markdown en un artículo de 𝕏 impecable

Cuando publicas tus propios textos largos, dar formato en 𝕏 a imágenes, tablas y bloques de código es un fastidio. YouMind convierte un borrador completo en Markdown en un artículo de 𝕏 impecable y listo para publicar.

Prueba Markdown a 𝕏

Más patrones por descifrar

Artículos virales recientes

Explorar más artículos virales