参考 · 难度:参考
术语表
compound-engineering 精确使用的 80 个领域术语。每条定义直接取自源根目录的 CONCEPTS.md,或由其提炼而成。当某个术语承载关键含义(不变量、契约或反复出现的病理形态)时,本页会标出。
如何使用本术语表
CONCEPTS.md 自己说:「随着 ce-compound 和 ce-compound-refresh 处理学习而增长;直接编辑亦可。仅作术语表,不是规范或大杂烩。」这里的定义稳定到可以依赖其进行跨技能交流,但规范的源文件是 CONCEPTS.md 本身 — 把下面的条目视作快速索引,不是真理之源。
术语按 CONCEPTS.md 分为五组:
插件与其组成部分
- 插件(Plugin)
- compound-engineering 装入宿主后的完整分发包。一个 Plugin 由一个清单、一个或多个 Skill、Agent、Command、Hook 以及 MCP 服务器组成。Plugin 根目录本身也是一个合法的 Claude 插件根(其中带有
.claude-plugin/plugin.json)。 - 技能(Skill)
- 一份目标态描述,包含完成条件、安全失败方向,以及 Agent 无法推导的事实。以目录形式分发,其中包含
SKILL.md以及可选的references/、scripts/、assets/。 - Agent
- 一种 Agent 角色 — 指令加上工具边界加可选的模型 — 父 Agent 可以调度它。本插件不再单独发布独立的 Agent 定义;角色定义位于调用方技能的
references/agents/之中。 - 专家 Prompt 资产(Specialist prompt asset)
- 位于
references/agents/下的一个 Markdown 文件,被调用时成为一个通用子 Agent 的 prompt。文件名不带前缀,不带 YAML frontmatter,永远不是独立的 Agent 类型。 - 插件根目录(Plugin root)
- 由
.claude-plugin/plugin.json声明插件的目录。位于插件根的技能目录放在skills/<name>下;Claude 市场也可以把插件嵌在plugins/<name>下(遗留)。 - 安装时注入(Install-time injection)
- 在安装阶段做的本地化:单一语言环境(这里是 zh-CN)成为默认 README 的前门,但英语结构性锚点保留在每个产物内部。一个故意的例外:fork 自有的根 README 在 git 中承载中文前门。
- 平行镜像(Parallel mirror)
- 文档本地化策略:英文
foo.md与foo.zh-CN.md成对发布;结构性锚点(章节名、代码、工具输出)保持英文;散文部分翻译。 - 结构性锚点(Structural anchor)
- 本地化产物内部的英文/ASCII 表面 — 章节名、命令令牌、标识符 — 下游工具据此索引。永不本地化。
- zh 渠道(zh channel)
- fork 面向成员的发行渠道:GitLab fork 通过 tarball 发布到仅限成员的渠道。GitHub 上游保持英文。
- 参考资料(Reference)
- 位于
skills/<name>/references/的一个 Markdown 文件。仅在某个阶段点名时加载。永不臆造;始终在命名的阶段读取。 - 资产(Asset)
- 任何捆绑在
skills/<name>/assets/(图像、数据、模板)下的东西。通过相对于SKILL.md的相对路径加载。 - Hook
- 来自
hooks/hooks.json(或清单中的hooks字段)的 Claude 插件 Hook。Hook 可以作为不透明容器透传到部分目标;见 CLI 与平台。 - MCP 服务器(MCP server)
- 在清单的
mcpServers或.mcp.json中声明的 Model Context Protocol 服务器。转换器会按每个目标的语法重写它。 - 命令(Command)
- 位于
commands/<name>.md的斜杠命令。部分目标把命令编译成技能;其他目标直接透传。
转换
- 目标(Target)
- 插件可被转换到的宿主平台。每个目标都有自己的清单模式、Writer 和安装规则。
- 原生插件表面(Native plugin surface)
- 宿主原生支持的插件能力子集。对拥有原生表面的宿主(Codex、Kiro、oh-my-pi)来说,发布元数据胜过运行转换器。
- 转换器(Converter)
- 从规范的 Claude 模型到目标 bundle 的纯内存变换。无 I/O。
src/converters/claude-to-*.ts。 - 写入器(Writer)
- 负责把目标 bundle 落盘的 I/O 层,附带完整的所有权门控(安装清单、保留的符号链接、遗留清理)。
src/targets/<name>.ts。 - Bundle
- Converter 的内存目标输出。由 Writer 写出。每个目标都有类型化形态(
OpenCodeBundle、CodexBundle、PiBundle、AntigravityBundle、KiroBundle)。 - 安装清单(Install manifest)
- 位于安装根目录的 JSON 账本,记录 Writer 在上一次安装中宣称拥有哪些路径。不变量:Writer 永不宣称自己没有写过的路径。这是支撑
targets/managed-artifacts.ts和清理闸门的自愈账本。 - 市场(Marketplace)
- 宿主可以安装的插件目录(JSON)。compound-engineering 源仓库本身就是一个 Claude 市场(通过
.claude-plugin/marketplace.json),同时也被列在独立的 Cursor 和 Codex 市场中。
复合工程
- 复合工程(Compound engineering)
- 该方法论:每次发布的变化都可能成为
<root>/solutions/下的一条学习;每条学习都会喂给未来的规划与评审。所谓「复利」,就是对过去工作的利息。 - 流水线(Pipeline)
- 跨技能的序列,每一步都遵守其输出契约。lfg 流水线是规范的;较小的流水线存在于各个技能内部(ce-babysit-pr 的 tick、ce-sweep 的 sweep 轮次、ce-commit-push-pr 的 ship)。
- 可视化探针(Visual probe)
- 为解答一个需要「看到或动手」的问题而做的小构建。
ce-prototype是专门负责此事的技能;可视化探针类问题靠「看」来定,状态模型类问题靠「跑」来定。 - 体验型原型(Experience prototype)
- 其目的是让人体验的原型。与可视化探针的区别在于:体验本身就是交付物。
- 实时标注(Live annotation)
ce-prototype的覆盖层模式:以一次性 patch 的形式缩放到现有应用中;永不提交;退出时恢复。- 学习(Learning)
<root>/solutions/下的 Markdown 文件,承载一条持久的项目理由。带有 YAML frontmatter:module、tags、problem_type。仅在反事实成立时合格:删掉这份文档,错误仍可能重演。- 模式文档(Pattern doc)
- 其首要目的是记录某种重复形态(「这里是怎么做 X 的」)的学习。与一次性事件记录的区分在于 frontmatter 中的
problem_type。 - Compound Pack
- 一组声明式的角色与规则的集合。被
ce-code-review和ce-dogfood中的条件式角色加载。在.compound-engineering/config.yaml的packs:下定义。 - 知识轨道(Knowledge track)
- 学习的类别,命名或链接到一份指导文件(某技能的
SKILL.md、一份 runbook、根指令文件)。维护检查只绑定到被命名的指导。 - 指导层(Guidance layer)
- 技能、runbook、指令文件。与指导矛盾的学习在实践中被覆盖,因此矛盾在 refresh 期间胜过一般的过期。
- 讲解器(Explainer)
- 由
ce-explain生成的可选独立文档。在<root>/explainers/下,是自包含的 HTML 或 Markdown;元数据规则与 explainer HTML 相同。 - 会话交接(Session handoff)
- 写入的
ce-handoff/v1文件,让新的 Agent 恢复一个会话。交接是对权威产物的补充,不能取代它们。 - Check-in
- 讲解器产物中的静态问答块。练习是内容,不是交互。
- 概念讲解段(Concept-teaching section)
- PR body 中的
## New concepts段,用于解释 diff 中引入的概念(≤2 个,每个 ~10–25 行)。仅在概念讲解闸门开启时编写。 - 明文(Plain)
- CE 产物的可见散文语言。上游 GitHub 仓库上是英文;团队 GitLab fork 上是 zh-CN。结构性锚点不论何时都保持 ASCII/英文。
技能编排
- 调度型技能(Dispatch skill)
- 启动子 Agent 或其他技能的技能。每个跨技能型技能在某个时刻都是调度型。
ce-ideate、ce-plan、ce-code-review、ce-compound、ce-debug、ce-bakeoff都会调度。 - 模型层级(Model tier)
- 分配给子 Agent 的能力桶。抽取层(最便宜且胜任)、评估层、顶层(位于编排器主上下文中,绝不调度)。按任务形态选择,不按模型名选择。
- 证据档案(Evidence dossier)
- 侦察员按来源整理的发现,带路径回传给编排器。按需读取 — 绝不整段粘贴进编排器的主上下文。
- 结果脊柱(Outcome spine)
- 每个
SKILL.md顶部的 result / next consumer / done condition / intent 四元组。始终在最前;小型技能可一句话表达。 - 宿主 prompt 预算(Host prompt budget)
- 每个宿主为技能正文设置的字节上限(Codex 约 8000 字符)。每个宿主各自设定并走不同路径到达上限;每个技能的预算由最紧的宿主限制。能跨过上限的形态有两种:Load stub 和 Phase-loaded kernel。
- 加载桩(Load stub)
- 一个简短的
SKILL.md,正文携带脊柱并指向一份或多份按需读取的参考资料。 - 输出契约(Output contract)
- 技能产物的形态或结构化返回。
ce-plan是 Direct / Chat brief / Durable;mode:agent是结构化 JSON;mode:pipeline是类型化枚举。 - 阶段加载内核(Phase-loaded kernel)
- 一种
SKILL.md,每个阶段在入口处只加载一份参考资料;正文本身就是阶段索引与参考资料路径。 - 技能评估单元(Skill-eval cell)
- 行为评估的单元:一个新启动的、注入了磁盘上技能的 Agent;
bun run test:skill-eval-cell。配对单元:--arm ab。 - 基线引用(Baseline ref)
- 在配对评估中作为对照组的改动前技能快照。评估脚本使用对同一场景进行新老盲注入的方式。
- Detached job
- 必须比宿主工具调用活得更久的子 Agent 或 CLI 工作进程。生命周期:setsid 双 fork、持久状态、亚秒级轮询、原子终态记录。
- 跨模型评审(Cross-model pass)
- 由同行模型执行的对抗性评审。
cross_model_review.md定义何时执行、邀请谁、如何把发现合并进去。 - Clean skip
- 编排器的
ce-resolve-pr-feedback在编排器层面判断后决定跳过的一项。由 resolver 记录,verdict 为replied、not-addressing或declined;回复文本由中央统一生成。 - 收尾(Terminalize)
- 在真正的停止条件下结束长跑循环的一个 tick。babysit 与 sweep 循环各有自己的终止集合。
- 迁移提交(Transport commit)
- 唯一目的是把代码从一处移到另一处的提交(例如新增交叉链接、移动技能目录)。差异为零;git 历史记录这次移动。
- Wave 契约(Wave contract)
- 并行实现的入门要求:共享同一文件的工作者会丢失彼此的改动。工作者按不相交的文件所有权扇出;class 条目要枚举每个具体位置。取代「工作区隔离即入门费」 — 隔离现在是升级手段,不是入门费。
- 温检出(Warm checkout)
- 已在多次 worker 调度之间复用的已克隆工作树。worker 留在此树中;只有并行改动触及同一文件时才追加隔离。
- 模型身份回执(Model identity receipt)
- 记录某次跨模型委托实际跑了哪个模型的凭据。「把『哪个模型跑了』当成一个需要凭据的主张来对待。」
- 交接缝(Handoff seam)
- 两个技能之间所有权发生转移的窄边界。
ce-commit-push-pr把工作交给ce-babysit-pr是规范的 seam。 - Engine carrier
- 调用方透传给
ce-work的元数据串,用于把它绑定到一个具体实现引擎(目标模式、动态工作流等)。并非所有引擎都同等可移植。 - 拥有层(Owning layer)
- 拥有某个机制的唯一一处 Surface(技能 / 参考资料 / 脚本 / 宿主)。委托型技能陈述条件与安全失败方向;只有拥有层规定命令。
- 被从属的形态(Subordinated shape)
- 一个具体的实例化形态(一个宿主、一个模型、一个命令),它是一般条件无法在字面宿主上完全表达的。形态从属;条件保留。
- 代理规则(Proxy rule)
- 一种规则,站在散文难以陈述的更一般条件的位置。病理形态:代理被复制后开始禁止其条件所要求的做法。
- 情形堆积(Case accretion)
- 往本应被陈述为条件的规则里追加更多情形。病理形态:情形列表不断增长,却从未被重写为它所暗含的条件。
- 上下文缺失的 Agent(Context-absent agent)
- 上下文窗口中不包含调用方技能完整状态的 Agent 或子 Agent。技能之间的缝在被调用方一侧永远是上下文缺失的;所有权转移 + 加载被调用方 + 失败时关闭并拒答 是这里的规则。
- 关注集合(Attention set)
- 一个 watch 循环仍需要处理的项目集合:未解决的话题 + 非话题反馈候选 + 失败检查 + 分支时效项。由
pr-snapshot输出。 - 反馈候选(Feedback candidate)
- resolver 仍需分类的一个非话题反馈项(顶层 PR 评论、评审提交正文)。「一次静默丢弃正文的 resolver 过程是正常的分类结果,不是误报。」
评审与工作流
- 评审者角色(Reviewer persona)
- 专家型评审者(正确性、安全、性能、项目规范等),在
references/personas/下实例化为子 Agent prompt。每个角色挂着一个「命名规范框架」锚点(OWASP、Fowler smells、Release It! 等)和一个检测条件。 - 评审深度(Review depth)
- Lite / Focused / Full。由闸门基于尺寸带、静默通过类、criteria-search 不确定度以及显式的
depth:令牌综合决定。 - 检测条件(Detection condition)
- 角色「何时触发?」的判定谓词。引用具名框架;绝不锚在角色作者名上。「引用 OWASP / Fowler smells / Release It!;而不是『以 X 视角评审』。」
- 信心锚(Confidence anchor)
- 锚定式评分(0、25、50、75、100),而不是连续的 0.0–1.0 浮点。「为什么连续 0.0–1.0 会引入虚假的精度;用锚定级别。」
- 独立性(Independence)
- 跨角色契约:一条发现是独立的,当且仅当至少两位评审者在没看到彼此工作的情况下得出该结论。
independence_verified是综合阶段盖戳的字段。 - Autofix 类(Autofix class)
- 发现携带的标签(
safe_auto、gated_auto、manual、advisory),描述 lfg 是否能自主应用它。被视为描述,不是授权。 - 渲染底线(Rendering floor)
- 在交互 / 批量 / 无头 / 预览 输出中,一条发现都必须遵守的「决策优先」共享契约。同样的底线强制同样的形态。
- 无头模式(Headless mode)
- 无交互用户的执行方式。
mode:non-interactive抑制提问;mode:pipeline还返回结构化值。ce-code-review 已弃用的mode:headless是mode:agent的别名。 - 会话敲定的决策(Session-settled decision)
- 用户在规划中敲定的(非 Agent 建议的)决策,携带
user-directed或user-approved来源类别。带一个稳定的 U-ID;规划者标注的 KTD 是记录载体。 - 敲定测试(Settlement test)
- 一段会话中携带的决策被视作敲定所必须满足的条件。「跳过它会重提已决定的问题,或者把未审视的断言升格。」
- 反馈源(Feedback source)
- 为
ce-sweep配置的渠道(Slack、GitHub Issues、实验性邮件)。每个源都有自己的approved和sensitive标志。 - Beta 技能(Beta skill)
- 目录已添加到
skills/,但尚未发布到市场目录的技能。仅在本仓库内把它视为可被模型调用。 - 已授权的工作(Offered work)
- 用户已授权的代码工作:已在公开 PR 中的提交、
git status中已提交的本地编辑、或被显式交给技能的文件。「与远程比较,而不是与本地引用比较。」 - 修复拥有的文件(Fix-owned files)
- 一次修复实际改动的文件列表。第 3 阶段记录修复前的范围;第 4 阶段两个问题的答案都从这里来。之后无法重建。
- Issue of record
- bug 所登记的追踪单或 Sentry issue。编排器从不创建,只链接或者不链。
- 敲定窗口(Settle window)
- 冷却时间间隔(默认 300s),超过它之后,积压为零的 PR 被视为可合并。这是个冷却信号,并不保证评审没在路上。
- 活性标记(Liveness marker)
- 证明工作已开始而非已完成的信号。「这是否完成了?」的判断属于 Agent。「活性标记证明工作已启动;是否完成的判断属于 Agent。」
- 残留(Residual)
- 本次运行无法或不愿关闭的一条发现、请求或决策。在报告中显式列出;永不静默丢弃。
需要记住的承重术语
如果只能从本术语表里记下五条,请挑这五条 — 它们在技能散文、评审发现和测试中反复出现:
- 安装清单不变量:Writer 绝不宣称自己没有写过的路径。这是每次托管安装的自愈账本。
- 宿主 prompt 预算:每个宿主各自设定并走不同路径到达上限;每个技能正文由最紧的宿主限制;两种能存活的形态是 Load stub 与 Phase-loaded kernel。
- Wave 契约:工作者按不相交的文件所有权扇出;class 条目要枚举每个具体位置。隔离是升级手段,不是入门费。
- 拥有层:委托型技能陈述条件,而不是命令;只有拥有该机制的层才规定命令。
- 代理规则 vs 情形堆积:两种反复出现的病理形态。代理被复制后开始禁止其条件所要求的做法;情形列表不断增长,却从未被重写为它所暗含的条件。