Claude Skill
Vafast Skill 是为 Claude CLI 提供的 Vafast 框架开发规则,让 AI 更懂 Vafast 的写法和最佳实践。
什么是 Skill?
Skill 是 Claude CLI 的扩展机制,安装后 AI 会自动理解特定框架或领域的最佳实践。安装 Vafast Skill 后,Claude 将自动理解:
- ✅ 路由定义 -
defineRoute+defineRoutes模式 - ✅ Schema 验证 - TypeBox 类型定义
- ✅ 中间件 -
defineMiddleware类型安全模式 - ✅ SSE -
sse: true流式响应 - ✅ 错误处理 - Go 风格
{ data, error } - ✅ API 客户端 -
@vafast/api-client使用
安装
方式 1:从文件安装
bash
# 下载 vafast.skill 文件后
codex skill install vafast.skill方式 2:从 GitHub 安装
bash
# 克隆仓库
git clone https://github.com/vafast/vafast-skill.git
# 安装
codex skill install vafast-skill/vafast.skill使用
安装后,在 Claude CLI 对话中使用 @vafast 即可:
@vafast 帮我创建一个用户管理 API
@vafast 如何定义 SSE 流式响应?
@vafast 写一个带鉴权的中间件示例
创建路由
typescript
import { defineRoute, defineRoutes, Type } from 'vafast'
const routes = defineRoutes([
defineRoute({
method: 'GET',
path: '/users',
name: 'get_users',
description: '获取用户列表',
schema: {
query: Type.Object({
page: Type.Number(),
limit: Type.Optional(Type.Number()),
})
},
handler: ({ query }) => ({
users: [],
page: query.page,
})
})
])中间件
typescript
import { defineMiddleware } from 'vafast'
const authMiddleware = defineMiddleware<{ user: User }>(async (req, next) => {
const user = await verifyToken(req)
return next({ user })
})SSE 流式响应
typescript
import { defineRoute } from 'vafast'
defineRoute({
method: 'GET',
path: '/stream',
sse: true,
handler: async function* (ctx) {
yield { event: 'start', data: {} }
yield { data: { text: 'chunk' } }
yield { event: 'end', data: {} }
},
})错误处理
typescript
import { err } from 'vafast'
defineRoute({
method: 'GET',
path: '/users/:id',
handler: ({ params }) => {
const user = findUser(params.id)
if (!user) {
throw err.notFound('用户不存在')
}
return user
}
})API 客户端
typescript
import { eden, InferEden } from '@vafast/api-client'
import type { AppRoutes } from './server'
type Api = InferEden<AppRoutes>
const api = eden<Api>('http://localhost:3000')
// 类型安全的调用
const { data, error } = await api.users.get({ page: 1 })Skill 内容
安装后,Claude CLI 会理解以下 Vafast 特性:
路由定义模式
- 使用
defineRoute定义单个路由 - 使用
defineRoutes定义路由数组 - 支持嵌套路由结构
- 支持扩展字段(webhook、权限、计费等)
Schema 验证
- TypeBox 类型定义
- 内置 format 验证器(email、uuid、phone 等)
- 运行时验证 + 编译时类型推断
中间件系统
defineMiddleware定义类型安全的中间件- 支持类型注入(
withContext) - 全局中间件和路由级中间件
错误处理
err函数提供语义化错误 API- Go 风格
{ data, error }返回格式 - 统一的错误响应格式
API 客户端
InferEden从路由定义自动推断类型eden创建类型安全的客户端- 端到端类型同步
文件说明
vafast-skill/
├── SKILL.md # 主规则文件(Claude CLI 读取)
├── references/
│ └── schema.md # TypeBox 详细参考
├── vafast.skill # 打包文件(可分发)
└── README.md # 项目说明