# pm-skills Project Structure: A Modular Marketplace Architecture

> Explore the pm-skills project structure, a modular marketplace architecture. Discover self-contained, plugin-based skills and auto-validated domain directories for consistent metadata.

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

---

**The pm-skills repository implements a plugin-based marketplace structure where nine domain-specific directories (like `pm-product-discovery/` and `pm-execution/`) each contain self-contained skills defined in [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) files and slash commands documented in `commands/` folders, auto-validated by [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) to ensure metadata consistency.**

The phuryn/pm-skills project organizes product management expertise into discrete, auto-loaded modules that Claude and compatible AI assistants consume dynamically. Understanding this pm-skills project structure reveals how domain knowledge is encapsulated, validated, and exposed through standardized interfaces without requiring explicit imports or configuration.

## Core Architecture: The Plugin Marketplace

The repository functions as a **modular marketplace** where each top-level directory represents a cohesive product management domain. The architecture distinguishes between two primary abstractions:

- **Skills** – Self-contained knowledge blocks stored in `skills/<skill-name>/SKILL.md` files that define inputs, outputs, and execution logic
- **Commands** – User-triggered workflows invoked with leading slashes (e.g., `/discover`, `/write-prd`) that chain one or more skills to produce end-to-end results

Plugins are auto-loaded by Claude when relevant capabilities are requested, eliminating manual configuration. The [`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py) script enforces structural consistency across all modules, ensuring every skill has required metadata and matching command documentation where applicable.

## Plugin Directory Breakdown

The repository contains nine specialized plugins following a consistent internal layout with `skills/` and `commands/` subdirectories.

### pm-toolkit: General Utilities

The `pm-toolkit/` directory houses cross-functional utilities including resume review and legal document drafting. Key files include:

- [`skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/skills/review-resume/SKILL.md) – Defines input schemas and evaluation criteria for resume analysis
- [`commands/review-resume.md`](https://github.com/phuryn/pm-skills/blob/main/commands/review-resume.md) – Documents the `/review-resume` slash command syntax
- `skills/draft-nda/` and [`commands/draft-nda.md`](https://github.com/phuryn/pm-skills/blob/main/commands/draft-nda.md) – Template-based NDA generation

### pm-product-discovery: Ideation and Validation

The `pm-product-discovery/` plugin manages the problem-space exploration phase with **13 skills** and **5 commands**:

- **Skills**: `brainstorm-ideas-new`, `identify-assumptions-new`, `prioritize-assumptions`, `brainstorm-experiments-new`
- **Commands**: `/discover`, `/assumptions`, `/experiments`

According to the source code, invoking `/discover` triggers an internal chain: `brainstorm-ideas-new → identify-assumptions-new → prioritize-assumptions → brainstorm-experiments-new`.

### pm-product-strategy: Vision and Business Models

The `pm-product-strategy/` directory contains **12 skills** and **5 commands** for strategic planning:

- **Skills**: `product-vision`, `pricing-strategy`, `business-model`, `competitive-analysis`
- **Commands**: `/strategy`, `/pricing`, `/business-model`

The `/pricing` command leverages the `pricing-strategy` skill to output competitive analysis, willingness-to-pay surveys, and price-elasticity calculations.

### pm-execution: Day-to-Day Operations

The `pm-execution/` plugin provides the largest capability set with **16 skills** and **11 commands** for operational product management:

- **Skills**: `create-prd`, `retro`, `okrs`, `roadmap`, `release-notes`
- **Commands**: `/write-prd`, `/retro`, `/okrs`, `/roadmap`

This plugin covers the full execution lifecycle from documentation through retrospectives.

### Specialized Domain Plugins

Five additional plugins handle specific verticals:

- **`pm-market-research/`** – **7 skills** (`user-personas`, `market-sizing`) and **3 commands** (`/research-users`)
- **`pm-data-analytics/`** – **3 skills** (`sql-queries`, `cohort-analysis`, `ab-test-analysis`) and **3 commands** (`/write-query`)
- **`pm-go-to-market/`** – **6 skills** (`gtm-strategy`, `ideal-customer-profile`) and **3 commands** (`/plan-launch`)
- **`pm-marketing-growth/`** – **5 skills** (`north-star-metric`) and **2 commands** (`/north-star`)
- **`pm-ai-shipping/`** – **2 skills** (`shipping-artifacts`, `intended-vs-implemented`) and **5 commands** (`/ship-check`, `/security-audit-static`)

## Repository-Wide Infrastructure Files

Beyond plugin directories, the root level contains critical governance and configuration files:

### Validation and Testing

- **[`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py)** – Scans all nine plugins to ensure structural consistency, verifying that each skill has a [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) with required metadata (name, description) and checking command-skill parity
- **[`tests/test_validator.py`](https://github.com/phuryn/pm-skills/blob/main/tests/test_validator.py)** – Unit tests for the validation logic
- **[`tests/test_consistency.py`](https://github.com/phuryn/pm-skills/blob/main/tests/test_consistency.py)** – Cross-plugin integrity checks

### Agent Configuration

- **[`CLAUDE.md`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md)** – The single source of truth for agent-specific guidance referenced by [`AGENTS.md`](https://github.com/phuryn/pm-skills/blob/main/AGENTS.md)
- **[`README.md`](https://github.com/phuryn/pm-skills/blob/main/README.md)** – High-level project overview with installation instructions and a compact summary table of all plugins, skills, and commands

## Practical Usage Examples

The following interactions demonstrate how the repository structure translates to end-user workflows:

### Run a Full Discovery Workflow

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

```

This triggers the `pm-product-discovery` plugin's `/discover` command, executing the skill chain: `brainstorm-ideas-new → identify-assumptions-new → prioritize-assumptions → brainstorm-experiments-new`.

### Generate a Pricing Strategy

```text
/pricing Build a tiered pricing model for a B2B analytics platform

```

Invokes `pm-product-strategy`'s `/pricing` command, utilizing the `pricing-strategy` skill for competitive analysis and price-elasticity calculations.

### Draft Legal Documentation

```text
/draft-nda Draft a non-disclosure agreement for a cloud-provider collaboration covering IP clauses

```

Calls the `pm-toolkit` plugin's `/draft-nda` command, pulling the `draft-nda` skill templates.

### Execute Security Audits

```text
/security-audit-static src/api

```

Activates `pm-ai-shipping`'s `/security-audit-static` command, combining the `shipping-artifacts` skill to map trust boundaries and the `intended-vs-implemented` skill to compare documented intent with actual code.

## Summary

- The **pm-skills project structure** organizes product management expertise into **nine auto-loaded plugins**: `pm-toolkit`, `pm-product-discovery`, `pm-product-strategy`, `pm-execution`, `pm-market-research`, `pm-data-analytics`, `pm-go-to-market`, `pm-marketing-growth`, and `pm-ai-shipping`
- Each plugin contains **`skills/`** directories with [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) definition files and **`commands/`** directories documenting slash-command interfaces
- **Skills** are self-contained knowledge blocks; **commands** are user-facing workflows that chain multiple skills
- **[`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py)** enforces consistency across the marketplace, ensuring metadata completeness and proper command-skill relationships
- **[`CLAUDE.md`](https://github.com/phuryn/pm-skills/blob/main/CLAUDE.md)** serves as the canonical agent configuration, while `tests/` provides automated validation coverage
- Commands are invoked with leading slashes (e.g., `/discover`, `/write-prd`) and require no explicit imports or configuration

## Frequently Asked Questions

### What is the difference between a skill and a command in the pm-skills structure?

A **skill** is a self-contained knowledge block defined in a [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) file (such as [`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md)) that specifies inputs, outputs, and execution logic for a discrete task. A **command** is a user-facing interface documented in `commands/*.md` (such as [`pm-toolkit/commands/review-resume.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/commands/review-resume.md)) that chains one or more skills together to produce an end-to-end result, invoked via slash syntax like `/review-resume`.

### How does the pm-skills repository validate plugin consistency?

The repository uses **[`validate_plugins.py`](https://github.com/phuryn/pm-skills/blob/main/validate_plugins.py)** to scan all nine plugin directories and enforce structural rules. The validator ensures every skill has required metadata (name, description), checks for matching command documentation where applicable, and verifies that [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) files follow the universal schema. Unit tests in **[`tests/test_validator.py`](https://github.com/phuryn/pm-skills/blob/main/tests/test_validator.py)** provide automated coverage for this validation logic.

### Where are skill definitions stored in the pm-skills project?

Skill definitions reside in `skills/<skill-name>/` subdirectories within each plugin folder. For example, the resume review skill is located at **[`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md)**, while product discovery skills live in **`pm-product-discovery/skills/`**. Each skill directory contains a [`SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/SKILL.md) file following a standardized schema that defines input arguments, response structures, and execution parameters.

### How many plugins and commands are available in the pm-skills marketplace?

The repository contains **nine plugins** with a total of **64+ skills** and **39+ commands**. The largest plugin is `pm-execution` with 16 skills and 11 commands covering PRDs, OKRs, and retrospectives, while `pm-ai-shipping` is the most specialized with 2 skills and 5 commands focused on AI-generated code audits and static security analysis.