mcpField
D
design-is

design-is

github.com/thedotmack设计与 UI104.0k4.3k 次安装今天更新
代码仓库

关于 design-is

用于设计审查的技能,依据 Dieter Rams 的十项原则评估现有设计,以证据给出评分和结论。它生成可直接执行的 `/make-plan` 交接提示词,而不编写实现代码。

主要功能

  1. 01按顺序审查十项设计原则
  2. 02要求每项评分附有证据
  3. 03给出 NEW、REFINE 或 REDESIGN 结论
  4. 04生成范围、证据和评分文档
  5. 05编写完整的 `/make-plan` 交接提示词

适用场景

  1. 01依据设计原则评估现有界面
  2. 02将设计审查转为优先级计划
  3. 03记录设计决策的证据与理由

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thedotmack/claude-mem --skill design-is

安装后在 Claude Code 中输入/design-is确认已加载。

详细介绍

设计审查

不适用场景

  • 常规 UI 代码审查 → 使用 /review
  • 纯文案修改 → 单独进行文案审查
  • 尚无任何产出的设计前构思 → 直接从 /make-plan 开始

你是一个 ORCHESTRATOR。依据 Dieter Rams 的十项原则审查设计,为每项原则打分并提供证据,判定结果(NEW / REFINE / REDESIGN),并将附有可直接运行提示词的任务交接给 /make-plan。

你不编写实现代码。你需要产出:附有证据引用的评分、判定结果,以及交接给 /make-plan 的提示词。

十项原则(Dieter Rams)

严格按照以下顺序审查每项原则。每项评分为 0–3 分,并至少提供 1 条证据(file:line、截图区域、文案摘录或测量值)。

  1. 好的设计是创新的 — 它是否推动了形式的发展,还是只是在模仿?创新源于技术,但绝不是目的本身。
  2. 好的设计让产品实用 — 它是否服务于主要任务?强调实用性,舍弃任何有损实用性的内容。
  3. 好的设计是美观的 — 它是否美观?只有精心制作的物品才能美观;审美品质会影响幸福感。
  4. 好的设计让产品易于理解 — 结构是否清晰地说明了功能?或者说,它是否至少能做到不言自明?
  5. 好的设计不显眼 — 它是否不妨碍使用?它既不是装饰品,也不是艺术品——应为自我表达留出空间。
  6. 好的设计是诚实的 — 它是否只呈现真实的自身?没有虚假承诺、没有操纵、没有夸大的价值。
  7. 好的设计经久耐用 — 它能否经得起时间考验?避免追逐潮流,也不会显得过时。
  8. 好的设计对每个细节都精益求精 — 边缘、空状态、错误、焦点环、动效曲线是否都经过考量?关怀与精准体现了对用户的尊重。
  9. 好的设计有利于环境 — 它是否节约资源?尽量减少污染——在软件中包括包体积、能耗、注意力消耗和认知负担。
  10. 好的设计应尽可能少 — 少即是多。聚焦于本质,回归纯粹,回归简洁。

用户写了“Dieter Braun”——他们指的是 Dieter Rams。不要在回复中纠正他们;只需采用正确的原则。

委派模式

使用子 Agent 收集证据(阅读组件、测量对比度、统计元素数量、检查设计令牌、通过 agent-browser 截图)。评分与判定综合由协调者负责。若子 Agent 的报告给出了评分却未引用证据,则拒绝该报告并重新委派任务。

子 Agent 报告规范(强制)

每份证据收集子 Agent 的回复必须包括:

  1. 查阅的来源——准确的文件路径和行范围,或截图区域
  2. 具体发现——存在哪些内容、缺少哪些内容,并附引文或数值
  3. 每项原则的事实(而非观点)——评分由协调者负责
  4. 已知缺口——无法检查的内容及原因

产出物

所有产出物均放在仓库根目录(或用户指定的项目)下的 DESIGN-IS-<YYYY-MM-DD>/ 中:

  • 00-scope.md — 审查范围(URL、组件路径、界面)、输入材料
  • 01-evidence.md — 子 Agent 按原则收集的证据
  • 02-scorecard.md — 每项原则的 0–3 分评分、一句话理由及总分
  • 03-verdict.md — NEW / REFINE / REDESIGN 判定及理由
  • 04-handoff-prompt.md — 可复制粘贴、供所选结果使用的 /make-plan 提示词

阶段

阶段 0:锁定范围(始终首先执行)

询问用户(或根据请求推断),并编写 00-scope.md:

  • 审查对象是什么?(线上 URL、仓库路径、Figma 画板、组件名称)
  • 谁是主要用户?主要任务是什么?
  • 有哪些限制?(品牌、技术栈、截止日期)
  • 是否有参考设计或竞品?

