Skip to content

Getting Started

Claude Code (recommended)

Terminal window
/plugin marketplace add product-on-purpose/agent-plugins
/plugin install pm-skills@product-on-purpose

All 68 skills become available immediately, no clone required. Invoke any skill by name, like /pm-skills:deliver-prd "Feature description". Already installed via the old pm-skills-marketplace? It keeps working, no action needed - see Setup by Platform to move to the new home.

Cross-agent (Cursor, GitHub Copilot, Cline, and others)

Terminal window
npx skills add product-on-purpose/pm-skills

Installs all 68 skills into your agent’s default skills directory via the open skills CLI. No clone, no sync.

Clone or download

Terminal window
git clone https://github.com/product-on-purpose/pm-skills.git

Gives you the full repo: skill files, the sample library, and workflows. Claude Code users can then run the sync helper to populate .claude/skills:

  • macOS/Linux: ./scripts/sync-claude.sh
  • Windows: ./scripts/sync-claude.ps1

Prefer the full walkthrough? Read on.

Welcome to PM-Skills! This guide will help you understand what this repository offers and how to use it, regardless of your technical background.



PM-Skills is an open-source collection of 68 product management skills that teach AI assistants how to create professional PM documents. The catalog spans 30 phase skills, 11 foundation skills, 12 utility skills, and 15 tool skills for structured workshops (the Foundation Sprint family of 7, the Design Sprint family of 7, and the tool-note-and-vote standalone). Think of it as a playbook that transforms generic AI responses into polished, consistent PM artifacts.

Without PM-Skills:

You: "Write me a PRD"
AI: *Produces a generic document missing key sections, inconsistent format*

With PM-Skills:

You: "Write me a PRD"
AI: *Produces a comprehensive PRD with problem statement, success metrics,
user stories, scope boundaries, technical considerations, all in a
professional, consistent format*
  • 68 skills in skills/ covering the PM lifecycle (30 phase + 11 foundation + 12 utility + 15 tool)
  • Professional templates based on industry best practices
  • Real-world examples showing what good looks like
  • Works with any AI assistant (Claude, ChatGPT, Copilot, etc.)

A skill is a structured instruction set that teaches an AI assistant how to create a specific type of PM artifact.

Think of a skill like a recipe card for an AI chef:

  • The instructions tell the AI what questions to ask and what sections to include
  • The template shows the exact format to use
  • The example demonstrates what a great result looks like

When you ask the AI to create a PRD, it reads the “PRD recipe” and follows it step by step.

Each skill is a directory containing:

skills/<skill-name>/
├── SKILL.md # Prompt instructions for the AI
├── references/
│ ├── TEMPLATE.md # Output structure/format
│ └── EXAMPLE.md # Annotated real-world example

The SKILL.md file contains:

  • YAML frontmatter with metadata (name, description, version, updated, license, and either phase or classification)
  • Structured instructions the AI follows
  • Guidance on information gathering and output formatting

Skills follow the Agent Skills Specification for interoperability across AI platforms.


A slash command is a shortcut that invokes a skill in AI assistants that support them.

Instead of typing:

“Please use the PRD skill to create a product requirements document for a search feature”

You can simply type:

/pm-skills:deliver-prd search feature for e-commerce platform

The slash (/) tells the AI “use this skill” and everything after is your context.

Slash commands are defined in the commands/ directory as markdown files:

---
description: Create a Product Requirements Document
---
Use the `prd` skill to create a comprehensive Product Requirements Document.
Read the skill instructions from `skills/<skill-name>/SKILL.md` and follow them.
Context from user: $ARGUMENTS

The $ARGUMENTS variable captures everything typed after the command name.

Note: Slash commands are platform-specific. They work natively in Claude Code but require different invocation methods on other platforms.


flowchart TD
    A["deliver-prd 'search feature'\nSlash Command"] --> C["SKILL.md\nInstructions"]
    B["'Use the prd skill for...'\nNatural Language"] --> C
    C --> D["TEMPLATE.md\nStructure"]
    C --> E["EXAMPLE.md\nQuality Reference"]
    C --> F["Your Context"]
    D --> G["AI-Generated\nPM Artifact"]
    E --> G
    F --> G

Key insight: Skills are the underlying content. Commands are just one way to invoke them.


MethodBest ForSetup TimeTechnical Level
Claude CodeDevelopers using Claude CodeNoneLow
Git CloneCopilot, Cursor, Windsurf users1 minuteLow
Claude.aiClaude web/desktop users2 minutesLow
Copy-PasteAny AI (ChatGPT, etc.)NoneNone
openskills CLIAdvanced users managing multiple skill sets5 minutesMedium

Best for: Developers using Claude Code CLI or IDE extension

If you’re using Claude Code, skills work automatically. Just type a slash command:

