mcpField
I
impeccable

impeccable

github.com/boraoztunc设计与 UI434237 次安装11 周前更新
代码仓库

关于 impeccable

impeccable 是用于设计和迭代前端界面的技能,覆盖从方案规划、实现到评审与发布前修整的多种命令。它要求先读取产品和设计上下文,并按品牌或产品界面选择设计规范。

主要功能

  1. 01构建功能并规划界面
  2. 02评审可用性与技术质量
  3. 03提取设计令牌和组件
  4. 04调整布局、颜色、动效与文案
  5. 05处理无障碍、性能和国际化细节

适用场景

  1. 01为新功能规划并实现界面
  2. 02检查现有界面的响应式与性能
  3. 03将既有样式整理为设计系统
  4. 04为发布前的界面进行质量修整

安装

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

$npx skills add https://github.com/boraoztunc/skills --skill impeccable

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
NOTICE.md
agents/
impeccable-asset-producer.md
reference/
adapt.md
animate.md
audit.md
bolder.md
brand.md
clarify.md
codex.md
cognitive-load.md
color-and-contrast.md
colorize.md
craft.md
critique.md
delight.md
distill.md
document.md
extract.md
harden.md
heuristics-scoring.md
interaction-design.md
layout.md
live.md
motion-design.md
onboard.md
optimize.md
overdrive.md
personas.md
polish.md

详细介绍

设计并持续迭代可用于生产环境的前端界面。提供真正可用的代码、明确的设计选择和卓越的工艺。

设置

在进行任何设计工作或编辑文件之前:

  1. 使用加载脚本加载上下文(PRODUCT.md / DESIGN.md)。
  2. 确定设计类型,并加载匹配的类型参考(brand.md 或 product.md)。
  3. 如果用户调用了子命令(例如 craft、shape、audit),也要加载该命令的参考文件。 这点不可妥协:如果没有加载 craft.md 就执行 craft,你会跳过用户期待的塑形与确认步骤。

跳过这些步骤会导致输出泛泛而谈,忽略项目本身。

1. 收集上下文

文件共两个,文件名不区分大小写。默认情况下,加载器会查找项目根目录;如果根目录中没有文件,则会回退到 .agents/context/ 和 docs/。使用 IMPECCABLE_CONTEXT_DIR=path/to/dir 覆盖路径(绝对路径或相对于 cwd 的路径)。

  • PRODUCT.md:必需。包含用户、品牌、语气、反面参考和战略原则。
  • DESIGN.md:可选,强烈建议提供。包含颜色、字体、层级、组件。

通过一次调用同时加载两者:

node {{scripts_path}}/load-context.mjs

完整读取 JSON 输出。切勿通过 head、tail、grep 或 jq 管道处理。输出中的 contextDir 字段会告知文件的解析位置。

如果本次会话的对话历史中已有输出,则无需重新运行。但以下情况必须重新加载:刚刚运行了 {{command_prefix}}impeccable teach 或 {{command_prefix}}impeccable document(它们会重写文件),或用户手动编辑了文件。

{{command_prefix}}impeccable live 会通过 live.mjs 预加载上下文。如果本次会话已运行 live.mjs,则不要再运行 load-context.mjs。

如果 PRODUCT.md 缺失、为空或是占位内容(包含 [TODO] 标记,或少于 200 个字符):运行 {{command_prefix}}impeccable teach,然后使用新加载的上下文继续用户最初的任务。如果最初的任务是 {{command_prefix}}impeccable craft,则应先继续执行 {{command_prefix}}impeccable shape,再进行任何实现工作。

如果 DESIGN.md 缺失:每个会话提醒一次(“运行 {{command_prefix}}impeccable document,获取更符合品牌风格的输出”),然后继续。

2. 设计类型

每项设计任务都属于 brand(营销、落地页、营销活动、长篇内容、作品集:设计本身就是产品)或 product(应用 UI、管理后台、仪表板、工具:设计服务于产品)。

设计前先确定类型。优先级:(1)任务本身的线索(“落地页”还是“仪表板”);(2)关注的界面(正在处理的页面、文件或路由);(3)PRODUCT.md 中的 register 字段。按优先级匹配,采用第一个匹配项。

