什麼:新增 tools/sync-skill-manifest.sh(重建 domain README 的「Skills 目錄」區塊並將三份 plugin manifest 的版本一併 bump)與 tools/find-skill-refs.sh(掃描所有 jsc domain 存取庫,列出技能名稱或 /jsc-{domain}:{name} 指令形式的引用檔案),並更新 skill-check、skill-delete、skill-new、skill-update、skillset-update 五支 SKILL.md 改為呼叫這兩支工具。skill-delete 與 skill-update 的 frontmatter description 也一併收斂在此次改動內,配合本次流程調整精簡文字。
為何:五支技能先前各自以近乎相同的內嵌文字描述「同步 README、bump 版本」的機械流程,重複維護成本高且容易漂移;skill-delete 的引用盤點步驟先前只是一段沒有工具、也沒有標明子代理人的裸 grep 指示,稽核時難以驗證涵蓋範圍。
如何:把兩段機械流程各自抽成一支冪等 shell 工具,五支技能的對應步驟改為「子代理人只做內容判斷與修改,機械式同步與版本 bump 一律呼叫工具」;skill-delete 步驟 4 改呼叫 find-skill-refs.sh 取代裸 grep 說明。
負責範圍:jsc-meta 技能組自我管理,skill-check、skill-delete、skill-new、skill-update、skillset-update 五支技能共用的機械流程去重。
35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/usr/bin/env sh
|
|
# find-skill-refs.sh — 掃描一個技能在所有 jsc domain 存取庫裡的引用,供刪除技能前盤點用。
|
|
#
|
|
# 用法: find-skill-refs.sh <domain> <skill-name>
|
|
#
|
|
# 掃描樣式:
|
|
# 1. 技能名稱字面 {skill-name}
|
|
# 2. 指令形式 /jsc-{domain}:{skill-name}
|
|
# 這兩個樣式已涵蓋其他 SKILL.md 的引用、domain README 的「Skills 目錄」小節、
|
|
# plugins/jsc 兩份 marketplace.json 與其在各 domain 存取庫的同步副本、tools/ 腳本、
|
|
# jsc-hooks 接線等位置——只要檔案裡出現技能名稱或指令形式就會被列出。
|
|
#
|
|
# 掃描範圍: /root/plugins 底下所有 domain 存取庫,排除 .git 目錄。
|
|
# 輸出: 命中檔案清單(去重、排序),一行一個路徑;exit 0 一律成功,即使沒有命中。
|
|
set -eu
|
|
|
|
usage() {
|
|
echo 'usage: find-skill-refs.sh <domain> <skill-name>' >&2
|
|
exit 2
|
|
}
|
|
|
|
[ "$#" -eq 2 ] || usage
|
|
DOMAIN=$1
|
|
SKILL=$2
|
|
|
|
ROOT=/root/plugins
|
|
[ -d "$ROOT" ] || { echo "找不到 plugins 根目錄: $ROOT" >&2; exit 1; }
|
|
|
|
PATTERN1="$SKILL"
|
|
PATTERN2="/jsc-${DOMAIN}:${SKILL}"
|
|
|
|
grep -rlE --exclude-dir=.git -e "$PATTERN1" -e "$PATTERN2" "$ROOT" 2>/dev/null | sort -u
|
|
|
|
exit 0
|