Feature Request: Project-level skill overrides for marketplace plugins

Resolved 💬 3 comments Opened Dec 24, 2025 by tonydehnke Closed Dec 28, 2025

Problem

When using marketplace plugins (like dev-browser), there's no clean way for project-level customizations to override or extend the plugin's behavior. This leads to Claude ignoring project-specific patterns documented in CLAUDE.md and skill overlays.

Specific Example

We use the dev-browser marketplace plugin for browser automation. Our project needs:

  • A wrapper script for server management (handles race conditions, logging)
  • Scripts written to /tmp/dev-browser/ instead of the plugin cache
  • Login helpers specific to our app
  • run_in_background: true for server start (Claude's Bash blocks otherwise)

We created a project skill (.claude/skills/shop-director-browser/) as an "overlay" with these customizations. However:

  1. When users say "use dev-browser", Claude invokes the marketplace plugin directly
  2. The marketplace plugin's SKILL.md takes precedence
  3. Our project-level customizations are ignored
  4. Claude reverts to default behaviors (heredocs, writing to plugin cache, etc.)

Current Workaround

We had to implement multiple layers of workarounds:

  • Add instructions to CLAUDE.md
  • Modify the UserPromptSubmit hook to recommend our skill instead
  • Create a PreToolUse hook to intercept and inject context
  • Hope Claude reads and follows all of this

This is fragile and often fails.

Proposed Solution

1. Skill Override/Extension Mechanism

Allow project-level skills to declare they extend or override a marketplace skill:

---
name: shop-director-browser
extends: dev-browser  # or "overrides: dev-browser"
---

When dev-browser is invoked, Claude would:

  1. Check if a project skill extends/overrides it
  2. Load the project skill's instructions WITH the base plugin
  3. Project instructions take priority for conflicts

2. Stronger CLAUDE.md Priority

Instructions in project CLAUDE.md should have higher weight than marketplace plugin defaults, especially for:

  • Tool usage patterns
  • File locations
  • Authentication/credentials
  • Project-specific workflows

Additional Issue: Heredocs with ES Modules

Claude frequently tries to use heredocs with tsx:

npx tsx << 'EOF'
import { connect } from "@/client.js";
EOF

This always fails because Node.js treats stdin as CommonJS, breaking ES module import statements. Claude should learn this pattern doesn't work and always write to temp files first.

Environment

  • Claude Code v2.0.76
  • macOS
  • Using dev-browser marketplace plugin

Impact

Without proper skill overrides, teams must implement fragile hook-based workarounds that:

  • Break when Claude doesn't follow hooks
  • Require multiple redundant safety nets
  • Create confusion about which instructions to follow
  • Make marketplace plugins less useful for customized projects

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