可视化产品需求设计
生成原型与需求文档同屏展示的可视化 PRD。
资源与路径
- 将
SKILL.md所在目录作为 Skill 根目录;从任意工作目录调用时,先把下列相对路径解析为该根目录下的绝对路径。 - 可独立使用:只提供需求材料也可完成澄清、PRD、原型和离线 HTML 交付;不要求质量审核 Skill、验收 Skill 或
handoff.json。只有需要跨 Skill 追踪时才生成并校验交接文件。 - 生成 PRD 前读取 PRD 模板。
- 设计锚点、标注数据与编号时读取 标注指南。
- 实现 Markdown 文档区时读取 Markdown 渲染指南。
- 需求涉及成功指标或行为采集时读取 指标与埋点定义,从
assets/metric-plan-template.json生成metrics.json并校验;不适用或待确认时不得虚构指标。 - 处理第三方 HTML、跨工具分发或发布前安全审查时读取 安全与可移植性边界。
- 交付前读取并执行 原型与容器自检;用户报告问题时读取 故障处理协议。
- 基于 原型骨架 生成原型,并注入
scripts/prototype-runtime.js与scripts/annotation-runtime.js。 - 使用
assets/container-template.html装配最终容器;assets/container-styles.css作为拆分开发时的基础样式参考,最终 HTML 仍须将资源内联。 - 迁移或交付 Skill 前运行
python3 scripts/validate-package.py,确认目录、模板占位符、离线资源、脚本语法、交互声明和烟雾构建完整。 - 与质量审核或产品验收衔接时,读取 需求交接契约;同时交付独立的
handoff.json,保留 PRD 中已有的需求 ID,并运行python3 scripts/validate-handoff.py <handoff.json> --prototype <prototype-source.html> --annotations <annotations.json>。后续质量问题和验收用例的链接须在各自产生后补齐,不提前编造 ID;不要在 HTML 标注编号中复用需求 ID。
工作流
Phase 1: 需求接收与澄清
- 读取用户提供的需求描述、会议记录或产品想法
- 仅针对会改变范围、角色、业务规则或验收口径的缺失信息提问;需要时集中提出 3-5 个问题
- 信息已足够时不强制追加澄清轮次;无法确认但不阻断设计的信息明确标为“待确认”
- 将澄清结果整理为产品定型文档
Phase 2: PRD 板块规划
- 根据定型文档,输出板块计划(有哪些功能板块、优先级和依赖关系)
- 未获端到端执行授权时等待用户确认;用户已明确要求直接完成时,记录依据并继续,不逐板块机械阻塞
Phase 3: 逐板块生成 PRD + 原型
对每个板块依次执行:
3.1 生成 PRD 文档
- 包含:功能描述、用户故事、业务规则、状态机、验收条件
3.2 生成原型页面
- 必须基于
assets/prototype-template.html生成原型,不允许跳过prototype-runtime.js直接手写交互逻辑 - 引入 prototype-runtime.js
- 定义初始 state(包含该板块所有可变数据)
- 定义页面结构,可点击元素必须带 data-action
- 定义每个 action 对应的状态变化和跳转目标
- 所有交互必须有可见反馈(状态变化、页面切换、弹层开合、Toast 提示)
3.3 交互自检(必须执行)
运行 node scripts/check-interactions.js <原型 HTML 文件>,随后在真实浏览器中执行 完整自检清单。静态脚本通过不等于交互通过。适用项失败时修复并复测;报告列出逐项结果和修复记录。
Phase 4: 装配与交付
- 将所有板块的产出装配为一份完整的单文件 HTML
- 如果本次需要跨 Skill 交接,生成
handoff.json作为 HTML 之外的机器可读清单。需求 ID 来自 PRD 模板中已稳定的 ID;links[]只维护需求与锚点、标注等下游对象的关系,缺失关联不能靠猜测补齐。 - 指标与埋点适用时,另交付按 指标定义 校验的
metrics.json;有handoff.json时将需求与指标 ID 写入其links[],不得复制第二份引用表。 - 从 Skill 根目录运行以下命令;所有尖括号参数均替换为实际文件路径:
python3 scripts/build-container.py \
--prototype <prototype-source.html> \
--prd <prd.md> \
--annotations <annotations.json> \
--prototype-output <prototype.html> \
--output <visual-prd.html>
- 在浏览器中预览,验证标注定位是否准确
- 导出为可离线打开的最终交付物
- 对最终交付物重新运行浏览器自检,确认没有外部资源请求、未处理异常或编号警告
- 迁移 Skill 时运行
python3 scripts/package-skill.py,不要手工压缩;脚本从 frontmatter 的metadata.version读取版本并生成平台中立的版本化压缩包,并保留metadata.author原作者署名
重要原则
- 标注内容必须来自 PRD 或明确标记为"待确认",不脑补业务规则
- 每个标注块按页面内容、交互说明、业务规则、字段说明、待确认组织
- 原型标注入口必须先显示区域序号,点击序号后再查看详情
- 每条标注必须显式定义
order;原型圆点和右侧面板只读取该字段,不得用数组索引临时计算编号 - 按当前可见交互视图从 1 连续编号;
pageId: "*"的跨页面标注进入页面基础序列,互斥 Tab 可复用同一序位,顶层弹层独立从 1 编号 - 标注 runtime、bundle 与页面 data-anno 锚点必须同时存在并能命中
- 构建期必须保证标注数据 ID 与原型
data-anno一一对应;缺数据、缺锚点或重复锚点均视为失败 - 只把经检查的当前任务原型注入容器;未知或第三方 HTML 不得进入使用
allow-same-origin的 iframe
故障处理
用户报告问题时按 故障处理协议 自主诊断、修复并复测,不要求用户分步提醒。
微信扫一扫