---
name: skill-medic
display_name: SkillMedic — Skill 健康检查与冲突检测
version: 0.4.18
description: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。
tags: [skill-engineering, audit, conflict-detection, scoring, inventory]
language: zh-CN
---

# SkillMedic — Skill 健康检查与冲突检测

> 定位：检查你安装的全部 Skill —— 列出清单、找出重复和冲突、评估成熟度、给出处理建议
>
> 一句话：**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**

---

## 触发契约

### 何时调用（应触发）

当用户表达以下任一意图时，应激活本 Skill：

- **盘点类**："检查一下我有哪些 skill" / "我装了什么 skill" / "列出所有 skill"
- **冲突检测类**："哪些 skill 重复了" / "skill 之间有没有冲突" / "会不会有两个 skill 抢着响应" / "谁和谁功能重叠"
- **质量评估类**："我的 skill 都靠谱吗" / "给所有 skill 打个分" / "哪个 skill 不好用"
- **综合处方类**："该保留哪些 skill" / "哪些 skill 该删" / "skill 优化建议"
- **增量审计类**："对比上次和这次的检查结果" / "增量检查 skill"
- **范围限定类**："只看 workspace 的 skill" / "检查全局 skill"

### 何时不要调用（反触发）

以下情况**不应激活**本 Skill，应路由到其他 Skill：

- 用户要**创建新 Skill** → 路由到 Skill 创建类 Skill
- 用户要检查**单个 Skill 的质量达标情况** → 路由到单体质量自检类 Skill
- 用户问**"skill 这个词是什么意思"** 等纯知识问答 → 不触发本 Skill
- 用户进行**C 盘清理** → 路由到系统维护类 Skill
- 用户进行**代码审查/安全扫描/调试** → 路由到平台对应的质量保障类 Skill
- 用户要求**具体的业务功能**（如"帮我扫描这个页面"）→ 路由到对应业务 Skill

---

## 状态机总览

```
MED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE
```

| 阶段 | 名称 | 职责 | 产出 |
|------|------|------|------|
| MED_SCOPE | 范围扫描 | 确定扫描范围，检查目录可读性 | 扫描范围声明 |
| MED_ROSTER | 清单盘点（轻量粗扫） | 只读 frontmatter + 目录树 + 静态指标，**禁止读正文全文** | Skill 清单 JSON |
| MED_SORT | 三维分类 | 按功能域/交互模型/生命周期状态分类 | 分类表 |
| MED_CONFLICT | 冲突检测 | 全量静态比对 + 按分组 LLM 确认证据 | 冲突矩阵 + 证据 |
| MED_VITAL | 评分 | 按分组批处理八维打分 | 评分表（含证据） |
| MED_RX | 综合研判 | 冲突矩阵 × 评分 → 处方建议 | 处方清单 |
| MED_DEBRIEF | 报告输出 | 生成并落盘检查报告（S3/S4 档含各功能域附录） | 检查报告 + 附录 |
| MED_CLOSE | 完成 | 汇总统计、清理临时文件 | 完成摘要 |

---

## 路由表（阶段 → Chunk）

| 当前阶段 | 加载的 Chunk |
|----------|-------------|
| 初始化（刚激活） | 01 |
| MED_SCOPE / MED_ROSTER | 01, 02 |
| MED_SORT | 01, 03 |
| MED_CONFLICT | 01, 04, 08 |
| MED_VITAL | 01, 05, 08 |
| MED_RX | 01, 06 |
| MED_DEBRIEF | 01, 07 |
| MED_CLOSE | 01（复用 07-reporter-agent，无独立 chunk） |
| 任意子 Agent 激活 | 01, 09（+ 对应阶段 chunk） |

> 详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览，避免膨胀。

---

## 深度参考（references/，渐进式披露第 3 层，按需查阅）

| 文件 | 用途 |
|------|------|
| `references/rubric-detail.md` | 八维评分细则（每维满分标准与扣分证据） |
| `references/score-keys.md` | 八维静态信号关键词表 |
| `references/conflict-catalog.md` | 五类冲突示例目录 |
| `references/anti-patterns.md` | 反模式清单（症状 / 危害 / 正确做法） |
| `references/faq-deep.md` | 深度 FAQ（11 题：边缘场景 / 工具兼容 / 安全合规） |
| `references/examples.md` | 各命令真实输出示例（场景 → 命令 → 输出片段） |
| `references/cli-guide.md` | CLI 工具层调用约定（定位 / 失败处理 / 禁止项） |

## 接力棒文件

- 路径：`.medic/_medic_baton.json`（本 Skill 专属目录，自动创建）
- 协议详见 `protocols/baton-protocol.md`

## CLI 工具层（强制走 CLI，不裸跑代码）

- 所有静态分析统一通过 `medic_tools/run.py` 执行（定位/调用/失败处理详见 `references/cli-guide.md`）
- 中间产物一律 `--save` 落盘到 `.medic/`；AI **禁止** `python -c` 内联、禁止绕过 CLI 自行分析

