release: v0.1.8 develop 到 master #26

Merged
admin merged 3 commits from develop into master 2026-08-27 04:43:33 +00:00
Member

release: v0.1.8 develop 到 master

摘要

  • 需求描述:把 tools/deploy.sh 的 kiro_copy() 修正放行到 master。原本這個函式只複製 skills/.,kiro 上因此沒有 tools/、references/、templates/、hooks/ 與 plugin.json。2026-08-27 放行的那批技能,把 jsc-sdlc/tools/wp-gate.sh owns、jsc-gitea/tools/pr-watch.sh、jsc-git/tools/base-branch.sh --derive 寫進 SKILL.md 當完成條件,kiro 於是變成「指令要求跑腳本、腳本卻不在機器上」,jsc-sdlc:implement 與 jsc-git:pr 會卡住。修正後一併複製上述目錄與 plugin.json。
  • 計畫名稱:無
  • 計畫頁:無
  • 分析頁:無

變更內容

檔案 為什麼改
tools/deploy.sh kiro_copy() 除了 skills/.,再複製 tools、references、templates、hooks 與 plugin.json;每個子目錄先 mkdir -p 再複製 src/.,避免重複疊層。備援模式的 note 訊息同步改寫,讓輸出說得出實際複製了哪些內容。
plugin.json 版本推進到 0.1.8。
.claude-plugin/plugin.json 版本推進到 0.1.8。
.codex-plugin/plugin.json 版本推進到 0.1.8。

設計重點

  • 只複製 skills/ 比不更新更糟。技能文件對同伴目錄的引用是完成條件、不是選配,缺了腳本,技能會在半途停住,使用者拿到的是一份跑不完的流程。
  • 目標路徑維持 $KIRO_SKILLS/jsc-{domain}/,跨 plugin 的引用(例如 jsc-gitea/tools/pr-watch.sh)以 $KIRO_SKILLS 為根就解析得到,不必再改技能文件裡的路徑寫法。
  • 每個子目錄都採「先 mkdir -p,再複製 src/. 到 dst/」。若寫成 cp -R src dst/,目標已存在時來源會被塞進 dst/{名稱}/{名稱},第二次更新就多一層。
  • plugin.json 缺漏不當成錯誤,只是查不到本機版本,因此不計入整體結束碼。
  • 這一段合併才會讓已安裝的 CLI 抓到新內容:marketplace 與 version-guard.sh 都讀預設分支 master,只停在 develop 的修正不會被任何一台機器取用。
  • 實務狀態說明:kiro 那台機器已經用修正後的腳本部署過,目前是好的;這支 PR 是把修法固化進存取庫,讓後續每一次部署都走同一套邏輯。

測試結果

  • sh -n tools/deploy.sh:語法檢查通過。
  • dry-run:印出的指令序列正確,mkdir 與 cp 的先後與目標路徑都符合預期。
  • 實跑 update kiro:十個 domain 全部回 ok。
  • 關鍵腳本到位:wp-gate.sh 含 owns、pr-watch.sh 存在、base-branch.sh 的 --derive 出現 5 次。
  • 連續執行兩次 update kiro:目錄結構不變,沒有多疊一層。
  • jsc-hooks 的 hooks/ 目錄一併複製到 kiro。
  • kiro 上的 plugin.json 版本與 master 一致。
  • ste100-lint.sh:全綠。

前置 Push Request

  • 無
