已发布资料基础官方资料 + 个人实践
·6 分钟0 次阅读AI 工具实践
文章/AI 与智能体

前端 Skill 三件套怎么分工

在同一个 Next.js 页面上依次使用 frontend-design、React Best Practices 与 Web Design Guidelines,比较设计、性能和可访问性审查的分工、上下文成本与复现风险。

#Codex#Frontend#Next.js#React#可访问性
文章目录
  1. 一分钟概览
  2. 1. 三个 Skill 的机制完全不同
  3. 2. Baseline:能用,但没有明确理由
  4. 3. frontend-design:先写方向,再写代码
  5. 4. React Best Practices:最有价值的结果可能是“不改”
  6. 5. 为什么不读取完整 AGENTS.md
  7. 6. Web Design Guidelines:在线最新不等于可复现
  8. 7. UX 与 a11y 阶段修了什么
  9. 8. 构建与输出数据
  10. 9. 什么时候只用其中一个
  11. 10. 我会保留的工作流
  12. 参考资料

“帮我把这个页面做得更好”其实包含至少三个不同问题:

text
它有没有清楚、具体的视觉方向?
React / Next.js 实现有没有性能问题?
键盘、语义、对比度和 UX 是否合格?

把三个问题交给同一个万能 Skill,结果通常是设计建议、性能口号和无障碍清单混在一起。更可控的做法是拆成三次工作:

  1. frontend-design 建立视觉方向;
  2. Vercel React Best Practices 审查实现与性能;
  3. web-design-guidelines 审查可访问性和 UX。

本文在一个独立 Next.js 16 页面上按这个顺序执行,并保存 baseline、diff、构建记录、两种视口截图和 axe 结果。

项目说明
内容类型三种 Skill 机制对照与分阶段前端实验
适合读者想让 Codex 改前端页面,又不希望设计、性能和 UX 混成一轮的开发者
阅读 / 跟做时间约 12 分钟 / 30–45 分钟
前置条件可运行 Next.js production build,并能做桌面、手机与 a11y 检查
页面中文 Agent Skill 候选目录
框架Next.js 16.2.10、React 19.2.7
frontend-designanthropics/skills@b29e7cf
React Best Practicesvercel-labs/agent-skills@7c180d9
Web Design Guidelines同上,在线规范另固定到 4e799d4
视口1440×900、390×844
构建baseline 与 final 均通过 production build
浏览器验收console 0 error、键盘焦点通过、axe violations 0
核对日期2026-08-01

一分钟概览

  1. frontend-design 负责决定“长什么样”,不是性能审查器。
  2. React Best Practices 是 70+ 条分级规则库,最容易被误用成一次性加载 112 KB 全集。
  3. Web Design Guidelines 的 Skill 只有 39 行,但每次会联网取最新规范,复现风险最大。
  4. 本例视觉阶段改变最多;性能阶段最重要的结果是拒绝无收益优化;UX 阶段修掉真实 P1/P2。
  5. 三个 Skill 不必总是一起用,先判断问题属于哪一层。

1. 三个 Skill 的机制完全不同

Skill入口结构核心机制主要风险
frontend-design单个 55 行 SKILL.md设计方向、token、排版、布局、自我批评大幅视觉改写
React Best Practices149 行入口 + 72 个 rule 文件分优先级按需读取具体性能规则误加载 112 KB 完整 AGENTS.md
Web Design Guidelines39 行入口每次从远程 URL 获取最新 review 规则同一 revision 结果仍会变化

因此它们对上下文的影响也不同。

