If prompts are “programs for language models”, then most of us are shipping software with… no documentation.
That’s fine for a one-off chat. It’s painful for anything you want to reuse, share, or trust a week later.
The fix is boring (and that’s why it works): write a Prompt README.
A Prompt README is a short, structured document that sits next to a prompt (or a workflow) and answers four questions:
- What is this for?
- What does “good” look like?
- What inputs does it expect?
- How do I run it, and how do I know it didn’t drift?
It’s the difference between:
- “Here’s my magic prompt, good luck”
and
- “Here’s a small tool with a contract.”
Below is a concrete template you can copy, plus examples for a code-review assistant and a meeting-notes workflow.
Why this pattern matters
When an AI workflow stops working, it’s usually one of these:
- Context drift: you forgot the assumptions you had when you wrote the prompt.
- Input drift: the prompt silently breaks when the input format changes.
- Quality drift: outputs get noisier over time because nobody defined “done”.
- Operational drift: the workflow only works for the person who set it up.
A README doesn’t magically solve reliability, but it gives you levers:
- a shared definition of “good”
- explicit constraints and edge cases
- example inputs/outputs you can regression-test
- a runbook for humans (and future you)
The Prompt README template (copy/paste)
Create a README.md next to your prompt file (or store it in the same markdown file under a # README section).
# <Prompt/Workflow Name>
## Purpose
- What this workflow does (1–3 bullets)
- What it explicitly does *not* do
## When to use
- Signals that this workflow is the right tool
## Inputs
- Required inputs (format + examples)
- Optional inputs (and defaults)
- Known bad inputs (and how to handle them)
## Output contract
- Output format (markdown/json/etc.)
- Required sections/fields
- Style constraints (tone, verbosity)
- “Done” criteria (what must be true for the output to be accepted)
## Guardrails
- What the assistant must ask clarifying questions about
- What it should refuse or avoid
- Safety/privacy constraints
## Examples
### Example A (happy path)
- Input:
- Expected output shape:
### Example B (edge case)
- Input:
- Expected output shape:
## Run instructions
- How to run it (copy/paste prompt, script command, etc.)
- Where artifacts should be saved
## Change log
- v0.1: initial
- v0.2: adjusted output format
This looks like overkill until you’ve tried to maintain a handful of prompts across real projects.
Example 1: A “15-minute code review” assistant
Let’s say you have a prompt you use to review PRs quickly. Without documentation, it tends to degrade into vague advice.
Here’s what a Prompt README for that could look like.
# 15-Minute Code Review
## Purpose
- Produce a fast, high-signal PR review focused on correctness and maintainability.
- Prioritize issues by severity and suggest concrete fixes.
- Not a full security audit.
## When to use
- You have a PR diff and want a first-pass review before (or alongside) a human review.
## Inputs
Required:
- `diff`: unified diff (preferred) or GitHub “files changed” copy.
- `context`: one paragraph describing the feature + expected behavior.
Optional:
- `constraints`: e.g. “no new dependencies”, “keep API stable”.
## Output contract
- Markdown with these sections:
1) Summary (3–5 bullets)
2) High-risk issues (must include file+line anchors if available)
3) Medium/low-risk improvements
4) Suggested tests (unit/integration)
- Must include at least 3 concrete observations (not generic best practices).
- If the diff is too large, ask for a smaller slice.
## Guardrails
- If the diff touches auth/permissions, explicitly call it out.
- If behavior is ambiguous, ask 1–3 clarifying questions.
## Examples
### Example A (happy path)
Input:
- context: “Add pagination to /api/orders”
- diff: <paste>
Expected output shape:
- Mentions whether pagination is stable, off-by-one risks, and test coverage.
## Run instructions
- Paste context + diff into the prompt.
- Save output in `reviews/<date>-<pr>.md`.
Notice what changed: we made “high-signal” measurable.
A small trick: define a minimum number of concrete findings
If you only add one thing to your README, add this.
A lot of assistant outputs fail because they’re allowed to be “generally helpful.”
A simple rule like:
“Must include at least 3 concrete observations tied to the diff.”
pushes the model away from generic advice.
Example 2: Meeting notes → action items (with owners)
This is a workflow people love… until tasks show up without owners, deadlines, or clarity.
A README helps you force structure.
# Meeting Notes to Action Items
## Purpose
- Convert messy meeting notes into a concise action plan.
## Inputs
Required:
- `notes`: raw notes (bullets, transcript excerpt, or chat paste)
Optional:
- `participants`: list of names
- `deadlinePolicy`: e.g. “default due date is next Friday”
## Output contract
- Markdown with:
1) Decisions (bullets)
2) Action items (table)
3) Open questions
Action items table columns:
- Owner (must be one of participants or “TBD”)
- Task (starts with a verb)
- Due (date or “TBD”)
- Evidence (quote the note line that triggered it)
## Guardrails
- If there are no participants, ask for them before assigning owners.
- Do not invent deadlines—use TBD if missing.
## Example
Input notes:
- “Ship v1 Friday. Alex will handle API docs. Someone needs to update the landing page.”
Expected:
- Action items include: Alex → API docs → Friday; Landing page → Owner TBD.
That “Evidence” column is underrated. It prevents hallucinated tasks and gives humans a quick way to sanity-check.
How to adopt this pattern without slowing down
You don’t need to write a perfect README up front. Do it in three passes:
Pass 1 (5 minutes): the contract
Write only:
- Purpose
- Inputs
- Output contract
This already eliminates 80% of workflow drift.
Pass 2 (next failure): guardrails + one example
The first time the output is wrong in an interesting way, add:
- Guardrails
- Example B (the edge case you just hit)
Pass 3 (when sharing): run instructions + change log
When you hand it to someone else (or future you):
- Run instructions
- Change log
A practical folder layout
If you maintain prompts like code, treat them like small packages:
prompts/
code-review-15min/
prompt.md
README.md
examples/
happy-path.md
edge-case-large-diff.md
The examples/ folder becomes your lightweight test suite. If a prompt change makes the output worse for an example input, you notice.
What to write when you’re not sure
If you don’t know how to specify something, write the uncertainty down.
For example:
- “If input is ambiguous, ask up to 3 clarifying questions.”
- “If the diff is larger than ~800 lines, request a smaller slice.”
- “If there’s no owner, set Owner=TBD (do not guess).”
A README is allowed to be honest. In fact, it should be.
Closing
The Prompt README Pattern isn’t glamorous, but it scales.
It turns prompts from “secret spells” into maintainable tools—with contracts, examples, and a shared definition of done.
If you try it, start with one workflow you rely on weekly. Write the README in 10 minutes. You’ll feel the difference the next time you come back to it.
Top comments (0)