claude-code - 💡(How to fix) Fix [DOCS] Plugin dependency docs missing git-tag version constraint update behavior [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#52608Fetched 2026-04-24 06:02:35
View on GitHub
Comments
1
Participants
2
Timeline
4
Reactions
0
Author
Timeline (top)
labeled ×3commented ×1

Code Example

> {
>   "name": "plugin-name",
>   "version": "1.2.0",
>   "description": "Brief plugin description",
>   ...
>   "monitors": "./monitors.json"
> }
>

---

> {
>   "name": "github-plugin",
>   "source": {
>     "source": "github",
>     "repo": "owner/plugin-repo",
>     "ref": "v2.0.0",
>     "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
>   }
> }
>
RAW_BUFFERClick to expand / collapse

Documentation Type

Missing documentation (feature not documented)

Documentation Location

https://code.claude.com/docs/en/plugins-reference

Section/Topic

plugin.json manifest schema, plugin dependency/version resolution behavior, and plugin auto-update behavior for git-tagged dependencies

Current Documentation

The plugin reference currently says it documents the manifest fields comprehensively, but it does not describe plugin-to-plugin dependency declarations or version-constraint behavior:

The .claude-plugin/plugin.json file defines your plugin's metadata and configuration. This section documents all supported fields and options.

{
  "name": "plugin-name",
  "version": "1.2.0",
  "description": "Brief plugin description",
  ...
  "monitors": "./monitors.json"
}

The marketplace guide documents only fixed git pins for plugin sources:

You can pin to a specific branch, tag, or commit:

{
  "name": "github-plugin",
  "source": {
    "source": "github",
    "repo": "owner/plugin-repo",
    "ref": "v2.0.0",
    "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"
  }
}

ref: Optional. Git branch or tag (defaults to repository default branch)

sha: Optional. Full 40-character git commit SHA to pin to an exact version

The install/update docs only describe generic latest-version updates:

Claude Code can automatically update marketplaces and their installed plugins at startup. When auto-update is enabled for a marketplace, Claude Code refreshes the marketplace data and updates installed plugins to their latest versions.

Update a plugin to the latest version.

What's Wrong or Missing?

Changelog v2.1.119 added a user-visible behavior change: plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag.

The current docs do not explain:

A. How plugin dependency version constraints are declared

plugins-reference says it documents all supported plugin.json fields, but there is no documented field or schema explanation for one plugin depending on another plugin with a version constraint.

B. How constraint resolution works for git-based plugins

plugin-marketplaces explains fixed ref and sha pins, but not semver-like dependency constraints that resolve against git tags.

C. How auto-update behaves when a dependency is constraint-pinned

discover-plugins and plugins-reference say plugins update to the “latest version,” but they do not explain that dependency-constrained git plugins advance to the highest satisfying tag rather than staying on the originally installed tag.

Without this, plugin authors and admins cannot reliably predict how dependent plugins are selected or updated.

Suggested Improvement

Add a dedicated subsection to plugins-reference for plugin dependencies/version constraints that covers:

  1. The manifest field(s) used to declare that one plugin depends on another
  2. Accepted version-constraint syntax
  3. How git-based dependencies resolve against tags
  4. The v2.1.119 behavior that auto-update selects the highest satisfying git tag for dependency-constrained plugins
  5. How this differs from fixed ref and sha pinning

Then add short cross-references:

  • In plugin-marketplaces, note that direct plugin source ref/sha pinning is different from dependency-based version resolution
  • In discover-plugins, link the auto-update section to the detailed dependency/version-resolution reference

An example would help clarify expected behavior for a dependency constrained to a range such as ^2.0.0 and what tag Claude Code selects during auto-update.

Impact

Medium - Makes feature difficult to understand

Additional Context

Affected Pages:

PageContext
https://code.claude.com/docs/en/plugins-referenceplugin.json schema claims to document all supported fields; claude plugin update is described here
https://code.claude.com/docs/en/plugin-marketplacesDocuments git plugin source ref/sha pinning and version resolution
https://code.claude.com/docs/en/discover-pluginsDocuments marketplace/plugin auto-update behavior at startup

Total scope: 3 pages affected

Source: Changelog v2.1.119

Exact changelog entry: Plugins pinned by another plugin's version constraint now auto-update to the highest satisfying git tag

extent analysis

TL;DR

Add a dedicated subsection to the plugins-reference documentation to explain plugin dependencies, version constraints, and auto-update behavior for git-tagged dependencies.

Guidance

  • Identify the missing documentation sections in plugins-reference, plugin-marketplaces, and discover-plugins to understand the scope of the issue.
  • Determine the required content for the new subsection, including manifest fields, version-constraint syntax, and git-based dependency resolution.
  • Develop a clear explanation of the v2.1.119 behavior and its differences from fixed ref and sha pinning.
  • Create cross-references between the affected pages to ensure consistency and ease of use.

Example

An example of a plugin.json file with a dependency constraint, such as:

{
  "name": "dependent-plugin",
  "version": "1.0.0",
  "dependencies": {
    "other-plugin": "^2.0.0"
  }
}

could help illustrate the expected behavior during auto-update.

Notes

The suggested improvement requires careful consideration of the documentation's tone, style, and audience to ensure that the new content is clear, concise, and easy to understand.

Recommendation

Apply the suggested improvement by adding a dedicated subsection to plugins-reference and creating cross-references to other affected pages, as this will provide a comprehensive and accurate explanation of plugin dependencies and version constraints.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING