1. Weak prompts are requests. Strong prompts are specs.

Most people prompt AI the way they'd shout an order across a noisy kitchen: "write me a product description," "summarize this," "give me some ideas." Those are requests — open-ended wishes the model has to interpret. And interpretation is exactly where quality leaks out. The model fills every gap you left with an average guess, and average guesses produce average output.

A good prompt is not a request. It's a specification. A spec leaves nothing important to chance: it says who is doing the work, what the boundaries are, and what "finished" looks like. The difference in output isn't marginal. The same model, given a spec instead of a request, routinely returns work you can use as-is instead of work you have to rewrite.

The good news is you don't need a 500-word mega-prompt to get there. You need three parts, in order, every time: Role, Constraints, Example. That's the whole pattern. Once it's a reflex, your floor for output quality goes up permanently — across every model and every task.

The mental model: a request asks the AI to be creative about what you meant. A spec asks the AI to be creative about how to deliver what you clearly defined. You want the second kind of creativity.

2. The three parts — and why the Example carries the most weight

Each part removes a specific kind of ambiguity. Read them as a stack: Role sets the lens, Constraints set the boundaries, and the Example collapses everything you couldn't put into words into one concrete target.

🎭

Role

Tell the AI who it is. This sets vocabulary, depth, default assumptions, and the standard it holds itself to. "You are a senior B2B copywriter" produces different work than "you are a helpful assistant."

You are a senior B2B SaaS copywriter who writes tight, benefit-led copy.
📐

Constraints

Define the boundaries the output must respect: length, tone, format, what to include, and — just as important — what to avoid. Constraints are how you stop the model from padding, rambling, or going off-brand.

≤ 60 words. Active voice. No hype words ("revolutionary", "game-changer"). End with one CTA.
🧩

Example

Show one finished output that hits the bar. This is the single most powerful lever in prompting — it removes the ambiguity that adjectives can't. The model stops guessing what "good" means and starts pattern-matching to something real.

Here's the bar: "Stop guessing at spreadsheets. Ledger turns raw exports into a board-ready P&L in one click. Start free →"

Why the Example does most of the work

Role and Constraints are written in words about the output. Words are lossy. "Professional but warm," "concise," "on-brand" — every one of those means something slightly different to you than it does to the model. An Example is not a description of good; it is good, shown directly. The model can measure structure, length, rhythm, and tone against a concrete artifact instead of against your adjectives.

This is the same insight that powers few-shot prompting: a single well-chosen example often beats ten extra lines of instruction. If you only have time to add one thing to a weak prompt, add an example of the output you want. It is, dollar for dollar, the highest-leverage edit you can make.

3. The full copy-paste prompt

Here's the pattern assembled into a real, ready-to-run prompt. Paste it into Claude, ChatGPT, or Gemini, swap the bracketed bits for your own task, and notice how much less rewriting you do afterward.

role-constraints-example.prompt
# ROLE You are a senior B2B SaaS copywriter who writes tight, benefit-led product copy. You hold yourself to the standard of the best landing pages on the web. # TASK Write a product description for: [YOUR PRODUCT — what it does, who it's for] # CONSTRAINTS - 50–70 words, no more. - Active voice. Lead with the customer outcome, not the feature. - No hype words: "revolutionary", "game-changer", "seamless", "cutting-edge". - One clear call to action at the end. - Plain, confident tone — like talking to a smart, busy buyer. # EXAMPLE OF THE BAR (match this quality, not the topic) "Stop stitching exports together by hand. Ledger turns raw bank and Stripe data into a board-ready P&L in one click — so close happens in an afternoon, not a week. Built for finance teams who'd rather analyze than reconcile. Start free, no card required →" # OUTPUT Return only the final description. No preamble, no options.

Notice what each block is doing. The Role sets the standard ("the best landing pages on the web"). The Constraints fence in length, voice, and banned words so the model can't drift. And the Example shows the exact rhythm and structure of a finished result — so the model has a target to hit, not just a description to interpret. Strip out the Example and the output gets noticeably blander. That's the lever, made visible.

