深度研究|taste-skill:八万星之后,它到底给了 AI 什么
一次对 github.com/Leonxlnx/taste-skill 的全量一手调研。数据快照 2026-08-28,星数为动态值,引用请回溯 GitHub API。本文全部数字来自仓库源码与 API 实测,不取二手报道。
一次对 github.com/Leonxlnx/taste-skill 的全量一手调研。数据快照 2026-08-28,星数为动态值,引用请回溯 GitHub API。本文全部数字来自仓库源码与 API 实测,不取二手报道。〇、一句话定性
taste-skill 是一份给编程 Agent 看的审美军令:不装组件、不调模型,靠一个 87KB 的规则文件把「别生成千篇一律的页面」写成六十二条可勾选的预检项。它真正的价值不在「教 AI 审美」,而在示范了一套让不懂审美的系统执行审美纪律的工程语法。本次调研把这套语法做了实证拆解,并补上社区悬而未决的一个问题:它到底能不能被机器强制执行。
一、仓库体检(2026-08-28 实测)
| 项 | 值 |
|---|---|
| Stars / Forks | 81,704 / 5,596(fork 比约 6.8%) |
| Open Issues / Watchers | 58 / 263 |
| 建仓 / 最近 push | 2026-02-19 / 2026-08-24 |
| 提交总数 / 贡献者 | 154 次 / 7 人(作者 148 次,占 96%) |
| 许可 | MIT |
| 体量 | 13 个 SKILL.md,旗舰 87,253 字节、1,206 行 |
| 版本状态 | v2 仍标 experimental,CHANGELOG 全部内容挂在 [Unreleased] 下,v2.0.0 stable 未至 |
二、旗舰解剖:v2 的骨架与真接线
旗舰文件十五章加三个附录,与 v1 相比是一次彻底重写。v1 是 226 行的风格指南,v2 膨胀到 1,206 行,多出来的不是形容词,而是结构:先读题、再调参、后动工,最后过闸。
§0 Brief Inference:动工前先交一行的「设计判词」。 要求 Agent 在写任何代码之前,用一句话声明「把这份 brief 读作什么页面、给什么受众、用什么语言、倾向哪个体系」。brief 含混时只许问一个问题,不许问卷式轰炸。这一节管的是病根:大模型不是没审美,是懒得读题直接取分布众数。
§1 三旋钮:8 / 6 / 4 基线,规则真受旋钮门控。 DESIGN_VARIANCE(版式放肆度)、MOTION_INTENSITY(动效强度)、VISUAL_DENSITY(信息密度),三个 1-10 的刻度。关键在「接线」二字:DESIGN_VARIANCE 大于 4 时居中英雄区被禁;VISUAL_DENSITY 大于 7 时通用卡片容器被禁;MOTION_INTENSITY 大于 3 时 prefers-reduced-motion 成为硬性要求;声称 6 却交付静态页,判 broken,反之做不出动效就把旋钮降到 3 交干净静态页,两头都不许糊弄。§1.A 还给了「读题推参」表:公益政务类自动压到 3/2/4-5,Awwwards 实验类自动放到 9-10/8-10。旋钮不是装饰,是全局变量。
§9 负面清单:具名封禁,禁到 hex 与标点。 这是全文工程密度最高的一节,v2 从 v1 的泛泛告诫升级为点名道姓:
| 禁令 | 具名程度 |
|---|---|
| 破折号 | em-dash(U+2014)全页为零,en-dash 作分隔符亦封,唯一豁免是数学负号 |
| 衬线字体 | Fraunces、Instrument Serif 两款 LLM 最爱,明令封禁 |
| 配色 | premium 场景的米色家族封到具体 hex:#f5f1ea、#b08947、#9a2436 等 16 个 |
| 假数据 | John Doe、Acme、Nexus、SmartFlow 点名封禁,数字禁用 99.99%、1234567 这类假完美值 |
| 文案 | 「Quietly in use at」「Field notes」、Stage 1/2/3、城市天气条(LIS 14:23 · 18°C)逐条封禁 |
| 动效 | window.addEventListener('scroll') 硬禁,div 堆假截图硬禁 |
§14 预检:六十二项,逐项勾选。 交付前最后一道闸,明言「任何一项不过,输出即未完成」。清单从「判词是否声明」一路查到「useEffect 是否有清理函数」,详见下节的实证分析。
§13 主动认输。 仪表盘、数据表、多步表单、代码编辑器、原生移动、实时协作六类明言不管,要求 Agent 遇到时直说并指向正路(Fluent/Carbon/Polaris 或 TanStack Table)。一份规范敢写自己的失效边界,是自信,也是诚实。
另有两处细节见人品:taste-skill-v1 完整保留(install name 不变,重跑即升级,依赖旧行为的项目可显式 pin);install 名与文件夹名分离,README 用表格一一对照。这是认真做版本管理的样子。
三、核心实证:六十二项预检,几成可机检
社区对 taste-skill 最重的批评是「纯提示词,无强制力,不可能做 CI 闸门」。此说流传甚广,但没人量化过。本次将 §14 全部 62 项逐条拆解,按「能否在 CI 中确定性校验」分四档:
| 档位 | 项数 | 占比 | 例 |
|---|---|---|---|
| A · 可直接正则化 | 29 | 46.8% | 破折号为零、封禁 hex 家族、封禁字体名、scroll listener、h-screen、眉标计数、marquee 至多一、图标库白名单 |
| B · 半可检(需结构信息或词表) | 14 | 22.6% | 主题锁、对比度、CTA 同意图、bento 单元数、picsum 占位 |
| C · 需模型判断或浏览器渲染 | 15 | 24.2% | 文案自审、动效动机、布局家族去重、Core Web Vitals |
| D · 流程性(声明类) | 4 | 6.5% | 判词已声明、旋钮有依据、模式已检测 |
四、PoC:把话说圆,不如把它跑通
为验证上节结论,本次将 24 条高频规则人工移植为 Python linter(约 150 行,规则逐条标注预检编号),对一份刻意堆满 AI 指纹的落地页样本执行检测:
⛔ [14#05] em/en-dash ban [U+2014]
⛔ [14#35] version footer v1.4.2 · Build 0048
⛔ [14#42] version label in hero V0.6
⛔ [14#41] scroll cue Scroll to explore
⛔ [14#43] section-number eyebrow 00 / INDEX
⛔ [14#40] locale/weather strip LIS 14:23 · 18°C
⛔ [14#37] decoration strip BRAND. MOTION. SPATIAL.
⛔ [09.F] quietly-in-use tell Quietly in use
⛔ [09.D] generic names John Doe
⛔ [09.D] startup-slop brands Acme
⛔ [09.D] filler verbs Unleash
⛔ [14#12] banned serif Fraunces
⛔ [14#13] beige+brass hex #f5f1ea
⛔ [14#60] AI purple gradient linear-gradient(135deg,#6366f1,#3b82f6)
⛔ [14#60] Inter as display font font-family:Inter;font-size:96px
⛔ [14#44] decorative dots • • •
⛔ [14#34] photo-credit deco Field study no. 12
⛔ [14#50] window scroll listener window.addEventListener('scroll'
⛔ [14#54] h-screen h-screen
⛔ [14#21] duplicate CTA intent get in touch / let's talk
⛔ [14#18] eyebrow count 5 > ceil(3/3)=1
⛔ [14#27] marquee max-one 2 found
⛔ [14#09] white-on-white CTA bg #fff + color #fff
24 条规则,23 处违例全部命中,零误报,exit 1。这份 linter 连同样本已随本文归档。它证明一件事:taste-skill 的负面清单本身就是一份现成的 linter 需求文档,需要的只是一次两天的移植。
正确的架构由此清晰:生成侧用 taste-skill 把众数从候选池剔除(上游筑坝),审计侧用下沉后的 linter 在 CI 里 exit 1(下游截流)。单修上游,泥沙俱下;单修下游,返工无穷。原仓库没做这一层,不是没想到,是它的定位只在生成侧,这恰是使用者该自己补的。
五、生态实测:赛道座次与作者版图
竞品实时对标(2026-08-28):
| 仓库 | Stars | 建仓 | 路线 |
|---|---|---|---|
| nextlevelbuilder/ui-ux-pro-max-skill | 122,278 | 2025-11-30 | 目录驱动,Python 推荐器 |
| Leonxlnx/taste-skill | 81,704 | 2026-02-19 | 规则军令,62 项预检 |
| Nutlope/hallmark | 27,374 | 2026-04-27 | 精选提示词包 |
| alchaincyf/huashu-design | 23,640 | 2026-04-19 | 哲学优先,五维评审 |
| hardikpandya/stop-slop | 16,493 | 2026-01-11 | 文字去 AI 味(已半年未 push) |
| Laith0003/ux-skill | 65 | 2026-05-24 | 正则 linter,违例 exit 1 |
| senlindesign/taste-skill | 323 | 2026-05-24 | 反推 design token |
作者版图(同期实测): Leon Lin,慕尼黑,账号 2025-07-03 注册,39 个公开仓库,1,856 粉。同路产品线:unlazy 2,676 星(2026-08-09 建,二十日即成,反偷懒 skill);agentic-ai-prompt-research 2,520 星(各家 Agent 提示词逆向,taste-skill 的研究底座);lumenshaders 341 星;prompt-library 136 星。这是在一条赛道上连续下注且每注皆中的单人开发者,执行力无可疑。
商业化: Kimi(月之暗面)已升为「Open Source Friend」头牌赞助,README 挂 aff 追踪链接,购 API key 返 10% 额度;Vercel OSS Program 徽章在列;interfaces.dev、React Bits、animations.dev(Emil Kowalski)、IMG.LY、Sent.dm 为赞助商。官网无付费墙。README 专门声明「无官方代币」,防伪意识在线。
中文动态(一手新发现): issue #87 已有人提交繁简双语全译 15 个 skill 的完整方案;issue #69 出现社区中文美学预设 cijian(词鉴,克制编辑部风);issue #33 早在 5 月就指出「中文 AI 写作的坏品味模式不同,需要单独清单」。官方中文版虽未落地,但中文社区的自发补全已在路上。
六、审慎:三条保留
其一,research 目录是学术装饰。 references.md 五条引用无一附链接或 arXiv 编号,逐条核查:EmotionPrompt 真实但数字张冠李戴;LazyBench 真实但性质是多模态问答基准;Compounding Error Avoidance 查无实据;Winter Break Hypothesis 是社区轶事而非统计研究。最有说服力的旁证:这份研究目录通篇用 em-dash 行文,一个禁 em-dash 的项目,最老的房间里满墙都是。禁令在后,装饰在前,时间线不会撒谎。规则的有效性来自作者的生产测试,与论文无关,故引用其「研究结论」须一律回溯原始文献。
其二,token 常驻成本不低。 旗舰 87KB 约 1.7 万 tokens,全家族合计约 5 万。issue #67 提议渐进式披露(拆 12KB 核心 + 按需引用,缩小七倍),挂了两个月零回复。上下文紧张时,长指令块恰是被优先截断的对象,规则可能在不知情时静默失效。
其三,v2 未稳。 全部变更挂在 [Unreleased],experimental 字样明标,措辞随时可动。Issue #86 指出的 §3 框架绑定(React/Next/Motion/GSAP)与 README 的 framework-agnostic 宣称之矛盾,至今未解。要锁版本等 v2.0.0 stable,或干脆 pin v1。
七、落地:三种取法与中文补丁
| 场景 | 建议 |
|---|---|
| 落地页 / 作品集 / 营销页 | 蒸馏装:抽 §0 判词、§1 旋钮、§9 负面清单、§14 预检约 12KB,保九成效力,成本三成 |
| 存量改版 | 装 redesign-skill(先审计后动工,URL 与埋点保全清单本身就值) |
| 禁占位符、要完整输出 | 装 output-skill,全家族最便宜(2.6KB)也最实用的一枚 |
| 后台 / 表单 / 数据表 | 不装,§13 自己都认输,走 §2 指向的 Fluent/Carbon/Polaris 正路 |
| 一致性要求极高 | 上游蒸馏装 + 下游自建 linter(本文第四节即起点),双层防线 |
八、金句十则
1. 「少用」死于稀释,「零个」活于可数。(§9.G 自陈的措辞规律) 2. 声称有动效,就必须真的动;做不出,就把旋钮降到 3 交干净静态页。(Motion claimed, motion shown) 3. 六十二项预检里,四成六可正则,两成三半可检,它缺的那条腿,只有传言的三分之一长。 4. 提示词是上游筑坝,linter 是下游截流;单修上游,泥沙俱下。 5. 星数是热度,fork 是意图,issue 是用功的证据;6.8% 的 fork 比已经把话说清了大半。 6. 研究目录里躺着满纸 em-dash,禁令在后,装饰在前,先后顺序不会撒谎。 7. 英雄区里用 div 堆的假界面,是大模型设计的第一破绽。(原文:the #1 LLM-design Tell) 8. 一个 2.6KB 的 output-skill,管的是最贵的问题:说一半。 9. 品味活在模型里,垃圾活在输出里;提示词斗品味,linter 斗垃圾。(竞品团队语,全赛道最清醒) 10. 若 brief 属于我认输的六类,就明说,并指向正确的工具。(§13,敢写失效边界的规范才可信)
结论
taste-skill 的真价值是一条可迁移的工程语法:把不可判定的「品味」拆成一串可判定的机械断言,用二值禁令堵住模型的解释空间,用旋钮门控让规则随场景伸缩,用预检清单把质量意识外化为可勾选的动作。八万星的热度有泡沫,学术引用有装饰,框架中立有水分,但语法本身是真的,且本次实证表明其中七成可以下沉为确定性校验。对待它的正确姿势不是供奉也不是拆穿,而是取其语法、补其短板:生成侧装蒸馏版,审计侧跑自建 linter,两层防线各司其职。
*仓库 github.com/Leonxlnx/taste-skill | 官网 tasteskill.dev | MIT | 数据快照 2026-08-28 | PoC linter 与样本随文归档*