AI

Claude Code 高效工作流:验证、规划与上下文管理

本文总结了 Claude Code 的几项核心实践,旨在提升 AI 编程的效率与质量。首先,强调为 Claude 提供验证标准,包括编写测试用例、视觉对比和根因修复,并可通过单次提示、会话目标、确定性门控或二次意见等方式实施。其次,推荐“先探索、再规划、后编码”的工作流程,确保变更基于充分理解。然后,指导用户提供具体上下文,如明确任务范围、指向相关文件、参考现有模式、描述症状,并利用 @文件引用、图片、URL 和管道数据等丰富内容。最后,介绍如何通过编写有效的 CLAUDE.md、配置权限、使用 CLI 工具、连接 MCP 服务器、设置钩子、创建技能和自定义子代理来优化环境,以及如何通过提问和让 Claude 访谈来有效沟通。

管理员·36 阅读·2026-09-09 20:48
Claude Code 高效工作流:验证、规划与上下文管理

Claude Code 高效工作流:验证、规划与上下文管理

Claude Code 作为强大的 AI 编程助手,其效能的充分发挥依赖于用户如何引导它。本文将深入探讨几项核心实践,帮助你构建高效、可靠的工作流,从而提升代码质量与开发效率。

一、为 Claude 提供验证途径

AI 生成代码后,验证其正确性至关重要。Claude Code 支持多种验证方式,确保输出符合预期。

1. 提供明确的验证标准

在提示中明确指定验证条件,例如:

  • 功能测试:要求实现 validateEmail 函数,并附带测试用例(如 user@example.com 应返回 true,invaliduser@.com 应返回 false),并让 Claude 在实现后运行测试。
  • 视觉验证:对于 UI 改动,可粘贴设计截图,要求 Claude 实现后截图对比,列出差异并修复。
  • 根因修复:当构建失败时,提供错误信息,要求 Claude 定位并修复根本原因,而非抑制错误,并验证构建成功。

2. 实施验证的多种方式

  • 单次提示:在同一消息中要求 Claude 执行检查并迭代,如上表所示。
  • 会话目标:将检查设置为 /goal 条件,独立的评估器会在每轮后重新检查,直到通过。
  • 确定性门控:使用 Stop hook 运行检查脚本,若未通过则阻止回合结束(连续 8 次后强制结束)。
  • 二次意见:使用验证子代理或动态工作流,让新模型尝试反驳结果,避免“自己评分”的偏差。

二、先探索,再规划,后编码

在让 Claude 修改代码前,引导它先理解现有代码结构,制定计划,再实施变更。

  • 探索:例如,要求 Claude 阅读 /src/auth 了解会话和登录处理方式,以及环境变量管理。
  • 规划:询问需要修改哪些文件、会话流程如何,生成实施计划。
  • 实施:根据计划实现功能,编写测试,运行测试套件并修复失败。
  • 提交:使用描述性信息提交,并创建 Pull Request。

三、在提示中提供具体上下文

模糊的提示会导致模糊的结果。提供具体上下文能显著提升 Claude 的响应质量。

  • 明确任务范围:指定文件、场景和测试偏好。例如:“为 foo.py 编写测试,覆盖用户登出的边界情况,避免使用 mock。”
  • 指向信息源:引导 Claude 查阅相关文档或代码历史。例如:“查看 ExecutionFactory 的 git 历史,总结其 API 的演变。”
  • 参考现有模式:指出代码库中已有的实现模式。例如:“参考主页上现有 widget 的实现方式(如 HotDogWidget.php),实现一个日历 widget,支持月份选择和年份翻页,仅使用代码库已有的库。”
  • 描述症状:提供问题现象、可能位置和“修复完成”的定义。例如:“用户报告会话超时后登录失败,检查 src/auth/ 中的认证流程,特别是 token 刷新,先编写复现问题的失败测试,再修复。”

丰富上下文内容

  • 使用 @ 引用文件,Claude 会在响应前读取。
  • 直接粘贴图片(复制或拖拽)。
  • 提供文档和 API 参考的 URL,并通过 /permissions 允许常用域名。
  • 通过管道传递数据,如 cat error.log | claude
  • 让 Claude 自行获取所需上下文,使用 Bash 命令、MCP 工具或读取文件。

四、配置你的环境

编写有效的 CLAUDE.md

CLAUDE.md 是项目级指令文件,用于指导 Claude 的行为。应包含:

  • 代码风格:如使用 ES 模块而非 CommonJS,解构导入等。
  • 工作流:如类型检查、优先运行单个测试等。
  • Bash 命令:Claude 无法猜测的命令。
  • 测试指令:测试运行器和偏好。
  • 仓库规范:分支命名、PR 约定等。
  • 架构决策:项目特定的架构信息。
  • 常见陷阱:非显而易见的行为。

避免包含 Claude 可从代码中推断的内容、标准语言约定、详细 API 文档(可链接)、冗长解释、显而易见的实践(如“写干净代码”)以及逐文件描述。

CLAUDE.md 的放置位置:

  • ~/.claude/CLAUDE.md:全局生效。
  • ./CLAUDE.md:项目根目录,可提交到 git 与团队共享。
  • ./CLAUDE.local.md:个人项目笔记,应加入 .gitignore。
  • 父目录:适用于 monorepo,自动合并。
  • 子目录:Claude 按需读取。

配置权限

  • 自动模式:分类器模型审查命令,仅阻止风险操作(如权限提升、未知基础设施)。
  • 权限白名单:允许特定安全工具,如 npm run lintgit commit
  • 沙箱:启用 OS 级隔离,限制文件系统和网络访问。

使用 CLI 工具、连接 MCP 服务器、设置钩子、创建技能

  • CLI 工具:利用命令行工具扩展功能。
  • MCP 服务器:连接外部服务,丰富上下文。
  • 钩子(Hooks):在特定事件触发自定义脚本,如验证门控。
  • 技能(Skills):创建可复用的指令集,如 API 约定或修复 GitHub 问题。

创建自定义子代理

子代理是特定任务的专用代理,可定义工具和模型。例如,安全审查子代理:

markdown
---
name: security-reviewer
description: Reviews code for security vulnerabilities
tools: Read, Grep, Glob, Bash
model: opus
---
You are a senior security engineer. Review code for:
- Injection vulnerabilities (SQL, XSS, command injection)
- Authentication and authorization flaws
- Secrets or credentials in code
- Insecure data handling

Provide specific line references and suggested fixes.

五、有效沟通

提出代码库问题

  • 日志记录如何工作?
  • 如何创建新的 API 端点?
  • foo.rs 第 134 行的 async move { ... } 是做什么的?
  • CustomerOnboardingFlowImpl 处理哪些边界情况?
  • 为什么第 333 行调用 foo() 而不是 bar()

让 Claude 访谈你

对于复杂需求,可让 Claude 使用 AskUserQuestion 工具进行详细访谈,涵盖技术实现、UI/UX、边界情况、关注点和权衡,然后生成完整规格说明。

六、管理会话

  • 及时纠偏:按 Esc 可中断 Claude,上下文保留,可重定向。
  • 回退:按 Esc 两次或运行 /rewind 可恢复之前的对话和代码。

通过遵循以上实践,你将能更高效地利用 Claude Code,获得更准确、可靠的代码结果。

数据来源

查看来源页
下一篇

Claude多智能体研究系统架构解析

相关推荐

查看更多