{"id":"4cc9579c-310c-4a2e-b95c-3bd4f5233b72","entityType":"agent","slug":"clawhub-songzhou666-skill-medic","name":"skill-medic","canonicalUrl":"https://www.xpersona.co/agent/clawhub-songzhou666-skill-medic","canonicalPath":"/agent/clawhub-songzhou666-skill-medic","generatedAt":"2026-10-09T23:42:00.497Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":null},"description":"检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 2.5K downloads reported by the source. Last updated 10/9/2026.","installCommand":"clawhub skill install s171ezpm2b0hjzn2z4ww819jrn878gc2:skill-medic","sourceUrl":"https://clawhub.ai/songzhou666/skill-medic","homepage":"https://clawhub.ai/songzhou666/skills/skill-medic","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/songzhou666/skill-medic","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/songzhou666/skills/skill-medic","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":68,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"skill-medic technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":null},"stars":null,"forks":null,"downloads":2548,"packageName":null,"latestVersion":"0.1.2","tractionLabel":"2.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":null},"lastUpdatedAt":"2026-10-09T13:39:57.852Z","lastCrawledAt":"2026-10-09T13:39:57.852Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-10T13:39:57.852Z","lastVerifiedAt":null,"highlights":[{"version":"0.1.2","createdAt":"2026-08-08T08:57:38.306Z","changelog":"- 补充专项模式、增量审计、范围限定等执行路径的具体说明，明确链路裁剪与能力承诺。 - 报告输出阶段（MED_DEBRIEF）新增 S3/S4 档功能域附录说明。 - 部分参数如“只看 workspace 的 skill”细化对应 CLI 调用（run.py scan --scope）。 - 明确专项/增量等模式均有落地流程，不允许“说了不做”。 - 小幅调整表述，增强与实际实现细节的一致性。","fileCount":42,"zipByteSize":131628},{"version":"0.1.1","createdAt":"2026-08-08T05:59:29.123Z","changelog":"- 路由和阶段定义调整：新增或更新了 MED_CLOSE 阶段路由与说明。 - 默认历史清单改名：增量审计默认历史清单改为 `.medic/_medic_last_inventory.json`。 - 多处描述和说明优化，让能力边界和不支持场景表述更清晰。 - 维护和精简内容结构，完善各状态与路由说明，减少重复，提升可读性。 - 移除 skill-card.md，清理冗余文档。","fileCount":42,"zipByteSize":105271},{"version":"0.1.0","createdAt":"2026-08-06T09:34:15.053Z","changelog":"SkillMedic 0.4.9 introduces a comprehensive health check and conflict detection tool for all installed AI Skills. - 全面盘点已安装 Skill，输出详细清单，并支持三维分类（功能域/交互模型/生命周期状态） - 自动检测 Skill 间内容重复与冲突，产出冲突矩阵与具体证据 - 针对每个 Skill 提供八维度评分与成熟度分级，生成详细打分报告 - 综合给出 Skill 保留、合并、整改、移除等操作建议（不代执行，仅供参考） - 输出结构化检查报告，并支持历史对比及异常处理自动断点续跑 - 严格区分适用场景与能力边界，强化安全与准确性约束","fileCount":42,"zipByteSize":88869}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s171ezpm2b0hjzn2z4ww819jrn878gc2:skill-medic","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s171ezpm2b0hjzn2z4ww819jrn878gc2:skill-medic` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/songzhou666/skill-medic before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T23:42:00.495Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-songzhou666-skill-medic/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":null},"readme":"Skill: skill-medic\n\nOwner: songzhou666\n\nSummary: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。\n\nTags: latest:0.1.2\n\nVersion history:\n\nv0.1.2 | 2026-08-08T08:57:38.306Z | auto\n\n- 补充专项模式、增量审计、范围限定等执行路径的具体说明，明确链路裁剪与能力承诺。\n- 报告输出阶段（MED_DEBRIEF）新增 S3/S4 档功能域附录说明。\n- 部分参数如“只看 workspace 的 skill”细化对应 CLI 调用（run.py scan --scope）。\n- 明确专项/增量等模式均有落地流程，不允许“说了不做”。\n- 小幅调整表述，增强与实际实现细节的一致性。\n\nv0.1.1 | 2026-08-08T05:59:29.123Z | auto\n\n- 路由和阶段定义调整：新增或更新了 MED_CLOSE 阶段路由与说明。\n- 默认历史清单改名：增量审计默认历史清单改为 `.medic/_medic_last_inventory.json`。\n- 多处描述和说明优化，让能力边界和不支持场景表述更清晰。\n- 维护和精简内容结构，完善各状态与路由说明，减少重复，提升可读性。\n- 移除 skill-card.md，清理冗余文档。\n\nv0.1.0 | 2026-08-06T09:34:15.053Z | auto\n\nSkillMedic 0.4.9 introduces a comprehensive health check and conflict detection tool for all installed AI Skills.\n\n- 全面盘点已安装 Skill，输出详细清单，并支持三维分类（功能域/交互模型/生命周期状态）\n- 自动检测 Skill 间内容重复与冲突，产出冲突矩阵与具体证据\n- 针对每个 Skill 提供八维度评分与成熟度分级，生成详细打分报告\n- 综合给出 Skill 保留、合并、整改、移除等操作建议（不代执行，仅供参考）\n- 输出结构化检查报告，并支持历史对比及异常处理自动断点续跑\n- 严格区分适用场景与能力边界，强化安全与准确性约束\n\nArchive index:\n\nArchive v0.1.2: 42 files, 131628 bytes\n\nFiles: .gitignore (149b), 1-manifest (0b), 1-manifest/skill-manifest.yaml (607b), agents (0b), agents/00-master-controller.md (6891b), agents/01-inventory-agent.md (3472b), agents/02-classifier-agent.md (1791b), agents/03-conflict-agent.md (3404b), agents/04-scorer-agent.md (1570b), agents/05-auditor-agent.md (3367b), agents/06-synthesizer-agent.md (3055b), agents/07-reporter-agent.md (7256b), CHANGELOG.md (53563b), medic_tools (0b), medic_tools/__init__.py (36b), medic_tools/run.py (115658b), protocols (0b), protocols/baton-protocol.md (5428b), protocols/phase-protocol.md (2330b), README.md (2256b), references (0b), references/anti-patterns.md (2465b), references/cli-guide.md (5779b), references/conflict-catalog.md (1826b), references/examples.md (5737b), references/faq-deep.md (4397b), references/rubric-detail.md (2171b), references/score-keys.md (1924b), skill-card.md (2300b), SKILL.chunks (0b), SKILL.chunks/chunk-01-overview.md (5337b), SKILL.chunks/chunk-02-scan-inventory.md (5813b), SKILL.chunks/chunk-03-categorize.md (4588b), SKILL.chunks/chunk-04-conflict.md (5220b), SKILL.chunks/chunk-05-score.md (6089b), SKILL.chunks/chunk-06-synthesize.md (3268b), SKILL.chunks/chunk-07-report.md (11276b), SKILL.chunks/chunk-08-rubric.md (1538b), SKILL.chunks/chunk-09-agents.md (2422b), SKILL.chunks/chunk-index.yaml (1029b), SKILL.md (9940b), _meta.json (130b)\n\nFile v0.1.2:SKILL.md\n\n---\nname: skill-medic\ndisplay_name: SkillMedic — Skill 健康检查与冲突检测\nversion: 0.4.18\ndescription: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。\ntags: [skill-engineering, audit, conflict-detection, scoring, inventory]\nlanguage: zh-CN\n---\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n> 定位：检查你安装的全部 Skill —— 列出清单、找出重复和冲突、评估成熟度、给出处理建议\n>\n> 一句话：**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n---\n\n## 触发契约\n\n### 何时调用（应触发）\n\n当用户表达以下任一意图时，应激活本 Skill：\n\n- **盘点类**：\"检查一下我有哪些 skill\" / \"我装了什么 skill\" / \"列出所有 skill\"\n- **冲突检测类**：\"哪些 skill 重复了\" / \"skill 之间有没有冲突\" / \"会不会有两个 skill 抢着响应\" / \"谁和谁功能重叠\"\n- **质量评估类**：\"我的 skill 都靠谱吗\" / \"给所有 skill 打个分\" / \"哪个 skill 不好用\"\n- **综合处方类**：\"该保留哪些 skill\" / \"哪些 skill 该删\" / \"skill 优化建议\"\n- **增量审计类**：\"对比上次和这次的检查结果\" / \"增量检查 skill\"\n- **范围限定类**：\"只看 workspace 的 skill\" / \"检查全局 skill\"\n\n### 何时不要调用（反触发）\n\n以下情况**不应激活**本 Skill，应路由到其他 Skill：\n\n- 用户要**创建新 Skill** → 路由到 Skill 创建类 Skill\n- 用户要检查**单个 Skill 的质量达标情况** → 路由到单体质量自检类 Skill\n- 用户问**\"skill 这个词是什么意思\"** 等纯知识问答 → 不触发本 Skill\n- 用户进行**C 盘清理** → 路由到系统维护类 Skill\n- 用户进行**代码审查/安全扫描/调试** → 路由到平台对应的质量保障类 Skill\n- 用户要求**具体的业务功能**（如\"帮我扫描这个页面\"）→ 路由到对应业务 Skill\n\n---\n\n## 状态机总览\n\n```\nMED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE\n```\n\n| 阶段 | 名称 | 职责 | 产出 |\n|------|------|------|------|\n| MED_SCOPE | 范围扫描 | 确定扫描范围，检查目录可读性 | 扫描范围声明 |\n| MED_ROSTER | 清单盘点（轻量粗扫） | 只读 frontmatter + 目录树 + 静态指标，**禁止读正文全文** | Skill 清单 JSON |\n| MED_SORT | 三维分类 | 按功能域/交互模型/生命周期状态分类 | 分类表 |\n| MED_CONFLICT | 冲突检测 | 全量静态比对 + 按分组 LLM 确认证据 | 冲突矩阵 + 证据 |\n| MED_VITAL | 评分 | 按分组批处理八维打分 | 评分表（含证据） |\n| MED_RX | 综合研判 | 冲突矩阵 × 评分 → 处方建议 | 处方清单 |\n| MED_DEBRIEF | 报告输出 | 生成并落盘检查报告（S3/S4 档含各功能域附录） | 检查报告 + 附录 |\n| MED_CLOSE | 完成 | 汇总统计、清理临时文件 | 完成摘要 |\n\n---\n\n## 路由表（阶段 → Chunk）\n\n| 当前阶段 | 加载的 Chunk |\n|----------|-------------|\n| 初始化（刚激活） | 01 |\n| MED_SCOPE / MED_ROSTER | 01, 02 |\n| MED_SORT | 01, 03 |\n| MED_CONFLICT | 01, 04, 08 |\n| MED_VITAL | 01, 05, 08 |\n| MED_RX | 01, 06 |\n| MED_DEBRIEF | 01, 07 |\n| MED_CLOSE | 01（复用 07-reporter-agent，无独立 chunk） |\n| 任意子 Agent 激活 | 01, 09（+ 对应阶段 chunk） |\n\n> 详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览，避免膨胀。\n\n---\n\n## 深度参考（references/，渐进式披露第 3 层，按需查阅）\n\n| 文件 | 用途 |\n|------|------|\n| `references/rubric-detail.md` | 八维评分细则（每维满分标准与扣分证据） |\n| `references/score-keys.md` | 八维静态信号关键词表 |\n| `references/conflict-catalog.md` | 五类冲突示例目录 |\n| `references/anti-patterns.md` | 反模式清单（症状 / 危害 / 正确做法） |\n| `references/faq-deep.md` | 深度 FAQ（11 题：边缘场景 / 工具兼容 / 安全合规） |\n| `references/examples.md` | 各命令真实输出示例（场景 → 命令 → 输出片段） |\n| `references/cli-guide.md` | CLI 工具层调用约定（定位 / 失败处理 / 禁止项） |\n\n## 接力棒文件\n\n- 路径：`.medic/_medic_baton.json`（本 Skill 专属目录，自动创建）\n- 协议详见 `protocols/baton-protocol.md`\n\n## CLI 工具层（强制走 CLI，不裸跑代码）\n\n- 所有静态分析统一通过 `medic_tools/run.py` 执行（定位/调用/失败处理详见 `references/cli-guide.md`）\n- 中间产物一律 `--save` 落盘到 `.medic/`；AI **禁止** `python -c` 内联、禁止绕过 CLI 自行分析\n\n---\n\n## 约束分层原则\n\n| 层 | 覆盖范围 | 约束强度 |\n|----|----------|---------|\n| **工程骨架层** | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | **强约束**（规则化、数值化，禁止自由发挥） |\n| **智能分析层** | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | **软约束**（给目标与方法，不锁死结论与措辞） |\n\n---\n\n## 能力边界说明\n\n### ✅ 擅长处理（能做什么）\n\n1. **盘点**：扫描全部 Skill（workspace + 全局），输出统一清单\n2. **分类**：三维分类（功能域 / 交互模型 / 生命周期状态）\n3. **冲突检测**：五类冲突（同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争）\n4. **评分**：八维成熟度评分（0-100）+ L0~L3 定级\n5. **处方**：保留 / 合并 / 整改 / 移除 建议\n6. **报告**：Skill 检查报告（双层：人话汇报层 + 专业明细层，9 个编号部分）+ 历史对比\n\n### ⚠️ 需要素材才能做\n\n1. **增量审计**：需要指定\"与哪次清单对比\"（默认用上次 `.medic/_medic_last_inventory.json`）\n2. **只检特定范围**：需要用户说明（如\"只看 workspace\"）\n3. **专项检查**：需要用户说明（如\"只查冲突\"或\"只打分\"）\n\n### ❌ 超出范围（不做什么）\n\n1. **不写被检 Skill 的业务表/数据库**；不改任何被检查 Skill 的文件\n2. **不自动改 IDE 的 Skill 启用配置**（启用/禁用清单需用户确认后手动执行）\n3. **不代执行处方**（只产出建议；合并/归档由用户或作者执行）\n4. **不分析被检 Skill 的业务逻辑**——那是单体质量自检的活（本 Skill 只做抽象层）\n5. **不创建新 Skill、不做单体达标整改** → 路由到对应的 Skill 创建/单体自检类 Skill\n\n## 安全红线\n\n- 不读取业务数据、服务器配置、账号配置的**内容**（只记录资源**字段名/路径**）\n- 不引导操作他人账号、不处理真实敏感数据；报告中的密钥/密码只写字段名不写值\n- 不触碰任何被检 Skill 的配置值；临时产物统一放 `.medic/_medic_*.json`（本 Skill 专属，自动创建）\n\n## 异常处理与输出准确性\n\n- **信息不足**（如目录探测不到）：不编造、不中断，列出\"还缺什么/哪个范围未覆盖\"，以可用数据继续\n- **禁止笼统提示**：缺信息时不回复\"请提供更多信息\"这类空话，必须列出具体缺哪 N 项（如\"缺扫描范围 / 缺上次清单 / 某目录探测不到\"）\n- **失败处理**：单批失败自动重试 1 次，仍失败标记 skip 继续，收尾汇总；接力棒状态异常按协议处理\n- **输出准确性**：每个结论必须可回溯到证据（文件/章节/指标值）；**禁止无依据编造评分或冲突结论**；证据不足的结论明确标注\"待确认\"\n\n## 受众说明\n\n| 用户类型 | 如何使用 |\n|---------|---------|\n| 个人 Skill 开发者 | 直接触发，查看清单/冲突/评分/处方 |\n| 团队 Skill 维护者 | 合并改动前跑一遍，确认无新增冲突 |\n| Skill 生态管理员 | 作为 Skill 健康基线，定期检查 + 历史对比 |\n| 初学者 | 先看 README 快速开始，跑 `ping` 自检环境 |\n\n## 定制化参数（触发时可传）\n\n- `\"只看 workspace 的 skill\"` → 范围限定 workspace（`run.py scan --scope`）\n- `\"增量审计\"` → 对比上次清单，只精析新增/变更项\n- `\"只查冲突\"` / `\"只打分\"` → 专项模式，跳过其他阶段\n- `\"严格模式\"` → 评分/审核从严（低证据一律标注待确认）\n\n> 专项模式/增量审计/范围限定的**具体执行路径（阶段裁剪表与闸门豁免）见 chunk-01\"专项模式/增量审计\"节**，\n> 00-master 按裁剪表路由；三者的承诺能力均有落地流程，禁止\"说了不做\"。\n\n## 常见问题 FAQ\n\n**Q1：这个 Skill 和单体质量自检类 Skill 有什么区别？**\n单体自检查\"1 个 Skill 内部质量\"；本 Skill 查\"全部 Skill 的关系\"（清单/分类/冲突/评分/处方）。\n\n**Q2：评分标准会过时吗？**\n不会。标准版本化（内置基线 8-axis-v0.1），仅在用户要求/过期 >30 天/首次使用时联网更新。\n\n**Q3：会不会误判导致我误删 Skill？**\n不会。本 Skill 只出处方不代执行，改动需你确认后手动做；高严重度冲突必须有 ≥2 条独立证据。\n\n**Q4：会不会越界读我的业务数据？**\n不会。只做抽象层审计，不读业务数据/服务器/账号配置内容；密钥只记字段名不记值。\n\n**Q5：Skill 目录找不到怎么办？**\n以 IDE 注入的 skill 清单为准继续，探测不到的目录记录\"未覆盖\"不阻断。\n\n**Q6：中途中断了怎么办？**\n接力棒记录进度，再次调用自动断点续跑；每批结果即时落盘不丢失。\n\nFile v0.1.2:README.md\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n## 定位\n\n检查你安装的全部 AI Skill（技能）：列出清单、发现内容重复或互相冲突的 Skill、评估每个 Skill 是否成熟可靠，并告诉你怎么处理。\n\n**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n## 功能\n\n- **全量清单**：扫描 workspace + 全局 Skill，产出统一清单\n- **三维分类**：功能域 / 交互模型 / 生命周期状态\n- **五类冲突检测**：同质（C1）/ 意图抢占（C2）/ 上下文膨胀（C3）/ 依赖（C4）/ 资源竞争（C5）\n- **八维成熟度评分**：0-100 分，L0~L3 定级（放心用 / 基本能用 / 不太成熟 / 不建议用；**评级 = 可靠性/完成度，不是安全性**）\n- **综合处方**：保留 / 合并 / 整改 / 移除 建议\n- **检查报告**：结构化 Markdown 报告，含\"对日常使用的影响\"与\"现在建议你做什么\"\n\n## 快速开始\n\n```bash\n# 工具自检\npython .trae/skills/skill-medic/medic_tools/run.py ping <project_root>\n\n# 扫描所有 Skill（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py scan <project_root> --save\n\n# 分析单个 Skill（<skill_name> 换成实际 Skill 名）\npython .trae/skills/skill-medic/medic_tools/run.py analyze <project_root> <skill_name>\n\n# 静态冲突候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py conflict <project_root> --save\n\n# 八维评分静态证据信号（供 LLM 打分；--save 累积落盘）\npython .trae/skills/skill-medic/medic_tools/run.py score <project_root> <skill_name> --save\n\n# 规则处方候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py prescribe <project_root> --save\n\n# 生成报告\npython .trae/skills/skill-medic/medic_tools/run.py report <project_root>\n```\n\n## 版本\n\nv0.4.18 — 四档规模分级策略（S1 精细≤20 / S2 标准21~80 / S3 摘要81~300 / S4 极限>300：候选降噪、摘要报告+每域附录、处方聚合按档自动启用，少则精多则省）；v0.4.17 候选降噪与摘要模式\n\n## 依赖\n\n- Python 3.10+\n- 标准库（无需第三方依赖）\n\nFile v0.1.2:_meta.json\n\n{\n  \"ownerId\": \"kn799bh9g8eq5n8nxav36av3d5879qr1\",\n  \"slug\": \"skill-medic\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1786179458306\n}\n\nFile v0.1.2:references/anti-patterns.md\n\n# 反模式清单\n\n## 反模式 1：纯角色扮演，无流程控制\n\n**症状**：SKILL.md 通篇是\"你是一位 XX 专家，你要专业、严谨、全面\"这类空泛道德式约束，没有编号步骤、没有阶段节点。\n\n**危害**：把任务完全交给模型自由脑补，没有强制执行顺序。换一个场景就崩。\n\n**正确做法**：任务拆成有序 Phase/Step 节点，每个节点有唯一目标和输入/产出。\n\n## 反模式 2：只有输出模板，没有业务方法论\n\n**症状**：Skill 只规定了输出长什么样（表格、报告格式），但没有说明如何得到这份结果。\n\n**危害**：遇到模糊输入，模型直接编造数据填进模板。\n\n**正确做法**：把信息抽取规则、冲突取舍标准、模糊点标记方法写进指令，模板只是最后一步的外壳。\n\n## 反模式 3：缺信息直接脑补\n\n**症状**：用户输入不完整时，Skill 不追问而直接编造缺失信息补齐。\n\n**危害**：产出结果不可信，风险全部转移给用户。\n\n**正确做法**：信息不足时停止执行，向用户明确列出还缺哪些材料，不编造。\n\n## 反模式 4：无异常处理，单一路径\n\n**症状**：Skill 只有一条理想路径，没有分支判断、没有 fallback。\n\n**危害**：遇到异常输入（坏文件、编码错误、超长文档），直接崩溃或输出错误结果。\n\n**正确做法**：设计分支逻辑：满足条件 A 走路径 A，条件 B 走路径 B；失败有回退方案。\n\n## 反模式 5：无边界约束，上下文膨胀\n\n**症状**：Skill 不限定可读文件范围、最大处理页数，常驻加载数万 token。\n\n**危害**：随 Skill 数量增加，每轮对话 token 成本越来越高，整体能力被稀释。\n\n**正确做法**：明确阈值、分层加载、超限拒绝。\n\n## 反模式 6：无自检直接交付\n\n**症状**：执行完直接输出结果，没有任何自查步骤。\n\n**危害**：模型幻觉、遗漏、错算直接流入最终产物。\n\n**正确做法**：交付前强制 checklist 自检：是否遗漏信息、是否编造内容、格式是否完整。\n\n## 反模式 7：无触发契约，什么请求都接\n\n**症状**：description 只写\"能干什么\"，不写\"不能干什么\"。\n\n**危害**：别的任务也乱调用这个 Skill，污染上下文，导致路由混乱。\n\n**正确做法**：同时写明\"何时调用\"和\"何时不要调用\"，降低误触发概率。\n\nFile v0.1.2:references/cli-guide.md\n\n# CLI 工具层调用约定 — cli-guide\n\n> 本 Skill 的所有静态分析（扫描/分类/冲突/评分信号/处方/报告）**必须**通过 CLI 工具层\n> `medic_tools/run.py` 执行。AI 禁止绕过 CLI 自己写 Python 内联代码。\n\n## 一、定位 CLI 目录（{CLI_DIR}）\n\n```\n1. 用 Glob 全局搜索（最可靠）：\n   glob **/skill-medic/medic_tools/run.py\n\n2. 多个结果时优先选择：\n   - 不在 c:\\Users\\{user}\\.trae-cn\\ 路径下的（系统目录可能不是最新版）\n   - 在项目所在盘符下的（如 e:\\、d:\\）\n\n3. 定位后记下目录路径为 {CLI_DIR}，验证：ls {CLI_DIR}/run.py 确认存在\n4. 后续所有调用统一：先 cd {CLI_DIR}，再 python run.py <action> ...\n```\n\n> **⚠️ project_root 铁律（与 cd 无关）**：`cd {CLI_DIR}` 只用于定位 run.py 脚本，**与 project_root 无关**。\n> `project_root` 永远取 **AI 上下文中的会话项目根**（绝对路径显式传入，如 `e:/Mytest_skill`），\n> 不随 cd 改变；**禁止用 `Get-Location` 的结果代替 project_root**（cd 后 Get-Location 得到的是 CLI_DIR，\n> 会导致 scan/classify/report 以错误根目录产生空产物，`.medic/` 也会建错位置）。\n\n## 二、统一调用方式\n\n```powershell\ncd {CLI_DIR}\npython run.py <action> <project_root> [params] [--save]\n```\n\n**project_root 规则**：\n- **永远取 AI 上下文中的会话项目根**（绝对路径显式传入），与 `cd {CLI_DIR}` 后的位置无关\n- 不确定时，用 `Get-Location` 查看**会话启动目录**（非 cd 后的位置），再对照上下文确认项目根\n- 路径用**正斜杠**（`e:/Mytest_skill`），避免反斜杠转义问题\n- 路径含空格时用双引号包裹：`python run.py scan \"e:/My Project\"`\n\n## 三、命令速查表\n\n| action | 命令 | 产物（--save） | 阶段 |\n|--------|------|---------------|------|\n| ping | `python run.py ping <root>` | — | MED_SCOPE |\n| scan | `python run.py scan <root> --save [--scope workspace\\|global] [--extra-dir <path>...]` | `.medic/_medic_inventory.json`（--scope 限定扫描范围，用户限定\"只看 workspace/global\"时使用；--extra-dir 追加用户自定义 Skill 目录，可多次传入，scope 标记为 custom） | MED_ROSTER |\n| analyze | `python run.py analyze <root> <skill>` | —（skill 支持 绝对路径 / 相对路径 / 目录名） | MED_ROSTER |\n| categorize | `python run.py categorize <root> --save` | `.medic/_medic_classify.json` | MED_SORT |\n| conflict | `python run.py conflict <root> --save` | `.medic/_medic_conflicts.json` | MED_CONFLICT |\n| score | `python run.py score <root> <skill> --save` | `.medic/_medic_scores.json`（累积；skill 支持 绝对路径 / 相对路径 / 目录名） | MED_VITAL |\n| prescribe | `python run.py prescribe <root> --save` | `.medic/_medic_rx.json` | MED_RX |\n| report | `python run.py report <root>` | `.medic/skill_audit_report_*.md` + inventory | MED_DEBRIEF |\n| diff | `python run.py diff <root> [last_inventory]` | —（缺省用 `.medic/_medic_last_inventory.json`） | 增量模式 |\n| cleanup | `python run.py cleanup <root>` | 白名单清理临时中间产物（classify/conflicts/scores/rx/review；**保留 `_medic_baton.json` / `_medic_inventory.json` / `_medic_last_inventory.json`、历史报告与 S3/S4 档附录文件 `skill_audit_appendix_*.md`**——断点续跑 / 增量模式 / 历史对比的基础） | MED_CLOSE |\n\n> **中间产物必须 --save 落盘**：每个阶段结束后，确认对应 `_medic_*.json` 已生成；\n> 产物缺失即阻断，禁止跳过落盘直接进入下一阶段。\n\n## 四、禁止事项（违规即流程违规）\n\n- [禁止] 使用 `python -c \"...\"` / `python.exe -c \"...\"` 执行内联 Python（PowerShell 引号嵌套会 ParserError）\n- [禁止] CLI 失败后放弃 CLI 自行写代码替代（按下方失败处理流程）\n- [禁止] 在 PowerShell 中对路径/参数做手工转义拼接（用正斜杠 + 引号即可）\n- [禁止] 用终端 `write` 命令写文件（那是 Write-Output 别名只打印不落盘；写 JSON 用 IDE Write 工具）\n\n## 五、CLI 失败处理流程（强制）\n\n```markdown\n[P0 阻断] CLI 命令失败（ParserError/路径错误/FileNotFound）时，AI 不得自行写 Python 代码替代！\n\n[正确] 失败处理流程：\n1. 确认 {CLI_DIR} 路径是否正确（重新 Glob 搜索 run.py）\n2. 确认是否先 cd 到了 {CLI_DIR}\n3. 检查 project_root 是否用了正斜杠且引号包裹（如 \"e:/My Project\"）\n4. 重试命令\n5. 仍失败：将需要执行的 Python 逻辑写入 .py 脚本文件再执行（而非 -c 内联）\n\n[错误] 失败后的错误做法：\n- ❌ 放弃 CLI，直接用 python -c \"import json; ...\"\n- ❌ 说\"CLI 不能用，所以我用对话能力直接分析\"\n- ❌ 跳过 --save 改用对话转述代替中间产物\n```\n\n## 六、与 AI 的分工（边界）\n\n| CLI 工具层 | AI（LLM） |\n|-----------|----------|\n| 静态计算：扫描/关键词/引用比对/token/信号提取 | 语义判断：功能域最终分类、冲突证据确认、八维打分、处方精确指引 |\n| 确定性、可复现、全量一次跑完 | 分批精析、深度洞察、历史对比、报告回填 |\n| 产物落盘（--save） | 接力棒维护（**00-master 用 Write 工具更新** `.medic/_medic_baton.json`，子 Agent 禁止直写） |\n\n> 一句话：**CLI 管\"数得出来的\"，AI 管\"要理解的\"。**\n> CLI 失败不归因于\"AI 能力不足\"，走失败处理流程即可。\n>\n> **补录限制**：`run.py` 各命令（categorize/conflict/prescribe/report）以**磁盘扫描**为准，不携带 01-inventory\n> 合并的 IDE 补录项——IDE 清单独有但磁盘不可见的 Skill，由 07-reporter 在报告第 3 部分手工补入并标注\"IDE 清单独有\"。\n\nFile v0.1.2:references/conflict-catalog.md\n\n# 冲突类型目录 — C1~C5\n\n## C1：同质冲突（功能重复）\n\n两个及以上 Skill 功能域高度重叠，各自维护成本浪费且触发路由随机。\n\n**检测信号**：\n- description/功能点相似度 ≥ 阈值\n- 目录结构、阶段名、产出物命名高度雷同\n\n**示例**：\n- 同功能的两个风格定制 Skill（都是\"AI 对话风格配置\"）\n- 同功能的两个游戏设计 Skill（都是\"游戏 GDD 设计\"）\n\n## C2：意图抢占（误触发）\n\n同一用户请求可命中多个 Skill，路由不确定。\n\n**检测信号**：\n- description 触发面重叠（关键词交集大）\n- 缺少\"何时不要调用\"反触发说明\n\n**示例**：\n- 多个浏览器探索类 Skill（\"探索系统/扫描页面\"类请求容易误触发）\n\n## C3：上下文膨胀（Token 黑洞）\n\nSkill 常驻加载体积过大、无分层加载，挂载后显著抬高每轮成本、稀释整体能力。\n\n**检测信号**：\n- 常驻加载量（SKILL.md + load:always 的 chunk 索引）估算 token 超阈值\n- 无 chunk 分层\n- 正文含大量通用常识\n\n## C4：依赖/引用冲突\n\n共享数据、配置、接力棒，一方改动静默破坏另一方。\n\n**检测信号**：\n- 引用同一 config.json / 同一 DB 表 / 同一 baton 路径 / 同一环境变量\n- 双方实现 mtime 差异明显（一方改动未同步）\n\n**示例**：\n- 多个 Skill 共享同一接力棒目录与同一数据库（一方改表结构静默影响其他方）\n\n## C5：资源竞争\n\n同一物理/逻辑资源被多个 Skill 抢占，无法并行。\n\n**检测信号**：\n- 都声明浏览器/CDP\n- 同一 MCP 工具\n- 同一端口\n\n> 注：同一库表写入权归 **C4 依赖冲突**（DB 表/库引用从代码通用提取归入 C4），C5 只检物理/逻辑运行时资源（浏览器/CDP/MCP 工具/端口）。\n\nFile v0.1.2:references/examples.md\n\n# 命令输出示例（references/examples.md）\n\n> 以下示例来自真实环境（`project_root` 下含多个 Skill）的 CLI 输出，供快速对照：看到类似的输出即说明工具层工作正常。\n> 格式：**场景 → 命令 → 输出片段**。输出会因环境 Skill 不同而不同，重点是**结构**一致。\n\n---\n\n## 1. ping —— 工具自检\n\n**场景**：执行前确认环境可读、Python 可用。\n\n**命令**：`python run.py ping <project_root>`\n\n**输出片段**：\n```json\n{\n  \"project_root_exists\": true,\n  \"skills_dirs_found\": 1,\n  \"python_version\": \"3.13.x\",\n  \"all_ok\": true\n}\n```\n\n---\n\n## 2. scan —— 全量清单\n\n**场景**：盘点所有 Skill，产出清单 JSON（含同名去重与重复安装记录）。\n\n**命令**：`python run.py scan <project_root> --save`\n\n**输出片段**（每项关键字段；`path` 为平台原生绝对路径，Windows 下为反斜杠，**命令行入参请用正斜杠**）：\n```json\n{\n  \"name\": \"conspect\",\n  \"path\": \"C:\\\\Users\\\\...\\\\skills\\\\conspect\",\n  \"scope\": \"global\",\n  \"description\": \"全自动多源数据智能分析与商务报表渲染工具。…\",\n  \"tokens_est\": 6341,\n  \"ref_files_count\": 3,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true,\n  \"status\": \"active\"\n}\n```\n\n---\n\n## 3. analyze —— 单 Skill 静态指标\n\n**场景**：查单个 Skill 的静态指标（支持 绝对路径 / 相对路径 / 目录名 三种入参）。\n\n**命令**：`python run.py analyze <project_root> <skill>`\n\n**输出片段**：\n```json\n{\n  \"name\": \"conspect\",\n  \"status\": \"active\",\n  \"chars\": 17341,\n  \"tokens_est\": 6341,\n  \"always_load_tokens_est\": 6534,\n  \"has_changelog\": true,\n  \"has_readme\": true,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true\n}\n```\n\n---\n\n## 4. conflict —— 五类冲突候选\n\n**场景**：静态冲突检测，产出 C1~C5 候选（供 03-conflict-agent 复核证据、判定严重度）。\n\n**命令**：`python run.py conflict <project_root> --save`\n\n**输出片段**：\n```json\n{\n  \"C1\": [\n    {\n      \"skill_a\": \"tencent-docs\",\n      \"skill_b\": \"tencent-saas-docs\",\n      \"type\": \"C1\",\n      \"jaccard\": 0.848,\n      \"overlap_count\": 84,\n      \"keywords\": [\"文档\", \"在线\", \"新建\"],\n      \"severity\": \"candidate\"\n    }\n  ],\n  \"C2\": [\n    {\n      \"skill_a\": \"agent-browser\",\n      \"skill_b\": \"skill-browser-helper\",\n      \"type\": \"C2\",\n      \"overlap_count\": 6,\n      \"keywords\": [\"浏览器\", \"自动化\"],\n      \"severity\": \"medium\"\n    }\n  ]\n}\n```\n\n---\n\n## 5. score —— 单 Skill 八维静态信号\n\n**场景**：输出一个 Skill 的八维静态证据信号（供 04-scorer-agent 打分时定位证据）。\n\n**命令**：`python run.py score <project_root> <skill> --save`\n\n**输出片段**：\n```json\n{\n  \"name\": \"skill-medic\",\n  \"status\": \"active\",\n  \"desc_len\": 196,\n  \"desc_has_antitrigger\": true,\n  \"dim1_trigger\": [\"何时调用\", \"应触发\", \"不要调用\"],\n  \"dim2_flow\": [\"阶段\", \"当\"],\n  \"dim3_exception\": [\"信息不足\", \"失败\", \"重试\", \"熔断\"],\n  \"dim4_output\": [\"自检\", \"中间产物\"],\n  \"dim5_boundary\": {\"hits\": [\"分层\", \"chunk\"], \"has_chunks\": true},\n  \"dim6_value_weak\": {\"has_refs\": true, \"tokens_est\": 1757},\n  \"dim7_engineering\": {\"has_tools\": true, \"has_readme\": true},\n  \"dim8_maintain\": {\"has_changelog\": true}\n}\n```\n\n---\n\n## 6. prescribe —— 规则处方候选\n\n**场景**：基于冲突矩阵 + 静态维护信号生成规则处方候选（供 06-synthesizer 完善）。\n\n**命令**：`python run.py prescribe <project_root> --save`\n\n**输出片段**：\n```json\n[\n  {\n    \"type\": \"add-antitrigger\",\n    \"severity\": \"medium\",\n    \"targets\": [\"agent-browser\", \"skill-browser-helper\"],\n    \"conflict\": \"C2\",\n    \"rule\": \"意图抢占：为双方 description 补充'何时不要调用'反触发说明，降低误触发\",\n    \"llm_todo\": \"给出各 Skill description 的改写建议（精确措辞）\"\n  }\n]\n```\n\n---\n\n## 7. report —— 报告落盘\n\n**场景**：装配报告静态骨架并落盘（总是落盘，无需 `--save`；结论区由 AI 在 MED_DEBRIEF 回填）。\n按规模档位输出：S1/S2 完整报告（`appendix_files` 为空）、S3/S4 摘要主报告 + 每域附录（`scale` = S3/S4，`appendix_files` 列出全部附录路径）。\n\n**命令**：`python run.py report <project_root>`\n\n> 实际返回的 `report_path` / `inventory_path` / `appendix_files` 为绝对路径（`os.path.join` 拼接）；下面示例为便于阅读用相对路径写法。\n\n**输出片段**（小规模 S1/S2 档）：\n```json\n{\n  \"report_path\": \"./.medic/skill_audit_report_20260806_134509.md\",\n  \"inventory_path\": \"./.medic/_medic_inventory.json\",\n  \"skills_count\": 11,\n  \"scale\": \"S1\",\n  \"conflict_candidates\": 40,\n  \"prescriptions\": 50,\n  \"appendix_files\": []\n}\n```\n\n**输出片段**（大规模 S3/S4 档，`scale` 为 S3 或 S4，附列出各功能域附录）：\n```json\n{\n  \"report_path\": \"./.medic/skill_audit_report_20260808_150140_744.md\",\n  \"inventory_path\": \"./.medic/_medic_inventory.json\",\n  \"skills_count\": 361,\n  \"scale\": \"S4\",\n  \"conflict_candidates\": 200,\n  \"prescriptions\": 184,\n  \"appendix_files\": [\"./.medic/skill_audit_appendix_数据分析报表.md\", \"./.medic/skill_audit_appendix_项目流程.md\"]\n}\n```\n\n---\n\n## 8. diff —— 增量差异\n\n**场景**：与上次清单对比，输出新增/变更/删除的 Skill。\n\n**命令**：`python run.py diff <project_root> [last_inventory]`（缺省用 `.medic/_medic_last_inventory.json`）\n\n**输出片段**：\n```json\n{\n  \"added\": [\"skill-a\", \"skill-b\"],\n  \"removed\": [\"skill-c\"],\n  \"changed\": [\"skill-d\"]\n}\n```\n\n---\n\n> 各命令的失败处理、定位方式与禁止项见 `references/cli-guide.md`。\n\nFile v0.1.2:references/faq-deep.md\n\n# FAQ 深度问答\n\n## Q1：本 Skill 和单体质量自检类 Skill 有什么区别？\n\n**A**：单体质量自检类 Skill 检查 **1 个 Skill** 内部质量（如五维达标自检）。本 Skill 是 **Skill 健康检查**，针对 **全部 Skill** 做清单、分类、冲突检测、评分和处方。简单说：单体自检是\"检查一个 Skill 写得好不好\"，本 Skill 是\"检查你装的所有 Skill 之间有没有重复、冲突，整体靠不靠谱\"。\n\n## Q2：评分标准会过时吗？\n\n**A**：评分标准版本化维护。内置基线 `8-axis-v0.1`，当用户要求、标准过期 >30 天或首次使用时，触发联网更新。更新只升级标准版本，不影响当前评分，保障可复现。\n\n## Q3：装了很多 Skill（几十个甚至几百个）会不会撑爆上下文？\n\n**A**：不会。按活跃 Skill 数自动切换四档策略（少则精、多则省）：**S1（≤20）/S2（21~80）** 保留全部冲突候选、输出完整报告；**S3（81~300）** 候选按功能域每类 Top-15 降噪、报告改为摘要主报告 + 每功能域附录；**S4（>300）** 降噪收紧到 Top-10 且处方批量聚合。各档都用\"粗扫全量 + 分组分批精析\"：粗扫只读 frontmatter 和目录结构不读正文，精析按功能域分批、每批 ≤3 个、正文预算 ≤10k token。实测 361 个 Skill 时冲突候选收敛到 200 组、处方聚合到 184 条，一次跑完不爆上下文。\n\n## Q4：冲突检测准确吗？\n\n**A**：分两层。第一层是静态规则引擎（基于 Jaccard 相似度、引用路径比对），确定性计算，全量跑完不耗 LLM 上下文。第二层是 LLM 语义确认，读取正文确认证据、判定严重度。高严重度冲突必须有 ≥2 条独立证据。AI 还可以补充规则未覆盖的发现。\n\n## Q5：本 Skill 会不会误判导致用户误删 Skill？\n\n**A**：本 Skill **只产出处方、不代执行**。所有\"合并/移除\"建议都含精确指引，但改动需要用户确认后手动执行。处方进入回访队列，下次审计会核对执行情况。\n\n## Q6：增量审计怎么用？\n\n**A**：用户显式要求\"增量审计\"时，对比上次清单（`.medic/_medic_last_inventory.json`——report 前由 run.py 自动从本次清单归档复制，是历史对比的单一数据源），只精析新增或变更的 Skill，其余沿用上次评分并标注\"沿用\"。历史对比段会输出上期处方执行核对。\n\n## Q7：本 Skill 自己会不会膨胀？\n\n**A**：本 Skill 自身采用了强制分块加载（SKILL.md 只保留触发契约 + 路由表，所有细则按阶段拆分到 chunk），从机制上杜绝 C3 上下文膨胀。并且定期用自己审自己（自举），确保自己达标。\n\n## Q8：扫描到全局 Skill 时会不会越界？\n\n**A**：不会。本 Skill 只读 Skill 目录的 SKILL.md 和目录结构，不读取用户业务数据、不碰被检 Skill 的业务表。报告中的敏感信息（密码、密钥）只记录字段名不记录值。\n\n## Q9：编码异常怎么办？\n\n**A**：读取顺序为 UTF-8 → GBK → 失败判定异常。异常 Skill 归入异常清单，**不阻断全流程**，跳过评分在报告中标注\"未评分（异常）\"。\n\n## Q10：断点续跑怎么工作？\n\n**A**：接力棒 `_medic_baton.json` 记录每个阶段的完成状态。中断后再次调用：① 先校验 ✅ 阶段产物存在，缺失回退重做；② 含审核闸门的阶段（gateN ⬜ 或被打回重做）强制重跑 05-auditor；③ 从第一个 ⬜ 阶段继续。每批精析结果即时写回 `_medic_scores.json`，不会丢失已完成的批次。\n\n## Q11：这个 Skill 能用在哪些真实场景？\n\n**A**（国内真实场景示例）：\n- **电商团队**：运营装了一堆\"商品标题优化\"类 Skill，检查后发现 3 个功能重复，处方建议只留 1 个，团队每月省下大量维护时间\n- **微信小程序开发者**：装了 5 个页面扫描类 Skill 互相抢占触发，检查后给每个补上\"何时不要调用\"，路由不再乱跳\n- **企业微信客服**：自建了一个含数据库的\"工单归档\" Skill，检查发现它和\"客服话术生成\"抢同一个上下文，处方建议划清边界\n- **个人开发者**：装了 50+ 个 Skill 越来越卡，检查定位到 3 个\"常驻加载 3 万 token\"的膨胀 Skill，瘦身后每轮对话明显变快\n\nFile v0.1.2:references/rubric-detail.md\n\n# 评分细则参考 — 8-axis-v0.1\n\n## 八维权重\n\n| # | 维度 | 权重 | 满分 |\n|---|------|:---:|:---:|\n| 1 | 触发契约 | 15 | 15 |\n| 2 | 流程机制 | 15 | 15 |\n| 3 | 异常与熔断 | 12 | 12 |\n| 4 | 产出控制 | 13 | 13 |\n| 5 | 边界与上下文 | 12 | 12 |\n| 6 | 内容价值密度 | 13 | 13 |\n| 7 | 工程配套 | 10 | 10 |\n| 8 | 维护健康度 | 10 | 10 |\n| **合计** | | **100** | **100** |\n\n## 每维详细说明\n\n### 1. 触发契约（15 分）\n- description 同时含\"做什么 + 何时调用 + 何时不调用\"\n- 用词具体非空话，参考 ClaudSkills 描述深度 ≥ 200 字符\n- 扣分：description < 40 字；只有能力罗列无触发条件；无反触发词\n\n### 2. 流程机制（15 分）\n- 正文为有序 Phase/Step 节点，每节点有输入/产出/禁止跳步\n- 有分支判断逻辑\n- 扣分：大段人设形容词；无编号步骤；单一路径无分支\n\n### 3. 异常与熔断（12 分）\n- 缺信息→停止并追问，禁止编造\n- 失败有 fallback 路径\n- 有最大迭代轮次限制\n- 扣分：缺材料直接脑补；无任何失败处理说明\n\n### 4. 产出控制（13 分）\n- 有中间产物（非一步输出最终大文档）\n- 交付前逐条 checklist 自检\n- 输出有验收标准\n- 扣分：执行完直接输出结束，无自检步骤\n\n### 5. 边界与上下文（12 分）\n- 明确可读范围/上限阈值/超限拒绝\n- 有分层加载（chunk/渐进式披露）\n- 扣分：无任何边界；单文件超长；重复通用常识堆砌\n\n### 6. 内容价值密度（13 分）\n- 核心是业务方法论与判断规则\n- 有反模式说明\n- 示例真实\n- 扣分：只有输出模板；常识性内容占大头；示例是占位符\n\n### 7. 工程配套（10 分）\n- 有可执行工具层/脚本、配置、README、版本、测试或自检手段\n- 判定原则：功能不涉及数据/外部工具时纯提示词不扣分；功能需要数据处理或外部工具却无工具层 → 该维直接 0 分\n\n### 8. 维护健康度（10 分）\n- 有 CHANGELOG/版本号\n- 有更新或修复痕迹\n- README 与实现一致\n- 扣分：只有 zip 备份无活动目录；README 与 SKILL.md 不一致\n\nFile v0.1.2:references/score-keys.md\n\n# 评分证据定位指南 — score-keys\n\n> 供 04-scorer-agent 在 MED_VITAL 阶段给每维打分时使用：\n> 每条评分必须有**可回溯证据**（文件路径 + 行号/章节 + 原文摘录），禁止无依据打分。\n\n## 证据格式（要素固定，表述自由）\n\n每条证据形如：\n`<文件> L<行号> <章节>：<原文摘录> → <它支撑哪一维的什么判断>`\n\n示例：\n- `SKILL.md L11-31 触发契约：description 含\"何时调用+何时不要调用\" → 维度1 触发契约，反触发纪律成立`\n- `SKILL.chunks/chunk-05-score.md §评分流程：有逐条自检 → 维度4 产出控制，checklist 闭环成立`\n\n## 各维度的证据来源（默认检索范围）\n\n| 维度 | 优先证据位置 |\n|------|-------------|\n| 1 触发契约 | SKILL.md frontmatter description + 触发契约章节 |\n| 2 流程机制 | SKILL.md 状态机/阶段表 + protocols/phase-protocol.md |\n| 3 异常与熔断 | SKILL.md 熔断/异常段 + protocols/baton-protocol.md |\n| 4 产出控制 | SKILL.md 自检/验收段 + agents/05-auditor-agent.md 阻断码 |\n| 5 边界与上下文 | SKILL.chunks/chunk-index.yaml + 常驻 token 估算 |\n| 6 内容价值密度 | references/（方法论/反模式/FAQ）+ SKILL.chunks 正文 |\n| 7 工程配套 | medic_tools/、1-manifest/、README、protocols/ 存在性 |\n| 8 维护健康度 | CHANGELOG.md 版本轨迹 + README 与实现一致性 |\n\n## 扣分定位要求（对应 BLOCK-C 审核）\n\n- 任何维度给分 ≤4/满分时，**必须**给出扣分定位（文件 + 章节/行号 + 缺失或不足的具体内容）\n- 无扣分定位的 ≤4 分 → 被 05-auditor 打回（BLOCK-C）\n\n## 信号 ≠ 证据\n\n`run.py score` 输出的关键词命中只是**候选信号**；证据必须是\"从文件里实际读到、能支撑该维判断\"的内容。\n信号为空可作为扣分线索，但也要指明具体缺什么（如\"无自检相关章节\"）。\n\nFile v0.1.2:agents/00-master-controller.md\n\n# 00-master-controller：主控路由\n\n## 职责\n\n读接力棒 `_medic_baton.json` → 判断当前阶段 → 路由到对应子 Agent → 验证产出 → 更新接力棒。\n\n## 启动流程\n\n1. 读 `.medic/_medic_baton.json`\n2. 按**固定顺序**判断分支（顺序不可颠倒：FAILED/损坏 必须优先于 is_running）：\n   - **接力棒不存在**（首次执行）→ **初始化**：按 `protocols/baton-protocol.md` 结构创建，\n     写 `meta`（skill / state=MED_SCOPE / session_id / created_at / scan_scope / rubric_version，is_running=1, run_count=1）、\n     `progress`（8 阶段全 ⬜ + gate1/gate2/gate3 全 ⬜）、`batch`/`history`/`artifacts`/`rework` 初始值；\n     用 IDE Write 工具落盘到 `.medic/_medic_baton.json`（目录不存在则先创建）；\n     **scan_scope 按用户输入写入**（默认全量 [\"workspace\",\"global\"]；用户说\"只看 workspace\" → [\"workspace\"]），\n     并由 01-inventory 在 MED_SCOPE 结束后回报实际覆盖范围，主控校正（防止闸门拿占位值\"假通过\"）\n   - `meta.state == FAILED` 或接力棒 JSON 损坏 → 先向用户展示 `rework.last_error` / `rework.last_blocker`，\n     人工确认后重置接力棒（is_running=0）再开新会话；损坏文件先备份（`_medic_baton.corrupt_<时间戳>.json`）再重建\n   - `is_running=0`（上次已 CLOSE）→ 新会话，重置接力棒（run_count+1、progress 全 ⬜、history 记上次）\n   - `is_running=1`（上次中断）→ **断点续跑**，按序执行：\n     a. **产物回退校验**：遍历 progress 中 ✅ 的阶段，对照 `protocols/phase-protocol.md` 闸门表\n        逐一验证对应产物文件存在且非空；缺失 → 回退该阶段重做（progress 置 ⬜，记入 `rework.history`）\n     b. **批进度恢复**：读取接力棒 `batch` 段（groups_done / current_group / skipped_groups），\n        作为路由参数传给 04-scorer，已完成的组跳过、从未完成组继续（batch 段是批进度的唯一数据源）；\n        **MED_CONFLICT 中断 → 把 `batch.conflict_pairs_done` 传给 03-conflict**，已确认对跳过、\n        从未完成对继续（续跑不重跑 `conflict --save`，直接读写回版矩阵补证据）；\n        **S3/S4 档 07-reporter 的附录回填进度读 `batch.appendix_done`**（已回填完的功能域列表），\n        07 从第一个未回填域继续\n     c. **续跑顺序**：先续完当前阶段的全部批次，**阶段产物完整后**，再对含审核闸门的阶段\n        （gateN 为 ⬜ 或被打回重做）强制重跑 05-auditor 一次（全覆盖审核）再放行\n     d. 从第一个 ⬜ 阶段继续；\n        **MED_DEBRIEF 续跑特例**：该阶段 ⬜ 但报告/附录文件已存在（07 已回填部分域）→\n        禁止重跑 `run.py report`（会覆盖已回填内容），按 b 的 appendix_done 续填剩余域\n2. **规模档位写入**：MED_ROSTER 完成（`_medic_inventory.json` 落盘）后，按活跃 Skill 数计算档位\n    （S1≤20 / S2 21~80 / S3 81~300 / S4>300，口径 = 活跃 Skill 数，与 run.py `scale_of` 一致）\n    写入接力棒 `meta.scale`；后续各阶段沿用该档位决定降噪强度与报告形态，禁止各阶段自行另算。\n    **档位校正**：run.py 内部按 filesystem 扫描自算档位（与 01 合并清单口径可能差 1 个 Skill），\n    若 `run.py report` 输出 JSON 的 `scale` 与 `meta.scale` 不一致 → **以 report 实际输出为准**，\n    更新接力棒 `meta.scale` 并同步后续阶段（防止 S2/S3 边界翻档导致报告形态与路由分裂）\n3. **专项模式/范围限定/严格模式**：用户指定\"只查冲突/只打分/只看 workspace/严格模式\"等 → 按 chunk-01\n   专项裁剪表与严格模式差异表路由，跳过阶段与闸门豁免；范围限定传给 01（`run.py scan --scope` /\n   `--extra-dir`）并写入 `meta.scan_scope`；严格模式传给 04-scorer 与 05-auditor（抽检 ≥50%、证据从严）；\n   增量审计按 chunk-01 流程执行\n4. **子 Agent 加载方式**：读取 `agents/0X-*.md` 提示词文件后以该角色执行（本 Skill 环境无独立子进程，\n   由同一 AI 按提示词切换角色完成），同时加载 `chunk-01 + chunk-09 + 对应阶段 chunk`\n5. 按阶段表路由到对应子 Agent；**子 Agent 一律不直接写接力棒**——04 批进度、06 处方登记、\n   07 附录回填进度（appendix_done）等由子 Agent 完成后回报给 00-master，由主控统一写入接力棒（保持单点写）\n6. 子 Agent 完成后验证产出（阶段闸门，见 `protocols/phase-protocol.md`）；**审核闸门**由 05-auditor 盲审，\n   命中 BLOCK 码则打回对应阶段重做（见 05-auditor 阻断码表）；**打回重做时同步重置该阶段进度字段**\n   （打回 MED_DEBRIEF 清空 `batch.appendix_done`、打回 MED_VITAL 清空 `groups_done`/`current_group`、\n   打回 MED_CONFLICT 清空 `batch.conflict_pairs_done`——见 baton-protocol 控制规则 5，\n   防止按旧进度跳过已回填内容导致问题原样保留）；\n   **同一阶段/闸门累计重试 ≥3 次** → 置 `state=FAILED` 并停止自动重试，输出完整问题清单交人工处理\n7. 更新接力棒进度（单点写：只有 00-master 更新）\n\n## 阶段路由表\n\n| 阶段 | 子 Agent | 验证产出 |\n|------|---------|---------|\n| MED_SCOPE | 01-inventory-agent | 扫描范围声明 |\n| MED_ROSTER | 01-inventory-agent | `_medic_inventory.json` |\n| MED_SORT | 02-classifier-agent | 分类表（`_medic_classify.json` 回填 domain_final） |\n| MED_CONFLICT | 03-conflict-agent | `_medic_conflicts.json` |\n| MED_VITAL | 04-scorer-agent | `_medic_scores.json` |\n| 审核闸门① | 05-auditor-agent | `_medic_review.json`（盲审分类/冲突/评分；BLOCK-A/B/C 打回） |\n| MED_RX | 06-synthesizer-agent | 处方清单（`_medic_rx.json` 回填精确处方） |\n| 审核闸门② | 05-auditor-agent | `_medic_review.json`（盲审处方；BLOCK-D 打回） |\n| MED_DEBRIEF | 07-reporter-agent | 报告文件；**S3/S4 档须全部附录 `skill_audit_appendix_*.md` 存在且非空** |\n| 审核闸门③ | 05-auditor-agent | `_medic_review.json`（盲审报告成品；BLOCK-E 拦截缺部分/阈值不符/残留模板指导语；**S3/S4 档同时核查附录回填完整性**） |\n| MED_CLOSE | 07-reporter-agent（完成摘要 + 报告路径回报）→ **00-master 收口**（登记 prescriptions_outstanding、回填 `artifacts.report` 实际路径、更新 state=CLOSE, is_running=0）→ **收口完成后最后执行 `run.py cleanup <root>`**（保留接力棒/清单/历史报告/**S3/S4 档附录文件**） | 完成摘要 |\n\n## 禁止事项\n\n- 禁止代子 Agent 产出内容\n- 禁止直接修改接力棒以外的本 Skill 产物\n- 禁止在非路由阶段读取子 Agent 中间推理过程\n\nFile v0.1.2:agents/01-inventory-agent.md\n\n# 01-inventory-agent：清单盘点\n\n## 职责\n\n执行 MED_SCOPE + MED_ROSTER 阶段的轻量粗扫工作。\n\n## 执行规则\n\n### MED_SCOPE\n0. **环境自检**：先执行 `run.py ping <root>` 确认项目根可读、Skill 目录可探测（不可用时记录告警但不阻断）\n1. **第一数据源 = IDE 注入的 available_skills 清单**（AI 上下文中的 name + description），\n   顺着 IDE 引导走，不自己猜路径\n2. 文件系统扫描（`run.py scan [--scope workspace|global] [--extra-dir <path>...]`）多编辑器兼容：workspace 候选目录（.trae/.claude/.cursor/.codex/skills 等）\n   + 全局候选目录（~/.trae-cn/skills 等）；用户限定范围（如\"只看 workspace\"）时用 `--scope` 过滤；\n   用户显式指定自定义 Skill 目录（如\"再扫一下 D:/my-skills\"）时用 `--extra-dir` 追加（scope 标记为 custom，\n   与 workspace/global 同流程进入清单）\n3. 任何目录探测不到 → 记录\"该范围未覆盖（原因）\"，**不阻断**，以 available_skills 为准\n4. zip 备份标注为\"备份归档\"\n5. **范围回报（铁律）**：MED_SCOPE 结束后把**实际覆盖范围**（workspace/global/自定义）回报给 00-master，\n   由主控校正接力棒 `meta.scan_scope`（初始化时是用户输入的初值，这里更新为实际值，防止闸门拿占位值\"假通过\"）\n\n### MED_ROSTER（铁律：禁止读 SKILL.md 正文全文）\n1. frontmatter 字段与目录结构标志统一由 `medic_tools/run.py scan <root> --save` 一次性产出\n   （CLI 约定见 references/cli-guide.md），落盘 `.medic/_medic_inventory.json`\n2. AI 只读该 JSON，**不直接读被检 Skill 文件**（避免绕 CLI、超上下文）\n3. 编码异常 → 置 `status=broken`，跳过评分\n4. **合并 available_skills 与脚本扫描结果**：脚本扫到但清单没有 → 标\"仅文件系统可见\"；\n   清单有但脚本没扫到 → 以 IDE 为准补录\n5. **合并结果写回（铁律）**：合并后的全量清单**必须用 IDE Write 工具覆盖写回\n   `.medic/_medic_inventory.json`**（保留脚本产出的全部字段，追加 source/scope 标注），禁止只留在对话里\n6. **补录限制**：`run.py` 的 categorize/conflict/prescribe/report 均以磁盘扫描为准（重扫文件系统），\n   IDE 补录项若磁盘不可见，下游命令不会自动带上——**补录项清单（name + description + 位置）随阶段产物传给 02~07**，\n   由 02 分类表、07 报告第 3 部分与各功能域附录中手工补入并标注\"IDE 清单独有\"（数据源 = 本阶段合并清单，非 AI 记忆）\n7. **analyze 的使用场景**：`run.py analyze <root> <skill>` 是单 Skill 静态指标深挖命令，仅当\n   **需要复核单个 Skill 的字段明细**（如评分证据定位、异常 Skill 排查）时按需调用，非 MED_ROSTER 必跑项\n\n### 分析深度边界（铁律）\n只做抽象层：识别类型、看关系、查体积、提取资源依赖**字段名/路径**。\n**不读**业务数据/服务器配置/账号配置内容，**不分析**被检 Skill 的业务逻辑，\n**不逐行**审代码——那是单体质量自检的活，深挖会超上下文且偏离定位。\n\n## 产出\n\n`.medic/_medic_inventory.json`（全量清单，含 source / scope；目录自动创建）\n\n## 禁止事项\n\n- 禁止在扫描阶段做分类/打分判断\n- 禁止读 SKILL.md 正文全文\n- 禁止读 config 值 / 业务数据 / 账号配置内容\n\nArchive v0.1.1: 42 files, 105271 bytes\n\nFiles: .gitignore (149b), 1-manifest (0b), 1-manifest/skill-manifest.yaml (607b), agents (0b), agents/00-master-controller.md (4279b), agents/01-inventory-agent.md (2326b), agents/02-classifier-agent.md (1498b), agents/03-conflict-agent.md (1150b), agents/04-scorer-agent.md (1503b), agents/05-auditor-agent.md (2298b), agents/06-synthesizer-agent.md (1543b), agents/07-reporter-agent.md (5049b), CHANGELOG.md (38585b), medic_tools (0b), medic_tools/__init__.py (36b), medic_tools/run.py (80404b), protocols (0b), protocols/baton-protocol.md (3800b), protocols/phase-protocol.md (1759b), README.md (2307b), references (0b), references/anti-patterns.md (2465b), references/cli-guide.md (5502b), references/conflict-catalog.md (1826b), references/examples.md (4842b), references/faq-deep.md (3991b), references/rubric-detail.md (2171b), references/score-keys.md (1924b), skill-card.md (2616b), SKILL.chunks (0b), SKILL.chunks/chunk-01-overview.md (1911b), SKILL.chunks/chunk-02-scan-inventory.md (5471b), SKILL.chunks/chunk-03-categorize.md (4370b), SKILL.chunks/chunk-04-conflict.md (3868b), SKILL.chunks/chunk-05-score.md (6040b), SKILL.chunks/chunk-06-synthesize.md (2705b), SKILL.chunks/chunk-07-report.md (8480b), SKILL.chunks/chunk-08-rubric.md (1538b), SKILL.chunks/chunk-09-agents.md (2422b), SKILL.chunks/chunk-index.yaml (1029b), SKILL.md (9621b), _meta.json (130b)\n\nFile v0.1.1:SKILL.md\n\n---\nname: skill-medic\ndisplay_name: SkillMedic — Skill 健康检查与冲突检测\nversion: 0.4.16\ndescription: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。\ntags: [skill-engineering, audit, conflict-detection, scoring, inventory]\nlanguage: zh-CN\n---\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n> 定位：检查你安装的全部 Skill —— 列出清单、找出重复和冲突、评估成熟度、给出处理建议\n>\n> 一句话：**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n---\n\n## 触发契约\n\n### 何时调用（应触发）\n\n当用户表达以下任一意图时，应激活本 Skill：\n\n- **盘点类**：\"检查一下我有哪些 skill\" / \"我装了什么 skill\" / \"列出所有 skill\"\n- **冲突检测类**：\"哪些 skill 重复了\" / \"skill 之间有没有冲突\" / \"会不会有两个 skill 抢着响应\" / \"谁和谁功能重叠\"\n- **质量评估类**：\"我的 skill 都靠谱吗\" / \"给所有 skill 打个分\" / \"哪个 skill 不好用\"\n- **综合处方类**：\"该保留哪些 skill\" / \"哪些 skill 该删\" / \"skill 优化建议\"\n- **增量审计类**：\"对比上次和这次的检查结果\" / \"增量检查 skill\"\n- **范围限定类**：\"只看 workspace 的 skill\" / \"检查全局 skill\"\n\n### 何时不要调用（反触发）\n\n以下情况**不应激活**本 Skill，应路由到其他 Skill：\n\n- 用户要**创建新 Skill** → 路由到 Skill 创建类 Skill\n- 用户要检查**单个 Skill 的质量达标情况** → 路由到单体质量自检类 Skill\n- 用户问**\"skill 这个词是什么意思\"** 等纯知识问答 → 不触发本 Skill\n- 用户进行**C 盘清理** → 路由到系统维护类 Skill\n- 用户进行**代码审查/安全扫描/调试** → 路由到平台对应的质量保障类 Skill\n- 用户要求**具体的业务功能**（如\"帮我扫描这个页面\"）→ 路由到对应业务 Skill\n\n---\n\n## 状态机总览\n\n```\nMED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE\n```\n\n| 阶段 | 名称 | 职责 | 产出 |\n|------|------|------|------|\n| MED_SCOPE | 范围扫描 | 确定扫描范围，检查目录可读性 | 扫描范围声明 |\n| MED_ROSTER | 清单盘点（轻量粗扫） | 只读 frontmatter + 目录树 + 静态指标，**禁止读正文全文** | Skill 清单 JSON |\n| MED_SORT | 三维分类 | 按功能域/交互模型/生命周期状态分类 | 分类表 |\n| MED_CONFLICT | 冲突检测 | 全量静态比对 + 按分组 LLM 确认证据 | 冲突矩阵 + 证据 |\n| MED_VITAL | 评分 | 按分组批处理八维打分 | 评分表（含证据） |\n| MED_RX | 综合研判 | 冲突矩阵 × 评分 → 处方建议 | 处方清单 |\n| MED_DEBRIEF | 报告输出 | 生成并落盘检查报告 | 检查报告 |\n| MED_CLOSE | 完成 | 汇总统计、清理临时文件 | 完成摘要 |\n\n---\n\n## 路由表（阶段 → Chunk）\n\n| 当前阶段 | 加载的 Chunk |\n|----------|-------------|\n| 初始化（刚激活） | 01 |\n| MED_SCOPE / MED_ROSTER | 01, 02 |\n| MED_SORT | 01, 03 |\n| MED_CONFLICT | 01, 04, 08 |\n| MED_VITAL | 01, 05, 08 |\n| MED_RX | 01, 06 |\n| MED_DEBRIEF | 01, 07 |\n| MED_CLOSE | 01（复用 07-reporter-agent，无独立 chunk） |\n| 任意子 Agent 激活 | 01, 09（+ 对应阶段 chunk） |\n\n> 详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览，避免膨胀。\n\n---\n\n## 深度参考（references/，渐进式披露第 3 层，按需查阅）\n\n| 文件 | 用途 |\n|------|------|\n| `references/rubric-detail.md` | 八维评分细则（每维满分标准与扣分证据） |\n| `references/score-keys.md` | 八维静态信号关键词表 |\n| `references/conflict-catalog.md` | 五类冲突示例目录 |\n| `references/anti-patterns.md` | 反模式清单（症状 / 危害 / 正确做法） |\n| `references/faq-deep.md` | 深度 FAQ（11 题：边缘场景 / 工具兼容 / 安全合规） |\n| `references/examples.md` | 各命令真实输出示例（场景 → 命令 → 输出片段） |\n| `references/cli-guide.md` | CLI 工具层调用约定（定位 / 失败处理 / 禁止项） |\n\n## 接力棒文件\n\n- 路径：`.medic/_medic_baton.json`（本 Skill 专属目录，自动创建）\n- 协议详见 `protocols/baton-protocol.md`\n\n## CLI 工具层（强制走 CLI，不裸跑代码）\n\n- 所有静态分析统一通过 `medic_tools/run.py` 执行（定位/调用/失败处理详见 `references/cli-guide.md`）\n- 中间产物一律 `--save` 落盘到 `.medic/`；AI **禁止** `python -c` 内联、禁止绕过 CLI 自行分析\n\n---\n\n## 约束分层原则\n\n| 层 | 覆盖范围 | 约束强度 |\n|----|----------|---------|\n| **工程骨架层** | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | **强约束**（规则化、数值化，禁止自由发挥） |\n| **智能分析层** | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | **软约束**（给目标与方法，不锁死结论与措辞） |\n\n---\n\n## 能力边界说明\n\n### ✅ 擅长处理（能做什么）\n\n1. **盘点**：扫描全部 Skill（workspace + 全局），输出统一清单\n2. **分类**：三维分类（功能域 / 交互模型 / 生命周期状态）\n3. **冲突检测**：五类冲突（同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争）\n4. **评分**：八维成熟度评分（0-100）+ L0~L3 定级\n5. **处方**：保留 / 合并 / 整改 / 移除 建议\n6. **报告**：Skill 检查报告（双层：人话汇报层 + 专业明细层，9 个编号部分）+ 历史对比\n\n### ⚠️ 需要素材才能做\n\n1. **增量审计**：需要指定\"与哪次清单对比\"（默认用上次 `.medic/_medic_last_inventory.json`）\n2. **只检特定范围**：需要用户说明（如\"只看 workspace\"）\n3. **专项检查**：需要用户说明（如\"只查冲突\"或\"只打分\"）\n\n### ❌ 超出范围（不做什么）\n\n1. **不写被检 Skill 的业务表/数据库**；不改任何被检查 Skill 的文件\n2. **不自动改 IDE 的 Skill 启用配置**（启用/禁用清单需用户确认后手动执行）\n3. **不代执行处方**（只产出建议；合并/归档由用户或作者执行）\n4. **不分析被检 Skill 的业务逻辑**——那是单体质量自检的活（本 Skill 只做抽象层）\n5. **不创建新 Skill、不做单体达标整改** → 路由到对应的 Skill 创建/单体自检类 Skill\n\n## 安全红线\n\n- 不读取业务数据、服务器配置、账号配置的**内容**（只记录资源**字段名/路径**）\n- 不引导操作他人账号、不处理真实敏感数据；报告中的密钥/密码只写字段名不写值\n- 不触碰任何被检 Skill 的配置值；临时产物统一放 `.medic/_medic_*.json`（本 Skill 专属，自动创建）\n\n## 异常处理与输出准确性\n\n- **信息不足**（如目录探测不到）：不编造、不中断，列出\"还缺什么/哪个范围未覆盖\"，以可用数据继续\n- **禁止笼统提示**：缺信息时不回复\"请提供更多信息\"这类空话，必须列出具体缺哪 N 项（如\"缺扫描范围 / 缺上次清单 / 某目录探测不到\"）\n- **失败处理**：单批失败自动重试 1 次，仍失败标记 skip 继续，收尾汇总；接力棒状态异常按协议处理\n- **输出准确性**：每个结论必须可回溯到证据（文件/章节/指标值）；**禁止无依据编造评分或冲突结论**；证据不足的结论明确标注\"待确认\"\n\n## 受众说明\n\n| 用户类型 | 如何使用 |\n|---------|---------|\n| 个人 Skill 开发者 | 直接触发，查看清单/冲突/评分/处方 |\n| 团队 Skill 维护者 | 合并改动前跑一遍，确认无新增冲突 |\n| Skill 生态管理员 | 作为 Skill 健康基线，定期检查 + 历史对比 |\n| 初学者 | 先看 README 快速开始，跑 `ping` 自检环境 |\n\n## 定制化参数（触发时可传）\n\n- `\"只看 workspace 的 skill\"` → 范围限定 workspace\n- `\"增量审计\"` → 对比上次清单，只精析新增/变更项\n- `\"只查冲突\"` / `\"只打分\"` → 专项模式，跳过其他阶段\n- `\"严格模式\"` → 评分/审核从严（低证据一律标注待确认）\n\n## 常见问题 FAQ\n\n**Q1：这个 Skill 和单体质量自检类 Skill 有什么区别？**\n单体自检查\"1 个 Skill 内部质量\"；本 Skill 查\"全部 Skill 的关系\"（清单/分类/冲突/评分/处方）。\n\n**Q2：评分标准会过时吗？**\n不会。标准版本化（内置基线 8-axis-v0.1），仅在用户要求/过期 >30 天/首次使用时联网更新。\n\n**Q3：会不会误判导致我误删 Skill？**\n不会。本 Skill 只出处方不代执行，改动需你确认后手动做；高严重度冲突必须有 ≥2 条独立证据。\n\n**Q4：会不会越界读我的业务数据？**\n不会。只做抽象层审计，不读业务数据/服务器/账号配置内容；密钥只记字段名不记值。\n\n**Q5：Skill 目录找不到怎么办？**\n以 IDE 注入的 skill 清单为准继续，探测不到的目录记录\"未覆盖\"不阻断。\n\n**Q6：中途中断了怎么办？**\n接力棒记录进度，再次调用自动断点续跑；每批结果即时落盘不丢失。\n\nFile v0.1.1:README.md\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n## 定位\n\n检查你安装的全部 AI Skill（技能）：列出清单、发现内容重复或互相冲突的 Skill、评估每个 Skill 是否成熟可靠，并告诉你怎么处理。\n\n**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n## 功能\n\n- **全量清单**：扫描 workspace + 全局 Skill，产出统一清单\n- **三维分类**：功能域 / 交互模型 / 生命周期状态\n- **五类冲突检测**：同质（C1）/ 意图抢占（C2）/ 上下文膨胀（C3）/ 依赖（C4）/ 资源竞争（C5）\n- **八维成熟度评分**：0-100 分，L0~L3 定级（放心用 / 基本能用 / 不太成熟 / 不建议用；**评级 = 可靠性/完成度，不是安全性**）\n- **综合处方**：保留 / 合并 / 整改 / 移除 建议\n- **检查报告**：结构化 Markdown 报告，含\"对日常使用的影响\"与\"现在建议你做什么\"\n\n## 快速开始\n\n```bash\n# 工具自检\npython .trae/skills/skill-medic/medic_tools/run.py ping <project_root>\n\n# 扫描所有 Skill（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py scan <project_root> --save\n\n# 分析单个 Skill（<skill_name> 换成实际 Skill 名）\npython .trae/skills/skill-medic/medic_tools/run.py analyze <project_root> <skill_name>\n\n# 静态冲突候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py conflict <project_root> --save\n\n# 八维评分静态证据信号（供 LLM 打分；--save 累积落盘）\npython .trae/skills/skill-medic/medic_tools/run.py score <project_root> <skill_name> --save\n\n# 规则处方候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py prescribe <project_root> --save\n\n# 生成报告\npython .trae/skills/skill-medic/medic_tools/run.py report <project_root>\n```\n\n## 版本\n\nv0.4.16 — 六轮回归收敛（fix-frontmatter 边界 / 命名泛化 / description 优化）+ 端到端 12 项测试全过；v0.4.15 五轮实测收敛（报告第9部分定级阈值 / merge severity / BOM 兼容）；v0.4.14 四轮验收收敛（project_root 铁律 / 续跑 batch 恢复）\n\n## 依赖\n\n- Python 3.10+\n- 标准库（无需第三方依赖）\n\nFile v0.1.1:_meta.json\n\n{\n  \"ownerId\": \"kn799bh9g8eq5n8nxav36av3d5879qr1\",\n  \"slug\": \"skill-medic\",\n  \"version\": \"0.1.1\",\n  \"publishedAt\": 1786168769123\n}\n\nFile v0.1.1:references/anti-patterns.md\n\n# 反模式清单\n\n## 反模式 1：纯角色扮演，无流程控制\n\n**症状**：SKILL.md 通篇是\"你是一位 XX 专家，你要专业、严谨、全面\"这类空泛道德式约束，没有编号步骤、没有阶段节点。\n\n**危害**：把任务完全交给模型自由脑补，没有强制执行顺序。换一个场景就崩。\n\n**正确做法**：任务拆成有序 Phase/Step 节点，每个节点有唯一目标和输入/产出。\n\n## 反模式 2：只有输出模板，没有业务方法论\n\n**症状**：Skill 只规定了输出长什么样（表格、报告格式），但没有说明如何得到这份结果。\n\n**危害**：遇到模糊输入，模型直接编造数据填进模板。\n\n**正确做法**：把信息抽取规则、冲突取舍标准、模糊点标记方法写进指令，模板只是最后一步的外壳。\n\n## 反模式 3：缺信息直接脑补\n\n**症状**：用户输入不完整时，Skill 不追问而直接编造缺失信息补齐。\n\n**危害**：产出结果不可信，风险全部转移给用户。\n\n**正确做法**：信息不足时停止执行，向用户明确列出还缺哪些材料，不编造。\n\n## 反模式 4：无异常处理，单一路径\n\n**症状**：Skill 只有一条理想路径，没有分支判断、没有 fallback。\n\n**危害**：遇到异常输入（坏文件、编码错误、超长文档），直接崩溃或输出错误结果。\n\n**正确做法**：设计分支逻辑：满足条件 A 走路径 A，条件 B 走路径 B；失败有回退方案。\n\n## 反模式 5：无边界约束，上下文膨胀\n\n**症状**：Skill 不限定可读文件范围、最大处理页数，常驻加载数万 token。\n\n**危害**：随 Skill 数量增加，每轮对话 token 成本越来越高，整体能力被稀释。\n\n**正确做法**：明确阈值、分层加载、超限拒绝。\n\n## 反模式 6：无自检直接交付\n\n**症状**：执行完直接输出结果，没有任何自查步骤。\n\n**危害**：模型幻觉、遗漏、错算直接流入最终产物。\n\n**正确做法**：交付前强制 checklist 自检：是否遗漏信息、是否编造内容、格式是否完整。\n\n## 反模式 7：无触发契约，什么请求都接\n\n**症状**：description 只写\"能干什么\"，不写\"不能干什么\"。\n\n**危害**：别的任务也乱调用这个 Skill，污染上下文，导致路由混乱。\n\n**正确做法**：同时写明\"何时调用\"和\"何时不要调用\"，降低误触发概率。\n\nFile v0.1.1:references/cli-guide.md\n\n# CLI 工具层调用约定 — cli-guide\n\n> 本 Skill 的所有静态分析（扫描/分类/冲突/评分信号/处方/报告）**必须**通过 CLI 工具层\n> `medic_tools/run.py` 执行。AI 禁止绕过 CLI 自己写 Python 内联代码。\n\n## 一、定位 CLI 目录（{CLI_DIR}）\n\n```\n1. 用 Glob 全局搜索（最可靠）：\n   glob **/skill-medic/medic_tools/run.py\n\n2. 多个结果时优先选择：\n   - 不在 c:\\Users\\{user}\\.trae-cn\\ 路径下的（系统目录可能不是最新版）\n   - 在项目所在盘符下的（如 e:\\、d:\\）\n\n3. 定位后记下目录路径为 {CLI_DIR}，验证：ls {CLI_DIR}/run.py 确认存在\n4. 后续所有调用统一：先 cd {CLI_DIR}，再 python run.py <action> ...\n```\n\n> **⚠️ project_root 铁律（与 cd 无关）**：`cd {CLI_DIR}` 只用于定位 run.py 脚本，**与 project_root 无关**。\n> `project_root` 永远取 **AI 上下文中的会话项目根**（绝对路径显式传入，如 `e:/Mytest_skill`），\n> 不随 cd 改变；**禁止用 `Get-Location` 的结果代替 project_root**（cd 后 Get-Location 得到的是 CLI_DIR，\n> 会导致 scan/classify/report 以错误根目录产生空产物，`.medic/` 也会建错位置）。\n\n## 二、统一调用方式\n\n```powershell\ncd {CLI_DIR}\npython run.py <action> <project_root> [params] [--save]\n```\n\n**project_root 规则**：\n- **永远取 AI 上下文中的会话项目根**（绝对路径显式传入），与 `cd {CLI_DIR}` 后的位置无关\n- 不确定时，用 `Get-Location` 查看**会话启动目录**（非 cd 后的位置），再对照上下文确认项目根\n- 路径用**正斜杠**（`e:/Mytest_skill`），避免反斜杠转义问题\n- 路径含空格时用双引号包裹：`python run.py scan \"e:/My Project\"`\n\n## 三、命令速查表\n\n| action | 命令 | 产物（--save） | 阶段 |\n|--------|------|---------------|------|\n| ping | `python run.py ping <root>` | — | MED_SCOPE |\n| scan | `python run.py scan <root> --save` | `.medic/_medic_inventory.json` | MED_ROSTER |\n| analyze | `python run.py analyze <root> <skill>` | —（skill 支持 绝对路径 / 相对路径 / 目录名） | MED_ROSTER |\n| categorize | `python run.py categorize <root> --save` | `.medic/_medic_classify.json` | MED_SORT |\n| conflict | `python run.py conflict <root> --save` | `.medic/_medic_conflicts.json` | MED_CONFLICT |\n| score | `python run.py score <root> <skill> --save` | `.medic/_medic_scores.json`（累积；skill 支持 绝对路径 / 相对路径 / 目录名） | MED_VITAL |\n| prescribe | `python run.py prescribe <root> --save` | `.medic/_medic_rx.json` | MED_RX |\n| report | `python run.py report <root>` | `.medic/skill_audit_report_*.md` + inventory | MED_DEBRIEF |\n| diff | `python run.py diff <root> [last_inventory]` | —（缺省用 `.medic/_medic_last_inventory.json`） | 增量模式 |\n| cleanup | `python run.py cleanup <root>` | 白名单清理临时中间产物（classify/conflicts/scores/rx/review；**保留 `_medic_baton.json` / `_medic_inventory.json` / `_medic_last_inventory.json` 与历史报告**——断点续跑 / 增量模式 / 历史对比的基础） | MED_CLOSE |\n\n> **中间产物必须 --save 落盘**：每个阶段结束后，确认对应 `_medic_*.json` 已生成；\n> 产物缺失即阻断，禁止跳过落盘直接进入下一阶段。\n\n## 四、禁止事项（违规即流程违规）\n\n- [禁止] 使用 `python -c \"...\"` / `python.exe -c \"...\"` 执行内联 Python（PowerShell 引号嵌套会 ParserError）\n- [禁止] CLI 失败后放弃 CLI 自行写代码替代（按下方失败处理流程）\n- [禁止] 在 PowerShell 中对路径/参数做手工转义拼接（用正斜杠 + 引号即可）\n- [禁止] 用终端 `write` 命令写文件（那是 Write-Output 别名只打印不落盘；写 JSON 用 IDE Write 工具）\n\n## 五、CLI 失败处理流程（强制）\n\n```markdown\n[P0 阻断] CLI 命令失败（ParserError/路径错误/FileNotFound）时，AI 不得自行写 Python 代码替代！\n\n[正确] 失败处理流程：\n1. 确认 {CLI_DIR} 路径是否正确（重新 Glob 搜索 run.py）\n2. 确认是否先 cd 到了 {CLI_DIR}\n3. 检查 project_root 是否用了正斜杠且引号包裹（如 \"e:/My Project\"）\n4. 重试命令\n5. 仍失败：将需要执行的 Python 逻辑写入 .py 脚本文件再执行（而非 -c 内联）\n\n[错误] 失败后的错误做法：\n- ❌ 放弃 CLI，直接用 python -c \"import json; ...\"\n- ❌ 说\"CLI 不能用，所以我用对话能力直接分析\"\n- ❌ 跳过 --save 改用对话转述代替中间产物\n```\n\n## 六、与 AI 的分工（边界）\n\n| CLI 工具层 | AI（LLM） |\n|-----------|----------|\n| 静态计算：扫描/关键词/引用比对/token/信号提取 | 语义判断：功能域最终分类、冲突证据确认、八维打分、处方精确指引 |\n| 确定性、可复现、全量一次跑完 | 分批精析、深度洞察、历史对比、报告回填 |\n| 产物落盘（--save） | 接力棒维护（**00-master 用 Write 工具更新** `.medic/_medic_baton.json`，子 Agent 禁止直写） |\n\n> 一句话：**CLI 管\"数得出来的\"，AI 管\"要理解的\"。**\n> CLI 失败不归因于\"AI 能力不足\"，走失败处理流程即可。\n>\n> **补录限制**：`run.py` 各命令（categorize/conflict/prescribe/report）以**磁盘扫描**为准，不携带 01-inventory\n> 合并的 IDE 补录项——IDE 清单独有但磁盘不可见的 Skill，由 07-reporter 在报告第 3 部分手工补入并标注\"IDE 清单独有\"。\n\nFile v0.1.1:references/conflict-catalog.md\n\n# 冲突类型目录 — C1~C5\n\n## C1：同质冲突（功能重复）\n\n两个及以上 Skill 功能域高度重叠，各自维护成本浪费且触发路由随机。\n\n**检测信号**：\n- description/功能点相似度 ≥ 阈值\n- 目录结构、阶段名、产出物命名高度雷同\n\n**示例**：\n- 同功能的两个风格定制 Skill（都是\"AI 对话风格配置\"）\n- 同功能的两个游戏设计 Skill（都是\"游戏 GDD 设计\"）\n\n## C2：意图抢占（误触发）\n\n同一用户请求可命中多个 Skill，路由不确定。\n\n**检测信号**：\n- description 触发面重叠（关键词交集大）\n- 缺少\"何时不要调用\"反触发说明\n\n**示例**：\n- 多个浏览器探索类 Skill（\"探索系统/扫描页面\"类请求容易误触发）\n\n## C3：上下文膨胀（Token 黑洞）\n\nSkill 常驻加载体积过大、无分层加载，挂载后显著抬高每轮成本、稀释整体能力。\n\n**检测信号**：\n- 常驻加载量（SKILL.md + load:always 的 chunk 索引）估算 token 超阈值\n- 无 chunk 分层\n- 正文含大量通用常识\n\n## C4：依赖/引用冲突\n\n共享数据、配置、接力棒，一方改动静默破坏另一方。\n\n**检测信号**：\n- 引用同一 config.json / 同一 DB 表 / 同一 baton 路径 / 同一环境变量\n- 双方实现 mtime 差异明显（一方改动未同步）\n\n**示例**：\n- 多个 Skill 共享同一接力棒目录与同一数据库（一方改表结构静默影响其他方）\n\n## C5：资源竞争\n\n同一物理/逻辑资源被多个 Skill 抢占，无法并行。\n\n**检测信号**：\n- 都声明浏览器/CDP\n- 同一 MCP 工具\n- 同一端口\n\n> 注：同一库表写入权归 **C4 依赖冲突**（DB 表/库引用从代码通用提取归入 C4），C5 只检物理/逻辑运行时资源（浏览器/CDP/MCP 工具/端口）。\n\nFile v0.1.1:references/examples.md\n\n# 命令输出示例（references/examples.md）\n\n> 以下示例来自真实环境（`project_root` 下含多个 Skill）的 CLI 输出，供快速对照：看到类似的输出即说明工具层工作正常。\n> 格式：**场景 → 命令 → 输出片段**。输出会因环境 Skill 不同而不同，重点是**结构**一致。\n\n---\n\n## 1. ping —— 工具自检\n\n**场景**：执行前确认环境可读、Python 可用。\n\n**命令**：`python run.py ping <project_root>`\n\n**输出片段**：\n```json\n{\n  \"project_root_exists\": true,\n  \"skills_dirs_found\": 1,\n  \"python_version\": \"3.13.x\",\n  \"all_ok\": true\n}\n```\n\n---\n\n## 2. scan —— 全量清单\n\n**场景**：盘点所有 Skill，产出清单 JSON（含同名去重与重复安装记录）。\n\n**命令**：`python run.py scan <project_root> --save`\n\n**输出片段**（每项关键字段；`path` 为平台原生绝对路径，Windows 下为反斜杠，**命令行入参请用正斜杠**）：\n```json\n{\n  \"name\": \"conspect\",\n  \"path\": \"C:\\\\Users\\\\...\\\\skills\\\\conspect\",\n  \"scope\": \"global\",\n  \"description\": \"全自动多源数据智能分析与商务报表渲染工具。…\",\n  \"tokens_est\": 6341,\n  \"ref_files_count\": 3,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true,\n  \"status\": \"active\"\n}\n```\n\n---\n\n## 3. analyze —— 单 Skill 静态指标\n\n**场景**：查单个 Skill 的静态指标（支持 绝对路径 / 相对路径 / 目录名 三种入参）。\n\n**命令**：`python run.py analyze <project_root> <skill>`\n\n**输出片段**：\n```json\n{\n  \"name\": \"conspect\",\n  \"status\": \"active\",\n  \"chars\": 17341,\n  \"tokens_est\": 6341,\n  \"always_load_tokens_est\": 6534,\n  \"has_changelog\": true,\n  \"has_readme\": true,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true\n}\n```\n\n---\n\n## 4. conflict —— 五类冲突候选\n\n**场景**：静态冲突检测，产出 C1~C5 候选（供 03-conflict-agent 复核证据、判定严重度）。\n\n**命令**：`python run.py conflict <project_root> --save`\n\n**输出片段**：\n```json\n{\n  \"C1\": [\n    {\n      \"skill_a\": \"tencent-docs\",\n      \"skill_b\": \"tencent-saas-docs\",\n      \"type\": \"C1\",\n      \"jaccard\": 0.848,\n      \"overlap_count\": 84,\n      \"keywords\": [\"文档\", \"在线\", \"新建\"],\n      \"severity\": \"candidate\"\n    }\n  ],\n  \"C2\": [\n    {\n      \"skill_a\": \"agent-browser\",\n      \"skill_b\": \"xbrowser\",\n      \"type\": \"C2\",\n      \"overlap_count\": 6,\n      \"keywords\": [\"浏览器\", \"自动化\"],\n      \"severity\": \"medium\"\n    }\n  ]\n}\n```\n\n---\n\n## 5. score —— 单 Skill 八维静态信号\n\n**场景**：输出一个 Skill 的八维静态证据信号（供 04-scorer-agent 打分时定位证据）。\n\n**命令**：`python run.py score <project_root> <skill> --save`\n\n**输出片段**：\n```json\n{\n  \"name\": \"skill-medic\",\n  \"status\": \"active\",\n  \"desc_len\": 196,\n  \"desc_has_antitrigger\": true,\n  \"dim1_trigger\": [\"何时调用\", \"应触发\", \"不要调用\"],\n  \"dim2_flow\": [\"阶段\", \"当\"],\n  \"dim3_exception\": [\"信息不足\", \"失败\", \"重试\", \"熔断\"],\n  \"dim4_output\": [\"自检\", \"中间产物\"],\n  \"dim5_boundary\": {\"hits\": [\"分层\", \"chunk\"], \"has_chunks\": true},\n  \"dim6_value_weak\": {\"has_refs\": true, \"tokens_est\": 1757},\n  \"dim7_engineering\": {\"has_tools\": true, \"has_readme\": true},\n  \"dim8_maintain\": {\"has_changelog\": true}\n}\n```\n\n---\n\n## 6. prescribe —— 规则处方候选\n\n**场景**：基于冲突矩阵 + 静态维护信号生成规则处方候选（供 06-synthesizer 完善）。\n\n**命令**：`python run.py prescribe <project_root> --save`\n\n**输出片段**：\n```json\n[\n  {\n    \"type\": \"add-antitrigger\",\n    \"severity\": \"medium\",\n    \"targets\": [\"agent-browser\", \"xbrowser\"],\n    \"conflict\": \"C2\",\n    \"rule\": \"意图抢占：为双方 description 补充'何时不要调用'反触发说明，降低误触发\",\n    \"llm_todo\": \"给出各 Skill description 的改写建议（精确措辞）\"\n  }\n]\n```\n\n---\n\n## 7. report —— 报告落盘\n\n**场景**：装配报告静态骨架并落盘（总是落盘，无需 `--save`；结论区由 AI 在 MED_DEBRIEF 回填）。\n\n**命令**：`python run.py report <project_root>`\n\n**输出片段**：\n```json\n{\n  \"report_path\": \"./.medic/skill_audit_report_20260806_134509.md\",\n  \"inventory_path\": \"./.medic/_medic_inventory.json\",\n  \"skills_count\": 11,\n  \"conflict_candidates\": 39,\n  \"prescriptions\": 45\n}\n```\n\n---\n\n## 8. diff —— 增量差异\n\n**场景**：与上次清单对比，输出新增/变更/删除的 Skill。\n\n**命令**：`python run.py diff <project_root> [last_inventory]`（缺省用 `.medic/_medic_last_inventory.json`）\n\n**输出片段**：\n```json\n{\n  \"added\": [\"xbrowser\", \"kdocs\"],\n  \"removed\": [\"old-skill\"],\n  \"changed\": [\"conspect\"]\n}\n```\n\n---\n\n> 各命令的失败处理、定位方式与禁止项见 `references/cli-guide.md`。\n\nFile v0.1.1:references/faq-deep.md\n\n# FAQ 深度问答\n\n## Q1：本 Skill 和单体质量自检类 Skill 有什么区别？\n\n**A**：单体质量自检类 Skill 检查 **1 个 Skill** 内部质量（如五维达标自检）。本 Skill 是 **Skill 健康检查**，针对 **全部 Skill** 做清单、分类、冲突检测、评分和处方。简单说：单体自检是\"检查一个 Skill 写得好不好\"，本 Skill 是\"检查你装的所有 Skill 之间有没有重复、冲突，整体靠不靠谱\"。\n\n## Q2：评分标准会过时吗？\n\n**A**：评分标准版本化维护。内置基线 `8-axis-v0.1`，当用户要求、标准过期 >30 天或首次使用时，触发联网更新。更新只升级标准版本，不影响当前评分，保障可复现。\n\n## Q3：50+ 个 Skill 会不会撑爆上下文？\n\n**A**：不会。本 Skill 采用\"粗扫全量 + 分组分批精析\"策略：粗扫阶段只读 frontmatter 和目录结构，不读正文；精析阶段按功能域分组，每批 ≤3 个 Skill，每批正文预算 ≤10k token。50+ Skill 也能一次跑完。\n\n## Q4：冲突检测准确吗？\n\n**A**：分两层。第一层是静态规则引擎（基于 Jaccard 相似度、引用路径比对），确定性计算，全量跑完不耗 LLM 上下文。第二层是 LLM 语义确认，读取正文确认证据、判定严重度。高严重度冲突必须有 ≥2 条独立证据。AI 还可以补充规则未覆盖的发现。\n\n## Q5：本 Skill 会不会误判导致用户误删 Skill？\n\n**A**：本 Skill **只产出处方、不代执行**。所有\"合并/移除\"建议都含精确指引，但改动需要用户确认后手动执行。处方进入回访队列，下次审计会核对执行情况。\n\n## Q6：增量审计怎么用？\n\n**A**：用户显式要求\"增量审计\"时，对比上次清单（`.medic/_medic_last_inventory.json`——report 前由 run.py 自动从本次清单归档复制，是历史对比的单一数据源），只精析新增或变更的 Skill，其余沿用上次评分并标注\"沿用\"。历史对比段会输出上期处方执行核对。\n\n## Q7：本 Skill 自己会不会膨胀？\n\n**A**：本 Skill 自身采用了强制分块加载（SKILL.md 只保留触发契约 + 路由表，所有细则按阶段拆分到 chunk），从机制上杜绝 C3 上下文膨胀。并且定期用自己审自己（自举），确保自己达标。\n\n## Q8：扫描到全局 Skill 时会不会越界？\n\n**A**：不会。本 Skill 只读 Skill 目录的 SKILL.md 和目录结构，不读取用户业务数据、不碰被检 Skill 的业务表。报告中的敏感信息（密码、密钥）只记录字段名不记录值。\n\n## Q9：编码异常怎么办？\n\n**A**：读取顺序为 UTF-8 → GBK → 失败判定异常。异常 Skill 归入异常清单，**不阻断全流程**，跳过评分在报告中标注\"未评分（异常）\"。\n\n## Q10：断点续跑怎么工作？\n\n**A**：接力棒 `_medic_baton.json` 记录每个阶段的完成状态。中断后再次调用：① 先校验 ✅ 阶段产物存在，缺失回退重做；② 含审核闸门的阶段（gateN ⬜ 或被打回重做）强制重跑 05-auditor；③ 从第一个 ⬜ 阶段继续。每批精析结果即时写回 `_medic_scores.json`，不会丢失已完成的批次。\n\n## Q11：这个 Skill 能用在哪些真实场景？\n\n**A**（国内真实场景示例）：\n- **电商团队**：运营装了一堆\"商品标题优化\"类 Skill，检查后发现 3 个功能重复，处方建议只留 1 个，团队每月省下大量维护时间\n- **微信小程序开发者**：装了 5 个页面扫描类 Skill 互相抢占触发，检查后给每个补上\"何时不要调用\"，路由不再乱跳\n- **企业微信客服**：自建了一个含数据库的\"工单归档\" Skill，检查发现它和\"客服话术生成\"抢同一个上下文，处方建议划清边界\n- **个人开发者**：装了 50+ 个 Skill 越来越卡，检查定位到 3 个\"常驻加载 3 万 token\"的膨胀 Skill，瘦身后每轮对话明显变快\n\nFile v0.1.1:references/rubric-detail.md\n\n# 评分细则参考 — 8-axis-v0.1\n\n## 八维权重\n\n| # | 维度 | 权重 | 满分 |\n|---|------|:---:|:---:|\n| 1 | 触发契约 | 15 | 15 |\n| 2 | 流程机制 | 15 | 15 |\n| 3 | 异常与熔断 | 12 | 12 |\n| 4 | 产出控制 | 13 | 13 |\n| 5 | 边界与上下文 | 12 | 12 |\n| 6 | 内容价值密度 | 13 | 13 |\n| 7 | 工程配套 | 10 | 10 |\n| 8 | 维护健康度 | 10 | 10 |\n| **合计** | | **100** | **100** |\n\n## 每维详细说明\n\n### 1. 触发契约（15 分）\n- description 同时含\"做什么 + 何时调用 + 何时不调用\"\n- 用词具体非空话，参考 ClaudSkills 描述深度 ≥ 200 字符\n- 扣分：description < 40 字；只有能力罗列无触发条件；无反触发词\n\n### 2. 流程机制（15 分）\n- 正文为有序 Phase/Step 节点，每节点有输入/产出/禁止跳步\n- 有分支判断逻辑\n- 扣分：大段人设形容词；无编号步骤；单一路径无分支\n\n### 3. 异常与熔断（12 分）\n- 缺信息→停止并追问，禁止编造\n- 失败有 fallback 路径\n- 有最大迭代轮次限制\n- 扣分：缺材料直接脑补；无任何失败处理说明\n\n### 4. 产出控制（13 分）\n- 有中间产物（非一步输出最终大文档）\n- 交付前逐条 checklist 自检\n- 输出有验收标准\n- 扣分：执行完直接输出结束，无自检步骤\n\n### 5. 边界与上下文（12 分）\n- 明确可读范围/上限阈值/超限拒绝\n- 有分层加载（chunk/渐进式披露）\n- 扣分：无任何边界；单文件超长；重复通用常识堆砌\n\n### 6. 内容价值密度（13 分）\n- 核心是业务方法论与判断规则\n- 有反模式说明\n- 示例真实\n- 扣分：只有输出模板；常识性内容占大头；示例是占位符\n\n### 7. 工程配套（10 分）\n- 有可执行工具层/脚本、配置、README、版本、测试或自检手段\n- 判定原则：功能不涉及数据/外部工具时纯提示词不扣分；功能需要数据处理或外部工具却无工具层 → 该维直接 0 分\n\n### 8. 维护健康度（10 分）\n- 有 CHANGELOG/版本号\n- 有更新或修复痕迹\n- README 与实现一致\n- 扣分：只有 zip 备份无活动目录；README 与 SKILL.md 不一致\n\nFile v0.1.1:references/score-keys.md\n\n# 评分证据定位指南 — score-keys\n\n> 供 04-scorer-agent 在 MED_VITAL 阶段给每维打分时使用：\n> 每条评分必须有**可回溯证据**（文件路径 + 行号/章节 + 原文摘录），禁止无依据打分。\n\n## 证据格式（要素固定，表述自由）\n\n每条证据形如：\n`<文件> L<行号> <章节>：<原文摘录> → <它支撑哪一维的什么判断>`\n\n示例：\n- `SKILL.md L11-31 触发契约：description 含\"何时调用+何时不要调用\" → 维度1 触发契约，反触发纪律成立`\n- `SKILL.chunks/chunk-05-score.md §评分流程：有逐条自检 → 维度4 产出控制，checklist 闭环成立`\n\n## 各维度的证据来源（默认检索范围）\n\n| 维度 | 优先证据位置 |\n|------|-------------|\n| 1 触发契约 | SKILL.md frontmatter description + 触发契约章节 |\n| 2 流程机制 | SKILL.md 状态机/阶段表 + protocols/phase-protocol.md |\n| 3 异常与熔断 | SKILL.md 熔断/异常段 + protocols/baton-protocol.md |\n| 4 产出控制 | SKILL.md 自检/验收段 + agents/05-auditor-agent.md 阻断码 |\n| 5 边界与上下文 | SKILL.chunks/chunk-index.yaml + 常驻 token 估算 |\n| 6 内容价值密度 | references/（方法论/反模式/FAQ）+ SKILL.chunks 正文 |\n| 7 工程配套 | medic_tools/、1-manifest/、README、protocols/ 存在性 |\n| 8 维护健康度 | CHANGELOG.md 版本轨迹 + README 与实现一致性 |\n\n## 扣分定位要求（对应 BLOCK-C 审核）\n\n- 任何维度给分 ≤4/满分时，**必须**给出扣分定位（文件 + 章节/行号 + 缺失或不足的具体内容）\n- 无扣分定位的 ≤4 分 → 被 05-auditor 打回（BLOCK-C）\n\n## 信号 ≠ 证据\n\n`run.py score` 输出的关键词命中只是**候选信号**；证据必须是\"从文件里实际读到、能支撑该维判断\"的内容。\n信号为空可作为扣分线索，但也要指明具体缺什么（如\"无自检相关章节\"）。\n\nFile v0.1.1:agents/00-master-controller.md\n\n# 00-master-controller：主控路由\n\n## 职责\n\n读接力棒 `_medic_baton.json` → 判断当前阶段 → 路由到对应子 Agent → 验证产出 → 更新接力棒。\n\n## 启动流程\n\n1. 读 `.medic/_medic_baton.json`\n2. 按**固定顺序**判断分支（顺序不可颠倒：FAILED/损坏 必须优先于 is_running）：\n   - **接力棒不存在**（首次执行）→ **初始化**：按 `protocols/baton-protocol.md` 结构创建，\n     写 `meta`（skill / state=MED_SCOPE / session_id / created_at / scan_scope / rubric_version，is_running=1, run_count=1）、\n     `progress`（8 阶段全 ⬜ + gate1/gate2/gate3 全 ⬜）、`batch`/`history`/`artifacts`/`rework` 初始值；\n     用 IDE Write 工具落盘到 `.medic/_medic_baton.json`（目录不存在则先创建）\n   - `meta.state == FAILED` 或接力棒 JSON 损坏 → 先向用户展示 `rework.last_error` / `rework.last_blocker`，\n     人工确认后重置接力棒（is_running=0）再开新会话；损坏文件先备份（`_medic_baton.corrupt_<时间戳>.json`）再重建\n   - `is_running=0`（上次已 CLOSE）→ 新会话，重置接力棒（run_count+1、progress 全 ⬜、history 记上次）\n   - `is_running=1`（上次中断）→ **断点续跑**，按序执行：\n     a. **产物回退校验**：遍历 progress 中 ✅ 的阶段，对照 `protocols/phase-protocol.md` 闸门表\n        逐一验证对应产物文件存在且非空；缺失 → 回退该阶段重做（progress 置 ⬜，记入 `rework.history`）\n     b. **批进度恢复**：读取接力棒 `batch` 段（groups_done / current_group / skipped_groups），\n        作为路由参数传给 04-scorer，已完成的组跳过、从未完成组继续（batch 段是批进度的唯一数据源）\n     c. **续跑顺序**：先续完当前阶段的全部批次，**阶段产物完整后**，再对含审核闸门的阶段\n        （gateN 为 ⬜ 或被打回重做）强制重跑 05-auditor 一次（全覆盖审核）再放行\n     d. 从第一个 ⬜ 阶段继续\n3. **子 Agent 加载方式**：读取 `agents/0X-*.md` 提示词文件后以该角色执行（本 Skill 环境无独立子进程，\n   由同一 AI 按提示词切换角色完成），同时加载 `chunk-01 + chunk-09 + 对应阶段 chunk`\n4. 按阶段表路由到对应子 Agent；**子 Agent 一律不直接写接力棒**——04 批进度、06 处方登记等\n   由子 Agent 完成后回报给 00-master，由主控统一写入接力棒（保持单点写）\n5. 子 Agent 完成后验证产出（阶段闸门，见 `protocols/phase-protocol.md`）；**审核闸门**由 05-auditor 盲审，\n   命中 BLOCK 码则打回对应阶段重做（见 05-auditor 阻断码表）；**同一阶段/闸门累计重试 ≥3 次** →\n   置 `state=FAILED` 并停止自动重试，输出完整问题清单交人工处理\n6. 更新接力棒进度（单点写：只有 00-master 更新）\n\n## 阶段路由表\n\n| 阶段 | 子 Agent | 验证产出 |\n|------|---------|---------|\n| MED_SCOPE | 01-inventory-agent | 扫描范围声明 |\n| MED_ROSTER | 01-inventory-agent | `_medic_inventory.json` |\n| MED_SORT | 02-classifier-agent | 分类表（`_medic_classify.json` 回填 domain_final） |\n| MED_CONFLICT | 03-conflict-agent | `_medic_conflicts.json` |\n| MED_VITAL | 04-scorer-agent | `_medic_scores.json` |\n| 审核闸门① | 05-auditor-agent | `_medic_review.json`（盲审分类/冲突/评分；BLOCK-A/B/C 打回） |\n| MED_RX | 06-synthesizer-agent | 处方清单（`_medic_rx.json` 回填精确处方） |\n| 审核闸门② | 05-auditor-agent | `_medic_review.json`（盲审处方；BLOCK-D 打回） |\n| MED_DEBRIEF | 07-reporter-agent | 报告文件 |\n| 审核闸门③ | 05-auditor-agent | `_medic_review.json`（盲审报告成品；BLOCK-E 拦截缺部分/阈值不符/残留模板指导语） |\n| MED_CLOSE | 07-reporter-agent（完成摘要 + 报告路径回报）→ **00-master 收口**（登记 prescriptions_outstanding、回填 `artifacts.report` 实际路径、更新 state=CLOSE, is_running=0）→ **收口完成后最后执行 `run.py cleanup`** | 完成摘要 |\n\n## 禁止事项\n\n- 禁止代子 Agent 产出内容\n- 禁止直接修改接力棒以外的本 Skill 产物\n- 禁止在非路由阶段读取子 Agent 中间推理过程\n\nFile v0.1.1:agents/01-inventory-agent.md\n\n# 01-inventory-agent：清单盘点\n\n## 职责\n\n执行 MED_SCOPE + MED_ROSTER 阶段的轻量粗扫工作。\n\n## 执行规则\n\n### MED_SCOPE\n1. **第一数据源 = IDE 注入的 available_skills 清单**（AI 上下文中的 name + description），\n   顺着 IDE 引导走，不自己猜路径\n2. 文件系统扫描（`run.py scan`）多编辑器兼容：workspace 候选目录（.trae/.claude/.cursor/.codex/skills 等）\n   + 全局候选目录（~/.trae-cn/skills 等）\n3. 任何目录探测不到 → 记录\"该范围未覆盖（原因）\"，**不阻断**，以 available_skills 为准\n4. zip 备份标注为\"备份归档\"\n\n### MED_ROSTER（铁律：禁止读 SKILL.md 正文全文）\n1. frontmatter 字段与目录结构标志统一由 `medic_tools/run.py scan <root> --save` 一次性产出\n   （CLI 约定见 references/cli-guide.md），落盘 `.medic/_medic_inventory.json`\n2. AI 只读该 JSON，**不直接读被检 Skill 文件**（避免绕 CLI、超上下文）\n3. 编码异常 → 置 `status=broken`，跳过评分\n4. **合并 available_skills 与脚本扫描结果**：脚本扫到但清单没有 → 标\"仅文件系统可见\"；\n   清单有但脚本没扫到 → 以 IDE 为准补录\n5. **合并结果写回（铁律）**：合并后的全量清单**必须用 IDE Write 工具覆盖写回\n   `.medic/_medic_inventory.json`**（保留脚本产出的全部字段，追加 source/scope 标注），禁止只留在对话里\n6. **补录限制**：`run.py` 的 categorize/conflict/prescribe/report 均以磁盘扫描为准（重扫文件系统），\n   IDE 补录项若磁盘不可见，下游命令不会自动带上——补录项由 07-reporter 在报告第 3 部分手工补入并标注\"IDE 清单独有\"\n\n### 分析深度边界（铁律）\n只做抽象层：识别类型、看关系、查体积、提取资源依赖**字段名/路径**。\n**不读**业务数据/服务器配置/账号配置内容，**不分析**被检 Skill 的业务逻辑，\n**不逐行**审代码——那是单体质量自检的活，深挖会超上下文且偏离定位。\n\n## 产出\n\n`.medic/_medic_inventory.json`（全量清单，含 source / scope；目录自动创建）\n\n## 禁止事项\n\n- 禁止在扫描阶段做分类/打分判断\n- 禁止读 SKILL.md 正文全文\n- 禁止读 config 值 / 业务数据 / 账号配置内容\n\nArchive v0.1.0: 42 files, 88869 bytes\n\nFiles: .gitignore (149b), 1-manifest (0b), 1-manifest/skill-manifest.yaml (648b), agents (0b), agents/00-master-controller.md (1792b), agents/01-inventory-agent.md (1750b), agents/02-classifier-agent.md (1252b), agents/03-conflict-agent.md (590b), agents/04-scorer-agent.md (658b), agents/05-auditor-agent.md (1753b), agents/06-synthesizer-agent.md (872b), agents/07-reporter-agent.md (3542b), CHANGELOG.md (25190b), medic_tools (0b), medic_tools/__init__.py (36b), medic_tools/run.py (72994b), protocols (0b), protocols/baton-protocol.md (1934b), protocols/phase-protocol.md (1178b), README.md (2013b), references (0b), references/anti-patterns.md (2465b), references/cli-guide.md (4294b), references/conflict-catalog.md (1603b), references/examples.md (4689b), references/faq-deep.md (3778b), references/rubric-detail.md (2171b), references/score-keys.md (1924b), skill-card.md (2607b), SKILL.chunks (0b), SKILL.chunks/chunk-01-overview.md (1585b), SKILL.chunks/chunk-02-scan-inventory.md (4718b), SKILL.chunks/chunk-03-categorize.md (3523b), SKILL.chunks/chunk-04-conflict.md (2550b), SKILL.chunks/chunk-05-score.md (5590b), SKILL.chunks/chunk-06-synthesize.md (2043b), SKILL.chunks/chunk-07-report.md (7862b), SKILL.chunks/chunk-08-rubric.md (1385b), SKILL.chunks/chunk-09-agents.md (2253b), SKILL.chunks/chunk-index.yaml (1029b), SKILL.md (9590b), _meta.json (130b)\n\nFile v0.1.0:SKILL.md\n\n---\nname: skill-medic\ndisplay_name: SkillMedic — Skill 健康检查与冲突检测\nversion: 0.4.9\ndescription: 检查你安装的所有 AI Skill（技能）：列出完整清单、发现内容重复或互相冲突的 Skill、评估每个 Skill 是否成熟可靠，并告诉你怎么处理（哪些可放心用、哪些建议合并或删除）。当用户问“我有哪些 skill / 哪些 skill 重复了 / skill 有没有问题 / 该留哪个 skill”时调用。当用户需要创建新 Skill、检查单个 Skill 质量、或纯知识问答时不要调用。\ntags: [skill-engineering, audit, conflict-detection, scoring, inventory]\nlanguage: zh-CN\n---\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n> 定位：检查你安装的全部 Skill —— 列出清单、找出重复和冲突、评估成熟度、给出处理建议\n>\n> 一句话：**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n---\n\n## 触发契约\n\n### 何时调用（应触发）\n\n当用户表达以下任一意图时，应激活本 Skill：\n\n- **盘点类**：\"检查一下我有哪些 skill\" / \"我装了什么 skill\" / \"列出所有 skill\"\n- **冲突检测类**：\"哪些 skill 重复了\" / \"skill 之间有没有冲突\" / \"会不会有两个 skill 抢着响应\" / \"谁和谁功能重叠\"\n- **质量评估类**：\"我的 skill 都靠谱吗\" / \"给所有 skill 打个分\" / \"哪个 skill 不好用\"\n- **综合处方类**：\"该保留哪些 skill\" / \"哪些 skill 该删\" / \"skill 优化建议\"\n- **增量审计类**：\"对比上次和这次的检查结果\" / \"增量检查 skill\"\n- **范围限定类**：\"只看 workspace 的 skill\" / \"检查全局 skill\"\n\n### 何时不要调用（反触发）\n\n以下情况**不应激活**本 Skill，应路由到其他 Skill：\n\n- 用户要**创建新 Skill** → 路由到 Skill 创建类 Skill\n- 用户要检查**单个 Skill 的质量达标情况** → 路由到单体质量自检类 Skill\n- 用户问**\"skill 这个词是什么意思\"** 等纯知识问答 → 不触发本 Skill\n- 用户进行**C 盘清理** → 路由到系统维护类 Skill\n- 用户进行**代码审查/安全扫描/调试** → 路由到平台对应的质量保障类 Skill\n- 用户要求**具体的业务功能**（如\"帮我扫描这个页面\"）→ 路由到对应业务 Skill\n\n---\n\n## 状态机总览\n\n```\nMED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE\n```\n\n| 阶段 | 名称 | 职责 | 产出 |\n|------|------|------|------|\n| MED_SCOPE | 范围扫描 | 确定扫描范围，检查目录可读性 | 扫描范围声明 |\n| MED_ROSTER | 清单盘点（轻量粗扫） | 只读 frontmatter + 目录树 + 静态指标，**禁止读正文全文** | Skill 清单 JSON |\n| MED_SORT | 三维分类 | 按功能域/交互模型/生命周期状态分类 | 分类表 |\n| MED_CONFLICT | 冲突检测 | 全量静态比对 + 按分组 LLM 确认证据 | 冲突矩阵 + 证据 |\n| MED_VITAL | 评分 | 按分组批处理八维打分 | 评分表（含证据） |\n| MED_RX | 综合研判 | 冲突矩阵 × 评分 → 处方建议 | 处方清单 |\n| MED_DEBRIEF | 报告输出 | 生成并落盘检查报告 | 检查报告 |\n| MED_CLOSE | 完成 | 汇总统计、清理临时文件 | 完成摘要 |\n\n---\n\n## 路由表（阶段 → Chunk）\n\n| 当前阶段 | 加载的 Chunk |\n|----------|-------------|\n| 初始化（刚激活） | 01 |\n| MED_SCOPE / MED_ROSTER | 01, 02 |\n| MED_SORT | 01, 03 |\n| MED_CONFLICT | 01, 04, 08 |\n| MED_VITAL | 01, 05, 08 |\n| MED_RX | 01, 06 |\n| MED_DEBRIEF | 01, 07 |\n| 任意子 Agent 激活 | 01, 09（+ 对应阶段 chunk） |\n\n> 详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览，避免膨胀。\n\n---\n\n## 深度参考（references/，渐进式披露第 3 层，按需查阅）\n\n| 文件 | 用途 |\n|------|------|\n| `references/rubric-detail.md` | 八维评分细则（每维满分标准与扣分证据） |\n| `references/score-keys.md` | 八维静态信号关键词表 |\n| `references/conflict-catalog.md` | 五类冲突示例目录 |\n| `references/anti-patterns.md` | 反模式清单（症状 / 危害 / 正确做法） |\n| `references/faq-deep.md` | 深度 FAQ（11 题：边缘场景 / 工具兼容 / 安全合规） |\n| `references/examples.md` | 各命令真实输出示例（场景 → 命令 → 输出片段） |\n| `references/cli-guide.md` | CLI 工具层调用约定（定位 / 失败处理 / 禁止项） |\n\n## 接力棒文件\n\n- 路径：`.medic/_medic_baton.json`（本 Skill 专属目录，自动创建）\n- 协议详见 `protocols/baton-protocol.md`\n\n## CLI 工具层（强制走 CLI，不裸跑代码）\n\n- 所有静态分析统一通过 `medic_tools/run.py` 执行（定位/调用/失败处理详见 `references/cli-guide.md`）\n- 中间产物一律 `--save` 落盘到 `.medic/`；AI **禁止** `python -c` 内联、禁止绕过 CLI 自行分析\n\n---\n\n## 约束分层原则\n\n| 层 | 覆盖范围 | 约束强度 |\n|----|----------|---------|\n| **工程骨架层** | 状态机、接力棒、命名空间、批处理、上下文预算、熔断、脱敏、编码、触发路由 | **强约束**（规则化、数值化，禁止自由发挥） |\n| **智能分析层** | 三维分类语义、冲突严重度判定、八维评分证据、处方内容、历史对比洞察 | **软约束**（给目标与方法，不锁死结论与措辞） |\n\n---\n\n## 能力边界说明\n\n### ✅ 擅长处理（能做什么）\n\n1. **盘点**：扫描全部 Skill（workspace + 全局），输出统一清单\n2. **分类**：三维分类（功能域 / 交互模型 / 生命周期状态）\n3. **冲突检测**：五类冲突（同质 / 意图抢占 / 上下文膨胀 / 依赖 / 资源竞争）\n4. **评分**：八维成熟度评分（0-100）+ L0~L3 定级\n5. **处方**：保留 / 合并 / 整改 / 移除 建议\n6. **报告**：Skill 检查报告（双层：人话汇报层 + 专业明细层，9 个编号部分）+ 历史对比\n\n### ⚠️ 需要素材才能做\n\n1. **增量审计**：需要指定\"与哪次清单对比\"（默认用上次 `.medic/_medic_inventory.json`）\n2. **只检特定范围**：需要用户说明（如\"只看 workspace\"）\n3. **专项检查**：需要用户说明（如\"只查冲突\"或\"只打分\"）\n\n### ❌ 超出范围（不做什么）\n\n1. **不写被检 Skill 的业务表/数据库**；不改任何被检查 Skill 的文件\n2. **不自动改 IDE 的 Skill 启用配置**（启用/禁用清单需用户确认后手动执行）\n3. **不代执行处方**（只产出建议；合并/归档由用户或作者执行）\n4. **不分析被检 Skill 的业务逻辑**——那是单体质量自检的活（本 Skill 只做抽象层）\n5. **不创建新 Skill、不做单体达标整改** → 路由到对应的 Skill 创建/单体自检类 Skill\n\n## 安全红线\n\n- 不读取业务数据、服务器配置、账号配置的**内容**（只记录资源**字段名/路径**）\n- 不引导操作他人账号、不处理真实敏感数据；报告中的密钥/密码只写字段名不写值\n- 不触碰任何被检 Skill 的配置值；临时产物统一放 `.medic/_medic_*.json`（本 Skill 专属，自动创建）\n\n## 异常处理与输出准确性\n\n- **信息不足**（如目录探测不到）：不编造、不中断，列出\"还缺什么/哪个范围未覆盖\"，以可用数据继续\n- **禁止笼统提示**：缺信息时不回复\"请提供更多信息\"这类空话，必须列出具体缺哪 N 项（如\"缺扫描范围 / 缺上次清单 / 某目录探测不到\"）\n- **失败处理**：单批失败自动重试 1 次，仍失败标记 skip 继续，收尾汇总；接力棒状态异常按协议处理\n- **输出准确性**：每个结论必须可回溯到证据（文件/章节/指标值）；**禁止无依据编造评分或冲突结论**；证据不足的结论明确标注\"待确认\"\n\n## 受众说明\n\n| 用户类型 | 如何使用 |\n|---------|---------|\n| 个人 Skill 开发者 | 直接触发，查看清单/冲突/评分/处方 |\n| 团队 Skill 维护者 | 合并改动前跑一遍，确认无新增冲突 |\n| Skill 生态管理员 | 作为 Skill 健康基线，定期检查 + 历史对比 |\n| 初学者 | 先看 README 快速开始，跑 `ping` 自检环境 |\n\n## 定制化参数（触发时可传）\n\n- `\"只看 workspace 的 skill\"` → 范围限定 workspace\n- `\"增量审计\"` → 对比上次清单，只精析新增/变更项\n- `\"只查冲突\"` / `\"只打分\"` → 专项模式，跳过其他阶段\n- `\"严格模式\"` → 评分/审核从严（低证据一律标注待确认）\n\n## 常见问题 FAQ\n\n**Q1：这个 Skill 和单体质量自检类 Skill 有什么区别？**\n单体自检查\"1 个 Skill 内部质量\"；本 Skill 查\"全部 Skill 的关系\"（清单/分类/冲突/评分/处方）。\n\n**Q2：评分标准会过时吗？**\n不会。标准版本化（内置基线 8-axis-v0.1），仅在用户要求/过期 >30 天/首次使用时联网更新。\n\n**Q3：会不会误判导致我误删 Skill？**\n不会。本 Skill 只出处方不代执行，改动需你确认后手动做；高严重度冲突必须有 ≥2 条独立证据。\n\n**Q4：会不会越界读我的业务数据？**\n不会。只做抽象层审计，不读业务数据/服务器/账号配置内容；密钥只记字段名不记值。\n\n**Q5：Skill 目录找不到怎么办？**\n以 IDE 注入的 skill 清单为准继续，探测不到的目录记录\"未覆盖\"不阻断。\n\n**Q6：中途中断了怎么办？**\n接力棒记录进度，再次调用自动断点续跑；每批结果即时落盘不丢失。\n\nFile v0.1.0:README.md\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n## 定位\n\n检查你安装的全部 AI Skill（技能）：列出清单、发现内容重复或互相冲突的 Skill、评估每个 Skill 是否成熟可靠，并告诉你怎么处理。\n\n**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n## 功能\n\n- **全量清单**：扫描 workspace + 全局 Skill，产出统一清单\n- **三维分类**：功能域 / 交互模型 / 生命周期状态\n- **五类冲突检测**：同质（C1）/ 意图抢占（C2）/ 上下文膨胀（C3）/ 依赖（C4）/ 资源竞争（C5）\n- **八维成熟度评分**：0-100 分，L0~L3 定级（放心用 / 基本能用 / 不太成熟 / 不建议用；**评级 = 可靠性/完成度，不是安全性**）\n- **综合处方**：保留 / 合并 / 整改 / 移除 建议\n- **检查报告**：结构化 Markdown 报告，含\"对日常使用的影响\"与\"现在建议你做什么\"\n\n## 快速开始\n\n```bash\n# 工具自检\npython .trae/skills/skill-medic/medic_tools/run.py ping <project_root>\n\n# 扫描所有 Skill（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py scan <project_root> --save\n\n# 分析单个 Skill（<skill_name> 换成实际 Skill 名）\npython .trae/skills/skill-medic/medic_tools/run.py analyze <project_root> <skill_name>\n\n# 静态冲突候选\npython .trae/skills/skill-medic/medic_tools/run.py conflict <project_root>\n\n# 八维评分静态证据信号（供 LLM 打分）\npython .trae/skills/skill-medic/medic_tools/run.py score <project_root> <skill_name>\n\n# 规则处方候选\npython .trae/skills/skill-medic/medic_tools/run.py prescribe <project_root>\n\n# 生成报告\npython .trae/skills/skill-medic/medic_tools/run.py report <project_root>\n```\n\n## 版本\n\nv0.4.9 — TRACE 自检补漏（examples.md / 渐进式披露第3层 / score 信号修复）；v0.4.8 真实反馈核查修复\n\n## 依赖\n\n- Python 3.10+\n- 标准库（无需第三方依赖）\n\nFile v0.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn799bh9g8eq5n8nxav36av3d5879qr1\",\n  \"slug\": \"skill-medic\",\n  \"version\": \"0.1.0\",\n  \"publishedAt\": 1786008855053\n}\n\nFile v0.1.0:references/anti-patterns.md\n\n# 反模式清单\n\n## 反模式 1：纯角色扮演，无流程控制\n\n**症状**：SKILL.md 通篇是\"你是一位 XX 专家，你要专业、严谨、全面\"这类空泛道德式约束，没有编号步骤、没有阶段节点。\n\n**危害**：把任务完全交给模型自由脑补，没有强制执行顺序。换一个场景就崩。\n\n**正确做法**：任务拆成有序 Phase/Step 节点，每个节点有唯一目标和输入/产出。\n\n## 反模式 2：只有输出模板，没有业务方法论\n\n**症状**：Skill 只规定了输出长什么样（表格、报告格式），但没有说明如何得到这份结果。\n\n**危害**：遇到模糊输入，模型直接编造数据填进模板。\n\n**正确做法**：把信息抽取规则、冲突取舍标准、模糊点标记方法写进指令，模板只是最后一步的外壳。\n\n## 反模式 3：缺信息直接脑补\n\n**症状**：用户输入不完整时，Skill 不追问而直接编造缺失信息补齐。\n\n**危害**：产出结果不可信，风险全部转移给用户。\n\n**正确做法**：信息不足时停止执行，向用户明确列出还缺哪些材料，不编造。\n\n## 反模式 4：无异常处理，单一路径\n\n**症状**：Skill 只有一条理想路径，没有分支判断、没有 fallback。\n\n**危害**：遇到异常输入（坏文件、编码错误、超长文档），直接崩溃或输出错误结果。\n\n**正确做法**：设计分支逻辑：满足条件 A 走路径 A，条件 B 走路径 B；失败有回退方案。\n\n## 反模式 5：无边界约束，上下文膨胀\n\n**症状**：Skill 不限定可读文件范围、最大处理页数，常驻加载数万 token。\n\n**危害**：随 Skill 数量增加，每轮对话 token 成本越来越高，整体能力被稀释。\n\n**正确做法**：明确阈值、分层加载、超限拒绝。\n\n## 反模式 6：无自检直接交付\n\n**症状**：执行完直接输出结果，没有任何自查步骤。\n\n**危害**：模型幻觉、遗漏、错算直接流入最终产物。\n\n**正确做法**：交付前强制 checklist 自检：是否遗漏信息、是否编造内容、格式是否完整。\n\n## 反模式 7：无触发契约，什么请求都接\n\n**症状**：description 只写\"能干什么\"，不写\"不能干什么\"。\n\n**危害**：别的任务也乱调用这个 Skill，污染上下文，导致路由混乱。\n\n**正确做法**：同时写明\"何时调用\"和\"何时不要调用\"，降低误触发概率。\n\nFile v0.1.0:references/cli-guide.md\n\n# CLI 工具层调用约定 — cli-guide\n\n> 本 Skill 的所有静态分析（扫描/分类/冲突/评分信号/处方/报告）**必须**通过 CLI 工具层\n> `medic_tools/run.py` 执行。AI 禁止绕过 CLI 自己写 Python 内联代码。\n\n## 一、定位 CLI 目录（{CLI_DIR}）\n\n```\n1. 用 Glob 全局搜索（最可靠）：\n   glob **/skill-medic/medic_tools/run.py\n\n2. 多个结果时优先选择：\n   - 不在 c:\\Users\\{user}\\.trae-cn\\ 路径下的（系统目录可能不是最新版）\n   - 在项目所在盘符下的（如 e:\\、d:\\）\n\n3. 定位后记下目录路径为 {CLI_DIR}，验证：ls {CLI_DIR}/run.py 确认存在\n4. 后续所有调用统一：先 cd {CLI_DIR}，再 python run.py <action> ...\n```\n\n## 二、统一调用方式\n\n```powershell\ncd {CLI_DIR}\npython run.py <action> <project_root> [params] [--save]\n```\n\n**project_root 规则**：\n- 用**当前工作目录**（AI 上下文已知）；不确定时先 `Get-Location` 确认\n- 路径用**正斜杠**（`e:/Mytest_skill`），避免反斜杠转义问题\n- 路径含空格时用双引号包裹：`python run.py scan \"e:/My Project\"`\n\n## 三、命令速查表\n\n| action | 命令 | 产物（--save） | 阶段 |\n|--------|------|---------------|------|\n| ping | `python run.py ping <root>` | — | MED_SCOPE |\n| scan | `python run.py scan <root> --save` | `.medic/_medic_inventory.json` | MED_ROSTER |\n| analyze | `python run.py analyze <root> <skill>` | —（skill 支持 绝对路径 / 相对路径 / 目录名） | MED_ROSTER |\n| categorize | `python run.py categorize <root> --save` | `.medic/_medic_classify.json` | MED_SORT |\n| conflict | `python run.py conflict <root> --save` | `.medic/_medic_conflicts.json` | MED_CONFLICT |\n| score | `python run.py score <root> <skill> --save` | `.medic/_medic_scores.json`（累积） | MED_VITAL |\n| prescribe | `python run.py prescribe <root> --save` | `.medic/_medic_rx.json` | MED_RX |\n| report | `python run.py report <root>` | `.medic/skill_audit_report_*.md` + inventory | MED_DEBRIEF |\n| diff | `python run.py diff <root> <last_inventory>` | — | 增量模式 |\n| cleanup | `python run.py cleanup <root>` | 清理本次会话中间产物（classify/conflicts/scores/rx；**保留 inventory 与历史报告**） | MED_CLOSE |\n\n> **中间产物必须 --save 落盘**：每个阶段结束后，确认对应 `_medic_*.json` 已生成；\n> 产物缺失即阻断，禁止跳过落盘直接进入下一阶段。\n\n## 四、禁止事项（违规即流程违规）\n\n- [禁止] 使用 `python -c \"...\"` / `python.exe -c \"...\"` 执行内联 Python（PowerShell 引号嵌套会 ParserError）\n- [禁止] CLI 失败后放弃 CLI 自行写代码替代（按下方失败处理流程）\n- [禁止] 在 PowerShell 中对路径/参数做手工转义拼接（用正斜杠 + 引号即可）\n- [禁止] 用终端 `write` 命令写文件（那是 Write-Output 别名只打印不落盘；写 JSON 用 IDE Write 工具）\n\n## 五、CLI 失败处理流程（强制）\n\n```markdown\n[P0 阻断] CLI 命令失败（ParserError/路径错误/FileNotFound）时，AI 不得自行写 Python 代码替代！\n\n[正确] 失败处理流程：\n1. 确认 {CLI_DIR} 路径是否正确（重新 Glob 搜索 run.py）\n2. 确认是否先 cd 到了 {CLI_DIR}\n3. 检查 project_root 是否用了正斜杠且引号包裹（如 \"e:/My Project\"）\n4. 重试命令\n5. 仍失败：将需要执行的 Python 逻辑写入 .py 脚本文件再执行（而非 -c 内联）\n\n[错误] 失败后的错误做法：\n- ❌ 放弃 CLI，直接用 python -c \"import json; ...\"\n- ❌ 说\"CLI 不能用，所以我用对话能力直接分析\"\n- ❌ 跳过 --save 改用对话转述代替中间产物\n```\n\n## 六、与 AI 的分工（边界）\n\n| CLI 工具层 | AI（LLM） |\n|-----------|----------|\n| 静态计算：扫描/关键词/引用比对/token/信号提取 | 语义判断：功能域最终分类、冲突证据确认、八维打分、处方精确指引 |\n| 确定性、可复现、全量一次跑完 | 分批精析、深度洞察、历史对比、报告回填 |\n| 产物落盘（--save） | 接力棒维护（AI 用 Write 工具写 `.medic/_medic_baton.json`） |\n\n> 一句话：**CLI 管\"数得出来的\"，AI 管\"要理解的\"。**\n> CLI 失败不归因于\"AI 能力不足\"，走失败处理流程即可。\n\nFile v0.1.0:references/conflict-catalog.md\n\n# 冲突类型目录 — C1~C5\n\n## C1：同质冲突（功能重复）\n\n两个及以上 Skill 功能域高度重叠，各自维护成本浪费且触发路由随机。\n\n**检测信号**：\n- description/功能点相似度 ≥ 阈值\n- 目录结构、阶段名、产出物命名高度雷同\n\n**示例**：\n- 同功能的两个风格定制 Skill（都是\"AI 对话风格配置\"）\n- 同功能的两个游戏设计 Skill（都是\"游戏 GDD 设计\"）\n\n## C2：意图抢占（误触发）\n\n同一用户请求可命中多个 Skill，路由不确定。\n\n**检测信号**：\n- description 触发面重叠（关键词交集大）\n- 缺少\"何时不要调用\"反触发说明\n\n**示例**：\n- 多个浏览器探索类 Skill（\"探索系统/扫描页面\"类请求容易误触发）\n\n## C3：上下文膨胀（Token 黑洞）\n\nSkill 常驻加载体积过大、无分层加载，挂载后显著抬高每轮成本、稀释整体能力。\n\n**检测信号**：\n- SKILL.md + 常驻引用文件字数/估算 token 超阈值\n- 无 chunk 分层\n- 正文含大量通用常识\n\n## C4：依赖/引用冲突\n\n共享数据、配置、接力棒，一方改动静默破坏另一方。\n\n**检测信号**：\n- 引用同一 config.json / 同一 DB 表 / 同一 baton 路径 / 同一环境变量\n- 版本约定不一致\n\n**示例**：\n- 多个 Skill 共享同一接力棒目录与同一数据库（一方改表结构静默影响其他方）\n\n## C5：资源竞争\n\n同一物理/逻辑资源被多个 Skill 抢占，无法并行。\n\n**检测信号**：\n- 都声明浏览器/CDP\n- 同一 MCP 工具\n- 同一库表写入权\n- 同一端口\n\nFile v0.1.0:references/examples.md\n\n# 命令输出示例（references/examples.md）\n\n> 以下示例来自真实环境（`project_root` 下含多个 Skill）的 CLI 输出，供快速对照：看到类似的输出即说明工具层工作正常。\n> 格式：**场景 → 命令 → 输出片段**。输出会因环境 Skill 不同而不同，重点是**结构**一致。\n\n---\n\n## 1. ping —— 工具自检\n\n**场景**：执行前确认环境可读、Python 可用。\n\n**命令**：`python run.py ping <project_root>`\n\n**输出片段**：\n```json\n{\n  \"project_root_exists\": true,\n  \"skills_dirs_found\": 1,\n  \"python_version\": \"3.13.x\",\n  \"all_ok\": true\n}\n```\n\n---\n\n## 2. scan —— 全量清单\n\n**场景**：盘点所有 Skill，产出清单 JSON（含同名去重与重复安装记录）。\n\n**命令**：`python run.py scan <project_root> --save`\n\n**输出片段**（每项关键字段）：\n```json\n{\n  \"name\": \"conspect\",\n  \"path\": \"C:\\\\Users\\\\...\\\\skills\\\\conspect\",\n  \"scope\": \"global\",\n  \"description\": \"全自动多源数据智能分析与商务报表渲染工具。…\",\n  \"tokens_est\": 6341,\n  \"ref_files_count\": 3,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true,\n  \"status\": \"active\"\n}\n```\n\n---\n\n## 3. analyze —— 单 Skill 静态指标\n\n**场景**：查单个 Skill 的静态指标（支持 绝对路径 / 相对路径 / 目录名 三种入参）。\n\n**命令**：`python run.py analyze <project_root> <skill>`\n\n**输出片段**：\n```json\n{\n  \"name\": \"conspect\",\n  \"status\": \"active\",\n  \"chars\": 17341,\n  \"tokens_est\": 6341,\n  \"always_load_tokens_est\": 6534,\n  \"has_changelog\": true,\n  \"has_readme\": true,\n  \"has_agents\": true,\n  \"has_chunks\": true,\n  \"has_tools\": true,\n  \"has_protocols\": true\n}\n```\n\n---\n\n## 4. conflict —— 五类冲突候选\n\n**场景**：静态冲突检测，产出 C1~C5 候选（供 03-conflict-agent 复核证据、判定严重度）。\n\n**命令**：`python run.py conflict <project_root> --save`\n\n**输出片段**：\n```json\n{\n  \"C1\": [\n    {\n      \"skill_a\": \"tencent-docs\",\n      \"skill_b\": \"tencent-saas-docs\",\n      \"type\": \"C1\",\n      \"jaccard\": 0.848,\n      \"overlap_count\": 84,\n      \"keywords\": [\"文档\", \"在线\", \"新建\"],\n      \"severity\": \"candidate\"\n    }\n  ],\n  \"C2\": [\n    {\n      \"skill_a\": \"agent-browser\",\n      \"skill_b\": \"xbrowser\",\n      \"type\": \"C2\",\n      \"overlap_count\": 6,\n      \"keywords\": [\"浏览器\", \"自动化\"],\n      \"severity\": \"high\"\n    }\n  ]\n}\n```\n\n---\n\n## 5. score —— 单 Skill 八维静态信号\n\n**场景**：输出一个 Skill 的八维静态证据信号（供 04-scorer-agent 打分时定位证据）。\n\n**命令**：`python run.py score <project_root> <skill> --save`\n\n**输出片段**：\n```json\n{\n  \"name\": \"skill-medic\",\n  \"status\": \"active\",\n  \"desc_len\": 196,\n  \"desc_has_antitrigger\": true,\n  \"dim1_trigger\": [\"何时调用\", \"应触发\", \"不要调用\"],\n  \"dim2_flow\": [\"阶段\", \"当\"],\n  \"dim3_exception\": [\"信息不足\", \"失败\", \"重试\", \"熔断\"],\n  \"dim4_output\": [\"自检\", \"中间产物\"],\n  \"dim5_boundary\": {\"hits\": [\"分层\", \"chunk\"], \"has_chunks\": true},\n  \"dim6_value_weak\": {\"has_refs\": true, \"tokens_est\": 1757},\n  \"dim7_engineering\": {\"has_tools\": true, \"has_readme\": true},\n  \"dim8_maintain\": {\"has_changelog\": true}\n}\n```\n\n---\n\n## 6. prescribe —— 规则处方候选\n\n**场景**：基于冲突矩阵 + 静态维护信号生成规则处方候选（供 06-synthesizer 完善）。\n\n**命令**：`python run.py prescribe <project_root> --save`\n\n**输出片段**：\n```json\n[\n  {\n    \"type\": \"add-antitrigger\",\n    \"severity\": \"high\",\n    \"targets\": [\"agent-browser\", \"xbrowser\"],\n    \"conflict\": \"C2\",\n    \"rule\": \"意图抢占：为双方 description 补充'何时不要调用'反触发说明，降低误触发\",\n    \"llm_todo\": \"给出各 Skill description 的改写建议（精确措辞）\"\n  }\n]\n```\n\n---\n\n## 7. report —— 报告落盘\n\n**场景**：装配报告静态骨架并落盘（总是落盘，无需 `--save`；结论区由 AI 在 MED_DEBRIEF 回填）。\n\n**命令**：`python run.py report <project_root>`\n\n**输出片段**：\n```json\n{\n  \"report_path\": \".\\\\medic\\\\skill_audit_report_20260806_134509.md\",\n  \"inventory_path\": \".\\\\medic\\\\_medic_inventory.json\",\n  \"skills_count\": 11,\n  \"conflict_candidates\": 39,\n  \"prescriptions\": 45\n}\n```\n\n---\n\n## 8. diff —— 增量差异\n\n**场景**：与上次清单对比，输出新增/变更/删除的 Skill。\n\n**命令**：`python run.py diff <project_root> <last_inventory>`\n\n**输出片段**：\n```json\n{\n  \"added\": [\"xbrowser\", \"kdocs\"],\n  \"removed\": [\"old-skill\"],\n  \"changed\": [\"conspect\"]\n}\n```\n\n---\n\n> 各命令的失败处理、定位方式与禁止项见 `references/cli-guide.md`。\n\nFile v0.1.0:references/faq-deep.md\n\n# FAQ 深度问答\n\n## Q1：本 Skill 和单体质量自检类 Skill 有什么区别？\n\n**A**：单体质量自检类 Skill 检查 **1 个 Skill** 内部质量（如五维达标自检）。本 Skill 是 **Skill 健康检查**，针对 **全部 Skill** 做清单、分类、冲突检测、评分和处方。简单说：单体自检是\"检查一个 Skill 写得好不好\"，本 Skill 是\"检查你装的所有 Skill 之间有没有重复、冲突，整体靠不靠谱\"。\n\n## Q2：评分标准会过时吗？\n\n**A**：评分标准版本化维护。内置基线 `8-axis-v0.1`，当用户要求、标准过期 >30 天或首次使用时，触发联网更新。更新只升级标准版本，不影响当前评分，保障可复现。\n\n## Q3：50+ 个 Skill 会不会撑爆上下文？\n\n**A**：不会。本 Skill 采用\"粗扫全量 + 分组分批精析\"策略：粗扫阶段只读 frontmatter 和目录结构，不读正文；精析阶段按功能域分组，每批 ≤3 个 Skill，每批正文预算 ≤10k token。50+ Skill 也能一次跑完。\n\n## Q4：冲突检测准确吗？\n\n**A**：分两层。第一层是静态规则引擎（基于 Jaccard 相似度、引用路径比对），确定性计算，全量跑完不耗 LLM 上下文。第二层是 LLM 语义确认，读取正文确认证据、判定严重度。高严重度冲突必须有 ≥2 条独立证据。AI 还可以补充规则未覆盖的发现。\n\n## Q5：本 Skill 会不会误判导致用户误删 Skill？\n\n**A**：本 Skill **只产出处方、不代执行**。所有\"合并/移除\"建议都含精确指引，但改动需要用户确认后手动执行。处方进入回访队列，下次审计会核对执行情况。\n\n## Q6：增量审计怎么用？\n\n**A**：用户显式要求\"增量审计\"时，对比上次清单（接力棒记录的 `last_inventory`），只精析新增或变更的 Skill，其余沿用上次评分并标注\"沿用\"。历史对比段会输出上期处方执行核对。\n\n## Q7：本 Skill 自己会不会膨胀？\n\n**A**：本 Skill 自身采用了强制分块加载（SKILL.md 只保留触发契约 + 路由表，所有细则按阶段拆分到 chunk），从机制上杜绝 C3 上下文膨胀。并且定期用自己审自己（自举），确保自己达标。\n\n## Q8：扫描到全局 Skill 时会不会越界？\n\n**A**：不会。本 Skill 只读 Skill 目录的 SKILL.md 和目录结构，不读取用户业务数据、不碰被检 Skill 的业务表。报告中的敏感信息（密码、密钥）只记录字段名不记录值。\n\n## Q9：编码异常怎么办？\n\n**A**：读取顺序为 UTF-8 → GBK → 失败判定异常。异常 Skill 归入异常清单，**不阻断全流程**，跳过评分在报告中标注\"未评分（异常）\"。\n\n## Q10：断点续跑怎么工作？\n\n**A**：接力棒 `_medic_baton.json` 记录每个阶段的完成状态。中断后再次调用，读接力棒跳过已完成阶段，从第一个 ⬜ 阶段继续。每批精析结果立即 append 写入报告文件，不会丢失已完成的批次。\n\n## Q11：这个 Skill 能用在哪些真实场景？\n\n**A**（国内真实场景示例）：\n- **电商团队**：运营装了一堆\"商品标题优化\"类 Skill，检查后发现 3 个功能重复，处方建议只留 1 个，团队每月省下大量维护时间\n- **微信小程序开发者**：装了 5 个页面扫描类 Skill 互相抢占触发，检查后给每个补上\"何时不要调用\"，路由不再乱跳\n- **企业微信客服**：自建了一个含数据库的\"工单归档\" Skill，检查发现它和\"客服话术生成\"抢同一个上下文，处方建议划清边界\n- **个人开发者**：装了 50+ 个 Skill 越来越卡，检查定位到 3 个\"常驻加载 3 万 token\"的膨胀 Skill，瘦身后每轮对话明显变快\n\nFile v0.1.0:references/rubric-detail.md\n\n# 评分细则参考 — 8-axis-v0.1\n\n## 八维权重\n\n| # | 维度 | 权重 | 满分 |\n|---|------|:---:|:---:|\n| 1 | 触发契约 | 15 | 15 |\n| 2 | 流程机制 | 15 | 15 |\n| 3 | 异常与熔断 | 12 | 12 |\n| 4 | 产出控制 | 13 | 13 |\n| 5 | 边界与上下文 | 12 | 12 |\n| 6 | 内容价值密度 | 13 | 13 |\n| 7 | 工程配套 | 10 | 10 |\n| 8 | 维护健康度 | 10 | 10 |\n| **合计** | | **100** | **100** |\n\n## 每维详细说明\n\n### 1. 触发契约（15 分）\n- description 同时含\"做什么 + 何时调用 + 何时不调用\"\n- 用词具体非空话，参考 ClaudSkills 描述深度 ≥ 200 字符\n- 扣分：description < 40 字；只有能力罗列无触发条件；无反触发词\n\n### 2. 流程机制（15 分）\n- 正文为有序 Phase/Step 节点，每节点有输入/产出/禁止跳步\n- 有分支判断逻辑\n- 扣分：大段人设形容词；无编号步骤；单一路径无分支\n\n### 3. 异常与熔断（12 分）\n- 缺信息→停止并追问，禁止编造\n- 失败有 fallback 路径\n- 有最大迭代轮次限制\n- 扣分：缺材料直接脑补；无任何失败处理说明\n\n### 4. 产出控制（13 分）\n- 有中间产物（非一步输出最终大文档）\n- 交付前逐条 checklist 自检\n- 输出有验收标准\n- 扣分：执行完直接输出结束，无自检步骤\n\n### 5. 边界与上下文（12 分）\n- 明确可读范围/上限阈值/超限拒绝\n- 有分层加载（chunk/渐进式披露）\n- 扣分：无任何边界；单文件超长；重复通用常识堆砌\n\n### 6. 内容价值密度（13 分）\n- 核心是业务方法论与判断规则\n- 有反模式说明\n- 示例真实\n- 扣分：只有输出模板；常识性内容占大头；示例是占位符\n\n### 7. 工程配套（10 分）\n- 有可执行工具层/脚本、配置、README、版本、测试或自检手段\n- 判定原则：功能不涉及数据/外部工具时纯提示词不扣分；功能需要数据处理或外部工具却无工具层 → 该维直接 0 分\n\n### 8. 维护健康度（10 分）\n- 有 CHANGELOG/版本号\n- 有更新或修复痕迹\n- README 与实现一致\n- 扣分：只有 zip 备份无活动目录；README 与 SKILL.md 不一致\n\nFile v0.1.0:references/score-keys.md\n\n# 评分证据定位指南 — score-keys\n\n> 供 04-scorer-agent 在 MED_VITAL 阶段给每维打分时使用：\n> 每条评分必须有**可回溯证据**（文件路径 + 行号/章节 + 原文摘录），禁止无依据打分。\n\n## 证据格式（要素固定，表述自由）\n\n每条证据形如：\n`<文件> L<行号> <章节>：<原文摘录> → <它支撑哪一维的什么判断>`\n\n示例：\n- `SKILL.md L11-31 触发契约：description 含\"何时调用+何时不要调用\" → 维度1 触发契约，反触发纪律成立`\n- `SKILL.chunks/chunk-05-score.md §评分流程：有逐条自检 → 维度4 产出控制，checklist 闭环成立`\n\n## 各维度的证据来源（默认检索范围）\n\n| 维度 | 优先证据位置 |\n|------|-------------|\n| 1 触发契约 | SKILL.md frontmatter description + 触发契约章节 |\n| 2 流程机制 | SKILL.md 状态机/阶段表 + protocols/phase-protocol.md |\n| 3 异常与熔断 | SKILL.md 熔断/异常段 + protocols/baton-protocol.md |\n| 4 产出控制 | SKILL.md 自检/验收段 + agents/05-auditor-agent.md 阻断码 |\n| 5 边界与上下文 | SKILL.chunks/chunk-index.yaml + 常驻 token 估算 |\n| 6 内容价值密度 | references/（方法论/反模式/FAQ）+ SKILL.chunks 正文 |\n| 7 工程配套 | medic_tools/、1-manifest/、README、protocols/ 存在性 |\n| 8 维护健康度 | CHANGELOG.md 版本轨迹 + README 与实现一致性 |\n\n## 扣分定位要求（对应 BLOCK-C 审核）\n\n- 任何维度给分 ≤4/满分时，**必须**给出扣分定位（文件 + 章节/行号 + 缺失或不足的具体内容）\n- 无扣分定位的 ≤4 分 → 被 05-auditor 打回（BLOCK-C）\n\n## 信号 ≠ 证据\n\n`run.py score` 输出的关键词命中只是**候选信号**；证据必须是\"从文件里实际读到、能支撑该维判断\"的内容。\n信号为空可作为扣分线索，但也要指明具体缺什么（如\"无自检相关章节\"）。\n\nFile v0.1.0:agents/00-master-controller.md\n\n# 00-master-controller：主控路由\n\n## 职责\n\n读接力棒 `_medic_baton.json` → 判断当前阶段 → 路由到对应子 Agent → 验证产出 → 更新接力棒。\n\n## 启动流程\n\n1. 读 `.medic/_medic_baton.json`\n2. 检查 `is_running` 和 `state`：\n   - **接力棒不存在**（首次执行）→ **初始化**：按 `protocols/baton-protocol.md` 结构创建，\n     写 `meta`（skill/session_id/created_at/scan_scope/rubric_version，is_running=1, run_count=1）、\n     `progress`（8 阶段全 ⬜）、`batch`/`history`/`artifacts`/`rework` 初始值；\n     用 IDE Write 工具落盘到 `.medic/_medic_baton.json`（目录不存在则先创建）\n   - `is_running=0`（上次已 CLOSE）→ 新会话，重置接力棒（run_count+1、progress 全 ⬜、history 记上次）\n   - `is_running=1`（上次中断）→ **断点续跑**：跳过 ✅ 阶段，从第一个 ⬜ 阶段继续\n3. 按阶段表路由到对应子 Agent\n4. 子 Agent 完成后验证产出（阶段闸门，见 `protocols/phase-protocol.md`）\n5. 更新接力棒进度（单点写：只有 00-master 更新）\n\n## 阶段路由表\n\n| 阶段 | 子 Agent | 验证产出 |\n|------|---------|---------|\n| MED_SCOPE | 01-inventory-agent | 扫描范围声明 |\n| MED_ROSTER | 01-inventory-agent | `_medic_inventory.json` |\n| MED_SORT | 02-classifier-agent | 分类表 |\n| MED_CONFLICT | 03-conflict-agent | `_medic_conflicts.json` |\n| MED_VITAL | 04-scorer-agent | `_medic_scores.json` |\n| MED_RX | 06-synthesizer-agent | 处方清单 |\n| MED_DEBRIEF | 07-reporter-agent | 报告文件 |\n| MED_CLOSE | 07-reporter-agent | 完成摘要 |\n\n## 禁止事项\n\n- 禁止代子 Agent 产出内容\n- 禁止直接修改接力棒以外的本 Skill 产物\n- 禁止在非路由阶段读取子 Agent 中间推理过程\n\nFile v0.1.0:agents/01-inventory-agent.md\n\n# 01-inventory-agent：清单盘点\n\n## 职责\n\n执行 MED_SCOPE + MED_ROSTER 阶段的轻量粗扫工作。\n\n## 执行规则\n\n### MED_SCOPE\n1. **第一数据源 = IDE 注入的 available_skills 清单**（AI 上下文中的 name + description），\n   顺着 IDE 引导走，不自己猜路径\n2. 文件系统扫描（`run.py scan`）多编辑器兼容：workspace 候选目录（.trae/.claude/.cursor/.codex/skills 等）\n   + 全局候选目录（~/.trae-cn/skills 等）\n3. 任何目录探测不到 → 记录\"该范围未覆盖（原因）\"，**不阻断**，以 available_skills 为准\n4. zip 备份标注为\"备份归档\"\n\n### MED_ROSTER（铁律：禁止读 SKILL.md 正文全文）\n1. 读取 frontmatter 字段（name / description / version / tags）\n2. 收集目录结构标志\n3. 调用 `medic_tools/run.py scan <root> --save`（CLI 约定见 references/cli-guide.md），落盘 `.medic/_medic_inventory.json`\n4. 编码异常 → 置 `status=broken`，跳过评分\n5. **合并 available_skills 与脚本扫描结果**：脚本扫到但清单没有 → 标\"仅文件系统可见\"；\n   清单有但脚本没扫到 → 以 IDE 为准补录\n\n### 分析深度边界（铁律）\n只做抽象层：识别类型、看关系、查体积、提取资源依赖**字段名/路径**。\n**不读**业务数据/服务器配置/账号配置内容，**不分析**被检 Skill 的业务逻辑，\n**不逐行**审代码——那是单体质量自检的活，深挖会超上下文且偏离定位。\n\n## 产出\n\n`.medic/_medic_inventory.json`（全量清单，含 source / scope；目录自动创建）\n\n## 禁止事项\n\n- 禁止在扫描阶段做分类/打分判断\n- 禁止读 SKILL.md 正文全文\n- 禁止读 config 值 / 业务数据 / 账号配置内容","readmeExcerpt":"Skill: skill-medic Owner: songzhou666 Summary: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。 Tags: latest:0.1.2 Version history: v0.1.2 | 2026-08-08T08:57:38.306Z | auto - 补充专项模式、增量审计、范围限定等执行路径的具体说明，明确链路裁剪与能力承诺。 - 报告输出阶段（MED_DEBRIEF）新增 S3/S4 档功能域附录说明。 - 部分参数如“只看 workspace 的 skill”细化对应 CLI 调用（run.","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"MED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE"},{"language":"bash","snippet":"# 工具自检\npython .trae/skills/skill-medic/medic_tools/run.py ping <project_root>\n\n# 扫描所有 Skill（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py scan <project_root> --save\n\n# 分析单个 Skill（<skill_name> 换成实际 Skill 名）\npython .trae/skills/skill-medic/medic_tools/run.py analyze <project_root> <skill_name>\n\n# 静态冲突候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py conflict <project_root> --save\n\n# 八维评分静态证据信号（供 LLM 打分；--save 累积落盘）\npython .trae/skills/skill-medic/medic_tools/run.py score <project_root> <skill_name> --save\n\n# 规则处方候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py prescribe <project_root> --save\n\n# 生成报告\npython .trae/skills/skill-medic/medic_tools/run.py report <project_root>"},{"language":"text","snippet":"1. 用 Glob 全局搜索（最可靠）：\n   glob **/skill-medic/medic_tools/run.py\n\n2. 多个结果时优先选择：\n   - 不在 c:\\Users\\{user}\\.trae-cn\\ 路径下的（系统目录可能不是最新版）\n   - 在项目所在盘符下的（如 e:\\、d:\\）\n\n3. 定位后记下目录路径为 {CLI_DIR}，验证：ls {CLI_DIR}/run.py 确认存在\n4. 后续所有调用统一：先 cd {CLI_DIR}，再 python run.py <action> ..."},{"language":"powershell","snippet":"cd {CLI_DIR}\npython run.py <action> <project_root> [params] [--save]"},{"language":"markdown","snippet":"[P0 阻断] CLI 命令失败（ParserError/路径错误/FileNotFound）时，AI 不得自行写 Python 代码替代！\n\n[正确] 失败处理流程：\n1. 确认 {CLI_DIR} 路径是否正确（重新 Glob 搜索 run.py）\n2. 确认是否先 cd 到了 {CLI_DIR}\n3. 检查 project_root 是否用了正斜杠且引号包裹（如 \"e:/My Project\"）\n4. 重试命令\n5. 仍失败：将需要执行的 Python 逻辑写入 .py 脚本文件再执行（而非 -c 内联）\n\n[错误] 失败后的错误做法：\n- ❌ 放弃 CLI，直接用 python -c \"import json; ...\"\n- ❌ 说\"CLI 不能用，所以我用对话能力直接分析\"\n- ❌ 跳过 --save 改用对话转述代替中间产物"},{"language":"json","snippet":"{\n  \"project_root_exists\": true,\n  \"skills_dirs_found\": 1,\n  \"python_version\": \"3.13.x\",\n  \"all_ok\": true\n}"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: skill-medic\ndisplay_name: SkillMedic — Skill 健康检查与冲突检测\nversion: 0.4.18\ndescription: 检查你安装的所有 AI Skill：列出完整清单、找出内容重复或互相冲突的 Skill、评估每个是否成熟可靠，并告诉你怎么处理（放心用/合并/删除）。当用户问\"我有哪些 skill / 哪些重复了 / skill 有没有问题 / 该留哪个\"时调用。创建新 Skill、单体质量自检、C 盘清理、代码审查或安全扫描、纯知识问答时不要调用。\ntags: [skill-engineering, audit, conflict-detection, scoring, inventory]\nlanguage: zh-CN\n---\n\n# SkillMedic — Skill 健康检查与冲突检测\n\n> 定位：检查你安装的全部 Skill —— 列出清单、找出重复和冲突、评估成熟度、给出处理建议\n>\n> 一句话：**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n---\n\n## 触发契约\n\n### 何时调用（应触发）\n\n当用户表达以下任一意图时，应激活本 Skill：\n\n- **盘点类**：\"检查一下我有哪些 skill\" / \"我装了什么 skill\" / \"列出所有 skill\"\n- **冲突检测类**：\"哪些 skill 重复了\" / \"skill 之间有没有冲突\" / \"会不会有两个 skill 抢着响应\" / \"谁和谁功能重叠\"\n- **质量评估类**：\"我的 skill 都靠谱吗\" / \"给所有 skill 打个分\" / \"哪个 skill 不好用\"\n- **综合处方类**：\"该保留哪些 skill\" / \"哪些 skill 该删\" / \"skill 优化建议\"\n- **增量审计类**：\"对比上次和这次的检查结果\" / \"增量检查 skill\"\n- **范围限定类**：\"只看 workspace 的 skill\" / \"检查全局 skill\"\n\n### 何时不要调用（反触发）\n\n以下情况**不应激活**本 Skill，应路由到其他 Skill：\n\n- 用户要**创建新 Skill** → 路由到 Skill 创建类 Skill\n- 用户要检查**单个 Skill 的质量达标情况** → 路由到单体质量自检类 Skill\n- 用户问**\"skill 这个词是什么意思\"** 等纯知识问答 → 不触发本 Skill\n- 用户进行**C 盘清理** → 路由到系统维护类 Skill\n- 用户进行**代码审查/安全扫描/调试** → 路由到平台对应的质量保障类 Skill\n- 用户要求**具体的业务功能**（如\"帮我扫描这个页面\"）→ 路由到对应业务 Skill\n\n---\n\n## 状态机总览\n\n```\nMED_SCOPE → MED_ROSTER → MED_SORT → MED_CONFLICT → MED_VITAL → MED_RX → MED_DEBRIEF → MED_CLOSE\n```\n\n| 阶段 | 名称 | 职责 | 产出 |\n|------|------|------|------|\n| MED_SCOPE | 范围扫描 | 确定扫描范围，检查目录可读性 | 扫描范围声明 |\n| MED_ROSTER | 清单盘点（轻量粗扫） | 只读 frontmatter + 目录树 + 静态指标，**禁止读正文全文** | Skill 清单 JSON |\n| MED_SORT | 三维分类 | 按功能域/交互模型/生命周期状态分类 | 分类表 |\n| MED_CONFLICT | 冲突检测 | 全量静态比对 + 按分组 LLM 确认证据 | 冲突矩阵 + 证据 |\n| MED_VITAL | 评分 | 按分组批处理八维打分 | 评分表（含证据） |\n| MED_RX | 综合研判 | 冲突矩阵 × 评分 → 处方建议 | 处方清单 |\n| MED_DEBRIEF | 报告输出 | 生成并落盘检查报告（S3/S4 档含各功能域附录） | 检查报告 + 附录 |\n| MED_CLOSE | 完成 | 汇总统计、清理临时文件 | 完成摘要 |\n\n---\n\n## 路由表（阶段 → Chunk）\n\n| 当前阶段 | 加载的 Chunk |\n|----------|-------------|\n| 初始化（刚激活） | 01 |\n| MED_SCOPE / MED_ROSTER | 01, 02 |\n| MED_SORT | 01, 03 |\n| MED_CONFLICT | 01, 04, 08 |\n| MED_VITAL | 01, 05, 08 |\n| MED_RX | 01, 06 |\n| MED_DEBRIEF | 01, 07 |\n| MED_CLOSE | 01（复用 07-reporter-agent，无独立 chunk） |\n| 任意子 Agent 激活 | 01, 09（+ 对应阶段 chunk） |\n\n> 详细执行细则见各 Chunk 文件。本文件仅保留触发契约 + 路由总览，避免膨胀。\n\n---\n\n## 深度参考（references/，渐进式披露第 3 层，按需查阅）\n\n| 文件 | 用途 |\n|------|------|\n| `references/rubric-detail.md` | 八维评分细则（每维满分标准与扣分证据） |\n| `references/score-keys.md` | 八维静态信号关键词表 |\n| `references/conflict-catalog.md` | 五类冲突示例目录 |\n| `references/anti-patterns.md` | 反模式清单（症状 / 危害 / 正确做法） |\n| `references/faq-deep.md` | 深度 FAQ（11 题：边缘场景 / 工具兼容 / 安全合规） |\n| `references/examples.md` | 各命令真实输出示例（场景 → 命令 → 输出片段） |\n| `references/cli-guide.md` | CLI 工具层调用约定（定位 / 失败处理 / 禁止项） |\n\n## 接力棒文件\n\n- 路径：`.medic/_medic_baton.json`（本 Skill 专属目录，自动创建）\n- 协议详见 `protocols/baton-protocol.md`\n\n## CLI 工具层（强制走 CLI，不裸跑代码）\n\n- 所有静态分析统一通过 `medic_tools/run.py` 执行（定位/调用/失败处理详见 `references/cli-guide.md`）\n- 中间产物一律 `--save` 落盘到 `.medic/`；AI **禁止** `python -c` 内联、禁止绕过 CLI 自行分析\n\n---\n\n## 约束分层原则\n\n| 层 | 覆盖范围 | 约束强度 |\n|----|----------|---------|\n"},{"path":"README.md","content":"# SkillMedic — Skill 健康检查与冲突检测\n\n## 定位\n\n检查你安装的全部 AI Skill（技能）：列出清单、发现内容重复或互相冲突的 Skill、评估每个 Skill 是否成熟可靠，并告诉你怎么处理。\n\n**你把 Skill 装了一堆，它帮你查清楚哪几个好用、哪几个重复、哪几个会打架、该留谁。**\n\n## 功能\n\n- **全量清单**：扫描 workspace + 全局 Skill，产出统一清单\n- **三维分类**：功能域 / 交互模型 / 生命周期状态\n- **五类冲突检测**：同质（C1）/ 意图抢占（C2）/ 上下文膨胀（C3）/ 依赖（C4）/ 资源竞争（C5）\n- **八维成熟度评分**：0-100 分，L0~L3 定级（放心用 / 基本能用 / 不太成熟 / 不建议用；**评级 = 可靠性/完成度，不是安全性**）\n- **综合处方**：保留 / 合并 / 整改 / 移除 建议\n- **检查报告**：结构化 Markdown 报告，含\"对日常使用的影响\"与\"现在建议你做什么\"\n\n## 快速开始\n\n```bash\n# 工具自检\npython .trae/skills/skill-medic/medic_tools/run.py ping <project_root>\n\n# 扫描所有 Skill（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py scan <project_root> --save\n\n# 分析单个 Skill（<skill_name> 换成实际 Skill 名）\npython .trae/skills/skill-medic/medic_tools/run.py analyze <project_root> <skill_name>\n\n# 静态冲突候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py conflict <project_root> --save\n\n# 八维评分静态证据信号（供 LLM 打分；--save 累积落盘）\npython .trae/skills/skill-medic/medic_tools/run.py score <project_root> <skill_name> --save\n\n# 规则处方候选（--save 落盘中间产物到 .medic/）\npython .trae/skills/skill-medic/medic_tools/run.py prescribe <project_root> --save\n\n# 生成报告\npython .trae/skills/skill-medic/medic_tools/run.py report <project_root>\n```\n\n## 版本\n\nv0.4.18 — 四档规模分级策略（S1 精细≤20 / S2 标准21~80 / S3 摘要81~300 / S4 极限>300：候选降噪、摘要报告+每域附录、处方聚合按档自动启用，少则精多则省）；v0.4.17 候选降噪与摘要模式\n\n## 依赖\n\n- Python 3.10+\n- 标准库（无需第三方依赖）"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn799bh9g8eq5n8nxav36av3d5879qr1\",\n  \"slug\": \"skill-medic\",\n  \"version\": \"0.1.2\",\n  \"publishedAt\": 1786179458306\n}"},{"path":"references/anti-patterns.md","content":"# 反模式清单\n\n## 反模式 1：纯角色扮演，无流程控制\n\n**症状**：SKILL.md 通篇是\"你是一位 XX 专家，你要专业、严谨、全面\"这类空泛道德式约束，没有编号步骤、没有阶段节点。\n\n**危害**：把任务完全交给模型自由脑补，没有强制执行顺序。换一个场景就崩。\n\n**正确做法**：任务拆成有序 Phase/Step 节点，每个节点有唯一目标和输入/产出。\n\n## 反模式 2：只有输出模板，没有业务方法论\n\n**症状**：Skill 只规定了输出长什么样（表格、报告格式），但没有说明如何得到这份结果。\n\n**危害**：遇到模糊输入，模型直接编造数据填进模板。\n\n**正确做法**：把信息抽取规则、冲突取舍标准、模糊点标记方法写进指令，模板只是最后一步的外壳。\n\n## 反模式 3：缺信息直接脑补\n\n**症状**：用户输入不完整时，Skill 不追问而直接编造缺失信息补齐。\n\n**危害**：产出结果不可信，风险全部转移给用户。\n\n**正确做法**：信息不足时停止执行，向用户明确列出还缺哪些材料，不编造。\n\n## 反模式 4：无异常处理，单一路径\n\n**症状**：Skill 只有一条理想路径，没有分支判断、没有 fallback。\n\n**危害**：遇到异常输入（坏文件、编码错误、超长文档），直接崩溃或输出错误结果。\n\n**正确做法**：设计分支逻辑：满足条件 A 走路径 A，条件 B 走路径 B；失败有回退方案。\n\n## 反模式 5：无边界约束，上下文膨胀\n\n**症状**：Skill 不限定可读文件范围、最大处理页数，常驻加载数万 token。\n\n**危害**：随 Skill 数量增加，每轮对话 token 成本越来越高，整体能力被稀释。\n\n**正确做法**：明确阈值、分层加载、超限拒绝。\n\n## 反模式 6：无自检直接交付\n\n**症状**：执行完直接输出结果，没有任何自查步骤。\n\n**危害**：模型幻觉、遗漏、错算直接流入最终产物。\n\n**正确做法**：交付前强制 checklist 自检：是否遗漏信息、是否编造内容、格式是否完整。\n\n## 反模式 7：无触发契约，什么请求都接\n\n**症状**：description 只写\"能干什么\"，不写\"不能干什么\"。\n\n**危害**：别的任务也乱调用这个 Skill，污染上下文，导致路由混乱。\n\n**正确做法**：同时写明\"何时调用\"和\"何时不要调用\"，降低误触发概率。"},{"path":"references/cli-guide.md","content":"# CLI 工具层调用约定 — cli-guide\n\n> 本 Skill 的所有静态分析（扫描/分类/冲突/评分信号/处方/报告）**必须**通过 CLI 工具层\n> `medic_tools/run.py` 执行。AI 禁止绕过 CLI 自己写 Python 内联代码。\n\n## 一、定位 CLI 目录（{CLI_DIR}）\n\n```\n1. 用 Glob 全局搜索（最可靠）：\n   glob **/skill-medic/medic_tools/run.py\n\n2. 多个结果时优先选择：\n   - 不在 c:\\Users\\{user}\\.trae-cn\\ 路径下的（系统目录可能不是最新版）\n   - 在项目所在盘符下的（如 e:\\、d:\\）\n\n3. 定位后记下目录路径为 {CLI_DIR}，验证：ls {CLI_DIR}/run.py 确认存在\n4. 后续所有调用统一：先 cd {CLI_DIR}，再 python run.py <action> ...\n```\n\n> **⚠️ project_root 铁律（与 cd 无关）**：`cd {CLI_DIR}` 只用于定位 run.py 脚本，**与 project_root 无关**。\n> `project_root` 永远取 **AI 上下文中的会话项目根**（绝对路径显式传入，如 `e:/Mytest_skill`），\n> 不随 cd 改变；**禁止用 `Get-Location` 的结果代替 project_root**（cd 后 Get-Location 得到的是 CLI_DIR，\n> 会导致 scan/classify/report 以错误根目录产生空产物，`.medic/` 也会建错位置）。\n\n## 二、统一调用方式\n\n```powershell\ncd {CLI_DIR}\npython run.py <action> <project_root> [params] [--save]\n```\n\n**project_root 规则**：\n- **永远取 AI 上下文中的会话项目根**（绝对路径显式传入），与 `cd {CLI_DIR}` 后的位置无关\n- 不确定时，用 `Get-Location` 查看**会话启动目录**（非 cd 后的位置），再对照上下文确认项目根\n- 路径用**正斜杠**（`e:/Mytest_skill`），避免反斜杠转义问题\n- 路径含空格时用双引号包裹：`python run.py scan \"e:/My Project\"`\n\n## 三、命令速查表\n\n| action | 命令 | 产物（--save） | 阶段 |\n|--------|------|---------------|------|\n| ping | `python run.py ping <root>` | — | MED_SCOPE |\n| scan | `python run.py scan <root> --save [--scope workspace\\|global] [--extra-dir <path>...]` | `.medic/_medic_inventory.json`（--scope 限定扫描范围，用户限定\"只看 workspace/global\"时使用；--extra-dir 追加用户自定义 Skill 目录，可多次传入，scope 标记为 custom） | MED_ROSTER |\n| analyze | `python run.py analyze <root> <skill>` | —（skill 支持 绝对路径 / 相对路径 / 目录名） | MED_ROSTER |\n| categorize | `python run.py categorize <root> --save` | `.medic/_medic_classify.json` | MED_SORT |\n| conflict | `python run.py conflict <root> --save` | `.medic/_medic_conflicts.json` | MED_CONFLICT |\n| score | `python run.py score <root> <skill> --save` | `.medic/_medic_scores.json`（累积；skill 支持 绝对路径 / 相对路径 / 目录名） | MED_VITAL |\n| prescribe | `python run.py prescribe <root> --save` | `.medic/_medic_rx.json` | MED_RX |\n| report | `python run.py report <root>` | `.medic/skill_audit_report_*.md` + inventory | MED_DEBRIEF |\n| diff | `python run.py diff <root> [last_inventory]` | —（缺省用 `.medic/_medic_last_inventory.json`） | 增量模式 |\n| cleanup | `python run.py cleanup <root>` | 白名单清理临时中间产物（classify/conflicts/scores/rx/review；**保留 `_medic_baton.json` / `_medic_inventory.json` / `_medic_last_inventory.json`、历史报告与 S3/S4 档附录文件 `skill_audit_appendix_*.md`**——断点续跑 / 增量模式 / 历史对比的基础） | MED_CLOSE |\n\n> **中间产物必须 --save 落盘**：每个阶段结束后，确认对应 `_medic_*.json` 已生成；\n> 产物缺失即阻断，禁止跳过落盘直接进入下一阶段。\n\n## 四、禁止事项（违规即流程违规）\n\n- [禁止] 使用 `python -c \"...\"` / `python.exe -c \"...\"` 执行内联 Python（PowerShell 引号嵌套会 ParserError）\n- [禁止] CLI 失败后放弃 CLI 自行写代码替代（按下方失败处理流程）\n- [禁止] 在 PowerShell 中对路径/参数做手工转义拼接（用正斜杠 + 引号即可）\n- [禁止] 用终端 `write` 命令写文件（那是 Write-Output 别名只打印不落盘；写 JSON 用 IDE Write 工具）\n\n## 五、CLI 失败处理流程（强制）\n\n```markdown\n[P0 阻断] CLI 命令失败（ParserError/路径错误/FileNotFound）时，AI 不得自行写 Python 代码替代！\n\n[正确] 失败处理流程：\n1. 确认 {CLI_DIR} 路径是否正确（重新 Glob 搜索 run.py）\n2. 确认是否先 cd 到了 {CLI_DIR}\n3"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":871,"uniquenessScore":44,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-09T13:39:57.852Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T23:42:00.497Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}