如果用户询问的设计尚不存在,则跳过阶段 1–2,直接进入阶段 3,并将判定结果设为 NEW。

阶段 1:证据收集(并行展开)

并行部署子 Agent。每个子 Agent 只能返回以下必需字段,不得提供段落说明或评分。

1. 结构证据子 Agent(始终部署) 返回的必需字段:

  • 审计界面上的交互元素总数
  • 主组件树的最大嵌套深度
  • 重复模式数量(具有相同用途的相同交互方式出现在多个位置)
  • 无效属性/未使用导入的数量
  • 每项数量对应的文件与行号引用

2. 视觉证据子 Agent(始终部署) 模式:如果目标是可访问的 URL 或正在运行的开发服务器,则使用 agent-browser 技能进行屏幕截图和计算样式检查。如果目标是没有运行实例的静态代码库,则读取源 CSS/设计令牌/组件文件,仅报告推断出的事实(标记为“推断”)。 返回的必需字段:

  • 观察到的间距比例(px 数组)
  • 观察到的字号比例(px 数组)
  • 不同颜色数量(实际渲染或引用的唯一 hex/oklch 令牌数量)
  • 主要文本中观察到的最低对比度
  • 状态是否存在的检查清单:空状态/加载/错误/成功/焦点/禁用——分别标记为存在或缺失

3. 文案与诚信子 Agent(始终部署) 返回的必需字段:

  • 所有面向用户的字符串及其文件与行号
  • 标记夸大宣传(缺乏依据的营销最高级表述)
  • 标记暗黑模式(强制连续操作、隐藏成本、虚假稀缺、确认羞辱)
  • 标记术语/不明确的标签,并建议通俗易懂的替代文案
  • 标签与行为不匹配的项目,以及两者各自的文件与行号

4. 体积与摩擦子 Agent(始终部署) 返回的必需字段:

  • 初始 JS 字节数(数字)
  • 主视图的网络请求数(数字)
  • 交互时间(毫秒,注明测量值或估算值及所用方法)
  • 空闲屏幕上的动画数量(数字)
  • 首次加载时的通知/徽章/模态框数量(数字)

5. 无障碍证据子 Agent(可选——仅当目标具有实质性交互界面时部署;没有交互的静态落地页则跳过) 返回的必需字段:

  • 每个文本令牌的 WCAG 对比度通过/未通过情况
  • 主要控件的焦点顺序列表
  • 每个主要操作是否可通过键盘访问(逐项标明是/否)
  • ARIA 地标数量
  • 是否存在跳过链接(是/否)

原则 → 子 Agent 对应关系(编排器评分时使用):

原则提供证据的子 Agent
#1 创新仅编排器(结合所有证据进行判断)
#2 实用结构、无障碍
#3 美观视觉
#4 易懂结构、文案与诚信、无障碍
#5 不打扰结构、视觉
#6 诚实文案与诚信
#7 经久耐用仅编排器(结合所有证据进行判断)
#8 周全视觉
#9 环保体积与摩擦
#10 尽可能少的设计结构

编排器编写 01-evidence.md,汇总所有子 Agent 报告。没有来源引用的发现一律驳回。明确禁止子 Agent 评分——只有编排器才能使用第 2 阶段的评分标准进行评分。

阶段 2:评分卡(编排器)

编排器自行评估这 10 项原则——切勿委派评分工作。

针对每项原则,在 02-scorecard.md 中写入:

N. Good design is <principle> — Score: X/3
   Evidence: <one-line summary citing 01-evidence.md anchors>
   Justification: <one sentence on why this score, not the one above or below>

各项原则的评分锚点(逐字套用——选择最符合已审查界面的等级):

