name: prioritize description: “应用优先级排序方法到收集到的需求。支持MoSCoW、Kano模型、WSJF和Wiegers评分。输出排名的需求及其理由。” argument-hint: “[–domain <域名>] [–method moscow|kano|wsjf|wiegers|opportunity] [–interactive]” allowed-tools: Task, Read, Write, Glob, Grep, Skill
优先级排序命令
应用优先级排序方法根据业务价值、客户影响或实施效率对需求进行排名。
用法
/requirements-elicitation:prioritize
/requirements-elicitation:prioritize --domain "checkout"
/requirements-elicitation:prioritize --domain "auth" --method wsjf
/requirements-elicitation:prioritize --domain "onboarding" --method kano --interactive
参数
| 参数 | 必需 | 描述 |
|---|---|---|
| –domain | 否 | 要优先排序的领域(默认:当前/最近) |
| –method | 否 | 优先级排序方法:moscow、kano、wsjf、wiegers、opportunity(默认:moscow) |
| –interactive | 否 | 启用交互式评分模式以收集利益相关者输入 |
工作流程
步骤1:加载需求
从.requirements/{domain}/synthesis/读取综合需求。
步骤2:选择方法
根据上下文选择优先级排序方法:
method_selection:
moscow:
best_for: "快速分类、MVP范围定义"
requires: "对重要性的基本利益相关者共识"
output: "必须/应该/可以/不会类别"
kano:
best_for: "客户满意度分析"
requires: "客户调查数据或模拟"
output: "基本/性能/兴奋分类"
wsjf:
best_for: "敏捷/SAFe环境、流优化"
requires: "延误成本和作业大小估计"
output: "用于待办事项排序的数字优先级分数"
wiegers:
best_for: "量化价值/成本/风险分析"
requires: "多利益相关者评分输入"
output: "加权优先级分数及理由"
opportunity:
best_for: "JTBD对齐的优先级排序"
requires: "重要性和满意度评分"
output: "突出未满足需求的机会分数"
步骤3:评分需求
MoSCoW评分
moscow_scoring:
process:
1. "从MUST开始——要严格(如果所有都是MUST,那么就没有MUST)"
2. "移动到WON'T——明确排除"
3. "将剩余的分配到SHOULD和COULD之间"
4. "验证:MUST应占容量的约60%"
categories:
must:
criteria:
- "系统没有它就无法工作"
- "法律/监管要求"
- "价值主张的核心"
should:
criteria:
- "显著价值,但存在变通方案"
- "关键利益相关者期望"
could:
criteria:
- "增强用户体验"
- "低努力、增量价值"
wont:
criteria:
- "同意推迟,非拒绝"
- "未来考虑"
WSJF评分
wsjf_scoring:
formula: "WSJF = 延误成本 / 作业大小"
cost_of_delay:
user_value: "1-10(对最终用户的价值)"
time_criticality: "1-10(价值随时间衰减的程度)"
risk_reduction: "1-10(风险/机会启用)"
job_size: "斐波那契数列(1, 2, 3, 5, 8, 13)"
interpretation:
"WSJF > 3": "高优先级——先做"
"WSJF 1-3": "中等优先级"
"WSJF < 1": "低优先级——考虑推迟"
Kano评分
kano_scoring:
question_pair:
functional: "如果[功能]存在,您会感觉如何?"
dysfunctional: "如果[功能]不存在,您会感觉如何?"
answers:
- "我喜欢它"
- "我期望它"
- "我中立"
- "我可以容忍它"
- "我不喜欢它"
classification:
"喜欢 + 不喜欢": "兴奋(愉悦者)"
"期望 + 不喜欢": "基本(必须)"
"喜欢 + 中立": "性能"
"中立 + 中立": "无所谓"
Wiegers评分
wiegers_scoring:
dimensions:
value: "1-9(客户/业务价值)"
penalty: "1-9(没有它的惩罚)"
cost: "1-9(实施努力)"
risk: "1-9(技术不确定性)"
formula: |
Priority = (Value × 2 + Penalty × 1) /
(Cost × 1 + Risk × 0.5)
interpretation:
"> 3.0": "高优先级"
"2.0-3.0": "中等优先级"
"< 2.0": "低优先级"
机会评分
opportunity_scoring:
formula: "机会 = 重要性 + (重要性 - 满意度)"
data_collection:
importance: "[结果]有多重要?(1-10)"
satisfaction: "对当前能力的满意度如何?(1-10)"
interpretation:
"15-20": "高机会——未满足"
"10-15": "中等机会"
"5-10": "低机会——良好满足"
"< 5": "过度满足——降低优先级"
步骤4:交互模式(可选)
当指定--interactive时:
interactive_flow:
1. 一次显示一个需求
2. 根据选择的方法提示评分
3. 允许记录笔记和理由
4. 支持跳过和稍后返回
5. 显示运行总计和分布
步骤5:生成输出
创建优先级排序的需求列表:
priority_report:
domain: "{domain}"
method: "{使用的方法}"
date: "{ISO-8601}"
total_requirements: 25
prioritized_list:
- rank: 1
requirement_id: "REQ-001"
title: "双因素认证"
category: "must" # 或数字方法的分数
score: 3.54 # 如果适用
rationale: "高遗漏惩罚、合规要求"
- rank: 2
requirement_id: "REQ-015"
title: "移动离线模式"
category: "should"
score: 3.2
rationale: "高用户价值、竞争压力"
summary:
by_category: # 适用于MoSCoW/Kano
must: 8
should: 10
could: 5
wont: 2
recommendations:
- "立即关注前5个高优先级项目"
- "考虑推迟高成本的低优先级项目"
- "根据反馈在2周内重新评估"
输出格式
默认:YAML摘要
# .requirements/{domain}/prioritization/PRIO-{timestamp}.yaml
prioritization:
method: "wsjf"
date: "2025-12-26T15:00:00Z"
requirements:
- id: "REQ-001"
title: "功能名称"
score: 3.54
rank: 1
rationale: "..."
Markdown表格
| 排名 | ID | 标题 | 分数 | 类别 | 理由 |
|------|-----|-------|-------|----------|-----------|
| 1 | REQ-001 | 双因素认证 | 3.54 | 必须 | 合规 |
| 2 | REQ-015 | 离线模式 | 3.2 | 应该 | 用户价值 |
示例会话
/requirements-elicitation:prioritize --domain "e-commerce" --method wsjf
从.requirements/e-commerce/synthesis/加载需求...
找到28个需求进行优先级排序。
应用WSJF评分...
评分REQ-001: "产品搜索"
用户价值: 9(高度请求)
时间紧迫性: 7(竞争对手有此功能)
风险降低: 5(减少支持负载)
作业大小: 5(中等复杂度)
→ WSJF分数: 4.2(高优先级)
评分REQ-002: "愿望清单功能"
用户价值: 6(有的话更好)
时间紧迫性: 2(不紧急)
风险降低: 2(最小风险影响)
作业大小: 3(低复杂度)
→ WSJF分数: 3.3(中等优先级)
[... 对所有需求继续 ...]
═══════════════════════════════════════════════
优先级排序完成
═══════════════════════════════════════════════
前5个优先级(WSJF):
1. REQ-001 产品搜索 (4.2)
2. REQ-008 结账流程 (3.9)
3. REQ-012 订单跟踪 (3.7)
4. REQ-002 愿望清单 (3.3)
5. REQ-015 评论 (3.1)
分布:
高 (>3.0): 12个需求
中等 (1-3): 10个需求
低 (<1.0): 6个需求
保存到: .requirements/e-commerce/prioritization/PRIO-20251226-150000.yaml
推荐:
• Sprint 1: 关注前5个(产品搜索、结账、订单跟踪)
• 推迟: 6个低优先级项目直到MVP验证
• 重新评估: 愿望清单优先级在客户反馈后
组合方法
为了全面优先级排序,可以组合方法:
# 步骤1: 快速MoSCoW分类
/requirements-elicitation:prioritize --domain "checkout" --method moscow
# 步骤2: 在SHOULD类别内进行WSJF排名
/requirements-elicitation:prioritize --domain "checkout" --method wsjf --filter "category:should"
# 步骤3: 用利益相关者Kano分析验证
/requirements-elicitation:prioritize --domain "checkout" --method kano --interactive
使用的技能
此命令使用prioritization-methods技能进行:
- 方法选择指导
- 评分框架和公式
- 解释标准
- 输出格式化
与其他命令的集成
优先级排序前
# 首先收集需求
/requirements-elicitation:discover "checkout flow"
# 识别差距
/requirements-elicitation:gaps --domain "checkout"
优先级排序后
# 导出优先级排序的需求
/requirements-elicitation:export --domain "checkout" --filter "rank:1-10"
# 用优先级创建故事地图
/requirements-elicitation:story-map --domain "checkout"
输出位置
output_locations:
yaml: ".requirements/{domain}/prioritization/PRIO-{timestamp}.yaml"
markdown: ".requirements/{domain}/prioritization/PRIO-{timestamp}.md"
错误处理
error_handling:
no_requirements:
message: "未找到域的需求"
action: "先运行/discover以收集需求"
insufficient_data:
message: "无法应用{method}——缺少必要数据"
action: "切换到更简单的方法或收集缺失的分数"
conflicting_scores:
message: "利益相关者分数显著分歧"
action: "促进讨论以达成共识"