From 1c450766a9dfa4583980a875b58a777aa2a8a89f Mon Sep 17 00:00:00 2001 From: Deepu S Nath Date: Fri, 31 Jul 2026 21:27:48 +0530 Subject: [PATCH] fix(skill-stocktake): follow symlinks and match only SKILL.md in scans scan.sh and quick-diff.sh both used `find "$dir" -name "*.md" -type f`, which missed symlinked skill directories (no -L) and miscounted any non-skill markdown file sitting in a skills directory as a skill (matched *.md instead of SKILL.md). Both call sites now use `find -L "$dir" -name "SKILL.md" -type f`. Repro (temp dir with 1 real skill, 1 symlinked skill, 1 stray .md file): before: 2 skills found (real skill + the stray .md, symlinked skill invisible) after: 2 skills found (real skill + symlinked skill, stray .md excluded) Fixes #2598 Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01FhDjpSfrbPpnpqT3CZBEX1 --- skills/skill-stocktake/scripts/quick-diff.sh | 2 +- skills/skill-stocktake/scripts/scan.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/skills/skill-stocktake/scripts/quick-diff.sh b/skills/skill-stocktake/scripts/quick-diff.sh index c145100a6..75dbac273 100755 --- a/skills/skill-stocktake/scripts/quick-diff.sh +++ b/skills/skill-stocktake/scripts/quick-diff.sh @@ -74,7 +74,7 @@ process_dir() { '{path:$path,mtime:$mtime,is_new:$is_new}' \ > "$tmpdir/$i.json" i=$((i+1)) - done < <(find "$dir" -name "*.md" -type f 2>/dev/null | sort) + done < <(find -L "$dir" -name "SKILL.md" -type f 2>/dev/null | sort) } [[ -d "$GLOBAL_DIR" ]] && process_dir "$GLOBAL_DIR" diff --git a/skills/skill-stocktake/scripts/scan.sh b/skills/skill-stocktake/scripts/scan.sh index 5f1d12dbd..9a5aca497 100755 --- a/skills/skill-stocktake/scripts/scan.sh +++ b/skills/skill-stocktake/scripts/scan.sh @@ -118,7 +118,7 @@ scan_dir_to_json() { '{path:$path,name:$name,description:$description,use_7d:$use_7d,use_30d:$use_30d,mtime:$mtime}' \ > "$tmpdir/$i.json" i=$((i+1)) - done < <(find "$dir" -name "*.md" -type f 2>/dev/null | sort) + done < <(find -L "$dir" -name "SKILL.md" -type f 2>/dev/null | sort) if [[ $i -eq 0 ]]; then echo "[]"