fix/kiro-copy-missing-tools
develop
kiro-cli 2.18.1
plugin
deploy.sh
skills/
jsc-sdlc/tools/wp-gate.sh owns
jsc-gitea/tools/pr-watch.sh
jsc-git/tools/base-branch.sh --derive
jsc-sdlc:implement
jsc-git:pr
references/
consensus.md
branch.md
guidelines.md
kiro_copy()
tools
references
templates
hooks
plugin.json
tools/deploy.sh
deploy_kiro()
note
.claude-plugin/plugin.json
.codex-plugin/plugin.json
$KIRO_SKILLS/jsc-{domain}/
$KIRO_SKILLS
mkdir -p
src/.
dst/
cp -R src dst/
dst/{名稱}/{名稱}
hooks/
templates/
return 0
sh -n tools/deploy.sh
-n
update kiro
result kiro update … ok
~/.kiro/skills/
jsc-sdlc/tools/wp-gate.sh
owns
jsc-git/tools/base-branch.sh
--derive
jsc-sdlc/tools/
stage-report.sh
wp-gate.sh
tools/tools
jsc-hooks
~/.kiro/skills/jsc-{sdlc,gitea,git,cli}/plugin.json
ste100-lint.sh /root/plugins/cli
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 技能組的版本發布。
No dependencies set.
The note is not visible to the blocked user.
PR 描述
摘要
kiro-cli 2.18.1已經沒有plugin子指令,kiro 只能走deploy.sh的本地複製退路,而該退路只複製skills/一個目錄。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在 kiro 上會卡住,比不更新更糟;缺references/也讓consensus.md、branch.md、guidelines.md讀不到。本 PR 讓kiro_copy()一併複製tools、references、templates、hooks與plugin.json,並推進 jsc-cli 版本到 0.1.8。變更內容
tools/deploy.shkiro_copy()補複製tools、references、templates、hooks與plugin.json,讓 kiro 拿到技能實際要跑的腳本與要讀的參考文件;deploy_kiro()的note訊息同步說明退路複製了哪些內容。plugin.json.claude-plugin/plugin.json.codex-plugin/plugin.json設計重點
$KIRO_SKILLS/jsc-{domain}/。跨 plugin 的引用(例如jsc-gitea/tools/pr-watch.sh)以$KIRO_SKILLS為根就解析得到,任何 SKILL.md 都不必改。mkdir -p目標,再複製src/.到dst/」。目標目錄已存在時,cp -R src dst/會把來源塞進dst/{名稱}/{名稱},第二次更新就多疊一層;改成複製src/.才能重複執行。hooks/或templates/的 domain 不會出錯。plugin.json缺了不算錯誤,只是查不到本機版本,因此不影響kiro_copy()的結束碼,函式尾端明確return 0。測試結果
sh -n tools/deploy.sh:語法檢查通過。-ndry-run 對 kiro 印出的指令序列正確。update kiro十個 domain,全部回報result kiro update … ok。~/.kiro/skills/底下jsc-gitea/tools/pr-watch.sh、jsc-sdlc/tools/wp-gate.sh(含owns)、jsc-git/tools/base-branch.sh(--derive出現 5 次)都到位。jsc-sdlc/tools/底下仍只有stage-report.sh與wp-gate.sh,沒有多出tools/tools。jsc-hooks的hooks/目錄也複製過去了。~/.kiro/skills/jsc-{sdlc,gitea,git,cli}/plugin.json的版本分別為 0.1.9、0.1.5、0.0.8、0.1.7,與 master 一致。ste100-lint.sh /root/plugins/cli:全綠。前置 Push Request
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 部署退路。