Creating Custom Commands in pm-skills: A Complete Guide to Extending the Claude Marketplace

Creating custom commands in pm-skills requires adding a markdown file with YAML front-matter to a plugin's commands/ directory, where you define the slash command trigger, argument hints, and a workflow that chains existing skills.

The pm-skills repository by phuryn/pm-skills functions as a Claude Marketplace that organizes product management capabilities into modular plugins. When you create custom commands, you extend this ecosystem by defining new slash-triggered workflows that orchestrate reusable skills stored in SKILL.md files.

Understanding the Plugin Architecture

The pm-skills repository organizes functionality into plugins such as pm-toolkit, pm-product-discovery, and pm-execution. Each plugin consists of three core components:

  • Skills – Reusable knowledge modules written in SKILL.md files (e.g., review-resume, create-prd).
  • Commands – User-triggered workflows stored as markdown files in the commands/ folder, each containing a YAML front-matter header.
  • Plugin manifest – A JSON file at .claude-plugin/plugin.json that registers the plugin's metadata.

When Claude loads the marketplace, it automatically parses every commands/*.md file. The front-matter defines the slash command name, expected arguments, and description, while the body describes the workflow and references skills by name.

Anatomy of a Command File

Every command in pm-skills follows a standardized structure. The file must reside in a plugin's commands/ directory and contain two sections: a YAML front-matter block and a markdown workflow description.

YAML Front-Matter

The front-matter specifies the command's metadata:

  • description – Human-readable explanation of what the command does.
  • argument-hint – Template showing expected CLI arguments.

Workflow Body

The markdown body describes step-by-step instructions that may invoke one or more skills. Because skills are loaded on-demand, you reference them by name (e.g., "Apply the review-resume skill").

Step-by-Step Guide to Creating Custom Commands in pm-skills

To illustrate the process, here is a complete walkthrough for adding /my-insight, which combines the product-vision and pricing-strategy skills to generate a go-to-market brief.

1. Create the Command File

Create pm-product-strategy/commands/my-insight.md with the following content:

---
description: Generate a concise product vision and pricing brief for a new idea
argument-hint: "<product idea>"
---

# /my-insight -- Vision & Pricing Quick Brief

Provide a short product idea and receive:

1. A polished product vision statement (via the `product-vision` skill)
2. A pricing strategy outline (via the `pricing-strategy` skill)

## Invocation

/my-insight Launch a AI-powered note-taking app for remote teams


## Workflow

### Step 1 – Vision

Ask Claude to run the **product-vision** skill with the supplied idea.

### Step 2 – Pricing

Feed the same idea into the **pricing-strategy** skill.

### Step 3 – Assemble Brief

Combine the two outputs into a single markdown section:

Vision

Pricing


The command returns the assembled brief ready for sharing with stakeholders.

2. Register the Plugin (If Creating a New One)

If you are creating a brand-new plugin rather than adding to an existing one, create a plugin.json file in the .claude-plugin/ directory:

{
  "name": "pm-custom",
  "version": "0.1.0",
  "description": "User-defined commands and skills for ad-hoc product work",
  "author": {
    "name": "Your Name",
    "email": "[email protected]",
    "url": "https://your-site.example"
  },
  "keywords": ["custom", "commands", "product-management"],
  "homepage": "https://github.com/your-org/pm-custom",
  "license": "MIT"
}

3. Invoke the Command

Once the marketplace refreshes, invoke your new command:


/my-insight Build a collaborative whiteboard for design teams

Claude automatically loads the referenced skills and executes the workflow defined in your command file.

Reference Implementation: The /tailor-resume Command

The repository provides production examples of creating custom commands. The /tailor-resume command in the pm-toolkit plugin demonstrates the complete pattern:

This command chains multiple skills to analyze a resume against a job description, illustrating how complex workflows are structured.

Key Files for Command Development

When creating custom commands in pm-skills, reference these canonical files in the repository:

Summary

  • Creating custom commands in pm-skills involves adding markdown files to a plugin's commands/ directory with YAML front-matter defining the slash command and arguments.
  • Commands reference skills by name in their workflow bodies, allowing you to chain reusable capabilities without duplicating logic.
  • The plugin manifest at .claude-plugin/plugin.json registers your plugin with the Claude Marketplace.
  • Existing examples like pm-toolkit/commands/tailor-resume.md provide production-ready templates for structuring commands.
  • Skills are loaded on-demand, so commands can range from simple single-skill calls to complex multi-skill orchestrations.

Frequently Asked Questions

What file extension should custom commands use?

Custom commands in pm-skills must use the .md extension and reside in a commands/ folder within a plugin directory. The system automatically discovers and parses these markdown files based on their location and YAML front-matter headers.

Can I create commands without writing new skills?

Yes. Creating custom commands often involves chaining existing skills rather than writing new ones. You can reference any skill available in the marketplace (such as product-vision or pricing-strategy) by name in your command's workflow section, and Claude will automatically load them at runtime.

How does the plugin manifest relate to custom commands?

The plugin.json file located at .claude-plugin/plugin.json registers your plugin with the Claude Marketplace, defining the plugin name, version, and author information. While individual commands define specific workflows, the manifest makes the entire plugin discoverable and versioned within the pm-skills ecosystem.

Where should I place my custom command if I'm extending an existing plugin?

Add your command markdown file to the existing plugin's commands/ directory (e.g., pm-toolkit/commands/my-command.md). If you are creating a new plugin, establish the directory structure as your-plugin-name/commands/ and include a .claude-plugin/plugin.json manifest file to register it with the marketplace.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →