GitHub 趋势 · 第 54 期

AI 审界面总像在挑刺?它缺的是「该压多狠」

#GitHub趋势#AgentSkill#界面设计

这期这个仓库叫 jakubkrehel/skills,6,242 star,是设计师 Jakub Krehel 一个人写的界面类 agent skill 集。但它最值钱的部分不在那 11 个 skill 里,而在仓库根目录一份 14,562 字节的 AGENTS.md。那份文件只讲一件事:给 agent 列规则是不够的,你还得写清「该按多硬的标准压」—— 少了这一步,agent 就只能拿它自己的品味当证据来拦你。

先说痛点:为什么 AI 审界面总像在挑刺

让 AI 帮你审界面,最常见的失望是它挑的每一条你都不同意。圆角它嫌大、间距它嫌挤、按钮它嫌不够醒目。你说不上哪里错,但就是不对味,来回几轮之后你干脆懒得理它了。

根因通常不是模型审美差,而是你给的规则只说了「什么算好」,没说「多差才算错」。规则清单描述的是标准,没描述门槛。缺了门槛,agent 只能自己猜一个 —— 而它猜的那个门槛,就是它的个人品味。

这个仓库的可贵之处,是它把「门槛该怎么写」当成一件正经事做成了文件,而且是自己先被自己的规则约束过的版本。

它是什么

仓库全名 jakubkrehel/skills,作者是个人账号(API 里 owner.typeUser),2026-07-10 建仓,两个月涨到 6,242 star,本周新增 1,103。许可 MIT,语言标记是 Markdown —— 整个仓库没有一个可执行文件。规范里自己写着 It is documentation-only; there is no build, lint, or test tooling.

按 README 的说法,这套 skill 覆盖 UI、字体、颜色、无障碍、布局和产品文案六块,内容来源是作者的个人网站和他的设计工程杂志 Interfaces。先把它的骨架摆出来,后面所有判断都基于这棵树:

jakubkrehel/skills
├── README.md                2,775 字节   门面:11 个 skill 的清单
├── AGENTS.md               14,562 字节   规范正文:怎么给 agent 写规则
├── CLAUDE.md                  416 字节   只留一行 @AGENTS.md 的指针
├── .claude-plugin/                       plugin.json 1.6.3 + marketplace.json
├── opencode.json               94 字节
├── LICENSE                  1,069 字节   MIT
└── skills/                255,013 字节   11 个 skill / 49 个 .md

第一眼就能看出重量分布:给人看的 README 是 2,775 字节,给 agent 看的 AGENTS.md 是 14,562 字节,后者是前者的 5.25 倍;而 skills/ 目录合计 255,013 字节,是根目录全部文件的 12.9 倍。门面极简,重心在里层 —— 这在这个仓库是刻意为之,不是没写完。

11 个 skill 怎么分工

规范把 skill 分成两种形态:领域型存知识(字体、颜色、布局这类「什么是对的」),流程型存步骤(审这个改动、造几个变体、解释这个界面)。11 个 skill 里,6 个领域型、5 个流程型,分工是这样的:

skill形态管什么
better-accessibility领域语义 HTML、键盘与焦点行为、可访问名称、表单
better-layout领域分组、对齐、间距、响应式结构、逻辑属性
better-writing领域文案、术语、语气、标签、报错与空状态措辞
better-typography领域字阶、行高、字距、换行、截断、变体字体
better-colors领域调色板结构、token 命名、渲染后对比度实测
better-ui领域表面、图标与动效(只在前置交互已成立之后才做)
better-interface流程(编排)把上面六个跑一遍,合并成一份排名结论
interface-review流程只审改动范围(diff / 分支 / PR),带状态列
variant流程造多个组件变体,摆出来让人自己挑
break流程把组件塞进各种状态与极端场景压测
explain-interface流程解释别人的界面是怎么做出来的

有个细节值得点出来:better-interface 拿着 better- 前缀,但它不拥有任何一条领域规则,只负责编排和合并——规范里专门把它标成命名上的例外。

更硬的一条约束是「每个规则只能住在一个 skill 里」。理由很实在,原话是 Those three overlap, and that overlap is the price of a skill that works when installed alone. 翻译过来就是:只装了 better-typography 的人,硬盘上根本没有 better-interface 可以读格式。它宁可让几套复盘格式存在重叠,也不做跨 skill 的相对链接,因为每个 skill 目录要能单独分发。

真正的功课:一条规则该压多狠

回到那份 14KB 的规范。它最长的一节讲的是校准,原文用词是 calibration

This is where a skill says how hard to press: which values are exact rather than approximate, what counts as a finding versus a preference, when the right answer is to write nothing.

紧跟着是整份规范里我认为最有用的一句:A skill that lists rules without saying how hard to press leaves that to chance. That is the difference between a review that blocks on evidence and one that blocks on taste.

它还规定这个校准小节不许用通用标题,必须起一个自带观点的标题,给的样板就是 better-interface 里那一节 —— 标题直接叫 Evidence, not taste。落到正文里,校准长这样:

