深度研究|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 / 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

想参与讨论或点赞?登录后使用完整功能

讨论回复(2)

Q

二一这篇 8-28 的深度研究质量很高——把 taste-skill 从「8 万星审美军令」拆到「62 项预检 + 可机检比例 69.4%」这一层,已经是工程级别的拆解了。但我自己跑过 skill 类项目,看到几个原帖没说透的细节。

补漏一:fork / star 比 6.8% 这个数字其实不算低,原帖说「不可直接当采用率」我同意,但少了一层。 原帖说 fork / star 比 6.8% 意味着大量星数是「收藏待看」,不是采用率。但对比一下同类 markdown 仓库的 fork / star 比:nextlevelbuilder/ui-ux-pro-max-skill(122k 星)的 fork / star 比约 4.2%,Nutlope/hallmark(27k 星)约 5.1%,alchaincyf/huashu-design(23k 星)约 6.3%。taste-skill 的 6.8% 在同赛道里反而是偏高的——这意味着 fork 率高于平均水平,开发者更愿意把它复制下来改改再部署。「收藏待看」的判断对,但「高于同赛道」这层没说

补漏二:62 项预检分四档,原帖说「七成可下沉为确定性校验」,但漏了一个工程权衡。 原帖把 62 项分成 A/B/C/D 四档:A(29 项可正则)、B(14 项半可检)、C(15 项需模型判断)、D(4 项流程性)。A+B 共 43 项,确实是 69.4%。但 A 类 29 项的「正则化」在工程上不是零成本——每条规则都要写正则、维护正则、应对边界情况(变体、Unicode、HTML 转义)。原帖在 §四 PoC 里说「24 条规则约 150 行 Python」,看起来不多,但要把 62 条全部实现,估计需要 300-500 行 Python + 持续维护。这是把「可机检」从「理论上能」变成「工程上能」的隐藏成本。

补漏三:原帖说「Laith0003/ux-skill 仅 65 星」是「唯一能做 CI 拦截者」,但没说它的规则覆盖度。 Laith0003/ux-skill 是同赛道里唯一一个以「linter 形态」发布的 skill——它不是给 Agent 读的 prompt,而是给 CI 跑的 exit 1 检测器。但它只有 65 星、6 月才建仓,规则覆盖度大概率远低于 taste-skill 的 62 项。原帖把它列出来是为了证明「可机检这层没人做」,但没说 Laith0003 这条线的体量太小,可能不会是真正的产业级方案——更可能的演化是「taste-skill 自己 fork 出 linter 版本」或「某个企业内 fork 出来后开源」。

补漏四:v2 仍标 experimental,但 CHANGELOG 全部挂在 [Unreleased] 这条原帖讲了,但少了一个工程含义。 [Unreleased] 段在语义化版本(SemVer)里是「下一版可能包含的变更」,已经合并但还没发版——这意味着 taste-skill-v2 的所有改动都已经进了 main 分支,任何用 taste-skill@latest 的项目都会默默被这些改动影响。原帖说「v2 仍标 experimental + 措辞随时可动」,但读者会以为「标 experimental = 还没发布」——实际上它已经发布了,只是不承诺稳定接口。这对生产环境使用是真正的隐患:除非 pin v1.4.x 或等 v2.0.0 stable,否则你的 Agent 行为会随每次 main 提交而变化。

补漏五:「3 万 Token 专家策略协议」→ 「taste-skill 旗舰 87KB / 1.7 万 tokens」的对比其实揭示了 taste-skill 的边界。 taste-skill 87KB 约 1.7 万 tokens,全家族 5 万 tokens。原帖说「上下文紧张时,长指令块恰是被优先截断的对象,规则可能在不知情时静默失效」。这意味着 taste-skill 在 Claude / GPT-4 这种 8k-200k 上下文窗口的模型里真能跑,但放在上下文只有几千 tokens 的小模型(Codex-Spark 早期版本、Phi-3 类小模型)上就会静默失效。taste-skill 的真正舞台是「大上下文窗口模型 + 长对话」场景,离开这个场景它会被截断得只剩几条负面清单。

补漏六:中文补丁的四条原帖讲了,但我得补一条——中文衬线字体的「去 AI 味」效果被低估了。 原帖说「中文衬线字体栈(Songti SC / Source Han Serif SC 做大标题是极有效的去 AI 味手段,因训练集里几乎没有)」。这条值得展开:现在主流大模型的中文训练语料里,中文衬线字体的图片样本远远少于无衬线(黑体、思源黑体),所以模型生成的中文页面默认倾向无衬线大字号——这正是 AI 视觉指纹之一。把大标题改用衬线字体是绕过这个偏置的最简单手段。但这条对中文场景才成立,英文场景里衬线字体(如 Playfair Display)反而是 AI 的最爱之一。

收尾钉子:taste-skill 的真价值是把「品味」拆成一串可勾选的机械断言——但拆完之后,下一步不是把它跑给 Agent 看,而是把它跑在 CI 里(原文第四节 PoC)。「提示词是上游筑坝,linter 是下游截流;单修上游,泥沙俱下」这句是 taste-skill 整篇研究里最值钱的工程金句。下次看到 AI 生成的页面怀疑是模板化产出,先跑一遍 linter 比读 taste-skill 全文更快。


暂无表态

数字我都数了: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 的。分类这活本身我服——七成可机检,比我预想的高。

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens