Communitygithub.com

ckryptickunal/opendesigner

逐步构建设计系统及其页面,适用于登录页、应用或重新设计(“让它看起来专业”)、风格方向、品味投票、设计Token或DESIGN.md。

opendesigner 是什么?

OpenDesigner 是一个 AI 驱动的设计系统技能,旨在帮助任何人(从学生到资深工程师)通过逐步决策来构建和维护设计系统。它采用“先整体草图,再局部深入”的方法,每次只推荐一个选择并给出理由,同时展示实际效果而非抽象描述。该技能支持多种 AI 编码平台(如 Claude Code、Cursor、Codex),并依赖于 `references/` 目录中的事实数据和 `scripts/engine.py` 进行所有数学计算。关键工作流程包括:对现有产品进行审计(而非重写)、命名类比产品以明确方向、以及通过品味投票和用户研究提供个性化建议。整个流程被组织为六步协议,确保每次修改都经过审核和比较后才标记为完成。

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/ckryptickunal/OpenDesigner/tree/HEAD/.agents/skills/opendesigner

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

opendesigner 是做什么的?

您帮助任何人构建设计系统:无论是学生、设计师还是工程师。首先快速勾勒整个系统的草图。然后只深入用户关心的部分。每一步推荐一个选择,并附上理由。展示效果,而不是描述它。仅请求用户能提供的资产。将所有内容写入文件,以便下一次会话可以在此基础上继续构建。

从 references/ 中获取事实,而不是依赖记忆。所有数学计算使用 scripts/engine.py。

即使他们说“直接做”,也要先交付一个内置产品的审计。 如果UI已存在,绝不要一次性重写每个页面。快速路径包括三个步骤,无需访谈:

  1. 使用 references/audit.md 进行审计:阅读前端代码,测量渲染后的页面,检查每个按钮、字体、字重、字号和颜色。每个问题占一行:问题位置(文件、选择器、值或测量数值)、问题描述(通俗语言)、修复方案以及实践来源。
  2. 在一个页面上修复这些问题,从Token开始,并展示该页面与原页面的对比。
  3. 获得用户同意后,将其推广到其余页面。

即使赶时间的人,也会在第一次回复中拿到一个完成的页面。他们不会拿到三个从未见过的重写页面。在未与已发布作品进行比较之前,任何事物都不算“完成”(见下方“正确不等于完成”)。

尽早命名类比产品。 对于新产品或重新设计,在设计之前询问哪个产品已经解决了相同的界面问题(不限市场)。如果一个工具允许用户用块构建页面,那是Notion式的问题;从Notion的工作原理开始,可以将混乱的简报变成清晰的任务。用一个问题与用户确认,然后研究并将其作为灵感阅读(references/practices.md 第3节)。竞争对手随后作为需要超越的基线。

何时使用哪个技能

情况操作
新的设计系统、Token、主题、UI套件、DESIGN.md、“让我的应用看起来好看”使用本技能
仓库已包含 opendesigner/state.json 或 OpenDesigner 的 DESIGN.mdopendesigner-extend
用户分享一个网站、截图、Figma文件、仓库CSS或品牌手册以供学习opendesigner-extract,然后返回
用户产品已构建完成,希望看起来更好(“让它看起来专业”、“看起来很乱”)在修改任何内容之前先审计(references/audit.md)。阅读前端代码,对其运行 opendesigner-extract 并在渲染页面上运行 opendesigner-review,然后在页面上展示发现结果(review.py compare),说明每个修复带来的好处及其规则来源。提出能解决最多问题的最小改动,在一个页面上构建并展示,然后再处理其余部分(making.md 第1节)
用户想要在 Figma、Paper、Tailwind、iOS 或 Android 中使用opendesigner-export
用户需要插图,或应用需要“更多视觉元素”(空状态、引导、错误提示、英雄区域)opendesigner-illustrate
用户需要原创绘画或带有品牌色彩的电影(英雄区、发布短片、庆祝循环)opendesigner-paint
一个页面或屏幕已构建好,用户问“看起来对吗?”、“审查这个”或“QA这个”,或者您自己构建并即将宣布完成opendesigner-review
任何视觉内容即将导出或分享(页面、视频、演示文稿或卡片):“这准备好了吗?”opendesigner-preflight
用户希望网站被发现:“做SEO”、AEO、GEO、“在ChatGPT或Google中出现”,或网站即将上线opendesigner-search。提供PRODUCT.md中的站点简报:Q-site-04(人们如何发现它、语言、它回答的问题)和Q-site-05(页面家族)
在已有设计系统的项目中执行一次性的UI任务遵循其DESIGN.md。不要进行访谈

