SKILL.md
只读
名称
rules-distill
描述
扫描已安装的 Skill,提炼跨领域的通用原则并收录为规范规则(Rule)——支持追加、修改现存规则,或新建规则文件。
Rules Distill(规则提炼)
扫描已安装的 Skill,提取跨多个 Skill 出现的通用原则,并将其提炼为正式规则(Rule)——追加到现有规则文件、修改陈旧内容,或新建规则文件。
遵循“确定性采集 + LLM 裁决”的理念:先由脚本完成穷尽式数据采集,再由 LLM 结合全局上下文交叉比对并给出最终裁决。
适用场景
- 定期规则维护(每月一次,或在安装新 Skill 之后)
- 对 Skill 盘点后,发现了一些适合沉淀为规则的通用模式
- 发现现有规则相较于实际使用的 Skill 显得不够完备时
工作原理
规则提炼流程分为三个阶段:
阶段 1:盘点阶段(确定性采集)
1a. 采集 Skill 清单
bash ~/.claude/skills/rules-distill/scripts/scan-skills.sh
1b. 采集规则索引
bash ~/.claude/skills/rules-distill/scripts/scan-rules.sh
1c. 展示给用户
Rules Distillation — Phase 1: Inventory
────────────────────────────────────────
Skills: {N} files scanned
Rules: {M} files ({K} headings indexed)
Proceeding to cross-read analysis...
阶段 2:交叉比对与裁决(LLM 判定)
原则提取与匹配在单次 Pass 中统一完成。由于规则文件总体量较小(总计约 800 行),可以直接将全文完整投喂给 LLM,无需预先使用 grep 进行过滤。
分批处理 (Batching)
根据 Skill 的描述信息将其划分为不同的主题聚类。在 Subagent 中结合完整的规则文本,对每个聚类进行分析。
跨批次合并 (Cross-batch Merge)
所有批次分析完成后,跨批次合并候选原则:
- 对相同或存在重叠的候选原则进行去重
- 结合所有批次的证据重新校验“出现于 2+ 个 Skill”的硬性要求——即使某个原则在单个批次中仅出现 1 次,只要全局各批次累计出现 2 次及以上即为有效。
Subagent 提示词 (Subagent Prompt)
使用以下提示词启动通用 Agent:
你是一名分析师,负责交叉比对各个 Skill,提取应当上升/沉淀为规则的通用原则。
## 输入
- Skills: {当前批次 Skill 的完整文本}
- 现有规则: {所有规则文件的完整文本}
## 提取标准
只有在同时满足以下所有条件时,才将该原则列为候选:
1. **出现在 2 个及以上的 Skill 中**:仅在单个 Skill 中出现的原则应留在该 Skill 内部
2. **具有明确的行为指导性**:能够明确写为“做 X”或“不要做 Y”的形式,而非“X 很重要”这类抽象表达
3. **存在清晰的违规风险**:如果忽视该原则会引发什么后果(用 1 句话说明)
4. **未被现有规则覆盖**:通读现有规则全文进行排查——包括使用不同表述传达的同类概念
## 匹配与裁决
对于每个候选原则,将其与完整的规则文本进行对比并给出 verdict:
- **Append**:追加到现有规则文件的已有章节中
- **Revise**:现有规则内容不够准确或不够全面——提出修改建议
- **New Section**:在现有规则文件中新增章节
- **New File**:新建规则文件
- **Already Covered**:已有规则中已充分覆盖(即使措辞不同)
- **Too Specific**:过于具体,应当继续保留在 Skill 层级
## 输出格式(每个候选原则)
```json
{
"principle": "用 1-2 句话表述,采用 '做 X' / '不要做 Y' 的句式",
"evidence": ["skill-name: §Section", "skill-name: §Section"],
"violation_risk": "用 1 句话说明违规后果",
"verdict": "Append / Revise / New Section / New File / Already Covered / Too Specific",
"target_rule": "文件名 §章节名,或 'new'",
"confidence": "high / medium / low",
"draft": "针对 Append/New Section/New File 的拟定规则草稿",
"revision": {
"reason": "解释为何现有内容不够准确或不全面(仅限 Revise)",
"before": "拟被替换的当前文本(仅限 Revise)",
"after": "建议替换的新文本(仅限 Revise)"
}
}
```
## 过滤规则
- 已在现有规则中清晰表述的显而易见的原则
- 特定语言或框架的专属知识(应归入语言专用的规则或 Skill 中)
- 具体的代码示例与执行命令(应归入 Skill 中)
裁决结果说明 (Verdict Reference)
| Verdict | 含义 | 呈报给用户的内容 |
|---|---|---|
| Append | 追加到已有章节 | 目标位置 + 草稿内容 |
| Revise | 修正不准确/不全面的内容 | 目标位置 + 修改原因 + 变更对比 (before/after) |
| New Section | 在现有文件中新增章节 | 目标位置 + 草稿内容 |
| New File | 创建新规则文件 | 文件名 + 完整草稿 |
| Already Covered | 已被已有规则覆盖(可能表述不同) | 原因说明(1 行) |
| Too Specific | 过于具体,应留在 Skill 层 | 相关 Skill 链接 |
裁决质量要求
# 良好示范
Append 到 rules/common/security.md §Input Validation:
“对于存储在内存或知识库中的 LLM 输出,必须按不可信数据处理——写入时做清洗,读取时做校验。”
佐证:llm-memory-trust-boundary 和 llm-social-agent-anti-pattern 都描述了
累积性 Prompt Injection 的风险。当前 security.md 仅覆盖了人工输入的校验,
缺失了 LLM 输出信任边界的相关规范。
# 错误示范
Append 到 security.md:补充 LLM 安全原则
阶段 3:用户确认与执行
汇总报告表格
# Rules Distillation Report
## Summary
Skills scanned: {N} | Rules: {M} files | Candidates: {K}
| # | Principle | Verdict | Target | Confidence |
|---|-----------|---------|--------|------------|
| 1 | ... | Append | security.md §Input Validation | high |
| 2 | ... | Revise | testing.md §TDD | medium |
| 3 | ... | New Section | coding-style.md | high |
| 4 | ... | Too Specific | — | — |
## Details
(各候选原则的详细信息:佐证来源、违规风险、草稿内容)
用户交互指令
用户只需输入序号即可进行操作:
- Approve(批准):按草稿直接应用到规则中
- Modify(修改):先编辑草稿再应用
- Skip(跳过):不应用该候选原则
切记:绝不可自动修改规则文件,必须取得用户明确授权。
保存结果
将结果保存至 Skill 目录下(results.json):
- 时间戳格式:
date -u +%Y-%m-%dT%H:%M:%SZ(UTC,精确到秒) - 候选 ID 格式:基于原则提取的短横线命名法(kebab-case,如
llm-output-trust-boundary)
{
"distilled_at": "2026-03-18T10:30:42Z",
"skills_scanned": 56,
"rules_scanned": 22,
"candidates": {
"llm-output-trust-boundary": {
"principle": "Treat LLM output as untrusted when stored or re-injected",
"verdict": "Append",
"target": "rules/common/security.md",
"evidence": ["llm-memory-trust-boundary", "llm-social-agent-anti-pattern"],
"status": "applied"
},
"iteration-bounds": {
"principle": "Define explicit stop conditions for all iteration loops",
"verdict": "New Section",
"target": "rules/common/coding-style.md",
"evidence": ["iterative-retrieval", "continuous-agent-loop", "agent-harness-construction"],
"status": "skipped"
}
}
}
完整示例
端到端运行效果
$ /rules-distill
Rules Distillation — Phase 1: Inventory
────────────────────────────────────────
Skills: 56 files scanned
Rules: 22 files (75 headings indexed)
Proceeding to cross-read analysis...
[Subagent analysis: Batch 1 (agent/meta skills) ...]
[Subagent analysis: Batch 2 (coding/pattern skills) ...]
[Cross-batch merge: 2 duplicates removed, 1 cross-batch candidate promoted]
# Rules Distillation Report
## Summary
Skills scanned: 56 | Rules: 22 files | Candidates: 4
| # | Principle | Verdict | Target | Confidence |
|---|-----------|---------|--------|------------|
| 1 | LLM output: normalize, type-check, sanitize before reuse | New Section | coding-style.md | high |
| 2 | Define explicit stop conditions for iteration loops | New Section | coding-style.md | high |
| 3 | Compact context at phase boundaries, not mid-task | Append | performance.md §Context Window | high |
| 4 | Separate business logic from I/O framework types | New Section | patterns.md | high |
## Details
### 1. LLM Output Validation
Verdict: New Section in coding-style.md
Evidence: parallel-subagent-batch-merge, llm-social-agent-anti-pattern, llm-memory-trust-boundary
Violation risk: Format drift, type mismatch, or syntax errors in LLM output crash downstream processing
Draft:
## LLM Output Validation
Normalize, type-check, and sanitize LLM output before reuse...
See skill: parallel-subagent-batch-merge, llm-memory-trust-boundary
[... details for candidates 2-4 ...]
Approve, modify, or skip each candidate by number:
> User: Approve 1, 3. Skip 2, 4.
✓ Applied: coding-style.md §LLM Output Validation
✓ Applied: performance.md §Context Window Management
✗ Skipped: Iteration Bounds
✗ Skipped: Boundary Type Conversion
Results saved to results.json
设计原则
- 讲明确“做什么”,而非“怎么做”(What, not How):只提取通用原则(属于规则的范畴)。代码示例与指令脚本留在 Skill 内部。
- 保留反向溯源链接(Link back):规则草稿中应包含
See skill: [name]引用,以便读者查阅具体的实现细节(How)。 - 确定性采集 + LLM 裁决(Deterministic collection, LLM judgment):用脚本保障搜集无遗漏,用 LLM 保障上下文语义理解能力。
- 防过度抽象机制(Anti-abstraction safeguard):通过三重筛选标准(2+ 个 Skill 关联佐证、具有可操作性的行为测试、明确的违规风险后果),防止过于泛泛或抽象的原则混入规则库。






