/doctor 和 claude doctor 是不同的命令
有两个名称几乎相同的命令:
claude doctor:在终端中运行,仅用于诊断。Anthropic 表示:“要在不启动会话的情况下进行只读安装诊断,请在终端中运行claude doctor。”/doctor:在会话内部运行,是完整的检查。命令参考将其描述为“诊断安装、设置、扩展和CLAUDE.md问题,并在你确认后由 Claude 应用修复方案”。
Claude Code 更新日志标记了会话内版本变更的时间:“/doctor 现在是一个完整的设置检查,可以诊断并修复问题;/checkup 是它的别名”。因此,/checkup 和 /doctor 运行的是相同的内容。
检查涉及的内容
Anthropic 的 skills 文档列出了五个领域。
安装健康状况。 重复或残留的安装、PATH 问题、无法解析的设置文件,以及你的发布频道是否有新版本可用。
扩展。 检查会将“未使用的 skills、MCP 服务器和插件”与其“上下文成本”进行比较,并查找运行缓慢的钩子 (hooks)。
CLAUDE.md 文件。 与已签入文件重复的本地 CLAUDE.md 文件、Claude 可以从代码库中推导出的已签入内容,以及保留的始终加载的指南(Claude 会提议将其迁移到按需加载的 skills 和嵌套的 CLAUDE.md 文件中)。
权限。 提议将 auto 模式设为默认权限模式,并预先批准你经常拒绝的只读命令。
使用情况。 在 Pro、Max、Ultra、Team 和 Enterprise 计划中,根据过去七天的测量结果,/usage 会推荐一些更改以降低计划使用量。Anthropic 表示:“Claude 会提议它可以自行完成的更改,并将其余部分作为建议报告,例如供你运行的命令。”使用情况检查需要 Claude Code v2.1.305 或更高版本,并且在连接 Remote Control 时,检查会跳过此项。
检查对 CLAUDE.md 的建议
检查中关于 CLAUDE.md 的部分非常重要,因为已签入的 CLAUDE.md 指南是始终加载的。
Anthropic 的记忆 (memory) 文档解释了它修剪什么以及保留什么。检查“会对已签入的 CLAUDE.md 提出修剪建议:它会剪掉 Claude 可以从代码库中推导出的内容,例如目录布局、依赖列表和架构概览;并保留陷阱 (pitfalls)、基本原理 (rationale) 以及与工具默认设置不同的约定”。
这种划分非常有用。目录树或依赖列表是 Claude 在需要时可以随时从存储库中读取的内容。而关于为什么必须先运行迁移的说明,或者团队遵循的工具无法假设的约定,是无法从代码中推导出来的。检查将第一种视为成本,将第二种视为价值。
为什么大小很重要
Anthropic 对 CLAUDE.md 的指导非常直接:“目标是每个 CLAUDE.md 文件少于 200 行。较长的文件会消耗更多上下文并降低指令遵循度。”
来自同一文档的一些相关限制:
- 警告。 “如果你的某个指令文件超过了推荐长度,你在启动时以及运行
/status时会看到警告。” - 总大小。 当每个文件都在长度限制内,但它们在会话开始时的总大小超过限制时,你也会看到警告。
- 硬性上限。 “Claude Code 会跳过超过 4 MiB 的文件。”
- 导入对减小体积没有帮助。 拆分为
@path导入“有助于组织,但不会减少上下文,因为导入的文件会随导入它们的 CLAUDE.md 一起加载”。
如果问题是嵌套的 CLAUDE.md 在处理到一半时似乎被 Claude 忽略了,那是另一个独立的文件限制。我们的指南 为什么 Claude 会忽略子目录 CLAUDE.md 的结尾 涵盖了这一内容。
修剪后的指南去哪了
检查不仅仅是删除。对于仅在某些时候起作用的始终加载的指南,它会提议将其移动到“按需加载”的 skills 和嵌套的 CLAUDE.md 文件中。路径范围规则 (Path-scoped rules) 是另一个有文档记录的选项:它们“仅在 Claude 处理匹配的文件时”加载。
prompt-audit 会标记什么
检查 (checkup) 审查你的设置。prompt-audit 审查你的写作。Anthropic 表示:“要审计你的指令而非设置,请在 Claude Code 提示符下运行 /doctor prompt-audit。”
其记忆文档描述了它查找的内容:“Claude 会查找诸如为旧模型编写的指令、对不存在的文件或命令的引用,以及相互矛盾的文件等问题。”
其中的每一项都是真实的失败模式:
- 为旧模型编写的指令。 引入该功能的更新日志条目将审计描述为检查“为旧模型编写的提示模式”。
- 过时的引用。 移动的文件路径或重命名的脚本可能会让 Claude 去寻找不存在的东西。
- 矛盾。 Anthropic 指出,“如果两条指令相互矛盾,Claude 可能会随机选择其中一条”。
后来的版本更改了报告的顺序:“过时路径、过时命令和矛盾的指令文件现在排在报告前面,而 Claude Code 记录的思考关键字会被保留”。
覆盖范围
“默认情况下,审计涵盖你的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 文件,以及 .claude/ 和 ~/.claude/ 下的 rules、skills、commands、subagents 和输出样式。”
要审计单个文件或文件夹,请传递其路径。Anthropic 的示例是 /doctor prompt-audit .claude/skills/deploy。
它会更改什么
在得到你的要求之前,什么都不会改变。“你会得到一份带有建议编辑的调查结果报告,在你要求 Claude 应用它们之前,文件中的任何内容都不会改变。”
要求
审计“通过捆绑的 /claude-api skill 运行”。如果该 skill 在 skillOverrides 中被关闭或通过 disableBundledSkills 禁用,则该功能不可用,且需要 Claude Code v2.1.283 或更高版本。
/skill-doctor 如何显示每个 skill 的成本
Skills 自身也有上下文成本。Anthropic 的 skills 文档指出:“skill 列表中的每个 skill 都会在每一轮对话中增加你的上下文,无论 Claude 是否使用过它。”
/skill-doctor 就是针对此项的报告。Anthropic 表示,它显示“你的每个 skill 的成本以及使用频率,以便你决定关闭哪些”。
报告包含的内容:
- 会话中除捆绑 skills 和企业级 skills 之外的 skills。
- 对“从未被调用过”的 skills 进行标记,并说明在哪里关闭它们。
- 你最近未使用的插件。
Anthropic 关于从哪里开始的建议:“在它告诉你可以在哪里关闭的 skills 中,从上下文成本最高的开始”。
在交互式会话中,报告会在 /plugin 管理器的 Stats 选项卡中打开。使用 -p 参数,Claude Code 会将其打印为文本。它需要 v2.1.252 或更高版本以及 feature-flag 获取功能。通过手机或浏览器的 Remote Control 连接时,此功能不可用。请在运行会话的机器终端中运行它。
应该运行哪一个
- 感觉某些功能损坏或启动缓慢: 在终端运行
claude doctor,进行只读安装诊断。 - 会话填充过快或指令被忽略: 运行
/doctor进行全面检查,包括 CLAUDE.md 修剪。 - 指令可能过时或矛盾: 运行
/doctor prompt-audit,获取关于你编写内容的报告。 - 安装了大量 skills: 运行
/skill-doctor,查看每个 skill 的上下文成本和使用情况。
修剪时保留什么
检查自带的规则是最好的指南:剪掉 Claude 可以从代码库中推导出的内容,保留“陷阱、基本原理以及与工具默认设置不同的约定”。
保留的部分是代码无法告诉 Claude 的内容:测试不稳定的原因、两个脚本必须运行的顺序、审查者总是要求的约定。这些也是在单个存储库的 CLAUDE.md 之外也重要的部分,例如当你启动具有类似规则的新项目或在另一个工具中工作时。
如果 Claude 自身保存笔记,这些笔记存在于自动记忆 (auto memory) 中,它有自己的索引和限制。我们的指南 什么是 Claude Code 的自动记忆 解释了它与 CLAUDE.md 的区别。
人们常犯的错误
只运行 claude doctor 就停止了。 它只检查安装。CLAUDE.md 和扩展检查在 /doctor 中。
为了节省上下文将 CLAUDE.md 拆分为导入。 导入的文件会随导入它们的文件一起加载。
为了减到 200 行以内而删除基本原理。 检查保留基本原理和陷阱是有原因的。
一次性接受所有建议的编辑。 请逐一审查,因为在你要求之前,什么都不会改变。
保留所有已安装的 skill。 列表中的每个 skill 都会在每一轮对话中增加你的上下文。
解决方案:清理 Claude 每个会话加载的内容
第 1 步:运行检查
在会话中输入 /doctor,并在批准任何操作之前阅读每个领域的调查结果。
第 2 步:审计你编写的内容
运行 /doctor prompt-audit,优先修复过时路径、过时命令和矛盾之处。
第 3 步:关闭不使用的 skills
运行 /skill-doctor,从上下文成本最高的未使用 skills 开始处理。
第 4 步:保存保留的基本原理
将你保留的陷阱、原因和约定复制到一个可以跨存储库复用的地方。
在 MemoryLake 中设置
检查擅长区分 Claude 可以从代码中读取的内容和你唯一知道的内容。第二组内容(如陷阱、原因和团队约定)值得保存在一个可以在多个项目和多个工具中使用的地方。
MemoryLake 是此类项目知识(如约定、决策及其背后的原因)的记忆层,保存在你维护的一个地方,并可供你连接的助手(如 ChatGPT、Claude Code 和 Codex)使用。
你用自己的语言亲自编写条目。不会从你的 CLAUDE.md 文件、rules、skills、自动记忆、~/.claude 文件夹或任何供应商的存储中读取、写入或删除任何内容。检查和 prompt-audit 按照 Anthropic 描述的方式工作,你仍然可以决定应用哪些编辑。
第 1 步:创建 API 密钥
登录并从控制面板生成密钥。像对待其他凭据一样,将其存储在存储库之外。