#1 创新——3:引入了 5 个以上同类产品中未见的模式,且运用克制。2:改进了现有模式,提升明确。1:模仿竞品,仅有细微变化。0:全盘照搬竞品的流程。 #2 实用——3:以尽可能少的步骤完成主要任务;没有诱导性操作。2:能完成主要任务,但相邻界面增加了步骤。1:完成主要任务需要不必要的绕行。0:审查的屏幕不直接支持主要任务。 #3 美观——3:间距、字体和颜色遵循统一且清晰可见的系统;没有游离样式。2:审查界面中有 ≤2 处细微不一致。1:有 3–5 处不一致,或有 1 处突兀的违规设计。0:没有可见的设计系统,或存在明显的视觉噪音。 #4 易懂——3:初次使用的用户能正确说出每个主要控件的名称。2:有 1 个控件需要工具提示。1:有 2–3 个控件不明确;存在行话。0:没有帮助就无法识别主要操作。 #5 不碍事——3:界面外框退居其次;内容是主体,UI 是背景。2:界面外框可见,但不喧宾夺主。1:装饰元素与内容争夺注意力。0:界面外框压过内容。 #6 诚实——3:每项声明、徽章和标签都与实际行为一一对应。2:有 ≤1 处轻微夸大(例如,使用一次“强大”)。1:有 2 处或以上夸大,或有 1 个暗黑模式。0:存在任何欺骗性流程(强制连续操作、隐藏费用、虚假稀缺性)。 #7 经久耐用——3:视觉语言没有过时潮流的标志;3 年后看起来依然不过时。2:有 1 处过时标志。1:有 2–3 处过时标志(拟物设计残留、流行渐变、潮流字体排印)。0:设计明显带有某一特定年份的潮流特征。 #8 周全——3:空状态、加载状态、错误状态、成功状态、焦点状态和禁用状态均已呈现并得到充分考虑。2:有 1 种状态缺失或处理粗糙。1:有 2–3 种状态缺失。0:有 4 种或更多状态缺失,或使用默认浏览器样式。 #9 环保——3:初始 JS <100KB、没有空闲动画、遵循暗色模式设置、尊重 prefers-reduced-motion。2:<500KB,且动画受条件控制。1:500KB–2MB,动画始终开启。0:>2MB,或自动播放视频,或忽略暗色模式设置。 #10 尽可能精简设计——3:每个元素都有存在的理由;移除任何一个都会妨碍任务。2:有 ≤2 个可移除元素。1:有 3–5 个可移除元素。0:页面被装饰元素或重复的操作入口主导。

评分规则:

  • 平分时的决胜规则:在两个分数之间犹豫时,选较低分。力求一致,不要宽松。
  • 按最差情况评分,不取平均值:如果已审查界面中有多个有代表性的实例,按最差的实例评分,不取平均值。
  • 不加分,不设权重:分数为 0–3 的整数。各项原则权重相同。总分为 10 项分数之和,满分 30 分。
阶段 3:结论(编排器)

