Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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/meta 兩份 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
|