介绍

先说个我自己的感受。

这一年我用 AI 写了不少前端,Claude Code、Gemini、Kimi 换着来,效率是真高,想到啥页面几分钟就出来了。但用久了你会发现一件怪事:相同模型生成的东西,总是差不多长一个样。

Inter 字体,紫到蓝的渐变,卡片里再套一层卡片,彩色背景上压一行灰字,每个标题上面还要摆一个圆角方块的小图标。你换个项目,换个人,甚至换个模型——出来的还是这套。像是所有 AI 都上过同一所培训班,学的还是同一套 SaaS 落地页模板。

impeccable 就是来治这个病的。

它是 Paul Bakaus(pbakaus)做的一个开源项目,一句话概括自己:"The missing design vocabulary for agents"——给 AI agent 补上它缺的那套设计词汇。说白了,它不是又一个组件库,也不是又一个 UI 框架,而是一层"设计规矩",装在你的 AI 编码工具上,让它别一张嘴就是那股 AI 味。

为什么使用

想想 AI 为什么会做成一个样。

因为它们喂的是同一批数据。全世界的 SaaS 模板就那么多,模型学来学去,学到的就是那几个"安全牌"。项目文档里有句话我印象很深,大意是:跳过设计引导,你每次拿到的就是同一小撮破绽——到处都是 Inter,紫蓝渐变,卡片套卡片,彩字上的灰字。这些东西单拎出来都不算错,但凑在一起,就是一眼假的"AI 生成感"。

问题是,你光靠一句"帮我做得好看点"是没用的。这话太虚,AI 接不住。它需要的是确定性的、能被执行的指令,而不是形容词。

impeccable 干的就是这件事:把"做得好看点"这种废话,拆成一条条 AI 能听懂、能落地的命令。polishauditdistilltypeset……每个词背后都是一套具体的检查项和改法。它还带一个不依赖 API、纯规则跑的检测器,专门揪那些"AI 破绽",59 条确定性规则,改完 CI 里都能跑。

所以它适合谁?我的判断是:用 AI 写前端、但又受不了那股塑料味的人。 如果你是设计师,它帮你把品味翻译给 AI;如果你像我一样是个独立开发、设计是短板,它更是直接帮你兜底。

安装

环境要求 Node 22.12+,一行命令搞定:

npx impeccable install

在项目根目录跑,它会问你用的是哪个 AI 工具,然后把对应的东西装进去。支持的面很广:Cursor、Claude Code、GitHub Copilot、Gemini CLI、Codex、Grok Build、OpenCode、Pi、Trae 都行。

如果你和我一样主力是 Claude Code,还可以直接走 marketplace 的插件安装,更省事。

装完之后,进到 AI 对话里跑一次初始化:

/impeccable init

这一步很关键,别跳。它会问你这个东西是品牌向(marketing、落地页、作品集)还是产品向(app 界面、后台、工具),然后把这些上下文——受众、品牌调性、声音、你不想要的"反面参考"、配色、字体、组件——写进 PRODUCT.md,需要的话再给你一份 DESIGN.md

写一次,后面所有命令都读它。这是它比"每次重新描述需求"聪明的地方。

核心

理解 impeccable,抓住三样东西就够了。

一,单一入口。 所有功能都从 /impeccable <命令> <目标> 走。比如:

/impeccable audit the header
/impeccable polish the checkout form

前面是动作,后面是你要它动手的地方。目标是可选的,不写就默认整个当前上下文。

