# Structure of a PM Skills Plugin: A Complete Guide to the Claude Marketplace Architecture

> Explore the complete structure of a PM skills plugin for the Claude Marketplace. Learn about the plugin.json metadata, SKILL.md files, and slash-command definitions.

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

---

**A PM Skills plugin follows a standardized three-tier directory structure containing a [`.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/plugin.json) metadata file, a `skills/` directory with individual [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) files, and a `commands/` directory housing slash-command definitions.**

The **PM Skills** repository (`phuryn/pm-skills`) operates as an AI-powered marketplace of Claude plugins designed for product management workflows. Understanding the structure of a PM Skills plugin is essential for contributors and users who want to extend the marketplace or leverage its capabilities for strategic planning, discovery, and execution tasks.

## Directory Layout and Core Components

Each plugin in the marketplace resides in its own top-level folder following the `pm-<domain>/` naming convention (e.g., `pm-go-to-market`, `pm-product-discovery`). The repository organizes nine distinct plugins this way, and all share an identical internal architecture.

```

pm-<domain>/
├─ .claude-plugin/
│   └─ plugin.json           ← plugin metadata and discovery info
├─ skills/
│   └─ <skill-name>/
│       └─ SKILL.md          ← reusable prompt template
└─ commands/
    └─ <command-name>.md     ← slash-command workflow definition

```

### Plugin Metadata Configuration

The [`.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/plugin.json) file declares the plugin's identity, version, and author credentials. Claude reads this file during the discovery phase to register the plugin's capabilities.

In [`pm-go-to-market/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-go-to-market/.claude-plugin/plugin.json), the metadata specifies the plugin name, version, and descriptive tags that help Claude match user queries to available skills. Similarly, [`pm-ai-shipping/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-ai-shipping/.claude-plugin/plugin.json) (version 2.0.0) demonstrates how semantic versioning tracks feature updates across the marketplace.

### Skill Definitions

Skills are self-contained markdown files stored in `skills/<skill-name>/SKILL.md`. These files encode proven product management frameworks—such as SWOT analysis, pricing strategies, or PRD templates—as structured prompts that Claude can execute.

For example, [`pm-product-strategy/skills/pricing-strategy/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-strategy/skills/pricing-strategy/SKILL.md) contains the prompt template for generating tiered pricing models, while [`pm-execution/skills/create-prd/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-execution/skills/create-prd/SKILL.md) defines the narrative structure and required sections for product requirement documents. Each skill operates independently, allowing multiple commands to reference the same underlying capability.

### Command Workflows

Commands represent multistep workflows that chain together individual skills. Stored as `commands/<command-name>.md`, these files define slash commands (e.g., `/discover`, `/plan-launch`) and specify the sequence of skills to execute.

The file [`pm-product-discovery/commands/discover.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/commands/discover.md) illustrates this pattern by listing four sequential skills: `brainstorm-ideas-new`, `identify-assumptions-new`, `prioritize-assumptions`, and `brainstorm-experiments-new`. When a user invokes `/discover`, Claude parses this command file and orchestrates the skill chain automatically.

## How the Plugin Architecture Works

The PM Skills marketplace follows a four-stage execution flow that transforms user input into structured product management deliverables.

1. **Installation** – Users add the marketplace via Claude Cowork or the CLI, which pulls all nine plugins and their metadata into the local environment.

2. **Skill Loading** – When Claude detects a query matching a skill's semantic signature (e.g., "pricing strategy" matching [`pm-product-strategy/skills/pricing-strategy/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-strategy/skills/pricing-strategy/SKILL.md)), it loads the corresponding markdown file without requiring explicit command invocation.

3. **Command Execution** – Slash commands trigger sequential skill execution. For instance, `/plan-launch` invokes the `gtm-strategy` skill, `beachhead-segment`, `ideal-customer-profile`, `growth-loops`, and `competitive-battlecard` in sequence, aggregating outputs into a cohesive go-to-market plan.

