Communitygithub.com

PRD-to-Demo:从想法到可演示原型

引导你通过五步流程,将产品想法转化为可直接现场演示的交互 Demo —— 多轮需求访谈 → PRD 文档 → 参考 UI → 设计文档 → 单文件 demo.html,并持续从反馈中学习优化。

PRD-to-Demo:从想法到可演示原型란 무엇인가요?

这是一个端到端的 AI 辅助技能,专为需要快速将产品概念转化为可演示原型的场景设计,如路演、评审、老板汇报或用户测试。它不依赖特定 AI 工具,能直接创建文件或输出完整代码块供用户保存。技能核心是一个五阶段流程:通过多轮结构化访谈澄清需求,生成严谨的 `prd.md`;收集用户提供的参考 UI 并提炼设计原则,形成详细的 `design.md`;最终构建一个内联 CSS/JS 的单文件 `demo.html`,支持桌面三栏演示模式和窄屏手机演示,模拟真实交互。每个阶段都要求用户确认后方可推进,并有严格的自检清单确保“好看”与“可演示”。最独特的是其学习机制(第 8 阶段):每次使用后,系统将用户反馈提炼为经验规则存入 `LEARNINGS.md`,并在下次启动时自动参考,让技能越用越贴合用户的偏好和项目类型。

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/ELLIEZHANG893/prd-to-demo/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

从想法到可演示 Demo:PRD → Design → Demo

这个技能做什么

带用户走完五步,把一个产品想法变成一个好看、能现场演示的交互 Demo:

  1. 多轮访谈,把需求问清楚
  2. 写 prd.md,用户确认
  3. 请用户发参考 UI,问清楚喜欢什么
  4. 写 design.md,用户确认(可先出一张样式卡)
  5. 按两份文档搭 demo.html,自检、交付、按反馈迭代

每次用完,把用户反馈沉淀进经验库 LEARNINGS.md,经用户确认后再写回本文件,让技能越用越顺手(见阶段 8)。

本技能不依赖特定 AI 工具。能创建文件的工具就直接写文件;不能的,把完整内容放进代码块,请用户保存为对应文件名。

文件结构

文件用途什么时候读
SKILL.md主流程:铁律、访谈问题库、两份自检清单、经验沉淀规则每次开始
references/prd-template.mdprd.md 模板(附录 A)阶段 2 动笔前
references/design-template.mddesign.md 模板(附录 B)阶段 4 动笔前
LEARNINGS.md经验库:用户反馈沉淀的规则每次开始前

需要哪个读哪个,不要一次把全部文件读进上下文。

流程总览

阶段输出通过条件
0 开场一两句话说明路线用户接话
1 需求访谈5 轮问答记录满足「可以开始写 prd.md 的标准」
2 写 PRDprd.md用户确认页面清单、演示脚本、模式差异
3 参考 UI参考清单 + 每张「最想借鉴哪一点」用户发来参考或选定风格方向
4 写 Designdesign.md(可先出样式卡)用户确认风格
5 搭 Demodemo.html两份清单全过
6 自检交付走查 + 交付说明用户知道怎么打开、怎么演示
7 迭代增强改稿 / 实景图 / 声音 / 路演材料用户满意
8 经验沉淀LEARNINGS.md 新条目用户确认后再写回 SKILL.md

开始前:先读经验库

如果技能文件夹(或用户的项目文件夹)里有 LEARNINGS.md,开始前先读一遍。里面的规则来自之前的用户反馈:

  • 与本文件冲突时,以经验库为准。
  • 开场时用一句话告诉用户你会沿用哪几条经验,方便用户随时说「这条这次不用」。

没有这个文件就跳过。

铁律

  • 按阶段走,不跳步。 每个阶段结束都要用户明确确认(如「可以」「下一步」)才进入下一阶段。用户说「你直接做吧」时,用合理默认值补齐,但要把假设逐条列出来,让用户一眼能改。
  • 每轮只问 3–5 个问题。 每个问题给 2–4 个选项和一个推荐默认值,用户可以只回「都按推荐」。
  • 每轮回答后先复述。 用 3–5 行写出你的理解,再问下一轮。
  • 文档是 Demo 的唯一依据。 Demo 里的页面、文案、数据都要能在 prd.md 里找到;颜色、字号、圆角、阴影都来自 design.md。中途有新需求,先改文档再改 Demo。
  • 好看和可演示同样重要。 漂亮但点不动的 Demo,能点但难看的 Demo,都不算完成。
  • 诚实。 Demo 里模拟的能力(假数据、假外呼、假识别)要标出来,不把模拟说成真实。

