# PM Skills Plugins Versioning Strategy: How Repository-Wide Semantic Versioning Works

> Discover the PM Skills repository-wide semantic versioning strategy. Learn how shared versions and simultaneous updates streamline plugin management for phuryn/pm-skills.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: best-practices
- Published: 2026-06-11

---

**PM Skills uses a monolithic, repository-wide versioning strategy where all plugins share a single semantic version (currently `2.0.0`), requiring simultaneous updates across every manifest file when any component changes.**

The `phuryn/pm-skills` repository distributes a collection of Claude plugins for product management workflows. Unlike typical plugin ecosystems that version components independently, this project employs a unified versioning strategy for PM Skills plugins that synchronizes every release across the entire codebase.

## Monolithic Versioning Model

### No Independent Per-Plugin Versions

Each plugin in the repository maintains the identical version string in its manifest. Whether you examine `pm-toolkit`, `pm-product-strategy`, or `pm-ai-shipping`, the [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) file contains the same version number. There are no exceptions or independent version tracks for individual plugins.

### Synchronized Release Cycle

When any plugin or the core repository receives updates, the version number increments globally. This ensures that users always operate with a consistent, tested combination of all plugins rather than mixing different versions that might introduce compatibility issues.

## Version Manifest Structure

The versioning strategy for PM Skills plugins relies on two types of JSON manifests located in `.claude-plugin` directories throughout the repository.

### Marketplace Manifest

The top-level [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) defines the global version for the entire collection:

```json
{
  "version": "2.0.0",
  ...
}

```

### Individual Plugin Manifests

Each of the nine plugins contains its own [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) file with the identical version string. For example, [`pm-toolkit/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/.claude-plugin/plugin.json):

```json
{
  "version": "2.0.0",
  ...
}

```

All nine plugins follow this exact pattern:
- [`pm-product-strategy/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-product-strategy/.claude-plugin/plugin.json)
- [`pm-product-discovery/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/.claude-plugin/plugin.json)
- [`pm-marketing-growth/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-marketing-growth/.claude-plugin/plugin.json)
- [`pm-market-research/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-market-research/.claude-plugin/plugin.json)
- [`pm-go-to-market/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-go-to-market/.claude-plugin/plugin.json)
- [`pm-execution/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/.claude-plugin/plugin.json)
- [`pm-data-analytics/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-data-analytics/.claude-plugin/plugin.json)
- [`pm-ai-shipping/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-ai-shipping/.claude-plugin/plugin.json)

## Semantic Versioning Format

The project adheres to standard **semantic versioning** (`MAJOR.MINOR.PATCH`):

- **MAJOR**: Breaking changes or significant architectural shifts
- **MINOR**: New features or plugin additions
- **PATCH**: Bug fixes and minor improvements

## How Version Bumping Works

According to the repository's **CLAUDE.md** file under the "## Versioning" section, maintainers must update the version string in **all** manifests simultaneously. The documentation explicitly states:

> "All versions are currently **2.0.0** — [`marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/marketplace.json) and all 9 [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) files. Keep every version in sync. There is no independent per-plugin versioning."

To release version `2.1.0`, you must modify the `"version"` field in:
1. [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json)
2. All nine plugin-specific [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) files located in their respective `.claude-plugin/` directories

## Summary

- **PM Skills plugins use a single, repository-wide version** (currently `2.0.0`) rather than individual per-plugin versions
- **All manifests must stay synchronized**, including the top-level [`marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/marketplace.json) and each plugin's [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json)
- **Semantic versioning** (`MAJOR.MINOR.PATCH`) governs release increments across the entire collection
- **Nine plugins** follow this strategy: pm-toolkit, pm-product-strategy, pm-product-discovery, pm-marketing-growth, pm-market-research, pm-go-to-market, pm-execution, pm-data-analytics, and pm-ai-shipping
- **Documentation** resides in [`CLAUDE.md`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md) under the Versioning section

## Frequently Asked Questions

### Can individual PM Skills plugins have different version numbers?

No. The versioning strategy for PM Skills plugins explicitly prohibits independent versioning. Every plugin manifest must contain the identical version string to maintain consistency across the collection, as mandated by the repository's CLAUDE.md documentation.

### What happens when only one plugin receives updates?

Even if changes affect only a single plugin (such as `pm-toolkit`), the version number must be bumped across all nine plugin manifests and the marketplace manifest. This monolithic approach ensures users never encounter version mismatches between interdependent plugins.

### Where is the versioning policy documented?

The authoritative documentation appears in [`CLAUDE.md`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md) at the repository root, specifically under the "## Versioning" section. This file mandates that all versions remain synchronized and provides the current version number for reference when preparing releases.

### How many plugins follow this versioning strategy?

Nine plugins follow this synchronized versioning model. Each maintains its version declaration in a [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) file within its respective `.claude-plugin/` directory, including pm-toolkit, pm-product-strategy, pm-product-discovery, pm-marketing-growth, pm-market-research, pm-go-to-market, pm-execution, pm-data-analytics, and pm-ai-shipping.