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(将前者检入源代码控制)。
  • 使用 --allowedTools CLI 标志进行一次性会话。

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. 探索 → 计划 → 编码 → 提交

  1. 阅读相关文件或 URL,而不编写代码。
  2. 计划使用“思考”层级(think、think hard、think harder、ultrathink)来分配更多计算预算。
  3. 实施解决方案,让 Claude 验证推理。
  4. 提交并可选地生成 PR 或更新文档。

3b. 测试驱动开发(TDD)

  1. 提示 Claude 编写失败的测试。
  2. 运行测试并确认失败。
  3. 提交测试。
  4. 指示 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 用作安全、灵活且高效的智能体编码助手。

Sources