pstack: a Cursor engineer's open-source skill pack that makes agents prove their work

Week 428 min read

TL;DR

pstack is a free, MIT-licensed plugin of agent skills from Cursor engineer Lauren Tan. Its /poteto-mode skill picks one of 22 playbooks for a task, applies engineering principles such as proving the work on the real app, and can have four models review a diff.

On this page

pstack is a free plugin of skills and playbooks from Lauren Tan, an engineer at Cursor. It routes a task to the right engineering routine, makes the agent verify its work on the real app, and has several models try to break the result.

pstack in cursor/plugins (GitHub)The plugin folder. The README lists every playbook, skill and principle, and the guide walks through a first task.github.com →
At a glance
Repo
cursor/plugins, folder pstack
Licence
MIT
Maintained by
Lauren Tan (poteto), an engineer at Cursor, inside Cursor's official plugins repository
Activity
Version 0.15.25 on 15 October 2026. First committed in May 2026, per FAUN. The repo showed 7.2k stars on the newest copy read, and older cached copies showed 2.4k to 3.5k
Install
/add-plugin pstack, then /setup-pstack

What it does

pstack is a bundle of skills, subagents and rules for Cursor. Its README describes it as the skills its author uses every day to ship at Cursor, built on one idea: if you want to go fast, go deep first, and write less code of higher quality.

The entry point is /poteto-mode. It reads the request, matches one of 22 playbooks, copies that playbook's steps into a todo list word for word, and calls other skills as the steps need them. The playbooks cover bug fixes, performance work, features, refactors, prototypes, pixel-level visual matching, babysitting a pull request, shipping a verified stack of PRs and overnight autonomous runs. The mode is sticky: it stays on across turns until you opt out, and the README says it works well with Cursor's /loop command for runs that last many hours.

The skills underneath are small and single-purpose. /how and /why explain a subsystem and its history, /interrogate reviews a diff, and /tdd, /unslop and /bro handle test-first fixes, prose cleanup and plain-language restatements. Twenty-one principle skills hold one rule each, and the mode reads an index of them at the start of every task. The mode file tells the agent to name each principle that shaped a decision, and the specific choice it changed, in its reply.

The good parts

Reading the skill files, nine ideas stand out.

  • It makes the agent prove its work. The Prove It Works principle says to verify against the real artifact (run the feature, read the actual value, inspect the diff) and not a proxy such as "it compiles." The bug-fix playbook reproduces the defect first, and the recipes page lists reporting success off a green build as a pitfall.
  • It reviews by disagreement between models. /interrogate sends one diff and rubric to a read-only reviewer per configured model. The skill file defaults to Claude Fable 5, GPT-5.6 Sol, Grok 4.6 Fast and Claude Opus 5. Findings raised by two or more models count as high signal. The lead agent sorts each finding into Act on, Consider, Noted or Dismissed with a reason, shows what it dismissed, and never applies changes by itself.
  • It gives different models different jobs. Out of the box, precisely specified code goes to Sol, fast mechanical code to Grok, and prose and judgment to Fable. /setup-pstack writes a rules file that maps each role to a model, and every skill falls back to defaults without it.
  • It keeps two kinds of parallelism apart. /arena runs several attempts at one brief and grafts the best parts together. /swarm splits work into slices and returns one report. The guide warns against using arena for coverage and against running parallel agents in one worktree.
  • It leans toward deleting. The Laziness Protocol principle prefers deletion and the smallest change that solves the problem, and Subtract Before You Add removes dead weight first. /no-comments strips comments before review, and /unslop removes AI tells from prose.
  • It settles fact questions by running something. Before asking the human which approach to take, the mode checks whether running something would answer it. If so, it builds a throwaway sketch with the Prototype playbook and lets the result decide.
  • It pauses only for what cannot be undone. Never Block on the Human says to proceed on reversible work and present the result. Force-pushes to shared branches, deploys, data deletion and customer messages always pause. The mode also tells the agent that "no" is an acceptable answer when asked to add scope.
  • It leaves a trail for unattended runs. /show-me-your-work logs decisions to a TSV file that can be committed, and the recipes page includes a sample prompt that asks for a decision log to audit in the morning.
  • It can learn your style. /automate-me mines your recent transcripts, drafts a skill named after you from how you actually work, and routes through pstack underneath.

Try it in five minutes

In her X post, Tan calls pstack her "personal set of skills for rigorous and autonomous engineering with agents" and says it is "updated frequently as I continue to tune and simplify them." Her 10-second tutorial has three steps: run /setup-pstack and choose a budget, put /poteto-mode in front of any prompt that needs rigor, and ask /poteto-help when unsure which skill to use.

