From 782589b015974d88a5f7a440c8201f22e994a532 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 15:47:25 +0000 Subject: [PATCH 1/6] feat(pstack): add /in-your-own-words to play back the goal before work --- pstack/README.md | 1 + pstack/skills/in-your-own-words/SKILL.md | 38 +++++++++++++++++++ pstack/skills/poteto-help/SKILL.md | 1 + .../skills/poteto-help/references/recipes.md | 1 + 4 files changed, 41 insertions(+) create mode 100644 pstack/skills/in-your-own-words/SKILL.md diff --git a/pstack/README.md b/pstack/README.md index 5e34dbff9..3992e6117 100644 --- a/pstack/README.md +++ b/pstack/README.md @@ -111,6 +111,7 @@ to keep [`/poteto-mode`](./skills/poteto-mode/SKILL.md) on across turns, pick it |---|---| | [`/poteto-mode`](./skills/poteto-mode/SKILL.md) | default entry point for any non-trivial task. | | [`/poteto-help`](./skills/poteto-help/SKILL.md) | you're new to pstack, or unsure which skill, playbook, or principle fits. finds out what you're trying to do, answers that part, and hands you a prompt to type. runs only when you type `/poteto-help`. | +| [`/in-your-own-words`](./skills/in-your-own-words/SKILL.md) | you're about to hand off a long or messy ask and want the agent to play back your goal and the problem underneath it first, so you can catch a misreading before any work starts. runs only when you type `/in-your-own-words`. | | [`/how`](./skills/how/SKILL.md) | you want a walkthrough of how a subsystem works. | | [`/why`](./skills/why/SKILL.md) | you want to know why something was built this way. discovers available MCPs at run time and queries each evidence category in parallel (source control, issue tracker, long-form docs, real-time chat, infra observability, error tracking, analytics warehouse). | | [`/recall`](./skills/recall/SKILL.md) | you're starting or resuming work and want your recent context on a topic rebuilt from your own chat history and the shared record, handed back as a tight current-state brief. | diff --git a/pstack/skills/in-your-own-words/SKILL.md b/pstack/skills/in-your-own-words/SKILL.md new file mode 100644 index 000000000..4a1fc3410 --- /dev/null +++ b/pstack/skills/in-your-own-words/SKILL.md @@ -0,0 +1,38 @@ +--- +name: in-your-own-words +description: "Before any work, play back in your own plain words what the user wants and the problem underneath it, with the guesses you made, then stop so they can correct a misreading. Use for /in-your-own-words." +disable-model-invocation: true +--- + +# In your own words + +Before you act, tell the user in your own plain words what you think they want and why, then stop. A misread goal can waste a whole run. A short play-back costs one reply, and the user can catch the misreading before any work starts. + +## Work it out + +Read the message and what it points at, such as a file, a log, a thread, or the conversation so far. With nothing after the command, use the task the conversation is about. Read only enough to understand the request. Don't investigate the cause, design a fix, or start the work. + +- Separate what the user asked for from the goal it serves. The request can be one route to the goal, and not the best one. +- Find the problem underneath: what is wrong or missing, for whom, and what is different once it is solved. +- Treat the user's theory of the cause as one hypothesis. If what they shared doesn't support it, or points somewhere else, say so and name the evidence. +- Name details that look like noise, so the user can say whether they matter. +- Fill each gap with your best guess, and mark it as a guess. + +## Write the play-back + +Use these parts, and leave out a part that has nothing in it: + +- **Goal**: what the user wants to end up with, and why. When one part has a deadline or a required result, put that part first. +- **Problem**: what stands in the way, in one or two sentences. +- **Assumptions**: the guesses you made. +- **Not sure**: what you could not pin down. + +Use your own words. Don't copy the user's sentences back or go through their message line by line. Keep their exact words only for names, such as files, errors, fields, keys, and products, and for the values your reading rests on, such as amounts, IDs, limits, and dates. Keep it under 120 words. Don't propose a plan, a fix, or next steps, though **Problem** may name a fix or option that already exists in what they shared. + +Stay on what the user wants and why. Doubts about how to do the work belong to the work, not to the play-back. When the request is clear, say so in a line or two and don't fill the other parts. + +Ask at most one question. Ask it only about the goal or the problem, and only when the answer changes the work. Word it so that every answer is easy to give, and say in a few words what each answer would change. Don't say what you would do for each answer. Don't also list it under **Not sure**. Never ask the user to restate their request. When the play-back already shows the user's theory is wrong, state the evidence and don't ask whether to make their change anyway. Then end your turn. + +## After the user replies + +Apply the correction and start the work. If they only confirm, do the work as you described it. Don't play it back again unless they ask. diff --git a/pstack/skills/poteto-help/SKILL.md b/pstack/skills/poteto-help/SKILL.md index 575d80fbf..d2b377941 100644 --- a/pstack/skills/poteto-help/SKILL.md +++ b/pstack/skills/poteto-help/SKILL.md @@ -63,6 +63,7 @@ The default answer is `/poteto-mode`, which runs most of the others when its ste | The user wants to | Skill | |---|---| | 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) | | 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/pstack/skills/poteto-help/references/recipes.md b/pstack/skills/poteto-help/references/recipes.md index 73118e2a2..a78942c78 100644 --- a/pstack/skills/poteto-help/references/recipes.md +++ b/pstack/skills/poteto-help/references/recipes.md @@ -5,6 +5,7 @@ Swap in the real paths, skills, and done checks. Informal wording works. ## Understand - `/poteto-mode read . restate the underlying issue in your own words, in plain english.` +- `/in-your-own-words ` - `/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 .` From ffeb87fd7788cbbf061dbd740e2d8e345e1e12be Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 15:47:25 +0000 Subject: [PATCH 2/6] chore(pstack): bump to 0.15.24 --- pstack/.cursor-plugin/plugin.json | 2 +- pstack/plugin.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pstack/.cursor-plugin/plugin.json b/pstack/.cursor-plugin/plugin.json index 40b963374..26d0f6d02 100644 --- a/pstack/.cursor-plugin/plugin.json +++ b/pstack/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pstack", "displayName": "pstack", - "version": "0.15.21", + "version": "0.15.24", "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/pstack/plugin.json b/pstack/plugin.json index 4376304ac..418387709 100644 --- a/pstack/plugin.json +++ b/pstack/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "pstack", - "version": "0.15.21", + "version": "0.15.24", "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" From 3d8e2608c9ceaec1c3cd3ab36e8fade0712cb57a Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 09:04:07 -0700 Subject: [PATCH 3/6] refactor(pstack): tighten /in-your-own-words --- pstack/README.md | 2 +- pstack/skills/in-your-own-words/SKILL.md | 36 +++++++----------------- 2 files changed, 11 insertions(+), 27 deletions(-) diff --git a/pstack/README.md b/pstack/README.md index 3992e6117..0cbacc1e2 100644 --- a/pstack/README.md +++ b/pstack/README.md @@ -111,7 +111,7 @@ to keep [`/poteto-mode`](./skills/poteto-mode/SKILL.md) on across turns, pick it |---|---| | [`/poteto-mode`](./skills/poteto-mode/SKILL.md) | default entry point for any non-trivial task. | | [`/poteto-help`](./skills/poteto-help/SKILL.md) | you're new to pstack, or unsure which skill, playbook, or principle fits. finds out what you're trying to do, answers that part, and hands you a prompt to type. runs only when you type `/poteto-help`. | -| [`/in-your-own-words`](./skills/in-your-own-words/SKILL.md) | you're about to hand off a long or messy ask and want the agent to play back your goal and the problem underneath it first, so you can catch a misreading before any work starts. runs only when you type `/in-your-own-words`. | +| [`/in-your-own-words`](./skills/in-your-own-words/SKILL.md) | you want the agent to play back your goal and the problem before it starts. runs only when you type `/in-your-own-words`. | | [`/how`](./skills/how/SKILL.md) | you want a walkthrough of how a subsystem works. | | [`/why`](./skills/why/SKILL.md) | you want to know why something was built this way. discovers available MCPs at run time and queries each evidence category in parallel (source control, issue tracker, long-form docs, real-time chat, infra observability, error tracking, analytics warehouse). | | [`/recall`](./skills/recall/SKILL.md) | you're starting or resuming work and want your recent context on a topic rebuilt from your own chat history and the shared record, handed back as a tight current-state brief. | diff --git a/pstack/skills/in-your-own-words/SKILL.md b/pstack/skills/in-your-own-words/SKILL.md index 4a1fc3410..86ab2f93c 100644 --- a/pstack/skills/in-your-own-words/SKILL.md +++ b/pstack/skills/in-your-own-words/SKILL.md @@ -1,38 +1,22 @@ --- name: in-your-own-words -description: "Before any work, play back in your own plain words what the user wants and the problem underneath it, with the guesses you made, then stop so they can correct a misreading. Use for /in-your-own-words." +description: "Before any work, play back in your own words what the user wants and the problem underneath it, then stop so they can correct a misreading. Use for /in-your-own-words." disable-model-invocation: true --- # In your own words -Before you act, tell the user in your own plain words what you think they want and why, then stop. A misread goal can waste a whole run. A short play-back costs one reply, and the user can catch the misreading before any work starts. +Before you act, tell the user in your own words what you think they want and why, then stop. A misread goal can waste a whole run; one short reply catches it. -## Work it out +Read only enough to understand the ask. Don't investigate, design a fix, or start the work. -Read the message and what it points at, such as a file, a log, a thread, or the conversation so far. With nothing after the command, use the task the conversation is about. Read only enough to understand the request. Don't investigate the cause, design a fix, or start the work. +Reply in under 120 words, leaving out any part that's empty: -- Separate what the user asked for from the goal it serves. The request can be one route to the goal, and not the best one. -- Find the problem underneath: what is wrong or missing, for whom, and what is different once it is solved. -- Treat the user's theory of the cause as one hypothesis. If what they shared doesn't support it, or points somewhere else, say so and name the evidence. -- Name details that look like noise, so the user can say whether they matter. -- Fill each gap with your best guess, and mark it as a guess. +- **Goal**: what they want to end up with, and why. That can differ from what they literally asked for. +- **Problem**: what's wrong or missing underneath. Treat their theory of the cause as a hypothesis, and cite the evidence if what they shared points elsewhere. +- **Assumptions**: the guesses you made to fill gaps. +- **Not sure**: what you couldn't pin down. -## Write the play-back +Don't parrot their sentences, but keep exact names and values. Propose no plan or fix beyond pointing out one that already exists in what they shared. Ask at most one question, only if the answer changes the work, and never ask whether to go ahead with a change the evidence rules out. Then end your turn. -Use these parts, and leave out a part that has nothing in it: - -- **Goal**: what the user wants to end up with, and why. When one part has a deadline or a required result, put that part first. -- **Problem**: what stands in the way, in one or two sentences. -- **Assumptions**: the guesses you made. -- **Not sure**: what you could not pin down. - -Use your own words. Don't copy the user's sentences back or go through their message line by line. Keep their exact words only for names, such as files, errors, fields, keys, and products, and for the values your reading rests on, such as amounts, IDs, limits, and dates. Keep it under 120 words. Don't propose a plan, a fix, or next steps, though **Problem** may name a fix or option that already exists in what they shared. - -Stay on what the user wants and why. Doubts about how to do the work belong to the work, not to the play-back. When the request is clear, say so in a line or two and don't fill the other parts. - -Ask at most one question. Ask it only about the goal or the problem, and only when the answer changes the work. Word it so that every answer is easy to give, and say in a few words what each answer would change. Don't say what you would do for each answer. Don't also list it under **Not sure**. Never ask the user to restate their request. When the play-back already shows the user's theory is wrong, state the evidence and don't ask whether to make their change anyway. Then end your turn. - -## After the user replies - -Apply the correction and start the work. If they only confirm, do the work as you described it. Don't play it back again unless they ask. +When they reply, apply any correction and start the work without playing it back again. From 56e386ec8c7cda4b1166c024cab63e62b65cea45 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 09:05:13 -0700 Subject: [PATCH 4/6] refactor(pstack): cut /in-your-own-words to the core --- pstack/skills/in-your-own-words/SKILL.md | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/pstack/skills/in-your-own-words/SKILL.md b/pstack/skills/in-your-own-words/SKILL.md index 86ab2f93c..69e137cb1 100644 --- a/pstack/skills/in-your-own-words/SKILL.md +++ b/pstack/skills/in-your-own-words/SKILL.md @@ -1,22 +1,11 @@ --- name: in-your-own-words -description: "Before any work, play back in your own words what the user wants and the problem underneath it, then stop so they can correct a misreading. Use for /in-your-own-words." +description: "Before any work, restate in your own words what the user wants and the problem they're solving, then stop so they can correct you. Use for /in-your-own-words." disable-model-invocation: true --- # In your own words -Before you act, tell the user in your own words what you think they want and why, then stop. A misread goal can waste a whole run; one short reply catches it. +Before doing anything, restate in your own words what you think the user's goal is and what problem they're trying to solve. Be brief, and flag anything you're unsure of. Don't plan or start the work. -Read only enough to understand the ask. Don't investigate, design a fix, or start the work. - -Reply in under 120 words, leaving out any part that's empty: - -- **Goal**: what they want to end up with, and why. That can differ from what they literally asked for. -- **Problem**: what's wrong or missing underneath. Treat their theory of the cause as a hypothesis, and cite the evidence if what they shared points elsewhere. -- **Assumptions**: the guesses you made to fill gaps. -- **Not sure**: what you couldn't pin down. - -Don't parrot their sentences, but keep exact names and values. Propose no plan or fix beyond pointing out one that already exists in what they shared. Ask at most one question, only if the answer changes the work, and never ask whether to go ahead with a change the evidence rules out. Then end your turn. - -When they reply, apply any correction and start the work without playing it back again. +Then stop, and let them correct you before you begin. From 0ef71c63514ca8b8bb95abf4a7a780c4bb274dc4 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 09:05:37 -0700 Subject: [PATCH 5/6] refactor(pstack): reduce /in-your-own-words to one line --- pstack/skills/in-your-own-words/SKILL.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/pstack/skills/in-your-own-words/SKILL.md b/pstack/skills/in-your-own-words/SKILL.md index 69e137cb1..f30d03e29 100644 --- a/pstack/skills/in-your-own-words/SKILL.md +++ b/pstack/skills/in-your-own-words/SKILL.md @@ -1,11 +1,7 @@ --- name: in-your-own-words -description: "Before any work, restate in your own words what the user wants and the problem they're solving, then stop so they can correct you. Use for /in-your-own-words." +description: "Restate the user's goal and intent in your own words before starting. Use for /in-your-own-words." disable-model-invocation: true --- -# In your own words - -Before doing anything, restate in your own words what you think the user's goal is and what problem they're trying to solve. Be brief, and flag anything you're unsure of. Don't plan or start the work. - -Then stop, and let them correct you before you begin. +Restate the user's goal and intent in your own words, then wait for them to confirm before you start. From ffb4b3437eb3124db08f0b3fba79d32f05cf56cf Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Tue, 13 Oct 2026 09:06:38 -0700 Subject: [PATCH 6/6] chore(pstack): drop version bump --- pstack/.cursor-plugin/plugin.json | 2 +- pstack/plugin.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pstack/.cursor-plugin/plugin.json b/pstack/.cursor-plugin/plugin.json index 26d0f6d02..40b963374 100644 --- a/pstack/.cursor-plugin/plugin.json +++ b/pstack/.cursor-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "pstack", "displayName": "pstack", - "version": "0.15.24", + "version": "0.15.21", "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/pstack/plugin.json b/pstack/plugin.json index 418387709..4376304ac 100644 --- a/pstack/plugin.json +++ b/pstack/plugin.json @@ -1,7 +1,7 @@ { "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", "name": "pstack", - "version": "0.15.24", + "version": "0.15.21", "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"