Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/upstream-sha
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d457567332aa6989e753ea289f30ea2bfbc80bc0
88d47514b82e7c44f00f2b2a72ff6dd12158038c
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@ the full rules and playbooks live in [`skills/poteto-mode/SKILL.md`](./skills/po
| [`/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. it doesn't load from its description (on claude code, once `/setup-pstack` sets the skill listing), so type `/poteto-help`. |
| [`/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. it doesn't load from its description (on claude code, once `/setup-pstack` sets the skill listing), so type `/in-your-own-words`. |
| [`/sharpen`](./skills/sharpen/SKILL.md) | you want a task approached the way a top expert would, aimed at what you're really after, without overspecifying it or deciding your choices for you. |
| [`/sharpen`](./skills/sharpen/SKILL.md) | you want a prompt made deeper, not bigger, before you send it: what a top professional 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. hands back the rewritten prompt and leaves your choices open. doesn't do the task. it doesn't load from its description (on claude code, once `/setup-pstack` sets the skill listing), so type `/sharpen`. |
| [`/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. |
Expand Down
4 changes: 2 additions & 2 deletions docs/guide/02-poteto-mode.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,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

Expand Down
4 changes: 2 additions & 2 deletions docs/guide/10-recipes-and-pitfalls.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
153 changes: 88 additions & 65 deletions evals/promises/ledger.json
Original file line number Diff line number Diff line change
Expand Up @@ -3196,29 +3196,33 @@
],
"scenario": "setup-run"
},
"sharpen-frames-task-before-work": {
"sharpen-rewrites-prompt-without-doing-task": {
"check": "static",
"claim": "/sharpen asks how a top expert would approach the task, what the user is after, and whether it is over- or underspecified, loosens constraints as readily as it adds them, leaves the user's choices open, keeps one outside check, then does the work.",
"claim": "/sharpen says what a top professional would do that the user didn't ask for, the rawest material they would start from, their methods and tools, and an outside check that the result is right, then rewrites the prompt to ask for that, leaves the user's choices open, and doesn't do the task.",
"evidence": [
{
"file": "skills/sharpen/SKILL.md",
"quote": "Before starting, ask how a top expert would approach this task"
"quote": "Say what a top professional in this field would do here that I'm not asking for."
},
{
"file": "skills/sharpen/SKILL.md",
"quote": "whether the task is over- or underspecified"
"quote": "Name the rawest material they would start from"
},
{
"file": "skills/sharpen/SKILL.md",
"quote": "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."
"quote": "Name the specific methods and tools they would use."
},
{
"file": "skills/sharpen/SKILL.md",
"quote": "always keep one outside check that the result is right"
"quote": "Say what, other than you or me, would show the result is right."
},
{
"file": "skills/sharpen/SKILL.md",
"quote": "then do the work."
"quote": "Then rewrite my prompt to ask for exactly that."
},
{
"file": "skills/sharpen/SKILL.md",
"quote": "Leave choices that are mine to make open instead of deciding them."
}
],
"harness_sensitive": false,
Expand Down Expand Up @@ -4199,16 +4203,6 @@
],
"text": "Tests check the cases someone thought to write."
},
"0f77d985e3fc": {
"class": "promise",
"file": "02-poteto-mode.md",
"promise": "sharpen-frames-task-before-work",
"sources": [
"upstream",
"port"
],
"text": "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."
},
"0f9cc893bd89": {
"class": "context",
"file": "03-understand.md",
Expand Down Expand Up @@ -4312,6 +4306,16 @@
],
"text": "Catch it with a test."
},
"123a352a331d": {
"class": "promise",
"file": "10-recipes-and-pitfalls.md",
"promise": "sharpen-rewrites-prompt-without-doing-task",
"sources": [
"upstream",
"port"
],
"text": "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."
},
"1278fc9c4d91": {
"class": "context",
"file": "09-make-it-yours.md",
Expand Down Expand Up @@ -4845,6 +4849,16 @@
],
"text": "A swarm worker that reads and judges a diff runs on `trail reviewer` instead."
},
"1dd47905086a": {
"class": "promise",
"file": "02-poteto-mode.md",
"promise": "sharpen-rewrites-prompt-without-doing-task",
"sources": [
"upstream",
"port"
],
"text": "It doesn't do the task."
},
"1e1d1ccadb61": {
"class": "context",
"file": "04-design.md",
Expand Down Expand Up @@ -5115,16 +5129,6 @@
],
"text": "A server on your machine holds the webhook's sender key, so the key never reaches the browser or the chat."
},
"25321c29d8ee": {
"class": "promise",
"file": "10-recipes-and-pitfalls.md",
"promise": "sharpen-frames-task-before-work",
"sources": [
"upstream",
"port"
],
"text": "It keeps one outside check that the result is right, then does the work."
},
"26331839fa40": {
"class": "context",
"file": "07-overnight.md",
Expand Down Expand Up @@ -5760,16 +5764,6 @@
],
"text": "Hermes requires trust for project skills, and its project link can be skipped when `.hermes` does not exist."
},
"370107715792": {
"class": "promise",
"file": "10-recipes-and-pitfalls.md",
"promise": "sharpen-frames-task-before-work",
"sources": [
"upstream",
"port"
],
"text": "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."
},
"3835af2d4290": {
"class": "promise",
"file": "10-recipes-and-pitfalls.md",
Expand Down Expand Up @@ -6046,6 +6040,16 @@
],
"text": "Before dispatch, the coordinator records its predecessor and the harness, model, and effort that will run it."
},
"3e74944d2a28": {
"class": "promise",
"file": "10-recipes-and-pitfalls.md",
"promise": "sharpen-rewrites-prompt-without-doing-task",
"sources": [
"upstream",
"port"
],
"text": "It hands back your prompt rewritten to ask for that and doesn't do the task."
},
"3eec39eb99a9": {
"class": "context",
"file": "06-verify-and-ship.md",
Expand Down Expand Up @@ -7613,15 +7617,6 @@
],
"text": "[Attack the Premise](../../skills/principle-attack-the-premise/SKILL.md) writes down the premise that two or more failed fixes shared and tests it directly before the next fix."
},
"6c303f8ac2d4": {
"class": "context",
"file": "02-poteto-mode.md",
"sources": [
"upstream",
"port"
],
"text": "Then it does the work."
},
"6c41f8249bef": {
"class": "promise",
"file": "07-overnight.md",
Expand Down Expand Up @@ -8513,15 +8508,6 @@
],
"text": "The [Opening a PR playbook](../../skills/poteto-mode/playbooks/opening-a-pr.md) runs `/deslop` on the diff before each commit and applies [`/unslop`](../../skills/unslop/SKILL.md) to the PR description and commit bodies."
},
"8616da1694e0": {
"class": "context",
"file": "02-poteto-mode.md",
"sources": [
"upstream",
"port"
],
"text": "When you're unsure whether a task is aimed right, put [`/sharpen`](../../skills/sharpen/SKILL.md) in front of it:"
},
"8626c5a5c0eb": {
"class": "promise",
"file": "04-design.md",
Expand Down Expand Up @@ -8983,16 +8969,6 @@
],
"text": "Error messages that say what to do instead."
},
"924614a9e8a9": {
"class": "promise",
"file": "02-poteto-mode.md",
"promise": "sharpen-frames-task-before-work",
"sources": [
"upstream",
"port"
],
"text": "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."
},
"925332aad252": {
"class": "promise",
"file": "06-verify-and-ship.md",
Expand Down Expand Up @@ -9271,6 +9247,16 @@
],
"text": "\"bugs included\" keeps the migration from quietly fixing things on the way, which would make the old and new output impossible to compare."
},
"9ead3f17f124": {
"class": "promise",
"file": "02-poteto-mode.md",
"promise": "sharpen-rewrites-prompt-without-doing-task",
"sources": [
"upstream",
"port"
],
"text": "Then it rewrites your prompt to ask for exactly that, deeper but not bigger, and leaves your choices open."
},
"9ecb08f71efa": {
"class": "context",
"file": "README.md",
Expand Down Expand Up @@ -10076,6 +10062,16 @@
],
"text": "Then it runs `/arena` to produce competing design sketches, with the caller's usage written first in each, followed by types, signatures, and a module map."
},
"b1e90eb13b4e": {
"class": "promise",
"file": "02-poteto-mode.md",
"promise": "sharpen-rewrites-prompt-without-doing-task",
"sources": [
"upstream",
"port"
],
"text": "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."
},
"b1ff4346bd4d": {
"also": [
"slash-skills-invocable"
Expand Down Expand Up @@ -10274,6 +10270,15 @@
],
"text": "Setup also configures `routine`, the model for read-only subagents that scan or parse bulk material, such as a long transcript, and return a short finding."
},
"b78bf6d55700": {
"class": "context",
"file": "02-poteto-mode.md",
"sources": [
"upstream",
"port"
],
"text": "Read the rewrite, then send it, for example with `/poteto-mode`."
},
"b79782a127a9": {
"class": "promise",
"file": "06-verify-and-ship.md",
Expand Down Expand Up @@ -12210,6 +12215,15 @@
],
"text": "You describe what you want and how you'll know it's done."
},
"eb1880162cb5": {
"class": "context",
"file": "10-recipes-and-pitfalls.md",
"sources": [
"upstream",
"port"
],
"text": "Send the rewrite when it reads right."
},
"ec5a61869e11": {
"class": "promise",
"file": "06-verify-and-ship.md",
Expand Down Expand Up @@ -12879,6 +12893,15 @@
],
"text": "```text\n/poteto-mode update the review skill so it flags missing migrations, and eval the change.\n```"
},
"ff45621c7b54": {
"class": "context",
"file": "02-poteto-mode.md",
"sources": [
"upstream",
"port"
],
"text": "When you're unsure whether a prompt is aimed right, run [`/sharpen`](../../skills/sharpen/SKILL.md) on it before you send it:"
},
"ff8926f17118": {
"also": [
"overnight-contract-routes-to-figure-it-out"
Expand Down
27 changes: 27 additions & 0 deletions evals/promises/results/2026-10-20-sync-88d4751.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Post-sync live reruns for upstream 88d4751, 2026-10-20

**Status: COMPLETE.** Step 8 of **Syncing from upstream** needs a rerun of each live promise whose owner files changed. This sync changed one live promise's owner: `skills/poteto-help/SKILL.md`, the `/sharpen` row of its skill table, which owns `poteto-help-finds-need-and-routes`. Both of its cases ran once on each of the four harnesses, with no retries, and skills pinned with `--skills-at 0aeb49c` (the sync commit).

- **Claude Code** 2.1.304: `poteto-help-run` and `poteto-help-unclear-run` graded.
- **Codex** (codex-cli 0.162.0): both cases graded.
- **Hermes** (Docker-managed gateway): both cases graded. The first attempt passed a relative `--hermes-retain-out`, which `hermes_evidence.py` refused with `path-refused` before any turn. The rerun used an absolute path. The matrix leaves out the retained pair copies under `--hermes-retain-out`, which `live.py report` otherwise counts as a second verdict for each run.
- **Grok Build** 1.0.62: both cases graded.

Durable run directories are under the attempt's retained `live/<harness>/`, outside the repository.

## Matrix

| promise | claude-code | codex | hermes | grok | upstream |
|---|---|---|---|---|---|
| `poteto-help-finds-need-and-routes` | PASS (2) | PASS (2) | PASS (2) | PASS (2) | |

1 promises, 8 verdicts: PASS 8
claude-code pass rate: 2 of 2
codex pass rate: 2 of 2
hermes pass rate: 2 of 2
grok pass rate: 2 of 2
claude-code skill listing: installed 2

## Comparison baseline

The newest earlier file, `2026-10-19-sync-d457567.md`, has `poteto-help-finds-need-and-routes` at PASS (2) on Codex and PASS (2) on Hermes, with Claude Code and Grok Build not run. This screen matches it on Codex and Hermes and adds a PASS on Claude Code and Grok Build. Each cell holds one sample per case.
2 changes: 1 addition & 1 deletion skills/poteto-help/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,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 | [`/poteto-teach`](../poteto-teach/SKILL.md) |
Expand Down
2 changes: 1 addition & 1 deletion skills/poteto-help/references/recipes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ Swap in the real paths, skills, and done checks. Informal wording works.

- `/poteto-mode read <thread>. restate the underlying issue in your own words, in plain english.`
- `/in-your-own-words <long or messy ask>`
- `/sharpen <your task>`
- `/sharpen <the prompt you're about to send>`
- `/poteto-mode investigate why <symptom>. give me what we know, what data you used, and your best hypotheses. don't change any code yet.`
- `use /how to understand <subsystem>. then use /why to find out why it broke recently.`
- `/recall my work on <topic> from last week, then read <issue>.`
Expand Down
13 changes: 11 additions & 2 deletions skills/sharpen/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
---
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."
---

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.
2 changes: 1 addition & 1 deletion tools/skill-trigger-cases.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
{"skill":"reflect","example_request":"Review this transcript.","description_contains":["parallel review"],"implicit_allowed":false},
{"skill":"runtime-probes","example_request":"Probe for defects.","description_contains":["probe, stress"],"implicit_allowed":true},
{"skill":"setup-pstack","example_request":"Configure pstack models.","description_contains":["Configure which models"],"implicit_allowed":true},
{"skill":"sharpen","example_request":"Sharpen this task before starting.","description_contains":["Sharpen a task"],"implicit_allowed":false},
{"skill":"sharpen","example_request":"Sharpen this prompt before I send it.","description_contains":["deeper, not bigger"],"implicit_allowed":false},
{"skill":"show-me-your-work","example_request":"Keep a decision trail.","description_contains":["reviewable decision trail"],"implicit_allowed":false},
{"skill":"spec-probes","example_request":"Review this spec.","description_contains":["reviewing a spec"],"implicit_allowed":true},
{"skill":"swarm","example_request":"Run parallel workers.","description_contains":["Fan out N"],"implicit_allowed":false},
Expand Down
Loading