AI写的代码总是不规范?这个Skill拯救你

0 阅读2分钟

分享一个我自己写的skill,解决了AI代码规范的问题

背景

一直在用AI辅助写代码,但有个问题困扰很久了。

每次让AI写个组件或者函数,代码逻辑没问题,但细节总是不太对:

  • TypeScript类型要么没有,要么any满天飞
  • Python函数缺类型注解和docstring
  • Next.js项目还在用Pages Router的写法
  • 错误处理经常被忽略

每次都要手动改一遍,挺烦的。

后来我想,能不能让AI自己学会写规范代码?于是写了个skill,叫CodeRules

image.png

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用户

  1. 选择配置文件位置 全局安装(所有项目可用):~/.claude/settings.json 项目安装(仅当前项目):.claude/settings.json
  2. 添加配置 在你的 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,一起完善。