[FEATURE] Plugin user override layer — preserve local customizations across plugin updates
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
When a user installs a plugin and customizes a skill to fit their workflow —
adjusting prompts, adding org-specific context, tweaking behavior — those
changes are silently overwritten the next time they run /plugin to update.
There is no diff, no merge step, and no warning. The user must either avoid
updating or manually back up and reapply their changes every time.
Concrete scenario:
- User installs
ai-pm-copilotfrom a team marketplace - User modifies
~/.claude/plugins/ai-pm-copilot/skills/prd-templates/SKILL.md - Plugin maintainer ships a new version with improvements to
prd-templates - User runs
/pluginto get the improvements - Their customizations are gone — overwritten with no indication
Proposed Solution
A user override layer: a parallel directory (e.g. ~/.claude/plugins-user/)
where users place files that shadow installed plugin files at load time, without
modifying the plugin directory itself.
/pluginupdates only touch~/.claude/plugins/— the user layer is never modified- If a matching file exists in
~/.claude/plugins-user/<plugin-name>/, it takes
precedence at load time
- Customizations survive all future updates
This is the same pattern used by VS Code (user settings over default settings),
Linux .d/ drop-in directories, and browser user scripts.
Alternative Solutions
Option A: Warn before overwriting user-modified files — at least prevents
silent data loss, even without solving the merge problem.
Option B: Show a diff and prompt for merge on update — similar to how
Debian's dpkg handles .conf file conflicts.
Option C: A user-overrides/ directory inside the plugin install that
/plugin is instructed never to touch.
Priority
Medium - Would be very helpful
Feature Category
Configuration and settings
Use Case Example
_No response_
Additional Context
_No response_
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