需求到报价流水线(Requirement → WBS → Quote)
目标优先级
- 需求收集完整性——关键缺口澄清、字段落盘、假设/边界显式化、校验阻断遗漏
- 售前报价准确性——人日与金额同一风险口径、FR↔WBS 可追溯、成本模型可复核
交付物
- 需求文档(Word)——需求分析与拆解
- 功能清单(Excel)——WBS,含优先级/复杂度/技术风险/人日,
fr_ids追溯 FR - 研发报价单(Excel)——工作量、成本、报价、工期、付款建议
进度清单(复制并勾选)
- [ ] 路由:全流程 / 从阶段2 / 仅阶段3
- [ ] 阶段0 澄清关键缺口(或写入默认假设)
- [ ] requirement.json + validate.py
- [ ] 需求文档.docx
- [ ] wbs.json(含 fr_ids)+ validate.py -r
- [ ] 功能清单.xlsx
- [ ] quote.json(calc_quote.py)+ 报价单.xlsx
- [ ] 成本口径:默认 / 对话收集 / Excel 单价表
- [ ] 交付路径说明 + 默认单价声明(如适用)
执行路由(增量)
| 用户已有 | 从哪开始 |
|---|---|
| 仅自然语言需求 | 阶段0 → 全流程 |
已有 requirement.json(或等价需求文档可结构化) |
校验后 → 阶段2 |
已有 wbs.json,要报价/改单价 |
校验后 → 阶段3 |
| 仅改成本模型 | 用同一 wbs.json 重跑阶段3 |
客户需求描述
→ [阶段0] 澄清关键缺口(必要时追问,不阻塞)
→ [阶段1] requirement.json → validate → 需求文档.docx
→ [阶段2] wbs.json → validate -r → 功能清单.xlsx
→ [阶段3] calc_quote → quote.json → 报价单.xlsx
→ 交付
命令中的 python 若不可用则试 python3。<skill_dir> 为本 Skill 根目录。依赖:pip install -r <skill_dir>/requirements.txt
阶段 0:澄清关键缺口(完整性)
生成前检查是否会显著改变范围或报价口径:
| 类别 | 必问/必落盘 |
|---|---|
| 业务 | 系统类型与领域、目标用户、核心业务闭环 |
| 范围 | 是否含登录/权限/管理后台/消息/报表/支付等 |
| 平台 | Web / App / 小程序 / 桌面 / 公众号等 → 写入 platforms |
| 约束 | 预算、上线日期、指定技术栈 → 写入 constraints |
| 边界 | 明确本期不做 → 写入 out_of_scope |
| 集成 | 是否对接现有 SSO/ERP/支付/短信等(有则影响 tech_risk) |
规则:
- 一次只问最重要的 1–3 个问题
- 用户说「按标准来」→ 采用默认假设,写入 assumptions,每条标注「待确认」,不阻塞
- 不得把未确认的工期/预算写成承诺;放入 constraints 或 open_questions
完整字段与样例见 references/schemas.md、references/examples.md。
端到端固化样例(可回归):assets/samples/leave-approval/。
阶段 1:需求分析 → 需求文档
- 必读 references/schemas.md 第 1 节;首次可对照 references/examples.md
- 产出
requirement.json:背景、目标、角色、流程、FR(含 acceptance)、NFR、边界、假设、待确认、platforms、constraints - 校验(失败则修 JSON,禁止跳过):
python <skill_dir>/scripts/validate.py requirement.json - 渲染:
python <skill_dir>/scripts/render_docx.py requirement.json -o 需求文档.docx - 确认文件生成成功即可(完整性以 validate 为准,不必深读 docx)
阶段 2:WBS → 功能清单
- 必读 schemas 第 2 节(含角色人日参考表)与 examples 的 WBS 片段
- 产出
wbs.json:
- 拆到可独立估算、可验收的粒度
- 每个功能点必填fr_ids;每个 FR 至少被覆盖一次
- 公共能力(登录/权限等)独立成点,避免重复计人日
- 按参考表填roles,再按场景微调;tech_risk反映集成/不确定度 - 全覆盖校验(必须带
-r):
python <skill_dir>/scripts/validate.py wbs.json -r requirement.json - 渲染:
python <skill_dir>/scripts/render_xlsx.py 功能清单 wbs.json -o 功能清单.xlsx
阶段 3:报价计算 → 报价单
- 必读 references/quote_model.md(功能级 tech_risk 与项目级 risk_rate 分层)
- 成本模型(禁止让用户手改 JSON),按用户提供方式择一:
- 未提供单价 → 用默认assets/cost_model.json,交付时声明可重算
- 口述/聊天里给单价或费率 → Agent 整理为覆盖 JSON(可只含改动字段)写入临时文件,再-m传入;可对照assets/cost_model.rates_only.example.json结构
- 填写 Excel 单价表(推荐给商务/财务):- 若无表:
python <skill_dir>/scripts/cost_model_from_xlsx.py --init -o 成本单价表.xlsx
(也可用现成assets/cost_rate_sheet.example.xlsx复制后改黄色格) - 用户只改「角色单价」「费率系数」黄色列
python <skill_dir>/scripts/cost_model_from_xlsx.py 成本单价表.xlsx -o cost_model.user.json- 再进入下一步计算
- 若无表:
- 计算:
python <skill_dir>/scripts/calc_quote.py wbs.json [-m cost_model.user.json] -o quote.json - 渲染:
python <skill_dir>/scripts/render_xlsx.py 报价单 quote.json -o 报价单.xlsx - 报价单说明中的单价与费率来自
quote.json内嵌快照,勿手工改报价单 Excel 充数
验证与交付
- validate 已保证:编号连续、枚举合法、FR↔WBS 覆盖、
fr_ids存在 - 交付三份产物路径,并说明「需求 FR → WBS 功能点 → 报价明细」可追溯
- 若
cost_model_source=default,明确告知基于默认单价;可提供成本单价表.xlsx(或口述单价)重算 - 摘要中点明:仍标「待确认」的假设、open_questions、out_of_scope(降低售前误解)
资源
- references/schemas.md——JSON 结构(阶段1/2 前必读)
- references/quote_model.md——报价口径与公式(阶段3 前必读)
- references/examples.md——黄金样例片段与粒度对照
- assets/samples/leave-approval/——端到端固化样例(requirement/wbs/单价覆盖/期望锚点);勿把运行时
output/当样例 scripts/run_sample.py——样例回归(validate + 渲染 + 报价金额锚点)
python <skill_dir>/scripts/run_sample.py --with-user-ratesassets/cost_model.json——默认成本模型(机器用)assets/cost_rate_sheet.example.xlsx——给用户填的单价/费率表样例(推荐)assets/cost_model.rates_only.example.json——仅覆盖单价的机器样例(Agent 内部对照)scripts/cost_model_from_xlsx.py——Excel ↔ 覆盖 JSON;--init生成模板scripts/validate.py/calc_quote.py/render_docx.py/render_xlsx.pyrequirements.txt——python-docx、openpyxl