The longer version
  1. Install itIn a Cursor chat, run /add-plugin pstack.
  2. Set it upRun /setup-pstack, pick a reasoning budget and the models you want. It writes a rules file at ~/.cursor/rules/pstack-models.mdc.
  3. Start a taskPick /poteto-mode from the / menu, then give a goal and a way to check it, for example /poteto-mode the export writes duplicate rows when a retry lands mid-run. repro first, then fix and verify.
  4. Keep it onPress option+enter on a Mac or alt+enter on Windows instead of enter, which makes it a custom mode that stays on. Plain enter attaches it to one message only.
  5. Ask for help/poteto-help suggests which skill, playbook or principle fits when you are unsure.
  6. Add the extrasInstall the cursor-team-kit plugin alongside for /deslop and the skills that drive CLIs and browsers.

The plugin is free. The cost is model usage on your Cursor plan, and /interrogate runs one reviewer per configured model, which is four by default.

What it replaces and what surrounds it

pstack adds to Cursor's built-in features and sits beside Cursor's own team kit. Community ports carry it to other tools. Everything below is free to install, and model usage is billed separately.

Option What it is How it relates to pstack
Cursor plan mode Built-in planning pstack works with it. Its author says she does not believe in planning and that the best spec is code
Cursor's built-in /babysit Built-in skill for pull request status Inside /poteto-mode, pstack's own babysit playbook takes over PR-status requests
cursor-team-kit Cursor's own plugin for CI, code review, shipping and verification pstack points to its /deslop and the skills that drive CLIs and browsers
pstack-claude A port for Claude Code, Codex, OpenCode, Gemini and Prime Agent Community port that adds a routing hook. It says it has no server or telemetry
pi-pstack A native package for the Pi coding agent Community port based on pstack 0.11.12. Its page says Pi extensions run with your permissions, so read the source first
ystack A portable adaptation for Claude Code, Codex, Droid, OpenCode and Cursor Community adaptation that keeps the upstream mode contract

The licences of the ports were not checked. The pstack-claude page credits the original to Lauren Tan and the imported team-kit skills to Cursor.

Who's behind it

Lauren Tan, who goes by poteto, wrote it. Her README says she has worked with millions of lines of code at Meta, Netflix and Cursor and is on the React core team, where she helps maintain React Compiler. The code sits in Cursor's official plugins repository under the MIT licence, and the README invites forks and pull requests.

Her employer changed in August 2026. Cursor announced that its acquisition by SpaceX had closed on 14 August and that its team would join SpaceXAI to work on Grok Build, Grok Bot, the Grok API and Cursor. Tan appeared on a podcast about Grok Bot and Grok 4.6, and public profiles list her as working on Grok Bot and Cursor at SpaceXAI. Those profiles are secondary sources, and the pstack README still says she ships at Cursor.

She announced pstack in May 2026 in an X post titled How I Use Cursor. In it she said the skills had become some of the most used on the Cursor team and had been used 9,000 times in a week. That figure is hers and has no independent check. The project keeps moving: a pull request on 2 August 2026 took it to 0.13.0 with two autonomous delivery playbooks, and plugin.json showed 0.15.25 when read. Cursor's Bugbot reviews pull requests in the repository.

Best for

  • Cursor users who run long or parallel agent tasks and want a repeatable routine: reproduce first, verify on the real app, review with several models, and keep a decision log when stepping away.

Skip if

  • you want quick one-off edits, since the mode is built for rigor. Also skip it if you dislike an opinionated style (the README says poteto-mode is the author's own style and offers /automate-me for building yours), if multi-model usage would strain your plan, or if you work outside Cursor and do not want to rely on a community port.

Sources

  1. pstack README and plugin.json: purpose, playbooks, skills, principles, version and licence.
  2. poteto-mode skill and interrogate skill: the rules, defaults and review process.
  3. The pstack guide and recipes and pitfalls: usage patterns and mistakes.
  4. Lauren Tan on X: the 10-second tutorial post, as supplied. How I Use Cursor: the May launch post and the 9,000 uses claim.
  5. Cursor is now a part of SpaceX: the acquisition closing and the team joining SpaceXAI.
  6. MTS podcast episode and a public profile: Tan's work on Grok Bot. The profile is a secondary source.
  7. FAUN toolbox entry: first commit in May 2026.
  8. Pull request 185 and pull request 164: the 0.13.0 release and the setup file path.
  9. pstack-claude, pi-pstack and ystack: community ports.

Continue reading