跳转到内容

Claude Code 模式(CC)

CC(Claude Code)是基于 Claude Code 构件系统来结构化 AI 辅助工作的通用模式集合。它规定了如何构建代理、技能、规则、钩子、命令与设置,使任何一次 Claude Code 会话都具备纪律性,而非随意进行。

CC 本身不是一款产品,也不是一个框架,而是针对 Claude Code 所支持的七类构件的一组约定与质量规则。任何采用 CC 的项目,其会话行为都是稳定一致的,护栏具备可强制性,且知识会持续累积、不会随上下文窗口重置而流失。

CC 在 co/(英文)(CO 构件管理仓库)中开发,并分发至所有下游仓库:用于代码生成的 COC 模板(英文)、用于新领域应用的 CO 模板(英文),以及所有领域应用(co-research、co-finance、co-education 等)。

Claude Code 识别七种构件类型,每一种都有特定角色与特定的质量约束。

位置: .claude/agents/

带有领域知识的专业 AI 人格。一个代理文件定义一段系统提示,塑造 Claude 在某一任务类别下的行为。当你调用某个代理时,Claude 即采纳该人格的专长、约束与工作流程。

质量规则:

  • description 字段不超过 120 字符,并含触发语(“Use when…”、“Use for…”)
  • 文件总长度不超过 400 行
  • 不做知识堆砌:参考材料应置于技能(skills)而非代理文件内

为何这样约束: 代理描述会在每一次代理选择决策中被读入。过长的描述意味着每一轮都在浪费 token。而嵌入的参考材料会在上下文窗口中与实际任务抢占空间。

位置: .claude/skills/

为渐进式披露而组织的参考知识。一个技能目录包含索引文件 SKILL.md 与若干可选的子文件,子文件承载更深入的参考内容。Claude 先读取 SKILL.md,只在问题需要时再读取子文件。

质量规则:

  • SKILL.md 应在不读取子文件的情况下回答 80% 的常规问题
  • 速查表与关键模式放入索引文件
  • 深度参考(API 细节、边角情况、示例)放入子文件

为何这种结构重要: 每一次子文件读取都是一次工具调用。一个需要五次读取才能回答基本问题的技能,比一个索引良好的技能慢五倍。

位置: .claude/rules/

通过软性引导强制执行的行为护栏。规则塑造 Claude 处理工作的方式:编码标准、沟通风格、领域约束。Claude 遵守规则,是因为规则处于上下文之中,而非因为存在机制阻止违规。

质量规则:

  • 每条规则都包含 DO / DO NOT 示例,分别展示正确与错误的模式
  • 每条规则都包含 “Why” 理由说明,解释其背后的逻辑
  • 尽可能使用 YAML frontmatter 的 glob 进行路径范围限定(例如 SQL 规则不应在编辑 CSS 时被加载)

为何理由说明重要: 若缺少 “Why” 一行,Claude 每次会话对规则的理解可能略有差异。理由说明有助于在边角情况下应用规则的精神。

位置: scripts/hooks/

在模型之外运行的确定性强制执行脚本。钩子在特定触发条件下(每条用户消息、提交前、会话启动时)触发,执行 JavaScript 或 shell 代码。与规则不同,钩子不会被遗忘或被重新解读,属于硬性强制。

质量规则:

  • 每个钩子都包含 setTimeout 回退路径,返回 { continue: true } 并退出
  • 禁止通过正则进行语义分析(钩子只检查结构,不检查含义)
  • 纵深防御:关键规则在规则文件之外,还要叠加钩子级强制

为何超时处理必要: 一个卡住的钩子会使整个 Claude Code 会话被无限期阻塞。超时回退确保即使处理过程停滞,会话仍能继续。

位置: .claude/commands/

结构化工作流调用。一个命令文件定义一段提示语,当通过 /command-name 调用时,作为用户消息注入。命令是把可复用工作流封装起来的方式:/analyze/plan/implement/review

质量规则:

  • 长度不超过 150 行
  • 参考材料移入技能(命令作为用户消息注入,会在 token 预算中与实际用户意图竞争)

位置: .claude/settings.json

工具权限、钩子配置与 MCP 服务器声明。设置控制 Claude 可以做什么(允许使用哪些工具)、哪些自动运行(哪些钩子在哪些触发条件下执行)、以及可用的外部服务(MCP 服务器)。

位置: 项目根目录

每次会话都会被加载的主指令文件。CLAUDE.md 始终在上下文中。它确立项目身份、列出可用命令、定义构件分层结构并指向关键资源。CLAUDE.md 中的每一字节都在每一轮对话中消耗 token。

