Claude-Skills agile-product-owner

install
source · Clone the upstream repo
git clone https://github.com/borghei/Claude-Skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/borghei/Claude-Skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/product-team/agile-product-owner" ~/.claude/skills/borghei-claude-skills-agile-product-owner && rm -rf "$T"
manifest: product-team/agile-product-owner/SKILL.md
source content

Agile Product Owner

Backlog management and sprint execution toolkit for product owners, including user story generation, acceptance criteria patterns, sprint planning, and velocity tracking.


Table of Contents


User Story Generation Workflow

Create INVEST-compliant user stories from requirements:

  1. Identify the persona (who benefits from this feature)
  2. Define the action or capability needed
  3. Articulate the benefit or value delivered
  4. Write acceptance criteria using Given-When-Then
  5. Estimate story points using Fibonacci scale
  6. Validate against INVEST criteria
  7. Add to backlog with priority
  8. Validation: Story passes all INVEST criteria; acceptance criteria are testable

User Story Template

As a [persona],
I want to [action/capability],
So that [benefit/value].

Example:

As a marketing manager,
I want to export campaign reports to PDF,
So that I can share results with stakeholders who don't have system access.

Story Types

TypeTemplateExample
FeatureAs a [persona], I want to [action] so that [benefit]As a user, I want to filter search results so that I find items faster
ImprovementAs a [persona], I need [capability] to [goal]As a user, I need faster page loads to complete tasks without frustration
Bug FixAs a [persona], I expect [behavior] when [condition]As a user, I expect my cart to persist when I refresh the page
EnablerAs a developer, I need to [technical task] to enable [capability]As a developer, I need to implement caching to enable instant search

Persona Reference

PersonaTypical NeedsContext
End UserEfficiency, simplicity, reliabilityDaily feature usage
AdministratorControl, visibility, securitySystem management
Power UserAutomation, customization, shortcutsExpert workflows
New UserGuidance, learning, safetyOnboarding

Acceptance Criteria Patterns

Write testable acceptance criteria using Given-When-Then format.

Given-When-Then Template

Given [precondition/context],
When [action/trigger],
Then [expected outcome].

Examples:

Given the user is logged in with valid credentials,
When they click the "Export" button,
Then a PDF download starts within 2 seconds.

Given the user has entered an invalid email format,
When they submit the registration form,
Then an inline error message displays "Please enter a valid email address."

Given the shopping cart contains items,
When the user refreshes the browser,
Then the cart contents remain unchanged.

Acceptance Criteria Checklist

Each story should include criteria for:

CategoryExample
Happy PathGiven valid input, When submitted, Then success message displayed
ValidationShould reject input when required field is empty
Error HandlingMust show user-friendly message when API fails
PerformanceShould complete operation within 2 seconds
AccessibilityMust be navigable via keyboard only

Minimum Criteria by Story Size

Story PointsMinimum AC Count
1-23-4 criteria
3-54-6 criteria
85-8 criteria
13+Split the story

See

references/user-story-templates.md
for complete template library.


Epic Breakdown Workflow

Break epics into deliverable sprint-sized stories:

  1. Define epic scope and success criteria
  2. Identify all personas affected by the epic
  3. List all capabilities needed for each persona
  4. Group capabilities into logical stories
  5. Validate each story is ≤8 points
  6. Identify dependencies between stories
  7. Sequence stories for incremental delivery
  8. Validation: Each story delivers standalone value; total stories cover epic scope

Story Splitting Decision Logic

Apply these rules in order. Use the first rule that fits the story:

#Split RuleWhen It AppliesHow to Split
1Workflow StepsStory contains multiple sequential stepsEach step becomes its own story
2Business Rule VariationsStory introduces rule variations (e.g., pricing tiers, user roles)Each rule variation becomes its own story
3Data VariationsStory handles different data types or formatsEach data type becomes its own story
4Complex Acceptance CriteriaStory has 8+ acceptance criteria covering distinct behaviorsEach distinct behavior cluster becomes its own story
5Major EffortStory requires significant build effort (13+ points)Split along effort milestones (foundation → feature → polish)
6External DependenciesStory depends on external APIs, teams, or approvalsSplit dependent and independent work into separate stories
7DevOps EffortStory requires significant infrastructure workSplit infrastructure setup from feature implementation
8None ApplyStory is already small but unclearUse Tiny Acts of Discovery (TADs) -- small spikes to reduce uncertainty

Split Output Format

For each split, document:

## Original Story
As a [persona], I want to [action] so that [benefit].
Points: 13 | Status: Too large for sprint

## Suggested Splits

### Split 1: By Workflow Steps
- **Story A:** As a [persona], I want to [step 1] so that [partial benefit].
  Points: 5 | Independently valuable: Yes
- **Story B:** As a [persona], I want to [step 2] so that [remaining benefit].
  Points: 5 | Independently valuable: Yes

### Risks & Tradeoffs
- [What coupling exists between the split stories]
- [What is lost by delivering them separately]

### Implementation Order
1. Story A (foundation) → 2. Story B (builds on A)

Splitting Techniques (Quick Reference)

TechniqueWhen to UseExample
By workflow stepLinear process"Checkout" → "Add to cart" + "Enter payment" + "Confirm order"
By personaMultiple user types"Dashboard" → "Admin dashboard" + "User dashboard"
By data typeMultiple inputs"Import" → "Import CSV" + "Import Excel"
By operationCRUD functionality"Manage users" → "Create" + "Edit" + "Delete"
By business ruleRule variations"Discount" → "% discount" + "Fixed discount" + "BOGO"
Happy path firstRisk reduction"Feature" → "Basic flow" + "Error handling" + "Edge cases"
By dependencyExternal blockers"Integration" → "Mock integration" + "Live integration"
Tiny Acts of DiscoveryHigh uncertainty"AI feature" → "Spike: feasibility" + "MVP implementation"

Epic Example

Epic: User Dashboard

Breakdown:

Epic: User Dashboard (34 points total)
├── US-001: View key metrics (5 pts) - End User
├── US-002: Customize layout (5 pts) - Power User
├── US-003: Export data to CSV (3 pts) - End User
├── US-004: Share with team (5 pts) - End User
├── US-005: Set up alerts (5 pts) - Power User
├── US-006: Filter by date range (3 pts) - End User
├── US-007: Admin overview (5 pts) - Admin
└── US-008: Enable caching (3 pts) - Enabler

Sprint Planning Workflow

Plan sprint capacity and select stories:

  1. Calculate team capacity (velocity × availability)
  2. Review sprint goal with stakeholders
  3. Select stories from prioritized backlog
  4. Fill to 80-85% of capacity (committed)
  5. Add stretch goals (10-15% additional)
  6. Identify dependencies and risks
  7. Break complex stories into tasks
  8. Validation: Committed points ≤85% capacity; all stories have acceptance criteria

Capacity Calculation

Sprint Capacity = Average Velocity × Availability Factor

Example:
Average Velocity: 30 points
Team availability: 90% (one member partially out)
Adjusted Capacity: 27 points

Committed: 23 points (85% of 27)
Stretch: 4 points (15% of 27)

Availability Factors

ScenarioFactor
Full sprint, no PTO1.0
One team member out 50%0.9
Holiday during sprint0.8
Multiple members out0.7

Sprint Loading Template

Sprint Capacity: 27 points
Sprint Goal: [Clear, measurable objective]

COMMITTED (23 points):
[H] US-001: User dashboard (5 pts)
[H] US-002: Export feature (3 pts)
[H] US-003: Search filter (5 pts)
[M] US-004: Settings page (5 pts)
[M] US-005: Help tooltips (3 pts)
[L] US-006: Theme options (2 pts)

STRETCH (4 points):
[L] US-007: Sort options (2 pts)
[L] US-008: Print view (2 pts)

See

references/sprint-planning-guide.md
for complete planning procedures.


Backlog Prioritization

Prioritize backlog using value and effort assessment.

Priority Levels

PriorityDefinitionSprint Target
CriticalBlocking users, security, data lossImmediate
HighCore functionality, key user needsThis sprint
MediumImprovements, enhancementsNext 2-3 sprints
LowNice-to-have, minor improvementsBacklog

Prioritization Factors

FactorWeightQuestions
Business Value40%Revenue impact? User demand? Strategic alignment?
User Impact30%How many users? How frequently used?
Risk/Dependencies15%Technical risk? External dependencies?
Effort15%Size? Complexity? Uncertainty?

INVEST Criteria Validation

Before adding to sprint, validate each story:

CriterionQuestionPass If...
IndependentCan this be developed without other uncommitted stories?No blocking dependencies
NegotiableIs the implementation flexible?Multiple approaches possible
ValuableDoes this deliver user or business value?Clear benefit in "so that"
EstimableCan the team estimate this?Understood well enough to size
SmallCan this complete in one sprint?≤8 story points
TestableCan we verify this is done?Clear acceptance criteria

Reference Documentation

User Story Templates

references/user-story-templates.md
contains:

  • Standard story formats by type (feature, improvement, bug fix, enabler)
  • Acceptance criteria patterns (Given-When-Then, Should/Must/Can)
  • INVEST criteria validation checklist
  • Story point estimation guide (Fibonacci scale)
  • Common story antipatterns and fixes
  • Story splitting techniques

Sprint Planning Guide

references/sprint-planning-guide.md
contains:

  • Sprint planning meeting agenda
  • Capacity calculation formulas
  • Backlog prioritization framework (WSJF)
  • Sprint ceremony guides (standup, review, retro)
  • Velocity tracking and burndown patterns
  • Definition of Done checklist
  • Sprint metrics and targets

Tools

User Story Generator

# Generate stories from sample epic
python scripts/user_story_generator.py

# Plan sprint with capacity
python scripts/user_story_generator.py sprint 30

Generates:

  • INVEST-compliant user stories
  • Given-When-Then acceptance criteria
  • Story point estimates (Fibonacci scale)
  • Priority assignments
  • Sprint loading with committed and stretch items

Sample Output

