分享一个我自己写的skill,解决了AI代码规范的问题
背景
一直在用AI辅助写代码,但有个问题困扰很久了。
每次让AI写个组件或者函数,代码逻辑没问题,但细节总是不太对:
- TypeScript类型要么没有,要么any满天飞
- Python函数缺类型注解和docstring
- Next.js项目还在用Pages Router的写法
- 错误处理经常被忽略
每次都要手动改一遍,挺烦的。
后来我想,能不能让AI自己学会写规范代码?于是写了个skill,叫CodeRules。
clawhub地址:clawhub.ai/xiaoxulaila… github地址:github.com/xiaoxulaila…
它怎么工作
核心思路挺简单:让AI在写代码之前,先看看你项目用的是什么技术栈。
它会自动扫描项目文件:
- 看到
tsconfig.json-> 启用TypeScript规范 - 看到
react依赖 -> 加载React组件规范 - 看到
next依赖 -> 用App Router的写法 - 看到
go.mod-> 加上错误处理要求
就是让AI“知道”你的项目规范,然后按规范写代码。
实际效果
拿个例子说明吧。
我让AI写一个用户头像组件:
// 它生成的代码是这样的
import React from 'react';
import Image from 'next/image';
interface UserAvatarProps {
/** 用户头像URL */
src: string;
/** 用户名 */
name: string;
size?: 'sm' | 'md' | 'lg';
}
export const UserAvatar: React.FC<UserAvatarProps> = ({
src,
name,
size = 'md',
}) => {
const sizeMap = {
sm: 32,
md: 48,
lg: 64,
};
return (
<Image
src={src}
alt={`${name}'s avatar`}
width={sizeMap[size]}
height={sizeMap[size]}
className="rounded-full"
/>
);
};
类型定义了,注释加了,导出方式也规范了,还自动用了next/image。
再看个Python的例子:
async def get_user(user_id: int) -> User | None:
"""根据ID获取用户信息。
Args:
user_id: 用户唯一标识
Returns:
用户对象,不存在则返回None
"""
async with httpx.AsyncClient() as client:
try:
response = await client.get(f"/api/users/{user_id}")
response.raise_for_status()
return User(**response.json())
except httpx.HTTPError:
return None
类型注解、docstring、错误处理,该有的都有。
怎么用
安装
# 放到OpenClaw的skills目录
cp -r coderules-skill ~/.openclaw/skills/
(抽象一点,也可以自己让龙虾安装好)
帮我安装一下 CodeRules skill,链接地址是这个:clawhub.ai/xiaoxulaila…
帮我安装一下 CodeRules skill,就是桌面上的coderules文件
Cursor用户
- 选择配置文件位置 全局安装(所有项目可用):~/.claude/settings.json 项目安装(仅当前项目):.claude/settings.json
- 添加配置 在你的 settings.json 文件中添加或更新 skills 字段: { "skills": [ { "name": "coderules", "source": { "source": "url", "url": "clawhub.ai/xiaoxulaila…" } } ] }
自定义规则
如果想加自己的规范,在项目根目录建个.coderules.json:
{
"customRules": [
"所有API请求要加重试机制",
"组件文件不超过300行"
],
"ignore": ["legacy/**/*"]
}
目前支持的技术栈
- 语言:TypeScript、JavaScript、Python、Go、Rust、Java
- 前端框架:React、Vue、Next.js、Nuxt、Angular、Svelte
- 后端框架:Django、Spring Boot、Express
还在慢慢加,有需要的可以提issue。
写在最后
如果你也用AI写代码,而且对代码质量有要求,可以试试这个skill。
clawhub地址:clawhub.ai/xiaoxulaila… github地址:github.com/xiaoxulaila…
欢迎提issue和PR,一起完善。