Skip to content

Claude Code 实战工作流

本文汇集了 Claude Code 日常使用中最有效的提示模式、工作流和社区最佳实践。适用于探索代码库、调试、重构、CI/CD 自动化,以及从单会话任务到多会话协作的各种场景。

补充阅读Claude Code 最佳实践 → 社区技巧精选 — 来自社区的 127+ settings 调优、40+ 提示词技巧、Hooks Mastery 模式。

核心理念

Claude Code 不是聊天机器人,而是代理式编码环境。它能读取文件、运行命令、进行更改,并自主解决问题。这种自主性意味着:

  • 描述你想要什么,而不是怎么做:让 Claude 弄清楚如何构建
  • Context 是最宝贵的资源:上下文窗口满了,性能就会下降
  • 给 Claude 能验证自己的方式:让它运行测试、lint、构建,自己检查结果

第一部分:日常开发工作流

1. 理解新代码库

逐步深入:从广泛的问题开始,逐步缩小到特定领域。

给我这个代码库的概览
解释这里使用的主要架构模式
关键数据模型是什么?
身份验证是如何处理的?

查找相关代码

查找处理用户身份验证的文件
这些文件如何协同工作?
追踪从前端到数据库的登录流程

提示

  • 使用项目中的领域语言
  • 要求 Claude 解释项目中使用的编码约定和模式
  • 为语言安装代码智能插件,以获得精确的符号导航能力

2. 高效修复 Bug

我运行 npm test 时看到这个错误:[粘贴错误信息/截图]
建议几种修复 user.ts 中 @ts-ignore 的方法
按你建议的方式更新 user.ts,添加 null 检查

关键原则

  • 告诉 Claude 重现问题的命令,获取堆栈跟踪
  • 提及重现错误的任何步骤
  • 让 Claude 知道错误是间歇性的还是持续的
  • 不要只修复症状:要求 Claude 找到并修复根本原因
构建失败,出现此错误:[粘贴错误]。
修复它并验证构建成功。解决根本原因,不要抑制错误。

3. 重构代码

查找代码库中已废弃的 API 使用
建议如何重构 utils.js 使用现代 JavaScript 特性
重构 utils.js 使用 ES2024 特性,同时保持相同行为
运行重构后代码的测试

提示:以小的、可测试的增量进行重构。每次重构后运行测试。

4. 编写测试

查找 NotificationsService.swift 中未被测试覆盖的函数
为通知服务添加测试
为通知服务的边界条件添加测试用例
运行新测试并修复任何失败

Claude 会检查现有测试文件,匹配已有的风格、框架和断言模式。要求 Claude 识别你可能遗漏的边界情况。

5. 创建 PR

总结我对身份验证模块所做的更改
创建 PR
用更多关于安全改进的上下文增强 PR 描述

使用 gh pr create 创建 PR 时,会话会自动链接到该 PR。稍后可通过 claude --from-pr 123 返回。

6. 处理文档

查找 auth 模块中没有 JSDoc 注释的函数
为 auth.js 中未文档化的函数添加 JSDoc 注释
用更多上下文和示例改进生成的文档
检查文档是否符合我们的项目标准

提示:指定文档样式(JSDoc、docstrings 等),请求包含示例,重点关注公共 API、接口和复杂逻辑。

7. 在非代码文件夹中工作

Claude Code 可以在任何目录中工作。在笔记库、文档文件夹或任何 markdown 文件集合中运行它,以搜索、编辑和重新组织内容,就像处理代码一样。.claude/ 目录和 CLAUDE.md 与其他工具的配置目录并排存在,不会产生冲突。

8. 使用图像分析

将图像拖放到 Claude Code 窗口中,或复制粘贴(Mac 上 Cmd+V 也适用于 iTerm2),或提供图像路径:

分析这张图:/path/to/screenshot.png
描述这个截图中的 UI 元素
这张数据库架构图有什么问题?
根据这个设计稿生成 CSS

