Ver código fonte

fix(toggle-external): handle source-only state in enable

`enable <tool>` for npx/external skills (darwin-skill, find-skills,
emil-design-eng) only handled two states: symlink in skills-disabled/
(move) and symlink in skills/ (already enabled). Missed the state
right after `make plugin` where the source dir exists at
~/.agents/skills/<tool> but no symlink has been created yet — first
run errored "not installed — run: make plugin" misleadingly.

Add a third branch: when the resolved source dir exists, create the
symlink in place. Resolve source path per tool (skills-external for
emil-design-eng, ~/.agents/skills for darwin-skill/find-skills). Error
message now names the path checked so the caller can verify install
vs symlink state without rereading the script.

Co-Authored-By: Claude <noreply@anthropic.com>
bastien 1 semana atrás
pai
commit
ca5dbcf59c
1 arquivos alterados com 9 adições e 1 exclusões
  1. 9 1
      lib/toggle-external.sh

+ 9 - 1
lib/toggle-external.sh

@@ -159,14 +159,22 @@ enable_tool() {
       fi
       ;;
     emil-design-eng|darwin-skill|find-skills)
+      local src
+      case "$tool" in
+        emil-design-eng) src="$REPO/skills-external/$tool" ;;
+        darwin-skill|find-skills) src="$HOME/.agents/skills/$tool" ;;
+      esac
       if [ -e "$DISABLED_DIR/$tool" ]; then
         rm -rf "${SKILLS_DIR:?}/${tool:?}"
         mv "$DISABLED_DIR/$tool" "$SKILLS_DIR/$tool"
         ok "$tool enabled"
       elif [ -e "$SKILLS_DIR/$tool" ]; then
         warn "$tool already enabled"
+      elif [ -d "$src" ]; then
+        ln -sf "$src" "$SKILLS_DIR/$tool"
+        ok "$tool enabled (symlink created → $src)"
       else
-        err "$tool not installed — run: make plugin"
+        err "$tool not installed at $src — run: make plugin"
         return 1
       fi
       ;;