在过去几年里,前端开发经历了从手写每一行 HTML/CSS,或使用组件库(Ant Design、Element Plus),到 AI 辅助编程(GitHub Copilot、Cursor)的巨大跨越。
而 2025 年以来的技术浪潮,正把我们推向新阶段:从 “AI 辅助” 向 “AI Agent(智能体)” 转型。
在这种模式下,开发者不再只是接收代码建议,而是为 AI 提供一系列 “技能包(Skills)”,让 AI 能理解复杂框架逻辑、项目结构乃至视觉审美。
一句话概括:Skills = 领域专业知识 + 你的项目偏好 + 严厉的审查官
在 AI 编程语境下,Skills 的出现,是为了解决大模型(LLM)“博而不精”的天然缺陷。
一个没有安装 Skills 的大模型(如 GPT-5、Claude 4.5)像一个读过全世界代码的毕业生:
安装 Skills 后,AI(Agent)完成从“大模型”到 “领域智能体” 的进化。
它不再“满嘴跑火车”,而是被你强制要求“必须按这套规约写代码”的资深开发。
| 特性 | 通才 AI(Generalist) | 专才 AI(Specialist with Skills) |
|---|---|---|
| 思维边界 | 无边界,容易幻觉 | 有界思维:严格锁定当前技术栈 |
| 项目理解 | 盲人摸象,只看当前文件 | 全局视野:理解路由、状态、样式体系 |
| 输出质量 | “大概能跑” | “符合工程直觉”的生产级代码 |
| 角色定位 | 知识检索器 | 虚拟技术负责人(Virtual Lead) |
一个 Skills 文件夹通常不是深奥代码,而是三样东西:
.cursorrules / .md)npm lint)如果说通才 AI 提供的是“概率”(它觉得像是对的),那么 Skills 提供的是“确定性”。
它把顶级架构师经验封装成 AI 可复用的“条件反射”。
本文聚焦三个高频技能包:
vue-skillsreact-skills(agent-skills)ui-skills(uipro-cli)Vue-Skills 覆盖 Vue 3 最佳实践、TypeScript 类型安全增强、IDE 性能优化与现代编码模式,解决大型 Vue 项目常见痛点(IDE 卡顿、类型推断错误、构建配置、可维护性问题)。
codeactions-save-performance.md:解决大型 Vue 项目保存耗时(30s+)问题volar-3-breaking-changes.md:适配 Volar 升级变更vue-directive-comments.md:介绍 @vue-ignore、@vue-skip、@vue-expect-error 等模板注释vue-tsc-strict-templates.md:建议开启 strictTemplatesvue-router-typed-params.md:修复路由参数类型丢失问题data-attributes-config.md:支持 data-* 属性类型检查module-resolution-bundler.md:建议 tsconfig.json 使用 "moduleResolution": "bundler"with-defaults-union-types.md:修复联合类型 + withDefaults 的虚假警告define-model-update-event.md:推荐 Vue 3.4 defineModel()extract-component-props.md:将复杂 defineProps 类型提取为独立接口script-setup-jsdoc.md:规范 <script setup> 中 JSDoc 使用fallthrough-attributes.md:inheritAttrs: false 与透传属性最佳实践deep-watch-numeric.md:数字数组 watch + deep: true 陷阱duplicate-plugin-detection.md:防止插件重复注册(如 Pinia)hmr-vue-ssr.md:SSR 场景 HMR 问题处理pinia-store-mocking.md:测试中正确 Mock Pinia Storestrict-css-modules.md:开启 CSS Modules 严格模式npx add-skill hyf0/vue-skills
执行后会自动检查 IDE 与终端环境,并提示:
场景:基于 BaseButton.vue 封装 ProButton.vue,要求继承原有 Props 并新增 loading。
<!-- ProButton.vue -->
<script setup lang="ts">
// ❌ 错误做法 1:手动重复定义,维护成本高
interface Props {
text: string;
color?: string;
loading: boolean;
}
// ❌ 错误做法 2:用 InstanceType,混入大量 Vue 内部属性
import type BaseButton from "./BaseButton.vue";
type BaseProps = InstanceType<typeof BaseButton>["$props"];
defineProps<BaseProps & { loading: boolean }>();
</script>
vue-component-type-helpers)<!-- ProButton.vue -->
<script setup lang="ts">
import type { ComponentProps } from "vue-component-type-helpers";
import BaseButton from "./BaseButton.vue";
// ✅ 精确提取子组件 Props 类型
type BaseButtonProps = ComponentProps<typeof BaseButton>;
interface Props extends BaseButtonProps {
loading?: boolean;
size?: "sm" | "md" | "lg";
}
const props = withDefaults(defineProps<Props>(), {
loading: false,
size: "md",
});
</script>
<template>
<div class="pro-button">
<BaseButton v-bind="$attrs" :loading="loading">
<slot />
</BaseButton>
</div>
</template>
| 维度 | 传统方式 | Skills 方案(Vue Best Practices) |
|---|---|---|
| 开发效率 | 需翻源码找 Props | 自动提取,AI 自动桥接 |
| 类型提示 | 混入大量 $props 内部属性 | 纯净提示,仅业务属性 |
| 维护性 | 子组件改 Prop 需手动同步 | 类型自动同步更新 |
| 工程质量 | Hack 与冗余较多 | 标准工程化,符合官方模式 |
vercel-composition-patterns)适用:
isLoading、isSmall...)导致难维护规则重点:
PrimaryButton、IconButton)children 组合而非庞大配置对象vercel-react-best-practices)适用:
规则重点:
next/dynamic 代码分割React.cache() 去重请求,减少客户端序列化数据startTransitionvercel-react-native-skills)适用:
规则重点:
FlashList 替代 FlatListtransform / opacity 上expo-image,交互优先 PressableText 内;避免条件渲染 &&(防止渲染 0)web-design-guidelines)适用:
规则重点:
npx add-skill vercel-labs/agent-skills
可只安装某个规则集(如 vercel-react-best-practices)。
// ❌ 串行阻塞
export default async function ProfilePage() {
const user = await fetchUser();
const orders = await fetchOrders(user.id);
const coupons = await fetchCoupons();
return (
<div>
<UserInfo user={user} />
<OrderList orders={orders} />
<CouponList coupons={coupons} />
</div>
);
}
import { Suspense } from "react";
// ✅ 并行获取与解耦渲染
export default async function ProfilePage() {
const userPromise = fetchUser();
const couponsPromise = fetchCoupons();
const user = await userPromise;
return (
<div>
<UserInfo user={user} />
<Suspense fallback={<Skeleton />}>
<OrderDataLayer userId={user.id} />
</Suspense>
<Suspense fallback={<Skeleton />}>
<CouponDataLayer promise={couponsPromise} />
</Suspense>
</div>
);
}
async function OrderDataLayer({ userId }) {
const orders = await fetchOrders(userId);
return <OrderList orders={orders} />;
}
async function CouponDataLayer({ promise }) {
const coupons = await promise;
return <CouponList coupons={coupons} />;
}
| 优化点 | 传统方案 | Skills 方案(Vercel Best Practices) |
|---|---|---|
| 请求速度 | 累加耗时(Waterfall) | 并发执行,耗时显著降低 |
| 用户感知 | 全黑屏等待 | Streaming 局部先出 |
| 代码结构 | 逻辑堆主页面 | 原子化组件,数据与渲染内聚 |
| AI 表现 | 随机生成 | 确定性重构,遵循性能规约 |
结论:注入
vercel-react-best-practices后,AI 从“代码生成器”进化为“性能自觉的架构师”。
前两类技能解决“逻辑”,uipro-cli 及相关 ui-skills 解决“审美与交付”。
它让 AI 不只会写代码,还能像资深设计师一样思考。
npm install -g uipro-cli
# 为 Claude Code 初始化
uipro init --ai claude
# 为 Cursor 初始化
uipro init --ai cursor
# 为所有支持的 AI 助手初始化
uipro init --ai all
// ❌ 基础 Grid,设计表现弱
export default function Dashboard() {
return (
<div className="grid grid-cols-3 gap-4 p-4">
<Card title="总收入" value="$12,000" />
<Card title="活跃用户" value="1,240" />
<Card title="API 调用" value="45.2k" />
<div className="col-span-3">主要统计图表</div>
</div>
);
}
// ✅ Bento Grid + Glassmorphism + 高级配色
export function BentoDashboard() {
return (
<section className="bg-slate-950 p-8 min-h-screen font-sans text-slate-100">
<div className="max-w-7xl mx-auto grid grid-cols-1 md:grid-cols-4 gap-6">
<div className="md:col-span-2 md:row-span-2 bg-slate-900/50 backdrop-blur-xl border border-white/10 rounded-3xl p-8 hover:bg-slate-800/60 transition-all duration-300 group">
<header className="flex justify-between">
<h3 className="text-xl font-bold tracking-tight">创作产出分析</h3>
<div className="h-2 w-2 bg-cyan-400 rounded-full animate-pulse" />
</header>
<MainAnalyticChart color="#22d3ee" />
</div>
<div className="bg-slate-900/50 backdrop-blur-md rounded-3xl p-6 border border-white/5">
<Subtitle>API 余额</Subtitle>
<Value className="text-3xl font-mono">84.2%</Value>
</div>
<div className="bg-cyan-500/10 rounded-3xl p-6 border border-cyan-500/20 text-cyan-400">
<div className="text-sm font-semibold mb-2">服务状态</div>
<div className="text-lg">系统运行正常</div>
</div>
</div>
</section>
);
}
| 维度 | 传统构建 | UI/UX Pro Max(uipro) |
|---|---|---|
| 布局逻辑 | 1/2 或 1/3 等分 | 非对称动态布局(Bento/Masonry) |
| 色彩应用 | 基础色值、较单调 | 分层色彩、渐变、阴影、半透明 |
| 细节打磨 | 基础功能 | 微交互、骨架屏、平滑过渡 |
| 设计自检 | 依赖人工多轮返工 | 内置反模式自检,首次更接近可交付 |
随着 vue-skills、react-skills、ui-skills 的普及,前端角色正从 “代码编写者(Coder)” 向 “AI 指令师(Prompt Engineer)” 和 “技术评审员(Reviewer)” 转变。
传统 AI 辅助更像“搜索变种”,而 Skills 模式代表 “领域知识预装载”:
掌握 Skills 不意味着放弃底层学习。相反,越懂 Vue/React 原理与 UI 规范,越能正确引导 AI,释放更高生产力。
评论