S3.2.1 Task 3.2

CLAUDE.md 是始终开启的,Skills 是按需的。别搞混了

一个团队把 5 个详细的工作流程添加到 CLAUDE.md。它从 300 行增长到 1200 行。每个工作流最多每周用一次。Claude 的回复质量下降——不够聚焦,有时忽略最近的指令。

问题是:900 行很少使用的工作流内容加载到每个会话中,稀释了 Claude 对 300 行真正相关编码标准的注意力。

修复:把 5 个工作流移到 Skills。CLAUDE.md 回到 300 行。配置上下文占用从 12% 降到 4%。任务完成准确率从 88% 提升到 93%。

决策标准:使用频率

使用模式机制原因
每次交互CLAUDE.md始终加载,不需要调用
偶尔(30% 的情况)Skill只在调用时加载
很少(周/月)Skill在 95%+ 不需要的会话中节省上下文

一个客服团队有:回复语气指南(每次交互,80 行)、数据隐私规则(每次交互,60 行)、升级工作流(30% 的情况,200 行)、报告生成(每周,150 行)、培训模拟(每月,180 行)。

语气和隐私放 CLAUDE.md(140 行,始终加载)。升级、报告和培训做成 Skills(530 行,按需加载)。大多数会话加载 140 行而不是 670 行。

反模式

所有东西都放 CLAUDE.md。 400+ 行的任务专属工作流加载到每个会话浪费 token 在开发者大多数交互不需要的指令上。Claude 不能选择性忽略章节——加载的内容不管相关性标记如何都消耗上下文。

所有东西都做成 Skills。 把通用编码标准转成 Skills 意味着开发者必须记得每次会话调用 /coding-standards。12 人团队中的初级开发者会忘记。标准需要自动执行,不是可选调用。

用章节标题做范围控制。 “Claude,审查代码时忽略部署部分”不管用。所有 CLAUDE.md 内容都加载并消耗上下文。不加载内容的唯一方式是不把它放在 CLAUDE.md 里。

不存在的东西

  • always-active: true frontmatter — Skills 天然是按需的
  • auto-invoke 指令 — CLAUDE.md 中没有自动调用 Skills 的机制
  • CLAUDE.md 和 Skills 之间的优先级层级 — 它们服务不同目的,不是不同优先级

决策过程

对每组指令,问:“这需要在每次交互中生效,不用开发者记得调用吗?”

  • → CLAUDE.md(编码标准、隐私规则、回复指南)
  • → Skill(迁移工作流、报告生成器、专业分析工具)

不要先把所有东西放 CLAUDE.md 后面再优化。上下文膨胀从一开始就降低质量。放置前先按使用频率分类。


一句话总结: 始终需要的指令放 CLAUDE.md(自动加载);偶尔的工作流做成 Skills(按需)——搞混了会膨胀上下文并降低质量,仅纠正放置就能从 88% 提到 93%。