One rule for examples: always tell the model to match the quality and structure of the example, not its topic — otherwise it may copy your sample's subject matter. The line "match this quality, not the topic" does that job.

4. Newbie → vibe → advanced: the same pattern, three altitudes

The beauty of Role + Constraints + Example is that it scales with you. The exact same three parts grow from a quick copy-paste habit into the backbone of a real agent. Here's the path.

Level 1 · Newbie

Build a snippet library

Save the pattern as reusable text snippets — one per task you do often (emails, summaries, descriptions). Keep a personal "Role + Constraints + Example" template in a notes app and paste it in. You're not memorizing prompts; you're reusing a skeleton and swapping the middle.

Level 2 · Vibe

Add real few-shot + a schema

Upgrade the single Example into two or three real few-shot examples, then add a JSON output schema so the result is structured and machine-parseable. Now your prompt produces consistent, drop-into-a-spreadsheet output instead of prose you have to clean up.

Level 3 · Advanced

Promote it to a system prompt

Move the Role and Constraints into a persistent system prompt or a CLAUDE.md file. Every task the agent runs now inherits them automatically — no re-pasting. This is exactly how single prompts become reliable agents.

What Level 2 looks like in practice

Here's the same pattern, leveled up with a JSON schema so the output is structured. This is the bridge between "I prompt well" and "I build tools that prompt well for me."

few-shot-with-schema.prompt
Role: You are a precise product-data writer. Constraints: Return ONLY valid JSON matching the schema. No markdown, no commentary. Schema: { "headline": "string, <= 8 words", "description": "string, 50-70 words, active voice", "cta": "string, <= 5 words, ends with an arrow" } Example output: { "headline": "Close the books in an afternoon", "description": "Stop stitching exports together by hand. Ledger turns raw bank and Stripe data into a board-ready P&L in one click — built for finance teams who'd rather analyze than reconcile. Accurate, audit-ready, done by lunch.", "cta": "Start free →" } Now do it for: [YOUR PRODUCT]

At Level 3, you'd lift the Role and the Constraints out of the prompt entirely and put them in your system prompt or CLAUDE.md, leaving only the task in each message. The agent then applies the same standard to every job automatically — which is the whole point of an agent: define the bar once, hit it forever.

5. The 30-second recap

  • Requests vs. specs: stop asking, start specifying. The gaps you leave get filled with average guesses.
  • Role sets the lens and the standard.
  • Constraints set the boundaries — including what NOT to do.
  • Example does the heavy lifting: it shows "good" instead of describing it. If you add one thing to a weak prompt, add an example.
  • It scales: snippet library → few-shot + JSON schema → system prompt / CLAUDE.md. Same pattern, all the way up to agents.

The fastest way to internalize this isn't reading about it once — it's practicing it until it's automatic. That's what PromptSharp is built for: one short lesson a day, real examples, until great prompts come out of your fingers without thinking.

Frequently asked questions

What is the Role + Constraints + Example prompt pattern? +
A three-part structure that turns prompts into specifications. Role tells the AI who it is and what standard to hold; Constraints define the boundaries — length, tone, format, what to avoid; Example shows one finished output to pattern-match against. The Example does the most work because it removes ambiguity that words alone can't.
Why does the Example part matter most? +
Descriptions of "good" are subjective; a concrete example is unambiguous. When you show the model one finished result — the right length, structure, tone, and detail — it stops guessing and starts pattern-matching. This is the core idea behind few-shot prompting: one good example often beats ten lines of adjectives.
Does this work for ChatGPT, Claude, and Gemini? +
Yes. Role, Constraints, and Example are model-agnostic fundamentals that work with Claude, ChatGPT, Gemini, Mistral, and any other LLM. Claude responds especially well to explicit role-setting and structured constraints, but the pattern improves output on every model.
How do I go from this pattern to building agents? +
The same three parts scale up. Beginners save the pattern as reusable snippets. Intermediate users add real few-shot examples plus a JSON output schema. Advanced users move the Role and Constraints into a persistent system prompt or a CLAUDE.md file so every task inherits them automatically. The pattern is the on-ramp from single prompts to full agents.