refactor(plugin 命名空間): plugin 更名 jsc-generic、hooks 只註冊 role #15

Merged
admin merged 4 commits from develop into master 2026-07-28 09:17:10 +00:00
Member

目的

把 plugin 命名空間分離,根治「同名 plugin 只註冊一份 hooks」造成的隱性失效與維護負擔。

背景

codedocgeneric(含未安裝的 code-reviewtemplate)的 plugin.json 名稱原本都是 jsc。Claude Code 以 plugin 名稱為鍵註冊 hooks,同名時只保留一份且無法預期哪一份會贏,因此三份 hooks/hooks.json 過去必須維持同一份合併超集 —— 任一 repo 漏同步,缺少的 hook 會靜默失效

實測本次改動前 stop_hook_summaryhookCount 為 3(plugin 的 worklog + role_capture 各 1,加使用者 settings.json 後援 1),確認同名確實只生效一份。

改動

項目 內容
plugin 名稱 jscjsc-codejsc-docjsc-genericjsc-reviewjsc-template,五份 manifest 同步
hooks 拆分 各 plugin 只註冊自己擁有的 hook;jsc-generic 管 role、jsc-doc 管 worklog、jsc-code 不再需要 hooks.json
skill 名稱 去掉與 plugin 名重複的領域前綴(code-action-dockeraction-dockerdoc-funcsfuncs
指令引用 全庫 831 處 /jsc: 改為對應命名空間前綴

注意

改名等同新 plugin,合併後需移除舊 plugin 再安裝新 plugin,並重開工作階段。

🤖 Generated with Claude Code

## 目的 把 plugin 命名空間分離,根治「同名 plugin 只註冊一份 hooks」造成的隱性失效與維護負擔。 ## 背景 `code`/`doc`/`generic`(含未安裝的 `code-review`/`template`)的 `plugin.json` 名稱原本都是 `jsc`。Claude Code 以 plugin 名稱為鍵註冊 hooks,同名時只保留一份且無法預期哪一份會贏,因此三份 `hooks/hooks.json` 過去必須維持同一份合併超集 —— 任一 repo 漏同步,缺少的 hook 會**靜默失效**。 實測本次改動前 `stop_hook_summary` 的 `hookCount` 為 3(plugin 的 worklog + role_capture 各 1,加使用者 settings.json 後援 1),確認同名確實只生效一份。 ## 改動 | 項目 | 內容 | | --- | --- | | plugin 名稱 | `jsc` → `jsc-code`/`jsc-doc`/`jsc-generic`/`jsc-review`/`jsc-template`,五份 manifest 同步 | | hooks 拆分 | 各 plugin 只註冊自己擁有的 hook;`jsc-generic` 管 role、`jsc-doc` 管 worklog、`jsc-code` 不再需要 `hooks.json` | | skill 名稱 | 去掉與 plugin 名重複的領域前綴(`code-action-docker` → `action-docker`、`doc-funcs` → `funcs`) | | 指令引用 | 全庫 831 處 `/jsc:` 改為對應命名空間前綴 | ## 注意 改名等同新 plugin,合併後需**移除舊 plugin 再安裝新 plugin**,並重開工作階段。 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jiantw83 added 2 commits 2026-07-28 09:08:15 +00:00
Reviewed-on: plugins/generic#14
- 五份 manifest 的 name 由 jsc 改為 jsc-generic
- hooks/hooks.json 由合併超集改為只註冊 SessionStart(role_load)與 Stop(role_capture):worklog 的 hook 交還 jsc-doc
- hook 腳本搜尋路徑改指 jsc-generic
- role skill 更新 hooks 說明:改名後各 plugin 名稱獨立、互不覆蓋,不再需要三份同步;並註明不可再把別的 plugin 的 hook 寫進自己的 hooks.json
- skill 名稱不變(role、spec-*),指令引用改為 /jsc-generic: 前綴
- 版號 0.0.8 → 0.0.9

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
jiantw83 added 2 commits 2026-07-28 09:15:32 +00:00
plugin 更名後,各助理以 <plugin 名>@<marketplace 名> 作為安裝識別鍵,
新名與舊名是兩筆獨立條目:舊 plugin 會被移除、新 plugin 為首次安裝,
兩者之間不存在版本比較,因此不會發生版本倒退,「版本單調遞增」不適用。

依 spec-plugin-version「新 plugin 首發 0.0.1」,三份 manifest 版號一律重置為 0.0.1,
不沿用舊名 jsc 的版本序列。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
原規範只寫「新 plugin 首發 0.0.1」,未定義「更名是否算新 plugin」,
導致本次命名空間分離時誤把版號沿用舊名序列遞增。補上明確規則:

- 新增「plugin 更名」條目:視為新 plugin,三份 manifest 版號重置 0.0.1,並說明識別鍵獨立、不存在版本比較的理由
- 「版本單調遞增」章節加註更名時不適用本節
- 補更名發佈的配套動作:使用者端須先移除舊 plugin 再安裝(不是 update)、清除 settings.json 的 enabledPlugins 舊鍵
- description 與內文的 plugin 名改用 jsc-code/jsc-doc/jsc-generic

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
admin approved these changes 2026-07-28 09:17:07 +00:00
admin merged commit c323c65b56 into master 2026-07-28 09:17:10 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/shared#15