skill-creator 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/dist/cli.js +37953 -20717
  3. package/dist/cli.js.map +4 -4
  4. package/dist/daemon.js +20089 -3976
  5. package/dist/daemon.js.map +4 -4
  6. package/dist/package.json +1 -1
  7. package/dist/webui/_app/immutable/assets/0.B4ZC2KQW.css +2 -0
  8. package/dist/webui/_app/immutable/chunks/{_g2_n9ND.js → B0stYqX9.js} +1 -1
  9. package/dist/webui/_app/immutable/chunks/{iz1cEkZC.js → BTuMeN4z.js} +1 -1
  10. package/dist/webui/_app/immutable/chunks/{Bs7CGcv2.js → B_gnhZ39.js} +1 -1
  11. package/dist/webui/_app/immutable/chunks/{nznK1lJN.js → BcvferwH.js} +1 -1
  12. package/dist/webui/_app/immutable/chunks/{D8zgcaSD.js → Bd1_Ly7G.js} +1 -1
  13. package/dist/webui/_app/immutable/chunks/{D-2QBE8y.js → BgJCuTDs.js} +1 -1
  14. package/dist/webui/_app/immutable/chunks/{B1KITIB4.js → CBFLFfGb.js} +1 -1
  15. package/dist/webui/_app/immutable/chunks/{HAi-5CYL.js → CD-NpLjk.js} +4 -4
  16. package/dist/webui/_app/immutable/chunks/{B3Ni2QLt.js → CIxXWvxF.js} +1 -1
  17. package/dist/webui/_app/immutable/chunks/COXgCOd9.js +2 -0
  18. package/dist/webui/_app/immutable/chunks/Ccj5eiVa.js +1 -0
  19. package/dist/webui/_app/immutable/chunks/{CsxdqaKQ.js → CdjBDc_u.js} +1 -1
  20. package/dist/webui/_app/immutable/chunks/Cp0lquqA.js +1 -0
  21. package/dist/webui/_app/immutable/chunks/Crg8KRap.js +5 -0
  22. package/dist/webui/_app/immutable/chunks/{C8EbtR4g.js → CvO5eq4f.js} +1 -1
  23. package/dist/webui/_app/immutable/chunks/{Dga0ODor.js → D6s79OPW.js} +1 -1
  24. package/dist/webui/_app/immutable/chunks/{BHJkoxm8.js → D7DTLcps.js} +1 -1
  25. package/dist/webui/_app/immutable/chunks/{C-AVEJqG.js → DGJ9QIPN.js} +1 -1
  26. package/dist/webui/_app/immutable/chunks/{Bbl7uOhW.js → Dcf0klrH.js} +1 -1
  27. package/dist/webui/_app/immutable/chunks/{1vzbRbJ2.js → DlsPNMHX.js} +4 -4
  28. package/dist/webui/_app/immutable/chunks/Do_MDwCJ.js +1 -0
  29. package/dist/webui/_app/immutable/chunks/{CoasO80Q.js → Du6-3Tbt.js} +1 -1
  30. package/dist/webui/_app/immutable/chunks/M-b0y9AQ.js +1 -0
  31. package/dist/webui/_app/immutable/chunks/{KjcaLSMo.js → hIGXQE4_.js} +1 -1
  32. package/dist/webui/_app/immutable/chunks/oJ4aK8PG.js +1 -0
  33. package/dist/webui/_app/immutable/chunks/vry1W47_.js +7 -0
  34. package/dist/webui/_app/immutable/entry/{app.BbnICwcR.js → app.SX0t6ojk.js} +2 -2
  35. package/dist/webui/_app/immutable/entry/start.gejSBBnR.js +1 -0
  36. package/dist/webui/_app/immutable/nodes/{0.C0a-_hPX.js → 0.BTXc1wYu.js} +114 -114
  37. package/dist/webui/_app/immutable/nodes/{1.CY3UBo6A.js → 1.BY0DmHLP.js} +1 -1
  38. package/dist/webui/_app/immutable/nodes/{2.BfHkaxce.js → 2._osi8D6m.js} +1 -1
  39. package/dist/webui/_app/version.json +1 -1
  40. package/dist/webui/index.html +22 -21
  41. package/package.json +2 -1
  42. package/skills/skill-creator-v2/SKILL.md +50 -0
  43. package/skills/skill-creator-v2/references/tools.md +161 -0
  44. package/dist/webui/_app/immutable/assets/0.Ce1ZW9xU.css +0 -2
  45. package/dist/webui/_app/immutable/chunks/3x7J55ll.js +0 -2
  46. package/dist/webui/_app/immutable/chunks/825uWMzf.js +0 -5
  47. package/dist/webui/_app/immutable/chunks/BNaxFL8-.js +0 -3
  48. package/dist/webui/_app/immutable/chunks/D_Wlt2rL.js +0 -1
  49. package/dist/webui/_app/immutable/chunks/DgfWqxEz.js +0 -1
  50. package/dist/webui/_app/immutable/chunks/Do5hAkYk.js +0 -1
  51. package/dist/webui/_app/immutable/chunks/N4Ne5qCB.js +0 -1
  52. package/dist/webui/_app/immutable/entry/start.BCFPuXD4.js +0 -1
