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 | 报告输出 | 生成并落盘检查报告 | 检查报告 | | 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 | | 任意子 Agent 激活 | 01, 09(+ 对应阶段 chunk) |
详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览,避免膨胀。
接力棒文件
- 路径:
.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 自行分析
约束分层原则
| 层 | 覆盖范围 | 约束强度 | |----|----------|---------| | 工程骨架层 | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | 强约束(规则化、数值化,禁止自由发挥) | | 智能分析层 | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | 软约束(给目标与方法,不锁死结论与措辞) |
能力边界说明
✅ 擅长处理(能做什么)
- 盘点:扫描全部 Skill(workspace + 全局),输出统一清单
- 分类:三维分类(功能域 / 交互模型 / 生命周期状态)
- 冲突检测:五类冲突(同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争)
- 评分:八维成熟度评分(0-100)+ L0~L3 定级
- 处方:保留 / 合并 / 整改 / 移除 建议
- 报告:Skill 检查报告(双层:人话汇报层 + 专业明细层,9 个编号部分)+ 历史对比
⚠️ 需要素材才能做
- 增量审计:需要指定"与哪次清单对比"(默认用上次
.medic/_medic_inventory.json) - 只检特定范围:需要用户说明(如"只看 workspace")
- 专项检查:需要用户说明(如"只查冲突"或"只打分")
❌ 超出范围(不做什么)
- 不写被检 Skill 的业务表/数据库;不改任何被检查 Skill 的文件
- 不自动改 IDE 的 Skill 启用配置(启用/禁用清单需用户确认后手动执行)
- 不代执行处方(只产出建议;合并/归档由用户或作者执行)
- 不分析被检 Skill 的业务逻辑——那是单体质量自检的活(本 Skill 只做抽象层)
- 不创建新 Skill、不做单体达标整改 → 路由到对应的 Skill 创建/单体自检类 Skill
安全红线
- 不读取业务数据、服务器配置、账号配置的内容(只记录资源字段名/路径)
- 不引导操作他人账号、不处理真实敏感数据;报告中的密钥/密码只写字段名不写值
- 不触碰任何被检 Skill 的配置值;临时产物统一放
.medic/_medic_*.json(本 Skill 专属,自动创建)
异常处理与输出准确性
- 信息不足(如目录探测不到):不编造、不中断,列出"还缺什么/哪个范围未覆盖",以可用数据继续
- 失败处理:单批失败自动重试 1 次,仍失败标记 skip 继续,收尾汇总;接力棒状态异常按协议处理
- 输出准确性:每个结论必须可回溯到证据(文件/章节/指标值);禁止无依据编造评分或冲突结论;证据不足的结论明确标注"待确认"
受众说明
| 用户类型 | 如何使用 |
|---------|---------|
| 个人 Skill 开发者 | 直接触发,查看清单/冲突/评分/处方 |
| 团队 Skill 维护者 | 合并改动前跑一遍,确认无新增冲突 |
| Skill 生态管理员 | 作为 Skill 健康基线,定期检查 + 历史对比 |
| 初学者 | 先看 README 快速开始,跑 ping 自检环境 |
定制化参数(触发时可传)
"只看 workspace 的 skill"→ 范围限定 workspace"增量审计"→ 对比上次清单,只精析新增/变更项"只查冲突"/"只打分"→ 专项模式,跳过其他阶段"严格模式"→ 评分/审核从严(低证据一律标注待确认)
常见问题 FAQ
Q1:这个 Skill 和单体质量自检类 Skill 有什么区别? 单体自检查"1 个 Skill 内部质量";本 Skill 查"全部 Skill 的关系"(清单/分类/冲突/评分/处方)。
Q2:评分标准会过时吗? 不会。标准版本化(内置基线 8-axis-v0.1),仅在用户要求/过期 >30 天/首次使用时联网更新。
Q3:会不会误判导致我误删 Skill? 不会。本 Skill 只出处方不代执行,改动需你确认后手动做;高严重度冲突必须有 ≥2 条独立证据。
Q4:会不会越界读我的业务数据? 不会。只做抽象层审计,不读业务数据/服务器/账号配置内容;密钥只记字段名不记值。
Q5:Skill 目录找不到怎么办? 以 IDE 注入的 skill 清单为准继续,探测不到的目录记录"未覆盖"不阻断。
Q6:中途中断了怎么办? 接力棒记录进度,再次调用自动断点续跑;每批结果即时落盘不丢失。
微信扫一扫