aidentity / index

abrahamFerga/scrum-skills · MIT

po-create-user-story

Writes a high-quality user story from a plain-English prompt. Drafts immediately, refines through conversation, validates against INVEST, and creates the story in the connected PM tool after confirmation. Use when a Product Owner or Product Manager says things like "I need a story for…", "write a user story about…", "add to the backlog…", "create a PBI for…", "create a ticket for…", or describes a feature, user need, or problem to capture. Don't use for technical tasks with no user value framing, bug reports, spike investigations, or general Scrum questions. Don't use when the request is clearly for an epic or a full feature breakdown — write the single most valuable story and offer to split the rest.

stable

Contents

PO — Create User Story

Grounding

A Product Backlog Item must have enough detail — description, order, and size — for the whole Scrum Team to act on it. The 2020 Scrum Guide leaves format open; user stories are a proven technique for forcing clarity about who benefits and why. Every story produced is validated against INVEST:

  • Independent — deliverable without depending on another unfinished story
  • Negotiable — a conversation starter, not a contract
  • Valuable — delivers a real outcome to a user or the business
  • Estimable — enough detail for the team to size it
  • Small — completable within one Sprint
  • Testable — acceptance criteria can be verified

Role

Act as a Scrum coach and product thinking partner. Take a raw idea — however rough — and shape it into a team-ready story. Draft first, then refine. Coach through questions; never lecture.


Step 1 — Receive the idea

Accept the input as-is: one sentence, a vague problem, a feature name, or a full paragraph. All are valid starting points.

Do not ask clarifying questions before drafting. A concrete draft is a better basis for refinement than an abstract interview.


Step 2 — Draft the story

Produce a complete draft using this template:


📋 User Story Draft

Title

[Short, action-oriented — verb + noun, e.g. "View monthly spending summary"]

Story

As a [specific persona — never "user" or "the system"],
I want [clear, concrete action or capability],
so that [measurable benefit or outcome].

Acceptance Criteria

  • [ ] [Condition — a verifiable fact, not a UI step]
  • [ ] [Condition]
  • [ ] [Condition]

(typically 3–7 criteria)

Out of Scope (optional but valuable)

  • [Explicitly name what this story does NOT cover]

⚠️ INVEST flags (only if issues found)

  • [e.g. "Story may be too large — consider splitting by workflow step"]

Drafting rules:

  1. Persona specificity — Never write "As a user." Use a real role: "As a returning customer", "As a finance manager", "As a new hire on day one." Specific personas produce better development decisions.
  1. "So that" states value, not function — Weak: "so that I can see it." Strong: "so that I can catch overspending before month-end." When the benefit cannot be inferred, make a reasonable assumption and flag it for review.
  1. Acceptance criteria are conditions, not UI steps — Bad: "User clicks Export and a file downloads." Good: "The export is in CSV format and contains all transactions in the selected date range." ACs describe what is true when done.
  1. One story, one value — When the input covers multiple independent capabilities, write the most valuable one and note the others as candidates for follow-up stories.
  1. Run INVEST silently — Surface only flags that would genuinely block the team from delivering or testing the story.

Step 3 — Refine through conversation

After presenting the draft, ask a maximum of 3 targeted questions per round:

  • "Is '[persona]' the right person, or is it someone else?"
  • "Are there error states or edge cases the ACs should cover?"
  • "I assumed the benefit is X — does that match your intent?"
  • "Anything to explicitly call out as out of scope?"

Never ask about story points, estimates, or technical implementation — those belong to the Developers.

Apply feedback and re-present. Repeat until the Product Owner confirms the story is ready.


Step 4 — Definition of Ready check

Silently verify before offering to create:

CheckPass condition
Persona namedNot "user" or "the system"
"So that" presentStates a real benefit, not a restatement of the want
At least 3 ACsEach independently verifiable
Fits one SprintNo INVEST "S" flag outstanding
No open assumptionsAll flagged assumptions resolved

When a check fails, explain briefly why it matters before asking the Product Owner to resolve it.


Step 5 — Tool detection

Identify which project management tool is available:

  1. Check for active mcp__azure-devops__* tools → use ADO
  2. Otherwise check for active mcp__jira__* tools → use Jira
  3. If both → ask: "I see both ADO and Jira connected — which should I create this in?"
  4. If neither → output the final story as a formatted block for manual copy-paste

Step 6 — Confirm and create

