VCU PRD 生成器(从软件需求清单)
为矿用防爆锂离子蓄电池无轨胶轮车 VCU 控制软件生成产品需求规格书。输入为单份《VCU软件需求清单.xlsx》,输出 Word + Markdown 双格式 PRD,流程图 PNG 嵌入 Word 并另附可编辑 .vsdx。
1. 输入清单字段(Excel 16 列,按此解析)
| 列 | 含义 | 映射到 PRD |
|---|---|---|
| 需求ID | VCU-SWR-NNN | 章节号 + 需求 ID |
| 整车需求追溯 | VR-NN | 2.2 追溯矩阵 / 5.x.1 概述表 |
| 功能规划分类 | 车辆控制/智能交互/车身电气/故障诊断 | 2.2 矩阵 / 5.x.1 概述表 |
| VCU子系统 | 能量管理/动力域/人机交互等 | 5.x.1 概述表 |
| 需求名称 | 中文名 | 5.x.1 概述表 |
| 需求背景 | 背景描述 | 5.x.2 需求背景与目标 |
| 需求描述 | 核心功能描述 | 5.x.3 FR 分解(拆分为可编码原子条目) |
| 触发条件 | 功能进入条件 | 5.x.4 触发条件与退出条件 |
| 退出条件 | 功能退出条件 | 5.x.4 |
| VCU动作 | 软件动作序列 | 5.x.5 控制逻辑 |
| 控制器边界 | 涉及的控制器与信号 | 5.x.6 控制器边界与信号接口 |
| ASIL等级 | A/B/C/QM | 5.x.1 概述表 / 3.2 ASIL 分配 |
| 优先级 | P0~P3 | 2.2 矩阵 / 5.x.1 |
| 状态 | 草稿/评估中等 | 统一改为「评审中」 |
| 验收要点 | 可测验收条件 | 5.x.10 验收准则 |
| 备注/风险 | 风险与备注 | 5.x.12 风险描述(仅该列有内容时生成) |
2. 工作流(按顺序执行)
- 读取清单:Python + openpyxl 读取(
data_only=True),逐行解析全部 16 列。注意:E:\WorkBuddy等目录文档受 Esafenet 透明加密,.md/.docx/.xlsx 磁盘上为密文,Python 可透明读写、Read/bash 工具读到的是乱码——凡读写文档一律走 Python,写完用 Python 回读校验。 - 生成流程图:按
references/flowchart-rules.md布局规则为每项需求生成控制流程图(PNG + .vsdx),可复用assets/gen_flowcharts_template.py模板;另生成 2.1 CAN 网络拓扑图(可选)。 - 撰写 PRD 正文:按
references/prd-template.md章节模板分 part 文件撰写 MD(用 Python 写文件)。 - 组装 MD:拼接各 part 为最终
VCU控制软件产品需求规格书_V1.0_YYYYMMDD.md。 - 生成 Word:用 python-docx 从最终 MD 解析生成 .docx(封面/修订历史/适用标准/目录/正文/附录),流程图 PNG 以图片嵌入。按
references/docx-build-rules.md执行。 - 校验并交付:校验 docx(段落/表格/图片数、标题层级、封面表、目录位置),用 present_files 呈现 Word + Markdown。
3. 关键规则
- 状态列:PRD 由需求清单生成即进入评审阶段,2.2 追溯矩阵及每个 5.x.1 概述表的「状态」一律写「评审中」。
- 风险描述章节(5.x.12):仅当清单「备注/风险」列有实质内容时生成;清单无该章节内容则不生成对应 5.x.12。
- 编号规则:触发条件/控制逻辑/验收准则等列表,每个子段(如「进入条件」「退出条件」「验收条目」)独立从 1 开始编号;Word 生成时列表项渲染为普通段落并保留前导编号文本(禁止用 Word 自动 List Number,否则子段编号会被串联)。
- 标题命名:第 5 章 5.x 主标题用「5.x NNN-需求简写」格式(如「5.1 001-甲烷浓度检测」),标题需能直接看出需求内容;完整需求 ID(VCU-SWR-NNN)与中文全名保留在 5.x.1 概述表与 2.2 追溯矩阵。
- 目录位置:在「适用标准」之后、第 1 章之前;为 Word TOC 域(二级目录
TOC \o "1-2",避免三级 5.x.y 过长)。标题必须用 Word 内置 Heading 样式(doc.add_heading),并在 settings.xml 写入updateFields使打开自动更新,否则 TOC 域识别不到章节、目录显示为空。 - 封面属性表:编制单位/文档编号/产品名称/产品型号/文档版本/发布日期(可按需增删)。
- 文档结构:第1章 引言 → 第2章 系统概述 → 第3章 需求清单总览(含 3.2 功能安全需求)→ 第4章 需求编号与文档约定 → 第5章 详细功能需求(5.1~5.9 按 SWR 排序,每需求 12 小节)→ 附录A 缩略语 / 附录B 标定参数(可选)/ 附录C 修订记录。
- 流程图质量:右侧分支单列、与源菱形同高、折线箭头明确进入目标框左中点、模块间距 ≥0.45 英寸、标签(是/否)放两节点之间连线空白处、循环回退走主流程左侧。详见
references/flowchart-rules.md。 - 仅软件层面:不涉及硬件电路/结构/线束设计(在 1.2 适用范围声明)。
- 可落地性:每条 FR 可编码可测试;边界条件给默认值与单位并标注「待标定」;异常工况、故障失效场景、验收准则完整。
4. 参考文件
references/prd-template.md— PRD 完整章节模板(12 小节 + 各章结构 + 各需求内容示例)references/flowchart-rules.md— 流程图布局规则与避坑经验references/docx-build-rules.md— Word 生成与校验要点(含 Esafenet 处理)assets/gen_flowcharts_template.py— 流程图生成器模板(PNG+VSDX 双输出,含右侧分支折线路由)
付费调用协议(支付宝 AI 托管付费)
- 调用声明:本技能为付费技能,单次调用 ¥0.99,仅在被 Agent 网关支付放行后执行;免费探测请求一律不产生结果。
- 402 触发:未携带有效支付凭证的请求,返回 HTTP 402,响应体含
Payment-Needed: true与订单创建指引。 - 携带凭证重试:客户端支付成功后,携带
Payment-Proof: <order_id>头重新发起原请求。 - 履约确认:服务端校验凭证有效后执行技能,完成后返回
X-Payment-Status: complete,并回传 ack 确认帧。 - 订单持久化与幂等:每个 order_id 仅履约一次;重复请求返回首次履约结果缓存,不重复扣费。