← ClaudeAtlas

story-splittinglisted

Apply INVEST + SPIDR + 7 splitting strategies when a feature, requirement, or epic is too large to ship in one PR / one sprint / one week. Use whenever 用户 says "这个需求太大" / "拆一下" / "怎么分阶段做" / "acceptance criteria 怎么写" / "edge case 漏没漏" / "spec 写不下去" / "split this epic" / "break down this story". Forces INVEST checking (Independent / Negotiable / Valuable / Estimable / Small / Testable), produces vertical slices not horizontal layers, drafts acceptance criteria in Given-When-Then, enumerates edge cases by 4 axes (input / state / boundary / failure). Self-contained methodology — no external docs required.
marsloting/product-thinking-pack · ★ 0 · AI & Automation · score 72
Install: claude install-skill marsloting/product-thinking-pack
# 故事拆分 + Acceptance Criteria + Edge Case ## 何时触发 - 一个需求看起来 ≥ 1 周工作量 - 写 spec 写到一半发现"还要包括 X / Y / Z"开始膨胀 - "这个 epic 太大,拆一下" - acceptance criteria 怎么写 - "上线前 edge case 过一遍" - 团队估算分歧 > 50%(说明大家理解的"做完"不是同一回事) - PRD review 时被问"那 X 情况怎么办" ## 何时不触发 - 单文件 hot fix(一行代码改动不需要拆) - 已经按 phase 切好的 dev 任务 → 用 dev-phase-rollout - 创意发散阶段(拆故事是收敛阶段,发散用 jtbd-framework / brainstorm) ## 第一步:INVEST 自检 每个故事过这 6 项: | 字母 | 含义 | 通过标准 | |---|---|---| | **I**ndependent | 独立 | 可以脱离其他故事单独 ship 上线 | | **N**egotiable | 可商量 | 内容、UI、实现可在 dev 中协商,不是死的 | | **V**aluable | 有价值 | 上线后用户 / 业务能感受到具体价值 | | **E**stimable | 可估算 | 团队能给出 ≤ 3 天的合理估算 | | **S**mall | 小 | 1-3 天可完成(≤ 1 个 sprint) | | **T**estable | 可测 | 有明确的"做完了"判断标准 | 任何一项不通过 → 必须拆。 ## 第二步:SPIDR 拆分(5 条主路径) | 路径 | 何时用 | 例子 | |---|---|---| | **S**pike | 技术不确定,先 spike 验证可行性 | "新支付方式接入"先做 1 天技术 spike | | **P**ath | 一个故事多个用户路径 → 按路径拆 | 注册流程 = 邮箱注册 / 手机注册 / 第三方登录 三个故事 | | **I**nterface | UI 多端 → 按端拆 | 桌面 / 移动 / API 三个故事 | | **D**ata | 数据多类型 → 按类型拆 | 单一货币先做 → 多货币扩展 | | **R**ules | 业务规则复杂 → 先做主流程,规则后续加 | 主流程不含权限 → 加权限 → 加白名单 | ## 第三步:7 splitting strategies(备用,SPIDR 不够时用) 1. **Workflow steps**:按工作流步骤拆(注册 → 验证 → 激活 → 完成) 2. **Business rule variations**:先核心规则,再扩展规则 3. **Major effort**:把 80% 工作量集中处先做最简版本 4. **Simple/complex**:MVP 简单版 → 复杂场景版 5. **Variations in data**:先一种数据类型,再扩展 6. **Data entry methods**:先一种输入方式,再扩展 7. **Defer performance**:先功能正确,再性能优化 ## 第四步:垂直切片不水平切片(关键) ❌ **水平切片**:DB 层 → Backend API 层 → Frontend 层(每层一个故事) - 问题:单层完成无价值,必须三层全做完才上线 ✅ **垂直切片**