From qe-framework
Writes individual user stories in Mike Cohn format with Gherkin acceptance criteria and INVEST validation. Use for backlog items, acceptance criteria, or development-ready stories.
How this skill is triggered — by the user, by Claude, or both
Slash command
/qe-framework:Qpm-user-storyThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Distinct from:** Qpm-prd (full document), Qgenerate-spec (task specs). This skill writes individual INVEST-format user stories with Gherkin acceptance criteria. It does not produce comprehensive PRD documents (see /Qpm-prd) or task specifications for internal QE processes (see /Qgenerate-spec). User stories are development units; PRDs are strategic documents.
Distinct from: Qpm-prd (full document), Qgenerate-spec (task specs). This skill writes individual INVEST-format user stories with Gherkin acceptance criteria. It does not produce comprehensive PRD documents (see /Qpm-prd) or task specifications for internal QE processes (see /Qgenerate-spec). User stories are development units; PRDs are strategic documents.
Generate clear, concise user stories by combining Mike Cohn's user story format with Gherkin acceptance criteria. Converts user needs into outcome-focused development tasks and provides testable success criteria.
As a [user persona/role]
I want to [action to achieve outcome]
so that [desired outcome]
Scenario: [brief scenario description]
Given: [initial context or precondition]
and Given: [additional precondition]
When: [event that triggers the action]
Then: [expected result]
### User Story [ID]:
- **Summary:** [concise, value-focused title]
#### Use Case:
- **As a** [user's name if available, otherwise persona]
- **I want to** [action the user takes to reach the outcome]
- **so that** [desired outcome]
Quality check:
#### Acceptance Criteria:
- **Scenario:** [scenario description]
- **Given:** [precondition]
- **and Given:** [additional precondition]
- **When:** [trigger event]
- **Then:** [expected result]
Rules:
- **Summary:** short, memorable, value-focused title
✅ "Enable Google login for trial users to reduce friction" ❌ "Add login button"
### User Story 042:
- **Summary:** Enable Google login for trial users to reduce friction
#### Use Case:
- **As a** trial user visiting the app for the first time
- **I want to** log in with my Google account
- **so that** I can access the app without creating and remembering a new password
#### Acceptance Criteria:
- **Scenario:** First-time trial user logs in with Google OAuth
- **Given:** I am on the login page
- **and Given:** I have a Google account
- **When:** I click "Sign in with Google" and approve the app
- **Then:** I am logged into the app and redirected to the onboarding flow
Before finalizing each story, validate against INVEST criteria:
| Criterion | Question | Fail Signal |
|---|---|---|
| Independent | Can this story be delivered without other stories? | "Depends on US-03" |
| Negotiable | Is the implementation flexible? | Prescribes specific UI/tech |
| Valuable | Does it deliver user/business value? | Pure tech task |
| Estimable | Can the team estimate effort? | Too vague or too large |
| Small | Fits in a single sprint? | Multi-sprint epic |
| Testable | Can QA write test cases from it? | Subjective criteria |
If any criterion fails → revise or split the story.
Each story has three dimensions (Ron Jeffries):
A story without Conversation context is just a ticket. Include:
#### Design References:
- Figma: [link]
- Miro: [link]
#### Conversation Notes:
- [key decision or edge case from discussion]
Credits: Original skill by @deanpeters - https://github.com/deanpeters/Product-Manager-Skills Credits: INVEST/3C's frameworks adapted from phuryn/pm-skills (MIT)
npx claudepluginhub inho-team/qe-framework --plugin qe-frameworkCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.