Files
claude-code-skills-reference/claude-md-progressive-disclosurer/SKILL.md
daymade e481958195 Release v1.32.0: Add windows-remote-desktop-connection-doctor skill
- Add windows-remote-desktop-connection-doctor v1.0.0 for diagnosing AVD/W365
  connection quality issues with transport protocol analysis and log parsing
- Update claude-md-progressive-disclosurer SKILL.md and references
- Update marketplace to v1.32.0 (37 skills)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 04:45:31 +08:00

12 KiB
Raw Blame History

name, description
name description
claude-md-progressive-disclosurer Optimize CLAUDE.md files using progressive disclosure. Goal: Maximize information efficiency, readability, and maintainability. Use when: User wants to optimize CLAUDE.md, information is duplicated across files, or LLM repeatedly fails to follow rules.

CLAUDE.md 渐进式披露优化器

核心理念

"找到最小的高信号 token 集合,最大化期望结果的可能性。" — Anthropic

目标是最大化信息效率、可读性、可维护性。

铁律:禁止用行数作为评价指标

  • 行数少不代表更好,行数多不代表更差
  • 优化的评判标准是:单一信息源(同一信息不在多处维护)、认知相关性(当前任务不需要的信息不干扰注意力)、维护一致性(改一处不需要同步另一处)
  • 禁止在优化方案中出现"从 X 行精简到 Y 行"、"减少 Z%"等表述
  • 一个结构清晰、信息不重复的长文件,比一个砍掉关键信息的短文件更好

两层架构

Level 1 (CLAUDE.md) - 每次对话都加载
├── 信息记录原则               ← 防止未来膨胀的自我约束
├── Reference 索引(开头)     ← 入口1遇到问题查这里
├── 核心命令表
├── 铁律/禁令(含代码示例)
├── 常见错误诊断(症状→原因→修复)
├── 代码模式(可直接复制)
├── 目录映射(功能→文件)
├── 修改代码前必读             ← 入口2改代码前查这里
└── Reference 触发索引(末尾) ← 入口3长对话后复述

Level 2 (references/) - 按需即时加载
├── 详细 SOP 流程
├── 边缘情况处理
├── 完整配置示例
└── 历史决策记录

多入口原则(重要!)

同一 Level 2 资源可以有多个入口,服务于不同查找路径:

入口 位置 触发场景 用户心态
Reference 索引 开头 遇到错误/问题 "出 bug 了,查哪个文档?"
修改代码前必读 中间 准备改代码 "我要改 X要注意什么"
Reference 触发索引 末尾 长对话定位 "刚才说的那个文档是哪个?"

这不是重复,是多入口。 就像书有目录(按章节)、索引(按关键词)、快速参考卡(按任务)。


优化工作流

Step 1: 备份

cp CLAUDE.md CLAUDE.md.bak.$(date +%Y%m%d_%H%M%S)

Step 2: 内容分类

对每个章节分类:

问题
高频使用? Level 1
违反后果严重? Level 1
有代码模式需要直接复制? Level 1 保留模式
有明确触发条件? Level 2 + 触发条件
历史/参考资料? Level 2 考虑删除

Step 3: 创建 Reference 文件

命名:docs/references/{主题}-sop.md

Step 4: 更新 Level 1

  1. 在开头添加「信息记录原则」项目概述之后Reference 索引之前)
  2. 添加 Reference 索引(紧随信息记录原则之后)
  3. 用触发条件格式替换详细内容
  4. 保留代码模式和错误诊断
  5. 添加「修改代码前必读」表格(按"要改什么"索引)
  6. 在末尾再放一份触发索引表

Step 5: 验证

# 检查引用文件存在
grep -oh '`[^`]*\.md`' CLAUDE.md | sed 's/`//g' | while read f; do
  test -f "$f" && echo "✓ $f" || echo "✗ MISSING: $f"
done

Level 1 内容分类

🔴 绝对不能移走

内容类型 原因
核心命令 高频使用
铁律/禁令 违反后果严重,必须始终可见
代码模式 LLM 需要直接复制,避免重新推导
错误诊断 完整的症状→原因→修复流程
目录映射 帮助 LLM 快速定位文件
触发索引表 帮助 LLM 在长对话中定位 Level 2

