Something went wrong!
Hang in there while we get back on track
Passive Voice to Active User Story
Converts a passive voice requirement with generic 'users' into an active user story with specific persona and clear benefit. Shows how to fix voice and role specificity issues.
Input
What you provide to the skill
Users should be able to download their data in CSV or JSON format
Output
What the skill generates for you
User Story Analysis
Original: “Users should be able to download their data in CSV or JSON format”
Issues Detected:
⚠️ Generic role (“Users” - which type of user specifically?)
⚠️ Passive voice (“should be able to”)
❌ Missing benefit (no “so that…” - why download? what’s the value?)
Formatted User Story
As a data analyst working with customer insights,
I want to download my query results and datasets in CSV or JSON format,
So that I can perform advanced analysis in Excel, Python, or integrate the data into external reporting tools.
Component Validation
✅ Role: “data analyst working with customer insights”
- Specific: Yes (defines job function and work context)
- Authentic: Yes (real persona with clear analytical needs)
✅ Goal: “download my query results and datasets in CSV or JSON format”
- Specific: Yes (identifies both data export formats)
- Testable: Yes (can verify both CSV and JSON downloads work)
- User-focused: Yes (describes user action without technical implementation details)
✅ Benefit: “perform advanced analysis in Excel, Python, or integrate the data into external reporting tools”
- Clear value: Yes (enables analysis workflows and integrations)
- Outcome-oriented: Yes (focuses on what user can accomplish)
- Measurable: Could track export feature usage and format preferences
Improvements Made
- Specified role: Changed generic “Users” to “data analyst working with customer insights” (provides context for why download matters)
- Made active: Changed passive “should be able to” to active “I want to download”
- Added scope context: “query results and datasets” clarifies what data can be downloaded
- Added missing benefit: Explains why downloads are needed (external analysis tools and workflows)
- Specified use cases: Excel, Python, and integration tools show concrete value
Suggested Enhancements
Consider adding:
- Acceptance criteria: “Downloads complete within 10 seconds for datasets up to 50,000 rows”
- Edge cases: Large dataset handling, rate limiting, partial downloads, encoding options (UTF-8)
- Success metrics: % of users using export feature monthly, preferred format distribution
- Security: “Only download data user has permission to access”
Alternative framings:
- For compliance officer: “As a compliance officer preparing audit documentation, I want to download transaction records in CSV format, so that I can submit required regulatory reports to external auditors.”
- For developer: “As an API developer building integrations, I want to download sample data in JSON format, so that I can test my application against realistic data structures.”
- For business owner: “As a business owner tracking performance, I want to download sales reports in CSV format, so that I can share financial data with my accountant.”
About This Skill
Convert inconsistently written user stories into standard 'As a [role], I want [goal], so that [benefit]' format with validation and improvement suggestions.
View Skill DetailsMore Examples
Completing a Partial User Story
Takes a user story with role and goal but missing benefit, then adds context to role and articulates clear value. Demonstrates how to strengthen partially-complete stories.
Technical Task to User Story
Transforms a developer-focused technical task into a proper user story with specific role, testable goal, and articulated benefit. Shows how to preserve intent while shifting from implementation to user perspective.