Merge pull request 'fix(deploy): kiro 本地複製補上 tools、references、templates、hooks 與 plugin.json' (#25) from fix/kiro-copy-missing-tools into develop

Reviewed-on: #25
This commit was merged in pull request #25.
This commit is contained in:
2026-08-27 04:40:09 +00:00
4 changed files with 30 additions and 7 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "jsc-cli", "name": "jsc-cli",
"version": "0.1.7", "version": "0.1.8",
"description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署", "description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署",
"skills": "./skills", "skills": "./skills",
"author": { "author": {
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "jsc-cli", "name": "jsc-cli",
"version": "0.1.7", "version": "0.1.8",
"description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署", "description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署",
"skills": "./skills" "skills": "./skills"
} }
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "jsc-cli", "name": "jsc-cli",
"version": "0.1.7", "version": "0.1.8",
"description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署", "description": "CLI 偵測、模型能力標籤、子代理派工與技能庫批次部署",
"skills": "./skills/" "skills": "./skills/"
} }
+27 -4
View File
@@ -176,11 +176,34 @@ deploy_antigravity() {
done done
} }
# plugin 指令不支援時的退路:從本地 clone 複製 skills 目錄。 # plugin 指令不支援時的退路:從本地 clone 複製整個 plugin 的可用內容。
#
# 技能文件會直接引用同伴目錄,例如 jsc-sdlc 的 implement 要跑 jsc-sdlc/tools/wp-gate.sh
# 與 jsc-gitea/tools/pr-watch.sh,jsc-sdlc 的 analyze 要讀 references/consensus.md。
# 這些引用在 SKILL.md 裡是完成條件,不是選配。只複製 skills 目錄,kiro 會拿到一份
# 要求跑腳本、腳本卻不在機器上的技能,比不更新更糟——所以 tools、references、
# templates、hooks 與 plugin.json 一併複製。
#
# 目標路徑刻意維持 $KIRO_SKILLS/jsc-{domain}/,跨 plugin 的引用(jsc-gitea/tools/…)
# 以 $KIRO_SKILLS 為根就解析得到。
#
# 每個子目錄都用「先 mkdir,再複製 src/. 到 dst/」的寫法:目標目錄已存在時,
# cp -R src dst/ 會把來源塞進 dst/{名稱}/{名稱},第二次更新就多一層。
kiro_copy() { # $1=domain kiro_copy() { # $1=domain
sync_local "$1" sync_local "$1"
run mkdir -p "$KIRO_SKILLS/jsc-$1" dest="$KIRO_SKILLS/jsc-$1"
run cp -R "$LOCAL_DIR/$1/skills/." "$KIRO_SKILLS/jsc-$1/" run mkdir -p "$dest"
run cp -R "$LOCAL_DIR/$1/skills/." "$dest/"
for sub in tools references templates hooks; do
if [ -d "$LOCAL_DIR/$1/$sub" ]; then
run mkdir -p "$dest/$sub"
run cp -R "$LOCAL_DIR/$1/$sub/." "$dest/$sub/"
fi
done
# plugin.json 讓 version-guard.sh 之類的呼叫端查得到本機版本。缺了不算錯誤,
# 只是查不到版本而已,所以不進 run、也不影響整體結束碼。
[ -f "$LOCAL_DIR/$1/plugin.json" ] && run cp "$LOCAL_DIR/$1/plugin.json" "$dest/plugin.json"
return 0
} }
# kiro-cli 是否認得 plugin 子指令:一次性偵測,探測本身不印 cmd/exit(不是部署動作, # kiro-cli 是否認得 plugin 子指令:一次性偵測,探測本身不印 cmd/exit(不是部署動作,
@@ -213,7 +236,7 @@ deploy_kiro() {
return 0 return 0
fi fi
printf 'note\tkiro\t%s\n' "此版本 kiro-cli 沒有 plugin 子指令,改走本地複製(git pull 或 clone 後複製 skills 目錄)" printf 'note\tkiro\t%s\n' "此版本 kiro-cli 沒有 plugin 子指令,改走本地複製(git pull 或 clone 後,複製 skills、tools、references、templates、hooks 與 plugin.json)"
for d in $DOMAINS; do for d in $DOMAINS; do
case "$MODE" in case "$MODE" in
install|update) kiro_copy "$d" ;; install|update) kiro_copy "$d" ;;