Copy it, paste it, stop losing an hour to vague tickets.
You've read the ticket three times and still don't know where to start
Someone hands you a "feature request" that's actually three features, two assumptions, and a design opinion dressed up as a technical constraint. You open a blank file. You close it.
That gap between a vague brief and a file you can actually code from — that's where this prompt lives.
What it is
It's a single, structured AI prompt you paste into ChatGPT, Claude, or any capable LLM. You drop in the raw requirement text, and it returns a clean developer specification: user story, acceptance criteria, edge cases, suggested data model, and open questions.
Nothing proprietary. No plugin required. Just a prompt you copy once and reuse forever.
Here it is:
You are a senior software architect helping a developer turn a vague feature request into a clean specification.
Given the raw requirement below, return a structured developer spec with these sections:
1. User Story — one sentence in "As a [user], I want [action] so that [outcome]" format
2. Acceptance Criteria — 3 to 6 bullet points, each testable and unambiguous
3. Edge Cases — at least 3 scenarios the happy path ignores
4. Suggested Data Model — field names, types, and a one-line reason for each
5. Open Questions — things that must be answered before dev starts
Be concise. Use plain language. Flag any assumption you make.
Raw requirement:
[PASTE REQUIREMENT HERE]
Why it matters right now
LLMs are genuinely good at structured decomposition — probably better than a tired developer skimming Slack at 4 p.m. What they're bad at is knowing which structure to use. This prompt gives the model the exact scaffold, so you get consistent output every time instead of a different format on every run.
It helps solo developers who don't have a PM to push back on bad tickets. It helps small teams who skip the spec phase because writing one feels slower than just coding. And it helps anyone who's been burned by discovering an edge case in production that a five-minute conversation would have caught.
It doesn't replace real product thinking. But it compresses the first thirty minutes of that thinking into about forty seconds.
A real example
Raw input dropped into the prompt:
"Add a way for users to delete their account."
The model returned:
User Story: As a registered user, I want to permanently delete my account so that my personal data is removed from the platform.
Acceptance Criteria:
- User must confirm deletion via a secondary prompt before action is taken
- All user-generated content is soft-deleted immediately and purged after 30 days
- Active subscriptions are cancelled before deletion proceeds
- A confirmation email is sent after successful deletion
- Deleted accounts cannot be reactivated; the email address can be reused after 90 days
Edge Cases:
- User deletes account mid-checkout flow
- Account has an unpaid invoice
- User is the sole admin of a team workspace
Suggested Data Model:
deleted_at: timestamp | null— marks soft delete, null if activepurge_scheduled_at: timestamp | null— when hard delete runsdeletion_reason: enum | null— optional, for churn analytics
Open Questions:
- Does deletion also remove posts visible to other users, or only private data?
- Who owns content in shared workspaces — the user or the workspace?
That's real output, unedited. A two-word ticket became a half-page spec in under a minute.
What to try next
Save the prompt as a snippet in your editor or AI tool of choice. Run it on the next three tickets that land in your backlog. You'll start to notice patterns in what your team consistently forgets to specify — and that's useful data on its own.
If you want more prompts built around real developer workflows, there are curated picks at teum.io.
A two-word ticket became a half-page spec in under a minute.