ahmedbenaw/pstack

17 stars · Last commit 2026-09-16

pstack, nativized: Lauren Tan's rigorous engineering-workflow skills (poteto-mode playbooks, 23 principles, review and investigation skills) running natively on Claude Code, Cowork, Codex and ChatGPT. Ported from cursor/plugins.

README preview

# pstack (Claude Code port)

This is a Claude-Code port of [`pstack`](https://github.com/cursor/plugins/tree/main/pstack), a plugin originally built for [Cursor](https://cursor.com) by [Lauren Tan](https://x.com/poteto). It is MIT licensed (see `LICENSE`); the copyright and license are unchanged from upstream.

pstack is a set of rigorous engineering-workflow skills — `poteto-mode`'s playbooks, the twenty-three principle skills, review and investigation skills (`how`, `why`, `interrogate`, `architect`, `arena`, `swarm`, ...), and the `poteto-agent` / `Comment Sicko` subagents. See `docs/guide/README.md` for the full getting-started guide (also ported from upstream) and the top-level skill/agent files for what each one does.

## Provenance and what changed from upstream

This port keeps the methodology, playbooks, and principles content verbatim — that's the valuable part. What changed is the plugin-runtime plumbing that's specific to Cursor:

- **`.cursor-plugin/plugin.json` → `.claude-plugin/plugin.json`**, rewritten to Claude Code's flat plugin manifest shape (`name`, `version`, `description`, `author`, `homepage`).
- **SKILL.md frontmatter cleanup.** Every `SKILL.md` (skills, references, benny automations) kept only `name` and `description`, which is what Claude Code's skill loader reads. Cursor-runtime-only fields were dropped: `disable-model-invocation`, `icon`, `color`, `paths`. Two fields carried operational meaning worth keeping, so instead of silently dropping them they were folded into a short prose note in the skill body:
  - `poteto-mode`'s `mode: true` (Cursor's "sticky mode") and its `reminder` field — noted in `skills/poteto-mode/SKILL.md`.
  - `typescript-best-practices`'s `paths: ["**/*.ts", "**/*.tsx"]` auto-attach glob — noted in `skills/typescript-best-practices/SKILL.md`.
- **Agent frontmatter cleanup.** `agents/poteto-agent.md` and `agents/comment-sicko.md` keep `name`/`description`. `poteto-agent`'s `is_background: true` has no Claude Code frontmatter equivalent (backgrounding is a dispatch-time choice, not a per-agent declaration), so it was dropped and replaced with a one-line note in the agent body instead.
- **Cursor tool name.** `AskQuestion` (Cursor's structured-question tool) was renamed to Claude Code's `AskUserQuestion` everywhere it's referenced in prose (`poteto-mode`, `automate-me`, `setup-pstack` skills, and the `autonomous-run` playbook).
- **`cursor-team-kit` dependencies resolved.** A few skills and playbooks called out to `deslop`, `control-cli`, and `control-ui` from Cursor's separate `cursor-team-kit` plugin. They now point at capabilities this repo actually has: `control-cli`/`control-ui` → `create-verification-skill` and `maintain-verification-skill`, which generate and maintain a project-local skill that drives the real app. `deslop` has no single equivalent — it strips slop from *code*, where this repo's `unslop` handles *prose* — so the outcome is written inline (narrating comments, unsupported guards, dead compatibility paths, unrelated edits), with `principle-subtract-before-you-add` as the rule and Claude Code's `/simplify` as a one-pass accelerator.
- Everything else — the `automations/benny` dormant bug-triage pack, `docs/guide/**`, `assets/logo.png`, all playbooks, references, and scripts — was copied over unchanged (only the same SKILL.md frontmatter cleanup applies to `automations/benny/skills/**`).

## Nativization

View full repository on GitHub →