如果 PRODUCT.md 中没有 register 字段(旧版文件),则根据其中的“Users”和“Product Purpose”部分推断一次,并在本次会话中缓存推断结果。建议用户运行 {{command_prefix}}impeccable teach,以显式添加该字段。

加载匹配的参考:reference/brand.md 或 reference/product.md。以下共享设计准则适用于两者。

共享设计准则

适用于两种类型的每项设计。让实现复杂度与美学愿景相匹配:极繁主义需要精心繁复的代码,极简主义则需要精准克制。发挥创造力。不同项目采用不同方案;切勿趋同于相同的选择。{{model}} 能创造非凡作品,不要有所保留。

颜色
  • 使用 OKLCH。随着明度接近 0 或 100,降低色度;极端明度下的高色度会显得刺眼。
  • 切勿使用 #000 或 #fff。让每种中性色都带有品牌色调(色度 0.005–0.01 即可)。
  • 先确定配色策略,再挑选颜色。承诺程度分为四个层级:
    • 克制:带色调的中性色 + 一种占比 ≤10% 的强调色。产品默认方案;品牌极简风格。
    • 鲜明:一种饱和色占据 30–60% 的表面。以品牌识别为核心的页面默认方案。
    • 完整调色板:设定 3–4 种明确的角色色,并有意使用。品牌宣传活动;产品数据可视化。
    • 浸染:表面本身就是颜色。品牌主视觉、宣传活动页面。
  • “一种强调色占比 ≤10%”这条规则只适用于克制方案。鲜明、完整调色板和浸染方案会有意超出这一比例。不要不加思考地把每种设计都简化成克制方案。
主题

深色还是浅色,绝不能默认决定。不要因为“工具用深色看起来很酷”就选深色,也不要为了“稳妥”就选浅色。

选择前,先用一句话描述具体场景:谁在什么地方、什么环境光线下、以什么心情使用。如果这句话无法决定答案,说明场景还不够具体。继续补充细节,直到答案明确。

“可观测性仪表盘”无法决定答案。“凌晨 2 点,SRE 在昏暗的房间里瞥一眼 27 英寸显示器上的事件严重程度”则可以。依据场景描述判断,而不是依据类别。

排版
  • 正文行长控制在 65–75ch 以内。
  • 通过字号和字重的对比构建层级(相邻层级的比例 ≥1.25)。避免平淡的字号层级。
布局
  • 通过变化间距营造节奏。处处使用相同内边距会显得单调。
  • 卡片是偷懒的做法。只有在确实最适合表达时才使用。嵌套卡片永远不合适。
  • 不要把所有内容都包在容器里。大多数内容不需要容器。
动效
  • 不要为 CSS 布局属性添加动画。
  • 使用指数曲线缓出(ease-out-quart / quint / expo)。不要使用弹跳或橡皮筋效果。
绝对禁用

识别并拒绝。如果你准备使用以下任何一种做法,请改用不同结构重写该元素。

  • 侧边条纹边框。 在卡片、列表项、提示框或警报中,将 border-left 或 border-right 设置为大于 1px 的彩色强调边框。绝不使用。改用完整边框、背景色调、前置编号或图标,或者什么都不加。
  • 渐变文字。 将 background-clip: text 与渐变背景结合使用。它只是装饰,毫无实际意义。使用单一纯色,通过字重或字号来强调。
  • 默认使用玻璃拟态。 纯装饰性地使用模糊效果和玻璃卡片。只在少见且有明确目的时使用,否则就不用。
  • 主视觉指标模板。 大数字、小标签、辅助统计数据、渐变强调色。这是 SaaS 老套设计。
  • 完全相同的卡片网格。 相同尺寸的卡片反复排列,每张都包含图标、标题和文字。
  • 第一反应就是用模态框。 模态框通常是偷懒的做法。先尝试行内方案或渐进式替代方案。
文案
  • 每个词都必须有存在的理由。不要重复标题,也不要用重复标题的开场白。
  • 不要使用破折号。 使用逗号、冒号、分号、句号或括号。也不要使用 --。
AI 味测试

