Plugin: support codex-resident plugins (skip marketplace mirror tier)

Resolved 💬 1 comment Opened May 6, 2026 by drewdrewthis Closed Jun 4, 2026

Problem

When a marketplace and its plugins live in the same git repo, the current
three-tier architecture (canonical source -> marketplace mirror -> runtime
cache) creates an invisible drift hazard. The author edits canonical source,
but Claude Code consumes the marketplace mirror -- and the two can drift if
anything updates one without updating the other.

Repro

On 2026-05-06, in a repo that hosts both a marketplace and its plugins, the
claude-conversations plugin's Stop hook silently broke. Diagnosis:

  • Canonical source: <repo>/plugin-sources/claude-conversations/hooks/

declared only UserPromptSubmit; on-stop.sh was NOT present.

  • Marketplace mirror: ~/.claude/plugins/marketplaces/<marketplace>/plugin-sources/claude-conversations/hooks/

declared both Stop and UserPromptSubmit; on-stop.sh WAS present.

  • Runtime cache (built from the marketplace mirror) tried to invoke

on-stop.sh from a path that didn't exist in the cache, producing
a No such file or directory warning on every Stop event.

Fix: a single commit syncing canonical to mirror. The bug was invisible
until a hook started failing, because nothing surfaces canonical-vs-mirror
divergence.

Ask

For plugins whose marketplace lives in the same git repo as the source, one
or more of the following would eliminate the drift class:

  • Option A (preferred): allow a marketplace declaration to point to a

repo-relative path, and have Claude Code skip the mirror tier (link the
runtime cache directly to the canonical source).

  • Option B: require the marketplace mirror tier to be git-tracked in

the repo, so canonical and mirror are guaranteed in sync via normal git
workflow.

  • Option C: provide a CLI command (e.g. claude plugin doctor) that

flags canonical-vs-mirror divergence so authors can detect drift before
it manifests as a runtime failure.

Severity

Low for end users (the standard plugin update workflow is unaffected).
High for plugin authors who host the marketplace in the same repo as
the plugin source -- silent breakage with no diagnostic surface.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