/pm-skills:deliver-prd "Search feature for our e-commerce platform"

That’s it! Claude will create a full PRD using the skill.

Claude Code discovers the registered skill set via AGENTS.md and command definitions in commands/. The full repo catalog lives under skills/, including any path-only skills that have not been wired into AGENTS.md or slash commands yet.

  1. Navigate to a directory containing pm-skills (clone it or work within the repo)
  2. Start using slash commands immediately
Terminal window
# Basic usage
/pm-skills:deliver-prd "feature description"
# With more context
/pm-skills:deliver-prd "We need a search feature for our e-commerce platform.
Users currently can't find products easily.
Target: 20% improvement in product discovery."
# Chain skills
/pm-skills:define-problem-statement "checkout abandonment issue"
# ... review output ...
/pm-skills:define-hypothesis "from the problem statement above"
# ... review output ...
/pm-skills:deliver-prd "based on the hypothesis above"

Every skill is invocable by name as /pm-skills:<skill-name> (examples below). Separately, the repo ships 10 /workflow-* orchestrator command files that chain several skills into one end-to-end process.

PhaseInvoke the skill by name
Discover/pm-skills:discover-interview-synthesis, /pm-skills:discover-competitive-analysis, /pm-skills:discover-stakeholder-summary
Define/pm-skills:define-problem-statement, /pm-skills:define-hypothesis, /pm-skills:define-opportunity-tree, /pm-skills:define-jtbd-canvas
Develop/pm-skills:develop-solution-brief, /pm-skills:develop-spike-summary, /pm-skills:develop-adr, /pm-skills:develop-design-rationale
Deliver/pm-skills:deliver-prd, /pm-skills:deliver-user-stories, /pm-skills:deliver-acceptance-criteria, /pm-skills:deliver-edge-cases, /pm-skills:deliver-launch-checklist, /pm-skills:deliver-release-notes
Measure/pm-skills:measure-experiment-design, /pm-skills:measure-instrumentation-spec, /pm-skills:measure-dashboard-requirements, /pm-skills:measure-experiment-results, /pm-skills:measure-okr-grader
Iterate/pm-skills:iterate-retrospective, /pm-skills:iterate-lessons-log, /pm-skills:iterate-refinement-notes, /pm-skills:iterate-pivot-decision
Utility/pm-skills:utility-pm-skill-builder, /pm-skills:utility-pm-skill-validate, /pm-skills:utility-pm-skill-iterate, /pm-skills:utility-mermaid-diagrams, /pm-skills:utility-slideshow-creator, /pm-skills:utility-update-pm-skills
Foundation/pm-skills:foundation-persona, /pm-skills:foundation-lean-canvas, /pm-skills:foundation-okr-writer, /pm-skills:foundation-stakeholder-update, /pm-skills:foundation-meeting-agenda, /pm-skills:foundation-meeting-brief, /pm-skills:foundation-meeting-recap, /pm-skills:foundation-meeting-synthesize

Plus 10 workflow commands: /workflow-feature-kickoff, /workflow-customer-discovery, /workflow-sprint-planning, /workflow-product-strategy, /workflow-post-launch-learning, /workflow-stakeholder-alignment, /workflow-technical-discovery, /workflow-foundation-sprint, /workflow-design-sprint, /workflow-foundation-to-design


Best for: GitHub Copilot, Cursor, Windsurf, and other AGENTS.md-compatible tools

  1. Download the repository:

  2. Open in your coding tool:

    • Open VS Code, Cursor, or your editor
    • Open the pm-skills folder
  3. Use the skills:

    • Your AI assistant will automatically see the skills
    • Ask: “Use the prd skill to create a PRD for [your feature]“
Terminal window
# Clone the repository
git clone https://github.com/product-on-purpose/pm-skills.git
# Or add as a submodule to your project
git submodule add https://github.com/product-on-purpose/pm-skills.git .pm-skills

Modern AI coding assistants discover skills through the AGENTS.md file at the repository root. This file:

  • Lists all 68 registered skills with paths and descriptions
  • Provides workflows
  • Documents available commands

When you ask the AI to use a skill, it:

  1. Reads AGENTS.md to locate the skill
  2. Reads SKILL.md for instructions
  3. Reads TEMPLATE.md and EXAMPLE.md from references
  4. Generates output following the instructions
You: "Use the prd skill to create a PRD for adding dark mode"
AI: *Reads skills/deliver-prd/SKILL.md and follows the instructions*

Or reference skills directly:

You: "Read skills/deliver-prd/SKILL.md and create a PRD for dark mode"
Terminal window
# If cloned directly
cd pm-skills
git pull origin main
# If using submodule
git submodule update --remote .pm-skills

