aiwg
Version:
Cognitive architecture for AI-augmented software development with structured memory, ensemble validation, and closed-loop correction. FAIR-aligned artifacts, 84% cost reduction via human-in-the-loop, standards adopted by 100+ organizations.
589 lines (407 loc) • 19.9 kB
Markdown
---
template_id: user-story-card
version: 2.0.0
reasoning_required: true
---
# User Story Card
## Reasoning
> Complete this section BEFORE writing the detailed story. Per @.claude/rules/reasoning-sections.md
1. **User Need**: Why does the user need this capability?
> [Describe the user's problem, pain point, or goal that this story addresses]
2. **Value Proposition**: What value does this deliver?
> [Quantify business value: conversion, efficiency, retention, revenue impact]
3. **Acceptance Definition**: How will we know this is complete?
> [Define the core pass/fail criteria that make this story testable]
4. **Implementation Consideration**: What technical approach is suggested?
> [High-level technical direction, integration points, known constraints]
5. **Risk Identification**: What could prevent successful delivery?
> [Identify dependencies, unknowns, technical risks, timeline concerns]
## Metadata
- **ID**: `US-{project}-{number}` (e.g., US-PLATFORM-042)
- **Type**: Requirement Card (User Story)
- **Status**: Draft | Ready | In Progress | Done | Rejected | Blocked
- **Owner**: Product Owner / Business Analyst
- **Contributors**: Development Team, UX Designer, Stakeholders
- **Reviewers**: Product Owner, Technical Lead
- **Team**: Development Team Name
- **Stakeholders**: Key business and user representatives
- **Created**: YYYY-MM-DD
- **Last Updated**: YYYY-MM-DD
- **Priority**: Critical | High | Medium | Low
- **Story Points**: Fibonacci (1, 2, 3, 5, 8, 13) or T-Shirt (XS, S, M, L, XL)
- **Sprint**: Sprint number or "Backlog"
- **Related**:
- Epic: `EP-{project}-{number}`
- Feature: `FEAT-{id}`
- Requirements: `REQ-{id}`
- Test Cases: `TC-{id}`
- Tasks: `TASK-{id}`
- Dependencies: `US-{id}` (upstream stories)
- Architecture: `ADR-{id}`, `ARCH-{id}`
## Phase 1: Story Core (ESSENTIAL)
Complete these fields immediately when creating a user story:
### User Story Statement
**As a** [type of user/role/persona]
**I want** [capability/feature/action]
**So that** [business value/benefit/outcome]
<!-- EXAMPLE:
**As a** job seeker
**I want** to filter job listings by salary range
**So that** I only see jobs that meet my compensation expectations
-->
<!-- ANTI-PATTERN:
**As a** user
**I want** better search
**So that** things work better
(Too vague - specify user type, exact capability, measurable benefit)
-->
### Story Context
**Problem**: [Brief description of the problem or pain point this story addresses]
<!-- EXAMPLE: Job seekers waste time reviewing positions that don't meet their salary expectations, leading to frustration and abandonment of the job search process. -->
**Value**: [Why this matters to users and the business - quantify if possible]
<!-- EXAMPLE: Expected to reduce time-to-application by 40% and increase conversion rate by 15% based on competitor analysis and user research. -->
**Scope**: [What this story includes and explicitly excludes]
<!-- EXAMPLE:
INCLUDES: Salary range slider, real-time filtering, URL parameter persistence
EXCLUDES: Saving filters to user profile (separate story US-PLATFORM-044)
-->
**User Persona**: [Primary user type this story serves - link to persona if available]
<!-- EXAMPLE: Sarah the Career Changer - mid-career professional seeking new opportunities with specific compensation requirements -->
### INVEST Check
Before accepting this story for sprint planning, verify:
- [ ] **Independent**: Can be developed without depending on other stories in same sprint
- [ ] **Negotiable**: Details can be refined during implementation
- [ ] **Valuable**: Delivers value to users or business
- [ ] **Estimable**: Team can estimate effort required
- [ ] **Small**: Can complete in one sprint
- [ ] **Testable**: Clear pass/fail criteria
<!-- EXAMPLE:
✓ Independent: No dependencies on other current sprint stories
✓ Negotiable: Slider UI details can be refined with UX
✓ Valuable: Increases conversion by 15% (validated in prototype)
✓ Estimable: Team estimates 5 story points
✓ Small: Can complete in 3-5 days
✓ Testable: Clear acceptance criteria defined below
-->
## Phase 2: Acceptance Criteria (EXPAND WHEN READY)
<details>
<summary>Click to expand detailed acceptance criteria and test scenarios</summary>
Define clear, testable conditions that must be met for this story to be considered "done."
### Criterion 1: [Name of the behavior or capability]
**Given** [precondition/context/initial state]
**When** [action/event/user interaction]
**Then** [expected outcome/result]
**And** [additional outcome, if needed]
<!-- EXAMPLE:
### Criterion 1: Apply Salary Filter
**Given** I am viewing the job search page
**When** I adjust the salary range slider to $80K-$120K
**Then** the job list updates to show only positions within that range
**And** the URL updates with the filter parameter for bookmarking
-->
### Criterion 2: [Name of the behavior or capability]
**Given** [precondition/context]
**When** [action/event]
**Then** [expected outcome]
<!-- EXAMPLE:
### Criterion 2: Clear Salary Filter
**Given** I have applied a salary filter
**When** I click the "Clear Filters" button
**Then** the salary slider resets to full range (min-max)
**And** all jobs are displayed again
-->
### Criterion 3: [Edge Cases and Error Handling]
**Given** [error condition or boundary case]
**When** [triggering action]
**Then** [graceful handling or error message]
<!-- EXAMPLE:
### Criterion 3: No Results Found
**Given** no jobs exist in the selected salary range
**When** I apply the salary filter
**Then** the system displays "No jobs found - try adjusting your filters"
**And** the filter remains applied (no auto-reset)
-->
### Acceptance Criteria Checklist
- [ ] All happy path scenarios covered
- [ ] Edge cases and boundary conditions defined
- [ ] Error handling specified
- [ ] Performance expectations stated (if applicable)
- [ ] Security requirements included (if applicable)
- [ ] Accessibility requirements specified (if applicable)
</details>
## Phase 3: Technical Details (ADVANCED)
<details>
<summary>Click to expand technical considerations, NFRs, and implementation guidance</summary>
### Non-Functional Requirements
Constraints and quality attributes specific to this story:
#### Performance
- **Response Time**: [e.g., "Filter results update within 500ms"]
<!-- EXAMPLE: Filter results update within 500ms on median connection -->
- **Throughput**: [e.g., "Support 100 concurrent filter operations"]
<!-- EXAMPLE: Support 100 concurrent filter operations without degradation -->
- **Data Volume**: [e.g., "Handle up to 50,000 job listings"]
<!-- EXAMPLE: Handle up to 50,000 job listings efficiently -->
#### Security
- **Authentication**: [e.g., "No authentication required for public search"]
<!-- EXAMPLE: No authentication required for public job search -->
- **Authorization**: [e.g., "Premium filters require authenticated users"]
<!-- EXAMPLE: Basic salary filter available to all; advanced filters require login -->
- **Data Protection**: [e.g., "Do not log salary filter selections (PII)"]
<!-- EXAMPLE: Do not log salary filter values to analytics (potential PII) -->
#### Usability
- **User Experience**: [e.g., "Slider provides visual feedback during drag"]
<!-- EXAMPLE: Slider provides visual feedback during drag, with current range displayed -->
- **Accessibility**: [e.g., "WCAG 2.1 Level AA - keyboard navigable"]
<!-- EXAMPLE: WCAG 2.1 Level AA compliant - keyboard navigable, screen reader announced -->
- **Mobile**: [e.g., "Touch-friendly on screens >320px wide"]
<!-- EXAMPLE: Touch-friendly slider on screens ≥320px wide -->
#### Reliability
- **Uptime**: [e.g., "Degrades gracefully if search service is down"]
<!-- EXAMPLE: Show cached results if search service unavailable -->
- **Error Handling**: [e.g., "Display user-friendly error, not stack trace"]
<!-- EXAMPLE: Display user-friendly error messages, never expose stack traces -->
#### Scalability
- **Expected Load**: [e.g., "10,000 searches/day"]
<!-- EXAMPLE: Expected 10,000 filtered searches per day -->
- **Growth**: [e.g., "Scale to 100,000 searches/day within 6 months"]
<!-- EXAMPLE: Must scale to 100,000 searches/day within 6 months -->
#### Compliance
- **Regulatory**: [e.g., "GDPR-compliant - no tracking without consent"]
<!-- EXAMPLE: GDPR-compliant - no salary filter tracking without explicit consent -->
- **Policy**: [e.g., "Company policy: no salary discrimination"]
<!-- EXAMPLE: Company policy: ensure salary filtering does not enable discriminatory practices -->
### Dependencies
#### Upstream Dependencies
Stories, features, or technical work that must be completed before this story:
- **`US-{id}`**: [Brief description of dependency and why it's needed]
<!-- EXAMPLE:
- **US-PLATFORM-040**: Search API must support salary range parameters
- **TECH-012**: Database must have indexed salary_min and salary_max columns
-->
#### Downstream Impact
Stories or features that depend on this story being completed:
- **`US-{id}`**: [How this story enables another]
<!-- EXAMPLE:
- **US-PLATFORM-044**: Saved search feature requires functional salary filters
-->
#### External Dependencies
Third-party services, data sources, or external teams:
- **[System/Team]**: [Nature of dependency, expected delivery date]
<!-- EXAMPLE:
- **Design Team**: Salary slider component design (expected Jan 10)
- **Data Team**: Salary data cleanup and validation (in progress)
-->
### Technical Considerations
**Note**: This section provides guidance and context, not prescriptive solutions. Implementation teams determine specific approaches.
#### Integration Points
**Systems**: [What systems/services does this story interact with?]
<!-- EXAMPLE:
- Backend search API
- Job listings database
- Analytics tracking service
-->
**Data**: [What data is created, read, updated, or deleted?]
<!-- EXAMPLE:
- Read: job listings with salary_min, salary_max fields
- Update: user search filter preferences (if saving searches)
-->
**APIs**: [What interfaces are involved?]
<!-- EXAMPLE:
- GET /api/jobs?salary_min={min}&salary_max={max}
- POST /api/search/save (if persisting filters)
-->
#### Implementation Guidance
**Frontend**:
<!-- EXAMPLE:
- Use accessible range slider component from design system
- Debounce API calls (wait 300ms after user stops dragging)
- Handle loading state and errors gracefully
- Update URL parameters for bookmarkable searches
-->
**Backend**:
<!-- EXAMPLE:
- Index salary_min and salary_max columns for fast filtering
- Validate min < max, reject invalid ranges with 400 Bad Request
- Return sorted results (highest salary first by default)
-->
**Testing**:
<!-- EXAMPLE:
- Unit tests: salary filter logic validation
- Integration tests: API contract validation
- E2E tests: complete user flow from filter to results
- Performance tests: response time under load
-->
#### Constraints
**Platform**: [Operating environments, browser/device support]
<!-- EXAMPLE:
- Browsers: Chrome, Firefox, Safari, Edge (latest 2 versions)
- Devices: Desktop and mobile responsive design
-->
**Technology**: [Required frameworks, libraries, or standards]
<!-- EXAMPLE:
- Must use existing design system slider component
- Follow REST API conventions
- Adhere to React coding standards
-->
**Data**: [Data format, structure, or storage requirements]
<!-- EXAMPLE:
- Salary stored as integer (annual USD, no decimals)
- NULL salary values excluded from filtered results
- Min salary ≥ 0, max salary ≤ 1000000
-->
**Legal**: [Compliance, privacy, or regulatory constraints]
<!-- EXAMPLE:
- GDPR: Salary filter selections not logged without consent
- CCPA: Users can request deletion of saved filter preferences
- Fair hiring: Ensure filtering doesn't enable discriminatory practices
-->
#### Risks
**Technical Risk**: [Complexity, unknowns, or technical challenges]
<!-- EXAMPLE:
- Risk: Database query performance degrades with complex salary filters
- Mitigation: Load testing, query optimization, consider caching strategy
-->
**Business Risk**: [Market, customer, or competitive considerations]
<!-- EXAMPLE:
- Risk: Users confused by salary range display (annual vs hourly)
- Mitigation: UX research, clear labeling, optional toggle for hourly calculation
-->
**Data Quality Risk**: [Incomplete or inaccurate data]
<!-- EXAMPLE:
- Risk: 30% of job listings missing salary data
- Mitigation: Provide "Include jobs without salary" checkbox option
-->
### Task Breakdown
Break story into implementation tasks (during sprint planning):
<!-- EXAMPLE:
- [ ] [Frontend] Design and implement salary range slider UI - 4h
- [ ] [Frontend] Integrate slider with search API - 2h
- [ ] [Backend] Add salary range filtering to search endpoint - 3h
- [ ] [Backend] Optimize database query with salary indexes - 2h
- [ ] [Testing] Write unit tests for filter logic - 2h
- [ ] [Testing] Write integration tests for API contract - 2h
- [ ] [Testing] Write E2E tests for user flow - 3h
- [ ] [Docs] Update API documentation - 1h
- [ ] [Review] Code review and refinement - 2h
**Total Estimated Hours**: 21h
**Story Points**: 5 (based on team velocity)
-->
### Notes & Attachments
#### Conversation Log
Track key decisions, questions, and clarifications:
<!-- EXAMPLE:
- **2026-01-15**: Decided to use Material UI slider component (ADR-034)
- **2026-01-16**: Product Owner confirmed salary should be annual, not hourly
- **2026-01-17**: UX research shows users prefer $10K increments (not $5K)
-->
#### Attachments
- **Wireframes**: [Link or reference to design mockups]
- **Mockups**: [Link to interactive prototypes]
- **Research**: [Link to user research findings or A/B test results]
- **Specifications**: [Link to detailed technical specs or API contracts]
#### Open Questions
<!-- EXAMPLE:
- [x] Should we support hourly salary filtering? (Resolved: No, annual only)
- [ ] What happens if user sets min > max? (Pending UX decision)
- [ ] Do we track salary filter for analytics? (Pending legal review)
-->
</details>
## Definition of Ready
Before this story enters a sprint, verify:
- [ ] Story statement is clear, complete, and follows "As a... I want... So that..." format
- [ ] Acceptance criteria are defined, testable, and unambiguous
- [ ] Story is sized (story points or hours assigned by team consensus)
- [ ] Dependencies are identified and either resolved or have mitigation plan
- [ ] Non-functional requirements (performance, security, etc.) are documented
- [ ] Team has reviewed, estimated, and asked clarifying questions
- [ ] Product Owner has prioritized and confirmed business value
- [ ] No open questions remain that would block implementation
- [ ] Story is small enough to complete in one sprint (3-5 days)
## Definition of Done
This story is complete when:
### Code Completion
- [ ] All acceptance criteria are met
- [ ] Code is written following team coding standards
- [ ] Code is peer-reviewed and approved (at least 1 reviewer)
- [ ] No critical or high-severity code review findings remain
- [ ] Code is merged to main/development branch
### Testing
- [ ] Unit tests pass with adequate coverage (>80% for new code)
- [ ] Integration tests pass (API contracts validated)
- [ ] Manual testing completed for UI/UX flows
- [ ] No high or critical severity defects remain
- [ ] Non-functional requirements verified (performance, security, accessibility)
### Documentation
- [ ] Code comments added for complex logic
- [ ] API documentation updated (if applicable)
- [ ] User-facing documentation or help text updated
- [ ] Release notes updated with user-visible changes
### Deployment & Acceptance
- [ ] Code deployed to staging or test environment
- [ ] Product Owner has reviewed and accepted the story
- [ ] Story marked as "Done" in tracking system (Jira, Azure DevOps, etc.)
- [ ] No regression in existing functionality
### Additional Criteria (Team-Specific)
- [ ] [Add any team-specific criteria, e.g., "Accessibility audit passed"]
- [ ] [Add any compliance criteria, e.g., "Security scan passed"]
## Agent Notes
### For Requirements Analyst
- Validate story follows INVEST principles (Independent, Negotiable, Valuable, Estimable, Small, Testable)
- Ensure acceptance criteria are measurable and unambiguous (avoid "should work well" - use specific metrics)
- Check that business value is clear and, if possible, quantified ("increase conversions by 10%")
- Verify story scope is appropriate for single sprint (3-5 days of work)
- If story is too large (>8 points), split into smaller stories
- Trace story back to epic, feature, or business requirement
- Progressive disclosure: Focus on Phase 1 during inception, expand Phases 2-3 during sprint planning
### For Test Engineer
- Each acceptance criterion should map to at least one test case
- Non-functional requirements need verification approach (performance testing, security scan)
- Consider edge cases and error scenarios beyond happy path
- Plan for both positive (expected behavior) and negative (error handling) test scenarios
- Identify test data needs early (especially for complex filters or integrations)
- Flag testability concerns during refinement, not during implementation
### For Software Implementer
- Technical considerations guide, not prescribe, solution - use your expertise
- Implementation should satisfy acceptance criteria, not mimic examples
- Consider testability and maintainability in design (SOLID, DRY principles)
- Document non-obvious decisions in code comments or ADRs
- Break story into tasks during sprint planning (frontend, backend, testing, docs)
- Raise blockers or questions immediately, don't wait for daily standup
### For Product Owner
- Prioritize based on value, dependencies, and risk (not developer convenience)
- Ensure story aligns with product vision, roadmap, and business goals
- Be available for clarifications during implementation (max 24h response time)
- Accept or reject based on acceptance criteria, not perfection
- Review and accept stories within 1 business day of completion
- Update backlog based on learnings from completed stories
### For UX Designer
- Provide wireframes or mockups before story enters sprint
- Ensure design aligns with design system and accessibility standards
- Participate in acceptance criteria definition (usability aspects)
- Review implementation before Product Owner acceptance
- Document design decisions and rationale
## Related Templates
- @agentic/code/frameworks/sdlc-complete/templates/management/epic-card.md - Parent epic for this story
- @agentic/code/frameworks/sdlc-complete/templates/management/product-backlog-template.md - Story lives in backlog
- @agentic/code/frameworks/sdlc-complete/templates/management/sprint-backlog-template.md - Story committed to sprint
- @agentic/code/frameworks/sdlc-complete/templates/test/test-case-card.md - Tests derived from acceptance criteria
- @agentic/code/frameworks/sdlc-complete/templates/implementation/task-slice-card.md - Tasks broken down from this story
## Quality Gates
**Story is Ready for Sprint When**:
- [ ] Meets all "Definition of Ready" criteria
- [ ] Team consensus on estimate (no dissent >2 story points)
- [ ] Product Owner confirmed priority and value
- [ ] No blockers or dependencies unresolved
**Story is Complete When**:
- [ ] Meets all "Definition of Done" criteria
- [ ] Product Owner acceptance obtained
- [ ] No critical or high-severity defects
- [ ] Deployed to appropriate environment
## Version Control
**Version**: 1.2
**Last Updated**: 2026-01-28
**Owner**: Requirements Analyst + Product Designer
**Change History**:
- 2026-01-28: Added progressive disclosure with phase labels and collapsible sections (v1.2)
- 2025-10-15: Enhanced template with INVEST checklist, task breakdown, open questions (v1.1)
- 2025-10-15: Initial template created (v1.0)