# release: v0.1.8 develop 到 master ## 摘要 - 需求描述:把 `tools/deploy.sh` 的 `kiro_copy()` 修正放行到 `master`。原本這個函式只複製 `skills/.`,kiro 上因此沒有 `tools/`、`references/`、`templates/`、`hooks/` 與 `plugin.json`。2026-08-27 放行的那批技能,把 `jsc-sdlc/tools/wp-gate.sh owns`、`jsc-gitea/tools/pr-watch.sh`、`jsc-git/tools/base-branch.sh --derive` 寫進 SKILL.md 當完成條件,kiro 於是變成「指令要求跑腳本、腳本卻不在機器上」,`jsc-sdlc:implement` 與 `jsc-git:pr` 會卡住。修正後一併複製上述目錄與 `plugin.json`。 - 計畫名稱:無 - 計畫頁:無 - 分析頁:無 ## 變更內容 | 檔案 | 為什麼改 | | --- | --- | | `tools/deploy.sh` | `kiro_copy()` 除了 `skills/.`,再複製 `tools`、`references`、`templates`、`hooks` 與 `plugin.json`;每個子目錄先 `mkdir -p` 再複製 `src/.`,避免重複疊層。備援模式的 note 訊息同步改寫,讓輸出說得出實際複製了哪些內容。 | | `plugin.json` | 版本推進到 0.1.8。 | | `.claude-plugin/plugin.json` | 版本推進到 0.1.8。 | | `.codex-plugin/plugin.json` | 版本推進到 0.1.8。 | ## 設計重點 - 只複製 `skills/` 比不更新更糟。技能文件對同伴目錄的引用是完成條件、不是選配,缺了腳本,技能會在半途停住,使用者拿到的是一份跑不完的流程。 - 目標路徑維持 `$KIRO_SKILLS/jsc-{domain}/`,跨 plugin 的引用(例如 `jsc-gitea/tools/pr-watch.sh`)以 `$KIRO_SKILLS` 為根就解析得到,不必再改技能文件裡的路徑寫法。 - 每個子目錄都採「先 `mkdir -p`,再複製 `src/.` 到 `dst/`」。若寫成 `cp -R src dst/`,目標已存在時來源會被塞進 `dst/{名稱}/{名稱}`,第二次更新就多一層。 - `plugin.json` 缺漏不當成錯誤,只是查不到本機版本,因此不計入整體結束碼。 - 這一段合併才會讓已安裝的 CLI 抓到新內容:marketplace 與 `version-guard.sh` 都讀預設分支 `master`,只停在 `develop` 的修正不會被任何一台機器取用。 - 實務狀態說明:kiro 那台機器已經用修正後的腳本部署過,目前是好的;這支 PR 是把修法固化進存取庫,讓後續每一次部署都走同一套邏輯。 ## 測試結果 - `sh -n tools/deploy.sh`:語法檢查通過。 - dry-run:印出的指令序列正確,`mkdir` 與 `cp` 的先後與目標路徑都符合預期。 - 實跑 `update kiro`:十個 domain 全部回 `ok`。 - 關鍵腳本到位:`wp-gate.sh` 含 `owns`、`pr-watch.sh` 存在、`base-branch.sh` 的 `--derive` 出現 5 次。 - 連續執行兩次 `update kiro`:目錄結構不變,沒有多疊一層。 - `jsc-hooks` 的 `hooks/` 目錄一併複製到 kiro。 - kiro 上的 `plugin.json` 版本與 `master` 一致。 - `ste100-lint.sh`:全綠。 ## 前置 Push Request - 無
jiantw83 added 3 commits 2026-08-27 04:42:46 +00:00
What:
改寫 `tools/deploy.sh` 的 `kiro_copy()`。原本只複製 `skills/.` 一個目錄,現在同時複製 `tools`、`references`、`templates`、`hooks` 四個子目錄與 `plugin.json`。四個子目錄逐一判斷來源是否存在,存在才複製;`plugin.json` 缺了不算錯誤,函式一律回傳 0。`deploy_kiro()` 印給使用者看的 `note` 訊息也一併改寫,說清楚退路實際複製了哪些內容。

Why:
`kiro-cli 2.18.1` 已經沒有 `plugin` 子指令,kiro 只能走本地複製這條退路。過去只複製 `skills/` 還能動,是因為舊版 SKILL.md 沒叫 kiro 跑同伴目錄裡的腳本。2026-08-27 放行的這批技能(cli 0.1.7、sdlc 0.1.9、git 0.0.8、gitea 0.1.5 等)把 `jsc-sdlc/tools/wp-gate.sh owns`、`jsc-gitea/tools/pr-watch.sh`、`jsc-git/tools/base-branch.sh --derive` 寫成 SKILL.md 的完成條件,kiro 於是拿到一份「指令要求跑腳本、腳本卻不在機器上」的技能,`jsc-sdlc:implement` 與 `jsc-git:pr` 會直接卡住,比不更新更糟。缺 `references/` 也讓 `consensus.md`、`branch.md`、`guidelines.md` 在 kiro 上讀不到。

How:
目標路徑維持 `$KIRO_SKILLS/jsc-{domain}/`,跨 plugin 的引用(例如 `jsc-gitea/tools/…`)以 `$KIRO_SKILLS` 為根就解析得到,不必改動任何 SKILL.md。每個子目錄都用「先 `mkdir -p` 目標,再複製 `src/.` 到 `dst/`」的寫法:目標目錄已經存在時,`cp -R src dst/` 會把來源塞進 `dst/{名稱}/{名稱}`,第二次更新就多疊一層。`plugin.json` 以單檔複製處理,讓 `version-guard.sh` 之類的呼叫端查得到本機版本。函式尾端明確 `return 0`,避免 `plugin.json` 不存在時的測試結果變成函式結束碼。

Who:
jsc-cli:deploy 技能的 kiro 部署退路。
What:
把三份 manifest 的 `version` 從 `0.1.7` 改成 `0.1.8`:`plugin.json`、`.claude-plugin/plugin.json`、`.codex-plugin/plugin.json`。三份只改版本號,其他欄位不動。

Why:
`kiro_copy()` 的修正改變了 kiro 實際拿到的檔案內容,各 CLI 要靠版本號才看得出本機落後、才會重新部署。版本不動,已經裝好舊版的機器不會更新,修正等於沒發出去。

How:
三份 manifest 一起改,避免不同 CLI 讀到不一樣的版本。`kiro_copy()` 這次也把 `plugin.json` 複製到 `$KIRO_SKILLS/jsc-cli/`,所以 kiro 上查到的版本會和 master 一致。

Who:
jsc-cli 技能組的版本發布。
Reviewed-on: #25
admin approved these changes 2026-08-27 04:43:22 +00:00
admin merged commit 474b0521dc into master 2026-08-27 04:43:33 +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/cli#26