🟡 保留摘要 + 触发条件

内容类型 Level 1 Level 2
SOP 流程 触发条件 + 关键陷阱 完整步骤
配置示例 最常用的 1-2 个 完整配置
API 文档 常用方法签名 完整参数说明

🟢 可以完全移走

内容类型 原因
历史决策记录 低频访问
性能数据 参考性质
技术债务清单 按需查看
边缘情况 有明确触发条件时再加载

引用格式(四种)

1. 详细格式(正文中的重要引用)

**📖 何时读 `docs/references/xxx-sop.md`**
- [具体错误信息,如 `ERR_DLOPEN_FAILED`]
- [具体场景,如"添加新的原生模块时"]

> 包含:[关键词 1]、[关键词 2]、[代码模板]。

2. 问题触发表格(开头/末尾索引)

## Reference 索引(遇到问题先查这里)

| 触发场景 | 文档 | 核心内容 |
|----------|------|---------|
| `ERR_DLOPEN_FAILED` | `native-modules-sop.md` | ABI 机制、懒加载 |
| 打包后 `Cannot find module` | `vite-sop.md` | MODULES_TO_COPY |

3. 任务触发表格(修改代码前必读)

## 修改代码前必读

| 你要改什么 | 先读这个 | 关键陷阱 |
|-----------|---------|---------|
| 原生模块相关 | `native-modules-sop.md` | 必须懒加载electron-rebuild 会静默失败 |
| 打包配置 | `packaging-sop.md` | DMG contents 必须用函数形式 |

4. 内联格式(简短引用)

完整流程见 `database-sop.md`FTS5 转义、健康检查)。

多样性原则:不要所有引用都用同一格式。


四条核心原则

原则 0添加「信息记录原则」防止未来膨胀

问题:优化完成后,用户会继续要求 Claude "记录这个信息到 CLAUDE.md"如果没有规则指导CLAUDE.md 会再次膨胀。

解决:在 CLAUDE.md 开头(项目概述之后)添加「信息记录原则」:

## 信息记录原则Claude 必读)

本文档采用**渐进式披露**架构,优化 LLM 工作效能。

### Level 1本文件只记录

| 类型 | 示例 |
|------|------|
| 核心命令表 | `pnpm run restart` |
| 铁律/禁令 | 必须懒加载原生模块 |
| 常见错误诊断 | 症状→原因→修复(完整流程) |
| 代码模式 | 可直接复制的代码块 |
| 目录导航 | 功能→文件映射 |
| 触发索引表 | 指向 Level 2 的入口 |

### Level 2docs/references/)记录

| 类型 | 示例 |
|------|------|
| 详细 SOP 流程 | 完整的 20 步操作指南 |
| 边缘情况处理 | 罕见错误的诊断 |
| 完整配置示例 | 所有参数的说明 |
| 历史决策记录 | 为什么这样设计 |

### 用户要求记录信息时

1. **判断是否高频使用**
   - 是 → 写入 CLAUDE.mdLevel 1
   - 否 → 写入对应 reference 文件Level 2

2. **Level 1 引用 Level 2 必须包含**
   - 触发条件(什么情况该读)
   - 内容摘要(读了能得到什么)

3. **禁止**
   - 在 Level 1 放置低频的详细流程
   - 引用 Level 2 但不写触发条件

原因:这条规则让 Claude 自己知道什么该记在哪里,实现"自我约束",避免后续对话中 CLAUDE.md 再次膨胀。

原则 1触发索引表放开头和末尾

原因LLM 注意力呈 U 型分布——开头和末尾强,中间弱。

位置 作用
开头 对话开始时建立全局认知:"有哪些 Level 2 可用"
末尾 对话变长后复述提醒:"现在应该读哪个 Level 2"
<!-- CLAUDE.md 开头(项目概述之后) -->
## Reference 索引

| 触发场景 | 文档 | 核心内容 |
|---------|------|---------|
| ABI 错误 | `native-modules-sop.md` | 懒加载模式 |
| 打包模块缺失 | `vite-sop.md` | MODULES_TO_COPY |