frontend-design 主要成本是一次读取约 8.3 KB 的设计约束。React Skill 的入口约 7.4 KB,但完整 AGENTS.md 是 112,071 bytes、3,810 行。Skill 文案写“70 rules”,固定 revision 实际有 72 个 rules/*.md;这类小漂移也说明统计数字需要对应 revision。

Web Design Skill 的本地内容最小,却把真实规则移到了网络。上下文占用可能不大,可复现性成本却最高。

2. Baseline:能用,但没有明确理由

基线页面已经具备:

  • 一个 hero;
  • 三张候选卡片;
  • 评分、运行依赖、证据状态和推荐理由;
  • 移动端单列;
  • 静态 Server Component。

未使用三个前端 Skill 的基线页面:居中白色 hero、紫色评分和三张通用卡片未使用三个前端 Skill 的基线页面:居中白色 hero、紫色评分和三张通用卡片

图 1:基线可以交付,但视觉语言和“Skill 审计”主题没有关系,按钮也没有真实行为。

它的问题不是难看,而是几乎所有 SaaS 卡片页都可以长这样:浅灰背景、白卡、紫色强调、圆角阴影、居中大标题。

更严重的问题是“查看审计”只是一个没有行为的 button。视觉上像承诺,功能上却没有结果。

3. frontend-design:先写方向,再写代码

我先把页面主题固定为“研究者的田野索引卡”,而不是直接换颜色:

设计轴决定
主题材料纸张、索引卡、审计标记、手册页边线
色彩纸灰 #e9eadf、墨绿、铁锈红、深芥末色
字体角色Georgia 大标题、系统中文正文、等宽证据标签
布局大标题错位,候选卡片像连续编号的审计页
签名元素“先验收 / 再安装”两行错位标题与卡片顶部状态色条

这一步实际改变的是信息表达:评分变成视觉中心,证据状态和运行依赖退到审计元数据;“三层验收”成为页面下半段的方法说明。

应用 frontend-design 后的最终桌面页面:纸张底色、错位中文大标题、审计标签和连续索引卡应用 frontend-design 后的最终桌面页面:纸张底色、错位中文大标题、审计标签和连续索引卡

图 2:最终桌面页。视觉风险集中在标题和色条,其余元素保持克制。

我没有引入远程字体、图片或动画。原因不是 Skill 禁止,而是这个主题不需要它们;新增依赖会让后续性能阶段替设计阶段还债。

4. React Best Practices:最有价值的结果可能是“不改”

React Skill 把规则按影响分为 waterfalls、bundle、server、client、rerender、rendering、JavaScript 与 advanced。我的页面没有数据请求、客户端状态和第三方 bundle,因此只按需检查:

  • bundle-*:是否引入不必要的包或 barrel import;
  • rendering-*:静态内容是否有明显渲染成本;
  • rerender-*:是否错误加入客户端状态或 memo。

审查结果:

  • skills 已在组件外,不会每次 render 重新创建;
  • 页面不需要 use client
  • 只有三条静态记录,不值得加 content-visibility
  • 没有昂贵组件,不需要 next/dynamic
  • 没有计算热点,不需要 memo;
  • 系统字体避免新增网络与字体 bundle。

性能阶段没有为了证明 Skill “生效”而制造改动。这恰恰是分工的意义:设计阶段可以大胆改变视觉,性能阶段只接受有机制和证据的修改。

5. 为什么不读取完整 AGENTS.md

固定 revision 的 React Skill:

text
SKILL.md       7,400 bytes / 149 lines
AGENTS.md    112,071 bytes / 3,810 lines
rules/               72 markdown files

如果任务只是审查一个静态目录页,一次性读完 112 KB 会让大量与当前页面无关的 server cache、SWR、复杂 hydration 和 JavaScript micro-optimization 进入上下文。

我采用的路由是:

text
先判断页面有没有请求、客户端状态、重包、长列表
→ 只选相关类别
→ 读取对应 rule 文件
→ 给每个 finding 绑定真实代码

这比“加载完整最佳实践,然后凭印象改”更省上下文,也更容易说明为什么没有采用某条规则。

6. Web Design Guidelines:在线最新不等于可复现

web-design-guidelines 的流程很直接:

  1. 每次 fetch 最新 command.md
  2. 读取目标文件;
  3. 按全部规则 review;
  4. 输出 file:line findings。

问题是,本地 Skill revision 没变,远程 main 也可能变化。同一份页面下周得到不同 findings,并不一定是模型漂移。

本轮把在线规范固定为:

text
URL      https://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/4e799d4.../command.md
commit   4e799d45c17aec1498c269287a83b9dba22b966b
date     2026-08-01
SHA256   FB9B73DD69CEAD884F29E8A6FB0ADF53D525E65D4BF82C51F78F2C781638F2F1

实验包保留带元数据头的 snapshot;原始 SHA 不包含这段本地头部。

7. UX 与 a11y 阶段修了什么

第一轮 review 找到这些可操作问题:

严重度Finding修改
P1无行为的“查看审计” button改为指向真实方法段落的 link
P1重复卡片没有列表语义改成 ul > li > article
P2键盘焦点依赖弱默认样式加高对比 :focus-visible
P2平滑滚动没有 reduced motion 边界在偏好减少动态时关闭
P2移动端方法步骤可能拥挤单列布局并收窄网格

随后用 agent-browser a11y 跑 axe 4.12.1。第一轮还有一个 serious violation:黄色评分 #bd812b 在纸张背景上的对比度是 2.97:1,低于大字号文本要求的 3:1。我把它调为 #976316 后重建、重截并复测,最终 violations 为 0。

axe 同时把 header[aria-labelledby] 与无 role 的 div[aria-label] 标为 incomplete。我删除了不必要的 ARIA,让可见分数字符直接进入可访问名称;背景页边线也从 gradient 改为伪元素,减少“无法判断背景色”的自动化不确定项。

最终页面在 390×844 下的截图:标题、候选清单和状态色条在窄屏保持可读最终页面在 390×844 下的截图:标题、候选清单和状态色条在窄屏保持可读

图 3:移动视口。截图只覆盖首屏,完整页面仍由浏览器脚本继续检查链接焦点和控制台。

8. 构建与输出数据

指标BaselineFinal
Next production build通过通过
构建耗时8,879 ms8,807 ms
静态输出大小917,261 bytes931,547 bytes
浏览器验收命令1010
控制台错误00
键盘焦点检查通过通过

最终输出增加 14,286 bytes,主要来自 HTML 与 CSS;没有增加第三方依赖。两次构建时间差只有 72ms,在单次本机实验里没有性能意义。

页面的代码差异、stage summary、findings 与截图均保存在 examples/agent-skills-practical-lab/runs/frontend/

9. 什么时候只用其中一个

任务只用哪个不必加载什么
新 landing page 没有视觉方向frontend-design不必先读 72 条 React 规则
现有 Next.js 页面明显变慢React Best Practices不要让视觉重做扩大 diff
发布前检查键盘、语义和 UXWeb Design Guidelines不需要重新定品牌语言
组件库重构React + Web Guidelines视觉方向已由设计系统决定
从零完成重要产品页三个分阶段使用不要在同一轮混合所有目标

顺序也很重要。先用性能 Skill,再大改视觉,前面的 review 很快失效;先做视觉实现,再做性能和 UX 收口,更容易把 finding 绑定到最终代码。

10. 我会保留的工作流

text
写真实页面内容和单一目标
→ baseline build + screenshot
→ frontend-design:方向、token、signature
→ build + desktop/mobile screenshot
→ React rules:只读相关 reference
→ build
→ 固定 Web Guidelines URL/commit/SHA
→ findings review
→ console + keyboard + axe + 双视口
→ 保存 diff 与未解决项

三个 Skill 最值得保留的不是三份“更好页面”的指令,而是三种不同的判断责任。设计负责做选择,性能负责要求机制,UX 负责保护真实用户。

系列从 Agent Skills 筛选方法开始,上一篇是 agent-browser 语义快照实测。关于 Skill 的加载方式、目录结构与 eval,可以回到 Codex Skills 入门进阶篇

参考资料

继续阅读