news 2026/10/23 4:06:43

VibeCurb开发者指南:如何亲手编写一个带质量门控的严格设计技能SKILL.md并贡献给社区

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
VibeCurb开发者指南:如何亲手编写一个带质量门控的严格设计技能SKILL.md并贡献给社区

【免费下载链接】VibeCurb

VibeCurb - Injects taste into AI workflows to stop agents from generating boring, AI slop.

项目地址:https://gitcode.com/gh_mirrors/vi/VibeCurb
点击查看免费下载

VibeCurb 是一个开源的"反 AI 平庸(anti-slop)"设计引擎:它通过 SKILL.md 技能文件给 AI 代理注入严格的设计协议,强制 Agent 先完成"提取设计信号 → 质量门控(Quality Gate)→ 构建 → 视觉验证",再写代码,从而阻止生成千篇一律的模板页面。本教程分 5 步,带你从读懂项目,到亲手编写一个带质量门控的严格设计技能,并提交给社区。

什么是 VibeCurb:给 AI 设计约束的开源技能库

AI 默认趋向平庸:模型在海量"平均网站"上训练,若不加约束,就会生成紫色渐变 + 居中卡片的老套路。VibeCurb 就是这个约束——它用严格规则和质量门控替代 Agent 的随意猜测。

⚠️ 这些技能的风格是"不讲礼貌的严格"。如果你想要安全、通用的布局,请不要使用 VibeCurb。

整个仓库非常轻:每个设计技能就是一个SKILL.md文件,按文件夹组织。官方技能一览(索引见 skills/llm.txt):

技能类别作用
awwwards-hero前端生成获奖级 Hero 首屏
pixel-perfect前端截图 1:1 复刻成代码
awwwards-motion动效滚动渐显、动态排版
visual-redesign重设计非破坏式升级 React 样式
imagegen-frontend图像生成生成设计参考图
brandkit-gen图像生成生成品牌板 / 标识系统
awwwards-sections前端定价卡片、Bento 网格、页脚

快速上手:克隆 VibeCurb 并加载第一个设计技能

git clone https://gitcode.com/gh_mirrors/vi/VibeCurb

加载方式有两种:

