From superpowers
Use when a rough or one-line request needs to become a precise prompt before handing it to a powerful coding model — refining a vague task, reducing expensive back-and-forth, or getting a prompt "right the first time"
How this skill is triggered — by the user, by Claude, or both
Slash command
/superpowers:prompt-meThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Turn a rough request into a precise, self-contained prompt for a powerful coding
Turn a rough request into a precise, self-contained prompt for a powerful coding model — but do the refinement work on a small, cheap model and surface at most 3 clarifying questions to the human. The expensive model then gets a complete spec on its first attempt instead of discovering gaps mid-task.
Core principle: Spend cheap tokens to save expensive ones. Analysis, restructuring, and question-finding are mechanical scaffolding — offload them to a small model so the large model only does the hard engineering.
When NOT to use: the request is already a complete, unambiguous spec, or the task is trivial and any reasonable interpretation is fine.
digraph prompt_me {
"Capture raw request + context" [shape=box];
"Dispatch SMALL model with prompt-engineer system prompt" [shape=box];
"Model returns: refined prompt + assumptions + <=3 questions" [shape=box];
"Any questions?" [shape=diamond];
"Ask human (ask_user, one at a time)" [shape=box];
"Fold answers into final prompt" [shape=box];
"Deliver final prompt (offer to run it)" [shape=doublecircle];
"Capture raw request + context" -> "Dispatch SMALL model with prompt-engineer system prompt";
"Dispatch SMALL model with prompt-engineer system prompt" -> "Model returns: refined prompt + assumptions + <=3 questions";
"Model returns: refined prompt + assumptions + <=3 questions" -> "Any questions?";
"Any questions?" -> "Ask human (ask_user, one at a time)" [label="yes"];
"Any questions?" -> "Deliver final prompt (offer to run it)" [label="no"];
"Ask human (ask_user, one at a time)" -> "Fold answers into final prompt";
"Fold answers into final prompt" -> "Deliver final prompt (offer to run it)";
}
1. Capture the raw request and any cheap context. Take the human's words verbatim. Add only context you already have (repo stack, key files, constraints). Don't go investigate the whole codebase — that's the large model's job.
2. Dispatch the small model. Use the task tool with
agent_type: "general-purpose" and model: "gpt-5.4-mini" (or another small,
cheap model). Pass the contents of prompt-engineer-system-prompt.md as the
dispatch prompt, substituting {{RAW_REQUEST}} and {{CONTEXT}}. The small model
returns three sections: REFINED PROMPT, ASSUMPTIONS, QUESTIONS.
3. Ask the human the questions. Take the (0–3) questions and ask them with the
ask_user tool — one question per call, using the model's multiple-choice
options as choices (put the (recommended) one first). If the model returned no
questions, skip straight to delivery. Never exceed 3 questions.
4. Fold answers back in. Update the refined prompt with the answers and resolve
the matching assumptions. For small edits do it yourself; if answers change the
shape of the task significantly, re-dispatch the small model with the answers added
to {{CONTEXT}}.
5. Deliver. Present the final prompt in a copy-pasteable block. Offer to run it directly with the powerful model, or hand it to the human to use.
| Thing | Default |
|---|---|
| Helper model | gpt-5.4-mini (any small, cheap model) |
Helper agent_type | general-purpose |
| Max questions to human | 3 (often 0–1) |
| Question delivery | ask_user, one at a time, with options |
| Final prompt sections | Objective, Context, Requirements, Constraints, Acceptance Criteria, Deliverables, Out of Scope |
prompt-engineer-system-prompt.md — the system prompt to hand the small model.npx claudepluginhub frags51/superpowersCreates structured, bite-sized implementation plans from specs or requirements before writing code. Useful for breaking down multi-step tasks into testable steps with file structure and task boundaries.