What Is the Marketplace Manifest in PM Skills? A Complete Guide
The marketplace manifest is the root JSON catalog at .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 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, 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:
- 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 that enforces manifest integrity. This script performs several critical checks:
- Verifies that
.claude-plugin/marketplace.jsonexists and contains valid JSON - Confirms the manifest lists exactly nine plugins matching the directory structure
- Validates that each referenced plugin contains its own
plugin.jsonwith required fields - 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:
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:
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 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.jsonin 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.pyscript enforces schema compliance and verifies that the plugins array matches the actualpm-{name}directory structure - Individual plugin manifests reside at
pm-{name}/.claude-plugin/plugin.jsonand 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 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 detects errors in .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.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →