.comet/skill-preferences.yaml 是项目级偏好文件。它表达这个项目希望 /comet-any 优先复用哪些 Skill,以及遇到缺失、歧义、偏离和 scripts/hooks 时怎么处理。
它不是严格白名单,也不是内部状态文件——你可以手写、提交到项目,也可以由 /comet-any 首次扫描后生成。

偏好文件表达组合方向和硬约束;真实来源仍要被解析,不能只按名字猜
文件位置
.comet/config.yaml 同级。
完整字段
version
必须是1。用于未来 schema 演进。
mode
prefer
希望优先复用的 Skill 列表。顺序代表偏好优先级——/comet-any 会尽量按这个顺序构建调用链。列表里不允许重复(重复会触发 duplicate-prefer 警告)。
require
生成组合 Skill 时必须满足的 Skill。这些 Skill 缺失或歧义时,组合方案不能通过。同样不允许重复。policies
推荐起点
如果你不确定怎么写,可以从这个配置开始:/comet-any 也会在偏好不存在时主动扫描平台 Skill inventory,按能力分组推荐默认偏好,并询问你是否保存为项目级偏好。comet creator guide 返回的 preference 字段会标记偏好状态为 missing / present / invalid。
手写示例
偏严谨的 PR 评审 Skill
团队标准化(strict 模式)
完全禁止可执行能力
如果你的环境对脚本和钩子零容忍:/comet-any 会在生成阶段就拒绝任何带 scripts/hooks 的组合方案。
偏好如何影响生成
/comet-any 按以下规则使用偏好:
- 优先读取项目级偏好
.comet/skill-preferences.yaml。 - 偏好不存在时,扫描平台 Skill inventory,按能力分组推荐默认偏好,并询问是否保存。
- 用
find-skill解析真实本地 Skill 来源与内容。 advisory可在说明原因后补充目标需要的 Skill。strict遇到 required 缺失、歧义或禁止的 scripts/hooks 必须阻塞。
缺失和歧义候选
/comet-any 必须暂停并询问你如何处理 missing 和 ambiguous 项。它不能静默忽略缺失候选,也不能在多个来源中替你选择。
你明确选择来源后,
/comet-any 会更新 Skill Creator metadata。你明确同意忽略缺失偏好时,它会记录原因,这个原因会进入评审摘要。
resolved-skills.json
生成物包含真实来源证据:- resolvedSkills —— 真实 Skill 来源、hash 和状态(
available/missing/ambiguous),证明组合基于本地真实内容,不是只按名字猜。 - workflow —— 每个节点的实现 Skill、Required Skill Call 和 Output Schema,和
workflow-protocol.json对齐。
preferenceHash 和偏好漂移
Comet 对偏好文件计算一个 SHA-256 hash(preferenceHash),存入 Skill Creator metadata。.comet/skill-preferences.yaml 在 Factory 初始化后发生变化时(preferenceHash 变化):
生成物会记录
preferenceHash、模式、策略和 required Skill 作为项目级偏好证据。这些会出现在评审摘要里。
偏好漂移怎么处理
如果偏好漂移导致阻塞或 warning,你有两个选择:- 继续旧组合方案:确认旧的组合仍然符合你的意图。旧方案基于旧偏好生成,可能在评审摘要里出现
[preference]偏离提示。 - 重新生成:放弃旧 draft,基于新偏好重新走
/comet-any流程。这会生成新的planHash、preferenceHash和 resolved-skills 证据。
下一步
- 创建 Skill 的完整流程 — 完整
/comet-any流程 - 发布和分发 Skill — readiness 如何使用偏好和 eval 证据
- Skill Creator 概览 — 三种起点和受保护边界

