aico-pm-user-story-writing
skillTransform requirements into well-structured User Stories using "As a [user], I want [goal], So that [benefit]" format with Given/When/Then acceptance criteria. Use this skill when: - User asks to "write user story", "create story", "add story" - User mentions "user story", "backlog item", "story" - Running /pm.plan and need to break PRD into implementable stories - Creating backlog items for development team - Need to formalize a requirement into standard story format - Converting feature request into actionable story with acceptance criteria Output: ALWAYS write story files to docs/reference/pm/stories/{story-name}.md
apm::install
apm install @yellinzero/aico-pm-user-story-writingapm::skill.md
---
name: aico-pm-user-story-writing
description: |
Transform requirements into well-structured User Stories using "As a [user], I want [goal], So that [benefit]" format with Given/When/Then acceptance criteria.
Use this skill when:
- User asks to "write user story", "create story", "add story"
- User mentions "user story", "backlog item", "story"
- Running /pm.plan and need to break PRD into implementable stories
- Creating backlog items for development team
- Need to formalize a requirement into standard story format
- Converting feature request into actionable story with acceptance criteria
Output: ALWAYS write story files to docs/reference/pm/stories/{story-name}.md
---
# User Story Writing
## ⚠️ CRITICAL RULES - READ FIRST
**BEFORE doing anything, you MUST:**
1. **CHECK EXISTING FILES**:
- Look in `docs/reference/pm/stories/` directory
- If story file already exists, READ it first and ask user if they want to update it
- DO NOT create duplicate story files
2. **ALWAYS USE THIS SKILL**:
- When user says "write story", "create story", "add story" → USE THIS SKILL
- DO NOT write story files directly without using this skill
- This skill ensures proper format and validation
3. **ALWAYS SAVE TO CORRECT PATH**:
- Path: `docs/reference/pm/stories/{story-name}.md`
- NO exceptions, NO other locations
4. **READ CONTEXT FIRST**:
- Read `docs/reference/pm/constitution.md` for product context
- Read related version file from `docs/reference/pm/versions/` if exists
## Language Configuration
Before generating any content, check `aico.json` in project root for `language` field to determine the output language. If not set, default to English.
## Process
1. **Identify user type**: Who benefits from this feature
2. **Define goal**: What they want to do
3. **Clarify value**: Why it matters to them
4. **Write acceptance criteria**: 3-5 Given/When/Then scenarios
5. **Add metadata**: Priority, complexity, dependencies
6. **Save story**: ALWAYS write to `docs/reference/pm/stories/{story-name}.md`
## Story Template
```markdown
# [STORY-ID] Story Title
> Project: [project-name]
> Created: YYYY-MM-DD
> Last Updated: YYYY-MM-DD
**As a** [user type]
**I want** [goal/action]
**So that** [benefit/value]
### Acceptance Criteria
- [ ] Given [context], when [action], then [expected result]
- [ ] Given [context], when [action], then [expected result]
- [ ] Given [context], when [action], then [expected result]
### Notes
- Priority: P1/P2/P3
- Estimated complexity: S/M/L/XL
- Dependencies: [list any dependencies]
```
## Key Rules
- ALWAYS specify the user type (who benefits)
- MUST focus on user value, not technical solution
- ALWAYS include 3-5 testable acceptance criteria
- Use Given/When/Then format for all criteria
- MUST save to `docs/reference/pm/stories/` directory
## Common Mistakes
- ❌ Vague acceptance criteria → ✅ Specific, testable conditions
- ❌ Solution-focused stories → ✅ Focus on user value
- ❌ Missing user type → ✅ Always specify who benefits