Best for: Users of Claude’s web interface or desktop application

  1. Download the skills:

    • Go to the Releases page
    • Download the latest pm-skills-vX.X.X.zip file
  2. Upload to Claude:

    • Open Claude.ai or Claude Desktop
    • Go to Settings (gear icon)
    • Find Projects or Capabilities
    • Click Add files or Upload
    • Select the ZIP file you downloaded
  3. Use the skills:

    • In any conversation, type: “Use the prd skill to create a PRD for [your feature]”
    • Claude will read the skill files and follow them

Option A: Project Knowledge

  1. Create a new Project in Claude
  2. Upload skill files to Project Knowledge
  3. Skills persist across conversations in that project

Option B: Conversation Upload

  1. Upload individual skill files at conversation start
  2. Reference them: “Using the uploaded prd skill…”

For best results, upload:

  • The specific SKILL.md you need
  • Its references/TEMPLATE.md
  • Its references/EXAMPLE.md

Or upload the entire skills/ directory if your use case varies.

You: "I've uploaded the prd skill. Please use it to create a PRD
for a feature that adds collaborative editing to our docs app."
Claude: *Reads the skill files and produces a structured PRD*

Best for: Any AI assistant (ChatGPT, Gemini, local LLMs, etc.)

This method works with any AI. No setup required.

  1. Find the skill you need:

  2. Copy the skill content:

    • Click on SKILL.md
    • Click “Raw” to see plain text
    • Select all and copy (Ctrl+A, Ctrl+C)
  3. Paste into your AI:

    • Start a new chat
    • Paste the skill content
    • Add your request: “Now create a PRD for [your feature]”
  4. Optional: Add template and example:

    • Also copy references/TEMPLATE.md for structure
    • Copy references/EXAMPLE.md for quality reference
[Paste contents of SKILL.md]
---
Now use these instructions to create a PRD for: [your context]
# SKILL INSTRUCTIONS
[Paste contents of SKILL.md]
# OUTPUT TEMPLATE
[Paste contents of references/TEMPLATE.md]
# QUALITY EXAMPLE
[Paste contents of references/EXAMPLE.md]
---
Using the above skill instructions, template, and example as reference,
create a PRD for: [your context]

Create a script to concatenate files:

#!/bin/bash
# Usage: ./get-skill.sh prd
SKILL=$1
cat skills/$SKILL/SKILL.md
echo -e "\n---\n# TEMPLATE\n"
cat skills/$SKILL/references/TEMPLATE.md
echo -e "\n---\n# EXAMPLE\n"
cat skills/$SKILL/references/EXAMPLE.md

Best for: Power users managing multiple skill repositories

This method requires comfort with command-line tools. If that’s not you, use one of the earlier methods instead.

  • Node.js 18+ installed
  • npm or yarn
Terminal window
# Install openskills globally
npm install -g openskills
# Install pm-skills
openskills install product-on-purpose/pm-skills
# Sync to your environment
openskills sync

Note: openskills previously had issues with nested directories. pm-skills now ships flat skills/phase-skill/ plus a sync helper that populates .claude/skills/. After cloning, run ./scripts/sync-claude.sh (or .ps1) before using openskills or Claude Code.

Once installed, skills are available globally:

Terminal window
# List installed skills
openskills list
# Use in conversations
# Skills are auto-discovered by compatible AI assistants
Terminal window
# Install additional skill repositories
openskills install another-org/their-skills
# Update all skills
openskills update
# Remove a skill set
openskills remove product-on-purpose/pm-skills

flowchart TD
    A{"Using Claude Code?"} -- Yes --> M1["Method 1\nSlash Commands"]
    A -- No --> B{"Using Copilot,\nCursor, or Windsurf?"}
    B -- Yes --> M2["Method 2\nGit Clone"]
    B -- No --> C{"Using Claude.ai\nor Claude Desktop?"}
    C -- Yes --> M3["Method 3\nZIP Upload"]
    C -- No --> D{"Quick, one-time use?"}
    D -- Yes --> M4["Method 4\nCopy-Paste"]
    D -- No --> M5["Method 5\nopenskills CLI"]
FeatureClaude CodeGit CloneClaude UploadCopy-Pasteopenskills
Setup timeNone1 min2 minNone5 min
Slash commandsYesNoNoNoVaries
Auto-updatesYesManualManualN/AYes
Works offlineYesYesYesYesYes
Any AI platformNoMostClaude onlyYesMost
Skill chainingEasyEasyMediumHardEasy

Let’s walk through using a skill for the first time.

You’re starting a new feature and want to create a proper problem statement.

Pick the method that matches your setup (see above).

Claude Code:

/pm-skills:define-problem-statement "Users are abandoning checkout because the process
is too long. We lose about $50k/month in abandoned carts."

Other AI assistants:

Use the problem-statement skill to create a problem statement for:
Users are abandoning checkout because the process is too long.
We lose about $50k/month in abandoned carts.

The AI will likely ask clarifying questions:

  • Who specifically experiences this problem?
  • What have you tried before?
  • What constraints exist?

Answer these to improve the output.

The AI produces a structured problem statement. Review it and ask for:

  • More detail in specific sections
  • Different framing
  • Additional considerations

Once satisfied, use another skill:

Now use the hypothesis skill to create a testable hypothesis
based on this problem statement.

Workflows are pre-defined sequences of skills for common PM processes.

Use when: Starting a new feature from scratch

Skills included:

  1. problem-statement → Frame the problem
  2. hypothesis → Define testable assumptions
  3. prd → Specify requirements
  4. user-stories → Break down for engineering
  5. launch-checklist → Prepare for release

Invocation:

# Claude Code
/workflow-feature-kickoff "New search feature for e-commerce platform"
# Other assistants
"Run the feature kickoff workflow for: [your feature]"

Use when: Rapid experimentation and validation

Skills included:

  1. hypothesis → State your assumption
  2. experiment-design → Plan validation
  3. experiment-results → Analyze outcomes
  4. pivot-decision → Decide next steps

Use when: Comprehensive product development

Skills included: All 30 phase skills across 6 phases

WorkflowCommandUse When
Customer Discovery/workflow-customer-discoveryTransforming raw research into a validated problem
Sprint Planning/workflow-sprint-planningPreparing sprint-ready stories from a backlog
Product Strategy/workflow-product-strategyFraming a major strategic initiative
Post-Launch Learning/workflow-post-launch-learningMeasuring results and capturing learnings after launch
Stakeholder Alignment/workflow-stakeholder-alignmentGetting leadership buy-in before committing resources
Technical Discovery/workflow-technical-discoveryEvaluating technical feasibility and architecture

See _workflows/ directory for detailed workflow documentation.


”The AI doesn’t seem to know about the skills”

Section titled “”The AI doesn’t seem to know about the skills””

Cause: Skills aren’t properly loaded or discovered.

Solutions:

  • Ensure AGENTS.md is visible to the AI
  • Try explicit paths: “Read skills/deliver-prd/SKILL.md
  • Upload files directly in Claude.ai/Desktop
  • Check that you’re in the correct directory

”The output doesn’t match the template”

Section titled “”The output doesn’t match the template””

Cause: AI didn’t read the template file.

Solutions:

  • Explicitly reference the template: “Use the template in references/TEMPLATE.md
  • Upload/paste the template alongside the skill
  • Ask: “Reformat the output to match the template structure"

Cause: Not enough context provided upfront.

Solutions:

  • Provide more detail in your initial request
  • Include: who, what, why, constraints, prior attempts
  • Pre-answer common questions in your prompt

Cause: Platform doesn’t support them or commands aren’t discovered.

Solutions:

  • Verify you’re using Claude Code (not Claude.ai)
  • Check commands/ directory exists
  • Use natural language: “Use the prd skill…” instead

Cause: AI variance is normal; context matters.

Solutions:

  • Provide consistent, detailed context
  • Save good outputs as additional examples
  • Use the same conversation thread for related artifacts

Browse by phase:

  • Discover: interview-synthesis, competitive-analysis, stakeholder-summary
  • Define: problem-statement, hypothesis, opportunity-tree, jtbd-canvas
  • Develop: solution-brief, spike-summary, adr, design-rationale
  • Deliver: prd, user-stories, edge-cases, launch-checklist, release-notes
  • Measure: experiment-design, instrumentation-spec, dashboard-requirements, experiment-results
  • Iterate: retrospective, lessons-log, refinement-notes, pivot-decision

Have ideas for new skills or improvements?

  • See contribution guidelines in README (Contributing section)
  • Open an issue on GitHub
  • Submit a pull request

PlatformHow to Invoke
Claude Code/skill-name "context"
Copilot/Cursor”Use the skill-name skill to…”
Claude.aiUpload ZIP, then “Use the skill-name skill to…”
ChatGPT/OtherCopy-paste SKILL.md, then “Create a…”
NeedSkillCommand
Define the problemproblem-statement/pm-skills:define-problem-statement
Write requirementsprd/pm-skills:deliver-prd
Create user storiesuser-stories/pm-skills:deliver-user-stories
Plan an experimentexperiment-design/pm-skills:measure-experiment-design
Prepare for launchlaunch-checklist/pm-skills:deliver-launch-checklist
SkillProduces
problem-statementProblem framing document
prdProduct Requirements Document
user-storiesUser stories with acceptance criteria
hypothesisTestable hypothesis statement
experiment-designA/B test plan
retrospectiveTeam retro summary with actions

Built by Product on Purpose for PMs who ship.