From 63f5e38108b88087c0150d9ab5d722e28f935781 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Wed, 21 Oct 2026 01:35:25 +0000 Subject: [PATCH] Port upstream pstack #729 Copy cursor/plugins 88d4751 into the agy port and bump the pin to 0.15.29. /sharpen returns only the rewritten prompt. Co-authored-by: Kaitian Xie --- .antigravity-plugin/plugin.json | 2 +- README.md | 2 +- docs/guide/02-poteto-mode.md | 4 ++-- docs/guide/10-recipes-and-pitfalls.md | 4 ++-- plugin.json | 2 +- skills/poteto-help/SKILL.md | 2 +- skills/poteto-help/references/recipes.md | 2 +- skills/sharpen/SKILL.md | 13 +++++++++++-- 8 files changed, 20 insertions(+), 11 deletions(-) diff --git a/.antigravity-plugin/plugin.json b/.antigravity-plugin/plugin.json index 510da99..9012651 100644 --- a/.antigravity-plugin/plugin.json +++ b/.antigravity-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pstack", "displayName": "pstack", - "version": "0.15.28", + "version": "0.15.29", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "logo": "assets/logo.png", "suggestedPrompts": [ diff --git a/README.md b/README.md index fecec8a..49dfc4d 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # agy-pstack -Antigravity (`agy`) port of [pstack](https://github.com/cursor/plugins/tree/main/pstack) (`0.15.28`) by [Lauren Tan (poteto)](https://x.com/poteto), bundling `deslop`, `control-cli`, and `control-ui` from [cursor-team-kit](https://github.com/cursor/plugins/tree/main/cursor-team-kit) (`1.2.0`) by Eric Zakariasson. +Antigravity (`agy`) port of [pstack](https://github.com/cursor/plugins/tree/main/pstack) (`0.15.29`) by [Lauren Tan (poteto)](https://x.com/poteto), bundling `deslop`, `control-cli`, and `control-ui` from [cursor-team-kit](https://github.com/cursor/plugins/tree/main/cursor-team-kit) (`1.2.0`) by Eric Zakariasson. See the [upstream pstack README](https://github.com/cursor/plugins/blob/main/pstack/README.md), [upstream cursor-team-kit README](https://github.com/cursor/plugins/blob/main/cursor-team-kit/README.md), and the [guide](./docs/guide/README.md) for usage and documentation. diff --git a/docs/guide/02-poteto-mode.md b/docs/guide/02-poteto-mode.md index 345941b..9cc2d2e 100644 --- a/docs/guide/02-poteto-mode.md +++ b/docs/guide/02-poteto-mode.md @@ -66,13 +66,13 @@ For a noisy report, such as a long thread or a vague bug, make the restatement t A misreading shows up in the restatement, before any code exists. Correct it there, and it costs you one message instead of one wrong fix. For the restatement alone, with no playbook, run [`/in-your-own-words`](../../skills/in-your-own-words/SKILL.md). It restates what the agent thinks your goals are and what problem you're trying to solve. -When you're unsure whether a task is aimed right, put [`/sharpen`](../../skills/sharpen/SKILL.md) in front of it: +When you're unsure whether a prompt is aimed right, run [`/sharpen`](../../skills/sharpen/SKILL.md) on it before you send it: ```text /sharpen write a migration guide for the v2 config format. ``` -Before it starts, the agent asks how a top expert would do the task, what you're really after, and whether the ask is over- or underspecified. It drops constraints that don't serve the goal as readily as it adds ones that do, leaves your choices open, and keeps one outside check that the result is right. Then it does the work. +The agent says what a top professional would do that you didn't ask for, the rawest material they would start from, the methods and tools they would use, and what other than you or the agent would show the result is right. Then it rewrites your prompt to ask for exactly that, deeper but not bigger, and leaves your choices open. It doesn't do the task. Read the rewrite, then send it, for example with `/poteto-mode`. ## Follow up short diff --git a/docs/guide/10-recipes-and-pitfalls.md b/docs/guide/10-recipes-and-pitfalls.md index 899f794..927ce41 100644 --- a/docs/guide/10-recipes-and-pitfalls.md +++ b/docs/guide/10-recipes-and-pitfalls.md @@ -20,13 +20,13 @@ Mechanics first, history second. Each skill's report tells you which sources it A misreading shows up in the restatement, where it costs one message to correct. Keep your own theory to yourself until the agent has stated its own. `/in-your-own-words` asks for the restatement alone, with no playbook. -## Aim a task before it starts +## Sharpen a prompt before you send it ```text /sharpen write the onboarding doc for the new billing service. ``` -The agent asks how an expert would do the task, what you're really after, and whether the ask says too much or too little. It keeps one outside check that the result is right, then does the work. +The agent names what an expert would do that you didn't ask for, the raw material they'd start from, their methods and tools, and an outside check that the result is right. It hands back your prompt rewritten to ask for that and doesn't do the task. Send the rewrite when it reads right. ## Prototype before you pick diff --git a/plugin.json b/plugin.json index 46cb6f4..69c1796 100644 --- a/plugin.json +++ b/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "pstack", - "version": "0.15.28", + "version": "0.15.29", "description": "if you want to go fast, go deep first. pstack helps you write less, but higher quality code. rigorous agent workflows you can parallelize with confidence.", "author": { "name": "Lauren Tan" diff --git a/skills/poteto-help/SKILL.md b/skills/poteto-help/SKILL.md index da92bda..b3ab975 100644 --- a/skills/poteto-help/SKILL.md +++ b/skills/poteto-help/SKILL.md @@ -57,7 +57,7 @@ The default answer is `/poteto-mode`, which runs most of the others when its ste |---|---| | Do any non-trivial task with rigor | [`/poteto-mode`](../poteto-mode/SKILL.md) | | Check that the agent understood their goal and the problem before it starts | [`/in-your-own-words`](../in-your-own-words/SKILL.md) | -| Aim a task higher before starting: more expert, more outcome-focused, not overspecified | [`/sharpen`](../sharpen/SKILL.md) | +| Get a prompt rewritten deeper, not bigger, before sending it: what a top professional would add, their raw material and methods, and an outside check. It returns the prompt and doesn't do the task | [`/sharpen`](../sharpen/SKILL.md) | | Know how code works now, or where new code should live | [`/how`](../how/SKILL.md) | | Know why code is shaped this way, or where a number came from | [`/why`](../why/SKILL.md) | | Understand a change or subsystem, explained plainly | [`/teach`](../teach/SKILL.md) | diff --git a/skills/poteto-help/references/recipes.md b/skills/poteto-help/references/recipes.md index f9c3706..405d733 100644 --- a/skills/poteto-help/references/recipes.md +++ b/skills/poteto-help/references/recipes.md @@ -6,7 +6,7 @@ Swap in the real paths, skills, and done checks. Informal wording works. - `/poteto-mode read . restate the underlying issue in your own words, in plain english.` - `/in-your-own-words ` -- `/sharpen ` +- `/sharpen ` - `/poteto-mode investigate why . give me what we know, what data you used, and your best hypotheses. don't change any code yet.` - `use /how to understand . then use /why to find out why it broke recently.` - `/recall my work on from last week, then read .` diff --git a/skills/sharpen/SKILL.md b/skills/sharpen/SKILL.md index c1cfebe..5b4a7b1 100644 --- a/skills/sharpen/SKILL.md +++ b/skills/sharpen/SKILL.md @@ -1,7 +1,16 @@ --- name: sharpen -description: "Sharpen a task before starting: the expert approach, what the user is really after, and the right level of specification. Use for /sharpen." +description: "Make a task deeper, not bigger, then rewrite the prompt. Use for /sharpen." disable-model-invocation: true --- -Before starting, ask how a top expert would approach this task (their raw sources, their real methods, an outside check that the result is right), what the user is really after, and whether the task is over- or underspecified. Loosen constraints that don't serve the goal as readily as you add ones that do, and leave choices that are the user's to make open instead of deciding them. Fold in only what makes the work better, not bigger, but always keep one outside check that the result is right, without narrating the framing, then do the work. +I want a deeper version of this task, not a bigger one. Before rewriting it, do four things: + +1. Say what a top professional in this field would do here that I'm not asking for. +2. Name the rawest material they would start from instead of what has already been digested for me. +3. Name the specific methods and tools they would use. +4. Say what, other than you or me, would show the result is right. + +Then rewrite my prompt to ask for exactly that. + +Leave choices that are mine to make open instead of deciding them.