#V2EX

npub195q4fc2qx05y3dzg49cny2lm7nsy52wrwuqjac844dnqnx6k7xks3pwpxu
hex
66776486dc8ed58a8519fc152101b5dff5912941fcb0057124dad2baaf88b1c8nevent
nevent1qqsxvamysmwga4v2s5vlc9fpqx6alav399qlevq9wyjd454647ytrjqprpmhxue69uhhyetvv9ujuem4d36kwatvw5hx6mm9qgsz6q25u9qr86zgk3y2jufj90alfcz298phwqfwur66kesfndt0rtgp0ncdrKind-1 (TextNote)
#V2EX
[Claude] 做了个开源项目 Skill: claude-rules。解决 AI 编码助手总是跟着旧代码坏习惯走的问题
用 Claude Code / Cursor 写代码的时候,大家有没有遇到一个很头疼的问题:
AI 会模仿项目里已有的代码风格,包括那些坏习惯。
比如项目里有个 God Class 写了 800 行,你让 AI 加个功能,它就往这个文件里继续堆。旧代码用了 any ,AI 也跟着用 any 。旧代码回调嵌套 5 层,AI 也照着嵌套。
根本原因是:AI 默认会"保持风格一致",但如果风格本身就有问题呢?
解决思路
给项目加一个规范文件( [CLAUDE.md](http://CLAUDE.md / .cursorrules ),明确告诉 AI:不要模仿旧代码,按规范重构。
但手写规范太累了,而且大多数人写出来的规范都是"使用适当的错误处理"这种空话,AI 根本执行不了。
所以我做了 claude-rules ( https://github.com/lifedever/claude-rules ):
- base + language + framework 三层组合,自动检测技术栈
- 每条规则都是具体可执行的指令,不是空话
- 关键规则都有禁止/正确的代码对比
- 有量化标准:函数 ≤30 行、文件 ≤300 行、嵌套 ≤3 层
- 推荐各语言/框架的现代写法(@Observable 而非 ObservableObject 、as const 而非 enum )
支持的技术栈
Languages:
- TypeScript
- JavaScript
- Java
- Kotlin
- Swift
- Python
- HTML
- CSS
Frameworks
- Vue 3
- React
- SwiftUI
- Spring Boot
- Tauri
Claude Code 用户(插件一键初始化)
claude plugin marketplace add lifedever/claude-rules claude plugin install init-claude-rules@claude-rules
重启 Claude Code ,在任意项目里运行 /init-rules:
- 自动检测技术栈
- 让你确认后生成 [CLAUDE.md](http://CLAUDE.md
- 上游更新规则后 claude plugin marketplace update claude-rules 即可同步
Cursor / Windsurf / GitHub Copilot 用户
规范文件是纯 Markdown ,clone 下来拼接就行:
git clone https://github.com/lifedever/claude-rules.git cat base/[core.md](http://core.md base/[git.md](http://git.md languages/[typescript.md](http://typescript.md frameworks/[vue.md](http://vue.md > .cursorrules
不同工具放不同位置:
- Claude Code → [CLAUDE.md](http://CLAUDE.md
- Cursor → .cursorrules
- Windsurf → .windsurfrules
- GitHub Copilot → .github/[copilot-instructions.md](http://copilot-instructions.md
举个例子
之前的 cursor-rules 类项目写 Vue 规范是这样的:
- 正确使用 ref 和 reactive
- 实现适当的缓存
- 使用适当的导航方法
AI 看了等于没看。claude-rules 这样写:
- 基本类型用 ref ,对象/数组用 reactive
- 禁止对基本类型用 reactive (会丢失响应性)
- 禁止解构 reactive 对象(用 toRefs 或直接 . 访问)
- computed 必须是纯函数,禁止在 computed 里修改状态或发请求
每条都是 AI 能直接执行的指令。
开源地址
https://github.com/lifedever/claude-rules
MIT 协议,欢迎 PR 贡献新的语言和框架规范。
效果预览
 / .cursorrules ),明确告诉 AI:不要模仿旧代码,按规范重构。\n\n但手写规范太累了,而且大多数人写出来的规范都是\"使用适当的错误处理\"这种空话,AI 根本执行不了。\n\n所以我做了 claude-rules ( \u003chttps://github.com/lifedever/claude-rules\u003e ):\n\n* base + language + framework 三层组合,自动检测技术栈\n* 每条规则都是具体可执行的指令,不是空话\n* 关键规则都有禁止/正确的代码对比\n* 有量化标准:函数 ≤30 行、文件 ≤300 行、嵌套 ≤3 层\n* 推荐各语言/框架的现代写法(@Observable 而非 ObservableObject 、as const 而非 enum )\n\n# 支持的技术栈\n\nLanguages:\n\n* TypeScript\n* JavaScript\n* Java\n* Kotlin\n* Swift\n* Python\n* HTML\n* CSS\n\nFrameworks\n\n* Vue 3\n* React\n* SwiftUI\n* Spring Boot\n* Tauri\n\n# Claude Code 用户(插件一键初始化)\n\nclaude plugin marketplace add lifedever/claude-rules\nclaude plugin install init-claude-rules@claude-rules\n\n重启 Claude Code ,在任意项目里运行 /init-rules:\n\n* 自动检测技术栈\n* 让你确认后生成 [CLAUDE.md](http://CLAUDE.md)\n* 上游更新规则后 claude plugin marketplace update claude-rules 即可同步\n\n# Cursor / Windsurf / GitHub Copilot 用户\n\n规范文件是纯 Markdown ,clone 下来拼接就行:\n\ngit clone \u003chttps://github.com/lifedever/claude-rules.git\u003e\ncat base/[core.md](http://core.md) base/[git.md](http://git.md) languages/[typescript.md](http://typescript.md) frameworks/[vue.md](http://vue.md) \u003e .cursorrules\n\n不同工具放不同位置:\n\n* Claude Code → [CLAUDE.md](http://CLAUDE.md)\n* Cursor → .cursorrules\n* Windsurf → .windsurfrules\n* GitHub Copilot → .github/[copilot-instructions.md](http://copilot-instructions.md)\n\n# 举个例子\n\n之前的 cursor-rules 类项目写 Vue 规范是这样的:\n\n* 正确使用 ref 和 reactive\n* 实现适当的缓存\n* 使用适当的导航方法\n\nAI 看了等于没看。claude-rules 这样写:\n\n* 基本类型用 ref ,对象/数组用 reactive\n* 禁止对基本类型用 reactive (会丢失响应性)\n* 禁止解构 reactive 对象(用 toRefs 或直接 . 访问)\n* computed 必须是纯函数,禁止在 computed 里修改状态或发请求\n\n每条都是 AI 能直接执行的指令。\n\n# 开源地址\n\n\u003chttps://github.com/lifedever/claude-rules\u003e\n\nMIT 协议,欢迎 PR 贡献新的语言和框架规范。\n\n# 效果预览\n\n\nhttps://www.v2ex.com/t/1199143#reply0",
"sig": "c4f77acb2ad74d7b8cbe95acdb02ee5c4d6487bd4505e6891a0114c178f392be5a7504ff943d63e653b7543317b723fee1300741975b7dcba33dfb4aed93070e"
}