... (正文内容) ...

<!-- CLAUDE.md 末尾(再放一份) -->
## Reference 触发索引

| 触发场景 | 文档 | 核心内容 |
|---------|------|---------|
| ABI 错误 | `native-modules-sop.md` | 懒加载模式 |
| 打包模块缺失 | `vite-sop.md` | MODULES_TO_COPY |

原则 2引用必须有触发条件

错误详见 native-modules-sop.md

正确

**📖 何时读 `native-modules-sop.md`**
- 遇到 `ERR_DLOPEN_FAILED` 错误
- 需要添加新的原生模块

> 包含ABI 机制、懒加载模式、手动修复命令

原因没有触发条件LLM 不知道什么时候该去读。

原则 3代码模式必须保留在 Level 1

错误:把代码示例移到 Level 2Level 1 只写"使用懒加载模式"。

正确Level 1 保留完整的可复制代码:

// ✅ 正确:懒加载,只在需要时加载
let _Database = null;
function getDatabase() {
  if (!_Database) {
    _Database = require("better-sqlite3");
  }
  return _Database;
}

原因LLM 需要直接复制代码,移走后每次都要重新推导或读取 Level 2。


反模式警告

⚠️ 反模式 1以行数为目标的过度精简

案例:为了"减少行数",移走了代码模式、诊断流程、目录映射

结果

  • 丢失代码模式LLM 每次重新推导
  • 丢失诊断流程,遇错不知查哪
  • 丢失目录映射,找文件效率低

正确:保留所有高频使用的内容。优化的判断标准是信息是否重复维护、是否与当前任务无关,而不是"文件太长"。

⚠️ 反模式 2无触发条件的引用

案例详见 xxx.md

问题LLM 不知道何时加载,要么忽略,要么每次都读。

正确:触发条件 + 内容摘要。

⚠️ 反模式 3移走代码模式

案例:把常用代码示例移到 Level 2

问题LLM 每次写代码都要先读 Level 2增加延迟和 token 消耗。

正确:高频使用的代码模式保留在 Level 1。

⚠️ 反模式 4删除而非移动

案例:删除"不重要"的章节

问题:信息丢失,未来需要时无处可查。

正确:移到 Level 2保留触发条件。

⚠️ 反模式 5用行数当 KPI

案例:优化方案写"从 2000 行精简到 500 行,减少 75%"

问题:把行数当成功指标,会驱动错误决策——为了凑数字而砍掉有用的信息。

正确用信息质量评估优化效果——信息是否有重复维护负担是否降低LLM 是否能更快找到需要的信息?


信息量检验

正确的信息量

检验项 通过标准
日常命令 不需要读 Level 2
常见错误 有完整诊断流程
代码编写 有可复制的模式
特定问题 知道读哪个 Level 2
触发索引 在文档末尾,表格形式

不足的信号

  • LLM 反复问同样的问题
  • LLM 每次重新推导代码模式
  • 用户需要反复提醒规则

过多的信号

  • 大段低频详细流程在 Level 1
  • 完全相同的内容在多处(注意:多入口指向同一资源 ≠ 重复)
  • 边缘情况和常见情况混在一起

项目级 vs 用户级

维度 用户级 项目级
位置 ~/.claude/CLAUDE.md 项目/CLAUDE.md
References ~/.claude/references/ docs/references/
信息范围 个人偏好、全局规则 项目架构、团队规范

快速检查清单

优化完成后,检查:

  • 「信息记录原则」在文档开头(防止未来膨胀)
  • Reference 索引在文档开头入口1遇到问题查这里
  • 核心命令表完整
  • 铁律/禁令有代码示例
  • 常见错误有完整诊断流程(症状→原因→修复)
  • 代码模式可直接复制
  • 目录映射(功能→文件)
  • 「修改代码前必读」表格入口2按"要改什么"索引)
  • Reference 触发索引在文档末尾入口3长对话后复述
  • 每个 Level 2 引用都有触发条件
  • 引用的文件都存在