掌握 Claude Code:从提示到可编程工程
对于许多人来说,Claude Code 被用作高端自动补全——一种在输入提示后接受建议的工具。然而,随意使用与将 Claude Code 视为可编程代理之间存在巨大的差异。当内化后,该工具从提示等待的聊天机器人转变为具有记忆、自定义命令以及随时间价值复合的项目设置的自主系统。
要超越基础,你必须停止逐行指导模型,而是开始委派。核心理念,由 Boris Cherny 和 Anthropic 团队倡导,是 给 Claude 提供一种验证自身工作的方式。通过建立确定性的反馈回路——例如运行测试套件或 lint 命令——Claude 可以独立迭代,直至解决方案真正可行,从而实现输出质量的 2‑3 倍提升。
战略工作流:探索、计划、执行
高杠杆用户避免直接跳入代码。相反,他们遵循有纪律的顺序:
- Explore: 使用计划模式(
Shift+Tab两次)进行只读探索。追踪数据流并在不修改文件的情况下了解模型。 - Plan: 生成技术计划。对于复杂的更改,常见的高级用户模式是让一个 Claude 会话编写计划,另一个全新的会话以“资深工程师”身份审查,以消除上下文偏差。
- Execute: 仅在计划经过审查(并可能通过编辑器中的
Ctrl+G进行微调)后才开始实现。
在整个过程中,精确至关重要。不要描述模块,而是直接引用它(例如 @src/auth/login.py)。当出现错误时,将其直接管道输入会话:cat error.log | claude。
使用 .claude 目录进行工程记忆
Claude Code 使用分层配置系统,将项目特定需求与个人偏好分离。这通过 .claude/ 目录进行管理。
CLAUDE.md 的作用
CLAUDE.md 是项目代理记忆的核心。它在每个会话开始时加载。最有效的 CLAUDE.md 文件简洁且专注于构建命令、类型检查流程以及项目特定的“陷阱”。
对工程复合至关重要的习惯是让 Claude 编写自己的规则。当模型出错时,提示应为:“更新 CLAUDE.md,以免再次出现此错误。” 随着时间推移,这会将文件转变为代码库中每个架构怪癖和常见陷阱的精选列表。
通过 CLAUDE.local.md 实现个性化
虽然 CLAUDE.md 通过 git 共享,但 CLAUDE.local.md 是私有的。这是存放 PR 评审反馈的理想位置。通过记录来自人工审阅者的重复挑剔,你可以确保 Claude 在后续迭代中应用这些特定偏好,从而在项目中实现对自身专业成长的自动化。
扩展专长:技能与子代理
技能作为可复用专长
技能是可复用专长的单元,定义在 .claude/skills/<name>/SKILL.md 中。与简单命令不同,技能可以捆绑模板、引用文档以及内联 shell 命令(使用 ! 前缀)。
关键优势包括:
- Progressive Disclosure: 仅在最初加载描述;完整指令仅在调用技能时加载。
- Explicit Control: 使用
disable-model-invocation: true可确保高影响力的技能(如用于部署的/ship)仅在用户明确调用时运行。
子代理用于上下文隔离
子代理在其自己的上下文窗口中运行,使其能够处理大量数据(例如读取五十个文件),而不会污染主会话。这对于 Writer/Reviewer 模式 尤为强大:会话 A 实现功能,而 pr-review 子代理在全新上下文中评估工作,避免实现偏差。
通过模型上下文协议 (MCP) 实现系统感知
MCP 将 Claude 从编码代理转变为具备系统感知的代理。通过连接外部服务器,Claude 能直接在终端与 GitHub、Sentry、Linear 和 Figma 等工具交互。
一种高级实现是使用 Obsidian MCP 的 三层存储架构:
- Hot Storage: 每日会话日志,捕获原始进展。
- Warm Storage: 项目特定的笔记和目标。
- Cold Storage: 长期的架构决策记录(ADRs)和可复用的知识原子。
高级命令与自动化
超出基本交互,有几条未被充分利用的命令可显著提升生产力:
/rewind:将会话恢复到先前的检查点,防止在路径走向死胡同时导致上下文污染。/goal:设置确定性的完成条件(例如 “test/auth中的所有测试通过”)。结合 auto-mode 和/focus,用户可以设定简短目标并离开,直至目标达成。/batch:将任务分发给多个 git 工作树中的并行代理,实现大规模迁移,手动工作量最小化。
批判性视角与权衡
尽管生产力潜力很高,社区对 “代理” 方法仍然存在分歧。一些开发者认为,维护 .md 文件和编排子代理的开销会引入 “意外复杂性”,并且 AI 本应能够在无需此类辅助的情况下本质上理解代码库。
另一些人指出 “SaaS 锁定” 的风险,即项目的智能被困在特定工具的配置中。还存在生成速度与模型质量之间的紧张关系;许多高级用户更倾向于使用 Opus 的较慢、更审慎的输出,而非更小、更快的模型,以减少纠错时间。
归根结底,转变是从 使用 工具到 操作 系统。最成功的用户是将设置——规则、技能和验证循环——视为主要工程任务,并将执行交给代理的人。