gentle-design 是一个设计类技能,默认在用户以自然语言请求 UI 设计、稿图、屏幕、落地页或视觉方向时启用;它也用于在 design/ 下已有画板上的迭代。它明确不用于在项目技术栈中实现生产代码。
主要能力与工作方式:
- 每个画板是一个自包含 HTML 文件,内联 CSS、JS 和 SVG,只用系统字体栈,禁止引用外部 URL、CDN、远程字体、图片或脚本。
- 内容使用面向目标受众的真实文案,不使用 lorem ipsum 或占位名称。
- 可访问性要求:语义化元素与地标、WCAG AA 对比度、可见焦点样式,任何动效都要尊重 prefers-reduced-motion。
- 新需求默认写 3 个明显不同的方向到新的 design/<slug>/ 目录,方向要在结构或视觉策略上有差异,而不只是颜色不同,并为每个画板标注其取舍。
- 迭代时只编辑被指定的画板,不重写其他画板;用户要求换一种方法时新增画板并保留旧的。
- 可写入设计清单 design.json,字段包括 title、brief、可选 feature 和 artboards[](file、title、tradeoff、width、height),并保持与文件同步。
- 若设计来自 ODD 跟踪的特性,可在对应文档的 ## Log 中追加条目;小规模未跟踪工作则不创建特性文档。
- 写完后调用 gentle_design 工具以 "open" 动作打开画布(除非用户说不要),并报告返回的 URL。
- 设计系统同步:只读项目源,读取 CSS 自定义属性、Tailwind 配置或 v4 @theme、组件库文件夹、已有 token 文件和字体声明,生成 design/system.md(颜色、排版、间距、圆角、阴影和组件规则,每条注明来源路径)和 design/system.html(1440px 宽的自包含画板);若不存在设计源,则说明并提议一个最小启动系统供用户确认,不把虚构值当作项目 token。
- 设计前先调用 gentle_design 的 list 动作检查:若 system 不存在但有 designSources,先同步设计系统;若无 designSources 则自由设计;若有 staleSources,要告知用户 design/system.md 可能过时并询问是否重新同步。
- 画布评论:评论存于 design/<slug>/comments.json,可用 gentle_design_comments 工具列出和解决;应用评论时只编辑对应画板文件,可用 selector 和 excerpt 定位元素,有截图时先查看截图;未应用的评论保持 open 并说明原因。文件格式包含 version、comments[],字段有 id、file、selector、excerpt、comment、createdAt、status、sentAt、resolvedAt,截图路径为设计目录下 .screenshots/ 中的相对路径;不得删除或重排条目,且必须保持合法 JSON。
- 当用户要求展示、停止、列出设计或实现画板时,调用 gentle_design 工具(open、stop、list 或 implement 并指定 <slug>/<artboard>),按 handoff 文本执行,并用 status: in_progress 和 implemented 上报进度,有运行中的应用时 previewUrl 设为回环地址。
- 澄清问题最多问一个,且只在需求缺少目标或内容时问。
适用场景:快速获得多种落地页/页面视觉方向、在已有画板上按反馈或画布评论微调、把项目设计系统沉淀成 token 和示例画板、将选定画板交给实现流程。
限制:输出为自包含 HTML 画板而非项目生产代码;不引用外部资源;同步设计系统只读不编辑项目源码;每画板的宽高以 CSS 像素设置;评论文件必须保持合法 JSON。
输出契约:返回 slug、每个画板文件及其标题和取舍、本轮改动的文件、本轮解决的评论 id、未决问题,以及画布 URL(未打开时提示 /gentle:design open <slug>);同步时返回读取的源路径、各组 token 数量和是否为提议的启动系统。