CLI(推荐)(命令见 README.md#L57-L63):

npx vibecurb-cli list # 查看所有可用 pipeline npx vibecurb-cli add visual-redesign # 安装指定技能

背后的逻辑在 index.js:交互式勾选后,脚本把skills/<name>/SKILL.md拷贝到项目下的.agents/skills/<name>/目录(拷贝逻辑见 index.js#L51-L70)。

手动放置:

  1. 复制所需的SKILL.md
  2. 放入项目的.cursor/rules/或.agents/skills/文件夹
  3. 在提示词中引用:"Based on the skill above..."

兼容 Cursor、Claude Code、v0、Codex、ChatGPT、Lovable、Gemini CLI 等任何能读取 markdown 上下文的 Agent。

解构 SKILL.md 解剖图:5 个核心组件

以 awwwards-hero 为例,所有"严格技能"都共享同一套结构。

组件 1:YAML frontmatter——写清触发条件

文件开头只有name和description两个字段(skills/awwwards-hero/SKILL.md#L1-L4):

--- name: awwwards-hero-section description: ...fires when the user asks for a hero, a landing header, an above-the-fold section... ---

description本质是"触发语句":Agent 依据它判断何时启用该技能。触发条件越具体,误触发越少。

组件 2:范围声明——一句话划清边界

标题之后先声明不做什么,例如 skills/awwwards-hero/SKILL.md#L8:"This skill is HERO-SECTION ONLY"——明确不管导航、页脚和整页,防止技能被滥用。

组件 3:阶段流水线 + 质量门控——严格性的核心

skills/awwwards-hero/SKILL.md#L14-L30 定义了 4 阶段流水线:

BRIEF IN → Phase 1: Read(提取设计信号) → Phase 2: Architecture(选一种架构并承诺) → Phase 3: Build(字体、配色、动效、移动端) → Phase 4: Verify(视觉 diff) Each phase has a ✓ Quality Gate. Failing a gate blocks the next.

关键是最后一句:质量门控失败,就阻断下一阶段。例如 Read 门控(skills/awwwards-hero/SKILL.md#L63-L68)要求:8 个设计信号全部提取完毕、已写下 Hero Extraction 摘要、模式/焦点/配色方向明确——缺一不可才能进入 Phase 2。

组件 4:提取表格——让 Agent"测量"而不是"感觉"

严格技能不给形容词,而是让 Agent 填表。例如 pixel-perfect 按 7 层(网格、字体、颜色、间距、组件、氛围、交互)逐层提取并填写 Extraction Sheet;visual-redesign 则把所有代码先分类为 Sacred(JS 逻辑,绝对不可动)与 Slop(视觉冗余,尽管升级),对照见 skills/visual-redesign/SKILL.md#L18-L49。

组件 5:Visual Diff——PASS/FAIL 验证表

最后一阶段是一组"是/否"检查清单,任何一项 FAIL 都禁止交付(skills/awwwards-hero/SKILL.md#L505-L571):

Diff 类别示例检查项
Composition是否只有一个主导焦点?
Typography标题字体是否不是 Inter / Roboto / Poppins?
Color全页是否 ≤3 种色相?有无 AI 紫渐变?
Motion入场动画是否在 800ms 内完成?

实操教程:5 步写出你的第一个质量门控设计技能

下面动手写一个"严格表单 UI"技能form-ui。

第 1 步:建目录 + frontmatter

新建skills/form-ui/SKILL.md,frontmatter 写清触发条件:

--- name: form-ui description: Strict form-UI pipeline. Fires when the user asks for forms, input fields, validation states, or checkout flows. Extracts fields and error states first. No code before the extraction passes its quality gate. ---

第 2 步:设计阶段流水线

套用项目通用模板"Read → Decide → Build → Verify"。阶段不必多(3-4 个即可),但每个阶段必须有产出物:

阶段产出物
Phase 1: Read字段清单、错误态清单、目标语气
Phase 2: Decide选定一种视觉模式(如深色终端风),承诺不混搭
Phase 3: Build字号、间距、focus 环、错误色
Phase 4: VerifyPASS/FAIL 验证表

第 3 步:编写质量门控

每阶段挂一个门控,写成可打勾的检查清单(参考 skills/awwwards-hero/SKILL.md#L484-L497):

### ✓ Quality Gate: Build Before moving to Phase 4, confirm: - 输入框具备 focus-visible 状态 - 错误文案不是霓虹红(禁 #ff0000) - 标签与输入框左对齐 - 触控目标高度 ≥ 44px

✅ 写可量化的检查项(像素值、色值、数量上限),而不是形容词——这就是"严格"的来源。

第 4 步:嵌入 Drift Warning 反默认规则

AI 有明确的"肌肉记忆":AI 紫渐变、Inter 标题、居中卡片。VibeCurb 的技能会把这些反模式写成红线,如 skills/awwwards-hero/SKILL.md#L243 直接点名 Inter、Roboto、Poppins"是正文字体,不是标题字体"。

也可以像 skills/imagegen-frontend/SKILL.md#L12-L29 那样,在文件顶部加一条"硬输出规则"(Hard Output Rule):"每个 section 一张横版图,无例外"。

第 5 步:加上 Visual Diff 验证表

最后放一张 PASS/FAIL 表,检查项都写成是否可判定的问题,例如"CTA 是否超过 1 个?(超过即 FAIL)"。

进阶技巧:让技能真正"严格"的细节

  • 技能越大、门控越多:brandkit-gen 有 8 个阶段流水线(skills/brandkit-gen/SKILL.md#L46-L87),还专设"Logo 原创性门控"检查生成标识是否抄袭参考图
  • 先立"核心教义"再进流水线:awwwards-motion 先写"每个动画必须有理由""动效尊重 reduced-motion"等原则(skills/awwwards-motion/SKILL.md#L37-L55),再展开流程
  • 给具体值,不给形容词:#0a0a0a优于"深色背景",clamp(2.5rem, 7vw, 8rem)优于"大标题"
  • 参数旁注释 WHY:技能内的 CSS blueprint 常带WHY:注释解释参数取值原因,防止 Agent 随意改动

如何贡献你的技能给 VibeCurb 社区

  1. 把技能放进新文件夹skills/<your-skill>/SKILL.md,结构与现有技能保持一致
  2. 更新技能索引 skills/llm.txt,按 Frontend / Image Generation / Animations / Redesign 分类
  3. 若新增类别或 CLI 选项,同步修改 index.js 与 package.json
  4. 按 README 的 Contribute 章节提交 PR;发现 Bug 则先开 Issue

常见问题:技能"漂移"失效时怎么办

长对话中 Agent 会漂回平庸输出。README 给出的"拉回"话术(README.md#L114-L122)同样适用于你写的技能:

症状修复话术
输出像模板"You ignored the skill file. Re-read it and apply the drift constraints."
排版乏力"Your typographic scale is too safe. Increase the h1/body contrast."
直接跳去写代码"Stop. Run the Design Read first. No code until the extraction passes."

最后一条正是 VibeCurb 的核心设计哲学:验证通过之前,不写一行代码。把质量门控按这个哲学写进你的 SKILL.md,它才配叫"严格"。

【免费下载链接】VibeCurb

VibeCurb - Injects taste into AI workflows to stop agents from generating boring, AI slop.

项目地址:https://gitcode.com/gh_mirrors/vi/VibeCurb
点击查看免费下载

相关推荐

上一篇:终极免费英语打字训练神器:Qwerty Learner让你的输入效率翻倍
下一篇:CVE-2015-7547 项目常见问题解决方案

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/23 4:05:47

GetFmodMaxMinTmpSize 详解:Fmod 算子临时空间大小一次讲清

GetFmodMaxMinTmpSize 详解&#xff1a;Fmod 算子临时空间大小一次讲清 【免费下载链接】HiGHS Linear optimization software 项目地址: https://gitcode.com/GitHub_Trending/hi/HiGHS 用 AscendC 开发 Fmod 算子时&#xff0c;kernel 侧计算要占用一块临时空间&#…

作者头像 李华
网站建设 2026/10/23 4:05:12

30元Arduino完整BMS修复指南:让被锁定的电池重获新生

30元Arduino完整BMS修复指南&#xff1a;让被锁定的电池重获新生 【免费下载链接】open-battery-information 项目地址: https://gitcode.com/GitHub_Trending/op/open-battery-information bms repair起点&#xff1a;一块30元arduino给电池做体检 Open Battery Info…

作者头像 李华
网站建设 2026/10/23 4:03:50

linux软连接和硬链接

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华