user-story by deanpeters/product-manager-skills
npx skills add https://github.com/deanpeters/product-manager-skills --skill user-story创建清晰、简洁的用户故事,将 Mike Cohn 的用户故事格式与 Gherkin 风格的验收标准相结合。用于将用户需求转化为可操作的开发工作,重点关注成果,确保产品与工程团队之间的共同理解,并提供可测试的成功标准。
这不是功能规格说明书——它是一个对话的起点,旨在捕捉 谁 受益、他们想 做什么、为什么 重要以及你 如何 知道它有效。
用户故事结合了以下内容:
用例(Mike Cohn 格式):
验收标准(Gherkin 格式):
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
skills/user-story-splitting/SKILL.md)在编写故事之前,请确保你拥有:
skills/proto-persona/SKILL.md)skills/problem-statement/SKILL.md)如果缺少上下文: 先进行探索性访谈或问题验证工作。
如果你想要一个一致的 Markdown 存根,可以从 CLI 输入生成。此脚本是确定性的,不获取数据或写入文件。
python3 scripts/user-story-template.py --persona \"trial user\" --action \"log in with Google\" --outcome \"access the app without creating a new password\"
使用 template.md 获取完整的填充结构。
填写模板:
### 用户故事 [ID]:
- **摘要:** [简短、令人难忘的标题,关注对用户的价值]
#### 用例:
- **作为** [如果可用则用用户名,否则用人物角色,否则用角色]
- **我想要** [用户为实现成果而采取的行动]
- **以便** [期望的成果]
质量检查:
常见错误:
填写模板:
#### 验收标准:
- **场景:** [简要、人类可读的描述价值的场景]
- **假设:** [初始上下文或前置条件]
- **并且假设:** [额外的上下文或前置条件]
- **并且假设:** [根据需要添加的额外上下文]
- **并且假设:** [确保'当'可以发生的 UI 相关上下文]
- **并且假设:** [确保'那么'可以交付的成果相关上下文]
- **当:** [触发操作的事件——与'我想要'对齐]
- **那么:** [预期结果——与'以便'对齐]
质量检查:
危险信号:
skills/user-story-splitting/SKILL.md)写一个简短、令人难忘的摘要,捕捉故事的价值:
- **摘要:** [简短、人类可读的标题]
示例:
skills/user-story-splitting/SKILL.md查看 examples/sample.md 获取完整示例(好的、坏的和需要拆分的故事)。
迷你示例摘录:
### 用户故事 042:
- **摘要:** 为试用用户启用 Google 登录以减少注册摩擦
#### 用例:
- **作为** 首次访问应用的试用用户
- **我想要** 使用我的 Google 账户登录
- **以便** 无需创建和记住新密码即可访问应用
#### 验收标准:
- **场景:** 首次试用用户通过 Google OAuth 登录
- **假设:** 我在登录页面
- **并且假设:** 我有一个登录账户
- **当:** 我点击"使用 Google 登录"按钮并授权应用
- **那么:** 我登录到应用并被重定向到入门流程
症状: "作为一名开发者,我想重构 API,以便代码更清晰"
后果: 这是一个工程任务,而不是用户故事。没有交付用户价值。
修复: 如果没有用户成果,那就不是用户故事——改用工程任务或技术债务工单。
症状: 每个故事都以"作为一名用户"开头
后果: 没有明确的人物角色。不同的用户有不同的需求。
修复: 使用特定的人物角色:"作为一名试用用户"、"作为一名付费订阅者"、"作为一名管理员"等。(参考 skills/proto-persona/SKILL.md)
症状: "我想点击保存按钮,以便我可以保存我的工作"
后果: 没有洞察用户 为什么 在意。只是重申了行动。
修复: 深入挖掘动机:"以便如果页面崩溃我不会丢失进度"(真实的成果)。
症状: 验收标准包含 5 个"当"语句和 5 个"那么"语句
后果: 故事太大。可能是多个功能捆绑在一起。
修复: 使用 skills/user-story-splitting/SKILL.md 拆分故事。每个当/那么对应应该是一个独立的故事(或至少评估是否需要拆分)。
症状: "那么用户有更好的体验" 或 "那么它更快了"
后果: QA 无法验证成功。"完成"的定义模糊。
修复: 使其可衡量:"那么页面在 2 秒内加载完成" 或 "那么用户看到成功确认消息"。
skills/user-story-splitting/SKILL.md — 如何将大型故事拆分为较小的故事skills/proto-persona/SKILL.md — 定义"作为 [人物角色]"部分skills/problem-statement/SKILL.md — 故事应解决已验证的问题skills/epic-hypothesis/SKILL.md — 史诗分解为用户故事skills/user-story/scripts/user-story-template.py — 确定性 Markdown 存根生成器(无网络访问)https://github.com/deanpeters/product-manager-prompts 仓库中的 prompts/user-story-prompt-template.md。技能类型: 组件 建议文件名: user-story.md 建议放置位置: /skills/components/ 依赖项: 引用 skills/proto-persona/SKILL.md, skills/problem-statement/SKILL.md 被使用: skills/user-story-splitting/SKILL.md, skills/epic-hypothesis/SKILL.md
每周安装数
297
仓库
GitHub Stars
1.5K
首次出现
Feb 12, 2026
安全审计
安装于
codex258
opencode254
gemini-cli250
github-copilot250
cursor247
kimi-cli246
Create clear, concise user stories that combine Mike Cohn's user story format with Gherkin-style acceptance criteria. Use this to translate user needs into actionable development work that focuses on outcomes, ensures shared understanding between product and engineering, and provides testable success criteria.
This is not a feature spec—it's a conversation starter that captures who benefits, what they're trying to do, why it matters, and how you'll know it works.
A user story combines:
Use Case (Mike Cohn format):
Acceptance Criteria (Gherkin format):
skills/user-story-splitting/SKILL.md)Before writing a story, ensure you have:
skills/proto-persona/SKILL.md)skills/problem-statement/SKILL.md)If missing context: Run discovery interviews or problem validation work first.
If you want a consistent Markdown stub, you can generate one from CLI inputs. This script is deterministic and does not fetch data or write files.
python3 scripts/user-story-template.py --persona \"trial user\" --action \"log in with Google\" --outcome \"access the app without creating a new password\"
Use template.md for the full fill-in structure.
Fill in the template:
### User Story [ID]:
- **Summary:** [Brief, memorable title focused on value to the user]
#### Use Case:
- **As a** [user name if available, otherwise persona, otherwise role]
- **I want to** [action user takes to get to outcome]
- **so that** [desired outcome]
Quality checks:
Common mistakes:
Fill in the template:
#### Acceptance Criteria:
- **Scenario:** [Brief, human-readable scenario describing value]
- **Given:** [Initial context or precondition]
- **and Given:** [Additional context or preconditions]
- **and Given:** [Additional context as needed]
- **and Given:** [UI-focused context ensuring 'When' can happen]
- **and Given:** [Outcomes-focused context ensuring 'Then' is delivered]
- **When:** [Event that triggers the action—aligns with 'I want to']
- **Then:** [Expected outcome—aligns with 'so that']
Quality checks:
Red flags:
skills/user-story-splitting/SKILL.md)Write a short, memorable summary that captures the story's value:
- **Summary:** [Brief, human-readable title]
Examples:
skills/user-story-splitting/SKILL.mdSee examples/sample.md for full examples (good, bad, and split-needed stories).
Mini example excerpt:
### User Story 042:
- **Summary:** Enable Google login for trial users to reduce signup friction
#### Use Case:
- **As a** trial user visiting the app for the first time
- **I want to** log in using my Google account
- **so that** I can access the app without creating and remembering a new password
#### Acceptance Criteria:
- **Scenario:** First-time trial user logs in via Google OAuth
- **Given:** I am on the login page
- **and Given:** I have a login account
- **When:** I click the "Sign in with Google" button and authorize the app
- **Then:** I am logged into the app and redirected to the onboarding flow
Symptom: "As a developer, I want to refactor the API, so that the code is cleaner"
Consequence: This is an engineering task, not a user story. No user value is delivered.
Fix: If there's no user outcome, it's not a user story—use an engineering task or tech debt ticket instead.
Symptom: Every story starts with "As a user"
Consequence: No persona clarity. Different users have different needs.
Fix: Use specific personas: "As a trial user," "As a paid subscriber," "As an admin," etc. (reference skills/proto-persona/SKILL.md)
Symptom: "I want to click the save button, so that I can save my work"
Consequence: No insight into why the user cares. Just restating the action.
Fix: Dig into the motivation: "so that I don't lose my progress if the page crashes" (real outcome).
Symptom: Acceptance criteria with 5 "When" statements and 5 "Then" statements
Consequence: Story is too big. Likely multiple features bundled together.
Fix: Split the story using skills/user-story-splitting/SKILL.md. Each When/Then pair should be its own story (or at least evaluated for splitting).
Symptom: "Then the user has a better experience" or "Then it's faster"
Consequence: QA can't verify success. Ambiguous definition of "done."
Fix: Make it measurable: "Then the page loads in under 2 seconds" or "Then the user sees a success confirmation message."
skills/user-story-splitting/SKILL.md — How to break large stories into smaller onesskills/proto-persona/SKILL.md — Defines the "As a [persona]" sectionskills/problem-statement/SKILL.md — Stories should address validated problemsskills/epic-hypothesis/SKILL.md — Epics decompose into user storiesskills/user-story/scripts/user-story-template.py — Deterministic Markdown stub generator (no network access)prompts/user-story-prompt-template.md in the https://github.com/deanpeters/product-manager-prompts repo.Skill type: Component Suggested filename: user-story.md Suggested placement: /skills/components/ Dependencies: References skills/proto-persona/SKILL.md, skills/problem-statement/SKILL.md Used by: skills/user-story-splitting/SKILL.md, skills/epic-hypothesis/SKILL.md
Weekly Installs
297
Repository
GitHub Stars
1.5K
First Seen
Feb 12, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
codex258
opencode254
gemini-cli250
github-copilot250
cursor247
kimi-cli246
竞品拆解分析工具:使用 inference.sh CLI 进行结构化竞品研究与截图
7,400 周安装
OpenAPI 转 TypeScript 工具 - 自动生成 API 接口与类型守卫
563 周安装
数据库模式设计器 - 内置最佳实践,自动生成生产级SQL/NoSQL数据库架构
564 周安装
Rust Unsafe代码检查器 - 安全使用Unsafe Rust的完整指南与最佳实践
564 周安装
.NET并发编程模式指南:async/await、Channels、Akka.NET选择决策树
565 周安装
韩语语法检查器 - 基于国立国语院标准的拼写、空格、语法、标点错误检测与纠正
565 周安装
技能安全扫描器 - 检测Claude技能安全漏洞,防范提示注入与恶意代码
565 周安装