[BUG] /reload-plugins does not update shallow-cloned marketplace repos
Summary
/reload-plugins does not properly update plugin marketplace repos that were shallow-cloned during initial installation. The marketplace directory's git working tree stays at the version it was initially installed at, causing all subsequent plugin updates to be silently ignored.
Steps to reproduce
- Install a plugin from marketplace:
/plugin marketplace add chanmuzi/git-conventions→/plugin install git-conventions@git-conventions - The plugin author merges several PRs to main on GitHub (e.g., PRs #15–#20)
- Run
/reload-pluginsin any session
Expected behavior
The marketplace repo should be updated to the latest origin/main, and the session should load the updated skill definitions.
Actual behavior
The marketplace directory (~/.claude/plugins/marketplaces/git-conventions/) is a shallow clone (.git/shallow exists). /reload-plugins runs git fetch but:
- The shallow clone's
origin/mainref does not advance to the actual remote HEAD - No
git mergeorgit reset --hard origin/mainis performed after fetch - The working tree stays at the old version indefinitely
Evidence from investigation:
# Marketplace repo state after /reload-plugins
marketplace HEAD: 5a7375e (PR #14) ← stuck here
origin/main: 5a7375e (PR #14) ← fetch didn't advance this
actual remote main: 1740495 (PR #20) ← 6 PRs behind
# .git/shallow file exists, anchored at an old commit
cat .git/shallow → 5c2d5fe (PR #11)
Manual fix that works:
cd ~/.claude/plugins/marketplaces/git-conventions
git fetch --unshallow origin main
git reset --hard origin/main
After this manual fix + /reload-plugins, the session correctly loads the updated skills.
Impact
- All marketplace plugin updates after initial install are silently lost
- Users see stale plugin behavior with no indication that updates are available
- The issue is invisible —
versionin SKILL.md frontmatter may even show the "correct" version string while the actual content is outdated
Environment
- macOS (Darwin 25.4.0)
- Claude Code CLI
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