质量规则:

  • 不要重复已在 .claude/rules/ 中存在的规则(它们会独立加载)
  • 不要嵌入应置于技能中的参考材料

并非所有知识都需要在每一轮对话中被加载。CC 将信息分层组织:

层级何时加载典型长度
CLAUDE.md每一轮,始终加载200 行以内
SKILL.md 索引技能被引用时10 - 50 行
主题文件索引不足以回答时50 - 250 行
深度参考针对具体问题按需加载不限

这样使上下文窗口聚焦当前任务,同时让深度知识在需要时可用。

对于绝不能被违反的规则,CC 使用多层彼此独立的强制机制:

  1. CLAUDE.md 陈述规则(始终在上下文中)
  2. 专用规则文件 提供完整细节、示例与理由
  3. 抗健忘钩子 在每条用户消息时重新注入该规则
  4. 会话启动钩子 在每次会话开始时确立该规则
  5. 校验钩子 在输出到达用户之前进行检查

共五层。若任一层失效(例如上下文压缩丢弃了 CLAUDE.md,或当前路径未加载某条规则文件),其余四层仍能强制执行。

一个在每条用户消息触发的钩子,将关键规则重新注入上下文。它解决了长对话的根本问题:随着上下文窗口被填满、早期内容被压缩,重要规则可能逐渐淡出。抗健忘钩子运行于模型记忆之外,不受压缩影响。每一条消息过后,规则都以完整保真度回到上下文之中。

在从零编写任何代码之前,先检查是否已有可用的构建块。组合优先于重造。在 Kailash 生态中,这意味着先检查 188 个工作流节点,再考虑自建节点。在任一 CC 项目中,则意味着先检查已有的代理、技能与命令,再考虑新建。

下列规则适用于创建或修改任何 CC 构件:

规则理由
代理描述 120 字符以内并带触发语描述会在每次代理选择决策中被读入
技能遵循渐进式披露(SKILL.md 应覆盖 80% 的问题)减少常规问题所需的工具调用次数
规则包含 DO / DO NOT 示例使跨会话行为保持稳定
规则包含 “Why” 理由说明便于在边角情况下应用规则的精神
命令 150 行以内命令作为用户消息注入,过长会与用户意图争用预算
钩子包含超时处理防止整会话被挂起
代理 400 行以内,不堆砌知识代理上下文与任务上下文竞争
不在技能或规则中复制 CLAUDE.mdCLAUDE.md 始终加载,重复会让 token 成本翻倍
规则按文件类型进行路径范围限定编辑 CSS 时加载 SQL 规则属于浪费

CC、CO、COC 是三个不同层次:

  • CC 是通用工具层面的模式:如何构建能良好运作的 Claude Code 构件。适用于任何使用 Claude Code 的项目,与领域无关。
  • CO(认知编排)是方法论,规定了如何结构化人机协作:八项首要原则、五层架构、六阶段工作流。CO 与领域无关。参见 CO 规范(英文)
  • COC 是 CC + CO 在软件开发中的应用,即面向代码生成的形态。COC 增加了领域专属代理(数据库专家、API 构建者、测试框架)、领域专属技能(SDK 参考、框架模式)与领域专属命令(/implement/deploy)。参见 COC 快速入门

构件流向:

co/ ──CC+CO 构件──→ co-template ──→ 领域仓库(研究、金融、教育……)
└──→ kailash/ ──→ COC 模板 ──→ 代码生成项目

CC 模式起源于 co/ 并向外分发。领域仓库在 CC 基础之上叠加自身的领域专属构件,绝不直接修改 CC 构件;改进通过 co/ 向上游回流。

Kailash 生态(github.com/terrene-foundation(英文))是 CC 的大规模参考实现:

构件类型规模
代理跨 7 个类别的 50 多个代理(架构、实现、测试、评审、部署、领域、管理)
技能31 个目录,含 600 多个参考文件
规则28 个规则文件,采用纵深防御强制执行
钩子8 个钩子,包括抗健忘机制
命令30 个命令,实现六阶段工作流

COC 模板仓库将上述内容整合为新项目的单一起点。

构建新的领域应用。 克隆 CO 模板(英文)并针对所在领域进行配置。模板已预置 CC 构件结构,你只需添加领域专属的代理、技能与规则。

使用 COC 构建软件。 参见 COC 快速入门。克隆 COC 模板,运行 claude,输入 /start

理解方法论。 阅读 CO 规范(英文),了解 CC 在工具层所实现的八项首要原则、五层架构与六阶段工作流。

查阅参考实现。 浏览 kailash-coc-claude-py(英文),查看 CC 构件在真实项目中的运作方式:代理如何引用技能、规则如何施加标准、钩子如何提供纵深防御,以及命令如何编排阶段化工作流。