WritingEveryday skill

Prompting for Work

Structures work requests to AI (role, context, task, format, example) so the output is reliable and review-ready.

What it does

You ask for something, it comes back generic. You rephrase it, it comes back generic in a different way. After the fourth try you give up and write it yourself, which is what you were trying to avoid.

The problem is usually that the request is one long sentence, so when the answer is wrong there is nothing to fix. With this skill active, the assistant rebuilds your request as five labelled parts: who it should act as, the handful of facts that actually change the answer, the one job, the exact shape you want back, and one example of good. Then a bad result stops being a mystery. Too long is the format part. Wrong facts is the context part. Odd tone is the role part. You edit that one part and run it again.

You end up with a request that works, and a saved version where you swap this week's facts and reuse the rest.

You end up with a five-part request that works twice in a row, saved with a note on what to swap next time.

When to reach for it

Use it when the output matters or repeats: the weekly update, the client email, the summary someone else will act on, anything you have already rephrased three times.

Skip it for casual questions and one-off curiosity, where building structure costs more than just asking. It is also not a fix for missing information - if you have not decided who the output is for, no amount of structure will save it.

What's inside

prompting-for-work/
├── SKILL.md
└── references/
    ├── examples.md
    └── templates.md
SKILL.md
---
name: prompting-for-work
description: Rebuilds a vague work request into five labelled parts - role, context, task, format, example - so the output comes back usable, and teaches the user to repair a bad result by editing one part instead of rewriting the whole thing. Use when someone keeps getting generic or wrong output and is rephrasing the same request over and over.
---

# Prompting for Work

You turn "it gave me something generic again" into output someone can actually send. The fix is almost never a better sentence. It is a request built out of parts, where a bad result points at the part that is wrong.

## Workflow

1. **Hear the real task.** Get it in the user's own words, and find out who the output is for.
2. **Write the one-line job:** produce X for Y so they can Z. If a slot is empty, ask.
3. **Build the five parts.** Role, context, task, format, example.
4. **Run it once and judge only two things:** is anything wrong, and is anything missing.
5. **Repair the part that failed.** Never start over.
6. **Run it a second time** on a different set of facts.
7. **Save it as a template** once it works twice, with a note on what to swap.

```text
Prompting checklist
[ ] Task stated as: produce X for Y so they can Z
[ ] Audience named - not "for work", an actual reader
[ ] Context holds only facts that change the answer
[ ] Format names shape, length and tone in countable terms
[ ] Example included if one exists anywhere
[ ] First run judged on wrong / missing only
[ ] Repair applied to one part, not the whole prompt
[ ] Second run on different facts before calling it a template
[ ] Saved with a swap note
```

## Step 2: the one-line job

Before any prompt gets written, fill this in:

> Produce **[X, the thing]** for **[Y, the person who reads it]** so they can **[Z, what they do next]**.

An empty slot is a question, not a guess. The Z slot is the one people skip and the one that changes the output most, because "so my VP can forward it to her boss unchanged" and "so I remember what I did" produce two different documents from identical facts.

If the user cannot name Y, stop and ask. Audience is the single largest lever in the whole request, and every part below depends on it.

## Step 3: the five parts

Each part answers a different question, and each failure mode maps to exactly one part. That mapping is the reason for the structure.

### Role

Who the assistant should be while doing this. One line, specific enough to change vocabulary and priorities.

- Weak: "You are a helpful assistant."
- Works: "You are an experienced HR manager who has written a hundred of these and knows what a tribunal would make of the wording."

Skip the role when the task has no professional stance to take, like summarising a page. Do not invent expertise the task does not need.

### Context

The three to six facts that change the answer. Not background. Not everything you know.

The test for every line: **if this were different, would the output be different?** If no, cut it.

- Keep: the deadline slipped by two weeks, the client already complained once, the budget is fixed.
- Cut: the project history, the org chart, how you feel about it.

Long context does not fail more gently than short context. It fails differently, by burying the three facts that mattered in twenty that did not.

### Task

The one-line job from step 2, verbatim. One task per prompt. "And while you're at it" is a second prompt.

### Format

The shape of the output, in terms you could count or check.

- Weak: "Keep it short and professional."
- Works: "Subject line, then three sections labelled Done, Risk, Next. Under 120 words total. No exclamation marks. No closing paragraph."

Say what you do not want if there is a habit you keep having to delete. "No bullet points" and "do not restate the question" are legitimate format instructions.

### Example

One sample of what good looks like beats any three adjectives. A rough one is fine. Last month's version is ideal.

If none exists, give a fragment: the first two lines the way they should read, or a single bullet in the right shape. Failing that, name a thing the user has seen: "like a doctor's discharge note, not like a press release."

## Step 4: judging the first run

Only two questions. Answer them in this order, and resist the urge to react to tone before checking facts.

1. **Is anything wrong?** A fact, a number, a name, an implied claim that is not true.
2. **Is anything missing?** Something the reader needs that is absent.

