fix(update): pass full name@marketplace to claude plugin update
`claude plugin update` rejects a bare plugin name when multiple
marketplaces are registered — the CLI demands `name@marketplace`.
update-all.sh stripped the suffix via `${_p%%@*}`, causing every
marketplace plugin update to fail with "Plugin not found". Fixed
by passing the unmodified spec from `claude plugin list`.
Also adds install + update paths for external skills distributed
through the `npx skills` CLI (vercel-labs/skills):
- alchaincyf/darwin-skill
- alchaincyf/find-skills
These land in ~/.agents/skills/ and are now symlinked into
$REPO/skills/ via link.sh using absolute paths — the previous
relative `../../.agents/...` targets resolved incorrectly when
the repo is cloned below $HOME (as ~/Documents/claude/), leaving
dangling symlinks.
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -57,6 +57,27 @@ else
|
||||
echo "⚠️ emil-design-eng not found — run: make plugin"
|
||||
fi
|
||||
|
||||
# External skills installed via `npx skills add` live under
|
||||
# $HOME/.agents/skills/. We symlink them into $REPO/skills/ with
|
||||
# absolute paths so the link stays valid regardless of where the
|
||||
# repo is cloned (relative ../../ paths broke on repos deeper than
|
||||
# one level below $HOME).
|
||||
NPX_EXTERNAL_SKILLS=(darwin-skill find-skills)
|
||||
for _ext in "${NPX_EXTERNAL_SKILLS[@]}"; do
|
||||
_target="$HOME/.agents/skills/$_ext"
|
||||
_link="$REPO/skills/$_ext"
|
||||
if [ ! -d "$_target" ]; then
|
||||
echo "⚠️ $_ext not installed at $_target — run: make plugin"
|
||||
continue
|
||||
fi
|
||||
if [ -L "$_link" ] && [ "$(readlink "$_link")" = "$_target" ]; then
|
||||
continue
|
||||
fi
|
||||
rm -f "$_link"
|
||||
ln -sf "$_target" "$_link"
|
||||
CHANGED=$((CHANGED + 1))
|
||||
done
|
||||
|
||||
if [ "$CHANGED" -eq 0 ]; then
|
||||
echo "✅ All symlinks already up to date."
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user