Help us improve
Share bugs, ideas, or general feedback.
From humaninloop
Generates prioritized user stories with Given/When/Then acceptance scenarios from feature descriptions. Ensures independent testability, clear value, and P1-P3 prioritization.
npx claudepluginhub joshuarweaver/cascade-ai-ml-agents-agent-framework --plugin deepeshbodh-human-in-loopHow this skill is triggered — by the user, by Claude, or both
Slash command
/humaninloop:authoring-user-storiesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Violating the letter of the rules is violating the spirit of the rules.**
Writes user stories with INVEST-compliant acceptance criteria in Given/When/Then format. Activates during product backlog grooming, sprint planning, or feature refinement.
Generates user stories in persona-action-benefit format from product requirements. Useful for sprint planning, ticket writing, and scope communication.
Writes user stories in standard format with acceptance criteria, edge cases, and definition of done from feature briefs, PRDs, or verbal descriptions.
Share bugs, ideas, or general feedback.
Violating the letter of the rules is violating the spirit of the rules.
Transform feature descriptions into testable user stories with clear business value, prioritized by impact. Each story MUST be independently testable with measurable acceptance criteria.
This is a discipline-enforcing skill. The structured format exists to ensure stories are unambiguous, testable, and properly prioritized. Shortcuts create ambiguous requirements that cause implementation failures.
humaninloop:patterns-technical-decisions insteadhumaninloop:patterns-api-contracts insteadGenerate 2-5 user stories per feature using this exact structure:
### User Story N - [Brief Title] (Priority: P#)
[Describe this user journey in plain language]
**Why this priority**: [Explain the value and priority level]
**Independent Test**: [How this can be tested standalone]
**Acceptance Scenarios**:
1. **Given** [state], **When** [action], **Then** [outcome]
2. **Given** [state], **When** [action], **Then** [outcome]
| Priority | Meaning | Criteria |
|---|---|---|
| P1 | Core functionality | MVP requirement, blocks other features, must ship |
| P2 | Important | Complete experience but can ship without initially |
| P3 | Nice to have | Enhances experience, future consideration |
See PRIORITY-DEFINITIONS.md for detailed guidance on priority assignment.
Each scenario follows the Given/When/Then pattern:
Rules:
Good example:
**Given** a user has an active subscription,
**When** they click "Cancel Subscription",
**Then** they see a confirmation dialog with the cancellation date
Bad example:
**Given** the database has the user record,
**When** the API receives a DELETE request,
**Then** the subscription_status column is set to "cancelled"
Each user story must include an Independent Test description that explains:
This enables parallel testing and clear verification.
Before finalizing, verify each user story:
Validate user story format with the included script:
python scripts/validate-user-stories.py path/to/spec.md
The script checks:
See EXAMPLES.md for complete user story examples.
| Excuse | Reality |
|---|---|
| "Priority is obvious, don't need justification" | Obvious to you ≠ obvious to others. Stakeholders disagree on "obvious." Justify anyway. |
| "This story is too simple for Given/When/Then" | Simple stories still need testable criteria. Ambiguity causes implementation bugs. Format anyway. |
| "We can add acceptance scenarios later" | "Later" means never. Incomplete stories get misimplemented. Write them now. |
| "The user just wants quick stories" | Quick incomplete stories waste more time than complete ones. Do it right. |
| "Independent test is overkill for small features" | Small features still need verification. QA can't test what isn't specified. Include it. |
| "Everyone knows what P1 means" | P1 without justification is opinion, not prioritization. Explain the value. |
If you notice yourself thinking any of these, STOP immediately:
All of these mean: You are rationalizing. Write complete stories with all required sections.
No exceptions:
❌ "As a developer, I want to refactor the auth module" ✅ "As a user, I want to log in securely so my account is protected"
❌ Just saying "P1" without explaining why ✅ "Why this priority: Core login flow - users cannot access any features without this"
❌ "Then the React component re-renders with updated state" ✅ "Then the user sees the updated balance immediately"
❌ "Then the user is happy" or "Then it works correctly" ✅ "Then the user sees a confirmation message with order number"
❌ One story covering login, registration, AND password reset ✅ Separate stories for each distinct user journey
❌ "Then the system is performant" ✅ "Then the page loads within 2 seconds"