怎么用这本手册How to read this manual
每个命令一节,固定包含三块:使用场景(什么时候该用它)、使用方式(命令与常用参数)、使用效果(下方深色终端块为真实运行的彩色截图)。Each command gets its own section with three blocks: Scenario (when to reach for it), Usage (the command and common flags), Effect (the dark terminal block below is a real, colorized screenshot of the run).
约定:--scope project 只看当前仓库、避免扫到全局;--json 输出机器可读结果便于 CI。手册示例在一个含 1 个重复技能的示例项目里运行,所以多处会出现 data-exporter 有 2 份 的现象。Conventions: --scope project scopes to the current repo and avoids touching global config; --json emits machine-readable output for CI. The example project contains 1 duplicate skill, so you will see "data-exporter has 2 copies" appear in several places.
安装与运行Install & Run 安装与运行Install & Run
使用场景Scenario
skill-doctor 是一个本地 CLI 工具,用于审计 AI 编码助手(Claude Code / Codex / Copilot / Cursor / ACA 等)安装的「技能(skill)」:重复、冲突、安全风险与上下文成本。安装后即可在任意项目目录里使用。skill-doctor is a local CLI that audits skills installed by AI coding assistants (Claude Code / Codex / Copilot / Cursor / ACA, etc.): duplicates, conflicts, security risks, and context cost. Install it once and use it in any project directory.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| npm i -g @evilstar2025/skill-doctor | 全局安装,之后直接用 skill-doctor 命令Install globally, then use the `skill-doctor` command directly. |
| npx @evilstar2025/skill-doctor <cmd> | 不安装,临时运行某条命令Run a command on the fly without installing. |
| skill-doctor --version | 查看版本(本手册基于 0.4.1)Print the version (this manual targets 0.4.1). |
说明Notes
Node.js ≥ 20。所有命令都可加 --json 输出机器可读结果,便于接入 CI。手册中的示例都在一个示例项目里运行:该项目故意把同名技能 data-exporter 放进了 .claude 与 .github 两套平台目录(制造 1 个重复),并放了 code-reviewer 用于对比演示。Requires Node.js ≥ 20. Every command accepts `--json` for machine-readable output, which is convenient for CI. The examples in this manual run against a sample project that intentionally puts a skill named `data-exporter` into both `.claude` and `.github` (creating 1 duplicate) and also contains `code-reviewer` for diff demos.
使用效果Effect
$ skill-doctor --version 0.4.1
skill-doctor --helpskill-doctor --help 总览:--helpOverview: --help
使用场景Scenario
第一次使用或忘记子命令/参数时,先看帮助。它会列出全部命令与可选项,是最常用的「目录」。First time using it, or when you forget a sub-command or flag? Check --help first. It lists every command and option and serves as the index.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| -h / --help | 对任意子命令也有效,例如 skill-doctor conflicts --helpWorks for any sub-command, e.g. `skill-doctor conflicts --help`. |
| -v / --version | 仅打印版本号Print just the version. |
说明Notes
下面是本机执行 --help 的真实输出,可作为命令速查表。Below is the real output of --help on this machine, which you can use as a cheat sheet.
使用效果Effect
$ skill-doctor --help skill-doctor Usage: skill-doctor scan [--scope project|global|all] [--strategy token|embedding] [--threshold N] [--embedding-model ID] [--json] [--report [path]] skill-doctor show <name> [--json] skill-doctor conflicts [--scope project|global|all] [--strategy token|embedding] [--threshold N] [--embedding-model ID] [--analyze] [--kind duplicate|conflict|all] [--fail-on high|med|low] [--limit N] [--json] skill-doctor audit [--scope project|global|all] [--severity high|med|low] [--fail-on high|med|low] [--ai] [--no-cache] [--json] [--report [path]] skill-doctor check [--scope project|global|all] [--fail-on high|med|low] [--budget-tokens N] [--json] skill-doctor cleanup [--scope project|global|all] [--json] skill-doctor cost [project-dir] [--platform PLATFORM] [--scope project|global|all] [--source skill|mcp|all] [--resource all|agents|skill|mcp|plugin|memory] [--codex-config path] [--show-disable] [--include-cache] [--tokenizer openai|approx] [--tokenizer-model model] [--budget-tokens N] [--platform-budget platform=N] [--fail-on-budget] [--json] skill-doctor context [project-dir] [--platform PLATFORM] [--scope project|global|all] [--source skill|mcp|all] [--resource all|agents|skill|mcp|plugin|memory] [--codex-config path] [--show-disable] [--include-cache] [--tokenizer openai|approx] [--tokenizer-model model] [--budget-tokens N] [--platform-budget platform=N] [--fail-on-budget] [--json] skill-doctor context enable|disable --id <resource-id> [--platform codex] [--codex-config path] [--json] skill-doctor diff <skill-a> <skill-b> [--report [path]] skill-doctor ui [project-dir] [--port N] [--no-open] skill-doctor dashboard [--scope project|global|all] [--report [path]] [--open] skill-doctor install <path|slug> [--target <platform>] [--link] skill-doctor uninstall <name> [--target <platform>] [--force] skill-doctor center migrate|show skill-doctor config view [--json] skill-doctor config set analysis|embedding --base-url <url> --model <model> [--api-key <key>] [--timeout-ms <n>] [--clear-api-key] skill-doctor config test [--service analysis|embedding] skill-doctor --version Model config file: ~/.skill-doctor/config.json { "analysis": { "baseUrl": "http://host/v1", "model": "gpt-4o", "apiKey": "..." }, "embedding": { "baseUrl": "http://host/v1", "model": "bge-m3", "apiKey": "..." } } Platforms: --platform values: claude|cursor|copilot|codex|gemini|windsurf|trae|opencode|kiro|openclaw|hermes|unknown (aliases: claudecode->claude, claude-code->claude)
scanscan scan — 盘点已安装的技能scan — list installed skills
使用场景Scenario
你想知道「当前项目到底装了哪些 skill、分布在哪些平台、有没有重复或冲突」时,先跑 scan。它是所有后续诊断的起点。When you want to know which skills are installed in the current project, on which platforms, and whether any duplicates or conflicts exist — run `scan` first. It is the starting point for all subsequent diagnostics.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围;默认 all。手册示例用 project 只看当前仓库Scan scope; default `all`. The manual examples use `project` to limit the scan to the current repo. |
| --group | 用模型把技能按主题分组(需要配置分析模型)Use an LLM to group skills by topic (requires a configured analysis model). |
| --strategy token|embedding | 冲突检测策略;默认 token(本地、离线)Conflict-detection strategy; default `token` (local, offline). |
| --report [path] | 额外导出一个可视化 HTML 报告Also export a visual HTML report. |
| --json | 输出结构化 JSON,便于脚本处理Emit structured JSON for script consumption. |
说明Notes
示例中扫描到 3 个技能(claude×2、copilot×1),并发现 1 个重复。--report 会写出 scan-report.html(本手册附录附带样例)。The example finds 3 skills (claude × 2, copilot × 1) and reports 1 duplicate. `--report` writes scan-report.html (a real sample ships with this manual).
使用效果Effect
$ skill-doctor scan --scope project SKILL DOCTOR REPORT Total skills installed: 3 Duplicates detected: 1 Conflicts detected: 0 Platforms: - claude: 2 - copilot: 1 Skills: - code-reviewer platform: claude scope: project install source: .claude/skills confidence: high repository: — author: — - data-exporter platform: claude scope: project install source: .claude/skills confidence: high repository: — author: — - data-exporter platform: copilot scope: project install source: .github/skills confidence: high repository: — author: —
$ skill-doctor scan --scope project --report scan-report.html Report written to: E:/tmp/sd-manual-demo/caps/scan-report.html
show <name>show <name> show — 查看单个技能详情show — inspect one skill
使用场景Scenario
扫出一堆技能后,想深挖某一个:它的来源路径、描述、触发条件(When to Use),以及和它语义相近的其它技能。After scanning a pile of skills, drill into one: its source path, description, trigger conditions (When to Use), and other semantically similar skills.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| <name> | 技能名(必填),例如 data-exporterSkill name (required), e.g. `data-exporter`. |
| --json | 输出结构化 JSONEmit structured JSON. |
说明Notes
下方真实输出里,RELATED SKILLS 给出了与 data-exporter 相似度 0.25 的关联技能——这正是重复/冲突排查的线索。In the real output below, RELATED SKILLS reports a similarity of 0.25 with another `data-exporter` — that is exactly the lead you follow for duplicate / conflict investigations.
使用效果Effect
$ skill-doctor show data-exporter SKILL: data-exporter Platform: claude | Scope: project Source: E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md PROVENANCE Install source: .claude/skills Scope: project Confidence: high Repository: — Author: — DESCRIPTION Export database tables and SQL query results to CSV and Parquet files for downstream analysis and reporting. WHEN TO USE → Exporting a Postgres table to CSV → Dumping the result of an ad-hoc SQL query for reporting → Writing Parquet files for a data pipeline → Export database tables and SQL query results to CSV and Parquet files for downstream analysis and reporting. RELATED SKILLS data-exporter similarity: 0.25 shared: analysi, csv, data
conflictsconflicts conflicts — 检测重复与冲突conflicts — detect duplicates & conflicts
使用场景Scenario
当你怀疑不同平台/目录里藏着同名或高度雷同的技能(会互相覆盖、浪费上下文),用 conflicts 找出它们,并给出「删哪份、留哪份」的建议。When you suspect different platforms/directories hide same-named or highly similar skills (which overwrite each other and waste context), `conflicts` finds them and suggests "delete which, keep which".
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围,默认 allScan scope, default `all`. |
| --kind duplicate|conflict|all | 只关注某一类;duplicate=完全同名,conflict=语义雷同Filter by kind; `duplicate` = same name, `conflict` = semantically similar. |
| --fail-on high|med|low | 达到阈值则以退出码 1 失败,用于 CI 卡点Exit with code 1 when severity reaches this level — for CI gating. |
| --limit N | 最多显示 N 条Show at most N items. |
| --strategy / --threshold / --embedding-model | 同 scan,控制冲突检测精度Same as `scan`; controls detection precision. |
说明Notes
真实输出中检测到 data-exporter 有 2 份副本,并建议删除较旧的一份(.github 下那份)。在 CI 里加 --fail-on high 即可把「出现重复」变成构建失败。The real output finds 2 copies of `data-exporter` and recommends removing the older one (the one under `.github`). In CI, add `--fail-on high` so any duplicate fails the build.
使用效果Effect
$ skill-doctor conflicts --scope project DUPLICATES data-exporter [2 copies] E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md E:\tmp\sd-manual-demo\.github\skills\data-exporter\SKILL.md SUGGESTIONS consider removing: E:\tmp\sd-manual-demo\.github\skills\data-exporter\SKILL.md keep: E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md (newer (modified 2026-08-07))
auditaudit audit — 安全审计audit — security audit
使用场景Scenario
在把技能交付给团队或 CI 之前,想知道有没有明显的安全风险(如危险的 shell 指令、可疑的网络调用等)。不带 --ai 时走本地规则,零配置即可用。Before shipping skills to the team or CI, you want to know whether they contain obvious security risks (dangerous shell commands, suspicious network calls, etc.). Without `--ai`, the audit runs on local rules with zero configuration.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围,默认 allScan scope, default `all`. |
| --severity high|med|low | 只显示 ≥ 该级别的问题Only show findings of this severity or higher. |
| --ai | 调用配置好的分析模型做增强扫描(需先 config set analysis)Use the configured analysis model for a deeper scan (requires `config set analysis` first). |
| --no-cache | 忽略 AI 审计缓存,重新分析Ignore the AI audit cache and re-analyze. |
| --report [path] | 导出可视化 HTML 审计报告Export a visual HTML audit report. |
说明Notes
本例 3 个示例技能没有命中本地规则,因此显示 No findings。一旦装了含危险指令的技能,这里会列出具体风险点与级别。The 3 example skills do not trigger any local rule, so the result is "No findings". As soon as a skill containing dangerous instructions is installed, the exact risk and severity will appear here.
使用效果Effect
$ skill-doctor audit --scope project Skill Safety Audit — 3 skills scanned No findings.
checkcheck check — 一键健康门禁(CI 首选)check — one-shot health gate (CI favorite)
使用场景Scenario
在 CI / pre-commit 里用一条命令同时检查:安全风险、技能冲突、上下文是否超预算,并给出 pass/fail 与退出码。比分别跑 audit+conflicts+cost 更省事。In CI or pre-commit, run one command that combines: security risks, skill conflicts, and whether context budget is exceeded — and returns pass/fail with an exit code. More convenient than running audit + conflicts + cost separately.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围,默认 allScan scope, default `all`. |
| --fail-on high|med|low | 严重程度阈值,默认 high;命中则退出码 1Severity threshold (default `high`); exit 1 when reached. |
| --budget-tokens N | 上下文预算(每轮 token 上限),超了算失败Per-turn token budget; exceeding it counts as failure. |
| --json | 输出结构化结果,便于流水线解析Emit structured output for pipelines to parse. |
说明Notes
真实输出显示 failed:安全 0、冲突 1、预算未超。因为发现了 1 个重复(冲突),所以未通过——非常适合作为合并前卡点。Real output: failed — security 0, conflicts 1, budget not exceeded. Because a duplicate was found, the check failed — perfect as a pre-merge gate.
使用效果Effect
$ skill-doctor check --scope project --fail-on high Project check: failed Security findings: 0 Conflicts: 1 Context over budget: no
cleanupcleanup cleanup — 清理重复技能cleanup — remove duplicate skills
使用场景Scenario
conflicts 告诉你「有重复」后,cleanup 列出所有重复副本,并可用 --execute 交互式地逐个删除,把磁盘和上下文收拾干净。Once `conflicts` tells you there are duplicates, `cleanup` lists every duplicate copy and can — with `--execute` — interactively remove them one by one, reclaiming both disk and context.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围,默认 allScan scope, default `all`. |
| --execute | 进入交互模式,逐项选择删除哪一份(默认仅列出)Enter interactive mode (default is read-only listing only). |
| --json | 输出待清理清单,便于脚本Emit the cleanup list as JSON for scripts. |
说明Notes
不加 --execute 时是只读预览(安全);加 --execute 后会对每个重复向你提问 [1/2/s],按 s 可跳过。演示输出为只读预览。Without `--execute`, this is a safe read-only preview. With `--execute`, it asks you `[1/2/s]` for each duplicate (press `s` to skip). The demo output is the preview.
使用效果Effect
$ skill-doctor cleanup --scope project DUPLICATE SKILLS 1 duplicate found. Run with --execute to remove interactively. data-exporter [1] E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md [2] E:\tmp\sd-manual-demo\.github\skills\data-exporter\SKILL.md
cost / contextcost / context cost — 估算「上下文税」cost — estimate the context tax
使用场景Scenario
技能、MCP、Agent 配置每轮都会悄悄塞进对话上下文,吃掉 token 与钱。cost 帮你按平台/资源拆解「每轮要背多少 token」,并对照预算评级;context 子命令还能开关 Codex 的某些资源。Skills, MCP servers, and Agent config silently inflate every conversation, burning tokens and money. `cost` breaks down per-platform/per-resource "how many tokens per turn" and grades you against the budget; the `context` sub-command can also enable/disable Codex resources.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| [project-dir] | 要分析的项目目录,默认当前目录Project directory to analyze (default: current). |
| --platform <p> | 只看某个平台(claude/codex/copilot/...)Limit to a single platform (claude/codex/copilot/...). |
| --source skill|mcp|all | 只统计技能 / MCP / 全部Restrict to skills / MCP / everything. |
| --budget-tokens N | 每轮预算,超过则标红Per-turn budget; over-budget rows are flagged. |
| --fail-on-budget | 超预算时退出码 1Exit with code 1 when over budget. |
| --tokenizer openai|approx | 分词器;默认 openai(精确)Tokenizer; default `openai` (precise). |
| context enable|disable --id <id> | 启用/禁用某个 Codex 上下文资源Enable/disable a Codex context resource. |
说明Notes
真实输出给出每轮 392 token 的估算、按平台(copilot/claude)拆分、各技能开销,并给出 A 级(预算内)评级。这是优化「AI 越用越贵」的利器。Real output: ~392 tokens/turn, broken down per platform (copilot/claude) and per skill, graded A (within budget). A great lever to fight "AI gets more expensive the more you use it".
使用效果Effect
$ skill-doctor cost --scope project CONTEXT COST REPORT Project: E:\tmp\sd-manual-demo Scope: project (current project only) Estimated token tax: 392 tokens/turn Tokenizer: openai model=gpt-4o encoding=o200k_base Budget: 2000 tokens/turn Grade: A (within budget) Items scanned: 5 By coding agent: - copilot: 236 tokens/turn (3 items) budget: 2000 grade: A (within budget) startup: 236 always-on: 0 activation risk: 241 - claude: 156 tokens/turn (2 items) budget: 2000 grade: A (within budget) startup: 156 always-on: 0 activation risk: 158 Highest cost items: - data-exporter tokens: 80 platform: claude scope: project source: skill kind: claude-skill-description activation: startup budget: startup-selection activation tokens: 83 confidence: high path: E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md fix: OK - data-exporter tokens: 80 platform: copilot scope: project source: skill kind: agent-skill-description activation: startup budget: startup-selection activation tokens: 83 confidence: high path: E:\tmp\sd-manual-demo\.github\skills\data-exporter\SKILL.md fix: OK - data-exporter tokens: 80 platform: copilot scope: project source: skill kind: agent-skill-description activation: startup budget: startup-selection activation tokens: 83 confidence: high path: E:\tmp\sd-manual-demo\.claude\skills\data-exporter\SKILL.md fix: OK - code-reviewer tokens: 76 platform: claude scope: project source: skill kind: claude-skill-description activation: startup budget: startup-selection activation tokens: 75 confidence: high path: E:\tmp\sd-manual-demo\.claude\skills\code-reviewer\SKILL.md fix: OK - code-reviewer tokens: 76 platform: copilot scope: project source: skill kind: agent-skill-description activation: startup budget: startup-selection activation tokens: 75 confidence: high path: E:\tmp\sd-manual-demo\.claude\skills\code-reviewer\SKILL.md fix: OK
diff <a> <b>diff <a> <b> diff — 对比两个技能diff — compare two skills
使用场景Scenario
你想确认两个技能到底差在哪(比如要合并、要替换、还是根本是同一个东西换了个名),用 diff 并排对比它们的字段与触发条件。You want to know exactly how two skills differ (to merge, replace, or discover they are the same thing under different names). `diff` lays out their fields and trigger conditions side by side.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| <skill-a> <skill-b> | 两个技能名(必填)Two skill names (required). |
| --report [path] | 导出可视化 HTML 对比报告Export a visual HTML comparison report. |
说明Notes
未配置分析模型时,diff 会回退到「仅展示提取字段」模式(下方真实输出中的提示)。配置模型后会额外给出语义层面的差异解读。When no analysis model is configured, `diff` falls back to "fields only" mode (see the notice in the real output below). Once a model is configured, it also gives a semantic interpretation of the differences.
使用效果Effect
$ skill-doctor diff data-exporter code-reviewer ┌──────────────────────────────────────────────────────────┐ │ Skill Diff: data-exporter vs code-reviewer └──────────────────────────────────────────────────────────┘ ⚠ LLM analysis unavailable — showing extracted fields only. ── 触发条件 ──────────────────────────────────────────────────── data-exporter - Exporting a Postgres table to CSV - Dumping the result of an ad-hoc SQL query for reporting - Writing Parquet files for a data pipeline code-reviewer - Reviewing a GitHub pull request for SQL injection risks - Checking a diff for performance regressions - Enforcing project style rules on new code
uiui ui — 启动 Web 仪表盘ui — launch the web dashboard
使用场景Scenario
比起纯终端,你更想要一个可点的网页界面:总览、冲突、上下文成本、技能库一目了然。ui 会在本地起一个带鉴权会话的 Web 服务。When you prefer a clickable web UI over the terminal — with overview, conflicts, context cost, and the skill library at a glance — `ui` starts a local web server with session-based auth.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| [project-dir] | 要分析的项目目录,默认当前目录Project directory to analyze (default: current). |
| --port N | 监听端口,默认随机Listen port; default: random. |
| --no-open | 不自动打开浏览器(服务器仍正常启动)Do not auto-open the browser (server still starts). |
说明Notes
启动后会打印一个带 session token 的本地 URL(下方真实输出)。在浏览器打开即可使用全套可视化功能;按 Ctrl+C 停止。After starting, the CLI prints a local URL with a session token (see the real output below). Open it in a browser to use the full UI; press Ctrl+C to stop.
使用效果Effect
$ skill-doctor ui --port 4173 --no-open Skill Doctor UI: http://127.0.0.1:4173/session/RJebkCY4F_lOCXp6llb3m1dIJcSdrPoEKdXIb7t6mOg Press Ctrl+C to stop.
dashboarddashboard dashboard — 生成静态总览报告dashboard — export a static overview report
使用场景Scenario
你不想起服务,只想导出一份「可分享/可归档」的 HTML 总览(技能、冲突、审计、重复、清理建议一页纸),发给同事或提交到仓库。You do not want to run a server — just export a single-file HTML overview (skills, conflicts, audit, duplicates, cleanup suggestions) to share or commit.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| --scope project|global|all | 扫描范围,默认 allScan scope, default `all`. |
| --report [path] | 导出 HTML;不写路径默认 dashboard.htmlExport HTML; default path is `dashboard.html`. |
| --open | 生成后自动用浏览器打开Auto-open the report in a browser after generation. |
说明Notes
默认(不带 --report)也会写出 dashboard.html。本手册附录附带本次生成的 dashboard.html 样例。Even without `--report`, dashboard.html is written. A real sample of it ships as an appendix of this manual.
使用效果Effect
$ skill-doctor dashboard --scope project --report dashboard.html Dashboard written to: E:/tmp/sd-manual-demo/caps/dashboard.html
install / uninstallinstall / uninstall install / uninstall — 安装与卸载技能install / uninstall — manage skills
使用场景Scenario
你拿到一个本地 skill 目录(或市场 slug),想装到某个 AI 平台的技能目录里统一纳管;用完后用 uninstall 卸载。两者都写入「统一技能中心」center.json。You have a local skill directory (or a marketplace slug) and want to install it into a specific AI platform directory, then later uninstall it. Both operations are recorded in the unified skill center (center.json).
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| <path|slug> | 本地路径或市场 slug(必填)Local path or marketplace slug (required). |
| --target <platform> | 目标平台;不写则自动探测当前活跃平台Target platform; auto-detected when omitted. |
| --link | 以符号链接方式安装(便于开发调试)Install as a symlink (handy while developing). |
| uninstall <name> --target <p> | 卸载指定名称的技能Uninstall a skill by name. |
| --force | 强制卸载(即使仍有其它引用)Force uninstall even if other references exist. |
说明Notes
下方为隔离环境(临时 HOME)下的真实演示:安装本地 data-exporter 到 claude → center.json 立即登记该技能与安装记录 → 强制卸载后记录被移除。The example below uses an isolated environment (a temporary HOME) and shows: install `data-exporter` into claude → center.json immediately records the skill and its installation → force-uninstall removes the record.
使用效果Effect
$ skill-doctor install ./data-exporter --target claude # then uninstall ✓ Installed 'data-exporter' to claude Path: E:\tmp\sd-manual-home\.claude\skills\data-exporter\SKILL.md --- center.json after install --- { "version": 1, "skills": [ { "id": "64b7eb3b082ca5f6952d1cd772e24fa97541d4becb47e797e3c4f2e5840a4e52", "name": "data-exporter", "rootPath": "E:\\tmp\\sd-manual-home\\.claude\\skills\\data-exporter", "source": { "type": "local", "originalPath": "E:\\tmp\\sd-manual-demo\\.claude\\skills\\data-exporter\\SKILL.md" }, "treeHash": "sha256:e838245632383828c2414edbcd112ab773292d084065bda76ba58aa2e8650843", "addedAt": "2026-08-07T06:15:07.251Z", "updatedAt": "2026-08-07T06:15:07.251Z", "installations": [ { "id": "7a2d3e1a42503025822ddb949e43383b51a998e25234c3917b7d337e511d5166", "targetId": "claude-global-skills", "platform": "claude", "scope": "global", "mode": "copy", "installedPath": "E:\\tmp\\sd-manual-home\\.claude\\skills\\data-exporter\\SKILL.md", "installedRootPath": "E:\\tmp\\sd-manual-home\\.claude\\skills\\data-exporter", "deployedHash": "sha256:e838245632383828c2414edbcd112ab773292d084065bda76ba58aa2e8650843", "installedAt": "2026-08-07T06:15:07.250Z" } ] } ] } ✓ Uninstalled 'data-exporter' from claude --- center.json after uninstall (forced) --- { "version": 1, "skills": [] }
centercenter center — 统一技能中心center — the unified skill center
使用场景Scenario
skill-doctor 用 center.json 作为「技能与安装记录的单一真相源」。老旧版本数据(catalog/deployments/registry)需要一次性迁移过来;show 则查看当前全部纳管技能与安装情况。skill-doctor uses `center.json` as the single source of truth for skills and their installation records. Older data (catalog/deployments/registry) must be migrated in once; `show` then prints the whole picture.
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| center migrate | 把旧格式数据迁移到 center.json(幂等,可重复执行)Migrate legacy data into center.json (idempotent, re-runnable). |
| center show | 以 JSON 打印 center.json 全部内容Print the entire center.json as JSON. |
说明Notes
migrate 真实输出显示已迁移 34 个技能、1 个安装记录、无备份(说明本机早已是 center 格式)。show 输出较长,下方仅截取前若干项示意(本机共 34 个技能)。`migrate` output shows 34 skills migrated, 1 installation record, no backup (the machine was already in center format). The `show` output is long; only the first entries are shown below (34 skills in total on this machine).
使用效果Effect
$ skill-doctor center migrate Migrated to center.json: skills: 34 installations: 1 backups: (none)
$ skill-doctor center show { "version": 1, "skills": [ { "id": "8f03cf43-2c5b-446c-a818-4bc49e531f93", "name": "agent-evaluator", "rootPath": "E:\\GitHub\\skills\\.claude\\skills\\agent-evaluator", "source": { "type": "local", "originalPath": "E:\\GitHub\\skills\\.claude\\skills\\agent-evaluator" }, "treeHash": "sha256:65200faa99549113977205cef59cf1ba2bf9eb6b714e45d5d7bc4100b9c3f4d1", "addedAt": "2026-07-27T00:57:35.725Z", "updatedAt": "2026-07-27T00:57:35.725Z", "installations": [] }, { "id": "d4f52402-2de4-403d-8f2f-cbe32a396162", "name": "ai-image-asset-generator", "rootPath": "E:\\GitHub\\skills\\.claude\\skills\\ai-image-asset-generator", "source": { "type": "local", "originalPath": "E:\\GitHub\\skills\\.claude\\skills\\ai-image-asset-generator" }, "treeHash": "sha256:651252f7b73f130fd5e2c306a0e340e47c1cb32c76fe90add2ab04df789fda3e", "addedAt": "2026-07-27T00:57:35.773Z", "updatedAt": "2026-07-27T00:57:35.773Z", "installations": [] }, { …(已省略剩余技能,本机 center.json 共 34 个技能)
configconfig config — 配置分析 / 嵌入模型config — configure analysis / embedding models
使用场景Scenario
要让 skill-doctor 的 AI 增强能力(show 的语义解读、conflicts 的 embedding 策略、audit --ai、diff 的语义差异)生效,需要先在 ~/.skill-doctor/config.json 里配置一个 OpenAI 兼容的分析模型(可选再配嵌入模型)。To unlock skill-doctor's AI-enhanced capabilities (semantic interpretation in `show`, embedding strategy in `conflicts`, `audit --ai`, semantic differences in `diff`), first configure an OpenAI-compatible analysis model in `~/.skill-doctor/config.json` (optionally an embedding model too).
使用方式Usage
| 选项Option | 说明Description |
|---|---|
| config view | 查看当前模型配置状态View the current model configuration. |
| config set analysis|embedding --base-url <url> --model <m> | 设置分析/嵌入模型端点与模型名Set the analysis/embedding model endpoint and name. |
| --api-key <key> | 设置 API Key(也可不写,走环境变量)Set the API key (or rely on the environment variable). |
| --clear-api-key | 清除已保存的 KeyClear a stored API key. |
| config test [--service analysis|embedding] | 连通性自检Connectivity self-test. |
说明Notes
下方真实输出显示本机尚未配置模型(not configured)。配置后,show/conflicts --strategy embedding/audit --ai/diff 才会启用对应的智能能力。The real output below shows the machine is not configured yet. Once configured, `show`, `conflicts --strategy embedding`, `audit --ai`, and `diff` will gain the corresponding smart features.
使用效果Effect
$ skill-doctor config view Model configuration (~/.skill-doctor/config.json): analysis: not configured embedding: not configured
$ skill-doctor config set analysis --base-url <url> --model <model> Usage: skill-doctor config set analysis|embedding --base-url <url> --model <model> [--api-key <key>] [--timeout-ms <n>] [--clear-api-key]