@@ -1 +1 @@
1
- import{B as e,Ct as t,F as n,R as r,St as i,ct as a,lt as o,nt as s,st as c}from"../chunks/CmCJ0SKP.js";import"../chunks/xihTtKlq.js";import{t as l}from"../chunks/C8EbtR4g.js";var u=e(`<h1> </h1> <p> </p>`,1);function d(e,d){t(d,!0);var f=u(),p=c(f),m=a(p,!0),h=o(p,2),g=a(h,!0);s(()=>{n(m,l.status),n(g,l.error?.message)}),r(e,f),i()}export{d as component};
1
+ import{B as e,Ct as t,F as n,R as r,St as i,ct as a,lt as o,nt as s,st as c}from"../chunks/CmCJ0SKP.js";import"../chunks/xihTtKlq.js";import{t as l}from"../chunks/CvO5eq4f.js";var u=e(`<h1> </h1> <p> </p>`,1);function d(e,d){t(d,!0);var f=u(),p=c(f),m=a(p,!0),h=o(p,2),g=a(h,!0);s(()=>{n(m,l.status),n(g,l.error?.message)}),r(e,f),i()}export{d as component};
@@ -1 +1 @@
1
- import{B as e,Ct as t,R as n,St as r,c as i,r as a}from"../chunks/CmCJ0SKP.js";import{t as o}from"../chunks/_g2_n9ND.js";import"../chunks/xihTtKlq.js";import"../chunks/D_Wlt2rL.js";import"../chunks/DZ_Kltd5.js";var s=e(`<div class="flex h-full items-center justify-center text-sm text-muted-foreground" role="status">Opening Skill Creator…</div>`);function c(e,c){t(c,!1),a(()=>{o(`/workspaces`,{replaceState:!0})}),i();var l=s();n(e,l),r()}export{c as component};
1
+ import{B as e,Ct as t,R as n,St as r,c as i,r as a}from"../chunks/CmCJ0SKP.js";import{t as o}from"../chunks/B0stYqX9.js";import"../chunks/xihTtKlq.js";import"../chunks/oJ4aK8PG.js";import"../chunks/DZ_Kltd5.js";var s=e(`<div class="flex h-full items-center justify-center text-sm text-muted-foreground" role="status">Opening Skill Creator…</div>`);function c(e,c){t(c,!1),a(()=>{o(`/workspaces`,{replaceState:!0})}),i();var l=s();n(e,l),r()}export{c as component};
@@ -1 +1 @@
1
- {"version":"1790701391698"}
1
+ {"version":"1790796137455"}
@@ -8,42 +8,43 @@
8
8
  <meta charset="utf-8" />
9
9
  <meta name="viewport" content="width=device-width, initial-scale=1" />
10
10
  <meta name="text-scale" content="scale" />
11
- <link href="/_app/immutable/entry/start.BCFPuXD4.js" rel="modulepreload">
12
- <link href="/_app/immutable/chunks/_g2_n9ND.js" rel="modulepreload">
11
+ <link href="/_app/immutable/entry/start.gejSBBnR.js" rel="modulepreload">
12
+ <link href="/_app/immutable/chunks/B0stYqX9.js" rel="modulepreload">
13
13
  <link href="/_app/immutable/chunks/CmCJ0SKP.js" rel="modulepreload">