如果有人看一眼这个界面就能毫不怀疑地说“这是 AI 做的”,那它就没通过测试。跨风格的失败情形是上述绝对禁区。各风格专属的失败情形见对应参考。

类别反射检查。 分两个层次进行;第二层能发现第一层遗漏的问题。

  • 第一层: 如果有人仅凭类别就能猜出主题和配色(“可观测性 → 深蓝色”“医疗保健 → 白色 + 青绿色”“金融 → 藏青色 + 金色”“加密货币 → 黑底霓虹色”),那就是第一种训练数据反射。重新设计场景描述和色彩策略,直到答案不再能从领域中一眼看出。
  • 第二层: 如果有人能根据类别和反面参考猜出美学风格(“不是 SaaS 米白风格的 AI 工作流工具 → 编辑式排版风格”“不是藏青配金色的金融科技 → 原生终端深色模式”),那就是更深一层的陷阱。避开了第一种反射,却没避开第二种。重新设计,直到两种答案都不再显而易见。品牌风格的反射式审美禁区列出了目前已经泛滥的风格。

命令

命令类别描述参考
craft [feature]构建先规划,再端到端构建功能reference/craft.md
shape [feature]构建编写代码前规划 UX/UIreference/shape.md
teach构建设置 PRODUCT.md 和 DESIGN.md 上下文reference/teach.md
document构建根据现有项目代码生成 DESIGN.mdreference/document.md
extract [target]构建将可复用的令牌和组件提取到设计系统中reference/extract.md
critique [target]评估通过启发式评分进行 UX 设计评审reference/critique.md
audit [target]评估技术质量检查(a11y、性能、响应式)reference/audit.md
polish [target]优化发布前进行最后一轮质量检查reference/polish.md
bolder [target]优化强化保守或平淡的设计reference/bolder.md
quieter [target]优化弱化激进或过度刺激的设计reference/quieter.md
distill [target]优化提炼本质,去除复杂性reference/distill.md
harden [target]优化为生产环境做好准备:错误、i18n、边界情况reference/harden.md
onboard [target]优化设计首次使用流程、空状态和激活体验reference/onboard.md
animate [target]增强添加有目的的动画和动效reference/animate.md
colorize [target]增强为单色 UI 添加经过策略考量的色彩reference/colorize.md
typeset [target]增强改进排版层级和字体reference/typeset.md
layout [target]增强修复间距、节奏和视觉层级reference/layout.md
delight [target]增强增添个性和令人难忘的细节reference/delight.md
overdrive [target]增强突破常规限制reference/overdrive.md
clarify [target]修复改进 UX 文案、标签和错误消息reference/clarify.md
adapt [target]修复适配不同设备和屏幕尺寸reference/adapt.md
optimize [target]修复诊断并修复 UI 性能问题reference/optimize.md
live迭代视觉变体模式:在浏览器中选择元素并生成替代方案reference/live.md

另有两个管理命令:pin <command> 和 unpin <command>,详见下文。

路由规则
  1. 无参数:将上表作为面向用户的命令菜单,按类别分组显示。询问用户想做什么。
  2. 首个单词与某个命令匹配:加载该命令的参考文件并遵循其说明。命令名之后的所有内容都是目标。
  3. 首个单词不匹配:作为常规设计调用处理。应用设置步骤、共享设计原则和已加载的寄存器参考,并将完整参数作为上下文。

此时,设置(上下文收集、寄存器)已加载;子命令不会再次调用 {{command_prefix}}impeccable。

如果首个单词是 craft,仍先运行设置步骤,但后续流程由 reference/craft.md 负责。如果设置过程将 teach 作为阻塞步骤调用,请先完成 teach,刷新上下文,然后继续执行原始命令和目标。

固定 / 取消固定

固定会创建独立快捷方式,使 {{command_prefix}}<command> 直接调用 {{command_prefix}}impeccable <command>。取消固定会移除该快捷方式。脚本会写入项目中存在的所有 harness 目录。

node {{scripts_path}}/pin.mjs <pin|unpin> <command>

有效的 <command> 是上表中的任意命令。简洁地报告脚本结果。成功时确认新快捷方式;出错时逐字转述 stderr。

评论

支持 Markdown