| name | danshari-skill |
| description | 断舍离.skill — 审计当前 agent 装的全部 skill,对照现在的模型能力、harness 内建功能和已接入的 MCP 工具,找出不再需要的那些:证据化判决(能力型先盲测)→ 用户确认 → 归档移除(一键可恢复),并报告每轮省下的 token。模型每变强一代,就该跑一次。
触发词:「skill 断舍离」「清理 skill」「skill 太多了」「移除不需要的 skill」「审计 skill」「换了新模型清理一下」「prune skills」「declutter skills」「skill audit」。
|
| allowed-tools | Read, Write, Edit, Bash, Glob, Grep, Task |
断舍离 · skill 减法术
「别的 skill 都在教 agent 做更多事,这一个教它少背点东西。」
核心理念
skill 不是免费的。每装一个,它的名字和描述就进每一轮的系统提示词——那是常驻的 token 税;描述之间还会互相抢触发,误触发一次比没有 skill 更糟;而模型每变强一代,就有一批「教模型做它已经会的事」的 skill 从资产变成负债。
三分法定生死:
| 类型 | 定义 | 命运 |
|---|
| 能力型 | 教模型「怎么想 / 怎么做」的通用方法 | 模型升级会淘汰它——审计重点 |
| 环境型 | 包装某个工具,或补 harness 缺的功能 | harness 与 MCP 演进会取代它 |
| 知识型 | 记录模型不可能知道的私有事实(账号、路径、内部约定、口令流程) | 永不因模型变强而过时,只因事实变化而腐烂 |
判决要证据,不要直觉:能力型 skill 判死刑前先盲测(Phase 3)。
执行流程
Phase 0 · 环境快照
审计基准是「现在的你」,先把它写下来:
- 模型:从系统提示词读当前 model id(如
claude-fable-5)与知识截止时间。
- harness 内建:清点本会话可用的内建工具与功能——网页搜索 / 抓取、子 agent、计划模式、自动记忆、定时任务、内建评审命令等。以会话内实际可见为准。
- MCP:列出已接入的 MCP server 及各自工具。优先读会话内已可见的
mcp__* 工具名或 harness 配置文件;别在活会话里跑注册表增删查命令,有的 harness 会因此重连、坏掉当前会话。
- skill 清单:跑
tools/inventory.py。默认扫个人(~/.claude/skills)、项目(./.claude/skills)与插件目录;其他 host 用 --root 指路径。得到每个 skill 的描述、粗估 token 税、体积、最后改动时间。
Phase 1 · 三分类
逐个读 SKILL.md(读头部与骨架即可,别全文精读大文件),按三分法归类。常见混合型——一层通用说教包着几行私有事实——单独标记,天然的修剪候选。
Phase 2 · 五问审判
逐个过堂,任何一问坐实即得判决候补:
- 模型已内化?(能力型)——拿掉这个 skill,当前模型裸做是否同样好?典型:分步思考脚手架、通用代码评审清单、commit 写法教程、总结 / 翻译模板、提示词格式指南。
- harness 已自带?(环境型)——内建功能是否已覆盖?典型:手搓网页搜索 vs 内建搜索工具,「帮我记住」hack vs 自动记忆,手搓计划流程 vs 计划模式,手搓定时 vs 内建 schedule。
- MCP 已接管?(环境型)——某个已接入的 MCP server 是否用真 API 提供了同样能力?典型:curl 拼 Slack / GitHub 请求的胶水 skill vs 对应 MCP。
- 被吞并 / 重复?——另一个已装 skill 是否为它的超集?两个 skill 的触发词是否互相打架、造成误触发?
- 已腐烂?——引用的路径 / 模型 / API 版本 / 主机还在吗?带的脚本还能跑吗?腐烂的 skill 比无用更糟:它触发后给出错误指引。
判据细则、典型与反例、边界案例 → references/rubric.md。
Phase 3 · 盲测(能力型死刑复核)
对没有十足把握的能力型 skill:
- 取它最典型的触发任务;
- 开一个不加载该 skill 的子 agent 裸做一遍;
- 对照该 skill 承诺的产出标准打分。
裸做不逊色 → 「模型已内化」坐实;明显更差 → 保留,并记下差距在哪。一个 skill 测一次即可——几分钟成本,换一个有证据的判决。
Phase 4 · 判决与报告
按 references/report-template.md 出报告。五种判决:
| 判决 | 含义 | 执行 |
|---|
| ✂️ 移除 | 证据确凿,不再需要 | 挪入归档目录(可恢复),永不 rm |
| 🔧 修剪 | 混合型:说教过时,事实仍值钱 | 删说教留事实,常见 200 行剪成 10 行 |
| 🔗 合并 | 与另一 skill 重复 | 并入较优者,空壳归档 |
| ⏳ 缓刑 | 证据不足 | 原地保留,记为下次审计重点 |
| ✅ 保留 | 挣回了自己的 token 税 | 不动 |
报告必须带:环境快照、每条判决的依据(盲测结果 / 对应的内建功能或 MCP 工具名 / 腐烂证据)、省下的 token 数。
Phase 5 · 确认后执行
没有用户明确确认,一个 skill 都不许动。 展示判决表,逐条或整批确认,尊重任何否决。确认后:
- 搜身先行:移除 / 合并前扫一遍正文,里面埋着的私有事实(URL、路径、账号名、脚本)先迁出到该去的知识型 skill 或文档,再动手。
- 移除与合并后的空壳 →
tools/archive.sh <dir> --reason "…":挪入 ~/.claude/skills-archive/<日期>/,写 MANIFEST,永不 rm。
- 修剪 → 直接 Edit,diff 给用户看。
- 收尾重跑
inventory.py,报告前后对比:「N 个 → M 个,每轮省 ~X token」。
- 恢复方式写进报告结尾:
tools/archive.sh --restore <name>。
尾声 · 立下节律
在报告结尾写明下次审计的触发条件:换模型、harness 大版本升级、新接 MCP、或距本次 90 天。新模型发布日,就是 skill 断舍离日。
红线(绝不移除)
- 知识型私有事实:账号、主机、内部流程、凭据的使用方式——模型再强也不可能知道你的基础设施。
- 政策型约定:「在这里必须这样做」——它编码的是人的要求,不是模型的能力。
- 被别处引用的脚本 / 模板资产。
- 用户说留的,不再争辩。
- 拿不准 → ⏳ 缓刑。缓刑零成本,误删要重写。
品味守则(速查)
- 删的是「教模型做它已经会的事」,留的是「告诉模型它不可能知道的事」。
- 证据 > 直觉:能力型判死刑前必盲测。
- 混合型用修剪不用移除:留事实,删说教。
- 移除前搜身:埋在过时 skill 里的私有事实先迁出,再归档。
- 永不 rm:一切移除都是可恢复的归档。
- 本 skill 也在审判范围内——若你的模型裸做审计已同样好,请把断舍离也断舍离。
与其他 skill 的关系
- 各家 awesome 列表和 skill 市场做加法——给 agent 装上更多。
- 断舍离.skill 做减法——装上之后的日常代谢。加法越繁荣,减法越必要。