# How PM Skills Commands Work in the Claude Marketplace: Architecture and Execution Flow

> Understand how PM Skills commands work in the Claude Marketplace. Explore their architecture and execution flow for streamlined workflow orchestration without code compilation.

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

---

**PM Skills commands are declarative markdown wrappers that register slash commands, load skill definitions from markdown files, and orchestrate them into executable workflows without requiring code compilation.**

The **phuryn/pm-skills** repository operates as a Claude plugin marketplace that structures product management expertise into reusable components. It separates domain knowledge into **skills** (analytical frameworks encoded in markdown) and **commands** (user-triggered workflows defined in the `commands/` directory). When integrated into Claude, these commands parse their markdown definitions, dynamically load referenced skills, and execute sequential logic to deliver structured outputs like resume reviews or strategy documents.

## Marketplace Manifest and Plugin Discovery

The marketplace initializes through a root manifest file that catalogs available capabilities. In [`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json), the repository lists nine distinct plugins—including `pm-toolkit`, `pm-product-strategy`, and `pm-product-discovery`—along with aggregated counts of skills and commands.

When you install the marketplace via `claude plugin marketplace add phuryn/pm-skills`, Claude reads this manifest and makes every plugin available for individual installation. Each plugin resides in its own folder (e.g., `pm-toolkit/`, `pm-product-strategy/`) and contains parallel `skills/` and `commands/` subdirectories that define the executable logic.

## Anatomy of a PM Skills Command

Commands function as thin orchestration layers that map slash-command syntax to skill execution. A command file contains YAML frontmatter describing the interface, followed by markdown detailing the workflow steps and skill references.

### Command Definition Files

Command definitions live in plugin-specific `commands/` directories. For example, **[`pm-toolkit/commands/review-resume.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/commands/review-resume.md)** defines the `/review-resume` slash command with frontmatter specifying the description and argument hints:

```markdown
---
description: Comprehensive PM resume review against 10 best practices …
argument-hint: "<resume as text or file>"
---

# /review-resume -- PM Resume Review

### Step 2: Evaluate Against 10 Best Practices

Apply the **review-resume** skill:
1. Impact Metrics …
2. XYZ+S Formula …

```

The body of the file instructs Claude how to process inputs and which skills to invoke. When a user types `/review-resume`, Claude parses this markdown to present help text and execute the defined workflow.

### Skill Implementation and Loading

Skills contain the actual analytical logic and prompt engineering. The `review-resume` command references the skill defined in **[`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md)**, which encapsulates the 10 best-practice checks, output templates, and few-shot examples:

```markdown
---
description: PM resume review …
---

## Workflow

### Step 1: Accept the Resume

...

### Step 2: Evaluate Against 10 Best Practices

1. **Impact Metrics**: Are accomplishments quantified? …

```

During execution, Claude automatically loads these referenced skill files and applies their logic to the user's input. Skills are universal markdown files, meaning they can be reused across different commands or even imported by other AI assistants (Gemini CLI, OpenCode, Cursor) by copying the `skills/` directory into their runtime folders.

## Command Execution Flow

When a user invokes a command, the following sequence occurs:

1. **Invocation**: User types `/<plugin-name>:<command-name>` or simply `/command-name` (e.g., `/review-resume`).
2. **Parsing**: Claude reads the command's markdown file, extracting the `description` and `argument-hint` to validate inputs.
3. **Skill Loading**: The system identifies skill references within the command file and loads the corresponding markdown from the `skills/` directory.
4. **Execution**: Claude applies the skill logic—running analysis, generating structured outputs, or formatting templates.
5. **Next Steps**: The command file may suggest follow-up commands (e.g., after `/review-resume` it offers `/tailor-resume`), creating guided workflows.

## Multi-Skill Chaining and Composition

Advanced commands orchestrate multiple skills sequentially to create end-to-end workflows. The `/discover` command in **[`pm-product-discovery/commands/discover.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/commands/discover.md)** demonstrates this by chaining four distinct skills:

1. **brainstorm-ideas** → 
2. **identify-assumptions** → 
3. **prioritize-assumptions** → 
4. **brainstorm-experiments**

This chaining is purely declarative—the command file lists the skill names in sequence, and Claude executes them in order, passing context between each stage. This architecture allows complex product discovery workflows to be constructed without writing procedural code, simply by referencing existing skill definitions.

## Installation and Activation Paths

You can activate PM Skills commands through two primary interfaces:

**Claude Cowork (UI):**
Navigate to *Customize → Browse plugins → Add marketplace from GitHub* and enter `phuryn/pm-skills`.

**Claude Code / Codex CLI:**

```bash
claude plugin marketplace add phuryn/pm-skills
claude plugin install pm-toolkit@pm-skills  # Brings in /review-resume, /tailor-resume, etc.

```

After installation, commands are immediately available. Individual plugins can be installed separately (e.g., `claude plugin install pm-product-strategy@pm-skills`) to access specific slash commands like `/pricing` or `/strategy`.

## Summary

- **PM Skills commands** are markdown files in `commands/` directories that define slash-command interfaces and workflows.
- **Skills** are reusable markdown logic files in `skills/` directories that contain prompts, frameworks, and templates.
- The **[`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json)** manifest serves as the entry point for the Claude marketplace integration.
- Commands execute by **loading referenced skills** and running them sequentially, with support for multi-skill chaining.
- Installation occurs via `claude plugin marketplace add phuryn/pm-skills` or through the Claude Cowork UI.
- The architecture is **declarative and extensible**—adding new commands requires only creating new markdown files, not code compilation.

## Frequently Asked Questions

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

A **skill** is a reusable markdown file containing domain logic, prompts, and output templates (e.g., [`pm-toolkit/skills/review-resume/SKILL.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/skills/review-resume/SKILL.md)). A **command** is a user-facing slash-command definition (e.g., [`pm-toolkit/commands/review-resume.md`](https://github.com/phuryn/pm-skills/blob/main/pm-toolkit/commands/review-resume.md)) that orchestrates one or more skills into a specific workflow. Commands handle the interface and sequencing; skills contain the actual analytical intelligence.

### How do I install a specific plugin from the PM Skills marketplace?

After adding the marketplace with `claude plugin marketplace add phuryn/pm-skills`, install individual plugins using `claude plugin install <plugin-name>@pm-skills`. For example, `claude plugin install pm-toolkit@pm-skills` installs the toolkit plugin and makes its commands (`/review-resume`, `/tailor-resume`) available immediately.

### Can PM Skills commands work with assistants other than Claude?

Yes, with limitations. The **skill files** are universal markdown that any AI assistant (Gemini CLI, OpenCode, Cursor, Kiro) can read and execute by copying the `skills/` directories into their runtime folders. However, the **slash-command syntax** and marketplace manifest ([`.claude-plugin/marketplace.json`](https://github.com/phuryn/pm-skills/blob/main/.claude-plugin/marketplace.json)) are Claude-specific, so the `/command-name` invocation method requires Claude or a compatible interface.

### How do I create a custom command that chains multiple skills?

Create a new markdown file in a plugin's `commands/` directory with YAML frontmatter defining the command metadata. In the body, list the skills to execute in order using the standard workflow syntax (e.g., "Apply the **brainstorm-ideas** skill, then apply the **identify-assumptions** skill"). Reference the **[`pm-product-discovery/commands/discover.md`](https://github.com/phuryn/pm-skills/blob/main/pm-product-discovery/commands/discover.md)** file as a template for multi-skill orchestration.