Can PM Skills Be Customized or Extended with New Functionalities?

Yes, PM Skills supports customization and extension through plain markdown files, allowing you to add new skills and commands without writing compiled code.

PM Skills is an open-source Claude Marketplace plugin collection hosted at phuryn/pm-skills that enables product managers to customize and extend functionalities by creating markdown-based assets. The system uses a file-driven architecture where new capabilities are automatically discovered when placed in the appropriate directory structure.

Architecture Overview

PM Skills is organized as a collection of plugins (such as pm-toolkit and pm-product-discovery), each containing three core components:

  1. Skills – Markdown files (SKILL.md) that describe self-contained domain expertise with defined inputs and response formats.
  2. Commands – Markdown files that define slash-commands (/command-name) and orchestrate skills into workflows.
  3. Marketplace metadata – The .claude-plugin/marketplace.json file that registers all plugins and their source directories.

Because the system is entirely markdown-based, extending functionality requires only adding files following existing conventions. The Claude runtime automatically discovers new assets in skills/ and commands/ directories after installation.

Extending an Existing Plugin

To add capabilities to an existing plugin like pm-toolkit, create new markdown files in the designated directories. This process requires no changes to the marketplace registry if the plugin already exists.

Step 1: Create a New Skill

Define a new skill by creating a SKILL.md file in pm-toolkit/skills/<new-skill>/. The file must include a YAML frontmatter block with name, description, and content sections defining input arguments and response structure.

<!-- pm-toolkit/skills/product-metrics-audit/SKILL.md -->
---
name: product-metrics-audit
description: |
  Audits a list of product metrics (e.g., DAU, churn, NPS) against a health rubric
  and suggests improvements.
---

# Product Metrics Audit

## Input Arguments

- `$METRICS`: JSON array of metric objects `{name, value, target}`

## Response Structure

1. **Score** – overall health (0‑100)  
2. **Findings** – per‑metric assessment  
3. **Recommendations** – concrete actions to improve low‑scoring metrics

Step 2: Add a Command (Optional)

To expose the skill via a slash-command, create a markdown file in pm-toolkit/commands/<new-command>.md:

<!-- pm-toolkit/commands/metrics-audit.md -->
---
description: Run a health audit on product metrics
argument-hint: "<metrics JSON>"
---

# /metrics-audit

1. Accept the JSON payload (see `$METRICS`).  
2. Invoke the `product-metrics-audit` skill.  
3. Return the formatted audit report.

Step 3: Update Documentation

Add the new skill and command to pm-toolkit/README.md so users can discover the functionality.

Step 4: Publish Changes

Commit the new files to the repository. The .claude-plugin/marketplace.json does not require modification because it already points to the pm-toolkit source directory. Claude will load the new assets automatically upon reinstallation.

Creating a New Plugin

For entirely separate domains (e.g., "AI-ethics"), create a new plugin folder structure:


ai-ethics/
  ├─ skills/
  │   └─ bias-assessment/
  │       └─ SKILL.md
  ├─ commands/
  │   └─ assess-bias.md
  └─ README.md

Then register the plugin in .claude-plugin/marketplace.json:

{
  "name": "ai-ethics",
  "description": "Ethics‑focused skills for AI product teams",
  "source": "./ai-ethics",
  "category": "product-management"
}

After committing these changes, the marketplace will expose the new plugin as an installable option.

Runtime Discovery Mechanism

Claude loads plugins based on paths declared in marketplace.json. For each plugin directory, the runtime:

  1. Scans the skills/ directory for SKILL.md files and registers them as named skills.
  2. Scans the commands/ directory for markdown files starting with /<command> and binds them to corresponding skills.

Because discovery is file-system based, any markdown added to these directories becomes available immediately after plugin reload or reinstallation, without requiring code compilation or server restarts.

Practical Implementation Examples

Installing the Marketplace

Use the Claude Code CLI to add the marketplace and install plugins:


# Add the marketplace (once)

claude plugin marketplace add phuryn/pm-skills

# Install the base set of plugins

claude plugin install pm-toolkit@pm-skills
claude plugin install pm-product-discovery@pm-skills

Adding a Custom Skill via Shell

Automate skill creation using command-line tools:


# Create directory for the new skill

mkdir -p pm-toolkit/skills/product-metrics-audit

# Write the SKILL.md

cat > pm-toolkit/skills/product-metrics-audit/SKILL.md <<'EOF'
--- 
name: product-metrics-audit
description: Audits a list of product metrics against a health rubric.
---

# Product Metrics Audit

## Input Arguments

- `$METRICS`: JSON array of metric objects

## Response Structure

1. Overall health score
2. Per-metric findings
3. Improvement recommendations
EOF

# Add a command that invokes the skill

cat > pm-toolkit/commands/metrics-audit.md <<'EOF'
---
description: Run a health audit on product metrics
argument-hint: "<metrics JSON>"
---

# /metrics-audit

Invoke the `product-metrics-audit` skill with the provided metrics.
EOF

# Commit the changes

git add pm-toolkit/skills/product-metrics-audit/SKILL.md \
        pm-toolkit/commands/metrics-audit.md
git commit -m "Add product-metrics-audit skill and /metrics-audit command"
git push

After pushing, users can invoke the new functionality:

/metrics-audit [{"name":"DAU","value":12000,"target":15000},{"name":"Churn","value":4.2,"target":3}]

Summary

  • PM Skills uses a markdown-driven architecture where skills and commands are defined in plain text files.
  • Extending existing plugins requires only adding SKILL.md files to pm-toolkit/skills/<name>/ and optional command files to pm-toolkit/commands/.
  • New plugins are created by establishing a folder structure with skills/, commands/, and README.md, then registering in .claude-plugin/marketplace.json.
  • No compiled code is necessary; the Claude runtime performs file-system discovery to load new functionalities automatically.
  • Key files include SKILL.md for skill definitions, command markdown files for slash-commands, and marketplace.json for plugin registration.

Frequently Asked Questions

Can I extend PM Skills without modifying the core repository?

Yes, you can extend PM Skills by forking the repository or adding to your local installation. Since extensions are pure markdown files, you can create new skills in your fork and submit pull requests, or maintain a private fork with custom skills. The file-driven architecture ensures your extensions remain compatible with the core system as long as they follow the SKILL.md schema conventions.

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

A skill is a self-contained expertise definition stored in pm-toolkit/skills/<name>/SKILL.md that describes inputs, processing logic, and output formats. A command is a user-facing interface stored in pm-toolkit/commands/<name>.md that defines a slash-command (e.g., /metrics-audit) and orchestrates one or more skills. Commands reference skills by name and handle argument passing, while skills contain the actual domain logic and response templates.

Does adding new functionality require updating the marketplace.json file?

Updating marketplace.json is only required when creating an entirely new plugin. When extending an existing plugin like pm-toolkit, you simply add files to the existing directory structure. The marketplace JSON points to the plugin's root directory, and Claude recursively discovers all markdown files within skills/ and commands/ subdirectories automatically during installation.

How does Claude discover new skills after I add them?

Claude uses file-system based discovery configured through .claude-plugin/marketplace.json. During plugin installation or reload, the runtime scans each plugin's skills/ directory for SKILL.md files and commands/ directory for markdown files defining slash-commands. Because discovery happens at the file level, new functionalities become available immediately after reinstallation without requiring server restarts or code compilation.

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 →