USER STORY: USR-001
========================================
Title: View Key Metrics
Type: story
Priority: HIGH
Points: 5

Story:
As a End User, I want to view key metrics and KPIs
so that I can save time and work more efficiently

Acceptance Criteria:
  1. Given user has access, When they view key metrics, Then the result is displayed
  2. Should validate input before processing
  3. Must show clear error message when action fails
  4. Should complete within 2 seconds
  5. Must be accessible via keyboard navigation

INVEST Checklist:
  ✓ Independent
  ✓ Negotiable
  ✓ Valuable
  ✓ Estimable
  ✓ Small
  ✓ Testable

Sprint Metrics

Track sprint health and team performance.

Key Metrics

MetricFormulaTarget
VelocityPoints completed / sprintStable ±10%
Commitment ReliabilityCompleted / Committed>85%
Scope ChangePoints added or removed mid-sprint<10%
CarryoverPoints not completed<15%

Velocity Tracking

Sprint 1: 25 points
Sprint 2: 28 points
Sprint 3: 30 points
Sprint 4: 32 points
Sprint 5: 29 points
------------------------
Average Velocity: 28.8 points
Trend: Stable

Planning: Commit to 24-26 points

Definition of Done

Story is complete when:

  • Code complete and peer reviewed
  • Unit tests written and passing
  • Acceptance criteria verified
  • Documentation updated
  • Deployed to staging environment
  • Product Owner accepted
  • No critical bugs remaining

Tool Reference

user_story_generator.py

Generates INVEST-compliant user stories from a sample epic, including acceptance criteria, story point estimates, priority assignments, and sprint planning.

ArgumentTypeDefaultDescription
sprint
subcommand-Run in sprint planning mode
[capacity]
int30Sprint capacity in story points (used with
sprint
)
# Generate stories from sample epic
python scripts/user_story_generator.py

# Sprint planning with capacity
python scripts/user_story_generator.py sprint 30
python scripts/user_story_generator.py sprint 45

Output includes:

  • Story ID, title, type, priority, and point estimate
  • User story narrative in "As a... I want... So that..." format
  • 5 acceptance criteria per story (Given-When-Then, validation, error, performance, accessibility)
  • INVEST criteria checklist per story
  • Backlog summary with priority breakdown
  • Sprint loading with committed and stretch items (in sprint mode)

Troubleshooting

ProblemCauseSolution
Stories too large (>8 points)Epic not broken down enoughApply splitting techniques: by workflow step, persona, or CRUD operation
Acceptance criteria untestableCriteria use vague languageRewrite using Given-When-Then format with specific, observable outcomes
Sprint commitment missed repeatedlyVelocity not stabilized or too aggressiveTrack velocity over 3+ sprints; commit to 80-85% of rolling average
Too many carryover storiesMid-sprint scope changes or poor estimationEnforce no-scope-change rule; calibrate estimates using planning poker
Stories lack clear valueMissing "so that" benefit clauseValidate every story answers: who benefits, what they get, and why it matters
Sprint has too many dependenciesStories not independentRe-sequence backlog; break dependent stories into independent slices
Stakeholders dispute priorityNo objective prioritization frameworkUse WSJF or value/effort scoring; document decision rationale

Success Criteria

CriterionTargetHow to Measure
Commitment reliability>85% of committed points completedPoints completed / Points committed per sprint
INVEST compliance100% of stories pass all 6 criteriauser_story_generator INVEST checklist
Velocity stabilityWithin +/-10% of rolling averageTrack velocity trend over 5+ sprints
Scope change<10% of sprint points added/removed mid-sprintCount points added or removed after planning
Carryover rate<15% of committed pointsPoints not completed / Points committed
Acceptance criteria qualityAll criteria testable and verifiedQA sign-off on acceptance criteria before sprint start
Backlog groomingTop 2 sprints of backlog always readyCount of refined stories with acceptance criteria

Scope & Limitations

In scope:

  • User story generation with INVEST validation
  • Acceptance criteria in Given-When-Then format
  • Sprint planning with capacity-based loading
  • Epic breakdown into sprint-sized stories
  • Backlog prioritization frameworks (WSJF, value/effort)
  • Velocity tracking and sprint metrics
  • Definition of Done enforcement

Out of scope:

  • Jira/Linear ticket creation (use JSON export with their APIs)
  • Burndown chart visualization (use project management tool dashboards)
  • Team member assignment and capacity by individual
  • Cross-team dependency management (use program-level tools)
  • Release planning beyond quarterly horizon
  • Automated acceptance test generation (see engineering skills)

Integration Points

Tool / PlatformIntegration MethodUse Case
Jira / LinearCopy story output or extend script for JSON exportImport generated stories as tickets
Confluence / NotionPaste human-readable outputDocument sprint plans and backlog
SlackShare sprint planning summaryAsync sprint kickoff communication
product-manager-toolkitRICE scores inform story priorityAlign sprint priorities with product strategy
product-strategistOKR cascade informs epic selectionConnect sprint work to quarterly objectives
ux-researcher-designerPersona data informs story personasGround user stories in research-backed personas