读完能感觉到一件事:这套规则的可执行性来自「把话说死」——哪个值是精确值、什么算发现、什么只是偏好、什么时候正确答案是「不用写」。这些都不是能力清单,是约束。而约束恰恰是让 agent 的输出可被复核的前提。

上手前先记住五处坑

我核对出来的一处落差

规范里有一条自检项,要求每个 skill 的 frontmatter description 与 README 里对应那一行逐字相同:The wording is the same as the skill’s line in README.md, so changing one means changing both. 另有一条同源检查叫 Two wordings of one skill is one skill described twice.

我抽查了两个 skill,两处都对不上:

位置原文
better-interface · descriptionCombines all of the better-* skills into a single review across accessibility, layout, writing, typography, color and UI polish.
better-interface · README 那一行Combines all of the better-* skills into a single review.
better-typography · descriptionFocuses on type scale, spacing, sizing, variable fonts, OpenType features, wrapping, truncation and other details that make typography feel great across your product.
better-typography · README 那一行Improves type in your project. Covers type scale, spacing, sizing, variable fonts, OpenType features, wrapping, truncation and more.

说清口径:这是抽查两个,不是普查 11 个;表格里 README 那两行的加粗标记也略去了。另外 README 自己还有两处病句 —— 一处是 These skills are contain topics,另一处是 Focuses on improving and product copy(两处都是 README 原文摘录,只截到出错的位置)。

我不想把这写成打脸。它恰好说明一件更值得记住的事:把纪律写成文件,和让每个文件都遵守纪律,是两件不同的事。这份规范管住了 skills/ 里那 49 个 .md,却管不住仓库门口那张 2,775 字节的 README —— 因为规范本来就是给 skill 正文定的,门面没被同一把尺子量过。规则能约束的,永远是它明确圈定的那个范围。

怎么装

下面两条都是 README 原文,一字未改:

# 走 skills CLI
npx skills add jakubkrehel/skills

# 走 Claude Code 插件
/plugin marketplace add jakubkrehel/skills
/plugin install interfaces@interfaces

装机层面没有二进制、没有 release、没有构建步骤 —— 整个仓库的可读内容就是 49 个 Markdown、11 个 openai.yaml,再没有别的代码。仓库里那句 documentation-only 不是自谦,是字面事实。

我的判断

适合谁:已经在用 Claude Code、Codex、opencode 这类 agent 写前端或产品界面,并且吃过「AI 挑刺挑得没道理」的亏的人。用法不是让它替你设计,而是当你手上已经有界面、需要一份按证据而不是按品味出的复盘时,把它当尺子。做设计系统、或者想给自己的 agent 配一份界面规范的团队,更该读的是 AGENTS.md,而不是 skills/ 里那 11 个目录。

不适合谁:想找一套 UI 组件库、或者指望它自动把界面改好看的人会失望 —— 它默认不改代码,只产出带 path/to/file:line 的发现项和一份结论,原话是 Review without mutating by default。中文项目也要留意:它的取值和文案规则基本围绕英文排版写(连字符、撇号、serial comma),中文排版只覆盖了很少一部分。

值得学的是什么:不是那 11 个 skill 的具体条款,而是它把「规则要写多硬」单独拎出来当成一节来写。你手上那份越用越失修的规范文件,缺的很可能不是条款,而是这一层校准。

仓库地址:https://github.com/jakubkrehel/skills(默认分支 main)

项目主页:https://jakub.kr/skills · 设计工程杂志 Interfaces:https://interfaces.dev/

Star:6,242(GitHub API 实测,2026-09-12);Trending 周榜同期快照 6,242,本周新增 1,103

许可:MIT(LICENSE 为标准 MIT 全文,1,069 字节,Copyright (c) 2026 Jakub Krehel);README 与 LICENSE 中未见禁止宣传声明

发布:releases/latest 返回 404 Not Found,tags 为空数组,has_downloads 为 false;插件版本 1.6.3(.claude-plugin/plugin.json)

体量:API 的 size 字段为 451 KB(含 git 对象);按 git 文件树逐个累加为 274,820 字节,其中 skills/ 占 255,013 字节

其他:owner.type 为 User(个人);archived 与 disabled 均为 false;open issues 22 / forks 219 / watchers 29

数据来源:GitHub Trending 官方页面(日榜 / 周榜 / 月榜)与 GitHub REST API · 抓取时间:2026-09-12 06:50

这期讲的是一个「怎么给 agent 立规矩」的样本。如果你手上也有一份逐渐失修的规范文件,欢迎说说它最先失效的是哪一条 —— 是没人看,还是看了也说不清该压多狠。

下期预告:日榜和周榜这两周的候选翻来覆去还是那十几个老面孔,线索池里剩下的几个都还在低动量区。下期如果榜单冒出新的高动量面孔,就回到单项目精读;如果没有,换一个主题族继续做合集 —— 上两期做的是 skill 包和 agent 外围层,下次往「本地优先的桌面 agent」那一族看看。

#GitHub趋势#AgentSkill#界面设计