@wenaixi/dsh-superpower 7.5.8 → 7.7.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.
package/README.md CHANGED
@@ -5,14 +5,16 @@
5
5
  [![npm](https://img.shields.io/npm/v/@wenaixi%2Fdsh-superpower?label=npm)](https://www.npmjs.com/package/@wenaixi/dsh-superpower)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE)
7
7
  [![DSH](https://img.shields.io/badge/DSH-Plugin-7c3aed)](https://github.com/deepseek-ai/deepseek-harness)
8
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-5FA04E)](https://nodejs.org)
9
+ [![pnpm](https://img.shields.io/badge/pnpm-%3E%3D11-F69220)](https://pnpm.io)
8
10
 
9
11
  <img src="./icon.png" alt="@wenaixi/dsh-superpower" width="128" height="128">
10
12
 
11
- A DSH port of [obra/superpowers](https://github.com/obra/superpowers). 15 skills are injected into `ctx.skills`. Skill bodies are the official English originals; the panel switches each skill's name and description between Chinese and English.
13
+ A DSH port of [obra/superpowers](https://github.com/obra/superpowers). 15 skills are injected into `ctx.skills`. Skill bodies are the official English originals; the panel switches the description each skill shows in the model catalog and the slash-command (`/`) skill menu between Chinese and English, while skill names stay as upstream English.
12
14
 
13
15
  ## Install
14
16
 
15
- Node 20+, pnpm 11+, and the dsh runtime (`npm i -g @deepseek-ai/dsh`). Examples use the `web` profile; substitute your own profile name.
17
+ Needs the dsh runtime (`npm i -g @deepseek-ai/dsh`); Node and pnpm floors are in the badges above. Examples use the `web` profile; substitute your own profile name.
16
18
 
17
19
  ```bash
18
20
  # A - npm (recommended, always latest)
@@ -28,15 +30,14 @@ dsh --profile web --dump-config | grep -A2 "@wenaixi/dsh-superpower"
28
30
  dsh --profile web # skills are available immediately
29
31
  ```
30
32
 
31
- Pin a version by appending `@<version>` (`@wenaixi/dsh-superpower@7.5.8`) or `#v7.5.8`.
33
+ Pin a version by appending `@<version>` or `#v<version>` (the version currently published; check `npm view @wenaixi/dsh-superpower version`).
32
34
 
33
- The old unscoped package name `dsh-superpower` is deprecated (`npm deprecate`); use the scoped one.
34
35
 
35
36
  Local development or offline install:
36
37
 
37
38
  ```bash
38
39
  git clone https://github.com/Wenaixi/dsh-superpower && cd dsh-superpower
39
- pnpm install && pnpm build && node scripts/verify.mjs # ALL PASS
40
+ pnpm install && pnpm build && node scripts/verify.mjs # prints ALL PASS
40
41
  dsh plugin --profile web add ./ # install from local path
41
42
  pnpm pack && dsh plugin --profile web add ./wenaixi-dsh-superpower-*.tgz
42
43
 
@@ -71,7 +72,7 @@ Skill bodies are the upstream English originals (DSH-adapted: symbols, platform
71
72
  | `finishing-a-development-branch` | Decide whether to merge, open a PR, or keep the branch |
72
73
  | `writing-skills` | Create or edit a skill |
73
74
 
74
- Tool mapping (Bash to pwsh, Read/Write to fs, and so on) lives in `skills/using-superpowers/references/dsh-tools.md` and its English twin `dsh-tools.en.md`.
75
+ Tool mapping (Bash to pwsh, Read/Write to fs, and so on) lives in `skills/using-superpowers/references/dsh-tools.md`.
75
76
 
76
77
  ### Same-name precedence
77
78
 
@@ -82,13 +83,12 @@ The official registry arbitrates same-layer name collisions by ascending `rank`.
82
83
  Open the `@wenaixi/dsh-superpower` card in the plugin manager; the panel sits at the bottom of its detail page.
83
84
 
84
85
  - One switch per skill. Off means both sides lose it: the model no longer sees it in the available-skill catalog and `skill` tool calls are rejected; you can no longer reach it from slash-command completion or the CLI skill list.
85
- - A single `中文 / English` button sits at the top of the panel, under the intro line, and switches the description language of all 15 skills at once — only the `Superpower Skill:` text users and the model see. The button label and the descriptions follow the preference; the rest of the panel stays in the Host UI language and skill bodies stay the English originals. The body is always the English original. Both descriptions start with `Superpower Skill:` / `Superpower Skill:`. The choice is per-language (a single `language` preference) and stored in the profile. Until you touch it, descriptions follow the Host UI language (settings language); once you switch it in the panel, the language stays fixed.
86
- - The panel header also carries enable-all, disable-all, restore-defaults, and a search box. The head line shows this bundle's `provider`, `rank`, `source`, and panel build.
86
+ - A 3-state segmented control (`中文 / English / 跟随宿主(自动)`) at the top of the panel switches the description language of all 15 skills at once. It changes only the `Superpower Skill:` text: the rest of the panel stays in the Host UI language and skill bodies stay English. Both descriptions carry the `Superpower Skill:` / `Superpower Skill:` prefix. When unset, descriptions follow the Host UI language (the language chosen in settings) and the control displays an indicator; picking `中文` or `English` locks the selection, and picking `跟随宿主(自动)` resets to following the Host. The choice is stored as a `language` preference in the profile (unset when following the Host).
87
+ - The panel header carries enable-all, disable-all, restore-defaults, and a search box.
87
88
  - Changes take effect immediately; the running turn is unaffected and the next turn sees the new catalog and language.
88
89
  - State lives in the profile's `cordis.patch.yml` (`disabled` and `language` tables) and travels with the profile.
89
90
  - Only this bundle's 15 skills are affected; official and third-party skills are untouched.
90
91
 
91
- Before 7.4.0 there were two switches per skill (model-invocable / user-invocable) backed by `modelDisabled` and `userDisabled`. Both fields are deprecated: old values keep working after an upgrade, and your first panel interaction clears them, converging the config onto `disabled`.
92
92
 
93
93
  ## Usage
94
94
 
@@ -168,41 +168,16 @@ locale/ # plugin card title and description (zh/en); panel UI follow
168
168
  icon.png # plugin card, README header, GitHub avatar
169
169
  scripts/ # gates, precedence runs, switch runs, upstream sync review, browser verification
170
170
  scripts/build-client.mjs # copies the client artifact, then checks the inline catalog against skills/
171
+ scripts/lib/contract.mjs # skill content contract checks, all rules in one place
172
+ scripts/lib/sync-engine.mjs # upstream sync engine, returns structured diagnostics
173
+ scripts/lib/harness-common.mjs # shared skeleton for the two same-name arbitration runs
174
+ scripts/lib/client-manifest.mjs # inline catalog vs skills/ drift check
175
+ scripts/lib/sync-common.mjs # shared sync primitives: normalization, code fences, walk
171
176
  ```
172
177
 
173
- ## Version history
178
+ ## Changelog
174
179
 
175
- Since `v7.0.0` skill names follow upstream naming (no `superpower-` prefix) and the bundle syncs upstream `obra/superpowers v6.4.2`; the plugin became DSH-only, dropping compatibility layers for Claude Code, Codex, Gemini CLI, and other hosts. npm `7.0.0` was published before that specialization and is deprecated.
176
-
177
- `v7.1.0` extracted the `SkillCatalog` and `SkillDocument` deep modules and pushed boundary self-tests down into the modules themselves.
178
-
179
- `v7.1.1` fixed the official filesystem precedence script failing to locate `@deepseek-ai/dsh-skill-filesystem` under the pnpm isolated layout.
180
-
181
- `v7.2.0` added the skill switch panel, turning the plugin into a dual-face form (Host side registers skills, browser side renders the panel) and adding the icon and card metadata.
182
-
183
- `v7.3.0` upgraded snapshot invalidation to a three-key aggregate fingerprint (directory mtime + root directory names + per-skill SKILL.md mtime), closing two blind windows (content edits and incremental creation); the skill-count magic number became an exported constant; the bare-call guard regex was corrected against the real data domain and its self-test blind spot closed; client manifest comparison became name-keyed.
184
-
185
- `v7.2.1` fixed the panel's language boundary: skill content (names and descriptions) stayed Chinese with no per-skill translation; all panel UI copy (titles, buttons, hints, meta labels) moved into `zh`/`en` dictionaries and follows the Host UI language through the official locale registry. The provider/rank/source labels stopped being hardcoded English.
186
-
187
- `v7.4.0` merged each skill's two switches into one and converged configuration onto a single `disabled` table; brainstorming's visual collaboration moved to DSH's official document preview and the bundled HTTP server scripts were removed.
188
-
189
- `v7.4.1` fixed switch saves failing: the `dsh-settings` write gate validates every `op.path` against a volatile node, and dropping `.volatile()` from the two legacy fields made the whole `mutate` batch fail; restoring the marker fixed it. The panel header gained a panel-build label.
190
-
191
- `v7.5.0` shipped every skill with an English body (`SKILL.en.md`, upstream original adapted for DSH) beside the Chinese one, added a per-skill `中文 / English` switch, made English descriptions always start with `Superpower Skill: `, routed the same language preference to the model-side catalog and body, and made README.md English by default with a Chinese twin.
192
-
193
- `v7.5.8` eliminated silent failure in the language bar (renders `spSwLangFailure` alerts on mutation issues instead of failing silently) and solidified hot-reload resilience.
194
-
195
- `v7.5.7` fixed the panel version label and added a visible scope note.: it switches the `Superpower Skill:` text users and the model see, the button label, and nothing else — the rest of the panel stays in the Host UI language, and skill bodies remain the English originals.: the panel's own copy (title, bulk buttons, search box, hints, meta labels) switches with the skill descriptions instead of following the Host UI language.
196
-
197
- `v7.5.4` republished under a fresh version: the 7.5.3 release hit an npm staged-publish conflict; the code is identical to 7.5.3.
198
-
199
- `v7.5.3` fixed the language button label: it now shows the target language based on the effective language (falling back to the Host language when the preference is unset), so an untouched panel correctly offers `English` and clicking it actually switches.
200
-
201
- `v7.5.2` moved the language switch to a single button at the top of the panel: it now controls all 15 skills at once, and while the `language` preference is unset the descriptions follow the Host UI language (settings language); once set, they stay fixed.
202
-
203
- `v7.5.1` makes skill bodies the official English originals (single `SKILL.md` per skill, DSH-adapted), keeps Chinese as the panel language via `description_zh`, so the language switch changes only the description the model sees. The `中文 / English` switch, the `Superpower Skill: ` prefixes, and the bilingual README remain.
204
-
205
- Full history in [CHANGELOG.md](./CHANGELOG.md).
180
+ Release notes live in [CHANGELOG.md](./CHANGELOG.md), newest first, one section per version.
206
181
 
207
182
  ## FAQ
208
183
 
@@ -212,7 +187,7 @@ Full history in [CHANGELOG.md](./CHANGELOG.md).
212
187
 
213
188
  ## License
214
189
 
215
- MIT, same as upstream [obra/superpowers](https://github.com/obra/superpowers). See [LICENSE](./LICENSE).
190
+ MIT. Full text in [LICENSE](./LICENSE).
216
191
 
217
192
  ## Contributing
218
193
 
@@ -220,5 +195,6 @@ Issues and PRs welcome. See [CONTRIBUTING.md](./CONTRIBUTING.md).
220
195
 
221
196
  ## Credits
222
197
 
223
- - Upstream author [Jesse Vincent](https://blog.fsck.com) and [Prime Radiant](https://primeradiant.com)
198
+ - Upstream [obra/superpowers](https://github.com/obra/superpowers)
224
199
  - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) for the three-role plugin architecture
200
+ - [dsh-plugin-dev](https://github.com/Wenaixi/dsh-plugin-dev) for DSH plugin development standards, architecture references, and verification methodologies
package/README.zh.md CHANGED
@@ -5,14 +5,16 @@
5
5
  [![npm](https://img.shields.io/npm/v/@wenaixi%2Fdsh-superpower?label=npm)](https://www.npmjs.com/package/@wenaixi/dsh-superpower)
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](./LICENSE)
7
7
  [![DSH](https://img.shields.io/badge/DSH-Plugin-7c3aed)](https://github.com/deepseek-ai/deepseek-harness)
8
+ [![Node](https://img.shields.io/badge/node-%3E%3D20-5FA04E)](https://nodejs.org)
9
+ [![pnpm](https://img.shields.io/badge/pnpm-%3E%3D11-F69220)](https://pnpm.io)
8
10
 
9
11
  <img src="./icon.png" alt="@wenaixi/dsh-superpower" width="128" height="128">
10
12
 
11
- [obra/superpowers](https://github.com/obra/superpowers) 的 DSH 移植版。15 个技能注入 `ctx.skills`,装上就能用,正文全中文。
13
+ [obra/superpowers](https://github.com/obra/superpowers) 的 DSH 移植版。15 个技能注入 `ctx.skills`,装上就能用;技能正文是上游英文原版,技能名保持上游英文原名,面板可切换每个技能在模型目录与斜杠(`/`)唤出技能栏中**描述**的中英文。
12
14
 
13
15
  ## 安装
14
16
 
15
- 需要 Node 20 以上、pnpm 11 以上,以及 dsh 本体(`npm i -g @deepseek-ai/dsh`)。下面以 `web` profile 为例,换个 profile 名字即可。
17
+ 需要 dsh 本体(`npm i -g @deepseek-ai/dsh`),Node 与 pnpm 的版本要求见上方徽章。下面以 `web` profile 为例,换个 profile 名字即可。
16
18
 
17
19
  ```bash
18
20
  # A — npm(推荐,自动装最新)
@@ -28,15 +30,14 @@ dsh --profile web --dump-config | grep -A2 "@wenaixi/dsh-superpower"
28
30
  dsh --profile web # 进会话,技能自动可用
29
31
  ```
30
32
 
31
- 要锁版本就在包名后加 `@<version>`(`@wenaixi/dsh-superpower@7.2.0`)或 `#v7.2.0`。
33
+ 要锁版本就在包名后加 `@<version>` 或 `#v<version>`(具体版本以 `npm view @wenaixi/dsh-superpower version` 当前发布为准)。
32
34
 
33
- 旧包名 `dsh-superpower`(不带 scope)已经废弃并 `npm deprecate`,请换成带 scope 的。
34
35
 
35
36
  本地开发或离线安装:
36
37
 
37
38
  ```bash
38
39
  git clone https://github.com/Wenaixi/dsh-superpower && cd dsh-superpower
39
- pnpm install && pnpm build && node scripts/verify.mjs # 15/15 PASS
40
+ pnpm install && pnpm build && node scripts/verify.mjs # 末行打印 ALL PASS
40
41
  dsh plugin --profile web add ./ # 本地路径安装
41
42
  pnpm pack && dsh plugin --profile web add ./wenaixi-dsh-superpower-*.tgz
42
43
 
@@ -47,7 +48,9 @@ dsh plugin --profile web remove @wenaixi/dsh-superpower
47
48
 
48
49
  ## 是什么
49
50
 
50
- 一套强制的工程方法论,模型不按顺序走就会做错:先设计,再把计划切成可校验的小步,然后测试驱动,调试时先找根因,收尾前必须跑验证命令。装在 `dsh.bundle` 里,不往用户目录里写东西,卸载干净,HMR 会自动重建。
51
+ 一套工程纪律:先设计,再把计划切成可校验的小步,然后测试驱动,调试时先找根因,收尾前必须跑验证命令。技能正文是上游英文原版,frontmatter 同时声明英文 `description` 与中文 `description_zh`,面板的语言开关只决定模型与用户看到哪一份描述,不改正文。
52
+
53
+ 装在 `dsh.bundle` 里,不往用户目录写东西,卸载干净,HMR 会自动重建。
51
54
 
52
55
  ## 包含技能
53
56
 
@@ -75,22 +78,20 @@ dsh plugin --profile web remove @wenaixi/dsh-superpower
75
78
 
76
79
  官方注册表在同层重名时按 `rank` 从小到大裁决。本包 rank 是 10,比 `dsh-skill-filesystem` 的项目级和用户级(100–500)以及官方内置 bundled(600)都小,所以只要有同名技能,本包这份生效,不会有两套规则打架。
77
80
 
78
- ## 技能开关
81
+ ## 技能开关与语言偏好
79
82
 
80
83
  插件管理页里点开 `@wenaixi/dsh-superpower` 卡片,详情页底部就是开关面板。每个技能一个开关,关掉即两侧同时不可见:
81
84
 
82
85
  - 模型不再在可用技能目录里看到它,`skill` 工具调用也会被拒;
83
86
  - 你也没法再从斜杠命令补全或命令行技能清单里调它。
84
87
 
85
- 面板上方还有全部开启、全部关闭、恢复默认三个批量操作和一个搜索框。页头标着本包的 `provider`、`rank`、`source`,排查同名覆盖时用得上。
88
+ 面板上方还有全部开启、全部关闭、恢复默认三个批量操作和一个搜索框。
86
89
 
87
90
  - 拨动后立即生效,模型的下一轮对话就能看到新目录;当前这一轮不受影响。
88
- - 状态写在 profile 的 `cordis.patch.yml` 的 `disabled` 字段里,跟着 profile 一起备份迁移,重装插件不丢。
91
+ - 状态写在 profile 的 `cordis.patch.yml` 的 `disabled` 与 `language` 字段中,跟着 profile 一起备份迁移,重装插件不丢。
89
92
  - 只影响本包这 15 个技能,不碰官方和第三方插件提供的技能。
90
- - 语言切换:面板顶部(说明文案之下)一个「中文 / English」按钮,一次切换全部 15 个技能的名称与描述显示语言(英文 `description` 与中文 `description_zh`)。正文一律为英文原版。两种描述分别以 `Superpower Skill: ` / `Superpower Skill:` 开头。未在面板调过语言时,描述跟随宿主界面语言(设置里选的语言);调过后固定为该语言。
91
- - 面板 UI 文案(标题、按钮、提示、meta 标签)跟随宿主界面语言(设置里切换语言即生效)。
93
+ - 语言切换:面板顶部(说明文案之下)提供「中文 / English / 跟随宿主(自动)」三段式选择器,一次切换全部 15 个技能描述(英文 `description` 与中文 `description_zh`)的显示语言,即模型目录与斜杠唤出技能栏里看到的描述文本;技能名与正文都不变。控件只影响 `Superpower Skill:` 后面的文本:面板其余 UI(标题、批量按钮、搜索框、提示)跟随宿主界面语言,技能正文恒为英文原版。两种描述分别以 `Superpower Skill: ` / `Superpower Skill:` 开头。未配置时描述动态跟随宿主界面语言(设置里选的语言),并显示提示;显式选择中文或 English 后锁定,选择「跟随宿主(自动)」即可随时清除锁定、恢复跟随宿主。偏好保存在 profile 的 `language` 字段中(跟随宿主时自动 unset)。
92
94
 
93
- 7.3.0 及更早版本用过两个开关(模型可调用 / 用户可调用),对应 `modelDisabled` 与 `userDisabled` 两张表。这两个字段已废弃:升级后旧值继续生效,你第一次拨动开关时它们会被清空,配置收敛到 `disabled` 一张表。
94
95
 
95
96
  ## 使用
96
97
 
@@ -170,43 +171,16 @@ locale/ # 插件卡片的标题与描述(中英);面板 UI 经
170
171
  icon.png # 插件卡片、README 顶部、GitHub 头像共用
171
172
  scripts/ # 门禁、同名裁决实测、开关实测、上游同步复核、浏览器验证
172
173
  scripts/build-client.mjs # 复制客户端产物后校验内联清单与 skills/ 目录一致
174
+ scripts/lib/contract.mjs # 技能内容契约治理,规则全内聚在这一处
175
+ scripts/lib/sync-engine.mjs # 上游同步引擎,返回结构化 diagnostics
176
+ scripts/lib/harness-common.mjs # 两个同名裁决实测脚本的公共骨架
177
+ scripts/lib/client-manifest.mjs # 内联清单与 skills/ 的漂移判定
178
+ scripts/lib/sync-common.mjs # 同步复核共享原语:归一化、代码块切分、目录遍历
173
179
  ```
174
180
 
175
- ## 版本沿革
176
-
177
- `v7.0.0` 起技能名回归上游命名(去掉 `superpower-` 前缀)并整批同步上游 `obra/superpowers v6.4.2`;插件变成 DSH 专属,移除了 Claude Code、Codex、Gemini CLI 等其它宿主的兼容层。npm 上的 `7.0.0` 发布在专属化改造之前,已废弃。
178
-
179
- `v7.1.0` 提炼 `SkillCatalog` 与 `SkillDocument` 两个深度模块,把边界自检下沉进模块自身。
180
-
181
- `v7.1.1` 修复官方 filesystem 同名实测脚本在 pnpm isolated 布局下定位不到 `@deepseek-ai/dsh-skill-filesystem` 的问题。
182
-
183
- `v7.2.0` 加入技能开关面板,插件升级为双面形态(宿主侧注册技能,浏览器侧渲染开关面板),并补上图标与插件卡片元数据。
184
-
185
- `v7.3.0` 技能快照失效判据升级为三键聚合指纹(目录 mtime + 根级目录名集合 + 各 SKILL.md mtime),消除内容编辑与增量新建两类失明窗口;技能总数魔法数收敛为导出常量;裸调用守卫正则按真实数据域修正并补全自检盲区;客户端清单比对改按技能名建 Map。
186
-
187
- `v7.2.1` 固化面板语言边界:技能内容(名称与描述)固定中文不做技能级翻译;面板 UI 文案(标题、按钮、提示、meta 标签)全部并入 `zh`/`en` 词典、经官方 locale 注册表随宿主界面语言切换。底部 `provider`/`rank`/`source` 三个标注不再硬编码英文。
188
-
189
- `v7.4.0` 每个技能从两个开关合并为一个,配置收敛到单张 `disabled` 表;brainstorming 的可视化协作改用 DSH 官方文档预览,不再随包附带 HTTP 服务脚本。
190
-
191
- `v7.5.0` 每个技能新增英文正文(`SKILL.en.md`,取自上游原版并做 DSH 专属化),与中文 `SKILL.md` 并存;面板每行新增「中文 / English」切换,英文描述一律以 `Superpower Skill: ` 开头;同一语言偏好同时决定模型侧目录描述与加载正文;README.md 改为默认英文并新增中文版 README.zh.md。
192
-
193
- `v7.5.8` 彻底消除语言栏静默失败(增加 `spSwLangFailure` 红色报错显式渲染,底层写入失败不再吞掉报错),强化热更新防御。
194
-
195
- `v7.5.7` 修复面板版本号显示并为语言按钮增加可见作用域说明。
196
-
197
- `v7.5.6` 语言按钮只控制技能描述(`Superpower Skill:` 后面的文本)与按钮自身文案;面板其余 UI 恢复跟随宿主界面语言,技能正文恒为英文原版。,不再跟随宿主界面语言。
198
-
199
- `v7.5.4` 改版重发(7.5.3 发布遇 npm staged-publish 冲突,代码内容与 7.5.3 相同)。
200
-
201
- `v7.5.3` 修复语言按钮显示:按钮按生效语言(未调过时取宿主语言)显示目标语言,未调过时正确显示 English、点击真正切换。
202
-
203
- `v7.5.2` 语言切换按钮上移到面板顶部、全局一个;未调过时描述跟随宿主界面语言,调过后固定。
204
-
205
- `v7.5.1` 技能正文统一为上游英文原版(单份 `SKILL.md`,DSH 专属化),中文描述移入 frontmatter `description_zh`,面板语言切换只改变模型看到的描述、正文恒英文。`中文 / English` 切换、`Superpower Skill:` 前缀与双语 README 保持不变。
206
-
207
- `v7.4.1` 修复开关保存失败:`dsh-settings` 的写入闸门逐条校验 `op.path` 是否落在 volatile 节点下,两个旧字段去掉 `.volatile()` 会让整批 `mutate` 被拒,恢复标注即可;面板页头补「面板版本」标注。
181
+ ## 更新日志
208
182
 
209
- 完整变更见 [CHANGELOG.md](./CHANGELOG.md)。
183
+ 版本沿革与逐版变更记录在 [CHANGELOG.md](./CHANGELOG.md),新版本在前,每个版本一段。
210
184
 
211
185
  ## 常见问题
212
186
 
@@ -216,7 +190,7 @@ scripts/build-client.mjs # 复制客户端产物后校验内联清单与 sk
216
190
 
217
191
  ## 协议
218
192
 
219
- MIT,与上游 [obra/superpowers](https://github.com/obra/superpowers) 一致。详见 [LICENSE](./LICENSE)。
193
+ MIT,详见 [LICENSE](./LICENSE)。
220
194
 
221
195
  ## 贡献
222
196
 
@@ -224,5 +198,6 @@ Issue 和 PR 都欢迎。详见 [CONTRIBUTING.md](./CONTRIBUTING.md)。
224
198
 
225
199
  ## 致谢
226
200
 
227
- - 上游作者 [Jesse Vincent](https://blog.fsck.com) 与 [Prime Radiant](https://primeradiant.com)
201
+ - 上游 [obra/superpowers](https://github.com/obra/superpowers)
228
202
  - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 的三角色插件架构
203
+ - [dsh-plugin-dev](https://github.com/Wenaixi/dsh-plugin-dev) 提供的 DSH 插件开发规范、架构参考与真机验收工程方法
package/lib/catalog.d.ts CHANGED
@@ -68,7 +68,6 @@ export declare class SkillCatalog {
68
68
  #private;
69
69
  readonly skillDir: string;
70
70
  private readonly entriesByName;
71
- private readonly entriesByDir;
72
71
  private readonly duplicates;
73
72
  private readonly missingSkillMd;
74
73
  private readonly loadErrors;
@@ -77,6 +76,7 @@ export declare class SkillCatalog {
77
76
  private lastScanProviderName?;
78
77
  private lastScanRank?;
79
78
  private lastScanLanguage?;
79
+ private scanPromise;
80
80
  constructor(skillDir: string);
81
81
  /**
82
82
  * 从指定目录异步扫描并构建已预热的 SkillCatalog 深度实例。
@@ -94,7 +94,7 @@ export declare class SkillCatalog {
94
94
  */
95
95
  private isDirModified;
96
96
  /**
97
- * 执行全量目录遍历与技能索引构建。
97
+ * 执行全量目录遍历与技能索引构建(含并发重入合并屏障)。
98
98
  */
99
99
  scan(options?: CatalogLookupOptions): Promise<void>;
100
100
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAC7E,OAAO,EAAE,aAAa,EAAE,KAAK,uBAAuB,EAAE,MAAM,eAAe,CAAA;AAG3E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,KAAK,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,IAAI,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,MAAM,CAAC,EAAE,aAAa,CAAA;IACtB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,aAAa,CAAA;IACvB,SAAS,EAAE,OAAO,CAAA;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,uBAAuB,EAAE,CAAA;IAClC,EAAE,EAAE,OAAO,CAAA;CACZ;AAED;;;;;;;;;GASG;AACH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA;AAEtC,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,aAAa,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAAE,CAAA;CACzC;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,YAAY,EAAE,CAAA;IACvB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IACzC,EAAE,EAAE,OAAO,CAAA;CACZ;AAED,qBAAa,YAAY;;IACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAkC;IAChE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAe;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IAGnE,OAAO,CAAC,gBAAgB,CAAyC;IACjE,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,oBAAoB,CAAC,CAAQ;IACrC,OAAO,CAAC,YAAY,CAAC,CAAQ;IAC7B,OAAO,CAAC,gBAAgB,CAAC,CAAa;IACtC,OAAO,CAAC,WAAW,CAA6B;gBAEpC,QAAQ,EAAE,MAAM;IAI5B;;OAEG;WACU,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,YAAY,CAAC;IAOnG;;OAEG;IACH,UAAU,IAAI,IAAI;IAalB;;;;;OAKG;YACW,aAAa;IAuC3B;;OAEG;IACG,IAAI,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2GzD;;;OAGG;IACG,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG;QAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,SAAS,cAAc,EAAE,CAAC;IA8BzJ;;;OAGG;IACG,aAAa,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG;QAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IA2CvK;;OAEG;WACU,QAAQ,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;IA8I3D;;OAEG;WACU,mBAAmB,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAkBhE;;OAEG;IACH,eAAe,IAAI,sBAAsB;CAkB1C"}
package/lib/catalog.js CHANGED
@@ -10,7 +10,7 @@
10
10
  */
11
11
  import { mkdtemp, mkdir, readdir, rm, stat, writeFile } from 'node:fs/promises';
12
12
  import { tmpdir } from 'node:os';
13
- import { join } from 'node:path';
13
+ import { basename, dirname, join } from 'node:path';
14
14
  import { SkillDocument } from './document.js';
15
15
  import { SkillSwitches } from './switches.js';
16
16
  /**
@@ -31,7 +31,6 @@ export const EXPECTED_SKILL_COUNT = 15;
31
31
  export class SkillCatalog {
32
32
  skillDir;
33
33
  entriesByName = new Map();
34
- entriesByDir = new Map();
35
34
  duplicates = [];
36
35
  missingSkillMd = [];
37
36
  loadErrors = [];
@@ -41,6 +40,7 @@ export class SkillCatalog {
41
40
  lastScanProviderName;
42
41
  lastScanRank;
43
42
  lastScanLanguage;
43
+ scanPromise = null;
44
44
  constructor(skillDir) {
45
45
  this.skillDir = skillDir;
46
46
  }
@@ -57,11 +57,13 @@ export class SkillCatalog {
57
57
  * 清空快照与索引,强制下一轮查询重新从磁盘装载。
58
58
  */
59
59
  invalidate() {
60
+ this.scanPromise = null;
60
61
  this.cachedCandidates = null;
61
62
  this.fingerprint = null;
63
+ this.lastScanProviderName = undefined;
64
+ this.lastScanRank = undefined;
62
65
  this.lastScanLanguage = undefined;
63
66
  this.entriesByName.clear();
64
- this.entriesByDir.clear();
65
67
  this.duplicates.length = 0;
66
68
  this.missingSkillMd.length = 0;
67
69
  this.loadErrors.length = 0;
@@ -96,7 +98,9 @@ export class SkillCatalog {
96
98
  }
97
99
  return false;
98
100
  }
99
- catch {
101
+ catch (err) {
102
+ if (signal?.aborted || err?.name === 'AbortError')
103
+ throw err;
100
104
  return true;
101
105
  }
102
106
  }
@@ -110,9 +114,17 @@ export class SkillCatalog {
110
114
  }
111
115
  }
112
116
  /**
113
- * 执行全量目录遍历与技能索引构建。
117
+ * 执行全量目录遍历与技能索引构建(含并发重入合并屏障)。
114
118
  */
115
119
  async scan(options) {
120
+ if (this.scanPromise !== null)
121
+ return this.scanPromise;
122
+ this.scanPromise = this.#scanInternal(options).finally(() => {
123
+ this.scanPromise = null;
124
+ });
125
+ return this.scanPromise;
126
+ }
127
+ async #scanInternal(options) {
116
128
  const signal = options?.signal;
117
129
  const logger = options?.logger;
118
130
  let dirStat;
@@ -143,7 +155,6 @@ export class SkillCatalog {
143
155
  }
144
156
  // 重置内存临时状态
145
157
  this.entriesByName.clear();
146
- this.entriesByDir.clear();
147
158
  this.duplicates.length = 0;
148
159
  this.missingSkillMd.length = 0;
149
160
  this.loadErrors.length = 0;
@@ -190,7 +201,6 @@ export class SkillCatalog {
190
201
  nameDrift,
191
202
  };
192
203
  this.entriesByName.set(doc.name, catalogEntry);
193
- this.entriesByDir.set(entry.name, catalogEntry);
194
204
  }
195
205
  // 指纹在 scan 末尾一次性写入:中途 abort 抛出即不写,状态仍为上一轮的完整指纹,
196
206
  // 下一轮 listCandidates 因 cachedCandidates === null 短路全量重扫自愈。
@@ -208,14 +218,15 @@ export class SkillCatalog {
208
218
  options?.signal?.throwIfAborted();
209
219
  const language = options?.language === 'en' ? 'en' : 'zh';
210
220
  const needsRebuild = this.lastScanLanguage !== language;
211
- const needsScan = options?.forceScan ||
221
+ const needsDiskScan = options?.forceScan ||
212
222
  this.cachedCandidates === null ||
213
- needsRebuild ||
214
223
  this.lastScanProviderName !== providerName ||
215
224
  this.lastScanRank !== rank ||
216
225
  (await this.isDirModified(options?.signal));
217
- if (needsScan) {
226
+ if (needsDiskScan) {
218
227
  await this.scan(options);
228
+ }
229
+ if (needsDiskScan || needsRebuild) {
219
230
  const list = [];
220
231
  for (const entry of this.entriesByName.values()) {
221
232
  list.push(entry.document.toCandidate(providerName, rank, language));
@@ -261,18 +272,16 @@ export class SkillCatalog {
261
272
  return undefined;
262
273
  }
263
274
  // 自愈回写:将重新读取解析出的文档更新进内部索引,保持状态严格一致
264
- const dirName = cached?.directoryName ?? candidate.name;
275
+ const dirName = cached?.directoryName ?? basename(dirname(locator.path));
265
276
  const updatedEntry = {
266
277
  directoryName: dirName,
267
278
  skillPath: locator.path,
268
279
  document: doc,
269
- ...(options?.language === 'en' && doc.path !== locator.path ? {} : {}),
270
280
  nameDrift: doc.name !== dirName,
271
281
  };
272
282
  this.entriesByName.set(doc.name, updatedEntry);
273
- this.entriesByDir.set(dirName, updatedEntry);
274
283
  this.cachedCandidates = null; // 快照失效,以便下一轮刷新
275
- return doc.toDefinition(providerName);
284
+ return doc.toDefinition(providerName, language);
276
285
  }
277
286
  /**
278
287
  * 执行 SkillCatalog 自身边界契约自检(排重与漂移探测)。
@@ -1 +1 @@
1
- {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../src/catalog.ts"],"names":[],"mappings":"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"}