Oct 20, 2026

Get Opinionated, Verified Agent Workflows With pstack-claude

pstack-claude ports Lauren Tan's pstack skill stack from Cursor to Claude Code, Codex, Pi, and Copilot: tell poteto-mode your goal and it reproduces, investigates, delegates, and verifies — handing you failing and passing evidence.

#tutorial#workflow#claude-code

Agent coding fails in a predictable way: the model edits three files at once, reports success, and leaves you a bug that only shows up on the path it did not run. pstack-claude is a 3k-star port of Lauren Tan's opinionated pstack skill stack — originally built for Cursor — to Claude Code, Codex, Pi, GitHub Copilot, and other harnesses. Tell poteto-mode your goal and it invokes the right workflow for the task, keeping code concise, simple, and verified.

Why This Skill Matters

The port tracks upstream and also carries named policy forks, each declared in the repo's tools/forks.json — so you get the original stack's discipline plus this maintainer's documented deviations. What that discipline buys you is in the README's own example: for a bug, poteto-mode reproduces the failure, uses the how and why skills to investigate, delegates the fix, then reruns the failing case — and if the fix crosses a function boundary, it brings in architect before implementation. You receive the fix plus the failing and passing evidence, not a confidence report.

Beyond bug fixing, the README lists playbooks for planning, features, refactoring, performance issues, investigations, prototypes, PR maintenance, shipping, and longer projects. The overview's picture pairs interrogate with tests and measurements for review and verification, plans and delegates with architect, arena, or swarm, and names how, why, and unslop as the supporting skills; setup-pstack configures models and per-role reasoning effort.

Installation

Install routes differ per harness — use the one for yours. In Claude Code:

/plugin marketplace add michael-denyer/pstack-claude
/plugin install pstack@pstack-claude

In Codex (run in your terminal):

codex plugin marketplace add michael-denyer/pstack-claude
codex plugin add pstack@pstack-claude

Pi uses pi install git:github.com/michael-denyer/pstack-claude; GitHub Copilot uses copilot plugin marketplace add plus copilot plugin install pstack@pstack-claude. For OpenCode, Gemini CLI, Prime Agent, and skills-only Codex installs, the README documents a git clone plus a symlink loop into ~/.agents/skills/.

Routing is automatic where a hook exists: the plugin's session-start hook on Claude Code, Codex, and Copilot, and the pstack extension on Pi. Codex additionally asks you to trust the hook through /hooks. Harnesses without a hook never route by themselves — ask for poteto-mode by name.

Real Workflow: Fix a Bug With Evidence

Say:

用 poteto-mode 修复搜索筛选器在切换页面时被重置的问题。

That is the README's own getting-started example, and its documented path is the whole point: reproduce the failure first, investigate with how and why, delegate the fix, then rerun the failing case to prove it. If the fix would cross a function boundary, expect architect to review the approach before any code lands. What comes back is the change plus its failing-before and passing-after evidence.

Run setup-pstack once to shape the rest: turn automatic routing on or off, set model defaults, or assign a reasoning effort per role. Two boundary notes from the README: Copilot ships no default pstack models, so the first skill that needs one runs setup-pstack to pick from the models your account lists; and if your task is a concurrency bug or an invariant tests cannot reach, the README points to the separate agent-formal-verify plugin with TLA+ model checking and Lean proofs.

Tips

  • On harnesses without a routing hook, name poteto-mode explicitly in the request — nothing will invoke it implicitly.
  • Data handling is documented as local-only: no server, no telemetry; anything the skills read, including session transcripts, goes to your model provider.
  • The Copilot build is tested on Copilot CLI 1.0.87 through 1.0.92 — the README documents known context and -p session caveats on those versions.
  • For skills-only installs, keeping the port current is git pull plus re-running the symlink loop; the README documents no update path for the plugin installs.

When Not to Use This

This is an opinionated stack by design — if your team already enforces its own workflow, two opinions will fight. It is also a port, not the upstream: behavior can differ from Cursor's original, so check tools/forks.json and the upstream repo when a result surprises you. And for one-off questions in a terminal, a plain prompt with no installed stack is still the lightest tool.


See the leaderboard for more skills.