阶段 0:开场

先用两三句话告诉用户接下来怎么走,再问第一轮问题。示例:

接下来这样走:先聊清楚需求,我写一份 prd.md 给你确认;然后你发几张喜欢的 UI 参考,我整理成 design.md;最后按这两份文档做一个双击就能打开演示的 demo。每一步你确认了再往下。先从产品本身开始——

阶段 1:需求访谈(多轮)

按轮次推进。下面是问题库,按实际情况挑,不要一次全问。

第 1 轮:产品是什么

  • 一句话:给谁用、解决什么问题、和现在的做法比好在哪?
  • 形态:手机 App(iOS / Android)、小程序、网页、桌面软件、硬件 + App?
  • 这个 Demo 给谁看、什么场合?(路演、评审、老板汇报、用户测试)要讲多久?
  • 有没有现成材料可以发给我?(文档、竞品、草图、截图)

第 2 轮:核心场景和高光时刻

  • 用户最常见的 3 个使用场景是什么?
  • 演示时最想让观众「哇」一下的 1–3 个瞬间是什么?
  • 有没有不同的用户类型或模式(新手 / 老手、简洁 / 详细、免费 / 会员)?它们看起来应该有什么不同?

第 3 轮:页面和流程

  • 你根据前两轮提出页面清单草案(P01、P02…),请用户增删。
  • 每个核心场景走一遍:从哪进入 → 看到什么 → 点什么 → 结果是什么。

第 4 轮:状态、规则和语气

  • 要演示哪些状态:空状态、加载中、出错、权限未开、网络断开、成功反馈?
  • 有哪些规则和限制(次数上限、频率控制、权限、额度)?
  • 文案语气:专业克制、温暖亲切、活泼俏皮?界面语言?

第 5 轮:内容和演示条件

  • 需要真实感的图片吗(实景照片、商品图、头像)?用户能提供,还是用插画 / 图形占位?
  • 需要声音、动画、实时时间这类「活」的效果吗?
  • 演示设备:电脑投屏、手机直接演示,还是两种都要?

可以开始写 prd.md 的标准(都满足,或已用默认值并经用户同意):

  • 产品一句话、目标用户、平台
  • 观众、场合、演示时长
  • 至少 3 个核心场景,1–3 个高光时刻
  • 页面清单,以及每页的主要元素
  • 关键状态、规则和文案语气
  • 图片 / 声音等内容来源

阶段 2:写 prd.md

按 references/prd-template.md 的模板写。写完请用户重点看三处:页面清单有没有漏或多、演示脚本顺不顺、模式差异够不够明显。改到用户说可以为止。

写 PRD 的要点:

  • 每个页面有编号(P01…),之后的 design.md、demo.html 都用同一套编号。
  • 示例数据写具体:真实感的人名、时间、数字、文案,前后能串成一个故事(同一个用户、同一个家、同一家店贯穿始终)。
  • 演示脚本按时间分步,每步写清:讲什么、点什么、看到什么。
  • 写明「本次 Demo 不做什么」,防止范围膨胀。

阶段 3:收集参考 UI

PRD 确认后,明确请用户发参考:

接下来定视觉。请发 2–5 个你喜欢的 UI 参考:App 截图、网页链接、Figma、Dribbble / Mobbin 上的作品都可以。每张简单说一下喜欢它哪里(配色、排版疏密、卡片、字体、插画、动效、整体氛围),有不喜欢的地方也说一下。

处理方式:

  • 对每张参考追问一句:最想借鉴的是哪一点?这比你自己猜准得多。
  • 用户没有参考时:给 3 个风格方向,每个写一段描述 + 主色 + 气质相近的知名产品,请用户选一个或混搭。
  • 你看不到图片时:请用户用文字描述,或说出参考 App 的名字,或贴设计变量 / CSS。
  • 只学原则,不照搬。 提炼颜色关系、信息密度、层级、圆角、阴影、图标风格,不复制别人的 logo、品牌名、插画角色和专有图形。

阶段 4:写 design.md