第 2 步:上传你的第一批记忆
从你在解决方案第 4 步中保存的内容开始:检查告诉你要保留的陷阱、原因和约定。每个条目一项内容。

第 3 步:连接你的 AI 和 agents
连接 Claude Code 和你使用的任何其他助手。相同的条目在每个连接的项目和工具中都可用。

这在实践中改变了什么
第一个区别是一个更精简、无需担心的 CLAUDE.md。你从始终加载的上下文中修剪掉的原因仍然被记录在案。
第二个是跨项目的复用。你到处遵循的约定不必复制到每个存储库中。
第三个是在其他工具中使用相同的知识。Codex 或 ChatGPT 也可以利用这些条目。
Claude Code 中 /doctor 的最佳实践
使用 /doctor,而不仅仅是 claude doctor。 CLAUDE.md 和扩展检查发生在会话中。
保持 CLAUDE.md 在 200 行以内。 较长的文件会消耗更多上下文并降低指令遵循度。
保留基本原理,剪掉可推导的内容。 这是检查自带的规则。
在模型变更后运行 prompt-audit。 它会查找为旧模型编写的指令。
优先修复矛盾。 Claude 可能会在两条冲突的指令中随机选择一条。
按成本修剪 skills。 从消耗上下文最多的未使用 skills 开始。
应用前先审查。 在你要求之前,什么都不会改变。
结论
Claude Code 中的 /doctor 是一个完整的设置检查:它查看安装健康状况、扩展、CLAUDE.md 文件、权限和使用情况,并提议仅在你确认后应用的修复方案。对于 CLAUDE.md,它会剪掉 Claude 可以从代码库推导出的内容,并保留陷阱、基本原理和约定。终端中的 claude doctor 是只读安装检查。
/doctor prompt-audit 审查你的指令文件是否存在过时指南、陈旧引用和矛盾,而 /skill-doctor 显示每个 skill 的上下文成本及其使用频率。结合使用它们,可以保持每个会话加载的内容精简,并将你决定保留的推理保存在可以复用的地方。