Here is a copy-paste user story prompt you can use right now. Paste it into a sfora post, or hand it to your AI agent, describe a feature in a sentence or two, and you get back well-formed user stories — each in the "as a, I want, so that" shape, each with acceptance criteria you can actually test. The output is a markdown file on your board, ready to turn into tasks.
This is one of the prompts in our AI prompts guide. It pairs naturally with the PRD prompt — stories are the section a PRD lives or dies on — and with the product spec prompt. For the background on writing requirements with AI, see the AI PRDs guide.
The prompt
Copy this block, paste it where you draft, and replace the bracketed parts.
Running it in sfora
You do not have to leave your workspace to use this. In sfora, a post is a markdown file, so the stories land in the same place as the tasks they become.
There are two ways to run it:
- Paste it into a post. Open a new post, paste the block, describe your feature, and hand it to the agent in that thread. It replies with the stories and criteria, right there.
- Hand it to your agent over the CLI. If you drive an agent like Claude Code, Cursor, or the sfora CLI over MCP, give it the same prompt and point it at the board. It writes the stories as a file, and from there each story can become a task.
Either way, the result is a real markdown file on your board — one a person can edit and an agent can pick up.
What the output looks like
Give the prompt a feature and a couple of roles, and you get back something like this:
## Stories: task due dates
### As a member, I want to set a due date on a task so that I know when it is expected.
**Acceptance criteria**
- Given an open task, when I click the due-date field, then a date picker opens.
- Given I pick a date, when I close the picker, then the date shows on the task.
- Given a task with no due date, then the field reads "No due date" and is not an error.
- Given I lack edit permission on the task, then the due-date field is read-only.
### As a member, I want to see overdue tasks stand out so that I notice them.
**Acceptance criteria**
- Given a task whose due date is in the past and is not done, then its date shows in red.
- Given a task that is done, then a past due date does not show as overdue.
- Given a task due today, then the date reads "Today" rather than the full date.
### Later
### As a member, I want a reminder before a task is due so that I don't forget.
<!-- QUESTION: in-app, email, or push? Out of scope for v1. -->See what it did: split one feature into small, buildable stories, wrote criteria you can check off, covered the empty and permission cases, and parked the reminder idea under Later instead of quietly expanding scope. That is the prompt doing the tedious part so you can decide what actually ships.
Turning stories into tasks
Well-formed stories are already most of a task list. Once the prompt gives you the stories, the acceptance criteria become the definition of done:
- Each story is a candidate task. Small stories map cleanly to small tasks.
- The criteria are the checklist. Drop them into the task and you know exactly when it is finished.
- The
<!-- QUESTION -->notes are decisions to make. Resolve them before you start building, not halfway through.
This is also what makes stories readable by an AI agent. When a coding agent picks up a task, the acceptance criteria tell it what "done" means without a conversation — which is why writing them as pass-or-fail checks matters more than ever.
How to get sharper stories
The prompt's output tracks the quality of your input. To get better stories:
- Name the real roles. "Member, admin, and agent" gives the AI something to work with. "The user" flattens everything into one story.
- State the constraints up front. Permissions and platform limits shape the criteria. If you leave them out, the AI writes a happy-path story and misses the edge that bites you.
- Keep the feature to a sentence. A tight feature description produces tight stories. A paragraph of context produces a sprawl you have to trim.
Where sfora fits
sfora is a project workspace where humans and AI agents are members of the same team, and everything — tasks, docs, posts — is a markdown file. That is what makes this prompt more than a chat trick.
When you run the user story prompt in sfora, the stories are a real file on your board. A person edits them and turns each into a task; an agent that is a member of the same workspace can read the same file, pick up a task, and build against the acceptance criteria you wrote. The stories are not a copy pasted out of a chatbot — they are the instructions the work runs on.
Want the doc these stories live inside? Use the PRD prompt to draft the full spec, and browse the full set in the AI prompts guide.