refactor(plugin 命名空間): plugin 更名 jsc-generic、hooks 只註冊 role #15
@@ -1,11 +1,11 @@
|
||||
---
|
||||
name: spec-plugin-version
|
||||
description: JSC plugins 共用「plugin 版號規則」:三個 manifest(plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json)同步 bump 且版本一致、bump 前對照發佈分支(master)現行版本確保單調遞增、同一 PR 只以 master 版本計算一次最終升版、新 plugin 首發 0.0.1、一般變更 patch +1 且 master patch 到 9 後才進位 minor(0.0.9 → 0.1.0)、commit 訊息用 chore(plugin 版本)。當其他 skill 內文引用 spec-plugin-version 或 /jsc-generic:spec-plugin-version、或要調整任一 JSC plugin(code/doc/generic)的版本號時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。
|
||||
description: JSC plugins 共用「plugin 版號規則」:三個 manifest(plugin.json、.claude-plugin/plugin.json、.codex-plugin/plugin.json)同步 bump 且版本一致、bump 前對照發佈分支(master)現行版本確保單調遞增、同一 PR 只以 master 版本計算一次最終升版、新 plugin 首發 0.0.1、plugin 更名(name 欄位改變)視為新 plugin 並把版號重置為 0.0.1、一般變更 patch +1 且 master patch 到 9 後才進位 minor(0.0.9 → 0.1.0)、commit 訊息用 chore(plugin 版本)。當其他 skill 內文引用 spec-plugin-version 或 /jsc-generic:spec-plugin-version、或要調整任一 JSC plugin(jsc-code/jsc-doc/jsc-generic)的版本號時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。
|
||||
---
|
||||
|
||||
# spec-plugin-version — 共用 plugin 版號規則
|
||||
|
||||
調整任一 JSC plugin(code/doc/generic 等)的版本號時,一律遵守以下規則。
|
||||
調整任一 JSC plugin(`jsc-code`/`jsc-doc`/`jsc-generic` 等)的版本號時,一律遵守以下規則。
|
||||
|
||||
## 三個 manifest 同步 bump
|
||||
|
||||
@@ -23,10 +23,16 @@ description: JSC plugins 共用「plugin 版號規則」:三個 manifest(plu
|
||||
|
||||
- 新版本必須**大於 master 現行版本**。工作分支(如 `develop`)可能落後或經過 revert,直接在其舊版本上 +1 會讓版本倒退(例:master 已 `0.0.4`,develop 還在 `0.0.1`,此時應 bump 至 `0.0.5` 而非 `0.0.2`)——已安裝 `0.0.4` 的助理會因版本倒退而抓不到更新。
|
||||
- 同一 PR/同一批變更只需最終一個版本;多次修改不必逐次 bump,也不要依工作分支上的中間版本連續累加。例如 `master` 是 `0.0.7` 時,同一 PR 的最終版本是 `0.0.8`。
|
||||
- **例外:plugin 更名時本節不適用** —— 更名後的 plugin 是獨立的安裝識別,與舊名沒有版本比較關係,見下節「plugin 更名」。
|
||||
|
||||
## 版號選擇
|
||||
|
||||
- **新 plugin 首發**:`0.0.1`(即使是從 template 複製建立,也要把 template 殘留的版本改回 `0.0.1`)。
|
||||
- **plugin 更名**(manifest 的 `name` 欄位改變,例如 `jsc` → `jsc-code`):**視為新 plugin,三份 manifest 版號一律重置為 `0.0.1`**,不沿用舊名的版本序列。
|
||||
|
||||
理由:各助理以 `<plugin 名>@<marketplace 名>` 作為安裝識別鍵(例如 `jsc-code@code` 與 `jsc@code` 是兩筆獨立條目)。更名發佈後,舊 plugin 會被移除、新 plugin 為首次安裝,兩者之間**不存在版本比較**,因此不會發生版本倒退,「版本單調遞增」不適用。git 歷史雖然延續,但版號描述的是**該 plugin 識別**的演進,而非 repo 的演進。
|
||||
|
||||
更名發佈的配套動作:使用者端必須**先移除舊 plugin、再安裝新 plugin**(不是 update),並重開工作階段;`~/.claude/settings.json` 的 `enabledPlugins` 舊鍵需一併清除。
|
||||
- **一般變更**(skill 新增/修改/移除、manifest 設定調整):以 `master` 現行版本 patch +1;patch 只使用 `0` 到 `9`,只有 `master` 基準版 patch 已是 `9` 時才進位 minor 並把 patch 歸零,例如 `0.0.8 → 0.0.9 → 0.1.0`。
|
||||
- **重大改版**(skill 大規模重構、破壞相容的呼叫方式變更):minor +1、patch 歸零。
|
||||
|
||||
|
||||
Reference in New Issue
Block a user