| name | rules-distill |
| description | 扫描技能以提取跨领域原则并将其提炼为规则——追加、修订或创建新的规则文件 |
| origin | ecc |
规则提炼
扫描已安装的技能,提取在多个技能中出现的通用原则,并将其提炼成规则——追加到现有规则文件中、修订过时内容或创建新的规则文件。
应用"确定性收集 + LLM判断"原则:脚本详尽地收集事实,然后由LLM通读完整上下文并作出裁决。
使用时机
- 定期规则维护(每月或安装新技能后)
- 技能盘点后,发现应成为规则的模式时
- 当规则相对于正在使用的技能感觉不完整时
工作原理
规则提炼过程遵循三个阶段:
阶段 1:清点(确定性收集)
1a. 收集技能清单
bash ~/.codex/skills/rules-distill/scripts/scan-skills.sh
1b. 收集规则索引
bash ~/.codex/skills/rules-distill/scripts/scan-rules.sh
1c. 呈现给用户
规则提炼 — 第一阶段:清点
────────────────────────────────────────
技能:扫描 {N} 个文件
规则:索引 {M} 个文件(包含 {K} 个标题)
正在进行交叉阅读分析...
阶段 2:通读、匹配与裁决(LLM判断)
提取和匹配在单次处理中统一完成。规则文件足够小(总计约800行),可以将全文提供给LLM——无需grep预过滤。
分批处理
根据技能描述,将技能分组为主题集群。每个集群在一个子智能体中进行分析,并提供完整的规则文本。
跨批次合并
所有批次完成后,合并各批次的候选规则:
- 对具有相同或重叠原则的候选规则进行去重
- 使用所有批次合并的证据重新检查"2+技能"要求——在每个批次中只在一个技能里发现,但总计在2+技能中出现的原则是有效的
子智能体提示
使用以下提示启动通用智能体:
你是一位通过交叉阅读技能来提取应提升为规则的原则的分析师。
## 输入
- 技能:{本批次技能的全部文本}
- 现有规则:{所有规则文件的全部文本}
## 提取标准
**仅当**满足以下**所有**条件时,才包含一个候选原则:
1. **出现在 2+ 项技能中**:仅出现在一项技能中的原则应保留在该技能中
2. **可操作的行为改变**:可以写成“做 X”或“不要做 Y”的形式——而不是“X 很重要”
3. **明确的违规风险**:如果忽略此原则,会出什么问题(1 句话)
4. **尚未存在于规则中**:检查全部规则文本——包括以不同措辞表达的概念
## 匹配与裁决
对于每个候选原则,对照全部规则文本进行比较并给出裁决:
- **追加**:添加到现有规则文件的现有章节
- **修订**:现有规则内容不准确或不充分——提出修正建议
- **新章节**:在现有规则文件中添加新章节
- **新文件**:创建新的规则文件
- **已涵盖**:现有规则已充分涵盖(即使措辞不同)
- **过于具体**:应保留在技能层面
## 输出格式(每个候选原则)
```json
{
"principle": "1-2 句话,采用 '做 X' / '不要做 Y' 的形式",
"evidence": ["技能名称: §章节", "技能名称: §章节"],
"violation_risk": "1 句话",
"verdict": "追加 / 修订 / 新章节 / 新文件 / 已涵盖 / 过于具体",
"target_rule": "文件名 §章节,或 '新建'",
"confidence": "高 / 中 / 低",
"draft": "针对'追加'/'新章节'/'新文件'裁决的草案文本",
"revision": {
"reason": "为什么现有内容不准确或不充分(仅限'修订'裁决)",
"before": "待替换的当前文本(仅限'修订'裁决)",
"after": "提议的替换文本(仅限'修订'裁决)"
}
}
```
## 排除
- 规则中已存在的显而易见的原则
- 语言/框架特定知识(属于语言特定规则或技能)
- 代码示例和命令(属于技能)