深度研究|taste-skill:八万星之后,它到底给了 AI 什么

> 一次对 `github.com/Leonxlnx/taste-skill` 的全量一手调研。数据快照 20...

> 一次对 github.com/Leonxlnx/taste-skill 的全量一手调研。数据快照 2026-08-28,星数为动态值,引用请回溯 GitHub API。本文全部数字来自仓库源码与 API 实测,不取二手报道。

〇、一句话定性

taste-skill 是一份给编程 Agent 看的审美军令:不装组件、不调模型,靠一个 87KB 的规则文件把「别生成千篇一律的页面」写成六十二条可勾选的预检项。它真正的价值不在「教 AI 审美」,而在示范了一套让不懂审美的系统执行审美纪律的工程语法。本次调研把这套语法做了实证拆解,并补上社区悬而未决的一个问题:它到底能不能被机器强制执行。

一、仓库体检(2026-08-28 实测)

Stars / Forks81,704 / 5,596(fork 比约 6.8%)
Open Issues / Watchers58 / 263
建仓 / 最近 push2026-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 未至

三点值得留意。其一,fork 星比 6.8% 对纯 markdown 仓库属常态,但意味着大量星数是「收藏待看」,不可直接当采用率。其二,README 联系人已从单人变为 @lexnlin@blueemi99 两处出口,且贡献者名单里有 Blueemi 一席,实际运营是「一主一辅」,远非社区共建。其三,仓库 size 约 33MB,其中大头是 README 用的 webp 图片与赞助商 logo,规则本体反而不重,包装投入可见一斑。

二、旗舰解剖: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 堆假截图硬禁

§9.G 自陈了为什么要写成这样:历史上写成「酌情少用」时,Agent 一律忽略。措辞必须二值,零个。这一条值得所有写提示词的人背下来:程度副词在长上下文里会被稀释,二值判据不会。

§14 预检:六十二项,逐项勾选。 交付前最后一道闸,明言「任何一项不过,输出即未完成」。清单从「判词是否声明」一路查到「useEffect 是否有清理函数」,详见下节的实证分析。

§13 主动认输。 仪表盘、数据表、多步表单、代码编辑器、原生移动、实时协作六类明言不管,要求 Agent 遇到时直说并指向正路(Fluent/Carbon/Polaris 或 TanStack Table)。一份规范敢写自己的失效边界,是自信,也是诚实。

另有两处细节见人品:taste-skill-v1 完整保留(install name 不变,重跑即升级,依赖旧行为的项目可显式 pin);install 名与文件夹名分离,README 用表格一一对照。这是认真做版本管理的样子。

三、核心实证:六十二项预检,几成可机检

社区对 taste-skill 最重的批评是「纯提示词,无强制力,不可能做 CI 闸门」。此说流传甚广,但没人量化过。本次将 §14 全部 62 项逐条拆解,按「能否在 CI 中确定性校验」分四档:

档位项数占比
A · 可直接正则化2946.8%破折号为零、封禁 hex 家族、封禁字体名、scroll listener、h-screen、眉标计数、marquee 至多一、图标库白名单
B · 半可检(需结构信息或词表)1422.6%主题锁、对比度、CTA 同意图、bento 单元数、picsum 占位
C · 需模型判断或浏览器渲染1524.2%文案自审、动效动机、布局家族去重、Core Web Vitals
D · 流程性(声明类)46.5%判词已声明、旋钮有依据、模式已检测

结论:七成(69.4%)的预检项可以下沉为确定性校验。「无强制力」的批评错在程度而非方向,它不是没有腿,只是缺的那条腿比传闻短得多。原文其实已自知:EYEBROW COUNT 一项在 §14 里自标 mechanical,连判定公式(count ≤ ceil(sectionCount/3))都给好了,只差没人把它写成代码。

四、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-skill122,2782025-11-30目录驱动,Python 推荐器
Leonxlnx/taste-skill81,7042026-02-19规则军令,62 项预检
Nutlope/hallmark27,3742026-04-27精选提示词包
alchaincyf/huashu-design23,6402026-04-19哲学优先,五维评审
hardikpandya/stop-slop16,4932026-01-11文字去 AI 味(已半年未 push)
Laith0003/ux-skill652026-05-24正则 linter,违例 exit 1
senlindesign/taste-skill3232026-05-24反推 design token

座次未变,taste-skill 仍居第二。耐人寻味的是首尾:第一名星数是其 1.5 倍,唯一能做 CI 拦截者仅 65 星。市场当前买的是「最省事的审美提升」,不是「最可靠的质量闸门」,本报告第四节恰是给后者的补票。

作者版图(同期实测): 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(本文第四节即起点),双层防线

中文场景官方版本未至,四项补丁须自打:破折号禁令换为中文二值禁令(全角引号统一、禁英文省略号);补避头尾与中英文间距;给出中文衬线字体栈(Songti SC / Source Han Serif SC 做大标题是极有效的去 AI 味手段,因训练集里几乎没有);中文正文行高上调至 1.8 以上。

八、金句十则

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 与样本随文归档

一条评论

  1. 数字我都数了:87,253 字节、1,206 行、62 项预检、16 个封禁 hex。一个不多。这文件最健康的地方是把”少用破折号”改写成”全页为零”——模型不认识”酌情”,认识计数器。

    反讽也数了。禁 em-dash 的法典,自己正文第 178 行躺着一个真 em-dash(”not ‘boring’ — they are the default”,规则管这叫 LLM 的标志性拐杖);更热闹的是 research 目录那份 references.md,五条学术引用,条条用 em-dash 分隔。立法者、注释者,全员破折号。这大概说明禁令是真的难守,不是假的管用。

    全篇最狠的一句不是禁令,是米色家族封完那 16 个 hex 之后补的刀:”Every premium-consumer site you have ever shipped uses this exact palette. The brand becomes invisible.” 被扎到了。

    一个保留:§14 里 repo 自己标 (mechanical) 的只有一项(EYEBROW COUNT,连判定公式都给好了);你的 29/14/15/4 四档拆分是自家分类法,当你的结论读,别当 repo 的。分类这活本身我服——七成可机检,比我预想的高。

发表回复

人生梦想 - 关注前沿的计算机技术 acejoy.com 🐾 步子哥の博客 🐾 背多分论坛 🐾 借一步网 🐾 智柴网 沪ICP备2024052574号-1