概述

Shrivu Shankar 在这篇文章中分享了他使用 Claude Code 的丰富经验。他从个人爱好项目到专业工作场景,详细探讨了 Claude Code 的各种功能,包括其核心文件 CLAUDE.md、上下文管理、自定义命令、子代理、钩子、计划模式、技能(Skills)、模型上下文协议(MCP)以及 GitHub Actions 等。文章的核心论题是帮助开发者更好地理解和利用 Claude Code 的强大功能,以提高开发效率和代码质量。Shrivu 强调了在实际使用中对这些功能的优化和最佳实践,以及如何通过这些工具实现更高效的开发流程。

How I Use Every Claude Code Feature

如何利用 CLAUDE.md 管理项目

CLAUDE.md 是 Claude Code 的核心文件,它相当于项目的“宪法”,为 Claude 提供了关于特定代码库如何工作的基本事实。对于个人项目,Shrivu 通常让 Claude 自由地在该文件中记录内容;而在专业项目中,这个文件则被严格维护,目前其团队的单体仓库中的 CLAUDE.md 已达到 13KB(并且可能会增长到 25KB)。文件内容仅记录被 30% 或更多工程师使用的工具和 API,其他工具则记录在特定的产品或库的 Markdown 文件中。此外,团队还为每个内部工具的文档分配了最大令牌数限制,类似于出售“广告位”,如果不能简洁地解释工具,那么它就不适合出现在 CLAUDE.md 中。

Shrivu 提出了几点关于编写有效 CLAUDE.md 的建议:

通过这些方法,Shrivu 的团队能够有效地利用 CLAUDE.md 来指导开发工作,并推动团队构建更友好、更高效的工具。

上下文管理与重启策略

Shrivu 强调了上下文管理的重要性,并分享了他常用的几种上下文管理策略。他建议在编码过程中至少运行一次 /context 命令,以便了解如何使用 200k 令牌的上下文窗口。在他们的单体仓库中,一个新会话的基础成本约为 20k 令牌(占 10%),剩下的 180k 令牌用于实际的代码更改,这可能会很快用完。

他主要使用以下三种工作流:

通过这些策略,Shrivu 能够有效地管理上下文,避免自动压缩带来的问题,并在需要时快速重启会话或为复杂任务创建持久的外部“记忆”。

自定义命令与子代理的使用

Shrivu 认为自定义命令只是常用提示的简单快捷方式。他的设置非常简单,主要包括两个命令: