Files
shared/skills/spec-plugin-version/SKILL.md
T
JefferyandClaude Opus 5 2225b91766 docs(spec-plugin-version): 補 plugin 更名的版號規則
原規範只寫「新 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>
2026-07-28 17:15:23 +08:00

48 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: spec-plugin-version
description: JSC plugins 共用「plugin 版號規則」:三個 manifestplugin.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 後才進位 minor0.0.9 → 0.1.0)、commit 訊息用 chore(plugin 版本)。當其他 skill 內文引用 spec-plugin-version 或 /jsc-generic:spec-plugin-version、或要調整任一 JSC pluginjsc-codejsc-docjsc-generic)的版本號時載入此 skill。單獨被使用者呼叫時,直接說明本規範內容。
---
# spec-plugin-version — 共用 plugin 版號規則
調整任一 JSC plugin`jsc-code``jsc-doc``jsc-generic` 等)的版本號時,一律遵守以下規則。
## 三個 manifest 同步 bump
- 版本號同時存在於三個 manifest:`plugin.json`Antigravity)、`.claude-plugin/plugin.json`Claude Code)、`.codex-plugin/plugin.json`Codex)。
- **三者必須一起 bump 且版本一致**,不得只改其中一個 —— 四家助理都以 git 內容/版本判斷是否有更新。
- `.claude-plugin/marketplace.json``.agents/plugins/marketplace.json` 沒有版本欄位,不需改。
## 版本單調遞增(以發佈分支為準)
- bump 前**先確認發佈分支(`master`)目前的版本**,不能只看目前工作分支:
```bash
git show origin/master:plugin.json | grep version
```
- 新版本必須**大於 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 +1patch 只使用 `0` 到 `9`,只有 `master` 基準版 patch 已是 `9` 時才進位 minor 並把 patch 歸零,例如 `0.0.8 → 0.0.9 → 0.1.0`。
- **重大改版**(skill 大規模重構、破壞相容的呼叫方式變更):minor +1、patch 歸零。
## 何時必須 bump
- 任何希望四家助理拿到更新的變更都要 bump:skill 內容異動、新增/移除 skill、manifest 設定變更、README 的 Skills 目錄實質變更。
- 純粹不影響安裝內容的變更(如 `.gitea/` CI 設定)可不 bump。
## commit 與發佈
- 版本 bump 的 commit 訊息:`chore(plugin 版本): 三家 manifest 升版 X.Y.Z`(僅含 3 個 manifest 的版本變更;與其他設定異動混提時說明清楚)。
- 合併發佈後,各助理的更新方式見該 plugin README`claude plugin update``codex plugin marketplace upgrade`Antigravity 重新安裝/OpenCode 重新複製 `skills/`)。