---

## 约束分层原则

| 层 | 覆盖范围 | 约束强度 |
|----|----------|---------|
| **工程骨架层** | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | **强约束**（规则化、数值化，禁止自由发挥） |
| **智能分析层** | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | **软约束**（给目标与方法，不锁死结论与措辞） |

---

## 能力边界说明

### ✅ 擅长处理（能做什么）

1. **盘点**：扫描全部 Skill（workspace + 全局），输出统一清单
2. **分类**：三维分类（功能域 / 交互模型 / 生命周期状态）
3. **冲突检测**：五类冲突（同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争）
4. **评分**：八维成熟度评分（0-100）+ L0~L3 定级
5. **处方**：保留 / 合并 / 整改 / 移除 建议
6. **报告**：Skill 检查报告（双层：人话汇报层 + 专业明细层，9 个编号部分）+ 历史对比

### ⚠️ 需要素材才能做

1. **增量审计**：需要指定"与哪次清单对比"（默认用上次 `.medic/_medic_last_inventory.json`）
2. **只检特定范围**：需要用户说明（如"只看 workspace"）
3. **专项检查**：需要用户说明（如"只查冲突"或"只打分"）

### ❌ 超出范围（不做什么）

1. **不写被检 Skill 的业务表/数据库**；不改任何被检查 Skill 的文件
2. **不自动改 IDE 的 Skill 启用配置**（启用/禁用清单需用户确认后手动执行）
3. **不代执行处方**（只产出建议；合并/归档由用户或作者执行）
4. **不分析被检 Skill 的业务逻辑**——那是单体质量自检的活（本 Skill 只做抽象层）
5. **不创建新 Skill、不做单体达标整改** → 路由到对应的 Skill 创建/单体自检类 Skill

## 安全红线

- 不读取业务数据、服务器配置、账号配置的**内容**（只记录资源**字段名/路径**）
- 不引导操作他人账号、不处理真实敏感数据；报告中的密钥/密码只写字段名不写值
- 不触碰任何被检 Skill 的配置值；临时产物统一放 `.medic/_medic_*.json`（本 Skill 专属，自动创建）

## 异常处理与输出准确性

- **信息不足**（如目录探测不到）：不编造、不中断，列出"还缺什么/哪个范围未覆盖"，以可用数据继续
- **禁止笼统提示**：缺信息时不回复"请提供更多信息"这类空话，必须列出具体缺哪 N 项（如"缺扫描范围 / 缺上次清单 / 某目录探测不到"）
- **失败处理**：单批失败自动重试 1 次，仍失败标记 skip 继续，收尾汇总；接力棒状态异常按协议处理
- **输出准确性**：每个结论必须可回溯到证据（文件/章节/指标值）；**禁止无依据编造评分或冲突结论**；证据不足的结论明确标注"待确认"

## 受众说明

| 用户类型 | 如何使用 |
|---------|---------|
| 个人 Skill 开发者 | 直接触发，查看清单/冲突/评分/处方 |
| 团队 Skill 维护者 | 合并改动前跑一遍，确认无新增冲突 |
| Skill 生态管理员 | 作为 Skill 健康基线，定期检查 + 历史对比 |
| 初学者 | 先看 README 快速开始，跑 `ping` 自检环境 |

## 定制化参数（触发时可传）

- `"只看 workspace 的 skill"` → 范围限定 workspace（`run.py scan --scope`）
- `"增量审计"` → 对比上次清单，只精析新增/变更项
- `"只查冲突"` / `"只打分"` → 专项模式，跳过其他阶段
- `"严格模式"` → 评分/审核从严（低证据一律标注待确认）

> 专项模式/增量审计/范围限定的**具体执行路径（阶段裁剪表与闸门豁免）见 chunk-01"专项模式/增量审计"节**，
> 00-master 按裁剪表路由；三者的承诺能力均有落地流程，禁止"说了不做"。

## 常见问题 FAQ

**Q1：这个 Skill 和单体质量自检类 Skill 有什么区别？**
单体自检查"1 个 Skill 内部质量"；本 Skill 查"全部 Skill 的关系"（清单/分类/冲突/评分/处方）。

**Q2：评分标准会过时吗？**
不会。标准版本化（内置基线 8-axis-v0.1），仅在用户要求/过期 >30 天/首次使用时联网更新。

**Q3：会不会误判导致我误删 Skill？**
不会。本 Skill 只出处方不代执行，改动需你确认后手动做；高严重度冲突必须有 ≥2 条独立证据。

**Q4：会不会越界读我的业务数据？**
不会。只做抽象层审计，不读业务数据/服务器/账号配置内容；密钥只记字段名不记值。

**Q5：Skill 目录找不到怎么办？**
以 IDE 注入的 skill 清单为准继续，探测不到的目录记录"未覆盖"不阻断。

**Q6：中途中断了怎么办？**
接力棒记录进度，再次调用自动断点续跑；每批结果即时落盘不丢失。