Claude Code 最佳实践指南
TL;DR
Anthropic 发布了针对 Claude Code 的最佳实践指南,Claude Code 是一款低层级、无固定意见的命令行工具,为工程师提供对 Claude 的原始访问权限,用于智能体编码。该指南解释了如何配置环境、扩展工具以及采用经过验证的工作流程,以提高生产力和安全性。
1. 自定义设置
1a. 创建 CLAUDE.md 文件
CLAUDE.md 会自动加载到 Claude 的提示上下文中。使用它来记录常用命令、实用函数、代码风格指南、测试说明、仓库礼仪、环境设置以及任何项目特定的怪癖。将文件放在仓库根目录、monorepo 的父目录或子目录中,或放在 ~/.claude/ 中以作为全局默认设置。/init 命令可以生成一个起始文件。
1b. 调整 CLAUDE.md 内容
将 CLAUDE.md 视为一个频繁使用的提示:迭代其措辞,保持简洁,并强调关键指令(例如,使用“重要”或“你必须”)。使用 # 键让 Claude 自动添加文档,并考虑将文件通过 Anthropic 的 Prompt Improver 运行以获得更高的遵循度。
1c. 精选允许工具列表
Claude Code 会保守地请求任何修改系统操作的权限。您可以通过以下方式将工具列入白名单:
- 在会话期间选择始终允许。
- 运行
/permissions命令(例如,Edit、Bash(git commit:*))。 - 编辑
.claude/settings.json或~/.claude.json(将前者检入源代码控制)。 - 使用
--allowedToolsCLI 标志进行一次性会话。
1d. 安装 GitHub CLI(gh)
安装了 gh 后,Claude 可以直接创建问题、打开 PR 和阅读评论。如果没有它,Claude 会回退到 GitHub API 或 MCP 服务器。
2. 给 Claude 更多工具
2a. 利用 bash 实用程序
Claude 继承您的 shell 环境。要公开自定义脚本,请描述工具名称和用法,让 Claude 运行 --help,并在 CLAUDE.md 中记录该工具。
2b. 连接到 MCP 服务器
Claude Code 既充当 MCP 客户端又充当服务器。在项目级配置、全局配置或检入的 .mcp.json 中注册工具。使用 --mcp-debug 来排查配置问题。
2c. 定义自定义斜杠命令
将可重用的提示模板存储在 .claude/commands/*.md 中。它们会出现在 / 菜单下,并可以通过 $ARGUMENTS 占位符接受参数。提交这些文件以在团队中共享。
3. 经过验证的工作流程
3a. 探索 → 计划 → 编码 → 提交
- 阅读相关文件或 URL,而不编写代码。
- 计划使用“思考”层级(
think、think hard、think harder、ultrathink)来分配更多计算预算。 - 实施解决方案,让 Claude 验证推理。
- 提交并可选地生成 PR 或更新文档。
3b. 测试驱动开发(TDD)
- 提示 Claude 编写失败的测试。
- 运行测试并确认失败。
- 提交测试。
- 指示 Claude 编写通过测试的代码,迭代直到全部通过。
3c. 使用截图进行视觉迭代
通过粘贴截图、拖放或文件路径提供设计稿。让 Claude 实现 UI,捕获结果的截图,并迭代直到与设计稿匹配。
3d. 安全的“YOLO”模式
使用 claude --dangerously-skip-permissions 绕过权限检查,以快速处理低风险任务(例如,lint 修复)。在隔离的、阻止互联网的容器中运行,以减轻数据丢失风险。
3e. 代码库问答
将 Claude 视为结对程序员:提出诸如“日志记录如何工作?”或“foo.rs 第 134 行的 async move { … } 是做什么的?”之类的问题。Claude 将搜索仓库并回答,无需特殊提示。
3f. Git 交互
Claude 可以:
- 搜索 git 历史以了解更改或所有权。
- 根据差异起草提交消息。
- 执行复杂的 git 操作(还原、变基、补丁嫁接)。
3g. GitHub 自动化
Claude 理解“pr”等简写来创建拉取请求,可以修复审查评论、分类问并自动标记它们。
3h. Jupyter 笔记本支持
Claude 可以读写 .ipynb 文件,解释输出图像,并在指示时改进笔记本的美观性。
4. 工作流程优化
4a. 具体明确
清晰、详细的指令能显著提高 Claude 首次尝试的成功率。
4b. 提供图像
粘贴或拖放截图、图表或设计稿;Claude 会直接处理它们。
4c. 提及目标文件
使用制表符补全来引用确切的文件路径,确保 Claude 处理正确的资源。
4d. 提供 URL
粘贴 URL 供 Claude 获取;通过 /permissions 将域添加到允许列表,以避免重复提示。
4e. 尽早并频繁纠正
- 让 Claude 在编码前计划。
- 按Escape中断并保留上下文。
- 双击 Escape 编辑之前的提示。
- 使用撤销来还原不需要的更改。
4f. 使用 /clear 清除上下文
在长时间会话中定期重置上下文窗口,以保持 Claude 专注。
4g. 使用清单和草稿板
对于大型、多步骤任务,维护一个 Markdown 清单或 GitHub 问题作为共享草稿板,让 Claude 勾选已完成的项目。
4h. 高效传递数据
结合复制粘贴、管道(cat foo.txt | claude)、bash 命令、MCP 工具或文件读取,将日志、CSV 或其他数据输入 Claude。
5. 用于自动化的无头模式
使用 -p "<prompt>" --output-format stream-json 以非交互方式运行 Claude,用于 CI、预提交钩子或其他脚本。
5a. 问题分类自动化
通过 GitHub Actions 触发 Claude 来标记新问题,如公共 Claude Code 仓库中所示。
5b. 主观 lint
在 GitHub Action 中使用 Claude 提供超越静态 linter 的细致代码审查评论。
6. 多 Claude 工作流程
6a. 并行验证
运行一个 Claude 实例生成代码,另一个实例审查或测试代码,然后将反馈反馈给第一个实例。
6b. 多个检出
生成单独的 git 检出(或 worktree),并在每个检出上运行独立的 Claude 会话,允许并行任务执行。
6c. Git worktree 实现轻量级并行
创建 worktree(git worktree add …)并在每个目录中启动 Claude,以隔离任务同时共享历史。
6d. 无头管道
- 扇出:生成任务列表,然后循环遍历项目,为每个项目调用带有
--allowedTools的 Claude。 - 流水线:将 Claude 的 JSON 输出通过管道传递给下游命令进行进一步处理。
“Claude Code 有意保持低层级和无固定意见,提供接近原始模型访问权限,而不强制特定工作流程。” — Anthropic
底线: 通过配置 CLAUDE.md、精选工具权限、使用 MCP 和自定义斜杠命令扩展 Claude,并遵循经过验证的工作流程(如先计划后编码或测试驱动开发),工程师可以将 Claude Code 用作安全、灵活且高效的智能体编码助手。