pstack is Lauren Tan's (@poteto) set of rigorous engineering skills for coding agents: poteto-mode, how/why, architect, arena, verification skills and a library of principles. It ships as a Cursor plugin. This repo packages it as a Claude Code plugin and keeps it in sync with upstream.
Upstream files are merged in with as few local edits as possible. The principle skills are the one standing edit: each one's frontmatter has its title as the description and no disable-model-invocation, so Claude loads them through the Skill tool. CI fails if a merge brings the flag back. Everything else Claude Code specific lives in new files (.claude-plugin/, hooks/, .github/, scripts/). A small mod adapts Cursor-isms (the Task tool, AskQuestion, Grok model slugs, Cursor agent names) to Claude Code at runtime.
/plugin marketplace add PickleBoxer/claude-plugins
/plugin install pstack@pickleboxerSkills only, without the agents and the mod:
npx skills add PickleBoxer/pstack --skill '*'Install them all: the skills link to each other and to the principles. Without the mod they keep upstream's Cursor wording (Task, Grok models), and poteto-mode is listed by its display name, --skill "Poteto Mode".
Every skill except the principles is typed-only. The principles are listed by title only, so pstack costs little context until you call one.
| Command | What it does |
|---|---|
/pstack:poteto-mode |
Start a task in poteto mode |
/pstack:poteto-help |
Pick the right skill for what you are doing |
/poteto |
Pin poteto mode on or off for this project |
/pstack |
Browse, run and hide pstack skills in a pane |
Skills that use other skills read them from the plugin directly, so the dependency chain works even though every skill is hidden from the model.
| Skill | Uses | Uses in some cases |
|---|---|---|
| poteto-mode | all principles, how, why, architect, arena, swarm, interrogate, figure-it-out, unslop, technical-writing, no-comments, benchmark-checklist, show-me-your-work, reflect, tdd, poteto-agent | |
| architect | how, arena | why, interrogate |
| teach | how, why, unslop | |
| figure-it-out | poteto-mode, show-me-your-work | architect |
| no-comments | Comment Sicko agent | how, why, architect |
| automate-me | unslop, poteto-mode | skill-creator |
| blast-radius | unslop | how, why, arena |
| recall | unslop | why |
| show-me-your-work, technical-writing | unslop | |
| maintain-verification-skill | a skill made by create-verification-skill |
Run /pstack:create-verification-skill once in your project. It writes a project-local verify skill with a feature map of your app.
The feature map drifts as the app changes, so schedule /pstack:maintain-verification-skill to run on its own. In the Claude desktop app, create a scheduled task in the Code tab that runs daily in your project folder with this prompt:
/pstack:maintain-verification-skill
Each run reads every feature from source, drives each one live, and opens at most one PR of proven corrections.
Upstream pairs Grok (code) with Opus (judgment). Here the models are plugin options, prompted on install and editable from /plugin:
| Option | Default | Used for |
|---|---|---|
search_model |
haiku |
read-only searches and the recall fan-out |
code_model |
sonnet |
explorers, investigators, swarm workers and code delegates, where upstream uses Grok |
judgment_model |
opus |
judgment, prose and the hardest changes |
poteto_default |
false |
start new projects with /poteto pinned |
inherit uses the session model.
make-bot-ui(Grok Bot only) andsetup-pstack(writes Cursor rules; replaced by the options above).- cursor-team-kit skills (
deslop,control-ui,control-cli). poteto-mode skips those steps and says so. automations/is left in the tree but not loaded.- Arena, architect and interrogate were designed around disagreement between two model families. Two Claude models disagree less.
main is the Claude Code version. upstream-pstack is a read-only mirror of the pstack/ folder of cursor/plugins, produced with git subtree split.
upstream/main cursor/plugins monorepo (git fetch)
upstream-pstack pstack/ split out of upstream/main
main this plugin, merges upstream-pstack in
sync/upstream short-lived branch for testing a merge
scripts/sync-upstream.sh # refresh upstream-pstack, list unmerged commits
git switch -c sync/upstream main
git merge upstream-pstack
claude plugin validate . && claude plugin test .
git switch main
git merge --ff-only sync/upstream
git branch -d sync/upstreamSkip an upstream commit with git merge -s ours <hash>. New upstream skills are hidden automatically.
version in .claude-plugin/plugin.json is <upstream version>+claude.<n>, and Claude Code updates users whenever it changes:
- A sync that brings a new upstream version resets
n:0.15.16+claude.1. - Any other release bumps
n:0.15.15+claude.2.
Tag each release v<version> and push the tag.
pstack is by Lauren Tan, published by Cursor in cursor/plugins under the MIT license. The Claude Code port is by PickleBoxer, also MIT.