Per-project plugin enablement (extraKnownMarketplaces + enabledPlugins in .claude/settings.json) silently does nothing on 2.1.233
Bug
Per-project plugin enablement via .claude/settings.json (extraKnownMarketplaces + enabledPlugins) has no effect: the plugin does not load, no skills appear, and nothing is reported. Measured on claude 2.1.233.
Expected
A project that declares a marketplace and enables a plugin in its own .claude/settings.json gets that plugin's skills in sessions started in that project — the documented way to scope a plugin to one repo.
Actual
Nothing loads, and nothing says so — no skills, no install, no plugin line in --debug output, no warning or error.
Repro
repo/
.claude-plugin/marketplace.json # name: "<mkt>", plugins: [{name: "<p>", source: "./corpkit"}]
corpkit/.claude-plugin/plugin.json
corpkit/skills/<skill>/SKILL.md
.claude/settings.json # { "extraKnownMarketplaces": { "<mkt>": { "source": { "source": "directory", "path": "." } } },
# "enabledPlugins": { "<p>@<mkt>": true } }
Start a session with cwd = repo → /<p>:<skill> is absent; the skill list shows no plugin skills; --debug shows no plugin activity.
Launching the same session with --plugin-dir ./corpkit loads the same skills correctly, so the plugin and its manifests are valid — only the settings-driven path is inert.
Verification that nothing else interfered
The run was performed inside an isolated CLAUDE_CONFIG_DIR. Before and after: md5sums of settings.json and plugins/*.json identical, and the same 938 paths present — so the path did not partially apply or write anywhere; it did nothing at all.
Impact
Silent no-op on a documented feature. Multi-repo setups that scope plugins per project appear configured and are not, with no signal that would prompt a second look — the failure is only discoverable by noticing the absence of skills.
---
🤖 Filed with Claude Code
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