req2prd 用于把收到的 .docx 需求文档转换成两个 Markdown 文件:
PRD.md:给人看的需求文档,尽量完整保留原 docx 内容、表格和图片,并在不丢内容的前提下提升可读性。SPEC.md:给 agent 看的通用规格文档,不包含图片,只抽取原文明确支持的需求、规则、流程、字段、约束和未明确事项。
这个 skill 的核心原则是:只转换和整理来源文档,不猜测、不虚构、不补充原文没有的信息。
req2prd-skill-2/
SKILL.md
scripts/
convert_docx.py
references/
config.md
output-templates.md
spec-extraction-guide.md
evals/
evals.json
req2prd.config.example.yml
没有配置文件时,输出到当前工作目录下:
docs/
<源文档文件名>/
PRD.md
SPEC.md
assets/
image-001.png
image-002.png
可选配置文件名固定为:
req2prd.config.yml
查找顺序:
- 当前工作目录
- docx 文件所在目录
- 未找到则使用默认配置
配置文件只允许控制输出路径和文件名,不允许改变真实性约束、生成规则或模板。
示例:
output:
root: docs
dir: "{{source_stem}}"
prd: PRD.md
spec: SPEC.md
assets: assets如果使用配置文件,配置里的相对路径都相对配置文件所在目录解析。
在支持 skills 的 agent 环境中,把本目录作为 skill 安装或引用。用户可以这样说:
请把 test-req-doc/xxx.docx 转成 PRD.md 和 SPEC.md
agent 应该先读取 SKILL.md,然后使用辅助脚本完成 docx 解析和图片提取:
python scripts/convert_docx.py test-req-doc/xxx.docx如果 agent 不在本目录运行,使用脚本绝对路径:
python /path/to/req2prd-skill-2/scripts/convert_docx.py /path/to/requirement.docx脚本会生成 PRD/SPEC 草稿。随后 agent 必须打开 PRD.md 和 SPEC.md:
- 对
PRD.md做轻整理,但不能删除原始内容;输出中不要写入本机绝对路径。 - 原 Word 自动目录、页码目录会被当作排版导航清理掉,只保留 skill 生成的真实 Markdown 目录。
- 根据
PRD.md完成SPEC.md,把脚本抽取结果整理成最终可交给 coding agent 的内容。 SPEC.md中变更摘要、功能需求、业务规则、接口与字段影响用表格,流程、实现约束、测试要点等用普通 Markdown。- 每条关键需求、规则和接口影响都应包含来源位置。
- 码值、字段、接口等可拆对象应尽量拆到独立行;同一对象或页面的重复表述应语义归并,避免把 PRD 原句堆成候选清单。
- 码值出现在展示/隐藏条件中,不等于该码值新增或删除;这类内容通常进入业务规则。
- 变更影响范围要覆盖原文明确提到的页面、流程、接口、受理单/PDF、输出同步和历史反显要求。
- 固定值、置灰、不可修改类规则如果列出具体页面或保全项,应在
业务规则中逐项展开,便于后续 agent 定位代码。 - 确认页核心返回值、受理单、PDF、统一输出等展示同步影响,应和核心接口传值/字段必录规则区分清楚。
- 测试要点应是可执行检查项。
- 对原文未明确的信息写
原文未明确。或放到未明确事项。 - 不允许最终保留
脚本已提取候选条目、需由 agent 复核、原文相关对象、原文相关条件、待根据 PRD 提取。或待整理之类候选稿/占位内容。 - 确保
SPEC.md不包含图片嵌入。
最后运行:
python scripts/convert_docx.py test-req-doc/xxx.docx --validate-only准备任意一个本地需求 docx 后执行:
python scripts/convert_docx.py path/to/requirement.docx
python scripts/convert_docx.py path/to/requirement.docx --validate-only如果本机安装了 pandoc,脚本会优先使用 pandoc。如果没有安装,会使用 Python 的 docx 解析能力兜底。