plugin-dependency-string-with-marketplace
Bare-string dependency must be a plugin name and cannot contain "@"
Rule Details
The "name@marketplace" form is valid CLI syntax (claude plugin install foo@bar), which is why it looks correct in a manifest. It is not valid manifest syntax. To depend on a plugin in another marketplace, use the object form with an explicit marketplace field, and ensure the root marketplace lists that marketplace in allowCrossMarketplaceDependenciesOn. Dependencies can be declared in two places and break identically in both: a plugin.json, and a plugin entry inside marketplace.json. This rule checks both.
Incorrect
CLI syntax used in a plugin.json dependency string
{
"name": "mintlify-docs",
"dependencies": ["mintlify@claude-plugins-official"]
}The same string inside a marketplace.json plugin entry
{
"name": "acme-tools",
"owner": { "name": "Acme" },
"plugins": [
{
"name": "mintlify-docs",
"source": "./mintlify-docs",
"dependencies": ["mintlify@claude-plugins-official"]
}
]
}Correct
Object form with an explicit marketplace
{
"name": "mintlify-docs",
"dependencies": [
{ "name": "mintlify", "marketplace": "claude-plugins-official" }
]
}Bare string for a plugin in the same marketplace
{
"name": "deploy-kit",
"dependencies": ["audit-logger"]
}How To Fix
Replace the string with an object of the form { "name": "my-plugin", "marketplace": "their-marketplace" }. Then add the target marketplace to allowCrossMarketplaceDependenciesOn in the root marketplace.json, or the install will fail with a cross-marketplace error.
Options
This rule does not have any configuration options.
Related Rules
Resources
Version
Available since: v0.6.0