14
- <link href="/_app/immutable/entry/app.BbnICwcR.js" rel="modulepreload">
14
+ <link href="/_app/immutable/entry/app.SX0t6ojk.js" rel="modulepreload">
15
15
  <link href="/_app/immutable/chunks/HclGiUj8.js" rel="modulepreload">
16
16
  <link href="/_app/immutable/chunks/xihTtKlq.js" rel="modulepreload">
17
- <link href="/_app/immutable/nodes/0.C0a-_hPX.js" rel="modulepreload">
18
- <link href="/_app/immutable/chunks/C8EbtR4g.js" rel="modulepreload">
19
- <link href="/_app/immutable/chunks/D_Wlt2rL.js" rel="modulepreload">
17
+ <link href="/_app/immutable/nodes/0.BTXc1wYu.js" rel="modulepreload">
18
+ <link href="/_app/immutable/chunks/CvO5eq4f.js" rel="modulepreload">
19
+ <link href="/_app/immutable/chunks/oJ4aK8PG.js" rel="modulepreload">
20
20
  <link href="/_app/immutable/chunks/BkEnd9_Z.js" rel="modulepreload">
21
- <link href="/_app/immutable/chunks/Do5hAkYk.js" rel="modulepreload">
22
- <link href="/_app/immutable/chunks/BHJkoxm8.js" rel="modulepreload">
23
- <link href="/_app/immutable/chunks/1vzbRbJ2.js" rel="modulepreload">
24
- <link href="/_app/immutable/chunks/BT2vrlul.js" rel="modulepreload">
25
- <link href="/_app/immutable/chunks/Bs7CGcv2.js" rel="modulepreload">
26
- <link href="/_app/immutable/chunks/CsxdqaKQ.js" rel="modulepreload">
27
- <link href="/_app/immutable/chunks/D-2QBE8y.js" rel="modulepreload">
28
- <link href="/_app/immutable/chunks/1aUphu7Y.js" rel="modulepreload">
29
- <link href="/_app/immutable/chunks/825uWMzf.js" rel="modulepreload">
21
+ <link href="/_app/immutable/chunks/Cp0lquqA.js" rel="modulepreload">
22
+ <link href="/_app/immutable/chunks/DlsPNMHX.js" rel="modulepreload">
23
+ <link href="/_app/immutable/chunks/Crg8KRap.js" rel="modulepreload">
30
24
  <link href="/_app/immutable/chunks/DnPeA-9c.js" rel="modulepreload">
31
25
  <link href="/_app/immutable/chunks/BEPs9Z9s.js" rel="modulepreload">
26
+ <link href="/_app/immutable/chunks/D7DTLcps.js" rel="modulepreload">
27
+ <link href="/_app/immutable/chunks/BT2vrlul.js" rel="modulepreload">
28
+ <link href="/_app/immutable/chunks/B_gnhZ39.js" rel="modulepreload">
29
+ <link href="/_app/immutable/chunks/CdjBDc_u.js" rel="modulepreload">
30
+ <link href="/_app/immutable/chunks/BgJCuTDs.js" rel="modulepreload">
31
+ <link href="/_app/immutable/chunks/1aUphu7Y.js" rel="modulepreload">
32
32
  <link href="/_app/immutable/chunks/DZ_Kltd5.js" rel="modulepreload">
33
33
  <link href="/_app/immutable/chunks/DOjT7y5f.js" rel="modulepreload">
34
34
  <link href="/_app/immutable/chunks/DApmS1g_.js" rel="modulepreload">
35
- <link href="/_app/immutable/chunks/DgfWqxEz.js" rel="modulepreload">
35
+ <link href="/_app/immutable/chunks/M-b0y9AQ.js" rel="modulepreload">
36
+ <link href="/_app/immutable/chunks/Do_MDwCJ.js" rel="modulepreload">
36
37
  <link href="/_app/immutable/chunks/F_BrNiaz.js" rel="modulepreload">
37
38
  <link href="/_app/immutable/chunks/CpRvgjpe.js" rel="modulepreload">
38
39
  <link href="/_app/immutable/chunks/UeEccMjN.js" rel="modulepreload">
39
40
  <link href="/_app/immutable/chunks/BIfnT_mK.js" rel="modulepreload">
40
- <link href="/_app/immutable/chunks/N4Ne5qCB.js" rel="modulepreload">
41
+ <link href="/_app/immutable/chunks/Ccj5eiVa.js" rel="modulepreload">
41
42
  <link href="/_app/immutable/chunks/HopcQwhZ.js" rel="modulepreload">
42
43
  <link href="/_app/immutable/chunks/ChvFFUWR.js" rel="modulepreload">
43
44
  <link href="/_app/immutable/chunks/C67g-p2T.js" rel="modulepreload">
44
45
 
45
46
  <link href="/_app/immutable/assets/shell.U4CQV8re.css" rel="stylesheet">
46
- <link href="/_app/immutable/assets/0.Ce1ZW9xU.css" rel="stylesheet">
47
+ <link href="/_app/immutable/assets/0.B4ZC2KQW.css" rel="stylesheet">
47
48
  <link href="/_app/immutable/assets/ProviderView.BKgtsfqs.css" rel="stylesheet">
48
49
  <link href="/_app/immutable/assets/SettingsPage.DclbL_Wf.css" rel="stylesheet">
49
50
  </head>
@@ -51,15 +52,15 @@
51
52
  <div style="display: contents">
52
53
  <script>
