#!/usr/bin/env sh # find-skill-refs.sh — 掃描一個技能在所有 jsc domain 存取庫裡的引用,供刪除技能前盤點用。 # # 用法: find-skill-refs.sh # # 掃描樣式: # 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 ' >&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