将 Claude Code 作为日常开发工具:Claude.md、技能、子代理、插件与 MCP
速览
本文探讨了将 Claude Code 作为主要开发工具的最佳实践。通过配置 Claude.md 文件、利用内置技能、管理子代理以及集成插件和 MCP 协议,开发者可以显著提升编码效率。这些功能共同构建了一个高度自动化且可扩展的 AI 辅助编程工作流。
AI 深度解读
Claude Code 作为日常主力工具:深度解读
背景
许多开发者在使用 Claude Code 时,仅将其视为一个“提示-等待”式的聊天机器人,输入提示词后接受第一个建议,就像对待一个高级的自动补全工具。这种用法往往导致效率低下。作者分享了一个典型案例:他花费 40 分钟进行的代码重构,如果让 Claude Code 以正确的方式运行,仅需 4 分钟即可完成。
这种效率差距并非源于模型本身的能力,而是源于围绕模型的工作流。作者主张将 Claude Code 视为一个可编程的自主代理(Autonomous Agent),通过持久化记忆、自定义命令、跨工作树的并行会话以及不断优化的项目布局,来显著提升开发效率。本文基于 Anthropic 团队(特别是 Boris Cherny 和 Cat Wu)的理念,深入探讨如何超越基础用法,将 Claude Code 打造为日常开发的主力工具。
核心内容
1. 超越基础:从聊天机器人到自主代理
核心原则是赋予 Claude 自我验证工作的能力。如果没有这个闭环,开发者就是唯一的反馈信号;有了它,Claude 会迭代直到代码真正运行。据 Boris Cherny 估计,这一单一举措可将代码质量提升 2-3 倍。
具体操作模式包括:
- 探索、规划、编码:按
Shift+Tab两次进入只读的“规划模式”(Plan Mode)。让 Claude 读取文件、追踪流程、映射数据模型并生成计划。对于小修复可跳过规划,但对于涉及多文件的变更,必须先规划再执行。 - 将规划模式视为设计文档:由一个 Claude 会话编写计划,再启动第二个独立的 Claude 会话,以“高级工程师”的身份审查该计划,消除上下文偏见,从而发现潜在漏洞。如果实施出错,返回规划模式并加入验证步骤重新规划。
- 引用而非描述:避免模糊的描述(如“看看认证模块”),而是使用
@src/auth/login.py直接引用文件。避免粘贴错误信息,而是使用管道命令cat error.log | claude传递精确上下文。 - 委派而非结对编程:Cat Wu 指出,模型在被视为“被委派任务的工程师”而非“逐行指导的结对伙伴”时表现最佳。 upfront 写出清晰的简报,然后让其运行。
- 编辑规划:按
Ctrl+G在编辑器中打开 Claude 的规划文本进行调整,因为规划只是文本,在变成代码前塑造它至关重要。 - 自我修正规则:当 Claude 犯错时,在提示词末尾加上“更新 CLAUDE.md 以防止重复此错误”。Claude 擅长从失败中提炼规则,这一习惯的复利效应远超其他技巧。
2. 正确理解 .claude 目录
.claude/ 是一个分层配置系统,而非简单的文件集合。
- 两个作用域:
- 项目级:位于仓库内的
.claude/,提交后团队共享。 - 全局级:位于
~/.claude/,随开发者在所有项目间携带。 - 心智模型:项目文件描述项目,全局文件描述开发者。
- 项目级:位于仓库内的
- 常见误区与最佳实践:
- CLAUDE.md 的级联加载:在 Monorepo 中,根目录和子目录的
CLAUDE.md会同时加载,这有助于处理不同文件夹的惯例差异。 - 规则的路径门控:特定于迁移文件夹的指导不应通过
CLAUDE.md膨胀每个会话,而应放在.claude/rules/migrations.md并使用 glob 模式。 - Skills 优于 Commands:虽然两者都注册斜杠命令,但 Skills 支持支持文件、禁用模型调用、允许工具等高级功能。新工作应优先使用
skills/目录。 - 清理本地状态:使用
claude project purge ~/path/to/repo --dry-run查看 Claude 持有的本地状态,便于交接设备。
- CLAUDE.md 的级联加载:在 Monorepo 中,根目录和子目录的
3. CLAUDE.md 的正确写法
CLAUDE.md 在每个会话开始时加载。写得好,提示词能产生可交付的输出;写得不好,Claude 会反复踩坑。
- 保持简短:文件不是知识库,而是护栏。对于每一行代码,问自己:“删除这行会导致 Claude 犯错吗?”如果不会,就删掉。
- 让 Claude 自我编写规则:每次 Claude 犯错,都让它更新
CLAUDE.md。几周后,该文件将变成一份针对项目所有陷阱的精选列表,且措辞正是模型最能响应的。 - 团队真实案例:Boris 展示了 Claude Code 团队内部使用的
CLAUDE.md,其中不包含风格偏好或代码库巡礼,只包含构建命令、测试顺序、PR 前仪式等不可猜测的操作。 - PR 评论中的即时反馈:在 PR 评论中使用
@claude让 Claude 直接提交规则到CLAUDE.md,实现“复合工程”(Compounding Engineering),即每次 PR 审查都成为规则的改进机会。 - 模板建议:重点关注“陷阱(Gotchas)”部分,记录真实 PR 中的错误。避免包含语言惯例、文件描述、长教程或频繁变化的 API 文档。使用
@path语法导入其他文件以保持主文件简短。 - 关键词权重:谨慎使用
IMPORTANT或YOU MUST,以保留其分量。
4. CLAUDE.local.md 作为日常驱动
CLAUDE.local.md 与 CLAUDE.md 同级加载,但加入 .gitignore,仅存在于本地。
- 个人反馈循环:在每次 PR 审查后,将评论员的反馈立即粘贴到
CLAUDE.local.md中。几周后,这变成了一份针对个人常见反馈的个人规则文件。 - 效果:Claude 会自动包含之前被指出的测试用例或规范更新,PR 上的细枝末节评论会在两周内显著减少。
- 维护建议:明确区分“项目特定反馈”和“个人习惯纠正”。定期修剪已变成肌肉记忆的内容,只保留仍在变化中的规则。
5. Skills 深入解析
Skills 是将 Claude Code 从“能做任何事的代理”转变为“以团队特定方式完成项目所需三项特定任务的代理”的关键。它们允许更复杂的逻辑、工具限制和代理覆盖。
关键要点
- 工作流转变:不要将 Claude Code 当作聊天机器人,而要当作需要护栏的自主代理。核心是建立“自我验证”闭环,可提升 2-3 倍质量。
- 规划先行:对于涉及多文件的变更,使用
Shift+Tab进入只读规划模式,让 Claude 先探索并制定计划,再执行。可引入第二个会话进行独立审查。 - 精确上下文:使用
@file引用具体文件,使用管道命令传递错误日志,避免模糊描述。 - 委派式交互:提供清晰的初始简报,让 Claude 独立运行,而非逐行指导。
- 规则自进化:利用
CLAUDE.md记录错误,让 Claude 从失败中学习并生成规则。这是复利效应最强的习惯。 - 配置分层:
- 项目级
.claude/用于团队共享惯例。 - 全局级
~/.claude/用于个人习惯。 - 使用
skills/处理复杂任务,rules/处理路径特定指导。
- 项目级
- CLAUDE.md 极简主义:只保留防止错误的护栏规则,剔除知识库内容。利用
@path导入细节。 - 本地个性化:使用
CLAUDE.local.md吸收 PR 审查反馈,快速修正个人常见错误,并定期修剪过时规则。 - 复合工程:通过 PR 评论中的
@claude命令,将代码审查直接转化为项目规则的改进,实现持续积累。
意义与影响
这篇文章标志着 AI 辅助
