需求优先级排序Skill prioritize

这个技能用于对软件需求进行优先级排序,应用多种方法如MoSCoW、Kano模型、WSJF、Wiegers评分和机会评分。它帮助团队根据业务价值、客户影响或实施效率来排名需求,输出包括分类、分数和理由。关键词:需求优先级排序、MoSCoW、Kano、WSJF、Wiegers、机会评分、需求分析、产品管理、优先级排序方法、软件需求管理、业务价值评估、敏捷开发、客户满意度、风险评估。

需求分析 0 次安装 0 次浏览 更新于 3/11/2026

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 优先级排序方法:moscowkanowsjfwiegersopportunity(默认: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: "促进讨论以达成共识"