当 Claude 引用图像时(例如 [Image #1]),Cmd+Click(Mac)或 Ctrl+Click(Windows/Linux)可在默认查看器中打开图像。


第二部分:高效沟通模式

提示词写法:Before / After

策略模糊具体
限定任务范围"为 foo.py 添加测试""为 foo.py 编写测试,涵盖用户已注销的边界情况。避免 mock。"
指向来源"为什么 ExecutionFactory 有奇怪的 API?""查看 ExecutionFactory 的 git 历史并总结其 API 是如何形成的"
参考现有模式"添加日历小部件""查看主页上现有小部件的实现方式以了解模式。HotDogWidget.php 是一个很好的例子。按照模式实现。"
描述症状"修复登录错误""用户报告会话超时后登录失败。检查 src/auth/ 中的身份验证流程。编写失败的测试重现问题,然后修复。"

提供丰富上下文的方式

方式示例
@ 引用文件解释 @src/utils/auth.js 中的逻辑 — 包含文件的完整内容
@ 引用目录@src/components 的结构是什么? — 提供文件列表
粘贴图像复制/粘贴或拖放截图到提示中
提供 URL用于文档和 API 参考
管道数据cat error.log | claude 直接发送文件内容
让 Claude 自己获取"用 Bash 命令自己拉取上下文"

@ 文件引用的额外好处:在文件的目录和父目录中添加 CLAUDE.md 到上下文。可以在单个消息中引用多个文件(如 @file1.js and @file2.js)。

让 Claude 采访你

对复杂功能,先让 Claude 采访你,再开始实现:

我想构建 [简要描述]。用 AskUserQuestion 工具详细采访我。

询问技术实现、UI/UX、边界情况、关注点和权衡。
不要问显而易见的问题,深入挖掘我可能没考虑到的难点。

持续采访直到我们覆盖了所有内容,然后将完整规范写入 SPEC.md。

完成后,启动新会话来执行规范——干净的 context 完全专注于实现。


第三部分:让 Claude 自我验证

核心原则:不要接受 Claude 的第一次输出就结束。 给 Claude 能产生"通过/失败"信号的东西,循环就会自动关闭。

验证策略对比

策略BeforeAfter
提供验证标准"实现一个验证邮箱地址的函数""编写 validateEmail 函数。示例测试用例:user@example.com 为真,invalid 为假,user@.com 为假。实现后运行测试"
视觉验证 UI 更改"让仪表板看起来更好""[粘贴截图] 实现此设计。对结果截图并与原始设计比较。列出差异并修复它们"
解决根本原因"构建失败""构建失败,出现此错误:[粘贴错误]。修复它并验证构建成功。解决根本原因,不要抑制错误"

验证深度选择

深度方法适用场景
轻量在一个提示中要求 Claude 运行检查并迭代单次任务
中等设置 /goal 条件,Claude 持续工作直到条件成立跨多个轮次的任务
强约束Stop hook 运行检查脚本,阻止继续直到通过无人值守的自动化
独立审查子代理用新鲜模型审查结果,尝试反驳正确性检查

对抗性审查

你刚才的实现可能存在什么问题?扮演安全工程师审查一遍
使用子代理根据 PLAN.md 审查这次更改。检查每个要求是否已实现、
列出的边界情况是否有测试,以及任务范围之外是否有任何更改。
报告缺陷,而不是风格偏好。

审查者作为子代理运行,实现会话直接接收缺陷,可以修复并重新审查,无需在窗口之间复制发现。

验证模式速查

模式流程何时使用
Writer → Reviewer一个会话写代码,另一个独立审查需要无偏见的代码审查
Tests → Iterate → Pass先写测试,再实现,循环直到通过明确定义的需求
Plan → Implement → Verify先规划再实现,用子代理验证复杂架构变更

第四部分:会话管理

生命周期命令

bash
# 恢复最近的会话
claude --continue

# 从列表中选择恢复
claude --resume

# 从 PR 恢复
claude --from-pr 123

# 会话内恢复
/resume

方向控制

操作快捷键/命令效果
中途停止Esc停止 Claude,保留 context,可重定向
回退菜单Esc + Esc/rewind恢复对话和代码状态,或从消息总结
撤销更改"撤销那个"让 Claude 恢复其更改
重置上下文/clear在不相关任务之间释放 context window

何时 /clear

  • 在不相关的任务之间
  • 对同一问题改正 Claude 两次以上后(context 已被失败方法污染)
  • 长会话积累了大量无关 context

Context 管理策略

策略适用场景
/clear任务之间完全重置
/compact <instructions>压缩对话但保留关键信息
/rewind → 总结只压缩对话的一部分
/btw快速问题,答案不进入对话历史

给会话起名字

给会话起描述性名称(如 oauth-migration),方便后续查找。在 CLAUDE.md 中设置压缩偏好:

When compacting, always preserve the full list of modified files and any test commands

第五部分:自动化与扩展

非交互模式(CI / 脚本)

bash
# 一次性查询
claude -p "Explain what this project does"

# 结构化输出
claude -p "List all API endpoints" --output-format json

# 流式输出(实时处理)
claude -p "Analyze this log file" --output-format stream-json --verbose

# 管道输入
git log --oneline -20 | claude -p "summarize these recent commits"

并行会话

方法隔离级别适用场景
Worktrees完全隔离(不同 git 分支)功能 A 和功能 B 并行开发
桌面 App可视化管理多个本地会话需要同时监控多个任务
Web 版云端虚拟机不在本地机器时
Agent Teams自动协调多个会话复杂任务自动分发

Writer/Reviewer 模式

会话 A(Writer)会话 B(Reviewer)
为 API 端点实现速率限制器
审查 src/middleware/rateLimiter.ts。查找边界情况、竞态条件和与现有中间件模式的一致性。
根据审查反馈修复问题

新鲜 context 改进了代码审查,因为 Claude 不会偏向于它刚刚编写的代码。

计划任务

选项运行位置最适合
RoutinesAnthropic 管理的云基础设施即使计算机关闭也应该运行的任务。支持 API 调用和 GitHub 事件触发
桌面计划任务本地机器需要直接访问本地文件或未提交更改的任务
GitHub ActionsCI 管道与仓库事件(打开的 PR)相关的任务
/loop当前 CLI 会话会话打开时的快速轮询

为计划任务写 prompt 时,明确说明成功标准和结果处理方式——任务自主运行,不能提出澄清问题。


第六部分:常见失败模式与规避

失败模式表现修复
厨房水槽会话从一个任务跳到另一个,context 充满无关信息不相关任务之间 /clear
反复改正Claude 做错 → 你改正 → 还是错 → 再改正两次失败后,/clear 并用更好的初始提示重新开始
过度 CLAUDE.mdCLAUDE.md 太长,Claude 忽略重要规则无情修剪;如果 Claude 没有指令也能做对,就删除
信任-验证鸿沟实现看起来合理但不处理边界情况始终提供验证(测试、脚本、截图)
无限探索"调查 X" 没有限定范围,Claude 读数百个文件限定调查范围或用 subagents

第七部分:CLAUDE.md 最佳实践

✅ 应该包含

  • Claude 无法猜测的 Bash 命令
  • 与默认值不同的代码风格规则
  • 测试指令和首选测试运行器
  • 存储库礼仪(分支命名、PR 约定)
  • 开发者环境怪癖(必需的环境变量)
  • 常见陷阱或非显而易见的行为

❌ 应该排除

  • Claude 可以通过读取代码弄清楚的任何东西
  • 标准语言约定(Claude 已经知道)
  • 详细的 API 文档(改为链接到文档)
  • 经常变化的信息
  • 长解释或教程
  • 自明的实践(如"编写干净的代码")

CLAUDE.md 文件位置

位置作用范围
~/.claude/CLAUDE.md所有 Claude 会话(个人全局)
./CLAUDE.md项目根目录,检入 git 与团队共享
./CLAUDE.local.md个人项目笔记,添加到 .gitignore
子目录/CLAUDE.md处理该目录中的文件时自动加载

CLAUDE.md 维护原则

  • 保持简短:每一行都要回答"删除这个会导致 Claude 犯错吗?"
  • 如果 Claude 继续做你不想要的事,文件可能太长
  • 像对待代码一样对待它:审查、定期修剪、测试更改是否实际改变了行为
  • 可以通过 @path/to/import 语法导入其他文件

第八部分:扩展 Claude Code 选型指南

Claude Code 有多个扩展点,应该用哪个?

扩展点何时使用生命周期
CLAUDE.md持久上下文:代码风格、命令、工作流规则每次对话加载
Skills按需加载的专项工作流Claude 自动识别场景时加载
Hooks必须在特定时间点确定性执行的脚本工具调用前后自动触发
Subagents需要独立 context 的调查/审查任务主代理生成并行子代理
Plugins社区/团队发布的打包扩展安装后按需使用
MCP Servers连接外部工具和服务持久连接,工具调用时使用

决策规则

  • 需要"每次对话都加载的规则" → CLAUDE.md
  • 需要"特定场景才用的工作流" → Skill
  • 需要"文件编辑后必须执行的脚本" → Hook
  • 需要"探索大量文件不污染主 context" → Subagent
  • 需要"社区打包好的能力" → Plugin

第九部分:跨文件并行处理

对于大型迁移或分析,可以跨多个并行 Claude 调用分配工作:

bash
# 管道输出到 Claude 处理
git log --oneline -20 | claude -p "summarize these recent commits"

# 结构化输出供脚本消费
claude -p "List all API endpoints" --output-format json | jq '.endpoints[]'

使用 --verbose 进行调试,生产环境关闭。


相关页面

为前端工程师打造 · 基于 VitePress 构建