# Danshari Skill

> 断舍离.skill — 审计当前 agent 装的全部 skill，对照现在的模型能力、harness 内建功能和已接入的 MCP 工具，找出不再需要的那些：证据化判决（能力型先盲测）→ 用户确认 → 归档移除（一键可恢复），并报告每轮省下的 token。模型每变强一代，就该跑一次。 触发词：「skill 断舍离」「清理 skill」「skill 太多了」「移除不需要的 skill」「审计 skill」「换了新模型清理一下」「prune skills」「declutter skills」「skill audit」。

- Skill: `swaylq/danshari-skill` (Agent Skill, multi-file: 6 files)
- Install (CLI): `npx skillmds@latest add swaylq/danshari-skill`
- Raw SKILL.md: https://api.skillmd.com/api/skills/swaylq/danshari-skill/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: swaylq (https://skillmd.com/u/swaylq)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/swaylq/danshari-skill

---


# 断舍离 · 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 · 五问审判

逐个过堂，任何一问坐实即得判决候补：

1. **模型已内化？**（能力型）——拿掉这个 skill，当前模型裸做是否同样好？典型：分步思考脚手架、通用代码评审清单、commit 写法教程、总结 / 翻译模板、提示词格式指南。
2. **harness 已自带？**（环境型）——内建功能是否已覆盖？典型：手搓网页搜索 vs 内建搜索工具，「帮我记住」hack vs 自动记忆，手搓计划流程 vs 计划模式，手搓定时 vs 内建 schedule。
3. **MCP 已接管？**（环境型）——某个已接入的 MCP server 是否用真 API 提供了同样能力？典型:curl 拼 Slack / GitHub 请求的胶水 skill vs 对应 MCP。
4. **被吞并 / 重复？**——另一个已装 skill 是否为它的超集？两个 skill 的触发词是否互相打架、造成误触发？
5. **已腐烂？**——引用的路径 / 模型 / API 版本 / 主机还在吗？带的脚本还能跑吗？腐烂的 skill 比无用更糟：它触发后给出错误指引。

判据细则、典型与反例、边界案例 → `references/rubric.md`。

### Phase 3 · 盲测（能力型死刑复核）

对没有十足把握的能力型 skill：

1. 取它最典型的触发任务；
2. 开一个**不加载该 skill** 的子 agent 裸做一遍；
3. 对照该 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 做**减法**——装上之后的日常代谢。加法越繁荣，减法越必要。

