| name | tapd-story-score |
| slug | tapd-story-score |
| version | 1.0.0 |
| description | TAPD 需求评分子技能。对需求进行工时预估、规模评分(size,斐波那契)与业务价值(RICE)评分,并更新到需求文档中。
本技能作为 tapd-story-evaluation 的子技能被调用,不独立触发。
|
| metadata | {"requires":{"mcps":["tapd"]}} |
TAPD 需求评分
概述
对需求进行工时预估、规模评分(size,斐波那契)与业务价值(RICE)评分,并将评分结果
更新到需求文档中。评分基于需求文档的详细内容,从高级工程师视角进行客观估算。
size 与 business_value 解耦:size 为相对实现规模斐波那契分(仅由 5 个规模维度决定),
回写 TAPD size 字段;RICE 综合分作为业务价值回写 TAPD business_value 字段,
两者完全解耦、互不赋值。
输入
| 参数 | 来源 | 说明 |
|---|
| 需求文档 | 主 skill 传入或本地文件路径 | 规范化的需求文档(Markdown) |
| 背景知识 | 主 skill 传入 | 项目技术栈、架构等参考信息 |
| 需求类型 | 主 skill 已决策,可选 | “运维操作”“文档编写”或“开发需求”;未提供时默认“开发需求” |
| 分类 ID | 主 skill 已读取,可选 | stories_get.category_id,仅用于结果追溯,不用于再次推断类型 |
| 分类原始值 | 主 skill 已读取,可选 | story_category_get 按分类 ID 查询到的 Category.name,仅用于结果说明,不用于再次推断类型 |
执行流程
1. 加载与检查
加载需求文档内容,检查以下评分产物是否完整且可追溯:
- 工时预估:
预估工时 有值,且“工时估算”中包含 O、M、P、E 与估时依据;
- 规模评分:
规模(size) 有值,且规模评分章节包含 5 个维度、maxDim、avgDim 与映射结果;
- 业务价值评分:
业务价值(RICE) 有值,且 RICE 明细包含 Reach、Impact、Confidence、Effort 和综合分;
- 用户是否明确要求重新评估?
判断逻辑:
- 三类评分产物均完整,且未要求重新评估 → 流程结束,输出“已有完整评分数据,未重新评分”;
- 任一评分产物或其评分依据缺失,或用户要求重新评估 → 从步骤 2 开始完成一整轮 PERT、size 与业务价值(RICE)评分。不得只补填缺失字段,以免新的工时、size 与 RICE Effort 产生不一致。
2. 工时预估
执行前必读 references/story-effort-baseline.md
以高级工程师的角色对需求进行工时预估。
PERT 三点估算
- 若调用方提供
需求类型,直接使用该值,不重新根据文本或分类原始值猜测类型;若未提供,设为“开发需求”。
- 按需求类型选择对应基线:输入为“运维操作”时使用运维操作基线,输入为“文档编写”时使用文档编写基线,输入为“开发需求”或缺省时使用原有开发类逻辑;输出命中的基线和影响 M 的维度。
- 逐项检查本类型的评估维度和适用的开发类调整因子,在基线 M 值基础上调整,结果取整至 0.5h。
- 估算三点:
- O(最乐观):需求边界清晰、改动集中、无意外时的工时
- M(最可能):正常实现路径,调整因子修正后的基线中值
- P(最悲观):出现需求变更、隐性依赖、技术障碍时的工时
- 计算
E=(O+4M+P)/6,四舍五入至 0.5h;同一轮评分以该 E 计算 RICE 评分明细.Effort=E/8。
向用户展示格式:
**工时预估**:Eh(高级工程师,含开发 + 自测 + Code Review)
- 需求类型:{type}(分类 ID:{category_id 或“未提供”};分类原始值:{原始值或“未提供”})
- 估时依据:{命中的类型基线及影响 M 的维度}
- 调整因子:{因子1}(+X%)、{因子2}(-Y%)…(无则填"无")
- 最乐观:Oh / 最可能:Mh / 最悲观:Ph
- PERT:(O + 4×M + P) / 6 = Eh
更新文档
将工时预估结果更新到需求文档的"基本信息"章节:
预估工时: Eh
工时估算: {估时依据};PERT(O=Oh / M=Mh / P=Ph / E=Eh)
同时更新"人力与工时"章节(如存在):
* 全量工作1位高级工程师完成工时预估:Eh(PERT 三点:O=Oh / M=Mh / P=Ph)
* 全量工作1位中级工程师完成工时预估:XX 人时(通常为高级工程师的 1.3-1.5 倍)
3. 规模评分(size)(斐波那契)
执行前必读 ../references/size-difficulty-standard.md
按该标准对需求进行相对实现规模评分,产出回写 TAPD size 字段的斐波那契规模分。
- 对 5 个规模维度(实现范围、技术复杂度、依赖、风险、验证成本)各评 1–5 分,
评分依据复用 §2 PERT 已识别的基线与调整因子(不含任何价值/用户影响维度)。
- 取
maxDim(最大值)与 avgDim(算术平均),按标准的"maxDim 锚定 + avgDim 校准"
两步法映射为斐波那契 size(1/2/3/5/8/13…)。
- 常规单需求 size 建议 ≤5;≥8 提示"建议评估拆分",≥13"必须拆分"(与 ≤24 人时强约束对齐)。
向用户展示格式:
**规模(size,斐波那契)**:{斐波那契分}
- 实现范围:{n}/5 / 技术复杂度:{n}/5 / 依赖:{n}/5 / 风险:{n}/5 / 验证成本:{n}/5
- maxDim={max} / avgDim={avg} → size={斐波那契分}
更新文档
将 规模评分(size)结果更新到需求文档的"基本信息"章节:
规模(size): [斐波那契分](规模维度:范围/复杂度/依赖/风险/验证成本)
4. 业务价值(RICE)评分
RICE 综合分作为业务价值写入需求文档,并回写 TAPD business_value 字段,不赋值 size(size 见 §3)。
参照 ../references/rice-scoring-standard.md 中的 RICE 模型进行业务价值评分。
RICE 公式
RICE Score = (Reach × Impact × Confidence) / Effort
参数评估
Reach(触达):
- 评估该需求影响的用户数量或事件数
- 影响 100% 用户记为 100,50% 记为 50,依此类推
- 内部工具类需求按实际使用人数估算
Impact(影响程度):
根据需求的业务价值和优先级确定:
| 等级 | 分值 | 适用场景 |
|---|
| 解决 Bug | 10 | 修复线上问题、安全漏洞 |
| 高优先级 | 8 | 核心功能、用户强烈需要 |
| 中优先级 | 5 | 重要功能改进 |
| 低优先级 | 2 | 一般功能增强 |
| Nice to Have | 1 | 锦上添花的改进 |
Confidence(信心指数):
根据需求的明确程度确定:
| 等级 | 百分比 | 适用场景 |
|---|
| 高信心 | 100% | 需求文档完善、技术方案明确、有用户调研支持 |
| 中信心 | 75% | 需求基本明确、用户体验/性能优化类 |
| 低信心 | 50% | 需求不够明确、属于探索性功能 |
| 极低信心 | 25% | 纯猜测用户需要 |
Effort(开发工作量):
- 使用步骤 2 同一轮的 E
- 按每天 8 小时折算为人天,即
RICE 评分明细.Effort=E/8
- 例如:预估 E=40 人时 → Effort = 5 人天
计算并记录
计算 RICE 得分并更新到需求文档的"基本信息"章节(作为业务价值):
业务价值(RICE): [RICE得分](Reach=[R], Impact=[I], Confidence=[C]%, Effort=[E]人天)
5. 保存更新
将更新后的需求文档保存到原文件路径。如果文档来源于 TAPD 而非本地文件,则保存到
docs/reqs/ 目录下。
跨平台提示:使用 Agent 内置的 write_to_file 工具保存文件,避免依赖
特定操作系统的 Shell 命令。
6. 输出评分结果
输出结构化的评分结果,供主 skill 继续处理:
## 评分结果
**需求名称**:[名称]
**需求类型**:[运维操作 / 文档编写 / 开发需求]
**分类 ID**:[stories_get.category_id 或“未提供”]
**分类原始值**:[story_category_get 按分类 ID 查询到的 Category.name 或“未提供”]
**估时依据**:[命中的类型基线及影响 M 的维度]
**预估工时**:E 人时(E/8 人天)
**规模(size,斐波那契)**:XX(→ 回写 TAPD size 字段)
- 实现范围: n/5
- 技术复杂度: n/5
- 依赖: n/5
- 风险: n/5
- 验证成本: n/5
- maxDim=XX / avgDim=XX
- 处置:size ≤5 为常规规模;size=8 建议评估拆分;size≥13 必须由主 skill 回拨重拆
**业务价值(RICE)**:XX(→ 回写 TAPD business_value 字段)
- Reach: XX
- Impact: XX
- Confidence: XX%
- Effort: E/8 人天
错误处理
| 错误场景 | 处理方式 |
|---|
| 需求文档内容不足以评估 | 标注"信息不足",使用保守估算并说明假设 |
| 文件保存失败 | 将评分结果输出到控制台,提示用户手动更新 |
参考文件
| 文件 | 用途 | 何时读取 |
|---|
../references/size-difficulty-standard.md | 规模评分(size)标准(5 维度 → 斐波那契) | 执行 规模评分(size)前(必读) |
../references/rice-scoring-standard.md | 业务价值(RICE)评分标准 | 执行 业务价值(RICE)评分前 |
references/story-effort-baseline.md | 需求类型工时基线与调整因子 | 执行工时预估前(必读) |