Remove per-plugin version override
Version comes solely from the marketplace definition.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/README.md b/README.md
index 7b495f8..eda3052 100644
--- a/README.md
+++ b/README.md
@@ -59,17 +59,15 @@ marketplaces:
plugins:
jj:
- marketplace: my-skills # inherits src, version, and manifest from the marketplace
+ marketplace: my-skills
gh-pr:
marketplace: my-skills
- version: v1.2.0 # override the marketplace default
```
-Every plugin references a named marketplace (inheriting `src` and `version`).
-A plugin can override `version` to pin a different branch or tag. The plugin
-path within the repo is discovered from `.claude-plugin/marketplace.json`
-(or the marketplace's `manifest` override).
+Every plugin references a named marketplace (inheriting `src`, `version`, and
+`manifest`). The plugin path within the repo is discovered from
+`.claude-plugin/marketplace.json` (or the marketplace's `manifest` override).
Removing a skill is done by removing it from the config and re-running
`pinch install`.
diff --git a/src/config.rs b/src/config.rs
index a1df3ce..7f24b54 100644
--- a/src/config.rs
+++ b/src/config.rs
@@ -67,7 +67,7 @@ pub fn load() -> Result<Vec<Plugin>> {
plugins.push(Plugin {
name,
src: mkt.src.clone(),
- version: entry.version.unwrap_or_else(|| mkt.version.clone()),
+ version: mkt.version.clone(),
manifest: mkt.manifest.clone(),
});
}
@@ -86,7 +86,6 @@ struct MarketplaceEntry {
#[derive(Deserialize)]
struct PluginEntry {
marketplace: String,
- version: Option<String>,
}
#[derive(Deserialize)]