Everything else, including "I don't love it", is a format or role problem and gets handled in the repair step. Do not accept a result because it reads well. Read it as the person it is going to.

## Step 5: repairing one part

This is the habit worth teaching, and the one people never arrive with.

| What went wrong | Which part to edit |
|---|---|
| Facts wrong or invented | Context - the fact was missing or unclear |
| Too long, too short, wrong shape | Format |
| Right facts, wrong emphasis | Task - the Z slot is probably wrong |
| Tone off, too casual or too corporate | Role, then Example |
| Reads like a template | Example - add one, or a better one |
| Confidently wrong about something | Context - add the correction as a stated fact |
| Answered a slightly different question | Task - it is doing two jobs, split it |

Edit that one part, rerun, compare. Rewriting the whole prompt after a bad result destroys the information you just bought, because you can no longer tell which change helped.

## Step 6 and 7: proving it and saving it

One good result can be luck. Run the prompt again with a different week's facts before you call it a template. If the second run needs hand-editing in the same place, that place is a missing format instruction.

Then save it with a swap note:

> **Swap each time:** the Context block. **Leave alone:** role, format, example. **If the output drifts:** the example is stale, replace it with last week's approved version.

## Example

**Weak request:** "Write a status update about the project."

**One-line job:** produce a weekly status update for my VP so she can forward it to her boss unchanged.

**Built prompt:**

```text
Role: You are a project lead writing upward to an executive who has ten of these to read.

Context:
- Migration is two weeks late; vendor API access slipped, not our build.
- New date is 14 March, and I am confident in it.
- No budget impact.
- Her boss has asked about this project twice.

Task: Write my weekly status update for my VP so she can forward it to her boss unchanged.

Format: Subject line, then three short sections labelled Done, Risk, Next.
Under 120 words. No exclamation marks. No closing paragraph.

Example of the tone I want:
"Subject: Migration - two weeks late, new date 14 March
Done: Read replicas complete and verified."
```

**First run came back at 190 words with a closing paragraph.** Format problem, not a bad model. Add "Hard limit 120 words. Do not write a closing paragraph." Rerun. It lands at 112 words.

**Notice what was not done:** the prompt was not rewritten, the role was not touched, and the context was not expanded. One part failed, one part got edited.

## Rules

- One prompt, one task. A second request in the same prompt degrades both.
- Never pad context with background that would not change the answer.
- If the user cannot say who the output is for, stop and ask. Do not guess an audience.
- Keep the user's own vocabulary in the prompt. Their words carry intent that your paraphrase loses.
- Examples beat adjectives. Ask for one before adding a third describing word.
- Do not add "be creative" or "think step by step" as decoration. Add an instruction only when you can say what it changes.
- Never let a prompt ask for facts the user has not supplied. That is an invitation to invent them.

## Edge cases

- **The user does not know what good looks like.** Ask for a bad example instead. "Show me one you rejected" defines the target from the other side, and people find it easier.
- **The task is genuinely creative** and a format spec would strangle it. Loosen format, tighten role and example. Constrain the frame, not the words.
- **The output keeps being confidently wrong** about a fact. Put the correct fact in context as a plain statement. Arguing with output in follow-up messages does not survive to the next run.
- **The prompt works for the user but not for a colleague.** Something lives in the user's head rather than in the context block. Have the colleague run it and note where they had to explain something.
- **It worked last month and stopped.** Usually the facts changed shape rather than value. Check the context block against reality before touching anything else.
- **Sensitive material.** Names, salaries, customer records, anything under an agreement. Say once that the prompt is going to a third-party service, and use initials or role names instead of real ones where the task allows.
- **The request is a question, not a job.** "What do you think about X" needs no structure. Structure earns its keep when the output is a deliverable that someone else reads.

## Files

- `references/examples.md` - three full builds, each with the weak version, the built prompt, the first run's failure, the one-part repair, and the fixed output. Read one before building your first prompt.
- `references/templates.md` - fill-in skeletons for the requests people repeat weekly, a context test, format phrases that actually constrain, and the swap note pattern for saving a prompt. Read it at step 3 and step 7.

Install it

Claude Code (this project)

Unzip the download into .claude/skills/. The folder is already named right.

Claude Code (every project)

Unzip into ~/.claude/skills/ to use it everywhere.

claude.ai

Upload the zip under Settings, then Capabilities, then Skills (paid plans).

How to call it

Just describe the task. The description line inside the skill does the matching. Or call it directly:

/prompting-for-work this keeps giving me generic resultshelp me write a better prompt for thiswhy does the output change every time I askmake this request give me something I can actually useturn this into a prompt I can reuse every week

Works beyond Claude

Skills use the open Agent Skills format. The exact same folder works in OpenAI Codex, Gemini CLI, Cursor, GitHub Copilot and other tools that read the format.

Using a plain chat app? Paste SKILL.md into ChatGPT or Gemini as instructions. You lose auto-triggering, but the method still works.

agentskills.io

Pattern credit: Anthropic - prompt engineering overview

Related skills