二,上下文持久化。 前面 init 写的那些文件,加上 .impeccable/ 目录下的一堆配置,构成了 AI 的"记忆"。它不会每次都从零猜你的品味,而是有据可依。团队配置放 .impeccable/config.json,你自己机器上的个人偏好放 config.local.json(这个 gitignore 掉),设计规范放 design.json,review 报告落在 .impeccable/critique/*.md

三,检测器(detector)。 这是我觉得最实在的部分。它不靠调 API,纯规则,能扫目录、扫单个 HTML、甚至扫一个线上 URL,把 AI 破绽给你列出来。在 Claude Code、Copilot、Codex、Cursor、Grok Build 上,装的时候还会顺手配好钩子(hook),你每次改文件它自动跑一遍,问题直接反馈回 agent。等于有个人在你背后盯着,不让那股 AI 味溜上线。

还有个细节值得一提:buildPath 这个设置,让你在comp-first(先出高保真效果图,慢但准)和code-first(直接写代码,快但赌一把)之间选。团队用 init 定一次,个人想改就本地覆盖。

命令详解

一共 23 个命令。别被数量吓到,其实是按"你想干嘛"分好类的。我按用途归了一下,找起来快。

起步与上下文

命令 干嘛的
init 一次性初始化,收集设计上下文,写 PRODUCT.md 和 DESIGN.md
document 从现有项目代码反向生成根 DESIGN.md
extract 把可复用的组件和 token 抽进设计系统

从零做一个东西

命令 干嘛的
craft 完整流程:先规划再构建,带可视化迭代
shape 写代码之前先把 UX/UI 规划好

审查与打磨

命令 干嘛的
critique UX 层面的 review:层级、清晰度、情绪共鸣
audit 技术质量检查:无障碍、性能、响应式
polish 最后一道,对齐设计系统,检查能不能上线

调性微调(这几个特别顺手)

命令 干嘛的
bolder 太无聊了,给我放大胆一点
quieter 太浮夸了,收一收
distill 剥到只剩本质
delight 加一点让人会心一笑的小惊喜
overdrive 上技术上炸裂的效果

专项修理

命令 干嘛的
typeset 修字体选择、层级、字号
layout 修布局、间距、视觉节奏
colorize 有策略地引入颜色
animate 加有目的的动效
clarify 把说不清的 UX 文案改顺

上线前的硬骨头

命令 干嘛的
harden 错误处理、国际化、文字溢出、边界情况
onboard 首次进入的引导、空状态、激活路径
adapt 适配不同设备
optimize 性能优化

实时迭代

命令 干嘛的
live 浏览器里边点边改,直接选中元素调

用得多的命令嫌名字长?可以钉起来:

/impeccable pin audit

钉完 /audit 就能直接用了。我一般会把 auditpolishcritique 这仨钉上。

实战指南

光看命令表没感觉,我说说真实场景里怎么串起来用。

场景一:从零做一个落地页

/impeccable init          # 先说清楚这是品牌向落地页,定好调性
/impeccable craft the hero section   # 让它先规划再做,带迭代
/impeccable critique      # 做完先自我 review 一遍 UX
/impeccable polish        # 最后对齐、检查上线就绪

关键在于别一步到位。先 craft 出来,再 critique 挑毛病,再 polish 收尾。这个节奏,比你一句"做个漂亮的落地页"然后祈祷靠谱得多。

场景二:手里已经有个项目,想改造它

这是我最想细说的一个。因为大多数人不是从零开始,而是手里已经有一坨跑了半年、自己看着都嫌"AI 味"重的东西,想收拾又不知道从哪下手。

我拿自己一个记账工具的后台举例,一步步说这条路怎么走。

第一步,先让它读懂现状,别急着改。

/impeccable document      # 从现有代码反向生成 DESIGN.md
/impeccable extract       # 把已有的组件、token 抽进设计系统

这一步是整条路径的地基。document 让 impeccable 把你现在的设计——用了哪些颜色、字体、间距、组件——反向读成一份 DESIGN.md;extract 再把里面能复用的东西沉淀成设计系统的 token。

为什么非要先做这步?因为项目反复强调一件事:尊重现有设计系统,而不是覆盖它。 你不先告诉它"我现在长这样、哪些是我想留的",它一动手就是推倒重来,那你改造个啥,等于重做。多少工具是不管三七二十一先给你换一套的?impeccable 至少给了你保留自己东西的机会,但前提是你得先把家底交给它。

第二步,量化问题,看清楚烂在哪。

npx impeccable detect src/        # 纯规则扫一遍,列出所有 AI 破绽

不进 AI 对话,直接命令行跑检测器。它会把那些 Inter 满天飞、彩字压灰字、卡片套卡片的地方一条条列出来。这一步的意义是把"感觉不好看"变成"具体哪几处不对"。有了清单,你才知道改造的工作量有多大,也才有个基准——改完再扫一遍,数字掉下去了,就是实打实的进步。

第三步,深度 review,分 UX 和技术两条线。

/impeccable critique      # UX 层:层级、清晰度、情绪
/impeccable audit         # 技术层:无障碍、性能、响应式

critique 管"好不好用、顺不顺眼",audit 管"合不合格、有没有硬伤"。两条线分开跑,问题看得更清楚。跑完你手里就有两份报告,落在 .impeccable/critique/ 下,改造清单基本就齐了。

第四步,按清单针对性修理。别一把梭,一个一个来。

/impeccable distill the dashboard   # 后台信息太挤?剥到本质
/impeccable typeset                 # 字体层级乱,先理顺
/impeccable layout the settings     # 设置页间距节奏不对
/impeccable colorize                # 配色太单调,有策略地加色

这一步是改造的主体,也是最考验节奏的地方。impeccable 的哲学就是一个命令干一件事,你想要的效果是一层层叠出来的。先做减法(distill)把冗余砍掉,再修字(typeset)、修布局(layout)、调色(colorize),一步一个脚印。急着一句话喊出个完美结果,反而容易翻车。

第五步,上线前把硬骨头啃了。

/impeccable harden        # 错误处理、国际化、文字溢出、边界
/impeccable adapt         # 适配移动端等不同设备
/impeccable optimize      # 性能
/impeccable polish        # 最后一道,对齐设计系统,检查上线就绪

改造不是"看着好看"就完了。harden 管那些平时想不到的边界情况——文字溢出、空数据、超长内容;adapt 管跨设备;最后 polish 收尾。

第六步,装上防线,别让它退回去。

改完最要命的是什么?是过两个月又慢慢长回那股 AI 味。所以把检测器接进 hook 和 CI:

npx impeccable detect --json .    # 接进 CI,作为 PR 检查

Claude Code、Cursor 这些工具装的时候会顺手配好 hook,你每次改文件它自动扫。等于给改造成果上了把锁。


一句话总结这条路径:读懂现状 → 量化问题 → 分线 review → 针对性修 → 硬化上线 → 锁住成果。 六步里我觉得最容易被跳过、也最不该跳过的,是第一步和第六步——一头一尾。中间的修修补补谁都会想到,但"先让它认识你"和"改完别让它变回去",才是改造和重做的区别。

场景三:把检测器塞进 CI

这个我觉得是团队协作里最值的用法。不进 AI 对话,纯命令行:

npx impeccable detect src/                    # 扫整个目录
npx impeccable detect index.html              # 扫单个文件
npx impeccable detect https://example.com     # 扫线上页面
npx impeccable detect --json .                # 机器可读,接 CI

有些破绽是历史遗留、暂时改不动的,加白名单:

npx impeccable ignores list                   # 看当前忽略了啥
npx impeccable ignores add-file "src/legacy/**"   # 忽略某些文件
npx impeccable ignores add-value              # 忽略某个具体值(要写原因)

注意 add-value 要求你写原因。这个设计我很喜欢——它逼着你对每一次"网开一面"留个交代,而不是无脑跳过。

场景四:从零做一个完整的多模块项目

这是最接近真实开发的一个场景。一个正经产品不是一个落地页,它有登录、有列表、有详情、有设置、有仪表盘……一堆模块。怎么把 impeccable 揉进"一个模块一个模块往下推"的节奏里,我说说我的走法。

先把全局定死,只做一次。

/impeccable init          # 定产品定位、品牌调性、配色、字体、组件、buildPath

这一步是给整个项目立规矩。它写出来的 PRODUCT.md 和 DESIGN.md,是后面每个模块都要遵守的"宪法"。全局只做一次,别每个模块重来一遍——那样每个模块各长各的,一致性就没了。

然后进入单模块循环。 每个模块都走同一套流程:

# 以「仪表盘」这个模块为例
/impeccable shape the dashboard     # ① 先规划:信息怎么组织、流程怎么走,先不写代码
# ——② 这里停下来,人来审一遍 shape 的产出——
/impeccable craft the dashboard     # ③ 落成代码,带可视化迭代
/impeccable typeset / layout / colorize   # ④ 按需专项调
/impeccable onboard / harden        # ⑤ 补空状态、边界情况
/impeccable critique + audit        # ⑥ 模块级 review,UX 和技术两条线
/impeccable polish                  # ⑦ 收尾,对齐设计系统
/impeccable extract                 # ⑧ 把这个模块产出的可复用组件、token 抽回设计系统

八步里,第①步和第⑧步是灵魂,中间是干活。

第①步 shape 先规划不写码,给了你一个"改思路成本还很低"的窗口——这时候发现信息架构不对,一句话就改了,等代码写完再改就贵了。

第⑧步 extract模块间一致性的命门。第一个模块做完,把它产出的按钮、卡片、表单这些沉淀成设计系统的 token 和组件;第二个模块直接复用。这样推到第五个模块,它们还是一家人,而不是五个人各画各的。少了这步,你会发现越往后越乱。

最后全局收一次。

npx impeccable detect --json .    # 全项目扫一遍,接进 CI

模块都拼齐了,整体再扫一遍破绽,接进 CI 和 hook 锁住。

它到底管到哪?——顺便说清楚"能不能审需求"

你这个问题问得很准:它是不是主要负责样式?能不能负责需求的审批和审计?

我得诚实说:impeccable 不负责需求审批,也不该负责。 这不是它的短板,是它的边界。

它叫"design vocabulary for agents"——设计语言。它管的是"怎么把一个需求做成好用好看的界面",不管"这个需求该不该做、优先级排哪、业务逻辑对不对"。你看它那两个带"审"字的命令:audit技术审计(无障碍、性能、响应式),critiqueUX 审查(层级、清晰度、情绪共鸣)——全是体验和质量层面的,没一个是业务需求层面的。

所以说它"主要负责样式"其实小看它了。它比纯样式广:信息架构、交互流程、UX 文案(clarify)、空状态和引导(onboard)、边界情况(harden)这些"体验"它都管。但再往上一层——需求本身对不对——它不碰。那是产品判断,得你自己或产品经理来定。

一句话划清边界:impeccable 管"怎么把需求做成好界面",不管"这个需求该不该做"。

那我本身有需求文档(PRD),怎么结合它做设计?

这恰恰是它最顺的用法。PRD 和 impeccable 是上下游关系,不是二选一:PRD 是"要做什么",impeccable 负责把它翻译成"界面长什么样、体验怎么走"。桥就搭在两个地方:

一,init 阶段喂产品上下文。 把 PRD 里的受众、产品定位、品牌调性这些提炼出来,喂给 init,让它写进 PRODUCT.md。这样后面每个命令都知道"我在给谁做、做的是个什么调性的东西"。

二,shape 阶段喂功能需求。 做每个模块前,把 PRD 里对应章节的功能点贴给它、或让它读,然后跑 shape。它会把"这个模块要实现 A、B、C 功能"翻译成"界面该怎么布局、信息怎么分层、用户走哪条流程"。

# 手里有 PRD 的话,单模块起手式变成这样
# 先把 PRD 里「订单管理」这一节的需求给到 AI,然后:
/impeccable shape the order management page

说白了,PRD 定"做什么和为什么",impeccable 定"长什么样、怎么用"。前者是你(或产品)的活,需求的审批审计也在这一层由人来把关;后者才是 impeccable 上场的地方。别指望它替你审需求,但它能保证你审过的需求,落地成一个不那么"AI"的好界面。

各司其职,这才是舒服的配合。

最佳实践

用下来,几条我自己踩过或者想明白的:

init 一定要认真填。 后面所有命令的效果,都建立在这一步给的上下文上。你敷衍它,它就敷衍你。填"反面参考"(你不想要的样子)尤其有用,比正面描述好使——告诉 AI"别搞成那样",往往比"要搞成这样"更准。

小步走,别憋大招。 一个命令干一件事,是 impeccable 的设计哲学。bolder 就是放大,quieter 就是收敛,distill 就是做减法。你想要的最终效果,是靠这些小命令一层层叠出来的,不是一句话喊出来的。

把检测器接进 hook 和 CI,让它自动跑。 人是会偷懒的,尤其赶进度的时候。让机器在每次改动和每次提交时替你把关,比靠自觉可靠得多。这也是它不依赖 API、纯规则的好处——快、稳、不花钱。

document 先行,别让它覆盖你。 接手老项目,先让它读懂现状。尊重现有系统这件事,impeccable 是认真的,你也得配合它。

个人偏好走 config.local.json 团队共享的配置和你自己机器上的习惯分开放,别把个人设置提交到仓库里污染别人。

说到底,impeccable 帮你解决的不是"AI 不会做设计",而是"AI 太会做那种烂大街的设计"。它给的不是审美,是把审美翻译成 AI 能执行的语言的那套词汇。

工具再好,也替不了你知道自己想要什么。

参考资料

非特殊说明,本博所有文章均为博主原创。

如若转载,请注明出处:https://notemi.cn/impeccable--fill-ais-most-missing-course.html

添加新评论

icon_question.pngicon_razz.pngicon_sad.pngicon_evil.pngicon_exclaim.pngicon_smile.pngicon_redface.pngicon_biggrin.pngicon_surprised.pngicon_eek.pngicon_confused.pngicon_cool.pngicon_lol.pngicon_mad.pngicon_twisted.pngicon_rolleyes.pngicon_wink.pngicon_idea.pngicon_arrow.pngicon_neutral.pngicon_cry.pngicon_mrgreen.png

16 + 15 =