---
name: prompt-sharpener
description: Rewrites a vague request or prompt into a clear, complete brief, then runs it or hands it back. Use when asked to improve a prompt, or when a request is too vague to do well.
---

# Prompt Sharpener

Most bad AI output comes from a 1-line request carrying 10 hidden assumptions. You turn a vague request into a brief that a brilliant new hire with zero context could execute well. Then you either run it (if the user wants) or hand it back as a reusable prompt.

## Step 1: Diagnose

Read the user's prompt and check it against the 7 parts of a strong brief. For each, mark ✓ (present), ~ (implied), or ✗ (missing):

1. **Goal**: what the output is for, and what "good" looks like.
2. **Audience**: who will read/use the output.
3. **Context**: background facts, materials, constraints Claude can't guess.
4. **Task**: the specific job, as a verb ("write", "compare", "rank", "find bugs in").
5. **Inputs**: the data/text to work from, clearly separated from instructions (e.g., in `<document>` tags).
6. **Output format**: structure, length, tone, file type.
7. **Quality bar**: examples of good output, things to avoid, how to self-check.

## Step 2: Fill the gaps

- If 3+ parts are ✗ and you can't infer them from the conversation, project knowledge or CLAUDE.md, ask up to 4 questions in one message. Offer a default for each so the user can just say "defaults":
  "Who is this for? (default: busy founders)"
- If only 1-2 are missing, make a sensible assumption and list it.

## Step 3: Rewrite

Write the improved prompt using this structure. Keep only the sections that add information.

```
<role_and_goal>
You are helping [who] to [goal]. The output will be used for [purpose]. Good looks like [success criteria].
</role_and_goal>

<context>
[Background facts, constraints, why this matters. Say WHY for each constraint, e.g., "Keep it under 150 words because people read it on their phone."]
</context>

<inputs>
[The material, or "see attached X"]
</inputs>

<task>
[Numbered steps if the job has stages. Data first, question last for long inputs.]
</task>

<output_format>
[Structure, length, tone. Say what to do, not only what to avoid.]
</output_format>

<quality_check>
Before answering, check: [2-4 concrete checks]. If something is unclear, [ask / state the assumption].
</quality_check>
```

Prompt-writing rules you follow:
- Be explicit. Say exactly what you want, including the level of effort and detail.
- Give the reason behind constraints; it helps the model generalize.
- Positive instructions ("write in short plain paragraphs") beat negative ones ("no bullet points").
- Use 1-3 examples when format or tone matters. Wrap them in `<example>` tags and make them varied so they don't get copied literally.
- Put long documents at the top and the question at the end.
- Ask for a plan or reasoning first only when the task is genuinely multi-step.
- Don't add fake roles or emotional pressure ("you will be fired"). Clarity works better.

## Step 4: Show the diff

Output:

```
## Diagnosis
Goal ✓ · Audience ✗ · Context ~ · Task ✓ · Inputs ✗ · Format ✗ · Quality bar ✗

## Sharpened prompt
[the prompt in a code block, ready to copy]

## What changed and why
- [3-5 bullets, each a lesson the user can reuse]
```

Then ask: "Run it now, or save it?" If they say run, execute the sharpened prompt in this conversation.

## Step 5: Make it reusable (optional)

If the user will run this kind of task often, offer to turn it into:
- **A Project instruction** (claude.ai) for a recurring context, or
- **A skill**: a folder with `SKILL.md` that has frontmatter `name` (lowercase, hyphens) and a `description` saying what it does and when to use it, followed by the sharpened prompt as step-by-step instructions. In Claude Code, offer to write it to `~/.claude/skills/<name>/SKILL.md`.

## Rules
- Never make the prompt longer than it needs to be. A sharp 120-word prompt beats a bloated 800-word one.
- Keep the user's intent. Don't change what they're asking for; make it clearer.
- If the request is already clear, say so and suggest at most 2 tweaks.
