specwright/templates/skills/dev-team/po/requirements-engineering/SKILL.md
# Requirements Engineering Skill > Template for Product Owner requirements gathering and user story writing > Created: 2026-01-09 > Version: 1.0.0 ## Skill Name **requirements-engineering** - Expert requirements elicitation, documentation, and user story crafting ## Purpose Enable systematic requirements gathering from stakeholders, users, and business needs, transforming them into clear, actionable user stories with well-defined acceptance criteria. ## When to Activate Activate this skill
npx skillsauth add michsindlinger/specwright specwright/templates/skills/dev-team/po/requirements-engineeringInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Template for Product Owner requirements gathering and user story writing Created: 2026-01-09 Version: 1.0.0
requirements-engineering - Expert requirements elicitation, documentation, and user story crafting
Enable systematic requirements gathering from stakeholders, users, and business needs, transforming them into clear, actionable user stories with well-defined acceptance criteria.
Activate this skill when:
As a [user role/persona]
I want [goal/desire]
So that [benefit/value]
Given [initial context/state]
When [action/event occurs]
Then [expected outcome]
- [ ] System does X when user does Y
- [ ] Error message appears when Z condition
- [ ] Data persists after action completion
While requirements are implementation-agnostic, be aware of:
[MCP_TOOLS]
<!-- Populated during skill creation based on: 1. User's installed MCP servers 2. User's selection for this skill Recommended for this skill (examples): - fetch - Retrieve product specs and requirements documentation - github - Access user stories, issues, and feedback - filesystem - Manage requirements artifacts and templates Note: Skills work without MCP servers, but functionality may be limited -->.specwright/specs/ for detailed specifications.specwright/product/mission.md for product visionBefore considering requirements complete:
.specwright/specs/YYYY-MM-DD-feature-name/Story: As a returning customer I want to view my order history So that I can track past purchases and reorder items easily
Acceptance Criteria:
Given I am a logged-in customer with previous orders
When I navigate to "My Account" > "Order History"
Then I see a list of my orders sorted by date (most recent first)
Given I am viewing my order history
When I click on a specific order
Then I see the full order details including:
- Order number and date
- Items purchased with quantities
- Total amount paid
- Shipping address
- Current delivery status
Given I am viewing order details
When I click "Reorder" on a past order
Then all items are added to my cart
And I am redirected to the checkout page
Given I am a new customer with no orders
When I navigate to "Order History"
Then I see a message "No orders yet" with a link to continue shopping
Non-Functional Requirements:
Story: As a system administrator I want to export user data in CSV format So that I can analyze user trends in external tools
Acceptance Criteria:
Non-Functional Requirements:
Story: As a software developer I want to receive webhook notifications when builds fail So that I can respond quickly to broken builds without constantly checking the dashboard
Acceptance Criteria:
Given I have configured a webhook URL in my project settings
When a build fails on any branch
Then a POST request is sent to my webhook URL
And the payload includes:
- Project name
- Branch name
- Commit SHA
- Build failure reason
- Timestamp
- Link to build logs
Given the webhook delivery fails (timeout or non-200 response)
When the initial delivery fails
Then the system retries up to 3 times with exponential backoff
And I can view delivery status in webhook settings
Given I want to test my webhook integration
When I click "Send test notification" in webhook settings
Then a sample payload is sent to my webhook URL
And I see confirmation of successful delivery or error details
Non-Functional Requirements:
Preparation:
Interview Structure (45-60 minutes):
Introduction (5 min)
Current State Discovery (15 min)
Pain Points Exploration (15 min)
Future State Vision (15 min)
Constraints & Context (5 min)
Wrap-up (5 min)
# Feature Requirements: [Feature Name]
> Created: [DATE]
> Stakeholders: [Names/Roles]
> Status: Draft | Under Review | Approved
## Executive Summary
[2-3 sentence overview of feature purpose and value]
## Business Context
**Problem Statement**: [What problem are we solving?]
**Target Users**: [Who will use this feature?]
**Business Value**: [Why build this now?]
**Success Metrics**: [How will we measure success?]
## User Personas
### Primary Persona: [Name]
- **Role**: [Job title/description]
- **Goals**: [What they want to achieve]
- **Pain Points**: [Current challenges]
- **Technical Proficiency**: [Low | Medium | High]
### Secondary Persona: [Name]
[Repeat structure]
## User Stories
### Story 1: [Title]
As a [persona]
I want [goal]
So that [benefit]
**Priority**: Must Have | Should Have | Could Have
**Acceptance Criteria**:
[Detailed criteria using Given-When-Then or checklist]
**Mockups/Wireframes**: [Link or attachment]
[Repeat for each story]
## Non-Functional Requirements
### Performance
- [Specific performance targets]
### Security
- [Authentication/authorization requirements]
- [Data protection needs]
### Usability
- [Accessibility standards]
- [Browser/device support]
### Scalability
- [Expected volume/growth]
## Business Rules
1. [Rule 1]
2. [Rule 2]
## Dependencies
- **Upstream**: [Features that must exist first]
- **Downstream**: [Features that depend on this]
- **External**: [Third-party integrations]
## Out of Scope
[Explicitly state what this feature will NOT include]
## Open Questions
- [ ] [Question requiring stakeholder input]
- [ ] [Technical feasibility question for dev team]
## Appendix
- **Research Notes**: [Link to interview notes]
- **Analytics Data**: [Supporting usage data]
- **Competitive Analysis**: [How competitors solve this]
Bad: "As a user, I want a dropdown menu for selecting categories" Good: "As a user, I want to filter products by category so that I can find relevant items quickly" Why: Focus on the need, not the implementation
Bad: "System should be fast" Good: "Page load time is under 2 seconds for 95% of requests" Why: Testable, specific criteria enable clear completion definition
Bad: "As a user, I want to POST data to the API endpoint" Good: "As a user, I want to save my profile information so that it's available on my next visit" Why: User-centric language, not technical implementation
Bad: "As a user, I want to reset my password" Good: "As a user, I want to reset my password so that I can regain access to my account if I forget it" Why: Understanding the value helps with prioritization and validation
Bad: "As a user, I want a complete dashboard with charts, reports, exports, and alerts" Good: Break into multiple stories:
When requirements are approved:
create-spec # Generate full specification in .specwright/specs/
.specwright/specs/YYYY-MM-DD-feature-name/.specwright/product/mission.mdspecwright/product/architecture-decision.mdWhen requirements change:
update-feature # Track requirement changes over time
Track requirements quality through:
Remember: Great requirements come from deep user understanding, clear communication, and collaborative refinement. Focus on problems, not solutions. Listen more than you speak. Validate assumptions early and often.
tools
Session Handoff: Erstellt eine vollständige Zusammenfassung der aktuellen Session für einen sauberen Kontextwechsel. NUR bei explizitem Aufruf (/session-handoff). NICHT automatisch auslösen. Geeignet wenn der User die Session resetten will, den Kontext aufräumen will, oder bei ~120k Tokens angelangt ist.
development
Pre-Mortem Risk Analysis: Strukturierte Prospective-Hindsight-Übung um launch-blocking Risiken vor Commitment aufzudecken. Team stellt sich vor, das Produkt sei 14 Tage nach Launch gefloppt, und arbeitet rückwärts. Klassifiziert Risiken in Tigers (echt), Paper Tigers (hypothetisch), Elephants (unausgesprochen). Nutze diesen Skill vor Build-Commitment, bei zu hoher Stakeholder-Confidence, vor Major-Releases, oder wenn das Team vage Sorgen nicht artikulieren kann. Trigger: /pre-mortem, 'pre-mortem', 'risk analysis', 'was könnte schiefgehen', 'risiken vor launch'.
testing
Six-Sigma Atomicity Validator for create-spec stories
tools
UX pattern definition guidance for navigation, user flows, interactions, and accessibility