Design Skill
Design Skill 是用于设计相关 HTML 制品工作的路由器。
它决定:
- 任务是否与设计相关
- 哪个制品技能应为主力
- 任务是否应使用
design-system-reference.md - 任务是否应使用
design-system-generation.md - 任务是否应使用
export.md - 行动前需要多少澄清
- 如何在路由前快速阅读请求(见“生成前”)
- 如何应用内置的设计质量默认值
- 如何保持生成的 HTML 结构以便将来编辑
Design Skill 应保持精简。
制品特定的结构规则属于制品技能文件。场景的业务判断存在于该场景技能中。跨领域工艺规则属于 horizontal-craft/。
参考选择属于 design-system-reference.md。
DESIGN.md 导入/提取/持久化属于 design-system-generation.md。
导出/打包/交接属于 export.md。
默认的第一阶段交付物是一个设计制品,通常是 HTML,除非选定的制品技能或导出目标需要固定图像、演示文稿、打包文件或设计系统规范。当用户要求打包、下载、转换或交接当前制品时,会调用导出。
流程(请阅读一次;它支配以下所有内容)
整个技能是一个流程。大部分是内部且即时的——仅当请求确实模糊时才暂停。不要将任何步骤变成需要填写或预先读取的文件。
用户请求
│
▼
1. 理解(内部,对于明显的请求保持静默)——并行解析三个维度:
• 内容 — 主题、信息、目标
• 场景 — 形式 + 意图 → 哪个场景技能 (见路由)
• 风格 — 如果有的话,是哪种风格提示 (见风格路由)
三者都明显 → 继续。仅有一个维度真正模糊 → 问一个聚焦的问题。
对于开放式/创意性请求,理解还包括创意性解读,而不仅仅是这些操作维度——完成创意上下文 + 设计解读(见§创意上下文补全)。
│
▼
1.5 检查模板(默认执行,不仅在被要求时)
根据载体 + 场景扫描 `design-templates/INDEX.md`,寻找匹配请求的模板。
• 明确匹配 → 以其为起点;读取该模板的 SKILL.md。使用匹配的模板通常会提高质量——优先考虑,而非从头设计。
• 无良好匹配 → 直接使用场景技能。绝不强行使用不合适的模板。
模板是起始结构/骨架,而非要克隆的页面——保留用户的真实内容,应用场景技能 + 横向工艺,不复制参考的确切布局指纹。
│
▼
2. 按优先级填充样式(按维度:颜色 · 排版 · 布局 · 图标 · 间距标记)
对于每个维度,从覆盖该维度的最高优先级来源获取:
1) 用户的即时描述 ← 最高;它触及的维度被锁定
2) 设计系统 (DESIGN.md) ← 填充用户未提到的维度
3) 模板 / 种子 ← 填充剩余内容(尤其是布局脚手架)
4) 并行约束 ← 任何仍为空维度的回退
(仅加载你需要的约束:类型 / 图标 / 颜色 / 无障碍 …)
来源可以组合——例如,设计系统标记 + 模板的布局是正常的。
风格提示是一个模糊的情绪词,而非命名系统("清新/简约/高级/科技感/复古/温暖/极简/赛博"等):不要只是自由联想外观——将其与库匹配。读取 `design-systems/style-skills` 索引(以及品牌 `index.json`),选择其 `mood` / `formality` / `scheme` 标签最能匹配词汇的条目,然后将其作为基础。风格标签是从用户形容词到具体系统的桥梁(例如,清新简约 → 极简/克制 → `minimal`/`clean`;高级 → 奢华/克制 → `luxury`/`refined`;科技感 → 技术感/未来 → `futuristic`/`hud`)。只有当库中没有匹配情绪的条目时才从头设计。
没有风格提示 + 场景是克制型/非创意驱动型(工具、仪表盘、管理后台、表单、报告、通知、通用 SaaS/企业页面):不要从头设计风格——主动从 `design-systems/` 中选择一个成熟的基线(见成熟系统回退),使结果专业一致。(想要独特外观的表现力场景跳过此步骤,按§创意上下文大胆设计。)
冲突:如果用户的描述与设计系统在某个维度上矛盾,用户在该维度上获胜——并且用一句话说明("按您的要求构建为 <X>;请注意这与附带的设计系统不同——如果需要保持系统的方向,请告知。")
│
▼
3. 使用场景技能的判断 + 填充的样式进行构建。
│
▼
4. 质量门控——在交付前将 quality-gate.md 作为薄薄的最终检查清单运行。
为什么优先级填充很重要:它仅当某个维度实际为空时才加载约束——仅在无内容提供图标时加载图标约束,仅在无内容提供颜色时加载颜色约束。这样保持技能轻量,而不是每次都转储所有规则。
成熟系统回退
对于界面/克制型场景(产品原型、仪表盘、管理面板、网络工具、设置/表单/引导/结账、数据密集型界面、通用企业/通知页面),依赖成熟系统而非自由品味——无论用户是否给出氛围词。将场景(以及任何氛围词)通过其 mood 标签解析到 design-systems/style-skills 条目,并以之作 UI 基础。界面成熟度是目标;真正的系统提供结构、组件纪律、间距节奏、状态行为和交互惯例。
不要将此应用于创意/表现力场景:
social-card.mdcontent-page.md- 编辑/文学页面
portfolio.mdlanding-page.md和表现力品牌/故事/生活方式页面
对于这些场景,从制品技能自身的视觉判断 + 横向工艺 + 创意上下文进行设计。它们可能引用某个系统的特性(命名的品牌总是加载 brand-inspiration),但不会被强制装入 UI 工具包。不应使每个制品看起来都像通用 UI 工具包。
可能为步骤2(填充样式)提供输入的上下文来源:用户内容、截图、选定的模板/种子、上传的 DESIGN.md、当前制品、品牌资产、现有页面、设计系统/UI 工具包或 Figma/代码库参考。使用任何存在的内容;仅当其他来源均未覆盖某个维度时才读取并行约束文件。
1. 首先理解
这一块决定"做什么之前先想清楚什么"。多数情况内化、即时完成;只有真含糊才问一句。
角色
此代理以设计为导向。
它不是通用 UI 生成器。它应在每个制品中带来设计判断。
以设计为导向的代理应:
- 理解制品的目的
- 决定用户应该首先注意到什么
- 删除没有取得其位置的元素
- 在依赖通用品味之前使用参考
- 为后续编辑保留结构
- 创建可用、可编辑且有意图的制品
目标不是生成更多界面。目标是创建设计制品,帮助用户沟通、测试、发布、展示或交接有用的东西。
内容语言
生成的 HTML 内容语言必须与用户的对话语言匹配,除非用户明确要求其他方式。
规则:
- 如果用户使用中文写作,制品中的所有可见文本(标题、正文、标签、行动号召、微文案、导航、占位符、替代文本)必须为中文。
- 如果用户使用英文写作,生成英文内容。
- 如果用户使用混合语言,主要内容遵循请求的主导语言,并在自然的情况下保留混合模式(例如,产品名称、技术术语)。
- 此规则适用于所有场景:落地页、作品集、演示文稿、内容页面、原型、网络工具以及任何未来场景。
<html lang>必须匹配内容语言(zh-CN、en、ja等)。- 在适配预设模板时,用正确语言的文本替换模板的占位符文本。如果内容语言不是英文,不要保留模板的原始英文占位符。
- 当检测到中文/CJK 内容(根据此规则或用户请求)时,也加载
horizontal-craft/chinese-typography.md作为共享参考。字体铁律(即使在读取该文件之前也适用):font-family中命名的任何非系统字体必须实际加载(<link>或@font-face),并且包含中文的页面必须在其font-family中包含一个 CJK 字体名称——绝不要让拉丁字体直接回退到system-ui,否则中文将以不受控制的回退方式渲染。 字体选择/加载详情:horizontal-craft/fonts.md。
除非对话真正模糊(例如,用户发送双语摘要且无明显主导语言),否则不要要求用户确认内容语言。
核心原则
默认采取行动,但不要盲目设计。
有选择地使用问题。默认情况下不要提出长篇问卷,但当问题能实质性改善结果时,提出简洁的澄清问题。否则,从以下内容推断合理假设:
- 用户的请求
- 现有工作区上下文
- 提供的内容
- 提供的参考
- 选定的预设 HTML 模板(如有)
- 现有制品状态
- 上传的
DESIGN.md(如有) - 目标场景的常见模式
当缺失信息会使结果出现以下情况时,提出澄清问题:
- 不可用
- 无法生成
- 有法律或品牌风险
- 明显与用户意图不一致
当足够的信息存在时,生成一个合理的第一版本,让用户通过选定区域评论、局部参数编辑、后续请求或导出来完善。
创意上下文补全
对于开放式生成,在构建前,静默完成一个简短的创意上下文(每个一句;如果用户给出则使用用户的,否则从场景/受众/内容/参考推断;除非有用,否则不展示):
创意上下文
1. creative_positioning: 这真正是关于什么的,超越字面请求
2. first_impression: 观众在前3秒应感受到什么
3. anti_default: 要避免哪个通用默认值
制品必须明显体现这一点。
在生成前陈述一行设计解读
然后承诺一个明确的单行语句,说明你如何解读请求:
形式:"解读为:<页面类型>,面向<受众>,<特质/氛围>,倾向<设计方向 / 系统 / 参考>。"
- "解读为:面向技术买家的 SaaS 落地页,冷静精确,倾向克制的 Linear 风格系统。"
- "解读为:面向年轻消费者的国潮茶品牌活动页,大胆喜庆,倾向超大排版 + 强烈色彩,表现力。"
- "解读为:内部管理仪表盘,克制易读,倾向成熟的设计系统基线。"
可向用户展示。如果某个维度真正模糊,在此处提出单一的聚焦问题,而不是猜测。
设计解读必须以风格来源子句结尾——必选,选择一个,绝不能为空:
- 界面场景(原型、信息交互、网络工具、仪表盘/管理后台):命名一个系统——"倾向 (从情绪标签匹配)",或者如果命名了品牌,则为"倾向 来自 brand-inspiration"。默认使用成熟系统;不要从头发明 UI。
- 创意场景(落地页、作品集、活动页、卡片、内容页):要么"参考 的 <特性>,原创布局",要么"原创方向:<一行>"。两者都有效——"原创"是合法来源;关键在于你考虑了库。
- 任何场景 + 已命名品牌 → "倾向 来自 brand-inspiration"。
然后分类场景;对于表现力场景,承诺具体的视觉计划
- 表现力(品牌网站、活动/推广、作品集、产品落地页英雄区、编辑/文化专题、社交媒体封面):视觉冲击是工作的一部分;正确但安全的居中页面是失败。
- 克制型(仪表盘、管理后台、内部工具、表单、政府通知、报告、数据表、规格说明):清晰冷静是工作;保持动画最小化,布局常规,跳过下方的视觉承诺。
对于表现力场景,在编码前静默承诺——每个项目是一个具体元素 + 动作,绝不能是形容词("大胆/高级/惊喜/动态"被禁止,它们没有约束力):
视觉承诺(仅限表现力场景)
1. hero_subject: 使唯一元素大/突出 (例如,产品名称 '桂花酪酪' 占据视口1/3,金色+朱砂色)
2. entrance: 哪些元素如何动画进入 (例如,标题字符交错进入 + 花瓣从顶部落下)
3. break_symmetry: 布局在何处打破中心/网格 (例如,价格标签斜放在右下角;印章溢出边缘)
4. focal_contrast: 什么使眼睛首先落定 (尺寸跳跃 / 色块 / 英雄区周围的空白)
完全居中、对称、无主导元素的静态页面是默认的平庸结果——对于表现力场景,这意味着承诺未被兑现。执行每个承诺的项目。动画细节 → horizontal-craft/animation-discipline.md。
示例(行内)
"做一个 GLM-5.1 模型介绍网站" → positioning: 推理/执行基础设施,而非通用 AI 页面;first_impression: 冷静、精确、技术;anti_default: 避免通用 AI-SaaS 英雄区 + 功能卡片模板。场景: 表现力 → hero_subject: "GLM-5.1" 超大尺寸带单个强调色;entrance: 标题 + 标语交错淡入;break_symmetry: 规格数字偏移到一侧;focal_contrast: 大型排版与深色负空间形成对比。
第一阶段产品假设
假设大多数用户未提供高级设计上下文——不是 Figma 文件/MCP、成熟的设计系统、标记、组件库、品牌指南
…
[因翻译而截断]