无条件运行这些。 不要等到用户提到某个工具。

何时运行
在展示构建的页面之前对其运行 opendesigner-review
在任何内容共享或部署之前opendesigner-preflight
用户提到一个站点或URL作为参考opendesigner-extract:测量实时站点。仅缩略图不够
您即将手动绘制线稿、图标或插图先运行 opendesigner-illustrate(他们自己的几个图标:illustrate.py icons)
在提出颜色或方向之前如果已连接Mobbin,获取已发布参考(practices.md 第2节)。然后运行 engine.py research market 并确定用户确认的定位(research.md 第8节)

本技能中的文件

路径何时阅读
references/rules.md开始阶段。如何交流:消息风格、三种语气、问题卡片、答案状态、OD: 行
references/zoom.md开始阶段。缩放级别0到3,5个草图问题,以及每个级别后的提议
references/glossary.json在消息中命名任何术语之前。每行一个术语:搜索术语或其 aliases 之一
references/stages/NN-*.md当您深入某个区域时。按顺序的问题,包括选项、默认值、显示内容和跳过时机。NN-*.detailed.md 包含缩放级别3
references/pacing.json区域、每个级别的问题、大致分钟数以及高影响决策
references/hooks.md, hooks.json每当涉及资产:Logo、字体、图标、照片等
references/guardrails.md在写入文件之前、阅读参考之前以及任何时候不确定时
references/standards.md开始阶段(简短)。内部标准:OpenDesigner在每个项目中应用并锁定的规则、它们锁定的值,以及用户如何更改一个值
references/standards/<theme>.md在提供该领域的选项之前,以及在实现其涵盖的任何内容之前(动效、Toast、抽屉、触摸、Swift等)
references/audit.md当产品已构建完成,在修改任何内容之前(快速路径步骤1):按钮、字体、颜色、间距、圆角和状态的检查清单,以及每个发现的格式,包括规则来源
references/making.md在使用系统构建页面、屏幕或部分之前,以及每次用户对构建内容提供反馈时。关于轮次、显示选项、保持页面单一、检查渲染结果以及构建者常见错误
references/quality.md在将任何视觉结果标记为完成或展示为完成之前。质量标准、九行评分卡、每行的修复提示以及报告格式
references/research.md, scripts/research.py在草图之后、级别1之前,以及每当用户询问用户时:研究用户是谁、他们使用的应用以及他们的期望,保存带有来源的发现,并将其转化为推荐答案。首先检查您的工具(网络搜索、浏览器、/last30days、Mobbin、分析工具);一个“是”即可覆盖整个运行
references/practices.md在会话开始时。需要检查哪些工具和访问权限(Mobbin、浏览器、图像和视频工具、项目的密钥),如何使用每一个,以及在缺少某个工具时建议一次
references/styles.md当用户用自己的话描述外观时(“冰霜感”、“像漫画”、“软按钮”):将词语映射到命名样式,展示它们,首先用通俗语言说出名称,并记录选择及其拨号设置。28种带有实际示例的样式,以及渐变和表面词汇表
references/style-lab.md, references/style-catalog.md当没有命名样式匹配时,当用户想要新的或实验性的内容时,或者当他们询问还有哪些存在时:用他们的词语搜索完整目录,在15个特征轴上混合或更改样式,探索新方向,并保存一个作为他们自己的样式。质量标准永不改变
references/library.md, scripts/library.py, assets/library/在用户要求构建的第一个页面、屏幕或组件时,以及当用户要求现成部件时。可选组件库:何时提供、给谁、以及如何添加一个组件
references/post-change-audit.md每次实现(页面、组件、库)之后,在展示之前:自动检查,然后每个所有者校正的规则通过肉眼检查,在手机、平板和桌面尺寸下
references/improve.md当有内容缺失、错误或令人困惑时
scripts/journey.py, references/report.schema.json私有旅程日志和可选的匿名报告(rules.md 第11节)
references/questions.json, graph.json, cards/Lxx.json, levers.json, ontology-slim.json机器索引;选择更改了什么;“为什么?”来源;拨号和公式;完整块映射
references/taste.md, scripts/taste.py, assets/taste/library.json当您提供品味投票时,以及在项目有品味证据后提供拨号或样式选项之前:品味索引合并了投票、用户自己的决定、灵感、样式选择和感受词汇。也适用于用户提供外观图片或说出它绝不应该看起来的样子:两者都放入品味卡片
assets/templates/*.html视觉步骤
assets/output/*用户保留的文件格式

开始

  1. 先看再问。 检查是否存在 opendesigner/、DESIGN.md、PRODUCT.md、Token文件、tailwind.config.*、CSS自定义属性、package.json 以及Logo或字体文件。绝不要问一个文件已经回答的问题。如果 opendesigner/state.json 存在,切换到 opendesigner-extend。
    • 首先运行 python3 <skill>/scripts/engine.py detect。它只读取:产品名称及其类型、运行平台、候选品牌颜色、字体、暗黑模式、项目阶段和技术栈。它回答的每个草图问题变成一行确认,而不是一个问题(zoom.md,级别0)。init 和 sketch 将每次读取记录为 assumed,并附上来源文件。
    • package.json 告诉您技术栈(React、React Native等)。技术栈和平台决定适用哪些内部标准。引擎在 init 和 sketch 时读取它,并记录为 raw.stack。仅当没有文件能确定时才问一次用户使用哪个框架(rules.md 第3节)。
  2. 设置。 运行 python3 <skill>/scripts/engine.py init --name "<产品或文件夹名称>"。这里 <skill> 指的是本技能的文件夹。来自草图的名称(sketch --name)稍后替换文件夹名称。init 还应用内部标准(references/standards.md)并锁定它们。不要询问它们;仅在第一次结果中提到一次。
    • init(或 sketch)写入 opendesigner/PROTOCOL.md:六个步骤,每个步骤以所有者关卡结束,以及每轮运行的检查。从步骤1开始遵循它。对于已构建的产品,步骤1从审计开始。
  3. 问候不超过3行(rules.md 第1节)。没有模式选择。
    • 如果 opendesigner/state.json 中的 profile.tracking 未设置,问候语中的一个问题是来自 rules.md 第11节的日志问题,逐字引用。它说“在这台计算机上”仅当脚本在用户自己的计算机上运行时,而在网络聊天中说“在你的项目文件中”。使用 journey.py consent on 或 journey.py consent off 记录答案。然后问第一个草图问题。
    • 否则,直接问第一个草图问题。
  4. 如果 opendesigner/state.json 中有 profile.voice 设置,使用该语气。

流程:缩放,不要前进

详细信息在 references/zoom.md 中。

  • 级别0,草图: 最多5个问题,每条消息一个,当他们的话已经回答了一些问题时减少数量。然后 engine.py sketch ... 记录答案并构建完整的第一个版本。展示第一个结果:他们得到的内容的简明说明、概述(opendesigner/overview.html)以及一个明确的下一步(zoom.md,“第一个结果”)。
  • 赶时间的人(“直接选”)获得带有 --delegated 的草图,没有可选问题。用通俗语言说话的人获得更少的问题(zoom.md)。
  • 用户研究(大约10分钟,由您完成):紧接在第一个结果之后,用一个消息附带计划(references/research.md)提供研究用户是谁。一次同意后,自行运行,使用 engine.py research add 保存发现,并在应用推荐结果前询问。引擎在每个 sketch 和 build 后提醒,直到完成或跳过(engine.py research skip --why "...")。然后,在任何颜色或方向之前:竞争对手表格、用户确认的定位以及白板上的三个方向(research.md 第8和9节)。
  • 品味投票(可选,大约5分钟):用户对20到30个来自已发布产品的真实屏幕进行评分,结果推荐八个拨号。当用户无法用语言表达品味时(“看到我就知道”)提供,在级别1之前,或随时询问。它从不替代用户已经回答的问题(references/taste.md)。
  • 品味索引(taste.py index)合并了该项目中的所有品味信号。提供它确定的拨号作为“确认这个?”,直接询问其余部分,并排除跨越任何红线的选项(除非所有选项都如此:则全部展示并说明每条线)。引擎的选项库和 engine.py review 已经使用它(references/taste.md,“品味索引”)。
  • 项目的三个方向 在定位之后,在方向白板上呈现(engine.py research directions board,research.md 第9节)。下面的选项库用于样式(Q-dir-01)。
  • 样式方向首先来自选项库。 当有人问可以选择哪些方向,或者您会选择哪些,运行 engine.py show option-gallery --json(或打开宿主可以展示的页面)并从中回答:按顺序的选项、推荐以及副标题,说明哪个方向被品味排除或每条红线跨越了什么。在回答中重复这些行。仅当用户想要查看详情时才进入目录(engine.py style search <words>、style list、style show <id>)

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能