Claude Code 最佳实践指南
开始
基本工作流程:人输入提示词;然后 AI 收集上下文、采取行动,并验证结果;人在中途可以停止任务,并引导和补充上下文;

Claude Code 项目配置结构:
your-project/
├── CLAUDE.md # 📋 项目级指令(团队共享,提交到 Git)
├── CLAUDE.local.md # 👤 个人项目偏好(自动 gitignore)
├── .claude/
│ ├── settings.json # ⚙️ 项目设置(团队共享)
│ ├── settings.local.json # 👤 个人项目设置(gitignore)
│ ├── CLAUDE.md # 📋 等效于根目录 CLAUDE.md
│ ├── rules/ # 📏 模块化规则文件
│ │ ├── code-style.md # 代码风格
│ │ ├── testing.md # 测试规范
│ │ └── security.md # 安全要求
│ ├── agents/ # 🤖 自定义子代理
│ │ ├── code-reviewer.md
│ │ └── debugger.md
│ ├── skills/ # ⚡ 自定义技能
│ │ └── fix-issue/
│ │ └── SKILL.md
│ └── worktrees/ # 🌳 Git Worktree 目录(加入 .gitignore)
├── .mcp.json # 🔌 项目级 MCP 服务器配置
└── .github/
└── workflows/
└── claude.yml # 🔄 Claude Code GitHub Actions
刚开始只需要 CLAUDE.md 和 .claude/settings.json,其他配置随着需求逐步添加
必备 CLI 工具
Claude Code 可以调用任何已安装的 CLI 工具,以下是改装工具:(以下是 windows 系统中的安装命令)
## GitHub CLI(Claude Code 用它操作 PR、Issue,等,即,直接在终端管理代码仓库时)
winget install GitHub.cli
gh auth login
## jq( JSON 解析神器,用于在 Hooks 脚本中解析 JSON)
winget install jqlang.jq
## ripgrep(高速代码搜索)
winget install BurntSushi.ripgrep.MSVC
常用命令
> /init # 扫描代码库并自动生成 CLAUDE.md 文件
> /config # 查看/修改全局配置
> /permissions # 查看/修改权限规则
> /cost # 查看当前会话 token 用量
> /context # 查看上下文 token 消耗分布
基本使用示例
## 探索项目(最安全的开始方式)
> 给我一个这个代码库的概览
## 理解代码
> 解释 @src/main.ts 的主要逻辑
## 做一个小修改
> 把 @src/utils/format.ts 中的 formatDate 函数改为支持 ISO 8601 格式
## 验证修改
> 运行测试确认修改没有破坏任何东西
结果验证
验证结果非常重要,否则 AI 可能产出看起来对但实际不工作的代码;要让 AI 验证,不能让人成为唯一的错误发现者。AI 验证会让 Claude 的产出质量提升 2-3 倍;因此必须给 Claude 一个反馈循环,让它能自我纠正;如果不给 AI 反馈循环,就会导致 AI 瞎猜;验证的过程可以是运行测试、对比截图或校验输出。

四种验证策略

验证工具链

Chrome 扩展:UI 验证利器
Claude Code 的 Chrome 扩展可以打开浏览器新标签页、测试 UI、截图,然后迭代修改直到代码正确。对前端开发者来说,这是验证 UI 变更的最强工具。
验证驱动的开发模式

一个完整的验证驱动示例:
为 @src/utils/date.ts 添加 formatRelativeTime 函数。
要求:
- 输入 Date,输出 "刚刚"、"3 分钟前"、"2 小时前"、"昨天"、"3 天前" 等
- 超过 7 天返回 YYYY-MM-DD 格式
验证:
1. 先为以上每种情况编写测试用例
2. 实现函数
3. 运行 `npm test -- formatRelativeTime`
4. 运行 `npm run typecheck`
5. 所有通过后告诉我结果
让验证变得坚如磐石
- 写好 CLAUDE.md 中的测试命令,让 Claude 知道如何运行测试
- 用 Hooks 自动验证(详见第 6 节),例如 Stop Hook 自动运行测试套件
- 在 Skills 中嵌入验证步骤,确保工作流最后一步总是验证
- 如果你无法验证它,就不要发布它
Boris Pro Tip:Boris 使用 Chrome 扩展来验证 UI 变更,并配置了 Agent Stop Hook 在 Claude 完成响应后自动执行验证脚本。这让验证成为每次交互的自动环节,而非需要手动记住的步骤。