# What Is the Marketplace Manifest in PM Skills? A Complete Guide

> Understand the marketplace manifest in PM Skills, the root JSON catalog that registers all nine PM Skills plugins and their metadata for AI assistant marketplaces. Learn more in this complete guide.

- Repository: [Pawel Huryn/pm-skills](https://github.com/phuryn/pm-skills)
- Tags: getting-started
- Published: 2026-06-20

---

**The marketplace manifest is the root JSON catalog at [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) that registers all nine PM Skills plugins and their metadata for AI assistant marketplaces.**

The phuryn/pm-skills repository organizes product management expertise into a modular plugin architecture consumable by Claude Code and compatible AI environments. At the heart of this system lies the marketplace manifest, a single authoritative file that defines the entire suite and enables discovery as a unified skill marketplace rather than a collection of disconnected scripts.

## What Is the PM Skills Marketplace Manifest?

The marketplace manifest serves as the entry point for the PM Skills ecosystem. Located at [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) in the repository root, this file aggregates metadata for all nine specialized plugins---from product discovery to go-to-market strategy---into a single discoverable catalog.

According to the repository documentation in [`CLAUDE.md`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md), this manifest enables Claude Code and Claude Cowork to recognize the repository as a unified skill marketplace. The file contains top-level metadata describing the suite, plus an array of plugin references that point to individual plugin directories following the `pm-{name}` naming convention.

## Structure and Schema of the Marketplace Manifest

### Required Metadata Fields

The manifest must include several validated fields to pass the repository's integrity checks enforced by [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py):

- **name**: The human-readable identifier for the marketplace entry
- **description**: A concise summary displayed in marketplace browsers
- **version**: Semantic versioning for the entire suite
- **author**: Attribution for the plugin collection
- **keywords**: Searchable tags for discovery
- **plugins**: Array of plugin objects defining the nine modules

### The Plugins Array

Each object in the `plugins` array references a subdirectory following the `pm-{name}` convention. While the marketplace manifest contains high-level metadata, each plugin maintains its own detailed manifest at `pm-{name}/.claude-plugin/plugin.json`. The marketplace manifest registers these sub-manifests, creating a two-tier validation system where the root catalog points to nine individual plugin configurations.

## How the Manifest Is Validated

The repository includes a dedicated validation script at [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) that enforces manifest integrity. This script performs several critical checks:

1. Verifies that [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) exists and contains valid JSON
2. Confirms the manifest lists exactly nine plugins matching the directory structure
3. Validates that each referenced plugin contains its own [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json) with required fields
4. Checks for schema compliance across both marketplace and plugin-level manifests

Running this validation ensures that any changes to the marketplace structure maintain compatibility with AI assistant loading mechanisms.

## Working with the Marketplace Manifest

### Reading the Manifest Programmatically

You can parse the marketplace manifest to inspect the PM Skills suite programmatically:

```python
import json
from pathlib import Path

# Load the marketplace manifest from repository root

manifest_path = Path('.claude-plugin/marketplace.json')
with open(manifest_path) as f:
    marketplace = json.load(f)

# Display plugin inventory

print(f"Marketplace: {marketplace['name']}")
print(f"Total plugins: {len(marketplace['plugins'])}")
for plugin in marketplace['plugins']:
    print(f"  - {plugin['name']}: {plugin['description']}")

```

### Validating Changes Locally

Before submitting changes to the repository, run the validation script to ensure manifest integrity:

```bash
python3 validate_plugins.py

```

This command checks both the root marketplace manifest and all nine individual plugin manifests, reporting any schema violations or missing fields.

### Integration with Claude Code

When you reference the PM Skills repository in Claude Code using `/plugin marketplace`, the assistant reads [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) to present the suite description and plugin list. The manifest allows Claude to load the complete product management toolkit as a coherent unit rather than importing individual scripts separately.

## Summary

- The marketplace manifest is located at [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) in the phuryn/pm-skills repository root
- It catalogs all nine PM Skills plugins with metadata including name, description, version, author, and keywords
- The [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) script enforces schema compliance and verifies that the plugins array matches the actual `pm-{name}` directory structure
- Individual plugin manifests reside at `pm-{name}/.claude-plugin/plugin.json` and are referenced by the root manifest
- Claude Code and compatible assistants use this file to discover and load the complete PM Skills suite as a unified marketplace entry

## Frequently Asked Questions

### What file format does the PM Skills marketplace manifest use?

The marketplace manifest uses standard JSON format with a specific schema enforced by the validation script. It must include required fields like `name`, `description`, `version`, and a `plugins` array containing metadata for all nine modules.

### Where is the marketplace manifest located in the repository?

The manifest resides at [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json) in the repository root. This hidden directory convention follows the Claude plugin specification, allowing AI assistants to identify the file as a marketplace entry point rather than standard documentation.

### How does the marketplace manifest relate to individual plugin manifests?

The marketplace manifest provides a high-level catalog of all nine plugins, while each plugin maintains its own detailed manifest at `pm-{name}/.claude-plugin/plugin.json`. The root manifest references these sub-directories, creating a hierarchical structure where the validator checks both levels for consistency.

### What happens if the marketplace manifest fails validation?

If [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) detects errors in [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json)---such as missing required fields, invalid JSON syntax, or mismatches between the plugins array and actual directories---the script exits with error details. This prevents broken marketplace entries from being committed to the repository.