Generates prioritized user stories with Given/When/Then acceptance scenarios from feature descriptions. Ensures independent testability, clear value, and P1-P3 prioritization.
From humaninloopnpx claudepluginhub deepeshbodh/human-in-loop --plugin humaninloopThis skill uses the workspace's default tool permissions.
references/EXAMPLES.mdreferences/PRIORITY-DEFINITIONS.mdscripts/validate-user-stories.pySearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
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"