将以下三种结论之一写入 03-verdict.md,并按这些规则选择:

  • 全新设计——尚无设计,或现有产物只是没有任何真实设计决策需要保留的占位稿/线框图。
  • 优化——总分 ≥20,且没有任何单项原则得 0 分。基础不错;继续迭代。
  • 重新设计——总分 <20,或任何一项承载关键功能的原则得 0 分(通常是 #2 实用、#4 易懂或 #6 诚实)。从设计目的重新出发。

用一句话说明结论。然后列出 3–5 项杠杆效应最高的改进措施——每项都要关联一项具体原则和一条证据锚点。这些改进措施将构成下一阶段计划的核心。

结论中应避免的反模式:

  • 因为代码库规模庞大就建议优化(沉没成本不是设计原则)。
  • 因为单个屏幕难看就建议重新设计(先明确范围)。
  • 在应当坦诚建议重新设计时却建议全新设计(不要回避批评)。
阶段 4:/make-plan 交接

编写 04-handoff-prompt.md,其中必须恰好包含一个与判定结果相符的 fenced /make-plan 提示词。该提示词必须自成一体——下一次会话看不到这份审计,除非将其引用进去。

使用下方匹配的模板。填写每个 <bracket>。逐字纳入阶段 3 的前 3–5 项行动,每项都附上其证据锚点。

引用内容步骤(强制,适用于以下所有三个模板): 输出交接内容前,将每个 <bracket> 占位符替换为审计中的具体内容。将 03-verdict.md 中的判定段落以及前 3–5 项行动逐字填入模板。不要留下诸如“参见 DESIGN-IS-.../03-verdict.md”这样的裸引用——下一次会话无法访问该文件。输出的交接内容必须无需任何外部查阅即可阅读并采取行动。

模板:NEW DESIGN
/make-plan Design <product/screen/component name> from scratch.

Primary user: <who>
Primary task: <one sentence>
Constraints: <brand, stack, deadline, accessibility floor>

Non-goals (do not design these now):
- <explicit out-of-scope item 1>
- <explicit out-of-scope item 2>
- <explicit out-of-scope item 3>

Reference principles to optimize for, in order:
1. Useful (#2) — <what useful looks like here>
2. Understandable (#4) — <what clarity looks like here>
3. As little design as possible (#10) — <what restraint looks like here>

Deliverables for the plan:
- Information architecture (one screen map or component tree)
- Primary flow wireframe (low-fi, labeled)
- Token decisions (type scale, spacing scale, color count cap)
- States checklist (empty, loading, error, success, focus, disabled)
- Honesty audit on every user-facing string before ship

Anti-patterns to guard against (specific to NEW):
- Decoration without function
- Novel interactions without precedent
- Copy that overpromises
- Designing for screens the Non-goals list excluded
模板:REFINE DESIGN
/make-plan Refine <product/screen/component name> based on a Dieter Rams audit (total <X>/30).

Verdict paragraph (quoted from 03-verdict.md):
> <paste the one-sentence verdict here>

Keep (already strong, do NOT touch in this pass):
- Principle #<N> (<name>) scored 3 — Evidence: <file:line or anchor>. Regression check: <what to grep / re-test to confirm it still scores 3 after the refine>.
- <repeat for every principle that scored 3>

Fix in priority order (top 3–5 moves from the audit, verbatim):
1. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
2. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
3. <Principle # — short name>: <specific move>. Evidence: <file:line or anchor>.
4. <optional 4th>
5. <optional 5th>

Out of scope for this refine pass: <explicit list — what NOT to touch>

Deliverables for the plan:
- Per-fix: target files, exact change, verification step
- Token/spec changes consolidated in one place
- Regression checklist for every "Keep" item above

Anti-patterns to guard against (specific to REFINE):
- Adding new abstractions where a direct change suffices
- Restyling areas that already scored 3
- Scope creep into structural redesign (if structure must change, this should be REDESIGN, not REFINE)
- Letting fixes mutate principles outside the priority list
模板:REDESIGN
/make-plan Redesign <product/screen/component name>. Current design failed audit at <X>/30 with critical gaps in principles <comma-separated list of 0-scored or 1-scored load-bearing principles>.

Verdict paragraph (quoted from 03-verdict.md):
> <paste the one-sentence verdict here>

Why redesign and not refine: <one sentence — usually a load-bearing principle (#2, #4, or #6) scored 0, or total is below threshold>

Preserve from current design (MUST be non-empty — at minimum, name the brand tokens):
- <specific element 1, with file:line>
- <specific element 2, with file:line>
- (if structurally nothing survives, write: "Brand tokens only — color palette and logo. Discard everything else.")

Discard (MUST be non-empty — name the structural patterns causing the failures):
- <pattern 1>. Evidence: <file:line>. Caused failure on principle #<N>.
- <pattern 2>. Evidence: <file:line>. Caused failure on principle #<N>.

Top 3–5 moves from the audit (verbatim):
1. <Principle # — short name>: <specific move>. Evidence: <file:line>.
2. <Principle # — short name>: <specific move>. Evidence: <file:line>.
3. <Principle # — short name>: <specific move>. Evidence: <file:line>.

Redesign principles in priority order:
1. <Principle # — name> — <what success looks like>
2. <Principle # — name> — <what success looks like>
3. <Principle # — name> — <what success looks like>

Deliverables for the plan:
- New information architecture (not derived from old)
- New primary flow (low-fi, labeled, compared side-by-side to current)
- States checklist (empty, loading, error, success, focus, disabled)
- Migration path for users currently on the old design
- Cutover criteria (when is the old design retired)

Anti-patterns to guard against (specific to REDESIGN):
- Porting old structure under new styling
- Keeping both designs behind a flag indefinitely
- Redesigning to follow a trend rather than the principles above
- Treating the Preserve list as optional — it must be filled before this handoff is valid

核心原则(供审计者参考)

  • 证据优先于主观偏好——每个评分都要引用来源;“感觉不对”不算发现
  • 评估实际情况,而非原本意图——设计以最终交付的内容为准,而非设计稿
  • 审计也必须诚实——如果总分是 28/30,就应判定为 REFINE,即使用户想要重新设计;如果是 12/30,就应判定为 REDESIGN,即使用户想要改进
  • 只给出一个判定,不要列出三个——选择 NEW、REFINE 或 REDESIGN;不要含糊其辞
  • 交接,不要实施——design-is 止步于 /make-plan 提示词;接下来由 /make-plan 和 /do 负责
  • 坚持判定结果——写好 02-scorecard.md 后,判定结果便由阶段 3 的规则机械得出。绝不要为了得到偏好的判定而重新评分;如果评分表判定为 REDESIGN,交接内容就应是 REDESIGN。

需要避免的失败模式

  • 仅凭截图评分,却不阅读代码——使用结构分析子 Agent 重新部署
  • 评估代码库,而不是设计——重新以面向用户的证据为依据
  • 为了弱化判定而轻易打 3 分——根据阶段 2 各原则的评分锚点重新校准
  • 交接提示词没有引用判定结果和重点行动——没有这些内容,下一次会话就无从了解情况
  • 跳过阶段 0 的范围锁定——审计错误的界面会浪费阶段 1 的工作
  • 沉没成本推理——因为代码库规模庞大就建议 REFINE;沉没成本不是设计原则
  • 在多个判定之间摇摆——“可能是 REFINE,也可能是 REDESIGN,取决于……”——必须选一个
  • 为了符合预期判定而抬高分数——先评估证据,再按规则得出判定
  • 让阶段 0 的用户偏好凌驾于阶段 3 的证据之上——用户可以不同意判定,但审计必须如实报告证据所示的结果

评论

支持 Markdown