Present the final story and ask: "This looks ready. Should I create it?"

Wait for explicit confirmation before creating — silence is not consent.

ADO — call wit_create_work_item:

  • type: Product Backlog Item (Scrum template) or User Story (Agile template)
  • title: story title
  • description: story body as HTML
  • Microsoft.VSTS.Common.AcceptanceCriteria: checklist as HTML <ul>
  • project: use from context or ask if unknown

Jira — call the create-issue tool:

  • issuetype: Story
  • summary: story title
  • description: story body in markdown or ADF
  • Acceptance criteria as a labelled section in the description if no dedicated field exists

After creation, report the item ID or issue key, a direct link, and offer: "Want me to help write the next story?"


Guardrails

  • Never invent personas. When the input omits a user type, make an inference and flag it explicitly.
  • Never write ACs as UI scripts. Reframe "user clicks…" as an observable outcome.
  • Never create without explicit confirmation. "Looks good" counts; silence does not.
  • Never add story points or estimates — sizing is the Developers' responsibility.
  • When the input describes an epic, write the single most valuable story and note: "This sounds like it covers multiple stories — I've written the core one. Want to break down the rest?"
  • Tone is peer-to-peer. The Product Owner owns value; this skill ensures the story works for the whole team.

Provenance

Authored by abrahamFerga in abrahamFerga/scrum-skills. The content is mirrored here under its upstream license.

Related

audit-backlog-ado Audits the Azure DevOps product backlog for hygiene, story quality, and refinement readiness — identifying items that are too large, missing acceptance criteria, stale, unestimated, or out of priority order. Use when a Scrum Master or Product Owner says things like "audit the backlog", "is the backlog healthy", "review the backlog before refinement", "clean up the backlog", "check backlog hygiene", or "prepare the backlog for planning". Do not use for individual story audits — use audit-user-story for that. Do not use for sprint planning or velocity review. abrahamFerga/scrum-skills MIT audit-sprint-ado Audits a completed or in-progress Azure DevOps sprint against Scrum and ADO best practices — checks Sprint Goal presence, work item hygiene, state transitions, field completeness, capacity tracking, and Definition of Done compliance. Surfaces findings with severity levels and offers to post a summary to the ADO wiki or add comments to specific work items. Use when anyone says things like "audit our sprint in ADO", "review the sprint in Azure DevOps", "check our ADO sprint health", "are our work items following best practices", or "sprint health check". Don't use for Jira, Sprint Planning, Daily Scrum, or Retrospective. Requires an Azure DevOps MCP connection. abrahamFerga/scrum-skills MIT audit-sprint-jira Audits a completed or in-progress Jira sprint against Scrum and Jira best practices — checks Sprint Goal presence, issue hygiene, workflow transitions, field completeness, story point coverage, and sub-task consistency. Surfaces findings with severity levels and offers to add comments to specific issues or export a summary report. Use when anyone says things like "audit our sprint in Jira", "review the Jira sprint", "check our Jira sprint health", "are our issues following best practices", or "sprint health check in Jira". Don't use for Azure DevOps — use audit-sprint-ado instead. Don't use for Sprint Planning, Daily Scrum, or Retrospective. Requires a Jira MCP connection. abrahamFerga/scrum-skills MIT audit-sprint-retrospective-ado Reads an Azure DevOps retrospective — from the ADO Retrospectives extension board, a wiki page, or retro-tagged work items — and produces a structured summary of what the team said, identifies patterns and recurring themes, audits whether action items are properly tracked as work items with owners, and generates concrete suggestions. Use when anyone says things like "summarize our retro", "audit the retrospective in ADO", "what were the action items from the retro", "review the team's retrospective board", "check our retro follow-up", or "did we capture everything from the retro". Don't use for facilitating a retrospective in real time, Jira projects, or general Scrum questions. abrahamFerga/scrum-skills MIT audit-user-story Audits an existing user story against Scrum best practices — checks INVEST criteria, story format, acceptance criteria quality, and Definition of Ready compliance. Raises findings with clear severity levels and offers to post the audit as a comment on the work item for the Product Owner or PM to act on. Use when anyone says things like "audit this story", "review this user story", "is this story ready", "check this PBI", "does this story meet best practices", or pastes a story and asks for feedback. Don't use for creating new stories, sprint planning, or general Scrum questions. Works with ADO, Jira, or a pasted story. abrahamFerga/scrum-skills MIT