页面加载中...
产品经理专用:从需求描述到完整 PRD 文档的全流程工作流。支持需求列表生成、多轮确认、业务逻辑流程图生成、交互式 Demo 制作、Word 格式 PRD 导出。当用户需要:1) 将产品需求转化为结构化需求列表,2) 生成产品业务逻辑流程图,3) 制作可交互的产品演示 Demo,4) 导出标准 Word 格式 PRD 文档时使用此 skill。
帮助产品经理完成从需求收集到文档输出的全流程工作。
接收需求描述
生成需求列表
| 字段 | 说明 |
|---|---|
| 展现形式 | Web端 / 移动端 / 小程序 / H5 等 |
| 功能模块 | 所属模块分类 |
| 功能名称 | 功能点名称 |
| 功能描述 | 详细描述 |
| 优先级 | P0(核心) / P1(重要) / P2(一般) / P3(优化) |
| 备注 | 补充说明 |
多轮确认
询问用户
生成流程图
生成 Demo
assets/demo-template.html 作为基础模板Demo 特性
输出 Demo
询问用户
生成 PRD
scripts/generate_prd_docx.py 生成文档输出文档
scripts/generate_prd_docx.py - 生成 Word 格式 PRD 文档assets/demo-template.html - HTML Demo 基础模板| 展现形式 | 功能模块 | 功能名称 | 功能描述 | 优先级 | 备注 | |---------|---------|---------|---------|--------|------| | Web端 | 用户管理 | 用户登录 | 支持账号密码登录 | P0 | - |
使用 Mermaid 语法,例如:
flowchart TD A[开始] --> B{用户已登录?} B -->|是| C[进入首页] B -->|否| D[跳转登录页] D --> E[输入账号密码] E --> F[验证身份] F -->|成功| C F -->|失败| G[提示错误] G --> E
{产品名}-demo-v{版本}.html
{产品名}-PRD-v{版本}.docx
#!/usr/bin/env python3
"""
Generate PRD Word document from structured requirements data.
"""
import sys
import json
from docx import Document
from docx.shared import Inches, Pt, RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.oxml.ns import qn
def set_cell_border(cell, **kwargs):
"""Set cell border properties."""
tc = cell._element
tcPr = tc.get_or_add_tcPr()
for edge in ('top', 'left', 'bottom', 'right'):
edge_elm = tcPr.find(qn(f'w:{edge}'))
if edge_elm is None:
edge_elm = docx.oxml.OxmlElement(f'w:{edge}')
tcPr.append(edge_elm)
for key, val in kwargs.items():
edge_elm.set(qn(f'w:{key}'), val)
def create_prd_document(data, output_path):
"""Create PRD Word document from requirements data."""
doc = Document()
# Title
title = doc.add_heading('产品需求文档 (PRD)', 0)
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
# Product Info
doc.add_heading('一、产品概述', level=1)
info_table = doc.add_table(rows=4, cols=2)
info_table.style = 'Table Grid'
info_data = [
('产品名称', data.get('product_name', '未命名')),
('版本号', data.get('version', 'v1.0')),
('创建日期', data.get('created_date', '')),
('文档状态', data.get('status', '草稿')),
]
for i, (key, val) in enumerate(info_data):
row = info_table.rows[i]
row.cells[0].text = key
row.cells[1].text = val
row.cells[0].paragraphs[0].runs[0].bold = True
doc.add_paragraph()
# Product Description
doc.add_heading('二、产品背景与目标', level=1)
doc.add_paragraph(data.get('description', '暂无描述'))
# Requirements Table
doc.add_heading('三、功能需求列表', level=1)
req_table = doc.add_table(rows=1, cols=6)
req_table.style = 'Table Grid'
# Header
headers = ['展现形式', '功能模块', '功能名称', '功能描述', '优先级', '备注']
header_cells = req_table.rows[0].cells
for i, header in enumerate(headers):
header_cells[i].text = header
header_cells[i].paragraphs[0].runs[0].bold = True
header_cells[i].paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
# Data rows
for req in data.get('requirements', []):
row = req_table.add_row().cells
row[0].text = req.get('platform', '')
row[1].text = req.get('module', '')
row[2].text = req.get('name', '')
row[3].text = req.get('description', '')
row[4].text = req.get('priority', '')
row[5].text = req.get('notes', '')
doc.add_paragraph()
# Business Logic Flow
if data.get('flowchart_description'):
doc.add_heading('四、主业务逻辑流程', level=1)
doc.add_paragraph(data.get('flowchart_description', ''))
doc.add_paragraph()
# Appendix
doc.add_heading('五、附录', level=1)
doc.add_paragraph('本文档由 AI 辅助生成,如有疑问请联系产品经理确认。')
# Save
doc.save(output_path)
print(f"PRD document saved to: {output_path}")
if __name__ == '__main__':
if len(sys.argv) < 3:
print("Usage: python generate_prd_docx.py <input_json> <output_docx>")
sys.exit(1)
input_file = sys.argv[1]
output_file = sys.argv[2]
with open(input_file, 'r', encoding='utf-8') as f:
data = json.load(f)
create_prd_document(data, output_file)来源:用户上传
用户上传标准 Skill 文件夹。