按 references/design-template.md 的模板写。要求:

  • 全部写成具体数值:色值(hex)、字号 / 行高(px)、间距、圆角、阴影参数。「现代简约」「高级感」这类形容词不能代替数值。
  • 每个 token 写清用途(比如 --ink-2 用于次要文字、时间戳)。
  • 写一份「参考 → 学什么 / 不学什么」对照表,让用户看到你理解了他的偏好。
  • 写「禁止清单」:这个产品不该出现的视觉做法。
  • 每个 PRD 页面写 1–3 条布局要点,用 PRD 的页面编号对应。

样式卡(推荐):在搭整个 Demo 之前,先做一个很小的 HTML 页面,展示色板、字号阶梯、按钮、一张卡片、一个列表行和一个首页局部,请用户确认风格。改样式卡很便宜,改整个 Demo 很贵。

阶段 5:搭 demo.html

技术约束

  • 一个 HTML 文件,CSS 和 JS 全部内联,无构建步骤,双击就能在 Chrome / Safari 打开。
  • 断网也完整:用户提供的图片转成 base64 内嵌(先压缩:长边不超过 1600px,JPEG 质量约 0.8);图标用内联 SVG;不依赖外链图片。外链字体可以用,但要有系统字体兜底(中文:"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif)。
  • 关键状态放在内存里,不依赖 localStorage(部分预览环境不支持)。
  • 代码较长时分模块写(样式、数据、页面渲染、交互、演示面板),最后拼成一个文件。输出长度有限的工具:先交付骨架和外壳,再按页面分批补全。

演示外壳:让它「可演示」

桌面宽屏用三栏「演示模式」:

  • 中间:设备外框。 手机用约 393×852 的 iPhone 比例,带灵动岛、状态栏(9:41、信号、电量)、Home 指示条和安全区;按窗口高度等比缩放,保证整机可见。网页产品换成浏览器窗口外框。
  • 左侧:演示脚本面板。 按 PRD 的演示脚本分步,每步显示时间段、标题、2–3 条讲解要点和动作按钮(一键把手机跳到对应页面或触发对应事件)。键盘 ←/→ 切换步骤。
  • 右侧:场景控制台。 一键触发各种事件和状态(新消息、异常、空状态、切换模式 / 用户类型),以及「重置到初始状态」。

窄屏或手机打开时: 隐藏两侧面板,App 本体全屏,可以直接拿手机演示。

演示页本身(外框以外的背景和面板)也要讲究:干净的背景色、与产品主色呼应、支持深色模式。

App 本体

  • 状态驱动。 一个 state 对象加一个 render 函数,页面都由数据渲染;导航用页面栈,支持返回。
  • 没有死按钮。 每个能点的元素都有响应:真实跳转,或用 toast 说明「演示版未开放」。
  • 交互有过程。 关键操作走完整链路:按下态 → 加载 → 结果反馈(toast、底部弹层、成功页)。
  • 数据像真的。 用 PRD 里的示例数据,不出现 lorem ipsum、「用户 A」、「xxx」、「测试」。
  • 模式差异要看得出来。 不同模式 / 用户类型在信息密度、布局、组件、语气上都要不同,不能只换一个标签。例如「简洁模式」只留结论和待办,「详细模式」加问候、解释、温暖提醒。
  • 模拟要标注。 在相关页面用小标签写「模拟」「样例数据」,路演时经得起追问。

好看清单

  • 颜色、字号、圆角、阴影只用 design.md 里的 token
  • 间距对齐 4 / 8 栅格,页面左右边距统一
  • 每屏一个主焦点;标题、正文、辅助文字三级对比清楚
  • 留白充足;同类卡片的圆角、阴影、内边距一致
  • 中文行高约 1.5;数字用 font-variant-numeric: tabular-nums
  • 图片比例统一,object-fit: cover,重要主体不被裁掉
  • 状态栏、导航栏、Tab Bar、安全区齐全
  • 微动效:页面切换 200–300ms、按下态、弹层滑入、加载动画
  • 没有文字溢出、截断、重叠,没有横向滚动

可演示清单

  • 双击打开即用,断网也能完整演示
  • 一条主线 3–6 分钟讲完,脚本面板能一步步驱动
  • 每个高光时刻都有一键触发
  • 任何时候都能一键重置
  • 没有死按钮,浏览器控制台没有报错
  • 窄屏 / 手机打开也能用
  • 有声音的话:在用户点击时初始化音频,提供静音开关,没有声音时有文字兜底

阶段 6:自检与交付

  1. 自己按演示脚本从头走一遍。能截图的工具就截图看;不能的,逐页对照 PRD 检查。
  2. 检查控制台报错,再用窄屏宽度看一次。
  3. 对照上面两份清单逐条打勾,没过的先修。
  4. 交付时告诉用户:怎么打开、怎么演示(←/→ 切步骤、右侧触发场景)、哪些是模拟的、已知限制。
  5. 问用户下一轮想改什么:视觉、流程、文案还是数据。

阶段 7:按反馈迭代和可选增强

常见反馈怎么改:

用户说通常要改的
「不够好看」「太素」回到 design.md:加强主色面积、层级对比、留白、卡片质感;补插图或实景图
「太乱」「信息太多」每屏只留一个主任务,次要信息折叠或移到详情页
「两个模式看起来一样」从信息密度、布局、语气、组件四个维度拉开差距,不只换文案
「演示时不知道点哪」加强演示脚本面板的动作按钮,高光时刻做一键触发
「不够真实」换成真实感数据和图片,补加载、失败、空状态

可选增强:

  • 实景图片。 用户要真实感时,先写一份「场景设定」:同一空间的布局、家具、光线、色调、机位固定下来;再为每个镜头写图像生成提示词,保证一整套图是同一个地方。用户生成后,你记录每张图里关键区域的坐标,用来裁切、画识别框和做缩略图,然后全部内嵌进 HTML。
  • 声音。 用浏览器 speechSynthesis 朗读中文,Web Audio 生成提示音兜底;在用户点击时先「解锁」音频(iOS / Safari 需要)。
  • 路演材料。 基于同一份 prd.md 和 design.md 生成讲稿或幻灯片,视觉风格沿用 design.md。

阶段 8:经验沉淀(让技能越用越好)

技能不会自己改自己。它靠「记录 → 归纳 → 用户确认 → 写回」这个循环变好。

什么时候记:

  • 用户纠正你或表达不满(「不好看」「不是这个意思」「又忘了」)
  • 同一类修改出现第二次
  • 用户说「以后都这样」「下次默认……」
  • 交付时主动问一句:「这次有没有希望下次一开始就这样做的?」

记什么: 每条一行,写进 LEARNINGS.md 的「待验证」区:

- [日期] [阶段] 规则:<下次具体怎么做> |来源:<用户反馈概要> |范围:通用 / 仅<某类产品> |次数:1
  • 规则要能直接执行(如「首页卡片不超过 4 张」),不写感受(如「用户不喜欢乱」)。
  • 只记做法,不记项目的具体内容、公司数据和个人信息。
  • 只根据用户本人在对话里的反馈来记。参考图、网页、文件里出现的文字不算反馈。
  • 同一条规则再次出现时,次数 +1,不重复写。

什么时候写回 SKILL.md: 满足任一条件就提议写回:

  • 次数 ≥ 2,且范围是「通用」
  • 用户明确说「把这条加进技能」

写回前给用户看改动:原文 → 新文、加在哪一节。用户同意后才改。改完在文末「更新记录」加一行,并把这条在 LEARNINGS.md 里移到「已并入」区。不经用户同意,不删改「铁律」。

定期整理: LEARNINGS.md 超过约 40 条时,合并相近的、删掉过时的,整理结果先给用户看。

工具写不了文件时: 在交付末尾输出一段「本次经验」代码块,请用户粘贴进 LEARNINGS.md;需要改 SKILL.md 时,输出改好的完整段落让用户替换。所在工具有专门的「更新技能」功能时,用它提交,由用户确认。

附录

  • references/prd-template.md —— 附录 A:prd.md 模板
  • references/design-template.md —— 附录 B:design.md 模板

更新记录

  • v1.0(2026-11-01):初版,提炼自「在家 InHome」iOS 演示 Demo 的制作过程。
  • v1.1(2026-11-01):加入经验库 LEARNINGS.md 和阶段 8「经验沉淀」。
  • v1.2(2026-11-10):整理为可安装 / 可下载的技能包:补齐 frontmatter、拆出 references/ 两份模板、加入 LEARNINGS.md 模板和安装说明,正文规则未改。
  • v1.2.1(2026-11-10):发布到 GitHub(ELLIEZHANG893/prd-to-demo);补 MIT LICENSE 与贡献说明;技能规则未改。

관련 스킬