4. **Result Delivery** – Claude returns assembled outputs (tables, strategic frameworks, or draft documents) directly in the chat interface. Users can persist results by requesting file exports or copying structured markdown.

## Practical Examples of Plugin Usage

### Running a Discovery Workflow

Invoke the discovery command with a product concept:

```text
/discover AI-powered meeting summarizer for remote teams

```

Claude executes the skill chain defined in [`pm-product-discovery/commands/discover.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/commands/discover.md), returning a package containing idea variations, risky assumptions, prioritized validation experiments, and lean test proposals.

### Installing a Single Plugin via CLI

Install only the Go-to-Market plugin to keep the environment lightweight:

```bash
claude plugin install pm-go-to-market@pm-skills

```

This command pulls only the specified plugin's [`plugin.json`](https://github.com/phuryn/pm-skills/blob/main/plugin.json), skills, and commands, rather than the entire marketplace.

### Using Individual Skills

Query a specific skill directly without invoking a full command workflow:

```text
pricing-strategy — Build a tiered pricing model for a SaaS product with competitive analysis

```

Claude loads [`pm-product-strategy/skills/pricing-strategy/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-strategy/skills/pricing-strategy/SKILL.md) and returns a markdown table with tier names, price points, feature bundles, and competitive positioning rationale.

### Data Analytics Commands

For SQL generation tasks, the command file [`pm-data-analytics/commands/write-query.md`](https://github.com/phuryn/pm-skills/blob/main/pm-data-analytics/commands/write-query.md) wraps the `sql-queries` skill, allowing users to request database queries through natural language descriptions.

## Summary

- **Standardized structure**: Every PM Skills plugin uses `pm-<domain>/.claude-plugin/plugin.json`, `skills/<name>/SKILL.md`, and `commands/<name>.md`.
- **Separation of concerns**: Skills contain reusable prompt templates, while commands define workflow orchestration.
- **File-based configuration**: No compilation required—plugins are defined through markdown and JSON files that Claude interprets at runtime.
- **Composable architecture**: Multiple commands can reference the same skill, maximizing reuse across the nine-plugin marketplace.

## Frequently Asked Questions

### What is the difference between a skill and a command in PM Skills?

A **skill** is a single reusable prompt template stored in `skills/<skill-name>/SKILL.md` that performs one specific product management task (e.g., generating a competitive battlecard). A **command** is a workflow definition stored in `commands/<command-name>.md` that chains multiple skills together to accomplish complex, multi-step objectives (e.g., `/discover` running four distinct discovery skills sequentially).

### How do I install a specific PM Skills plugin instead of the entire marketplace?

Use the Claude CLI with the specific plugin identifier: `claude plugin install pm-go-to-market@pm-skills`. This pulls only the targeted plugin's metadata, skills, and commands rather than all nine plugins in the `phuryn/pm-skills` repository, keeping your local environment minimal and focused.

### What file format does Claude expect for skill definitions?

Claude expects skill definitions to be **Markdown files named exactly [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md)** and located within a subdirectory under the `skills/` folder (e.g., [`skills/pricing-strategy/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/skills/pricing-strategy/SKILL.md)). These files must contain the prompt template, usage instructions, and optional output format specifications that guide Claude's response generation.

### Can I create my own PM Skills plugin for a custom domain?

Yes. Create a new top-level directory following the `pm-<domain>` naming convention, then populate it with the standard three-component structure: [`.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/plugin.json) for metadata, `skills/` subdirectories containing [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) files, and `commands/` containing markdown workflow definitions. Refer to [`pm-toolkit/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/.claude-plugin/plugin.json) and [`pm-ai-shipping/.claude-plugin/plugin.json`](https://github.com/phuryn/pm-skills/blob/main/pm-ai-shipping/.claude-plugin/plugin.json) as canonical examples of the required JSON schema.