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 自行分析
自检与验证(改动本 Skill 后必做)
python -m unittest discover -s tests # 判据回归(关键词质量 / C1-C2 阈值 / 分类 / 分档)
python tools/check_consistency.py # 版本单一事实源、零 emoji、引用悬空、篇幅;非 0 退出即不通过
python medic_tools/run.py ping <项目根> # 环境与目录探测自检
三条全绿才算改完。改动 extract_keywords、C1_* / C2_* 阈值、FUNCTIONAL_DOMAIN_KEYWORDS
或生命周期判据时必须跑单测——这些参数直接决定报告结论,无测试守着的调参会静默改变准确率。
约束分层原则
| 层 | 覆盖范围 | 约束强度 |
|---|---|---|
| 工程骨架层 | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | 强约束(规则化、数值化,禁止自由发挥) |
| 智能分析层 | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | 软约束(给目标与方法,不锁死结论与措辞) |
能力边界说明
擅长处理(能做什么)
- 盘点:扫描全部 Skill(workspace + 全局),输出统一清单
- 分类:三维分类(功能域 / 交互模型 / 生命周期状态)
- 冲突检测:五类冲突(同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争)
- 评分:八维成熟度评分(0-100)+ L0~L3 定级
- 处方:保留 / 合并 / 整改 / 移除 建议
- 报告:Skill 检查报告(双层:人话汇报层 + 专业明细层,9 个编号部分)+ 历史对比
需要素材才能做
- 增量审计:需要指定"与哪次清单对比"(默认用上次
.medic/_medic_last_inventory.json) - 只检特定范围:需要用户说明(如"只看 workspace")
- 专项检查:需要用户说明(如"只查冲突"或"只打分")
超出范围(不做什么)
- 不写被检 Skill 的业务表/数据库;不改任何被检查 Skill 的文件
- 不自动改 IDE 的 Skill 启用配置(启用/禁用清单需用户确认后手动执行)
- 不代执行处方(只产出建议;合并/归档由用户或作者执行)
- 不分析被检 Skill 的业务逻辑——那是单体质量自检的活(本 Skill 只做抽象层)
- 不创建新 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 按裁剪表路由;三者的承诺能力均有落地流程,不做无落地的承诺。
常见问题
细则与边缘场景(含"和单体自检的区别 / 评分标准会过时吗 / 会不会误删 / 会不会越界 / 目录探测不到 / 中断续跑")
见 references/faq-deep.md,共 12 题,按问题检索即可。
收尾与停止条件
MED_CLOSE 阶段逐项核对,全部满足才算完成:
- 回到用户原始需求,逐条核对是否覆盖;未覆盖的明写原因。
- 列出本次产出的文件清单(报告路径 + 各阶段产物路径)。
- 报告中每条结论可回溯到证据(文件 / 章节 / 指标值);证据不足处标注"待确认",不得省略该标注。
- 接力棒
state置CLOSE、is_running置 0,artifacts.report回填实际路径。 - 收口完成后执行
run.py cleanup,保留接力棒 / 清单 / 历史报告 / S3-S4 档附录。 - 停止判据:8 阶段产物齐备且三道审核闸门通过,或命中
state=FAILED(累计重试 ≥3 次)交由人工处理。 - 存在未完成项时,说明卡在哪一步、需要用户提供什么,不擅自编造补齐。