Communitygithub.com

tmj-90/brand

用于建立或审计产品品牌,使工厂产出的界面看起来有目的性而非模板化——当工单要求“创建品牌”、“定义设计系统/视觉识别/调色板/排版”时,或者交付的UI看起来过于通用、需要明确方向时调用。检测现有品牌并用其自身风格进行扩展,或承诺一个具体方向(调色板、字体配对、语调),编写BRAND.md。每当工厂在构建UI之前需要设计基础时调用。

brand 是什么?

该技能旨在为产品建立或审计品牌视觉与语言识别体系,确保UI输出具有目的性,避免模板化。它能够检测现有品牌并在其风格内进行扩展,或在无品牌时选择并定义明确的设计方向——包括调色板(以oklch色彩空间表示,含语义角色与文本安全变体)、字体配对(显示与正文字体家族,含流体缩放方案)、以及产品语调(特质与正反面示例)。技能还包含品牌质量检查清单,确保交付UI满足至少四项前置设计品质(如层级、节奏、深度、语义色彩等),并生成结构化的BRAND.md文件和标记化设计代币。该技能适用于需要设计基础(调色板、排版、语调)的开发场景,支持与设计系统、前端设计技能协作,且强调不捏造未知策略——若定位或受众未定,应标记阻塞状态或提出建议。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/tmj-90/gaffer/tree/HEAD/runner/skills/brand

在你喜欢的 AI 中提问

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

文档

建立或审计品牌

没有品牌的工厂交付UI,就等于交付模板。该技能为产品赋予明确的视觉与语言识别体系——或者审计并扩展已有品牌——并以交付代理可消费的形式记录下来:BRAND.md以及代币。它负责识别体系(方向、调色板、字体配对、语调)。代币结构属于design-system技能;表面执行属于frontend-design技能。

深度参考
调色板层级、oklch代币、对比度、字体配对与流体缩放references/color-and-typography.md
语调范围、特质、消息层级、一致性检查清单references/voice-and-messaging.md

步骤

  1. 检测。 调用search_lore查找品牌、定位、语调和设计ADR。在仓库中查找BRAND.md、DESIGN.md、代币文件(*.tokens.json、tokens.css、theme.ts)、自定义属性的:root块、Logo资源以及营销文案。阅读产品README和工单以了解受众和目的。判断:品牌是否存在?

  2. 品牌存在→在其风格内审计并扩展。 不要用自己的品味替换它。

    • 对照所需品质(步骤4)和下面的禁止列表进行评分;指出每个差距对应的文件和值。
    • 测量品牌使用的每一对文本/背景组合,在每个主题下,对照WCAG对比度(正文4.5:1,大文本和UI 3:1)——计算比值;oklch明度不等于对比度。对于作为文本失败的主题色,需要提供更暗的文本安全变体,而不是豁免。
    • 在现有方向中填补空白:悬停/激活状态、缺失的表面层级、深色变体、文本安全强调色、缺失的语义角色。
  3. 无品牌→承诺一个方向 并说明为什么它适合该产品和受众:杂志风格、瑞士/国际风格、新粗野主义、便当盒式、具有真实深度的玻璃拟态、浅色或深色奢华、复古未来主义。“干净极简”不是方向;深色模式是为用户选择的,而不是出于习惯。然后定义:

    • 调色板 作为oklch代币,每种颜色有明确用途:表面(至少两级)、文本(主要、柔和)、强调色,以及语义角色成功/警告/危险/信息——每种都包含一个文本安全变体,当填充色作为文本失败时使用。
    • 字体配对——显示+正文字体家族,附带理由(如果产品显示代码或数据,还需要等宽字体),一个clamp()流体缩放方案,以及加载计划:自托管、子集化、预加载一个关键权重、指标匹配的备用字体。
    • 语调——受众、一句话承诺、3–5个语调特质,每个特质附带“我们说/我们不说”示例,以及语调在错误和空状态下的变化。
  4. 检查所需品质。 品牌必须使交付UI至少展现出frontend-design技能中列出的十个品质中的四个(层级、间距节奏、深度、排版特征、语义色彩、设计状态、构图、氛围、清晰的动效、系统中的数据可视化)。在BRAND.md中命名这四个以上的品质。

  5. 编写工件。 BRAND.md:方向与理由、调色板表格(代币、值、用途、对比度结果)、字体配对与缩放、语调、交付的品质、待解决开放问题。当涉及可视化工作时,使用仓库格式的代币文件(DTCG JSON或CSS自定义属性——参见design-system技能),例如:

    :root {
      --color-surface: oklch(98% 0.01 95);
      --color-text: oklch(22% 0.02 265);
      --color-accent: oklch(64% 0.19 28); /* 仅填充色;文本使用 --color-accent-text */
      --color-accent-text: oklch(50% 0.19 28);
      --text-display: clamp(2.5rem, 1rem + 6vw, 6rem);
      --text-base: clamp(1rem, 0.94rem + 0.3vw, 1.125rem);
      --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1);
    }
    
  6. 标记未知策略,不要捏造。 如果定位或受众确实未定,且工单未解决此问题,不要编造一个。作为交付技能,使用mark_ticket_blocked并附上具体问题;作为知识种子,使用suggest_lore提出品牌建议,同时注明未解决的开放问题。

  7. 落版。 作为交付技能(你位于工单的工作分支上——用git branch --show-current验证),提交代码,使用record-evidence技能记录每项验收条件的证据(BRAND.md差异、对比度表格、品质清单),然后停止;运行器提交审查。作为知识种子,使用suggest_lore提出品牌建议;直到人工批准前,它保持为建议。

禁止项(审计必须发现这些)

  • 间距一致且无层级感的默认卡片网格。
  • 居中的标题+渐变斑点英雄区加上通用的CTA。
  • 未修改的库/Tailwind/shadcn默认值被当作完成的设计。
  • 每个组件的圆角、间距和阴影相同。
  • 一种装饰性强调色配灰色背景加白色文本。
  • 默认字体堆叠没有说明理由;超过两个字体家族没有理由。
  • 强调色用于正文大小的文本,且对比度未达到4.5:1。
  • 出于习惯而非适配性选择的反射式深色模式。

完成标准

BRAND.md陈述了一个方向及其理由;每个调色板对在所有主题下都有可测量的对比度结果且通过要求;字体配对、缩放和加载计划已定义;语调具有特质和示例;列出了四个以上所需品质;未解决的策略问题被列出而不是猜测;代币以仓库格式存在。

规则

  • 承诺一个方向并说明原因;绝不能是“干净极简”。
  • 使用代币,而非字面量,以便交付代理可复用。
  • 在现有品牌风格内进行扩展;绝不以个人偏好覆盖。
  • 动效代币用于transform/opacity;绝不要将布局相关的动画硬编码到系统中。
  • 未知策略是明确列出的开放问题,而非编造的答案。

Individual skills in this repo

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

相关技能