本页涵盖日常开发的实用工作流程:探索陌生代码、调试、重构、编写测试、创建 PR 和管理会话。每个部分都包含示例提示,您可以根据自己的项目进行调整。有关更高级的模式和提示,请参阅最佳实践。
理解新的代码库
获取代码库的快速概览
假设您刚加入一个新项目,需要快速了解其结构。
请求高级概览
give me an overview of this codebase
深入了解特定组件
explain the main architecture patterns used here
what are the key data models?
how is authentication handled?
提示:
- 从广泛的问题开始,然后缩小到特定领域
- 询问项目中使用的编码约定和模式
- 请求项目特定术语的词汇表
查找相关代码
假设您需要定位与特定功能相关的代码。
要求 Claude 查找相关文件
find the files that handle user authentication
获取有关组件如何交互的上下文
how do these authentication files work together?
理解执行流程
trace the login process from front-end to database
提示:
- 明确说明您要查找的内容
- 使用项目中的领域语言
- 为您的语言安装代码智能插件,以便 Claude 能够精确地进行”转到定义”和”查找引用”导航
高效修复错误
假设您遇到了错误消息,需要找到并修复其来源。
与 Claude 分享错误
I'm seeing an error when I run npm test
请求修复建议
suggest a few ways to fix the @ts-ignore in user.ts
应用修复
update user.ts to add the null check you suggested
提示:
- 告诉 Claude 重现问题的命令并获取堆栈跟踪
- 提及重现错误的任何步骤
- 让 Claude 知道错误是间歇性的还是持续的
重构代码
假设您需要更新旧代码以使用现代模式和实践。
识别用于重构的遗留代码
find deprecated API usage in our codebase
获取重构建议
suggest how to refactor utils.js to use modern JavaScript features
安全地应用更改
refactor utils.js to use ES2024 features while maintaining the same behavior
验证重构
run tests for the refactored code
提示:
- 要求 Claude 解释现代方法的优势
- 请求在需要时保持向后兼容性的更改
- 以小的、可测试的增量进行重构
使用专门的 subagents
假设您想使用专门的 AI subagents 来更有效地处理特定任务。
查看可用的 subagents
这显示所有可用的 subagents 并让您创建新的。 自动使用 subagents
Claude Code 自动将适当的任务委派给专门的 subagents:review my recent code changes for security issues
run all tests and fix any failures
明确请求特定的 subagents
use the code-reviewer subagent to check the auth module
have the debugger subagent investigate why users can't log in
为您的工作流创建自定义 subagents
然后选择”Create New subagent”并按照提示定义:
- 描述 subagent 目的的唯一标识符(例如
code-reviewer、api-designer)。
- Claude 何时应该使用此代理
- 它可以访问哪些工具
- 描述代理角色和行为的系统提示
提示:
- 在
.claude/agents/ 中创建项目特定的 subagents 以供团队共享
- 使用描述性的
description 字段来启用自动委派
- 限制工具访问权限为每个 subagent 实际需要的内容
- 查看subagents 文档了解详细示例
使用 Plan Mode 进行安全的代码分析
Plan Mode 指示 Claude 通过使用只读操作分析代码库来创建计划,非常适合探索代码库、规划复杂更改或安全地审查代码。在 Plan Mode 中,Claude 使用 AskUserQuestion 来收集需求并在提出计划之前澄清您的目标。
何时使用 Plan Mode
- 多步骤实现:当您的功能需要对许多文件进行编辑时
- 代码探索:当您想在更改任何内容之前彻底研究代码库时
- 交互式开发:当您想与 Claude 迭代方向时
如何使用 Plan Mode
在会话期间打开 Plan Mode
您可以在会话期间使用 Shift+Tab 循环切换权限模式来切换到 Plan Mode。
如果您处于 Normal Mode,Shift+Tab 首先切换到 Auto-Accept Mode,在终端底部显示 ⏵⏵ accept edits on。随后的 Shift+Tab 将切换到 Plan Mode,显示 ⏸ plan mode on。
在 Plan Mode 中启动新会话
要在 Plan Mode 中启动新会话,请使用 --permission-mode plan 标志:
claude --permission-mode plan
在 Plan Mode 中运行”无头”查询
您也可以使用 -p 在 Plan Mode 中直接运行查询(即在”无头模式”中):
claude --permission-mode plan -p "Analyze the authentication system and suggest improvements"
示例:规划复杂的重构
claude --permission-mode plan
I need to refactor our authentication system to use OAuth2. Create a detailed migration plan.
Claude 分析当前实现并创建全面的计划。通过后续问题进行细化:
What about backward compatibility?
How should we handle database migration?
按 Ctrl+G 在默认文本编辑器中打开计划,您可以在 Claude 继续之前直接编辑它。
将 Plan Mode 配置为默认值
// .claude/settings.json
{
"permissions": {
"defaultMode": "plan"
}
}
有关更多配置选项,请参阅设置文档。
使用测试
假设您需要为未覆盖的代码添加测试。
识别未测试的代码
find functions in NotificationsService.swift that are not covered by tests
生成测试框架
add tests for the notification service
添加有意义的测试用例
add test cases for edge conditions in the notification service
运行并验证测试
run the new tests and fix any failures
Claude 可以生成遵循您项目现有模式和约定的测试。请求测试时,请明确说明您想验证的行为。Claude 检查您现有的测试文件以匹配已在使用的样式、框架和断言模式。
为了获得全面的覆盖,要求 Claude 识别您可能遗漏的边界情况。Claude 可以分析您的代码路径并建议测试错误条件、边界值和容易被忽视的意外输入。
创建拉取请求
您可以通过直接要求 Claude 创建拉取请求(“create a pr for my changes”),或逐步指导 Claude:
总结您的更改
summarize the changes I've made to the authentication module
审查和细化
enhance the PR description with more context about the security improvements
当您使用 gh pr create 创建 PR 时,会话会自动链接到该 PR。您可以稍后使用 claude --from-pr <number> 恢复它。
在提交前审查 Claude 生成的 PR,并要求 Claude 突出显示潜在的风险或注意事项。
处理文档
假设您需要为代码添加或更新文档。
识别未记录的代码
find functions without proper JSDoc comments in the auth module
生成文档
add JSDoc comments to the undocumented functions in auth.js
审查和增强
improve the generated documentation with more context and examples
验证文档
check if the documentation follows our project standards
提示:
- 指定您想要的文档样式(JSDoc、docstrings 等)
- 请求文档中的示例
- 请求公共 API、接口和复杂逻辑的文档
使用图像
假设您需要在代码库中使用图像,并希望 Claude 帮助分析图像内容。
将图像添加到对话中
您可以使用以下任何方法:
- 将图像拖放到 Claude Code 窗口中
- 复制图像并使用 ctrl+v 将其粘贴到 CLI 中(不要使用 cmd+v)
- 向 Claude 提供图像路径。例如,“Analyze this image: /path/to/your/image.png”
要求 Claude 分析图像
What does this image show?
Describe the UI elements in this screenshot
Are there any problematic elements in this diagram?
使用图像获取上下文
Here's a screenshot of the error. What's causing it?
This is our current database schema. How should we modify it for the new feature?
从视觉内容获取代码建议
Generate CSS to match this design mockup
What HTML structure would recreate this component?
提示:
- 当文本描述不清楚或繁琐时使用图像
- 包含错误、UI 设计或图表的屏幕截图以获得更好的上下文
- 您可以在对话中使用多个图像
- 图像分析适用于图表、屏幕截图、模型等
- 当 Claude 引用图像时(例如
[Image #1]),Cmd+Click(Mac)或 Ctrl+Click(Windows/Linux)链接以在默认查看器中打开图像
引用文件和目录
使用 @ 快速包含文件或目录,无需等待 Claude 读取它们。
引用单个文件
Explain the logic in @src/utils/auth.js
这在对话中包含文件的完整内容。引用目录
What's the structure of @src/components?
这提供了带有文件信息的目录列表。引用 MCP 资源
Show me the data from @github:repos/owner/repo/issues
这使用 @server:resource 格式从连接的 MCP 服务器获取数据。有关详细信息,请参阅 MCP 资源。
提示:
- 文件路径可以是相对的或绝对的
- @ 文件引用在文件的目录和父目录中添加
CLAUDE.md 到上下文
- 目录引用显示文件列表,而不是内容
- 您可以在单个消息中引用多个文件(例如,“@file1.js and @file2.js”)
使用扩展思考(Thinking Mode)
扩展思考默认启用,为 Claude 提供空间在响应前逐步推理复杂问题。此推理在详细模式中可见,您可以使用 Ctrl+O 切换。
此外,Opus 4.6 引入了自适应推理:不是固定的思考令牌预算,而是模型根据您的努力级别设置动态分配思考。扩展思考和自适应推理一起工作,让您能够控制 Claude 在响应前的推理深度。
扩展思考对于复杂的架构决策、具有挑战性的错误、多步骤实现规划和评估不同方法之间的权衡特别有价值。
“think”、“think hard” 和 “think more” 等短语被解释为常规提示指令,不分配思考令牌。
配置 Thinking Mode
思考默认启用,但您可以调整或禁用它。
| 范围 | 如何配置 | 详情 |
|---|
| 努力级别 | 在 /model 中调整或设置 CLAUDE_CODE_EFFORT_LEVEL | 控制 Opus 4.6 和 Sonnet 4.6 的思考深度:低、中、高。请参阅调整努力级别 |
ultrathink 关键字 | 在提示中的任何地方包含 “ultrathink” | 在 Opus 4.6 和 Sonnet 4.6 上为该轮设置努力为高。对于需要深度推理的一次性任务很有用,无需永久更改您的努力设置 |
| 切换快捷键 | 按 Option+T(macOS)或 Alt+T(Windows/Linux) | 为当前会话切换思考开/关(所有模型)。可能需要终端配置来启用 Option 键快捷键 |
| 全局默认值 | 使用 /config 切换 Thinking Mode | 在所有项目中设置默认值(所有模型)。 保存为 ~/.claude/settings.json 中的 alwaysThinkingEnabled |
| 限制令牌预算 | 设置 MAX_THINKING_TOKENS 环境变量 | 将思考预算限制为特定数量的令牌(在 Opus 4.6 上被忽略,除非设置为 0)。示例:export MAX_THINKING_TOKENS=10000 |
要查看 Claude 的思考过程,按 Ctrl+O 切换详细模式,并查看显示为灰色斜体文本的内部推理。
扩展思考如何工作
扩展思考控制 Claude 在响应前执行多少内部推理。更多思考提供更多空间来探索解决方案、分析边界情况和自我纠正错误。
使用 Opus 4.6,思考使用自适应推理:模型根据您选择的努力级别(低、中、高)动态分配思考令牌。这是调整速度和推理深度之间权衡的推荐方式。
使用其他模型,思考使用固定预算,最多 31,999 个令牌来自您的输出预算。您可以使用 MAX_THINKING_TOKENS 环境变量限制此,或通过 /config 或 Option+T/Alt+T 切换完全禁用思考。
MAX_THINKING_TOKENS 在 Opus 4.6 和 Sonnet 4.6 上被忽略,因为自适应推理控制思考深度。一个例外:设置 MAX_THINKING_TOKENS=0 仍然在任何模型上完全禁用思考。要禁用自适应思考并恢复到固定思考预算,请设置 CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1。请参阅环境变量。
您需要为所有使用的思考令牌付费,即使 Claude 4 模型显示总结的思考
恢复以前的对话
启动 Claude Code 时,您可以恢复以前的会话:
claude --continue 继续当前目录中最近的对话
claude --resume 打开对话选择器或按名称恢复
claude --from-pr 123 恢复链接到特定拉取请求的会话
从活跃会话内,使用 /resume 切换到不同的对话。
会话按项目目录存储。/resume 选择器显示来自同一 git 存储库的会话,包括 worktrees。
命名您的会话
给会话起描述性名称以便稍后找到它们。这是在处理多个任务或功能时的最佳实践。
命名当前会话
在会话期间使用 /rename 给它一个易记的名称:您也可以从选择器重命名任何会话:运行 /resume,导航到会话,然后按 R。 稍后按名称恢复
从命令行:claude --resume auth-refactor
或从活跃会话内:
使用会话选择器
/resume 命令(或 claude --resume 不带参数)打开具有以下功能的交互式会话选择器:
选择器中的键盘快捷键:
| 快捷键 | 操作 |
|---|
↑ / ↓ | 在会话之间导航 |
→ / ← | 展开或折叠分组的会话 |
Enter | 选择并恢复突出显示的会话 |
P | 预览会话内容 |
R | 重命名突出显示的会话 |
/ | 搜索以过滤会话 |
A | 在当前目录和所有项目之间切换 |
B | 过滤到来自当前 git 分支的会话 |
Esc | 退出选择器或搜索模式 |
会话组织:
选择器显示带有有用元数据的会话:
- 会话名称或初始提示
- 自上次活动以来经过的时间
- 消息计数
- Git 分支(如果适用)
分叉的会话(使用 /rewind 或 --fork-session 创建)在其根会话下分组,使查找相关对话更容易。
提示:
- 尽早命名会话:在开始处理不同任务时使用
/rename——稍后找到 “payment-integration” 比 “explain this function” 容易得多
- 使用
--continue 快速访问当前目录中最近的对话
- 当您知道需要哪个会话时使用
--resume session-name
- 当您需要浏览和选择时使用
--resume(不带名称)
- 对于脚本,使用
claude --continue --print "prompt" 以非交互模式恢复
- 在选择器中按
P 在恢复前预览会话
- 恢复的对话以与原始对话相同的模型和配置开始
工作原理:
- 对话存储:所有对话都自动保存在本地,包含完整的消息历史记录
- 消息反序列化:恢复时,整个消息历史记录被恢复以保持上下文
- 工具状态:来自以前对话的工具使用和结果被保留
- 上下文恢复:对话以所有以前的上下文完整恢复
使用 Git worktrees 运行并行 Claude Code 会话
同时处理多个任务时,您需要每个 Claude 会话都有自己的代码库副本,以便更改不会冲突。Git worktrees 通过创建单独的工作目录来解决这个问题,每个目录都有自己的文件和分支,同时共享相同的存储库历史记录和远程连接。这意味着您可以让 Claude 在一个 worktree 中处理功能,同时在另一个 worktree 中修复错误,而不会相互干扰。
使用 --worktree(-w)标志创建隔离的 worktree 并在其中启动 Claude。您传递的值成为 worktree 目录名称和分支名称:
# 在名为 "feature-auth" 的 worktree 中启动 Claude
# 创建 .claude/worktrees/feature-auth/ 和新分支
claude --worktree feature-auth
# 在单独的 worktree 中启动另一个会话
claude --worktree bugfix-123
如果您省略名称,Claude 会自动生成一个随机名称:
# 自动生成名称如 "bright-running-fox"
claude --worktree
Worktrees 在 <repo>/.claude/worktrees/<name> 创建,并从默认远程分支分支。worktree 分支命名为 worktree-<name>。
您也可以在会话期间要求 Claude “work in a worktree” 或 “start a worktree”,它会自动创建一个。
Subagent worktrees
Subagents 也可以使用 worktree 隔离来并行工作而不会冲突。要求 Claude “use worktrees for your agents” 或在自定义 subagent 中通过在代理的 frontmatter 中添加 isolation: worktree 来配置它。每个 subagent 获得自己的 worktree,当 subagent 完成而没有更改时自动清理。
Worktree 清理
当您退出 worktree 会话时,Claude 根据您是否进行了更改来处理清理:
- 无更改:worktree 及其分支自动删除
- 存在更改或提交:Claude 提示您保留或删除 worktree。保留会保留目录和分支,以便您稍后可以返回。删除会删除 worktree 目录及其分支,丢弃所有未提交的更改和提交
要在 Claude 会话外清理 worktrees,请使用手动 worktree 管理。
将 .claude/worktrees/ 添加到您的 .gitignore 以防止 worktree 内容在主存储库中显示为未跟踪的文件。
手动管理 worktrees
为了更好地控制 worktree 位置和分支配置,直接使用 Git 创建 worktrees。当您需要检出特定的现有分支或将 worktree 放在存储库外时,这很有用。
# 使用新分支创建 worktree
git worktree add ../project-feature-a -b feature-a
# 使用现有分支创建 worktree
git worktree add ../project-bugfix bugfix-123
# 在 worktree 中启动 Claude
cd ../project-feature-a && claude
# 完成时清理
git worktree list
git worktree remove ../project-feature-a
在官方 Git worktree 文档中了解更多。
记住根据您的项目设置在每个新 worktree 中初始化您的开发环境。根据您的堆栈,这可能包括运行依赖项安装(npm install、yarn)、设置虚拟环境或遵循您的项目标准设置过程。
非 git 版本控制
Worktree 隔离默认使用 git。对于其他版本控制系统如 SVN、Perforce 或 Mercurial,配置 WorktreeCreate 和 WorktreeRemove hooks 以提供自定义 worktree 创建和清理逻辑。配置后,这些 hooks 在您使用 --worktree 时替换默认的 git 行为。
对于具有共享任务和消息的并行会话的自动协调,请参阅代理团队。
在 Claude 需要您的注意时获得通知
当您启动长时间运行的任务并切换到另一个窗口时,您可以设置桌面通知,以便在 Claude 完成或需要您的输入时了解。这使用 Notification hook 事件,每当 Claude 等待权限、空闲并准备好新提示或完成身份验证时触发。
打开 hooks 菜单
输入 /hooks 并从事件列表中选择 Notification。
配置匹配器
选择 + Match all (no filter) 以在所有通知类型上触发。要仅针对特定事件通知,选择 + Add new matcher… 并输入以下值之一:| 匹配器 | 触发时机 |
|---|
permission_prompt | Claude 需要您批准工具使用 |
idle_prompt | Claude 完成并等待您的下一个提示 |
auth_success | 身份验证完成 |
elicitation_dialog | Claude 在问您一个问题 |
添加您的通知命令
选择 + Add new hook… 并输入您的操作系统的命令: macOS
Linux
Windows (PowerShell)
使用 osascript 通过 AppleScript 触发本机 macOS 通知:osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'
使用 notify-send,它在大多数带有通知守护程序的 Linux 桌面上预装:notify-send 'Claude Code' 'Claude Code needs your attention'
使用 PowerShell 通过 .NET 的 Windows Forms 显示本机消息框:powershell.exe -Command "[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('Claude Code needs your attention', 'Claude Code')"
保存到用户设置
选择 User settings 以在所有项目中应用通知。
有关完整的演练和 JSON 配置示例,请参阅使用 hooks 自动化工作流。有关完整的事件架构和通知类型,请参阅通知参考。
将 Claude 用作 unix 风格的实用程序
将 Claude 添加到您的验证过程
假设您想使用 Claude Code 作为 linter 或代码审查者。
将 Claude 添加到您的构建脚本:
// package.json
{
...
"scripts": {
...
"lint:claude": "claude -p 'you are a linter. please look at the changes vs. main and report any issues related to typos. report the filename and line number on one line, and a description of the issue on the second line. do not return any other text.'"
}
}
提示:
- 在您的 CI/CD 管道中使用 Claude 进行自动代码审查
- 自定义提示以检查与您的项目相关的特定问题
- 考虑为不同类型的验证创建多个脚本
管道进出
假设您想将数据管道传入 Claude,并获取结构化格式的数据。
通过 Claude 管道数据:
cat build-error.txt | claude -p 'concisely explain the root cause of this build error' > output.txt
提示:
- 使用管道将 Claude 集成到现有的 shell 脚本中
- 与其他 Unix 工具结合以实现强大的工作流
- 考虑使用 —output-format 获取结构化输出
控制输出格式
假设您需要 Claude 的输出采用特定格式,特别是在将 Claude Code 集成到脚本或其他工具时。
使用文本格式(默认)
cat data.txt | claude -p 'summarize this data' --output-format text > summary.txt
这输出仅 Claude 的纯文本响应(默认行为)。使用 JSON 格式
cat code.py | claude -p 'analyze this code for bugs' --output-format json > analysis.json
这输出包含元数据(包括成本和持续时间)的消息的 JSON 数组。使用流式 JSON 格式
cat log.txt | claude -p 'parse this log file for errors' --output-format stream-json
这在 Claude 处理请求时实时输出一系列 JSON 对象。每条消息都是有效的 JSON 对象,但如果连接,整个输出不是有效的 JSON。
提示:
- 对于简单集成(您只需要 Claude 的响应),使用
--output-format text
- 当您需要完整的对话日志时使用
--output-format json
- 对于每个对话轮次的实时输出,使用
--output-format stream-json
询问 Claude 关于其功能
Claude 内置访问其文档,可以回答关于其自身功能和限制的问题。
示例问题
can Claude Code create pull requests?
how does Claude Code handle permissions?
what skills are available?
how do I use MCP with Claude Code?
how do I configure Claude Code for Amazon Bedrock?
what are the limitations of Claude Code?
Claude 根据文档提供对这些问题的答案。有关可执行示例和实际演示,请参阅上面的特定工作流部分。
提示:
- Claude 始终可以访问最新的 Claude Code 文档,无论您使用的版本如何
- 提出具体问题以获得详细答案
- Claude 可以解释复杂的功能,如 MCP 集成、企业配置和高级工作流
后续步骤