用 AI 写代码这件事,我觉得可以分成两个阶段。
第一个阶段是"哇塞真牛逼",AI 能理解需求、能写代码、能跑通测试,感觉以后不用加班了。
第二个阶段是"我去怎么又出问题了"。AI 改着改着把同事的代码覆盖了,聊到一半忘了项目背景,让它修个 bug 它把整个模块重构了,代码风格一会儿驼峰一会儿下划线。
我从 Claude Code 内测就开始用了,两个阶段都经历过。踩了半年坑之后,我整理了一套配置,约束 AI 的行为,让它从"偶尔靠谱"变成"稳定输出"。
现在开源出来了:cc-best
GitHub: github.com/xiaobei930/…
这套配置要解决什么问题
先说问题,再说方案。
问题一:AI 会搞破坏
Claude Code 有执行命令的能力,这本来是好事,但有时候 AI 会执行一些危险操作:
git push --force origin main # 覆盖远程历史,同事的提交没了
git reset --hard HEAD~5 # 本地改动全丢
rm -rf node_modules && npm i # 可能没事,也可能依赖版本变了出问题
还有提交敏感文件:
git add .env # 数据库密码、API Key 全暴露了
git add credentials.json # 同上
这些操作 AI 是"无意"的,它只是觉得这样能解决问题,但后果可能很严重。
问题二:上下文会丢失
Claude Code 的对话是有 token 限制的。聊着聊着 token 用完了,或者你关掉终端重新开,之前的对话上下文就没了。
下次你得重新解释:这个项目是干嘛的、架构是什么、上次做到哪了、为什么要用这个技术方案。
这很烦,而且浪费时间和 token。
问题三:AI 会越界
你让它分析需求,它分析完顺手就把代码改了。 你让它改个 bug,它觉得整个模块设计有问题,直接重构了。 你让它 review 代码,它 review 完顺手就把"问题"改了。
AI 的出发点是好的,但有时候你只想让它干一件事,它却干了三件。
问题四:代码风格不统一
同一个项目里:
# 第一次生成的
def get_user(id):
return db.query(User).filter_by(id=id).first()
# 第二次生成的
def GetUser(userId: int) -> Optional[User]:
"""Fetch user by ID."""
return db.query(User).filter(User.id == userId).first()
函数命名、参数风格、类型注解、文档字符串,全不一样。review 的时候看着头疼。
cc-best 怎么解决这些问题
安全钩子:拦截危险操作
cc-best 用 Hooks 机制,在 AI 执行命令之前进行检查:
| 操作 | 处理 |
|---|---|
git push --force | 阻止,弹警告 |
git reset --hard | 阻止,弹警告 |
提交 .env、*.key、credentials.* | 阻止 |
修改 node_modules、vendor | 阻止 |
| 删除受保护的文件 | 阻止 |
这些规则可以自己改,不是写死的。但默认配置能拦住大部分"灾难"。
Memory Bank:记住项目状态
cc-best 有个 memory-bank 目录,AI 会把项目状态写进去:
memory-bank/
├── progress.md # 当前任务、已完成的事、做过的决定
├── architecture.md # 系统架构
└── tech-stack.md # 技术选型
相关命令:
/checkpoint- 保存当前进度/iterate- 读取进度,继续干活/compact- 压缩对话,保留关键信息
下次开新对话,先跑个 /iterate,AI 会自动读这些文件,知道:
- 这是个什么项目
- 用了什么技术
- 上次做到哪了
- 之前做过什么决定、为什么这么决定
不用每次都从头解释。
角色工作流:让 AI 只干一件事
这是我用得最多的功能。
把开发流程拆成几个角色,每个角色有明确的职责边界:
| 命令 | 角色 | 干什么 | 不干什么 |
|---|---|---|---|
/pm | 产品经理 | 分析需求,列任务清单 | 不写代码 |
/lead | 技术主管 | 设计方案,拆任务,评估风险 | 不写具体实现 |
/designer | 设计师 | 出 UI 方案,定交互 | 不写业务逻辑 |
/dev | 开发工程师 | 写代码,跑测试 | 不改需求 |
/qa | 质量工程师 | review 代码,验收 | 不直接改代码 |
完整流程:
/pm → /lead → /designer(前端项目) → /dev → /qa → /verify → /commit
比如你用 /pm 命令,AI 只会输出需求分析和任务列表,绝对不会动手写代码。它知道自己现在是"产品经理",不是"开发工程师"。
这样 AI 就不会在你让它分析需求的时候顺手把代码改了。
自主迭代模式:让 AI 自己干活
这是 cc-best 的特色功能。
普通模式下,你得一步步指挥 AI:分析需求、设计方案、写代码、跑测试、提交。每一步都要你介入。
/iterate 模式不一样。你只需要告诉 AI 要做什么,然后它会:
- 读取
progress.md,了解当前状态 - 按照任务列表,自动切换角色执行
- 每完成一步,自动保存进度
- 遇到问题会停下来问你,否则一直干到完成
用法:
# 先用 /pm 分析需求,生成任务列表
/pm 实现用户登录功能
# 然后启动自主迭代
/iterate
AI 会自动走完整个流程:Lead 设计方案 → Dev 写代码 → QA 验收 → 提交。
什么时候用 /iterate:
- 任务比较明确,不需要频繁沟通
- 你想去喝杯咖啡,让 AI 自己干
- 晚上下班前启动,第二天看结果
什么时候不用:
- 需求不清晰,需要边做边调整
- 涉及重要决策,需要你把关
- 第一次接触项目,还不熟悉代码
还有个 /pair 结对编程模式,适合需要频繁沟通的场景。AI 每一步都会等你确认。
编码规范:统一代码风格
内置 7 种语言的规范配置:
- Python - PEP8 + 类型注解 + Google docstring
- TypeScript - 严格模式 + ESLint + Prettier
- Vue - 组合式 API + TypeScript + script setup
- Go - 官方规范 + 常见最佳实践
- Java - Google Java Style
- C# - .NET 规范
- C++ - 现代 C++ 风格
AI 生成代码会按这些规范来,不用每次都提醒。
规范文件在 rules/ 目录下,是 Markdown 格式,不喜欢可以自己改。
更多功能
除了解决上面四个问题,cc-best 还有一些其他功能:
智能体(Agents)
6 个专业智能体,处理复杂任务:
| 智能体 | 作用 |
|---|---|
planner | 任务规划,把大需求拆成可执行的小任务 |
code-reviewer | 代码审查,按检查清单逐条检查 |
code-simplifier | 代码简化,找出可以重构的地方 |
security-reviewer | 安全审查,检查 OWASP Top 10 漏洞 |
tdd-guide | TDD 引导,带你走测试驱动开发流程 |
requirement-validator | 需求验证,检查需求文档是否完整 |
调用方式:/cc-best:code-reviewer
专业技能(Skills)
14 个专业知识库,需要时加载:
| 技能 | 内容 |
|---|---|
database-patterns | 数据库最佳实践(PostgreSQL、MySQL、Oracle、SQLite) |
security-review | 安全审查(OWASP Top 10 + 云安全) |
backend-patterns | 后端开发模式(Python、TypeScript、Java、Go、C#) |
frontend-patterns | 前端开发模式(Vue、React、Svelte、Angular) |
devops-patterns | DevOps 模式(Docker、CI/CD) |
api-development | RESTful API 设计规范 |
tdd-workflow | 测试驱动开发流程 |
git-workflow | Git 工作流最佳实践 |
debugging | 系统化调试方法 |
ios-development | iOS/macOS 开发模式 |
continuous-learning | 会话知识提取 |
strategic-compact | 策略性上下文压缩 |
isolated-research | 隔离上下文研究 |
second-opinion | 第二意见(跨模型验证) |
调用方式:/cc-best:database-patterns
这些知识平时不加载,不占 token,需要时再调用。
常用命令
32 个命令,覆盖常见开发场景:
| 命令 | 作用 |
|---|---|
/build | 运行构建 |
/test | 运行测试,失败自动修复 |
/commit | 生成 commit message 并提交 |
/pr | 创建 Pull Request |
/fix | 修复当前问题 |
/cleanup | 清理无用代码 |
/docs | 生成文档 |
/status | 查看当前状态 |
/pair | 结对编程模式 |
/cc-ralph | 自主开发循环 |
怎么安装
前置条件:安装 Claude Code
cc-best 是 Claude Code 的插件,所以你得先有 Claude Code。
如果还没装,去官网下载:claude.ai/code
或者用命令行:
# macOS / Linux
npm install -g @anthropic-ai/claude-code
# Windows
npm install -g @anthropic-ai/claude-code
装完之后在终端输入 claude 就能启动。第一次用需要登录 Anthropic 账号。
方式一:安装插件(推荐)
在 Claude Code 里面执行:
# 添加插件市场源
/plugin marketplace add xiaobei930/claude-code-best-practices
# 安装插件
/plugin install cc-best@xiaobei930
或者用交互式菜单:
# 输入 /plugin,选择 "Add Marketplace",输入:
xiaobei930/claude-code-best-practices
# 然后选择 "Install Plugin",选择 cc-best
装完之后输入 /status 验证是否生效。
插件方式的好处:
- 不会往你项目里塞文件
- 更新方便:
/plugin update cc-best@xiaobei930 - 所有项目共享同一套配置
方式二:Clone 到项目
如果你想深度定制,可以直接 clone 仓库:
# 克隆模板
git clone https://github.com/xiaobei930/claude-code-best-practices.git my-project
cd my-project
# 运行初始化
bash scripts/shell/init.sh
# 编辑 CLAUDE.md,替换占位符
或者复制到现有项目:
cp -r claude-code-best-practices/commands /path/to/your/project/
cp -r claude-code-best-practices/skills /path/to/your/project/
cp -r claude-code-best-practices/rules /path/to/your/project/
cp -r claude-code-best-practices/memory-bank /path/to/your/project/
cp claude-code-best-practices/CLAUDE.md /path/to/your/project/
Clone 方式的好处:
- 完全可定制,所有文件在你的仓库里
- 可以修改任何配置
- 适合团队统一规范
注意:不要在 clone 的项目里再装插件,会导致命令重复。
路线图:接下来要做什么
cc-best 还在持续迭代,接下来的计划:
v0.6.0 - 易用性与配置化
- Lite 模式 - 精简版插件
- 很多人反馈功能太多,用不上。会出一个
cc-best-lite,只保留核心功能(/iterate、/checkpoint、/commit + 基础 hooks) - 适合只想要"安全护栏 + 进度记忆"的用户
- 很多人反馈功能太多,用不上。会出一个
- 交互式配置向导 - 增强
/setup命令,引导式配置 - 模型策略配置 - 支持选择"质量优先/速度优先/均衡"模式
- 错误诊断 - 常见问题自动检测和修复建议
v0.7.0 - 多模型协作
- 多模型技能 - 同一个任务用多个模型协作
- Gemini 集成 - 用 Gemini 的长上下文能力处理大文件分析
- 任务路由 - 根据任务类型自动选择最合适的模型
v1.0.0 - 稳定版
- 扩展 API - 支持自定义命令和技能
- Memory Bank 云同步 - 跨设备同步项目状态
- 团队协作 - 多人共享配置和进度
- 完整 i18n - 等官方支持后做多语言
适合谁用
适合:
- 用 Claude Code 做实际项目开发的人
- 被 AI 乱改代码、忘记上下文搞烦了的人
- 想在团队里统一 AI 开发规范的人
- 喜欢折腾配置、追求效率的人
不适合:
- 只是偶尔用 Claude Code 问问问题的人
- 觉得约束太多、想让 AI 自由发挥的人
- 不用 Claude Code 的人(Cursor、Copilot 用户这套配置不兼容)
最后
这个项目是我自己用的配置整理出来的,从 0.1.0 到现在 0.5.1,迭代了十几个版本。
但我一个人用的场景有限,肯定有很多我没想到的需求和没遇到的问题。
如果你用了之后:
- 发现了 bug
- 有想要的功能
- 觉得哪里设计不合理
- 或者只是想吐槽
都欢迎到 GitHub 提 issue:
你的反馈是这个项目进步的唯一动力。
认真的,每一条 issue 我都会看,能做的会尽快做,做不了的会说明原因。
GitHub: github.com/xiaobei930/…
MIT 协议,随便用,欢迎 PR。