53
54
  {
54
- __sveltekit_1fl5ljk = {
55
+ __sveltekit_1doh4mr = {
55
56
  base: ""
56
57
  };
57
58
 
58
59
  const element = document.currentScript.parentElement;
59
60
 
60
61
  Promise.all([
61
- import("/_app/immutable/entry/start.BCFPuXD4.js"),
62
- import("/_app/immutable/entry/app.BbnICwcR.js")
62
+ import("/_app/immutable/entry/start.gejSBBnR.js"),
63
+ import("/_app/immutable/entry/app.SX0t6ojk.js")
63
64
  ]).then(([kit, app]) => {
64
65
  kit.start(app, element);
65
66
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skill-creator",
3
- "version": "2.3.1",
3
+ "version": "2.4.0",
4
4
  "description": "A local-first CLI and tray workbench for discovering, creating, validating, and installing agent skills.",
5
5
  "keywords": [
6
6
  "ccski",
@@ -26,6 +26,7 @@
26
26
  },
27
27
  "files": [
28
28
  "dist",
29
+ "skills",
29
30
  "README.md",
30
31
  "README-zh.md",
31
32
  "LICENSE",
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: skill-creator-v2
3
+ description: 本机 Agent 技能工作台 Skill Creator (V2) 的使用指南。当需要搜索/查找本机已安装技能(find/search skills)、读取技能全文、管理技能(安装/更新/启停/校验/清理重复)、维护 skill wiki,或用户提到 skill-creator / skill creator / 技能管理器 / skills manager / SKILL.md 管理时使用。两条通路:CLI(skill-creator search / wiki / mcp …)与只读 MCP 工具面(skills_search / skills_info / wiki_read …);变更类操作一律经 Skill Creator GUI 人工审批。
4
+ x-managed-by: skill-creator
5
+ ---
6
+
7
+ <!--
8
+ 文件意图:本目录是 Skill Creator 产品自带的官方技能源(随 npm 包 / git 仓库分发)。
9
+ ~/.agents/skills/skill-creator-v2 是指向本目录的符号链接(daemon 启动时自举维护,
10
+ 来源经 package.json 身份鉴定)。内容是产品对外行为面(CLI + MCP readonly 工具)的
11
+ 文档投影,事实源在产品仓库;升级包后本文件自动保鲜,无需任何迁移。
12
+ -->
13
+
14
+ # Skill Creator V2 — 本机技能管理与检索入口
15
+
16
+ Skill Creator 是本机的技能工作台:管理所有 Agent 的技能目录(发现 / 校验 / 启停 /
17
+ 安装 / 更新 / 修订历史),并提供本地 BM25 检索与技能 wiki。本机全部技能按
18
+ Workspace(`~` = 全局聚合,或已导入的 ws_* 目录)→ Provider(claude-code / codex /
19
+ cursor / zcode 等 Agent 的 skills root)两层作用域组织。
20
+
21
+ ## 通路选择
22
+
23
+ ```text
24
+ 要做什么?
25
+ ├─ 找技能 / 搜本机已装技能 ──────────> CLI: skill-creator search <query>
26
+ │ 或 MCP: skills_search {query, limit?}
27
+ ├─ 读某个技能的全文 / 校验它 ─────────> MCP: skills_search 拿 {workspaceId,
28
+ │ providerId, skillId} 三元组
29
+ │ → skills_info / skills_validate
30
+ ├─ 列出本机有哪些 Workspace/Provider > MCP: workspace_list
31
+ ├─ 装新技能 / 更新 / 启停 / 编辑 ─────> 引导用户在 GUI 操作(skill-creator start);
32
+ │ 读写面只读,mutation 需 GUI 人工审批
33
+ ├─ 技能经验 / 认知碎片 wiki ──────────> CLI: skill-creator wiki <子命令>
34
+ │ 或 MCP: wiki_scopes / wiki_list / wiki_read
35
+ └─ 结构化批量消费(推荐常驻)─────────> 注册 MCP: skill-creator mcp(stdio,只读)
36
+ ```
37
+
38
+ ## 硬规则
39
+
40
+ - **只读面**:CLI/MCP 通路对技能数据只读;安装、更新、启停、编辑、删除都在
41
+ Skill Creator GUI 内完成(`skill-creator start` 启动)——先向用户说明要做什么、
42
+ 影响哪些技能,再引导操作,不要声称"已修改"。
43
+ - **opaque id**:skillId(`sk_*`)与三元组由服务端签发,不要手工拼路径或猜测;
44
+ 永远先 `skills_search` / `workspace_list` 拿真 id。
45
+ - **搜索不需要 daemon**:`skill-creator search` 进程内完成(首次建索引稍慢)。
46
+
47
+ ## 深入
48
+
49
+ 完整 MCP 工具目录(含每个工具的输入形状)、CLI 全参考、Workspace/Provider 概念
50
+ 与 MCP stdio 注册片段见 [references/tools.md](references/tools.md)。
@@ -0,0 +1,161 @@
1
+ # Skill Creator 工具参考
2
+
3
+ 事实源:CLI 帮助(`skill-creator help`)与产品 capability 登记表。工具名规则:
4
+ capability 名点号→下划线(`skills.search` → `skills_search`)。
5
+
6
+ ## 概念模型
7
+
8
+ ```text
9
+ Workspace(作用域第一层)
10
+ |-- "~" Global Workspace:聚合所有 Agent 的全局 skills roots(只读消费)
11
+ `-- ws_* Imported Workspace:已导入的本机目录(可写:创建/编辑/安装)
12
+ Provider = 一个 Workspace 内的 Agent skills root(providerId ∈ 社区 catalog:
13
+ claude-code / codex / cursor / zcode / gemini-cli / warp / zed …)
14
+ 技能身份 = { workspaceId, providerId, skillId(sk_*) } 三元组(服务端 opaque 签发)
15
+ ```
16
+
17
+ - Global(`~`)可发现/查看/校验/启停既有技能,但创建与安装目标只能是 Imported
18
+ Workspace——装技能前先用 `workspace_list` 确认可写目标,没有就引导用户在 GUI
19
+ 导入目录。
20
+ - 同一技能可能出现在多个 provider root(内容重复);`skills_duplicates` 给出
21
+ contentHash 分组,去重决策留给用户。
22
+
23
+ ## MCP 通路(结构化消费推荐)
24
+
25
+ 注册 stdio server(readonly 面,不需要 daemon 常驻):
26
+
27
+ ```json
28
+ {
29
+ "mcpServers": {
30
+ "skill-creator": { "command": "skill-creator", "args": ["mcp"] }
31
+ }
32
+ }
33
+ ```
34
+
35
+ (各宿主的 MCP 配置位置不同:Claude Code `claude mcp add skill-creator -- skill-creator mcp`;
36
+ ZCode/Codex/其它宿主写各自 mcp 配置,命令同为 `skill-creator mcp`。)
37
+
38
+ ### 只读工具目录(stdio / daemon 内同构)
39
+
40
+ | 工具 | 输入(JSON) | 用途 |
41
+ | --------------------------- | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
42
+ | `workspace_list` | {} | 列 Workspace(含 provider roots 与计数) |
43
+ | `skills_list` | {workspaceId, providerId, includeDisabled?} | 列一个 provider 的技能 |
44
+ | `skills_info` | {workspaceId, providerId, skillId} | 读技能全文 + 元数据 |
45
+ | `skills_validate` | {workspaceId, providerId, skillId} | 校验技能结构/frontmatter |
46
+ | `skills_search` | {query, limit? (1-50, 默认 10)} | 跨全部 Workspace 的 BM25 检索 |
47
+ | `skills_duplicates` | {} | 内容重复技能分组 |
48
+ | `skills_search_config_open` | {} | 用系统编辑器打开检索排除配置 |
49
+ | `skills_update_check` | {workspaceId, providerId, skillIds?} | 对照上游 lock hash 的过期检查 |
50
+ | `creator_load` | {workspaceId, providerId, skillId} | 可编辑文档基线(含 revision) |
51
+ | `creator_revisions` | {workspaceId, providerId, skillId, limit? ≤100} | 修订历史(含 diff) |
52
+ | `repository_scan` | {source, ref?} | 浅克隆+钉 commit+扫描 Git 技能源 |
53
+ | `repository_sources_list` | {} | 列 curated/user 发现源(https Git) |
54
+ | `wiki_scopes` | {} | 列 wiki 作用域(global + 各 workspace) |
55
+ | `wiki_list` | {scope} | 列一个作用域的 pattern 碎片 |
56
+ | `wiki_read` | {scope, name} | 读一篇 pattern 全文 |
57
+ | `wiki_distill_start` | {source, limit? ≤100} | 蒸馏 run(需产品 agent 内核;独立 stdio 形态下 start 正常返回 runId,run 立即 failed(kernel-unavailable),经 wiki_distill_status 可见) |
58
+ | `wiki_distill_status` | {runId} | 蒸馏 run 状态/提案台账 |
59
+ | `wiki_distill_cancel` | {runId} | 取消蒸馏 run |
60
+
61
+ 变更类能力(安装/更新执行/启停/编辑/删除/写 wiki)在 MCP 面只有 `*_propose`
62
+ 提案变体且仅存在于产品 GUI 的内置会话——外部 Agent 一律引导用户在 GUI 完成。
63
+
64
+ MCP resource 面:`skill-creator://skill/{workspaceId}/{providerId}/{skillId}`
65
+ (技能文档只读资源)。
66
+
67
+ ## CLI 全参考
68
+
69
+ ```text
70
+ skill-creator start Boot the daemon and open the tray window
71
+ skill-creator open Show/focus the tray window of a running daemon
72
+ skill-creator openinbrowser Open the running WebUI in the system browser
73
+ skill-creator status Check the running daemon
74
+ skill-creator stop Gracefully stop the daemon
75
+ skill-creator search Search local skills (BM25 + skill tokenizer)
76
+ skill-creator wiki Persistent agent-experience wiki
77
+ (list/show/add/find/edit/remove/log/impact/scopes/distill)
78
+ skill-creator skills Manage skills (list/info/validate/toggle/duplicates/update)
79
+ skill-creator model Configure agent models (list/routes/use/route/key/test)
80
+ skill-creator mcp Run the skill-creator MCP server over stdio (readonly face)
81
+ skill-creator setup Install/repair the global self skill link + agents-md block;
82
+ --model <p>/<m> 配置模型段
83
+ skill-creator self-skill Inspect the global self skill link (status | keep)
84
+ skill-creator version Print the version
85
+ skill-creator help Show this help
86
+ ```
87
+
88
+ ### search 细节
89
+
90
+ ```bash
91
+ skill-creator search <query...> [--json] [--limit N] # limit 1-50,默认 10
92
+ ```
93
+
94
+ - 进程内完成(不要求 daemon 在运行);空 query 或 flag 解析失败 exit 1。
95
+ - `--json` 输出 `{ "results": [...] }`(每项主要字段:name/description/
96
+ canonicalPath/score/installations/duplicates,另有 id/contentHash 等);人读模式
97
+ 含路径与重复项。
98
+ - 中英混合 query 均可(tokenizer 含中文 bigram 与 Latin 标识符切分)。
99
+
100
+ ### wiki 细节
101
+
102
+ `skill-creator wiki <子命令>` 进程内执行(`distill` 例外,走 daemon RPC):
103
+ list/show/add/find/edit/remove/log/impact/scopes/distill。`--workspace` 支持
104
+ registry label/ws_id 或路径直传。wiki 目录 = `<workspace>/.agents/skill-wiki/`。
105
+
106
+ ### skills 细节(与 WebUI 同源,进程内执行)
107
+
108
+ ```bash
109
+ skill-creator skills list [<workspace>] [--provider <p>] [--all] [--json]
110
+ skill-creator skills info <workspace> <provider> <skill> [--json]
111
+ skill-creator skills validate <workspace> <provider> <skill>
112
+ skill-creator skills toggle <workspace> <provider> <skill>... (--enable|--disable)
113
+ skill-creator skills duplicates [--json]
114
+ skill-creator skills update check <workspace> <provider> [--json]
115
+ skill-creator skills update apply <workspace> <provider> <skillName>... [--json]
116
+ ```
117
+
118
+ - 引用解析:workspace = `~`/路径/ws_* id/label 前缀;provider = id 或 label 前缀;
119
+ skill = name/directoryName/sk_ id。歧义或零匹配列出候选并 exit 2。
120
+ - 退出码:0 成功;1 业务失败(validate 无效、toggle conflict、update failed);
121
+ 2 用法错误。
122
+ - symlink 条目的启停按 conflict 投影(管理链接本身,不穿透改名)。
123
+
124
+ ### model 细节(与 WebUI 同源,进程内执行)
125
+
126
+ ```bash
127
+ skill-creator model list [--json] # 目录 provider + 路由/活动标注
128
+ skill-creator model routes [--json] # 路由表 + 活动模型 + key configured 状态
129
+ skill-creator model use <provider> <model> [--effort <tier>]
130
+ skill-creator model route add <provider> --base-url <url> [--api <protocol>] --model <id>...
131
+ skill-creator model route remove <provider>
132
+ skill-creator model key set <provider> <apiKey|-> # `-` 从 stdin 读,避免进 shell 历史
133
+ skill-creator model key clear <provider>
134
+ skill-creator model test [<provider> [<model>]]
135
+ ```
136
+
137
+ - 与 WebUI 同一份持久化(`~/.skill-creator/steward-store/`);key 明文永不回显。
138
+ - `use` 对目录内 provider 自动补路由(api/baseURL/models 由目录推导)。
139
+
140
+ ### setup 模型段
141
+
142
+ ```bash
143
+ skill-creator setup [--backup] [--model <provider>/<model>] [--effort <tier>] \
144
+ [--base-url <url>] [--api <protocol>] [--api-key <key|none>]
145
+ ```
146
+
147
+ - `--model` 是模型段开关;其余模型 flag 必须伴随它(否则 exit 2)。
148
+ - 段内顺序:key set(`none` 跳过)→ route add(无路由且给 `--base-url` 时)→ use。
149
+ - 模型段失败 exit 1,但不回滚已完成的技能链接与 agents-md 块。
150
+
151
+ ## 技能更新模型
152
+
153
+ skills-CLI(`npx skills`)安装的技能带 lock hash:`skills_update_check` 只读对比
154
+ 上游;过期技能的执行重装(apply)在 GUI 完成(Repository 安装管线 + 校验链)。
155
+ 手工放入的技能(投影为 installedVia: "unknown"、updatable: false)不参与 lock 对比。
156
+
157
+ ## 安全与边界
158
+
159
+ - MCP/HTTP 面只监听 loopback;daemon WebUI token 不出本机。
160
+ - 不要绕过工具面直接读写技能文件来做"管理"——启停状态、revision 校验、安装验证
161
+ 都有服务端不变量,绕过会破坏它们。