Files
AOS/skills/design/design-system-generation.md
Z User e45b68bb8b feat: IMAP mail sync with thread-to-contact matching (PRD §6.1)
Real IMAP connection via imapflow library:
- Connects to IMAP server (IMAPFlow, TLS on port 993)
- Fetches recent messages (configurable limit, default 20)
- Extracts: from, fromEmail, subject, date, snippet (200 chars)
- Thread-to-contact matching (PRD §6.1):
  1. Match sender email against persons table
  2. If no person match, extract domain and match against company.website
  3. Returns matchedCompany + matchedPerson for each email
- Audit-logged (action: crm.mailsync:imap)
- Zod validated (host, port, user, password, folder, limit)
- 502 on IMAP connection failure with detail
- 400 on validation failure

Tested: invalid creds → 502 'IMAP connection failed', missing host → 400
2026-10-27 22:50:50 +00:00

163 lines
9.9 KiB
Markdown
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: Design System Generation Skill
description: Import, extract, normalize, or persist a reusable DESIGN.md from an existing design system, HTML artifact, screenshot, template, style reference, or generated interface.
---
# Design System Generation Skill
把视觉规则变成一份可复用的 `DESIGN.md`。普通首版页面生成**不需要**这个 skill;仅当用户要导入、提取、规范化、持久化或复用一套设计语言时用。核心理念(借鉴 DESIGN.md 方法):用自然语言描述视觉系统、有精确值就保留、并解释每个设计选择**为什么**存在而不只是长什么样。产出经 `skills/design/design-system-reference.md` 供未来生成复用。
## 三种模式
- **Import(导入)**:用户给了现成 `DESIGN.md`/设计规范,要变成可复用参考。行为:读取、保留用户自有规则、检查缺失段、仅在有用时规范化结构、**不要按模型自己的品味重写**、保留精确值、必要时标出歧义。(如"这是我的 DESIGN.md 后面按这个来"、"检查这份有没有缺失")
- **Extraction(提取)**:从 HTML/截图/模板/页面/CSS/style skill/品牌参考提取设计规则。行为:检视来源、提取可见值与模式、区分精确值与推断值、**既描述表面风格也描述底层意图**、不机械照抄每条 CSS、不臆造没有的细节、分离可复用规则与一次性细节。(如"从这个 HTML 提炼 DESIGN.md"、"把截图总结成设计系统")
- **Persistence(持久化)**:把当前已认可的产物风格沉淀成未来可复用的系统。行为:检视当前产物、从已认可设计提取稳定规则、识别哪些该重复哪些是一次性、**别把页面特有细节变成通用规则**。(如"把当前页面风格沉淀成 DESIGN.md"、"后面页面都沿用这版")
多模式同时适用时,以用户明确请求为准。
## 不要用这个 skill 当
只生成单个首版页面、只用现有设计系统而不改它、只做局部编辑、只改确定性参数(色/间距/圆角/密度)、或普通的设计参考查找(那用 `design-system-reference.md`)。
---
## Workflow
### 1. 判断模式
分类为 Import / Extraction / Persistence;多个适用时以用户明确请求为准。
---
### 2. 提取设计意图(不只描述外观)
解释设计为什么用每个模式,而不只是它长什么样。
弱:`蓝色按钮、圆角卡片。`
好:`蓝色专用于主操作与进度状态,给界面一条清晰路径;圆角软化了原本偏技术感的布局,让密集信息更易接近。`
应说清:每个视觉选择传达什么、哪些是结构性哪些是装饰性、如何扩展到未来页面、哪些元素是风格的核心、哪些不该被滥用。
### 3. 分离稳定规则与一次性选择
好的设计系统不盲目保留每个细节。把决策分为:**核心规则**(未来都重复)、**可选母题**(有用但非处处必需)、**一次性细节**(只属于当前产物)、**应避免**(不该重复)。
例:
```text
核心规则:项目年份/角色/状态用紧凑等宽元数据标签。
可选母题:项目多时,列表用 hover 预览图。
一次性细节:超大动画项目编号只属于首页 hero。
应避免:别给无关内容页加随机系统标签。
```
### 4. 产出或更新 DESIGN.md
用户给了现成 `DESIGN.md` → 更新/规范化而非整体替换;从产物提取 → 产出新的;持久化当前设计 → 产出供 `design-system-reference.md` 复用的。简洁但足以指导未来生成,别搞庞大的 design bible。
---
# DESIGN.md 结构
默认用下面 9 段结构。每段写**实用规则 + 为什么**(不只是值),有精确值就保留、推断的标注清楚。
**1. Visual Theme & Atmosphere** — 整体气质:情绪、精致度、密度、视觉温度、个性、受众、头 2 秒的感受。**用一个具体参照物锚定主题,而非一串形容词**——"现代/干净/高级/可信"什么都没指定,模型只会做出落在这些词中心的平庸结果;形容词描述一个「区域」,一个具体参照(某类实物/场景/年代,如"1970 年代某老牌大学的研究生讲义")描述一个「点」,一句话带出配色/字体/留白/有无装饰,还自带「它不是什么」。若一定要用形容词,定义它在本系统里的具体含义。
**2. Color Palette & Roles** — 按**角色**而非清单记录颜色,说明每个用在哪、哪些不该滥用,强调克制 accent,没可见值不臆造、推断的标注:
```md
### Core Palette
- Background `#F7F3EA` — 暖调编辑感底色,页面背景。
- Text Primary `#171717` — 高对比正文与标题。
- Text Muted `#73706A` — 元数据、说明、次要细节。
- Accent `#D94F30` — 仅用于主 CTA、激活态、每区块一处高亮。
- Border `rgba(23,23,23,0.14)` — 不靠重盒子的细微结构。
```
**3. Typography Rules** — 字族 + **语义层级体系**(多数系统 9–15 级,用 headline/display/body/label/caption 等语义命名,每类可再分 small/medium/large),各级字号/字重/行高、层级跨度(克制:标题约 1.9× 正文而非 5×)、中-拉-数字混排。
**4. Layout & Elevation(布局与层级)** — 网格/版心、间距节奏、留白策略、内容区结构、对齐逻辑(结构而非装饰)。**并说清"层级/深度怎么表达"**:用阴影就定义阴影规则;扁平设计要说清替代方案(边框 / 色彩对比 / 色调分层,如背景用浅色、主内容用纯白卡)——层级如何传达是核心决策,不能漏。
**5. Component & Shape(组件与形状)** — **形状语言**:整体的形状性格(锐利 / 柔和)与统一的圆角策略(如所有交互元素统一 4px,"克制的现代感")。**组件形态**:关键组件(卡片/按钮/标签/输入框等)的圆角、边框、阴影、内距规则,**尤其覆盖状态变体**(primary/secondary、hover/pressed/active、空/错误/禁用)——状态覆盖是设计系统的关键,不只画默认态。
**6. Interaction & Motion** — 动效性格、入场/hover/过渡惯例、始终带 reduced-motion,区分核心交互与一次性效果。
**7. Responsive Behavior** — 断点、移动端如何重排、触控友好、各视口可读性。
**8. Do's and Don'ts** — 写具体规则。**注意:又长又啰嗦的 Don'ts 往往说明主题描述太模糊(足够具体的参照会自带大部分负向约束);一个具体参照 + 一份刻意的 Do/Don't 才是最佳组合。**
```text
Do:作品为主要佐证;保持强层级;元数据标签克制一致;限制 accent 数量;用一个难忘的结构/交互主意;有精确值就复用。
Don't:假评价/假指标/假 logo;通用区块填空;照抄品牌素材/专有 UI;无目的的装饰渐变/emoji;每个区块一样响;可发布产物里有死链/失效点击;把一次性 hero 效果当通用规则。
```
**9. Agent Prompt Guide** — 写给未来 agent 的、直接可操作的生成指令:
```md
在本系统里生成新页面时:从作品优先结构开始;角色/年份/类别用紧凑元数据标签;accent 保留给主操作与激活态;尽早展示真实作品、别先放长 bio;用一个大胆结构动作、其余区块安静;除非用户要简单版避免通用卡片网格;保留响应式与触控友好。
```
---
## Lightweight Tokens
If useful, include a compact token section.
Use only when values are available or can be responsibly inferred.
Example:
```json
{
"color": {
"background": "#F7F3EA",
"surface": "#FFFFFF",
"textPrimary": "#171717",
"textMuted": "#73706A",
"accent": "#D94F30",
"border": "rgba(23, 23, 23, 0.14)"
},
"radius": {
"sm": "6px",
"md": "12px",
"lg": "24px"
},
"spacing": {
"base": "8px",
"section": "96px"
},
"typography": {
"bodySize": "16px",
"bodyLineHeight": "1.5",
"labelSize": "11px"
}
}
```
Do not include fake precision. If values are inferred, state that they are inferred.
---
## 各模式补充(避免项)
三模式的核心行为已在前面「三种模式」给出。各自要避免:
- **Extraction**:别把原始 CSS 倒进 DESIGN.md、别臆造没有的值、别把一次性细节当系统规则、别漏掉响应式/交互。
- **Persistence**:别过拟合当前页、别把占位内容当设计规则、别把临时实验固化成永久系统、别忽略用户已认可的风格决定。
- **Import**:输出可以是更新版/规范化版/缺口分析+建议/兼容性说明;不删用户规则除非冲突或重复。
## Quality Rules
一份好的 `DESIGN.md`:可复用、具体、扎根源材料、简洁够用、分清核心vs可选、IP安全、对未来生成有用。**避免**:通用设计套话、空泛的 premium/modern/clean 措辞、有理论无可操作规则、照抄专有品牌系统、把单个产物细节当通用规则、臆造源材料不支持的 token。
## IP and Brand Safety
源是公开品牌灵感时:不把输出当官方系统、不照抄 logo/素材/精确页面结构/专有 UI、只描述高层视觉特质、产出导向原创的可复用规则。源是用户自有时:明确提供则视为权威、保留精确值、不完整处标注假设。
## Chinese Typography Reference
产物含大量中文/CJK、中文编辑排版、公众号、小红书、中文 deck、中文 UI 标签或印刷风 HTML 时,用 `horizontal-craft/chinese-typography.md`;把印刷方法转为 HTML 结构:版心、网格、留白、标题组、图版、边注、章节节奏与标点。
## Quality Gate
交付前应用 `quality-gate.md`;本场景可加更严的检查,但不得削弱共享门禁。
## Handoff
生成/导入/规范化/更新后的 `DESIGN.md` 经 `skills/design/design-system-reference.md` 供未来设计复用,应是可复用参考而非一次性总结。有用时记下:源产物/模板/截图、所选 style skill/品牌灵感、日期版本、假设、缺失信息。