← 返回 Skill 列表
extension
分类: 效率与办公API Key 暂未确认

可视化 PRD

生成可视化 PRD,在同一网页容器中同时展示可交互 HTML 原型和需求文档,支持原型标注、实时编辑和评审对齐。当用户要求生成可视化 PRD、带标注的产品方案、或需要将 PRD 与原型同屏展示时使用。

person作者: muyaocthubModelScope

可视化产品需求设计

生成原型与需求文档同屏展示的可视化 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

故障处理

用户报告问题时按 故障处理协议 自主诊断、修复并复测,不要求用户分步提醒。