Curated Claude Code catalog
Updated 07.05.2026 · 19:39 CET
01 / Skill
product-on-purpose

pm-skills

Quality
10.0

This repository offers a curated collection of 40 plug-and-play product management skills for AI agents, encompassing phase, foundation, and utility skills. It provides templates and workflows to ensure consistent, professional PM outputs throughout the entire product lifecycle, from discovery to iteration.

USP

Unlike generic AI prompts, this artifact provides 40 structured, best-practice PM skills, complete with templates and workflows, ensuring high-quality, consistent outputs across the entire product lifecycle. It's designed for immediate int…

Use cases

  • 01Deeply understanding customer motivations (JTBD)
  • 02Outcome-driven product discovery and prioritization (Opportunity Solution Tree)
  • 03Framing new initiatives and communicating product strategy (Problem Statement)
  • 04Keeping local pm-skills installation up to date
  • 05Generating consistent, professional product management outputs

Detected files (9)

  • docs/templates/skill-template/SKILL.mdskill
    Show content (1550 bytes)
    ---
    name: <phase-or-classification-skill-name>
    description: <single-line 20-100 word description; include trigger keywords and do not use folded YAML>
    phase: <discover|define|develop|deliver|measure|iterate>
    # classification: <foundation|utility>   # For non-domain skills, use classification and omit phase
    version: "1.0.0"
    updated: <YYYY-MM-DD>
    license: Apache-2.0
    metadata:
      category: <one of: research, problem-framing, ideation, specification, validation, reflection, coordination>
      frameworks: [triple-diamond, lean-startup, design-thinking]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    
    # <Skill Title>
    
    <One paragraph overview of what this skill produces and why it matters.>
    
    ## When to Use
    
    - <Situation 1>
    - <Situation 2>
    - <Situation 3>
    
    ## When NOT to Use (Optional)
    
    - <Common misuse to avoid>
    - <When another skill is a better fit>
    
    ## Instructions
    
    When asked to <create artifact>, follow these steps:
    
    1. **<Step 1 Title>**
       <What to do and why>
    
    2. **<Step 2 Title>**
       <What to do and why>
    
    3. **<Step 3 Title>**
       <What to do and why>
    
    4. **<Step 4 Title>**
       <What to do and why>
    
    ## Output Contract
    
    Use `references/TEMPLATE.md` as the output format. A complete response should:
    
    - <Required element 1>
    - <Required element 2>
    - <Required element 3>
    
    ## Quality Checklist
    
    Before finalizing, verify:
    
    - [ ] <Quality criterion 1>
    - [ ] <Quality criterion 2>
    - [ ] <Quality criterion 3>
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed example.
    
  • skills/define-jtbd-canvas/SKILL.mdskill
    Show content (3485 bytes)
    ---
    name: define-jtbd-canvas
    description: Creates a Jobs to be Done canvas capturing the functional, emotional, and social dimensions of a customer job. Use when deeply understanding customer motivations, designing for jobs, or reframing product positioning.
    phase: define
    version: "2.0.0"
    updated: 2026-01-26
    license: Apache-2.0
    metadata:
      category: problem-framing
      frameworks: [triple-diamond, lean-startup, design-thinking]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    # Jobs to be Done Canvas
    
    A Jobs to be Done (JTBD) canvas captures the complete picture of why customers "hire" products to make progress in their lives. Based on Clayton Christensen's framework, JTBD goes beyond features and demographics to understand the underlying motivations.functional, emotional, and social.that drive customer behavior.
    
    ## When to Use
    
    - When deeply researching customer motivations before building
    - To reframe product positioning around customer progress
    - When existing personas feel too surface-level or demographic
    - During competitive analysis to identify why customers switch
    - When designing marketing messages that resonate
    - To align team on who the customer really is and what they need
    
    ## Instructions
    
    When asked to create a JTBD canvas, follow these steps:
    
    1. **Identify the Job Performer**
       Define who is doing this job. Go beyond demographics to capture the circumstance they're in. The same person can have different jobs in different situations.
    
    2. **Articulate the Circumstance**
       Describe when and where this job arises. Jobs are triggered by specific situations. Understanding context helps predict when customers will seek a solution.
    
    3. **Write the Job Statement**
       Use the format: "When [situation], I want to [motivation], so I can [desired outcome]." The job statement captures the core progress the customer seeks.
    
    4. **Define the Functional Job**
       What is the practical task the customer needs to accomplish? This is the tangible, measurable part of the job. Be specific about what "done" looks like.
    
    5. **Capture the Emotional Job**
       How does the customer want to feel during and after the job? Emotional jobs often drive decisions more than functional ones. Include both desired feelings and feelings to avoid.
    
    6. **Identify the Social Job**
       How does the customer want to be perceived by others? Social jobs relate to status, identity, and relationships. Not all jobs have strong social dimensions.
    
    7. **Map Competing Solutions**
       What are customers currently "hiring" to do this job? Include direct competitors, indirect alternatives, and non-consumption (doing nothing). Understanding current solutions reveals what to compete against.
    
    8. **Define Hiring Criteria**
       What makes customers choose one solution over another? What are the "must haves" vs. "nice to haves"? This informs positioning and prioritization.
    
    ## Output Format
    
    Use the template in `references/TEMPLATE.md` to structure the output.
    
    ## Quality Checklist
    
    Before finalizing, verify:
    
    - [ ] Job statement follows "When... I want... so I can..." format
    - [ ] Circumstance is specific (not just "anytime")
    - [ ] Functional job describes tangible outcome
    - [ ] Emotional job includes how customer wants to feel
    - [ ] Competing solutions include non-obvious alternatives
    - [ ] Insights are based on research, not assumptions
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed example.
    
  • skills/define-opportunity-tree/SKILL.mdskill
    Show content (3514 bytes)
    ---
    name: define-opportunity-tree
    description: Creates an opportunity solution tree mapping desired outcomes to opportunities and potential solutions. Use for outcome-driven product discovery, prioritization, or communicating product strategy.
    phase: define
    version: "2.0.0"
    updated: 2026-01-26
    license: Apache-2.0
    metadata:
      category: problem-framing
      frameworks: [triple-diamond, lean-startup, design-thinking]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    # Opportunity Solution Tree
    
    An Opportunity Solution Tree (OST) is a visual framework for product discovery that connects business outcomes to customer opportunities and potential solutions. Developed by Teresa Torres, it prevents the common trap of jumping straight to solutions by ensuring every feature idea traces back to a customer need and measurable outcome.
    
    ## When to Use
    
    - During continuous product discovery to organize learning
    - When prioritizing what opportunities to pursue
    - To communicate product strategy to stakeholders
    - When you have too many feature ideas and need structure
    - After user research to connect insights to action
    - When aligning team on what outcomes matter most
    
    ## Instructions
    
    When asked to create an opportunity solution tree, follow these steps:
    
    1. **Define the Desired Outcome**
       Start at the top with a clear, measurable business or product outcome. This should be something you can influence through product changes. Express it quantitatively when possible (e.g., "Increase 30-day retention from 40% to 55%").
    
    2. **Identify Opportunity Areas**
       Branch out to 3-5 opportunity areas.places where customer needs or pain points could be addressed. Opportunities are not solutions; they're customer problems, needs, or desires. Phrase them from the customer's perspective.
    
    3. **Add Supporting Evidence**
       For each opportunity, note the evidence that supports it: user research quotes, behavioral data, support tickets, or market trends. Strong opportunities have multiple evidence sources.
    
    4. **Brainstorm Solutions**
       For each opportunity, generate 2-4 potential solutions. Don't self-censor at this stage. Solutions can range from quick experiments to major features. Keep them specific enough to evaluate.
    
    5. **Define Assumption Tests**
       For each promising solution, identify the riskiest assumption and design a lightweight experiment to test it. Good tests validate whether the solution will actually address the opportunity.
    
    6. **Prioritize the Tree**
       Not all branches are equal. Mark which opportunity and solution you'll pursue first based on potential impact, confidence, and effort. The tree is a living document.you'll iterate as you learn.
    
    7. **Visualize the Structure**
       Create a tree diagram showing the hierarchy: outcome at top, opportunities below, solutions beneath each opportunity, and experiments at the leaves.
    
    ## Output Format
    
    Use the template in `references/TEMPLATE.md` to structure the output.
    
    ## Quality Checklist
    
    Before finalizing, verify:
    
    - [ ] Outcome is measurable and within product team's influence
    - [ ] Opportunities are customer-centric (needs/problems, not features)
    - [ ] Each opportunity has supporting evidence documented
    - [ ] Multiple solutions exist per opportunity (not jumping to one)
    - [ ] Assumptions are explicit and experiments designed
    - [ ] Prioritization is clear (which branch to explore first)
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed example.
    
  • skills/define-problem-statement/SKILL.mdskill
    Show content (3125 bytes)
    ---
    name: define-problem-statement
    description: Creates a clear problem framing document with user impact, business context, and success criteria. Use when starting a new initiative, realigning a drifted project, or communicating up to leadership.
    phase: define
    version: "2.0.0"
    updated: 2026-01-26
    license: Apache-2.0
    metadata:
      category: problem-framing
      frameworks: [triple-diamond, lean-startup, design-thinking]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    # Problem Statement
    
    A problem statement is a concise document that frames the problem you're solving, articulates the impact on users and the business, and defines clear success criteria. It serves as the foundation for all subsequent product work by ensuring alignment on *what* problem to solve before jumping to *how* to solve it.
    
    ## When to Use
    
    - Starting a new initiative or project to establish shared understanding
    - Realigning a drifted project back to its original intent
    - Communicating up to leadership or stakeholders about priorities
    - Evaluating whether a proposed solution actually addresses the core problem
    - Onboarding new team members to provide context
    
    ## Instructions
    
    When asked to create a problem statement, follow these steps:
    
    1. **Identify the User Segment**
       Ask who is experiencing this problem. Get specific about the user persona, role, or segment. Avoid vague descriptions like "users" . instead target "mobile shoppers completing checkout" or "enterprise admins managing 50+ users."
    
    2. **Understand the Pain Points**
       Explore what friction, frustration, or unmet need the user experiences. Ask probing questions to understand the severity and frequency of the problem. Look for evidence from user research, support tickets, or behavioral data.
    
    3. **Establish Business Context**
       Connect the user problem to business impact. How does this problem affect revenue, retention, growth, or strategic goals? Why should the organization invest in solving this now versus later?
    
    4. **Define Success Metrics**
       Identify how you will measure success. What metrics will move if this problem is solved? Establish current baselines and target improvements. Be specific and time-bound.
    
    5. **Surface Constraints and Considerations**
       Note any technical limitations, resource constraints, regulatory requirements, or dependencies that will shape the solution space.
    
    6. **Capture Open Questions**
       Document what you don't know yet. What assumptions need validation? What additional research is needed?
    
    ## Output Format
    
    Use the template in `references/TEMPLATE.md` to structure the output.
    
    ## Quality Checklist
    
    Before finalizing, verify:
    
    - [ ] Problem is specific to a defined user segment (not "all users")
    - [ ] Impact is quantified with data or reasonable estimates
    - [ ] Success metrics have baselines and targets
    - [ ] Problem describes the "what" without prescribing the "how"
    - [ ] Business context explains why this matters now
    - [ ] Open questions are captured for follow-up
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed example.
    
  • docs/internal/efforts/F-24-update-pm-skills/drafts/skills/utility-update-pm-skills/SKILL.mdskill
    Show content (14017 bytes)
    ---
    name: utility-update-pm-skills
    description: >-
      Checks for newer pm-skills releases, compares local vs. latest version,
      previews what would change, and updates local files after user confirmation.
      Generates a structured update report documenting changed files, new
      capabilities, and the value delta between versions. Use when you want to
      bring a local pm-skills installation up to date.
    classification: utility
    version: "1.0.0"
    updated: 2026-04-09
    license: Apache-2.0
    metadata:
      category: coordination
      frameworks: [triple-diamond]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    
    # PM Skills Updater
    
    This skill updates a local pm-skills installation to the latest public
    release. It validates connectivity, compares versions, previews changes,
    and produces a structured report documenting what was updated and what
    new capabilities are available.
    
    ## When to Use
    
    - When you want to update local pm-skills to the latest release
    - When you want to check if a newer version is available
    - After a new pm-skills release is announced
    - When onboarding and you want to confirm you have the latest version
    
    ## When NOT to Use
    
    - To create or edit individual skills -> use `/pm-skill-builder` or `/pm-skill-iterate`
    - To validate skills against conventions -> use `/pm-skill-validate`
    - If you are a maintainer working directly on the pm-skills repo (use git)
    - To pin a specific older version (this skill always targets the latest release)
    
    ## Flags
    
    | Flag | Behavior |
    |------|----------|
    | *(none)* | Full update flow: pre-flight → preview → confirm → update → report |
    | `--report-only` | Pre-flight → preview → report (no files written) |
    | `--status` | Lightweight version check . prints current and latest version, then stops |
    
    ### --status behavior
    
    When `--status` is provided, run only the pre-flight checks and display:
    
    ```
    pm-skills v{local} (installed, from {source})
    pm-skills v{latest} (latest, released {date})
    {Status: up to date | update available ({type})}
    
    Run /update-pm-skills for details, or /update-pm-skills --report-only for a preview.
    ```
    
    No report file is generated. No files are written.
    
    ## Instructions
    
    When asked to update pm-skills (without `--status`), follow these steps:
    
    ### Step 1: Pre-Flight
    
    Run three checks before proceeding:
    
    1. **Network access**: Reach the GitHub API or repository URL
       (`https://github.com/product-on-purpose/pm-skills`). Use any
       available method: `curl`, `wget`, GitHub CLI (`gh`), or MCP tools.
    
    2. **Latest version**: Query the latest release using this fallback chain
       (try each in order, use the first that succeeds):
       1. GitHub API: `GET /repos/product-on-purpose/pm-skills/releases/latest`
       2. GitHub CLI: `gh release list --repo product-on-purpose/pm-skills --limit 1`
       3. Git: `git ls-remote --tags https://github.com/product-on-purpose/pm-skills.git`
    
       If all three fail (rate limiting, 404, malformed response, no network),
       enter degraded mode (see below).
    
       Record: version string, release date, release notes URL, release notes body.
    
    3. **Local version**: Read from the first available source:
       - `.claude-plugin/plugin.json` → `version` field
       - `marketplace.json` → `plugins[0].version` field
       - `CHANGELOG.md` → most recent version header
       - Git tags → most recent `v*` tag
    
       **Version parsing:** Normalize by stripping an optional `v` prefix and
       trimming whitespace. If a source is present but yields an empty,
       non-semver, or malformed string (invalid JSON, missing field), skip it
       with a warning and try the next source. Only fall back to `0.0.0`
       after all four sources fail.
    
    **If network access fails** (degraded mode):
    - Report the failure with error details.
    - Provide manual update instructions:
      > Visit https://github.com/product-on-purpose/pm-skills/releases to
      > download the latest release. Extract the archive and copy the
      > `skills/`, `commands/`, `_workflows/`, and other content directories
      > to your local pm-skills installation.
    - Stop execution.
    
    ### Step 2: Version Comparison
    
    Compare the local version against the latest release using semver.
    
    **If local version >= latest version:**
    - Report: "Your pm-skills installation is up to date (v{local})."
    - Offer to generate a report-only anyway.
    - Stop execution.
    
    **If local version < latest version:**
    - Show the version delta:
      ```
      Local version:  v{local}
      Latest version: v{latest}
      Update type:    {major | minor | patch}
      ```
    - **Major version warning**: If the update is a major bump (e.g., v2.x
      to v3.x), show a prominent warning:
      > This is a major version update. It may include breaking changes to
      > skill contracts. Review the release notes before proceeding.
    - Continue to Step 3.
    
    ### Step 3: Preview
    
    Show the user what the update includes:
    
    1. **Version delta**: local version, latest version, update type.
    
    2. **Value summary**: Derive from CHANGELOG entries between the two
       versions, GitHub release notes, and directory diffs (new skills/,
       new _workflows/ files):
       - New skills and what they enable
       - Updated skills and what improved
       - New workflows and what they connect
       - Other notable changes
    
    3. **File manifest**: List of files and folders that will be written,
       grouped by directory with counts:
       ```
       Files to be written:
         skills/       31 files (2 new, 29 updated)
         commands/     38 files (2 new, 36 updated)
         _workflows/    9 files (1 new, 8 updated)
         other          7 files
         Total:        85 files
       ```
    
    **If `--report-only`:** Generate the report using `references/TEMPLATE.md`
    with the banner "Report only . update was not applied." Save to
    `_pm-skills/updates/update-report_v{latest}_report-only_{YYYY-MM-DD_HHMMSS}.md`. Stop
    execution.
    
    ### Step 4: Confirmation
    
    Prompt the user for two decisions:
    
    1. **Update confirmation**:
       "These files will be overwritten. Proceed? [yes / no]"
       - If major version bump: require typing "yes" explicitly.
       - If the user declines: save a report-only and stop.
    
    2. **Backup offer**:
       "Create a backup of current files before updating?
       [yes (recommended) / no]"
       - If yes: copy all in-scope files to
         `_pm-skills/backups/v{current}_{YYYY-MM-DD_HHMMSS}/`
       - Create the `_pm-skills/` directory if it doesn't exist.
    
    ### Step 5: Update
    
    Execute the update using validated-before-copy with backup:
    
    1. **Download**: Fetch the release ZIP asset (`pm-skills-vX.Y.Z.zip`)
       from the GitHub Release page to a temporary directory. This is the
       curated build artifact produced by `build-release.sh` . it includes
       only user-facing content and excludes `docs/internal/`.
    
    2. **Validate**: Confirm the extracted archive contains `skills/`,
       `commands/`, `AGENTS.md`, and `.claude-plugin/plugin.json`. If
       validation fails, report the error and stop without writing any files.
    
    3. **Copy**: Overwrite in-scope files from the extracted archive to the
       install root. Show progress per directory:
       ```
       Updating pm-skills v2.9.0 -> v2.10.0...
         skills/       31/31 ████████████████████  done
         commands/     38/38 ████████████████████  done
         _workflows/    9/9  ████████████████████  done
         other files    7/7  ████████████████████  done
       ```
    
    4. **Clean up**: Remove the temporary directory.
    
    ### Step 6: Post-Update
    
    1. **Smoke test**:
       - Version consistency: `plugin.json`, `marketplace.json`, and
         `CHANGELOG.md` all reflect the new version. (Note: version detection
         in Step 1 uses first-match; the smoke test verifies all sources
         agree. A mismatch here suggests a release packaging issue.)
       - File integrity: `AGENTS.md`, `skills/`, `commands/`, `_workflows/`
         all exist.
       - Skill count delta: count skills before and after, report the change.
       - If any check fails: warn the user with specific details. Do NOT
         auto-rollback. Provide recovery guidance:
         - **Version mismatch**: "Run the update again, or manually edit
           {file} to set the version to {expected}."
         - **Missing files**: "Re-run `/update-pm-skills` to re-download,
           or restore from backup: `cp -r _pm-skills/backups/{dir}/* .`"
         - **If backup exists**: Always remind the user of the backup
           location and restore command.
    
    2. **Summary line**: Show a single scannable confirmation:
       ```
       Updated v{old} -> v{new} | +{n} skills, +{n} workflows | Report: _pm-skills/updates/{file}
       ```
    
    3. **Completion report**: Generate using `references/TEMPLATE.md` and
       save to `_pm-skills/updates/update-report_v{from}-to-v{to}_{YYYY-MM-DD_HHMMSS}.md`
    
    4. **MCP advisory**: If `../pm-skills-mcp/` exists, try to read
       `pm-skills-source.json`. If the file is missing or malformed, show:
       "pm-skills-mcp detected but pm-skills-source.json not found or
       unreadable. Check the MCP repo manually." If readable, show:
       ```
       pm-skills-mcp detected at ../pm-skills-mcp/
         Embedded skills version: v{embedded}
         Updated pm-skills version: v{new}
    
         To update the MCP server's embedded skills:
           cd ../pm-skills-mcp && npm run embed-skills && npm run build
       ```
    
    5. **Next steps**:
       ```
       Next Steps:
       - Review the update report at _pm-skills/updates/{report-file}
       - Run /pm-skill-validate --all to verify skill integrity
       - Run local CI: bash scripts/lint-skills-frontmatter.sh
       - Check release notes: {release-url}
       ```
    
    ## File Scope
    
    The updater writes only files present in the release ZIP asset
    (`pm-skills-vX.Y.Z.zip`), which is the curated build produced by
    `build-release.sh`. The ZIP excludes `docs/internal/` and other
    non-user-facing content . no exclusion logic is needed at copy time.
    
    **Files included in the release ZIP (updated):**
    
    | Path | Rationale |
    |------|-----------|
    | `skills/` | Core skill files |
    | `commands/` | Slash command definitions |
    | `_workflows/` | Workflow chains |
    | `library/` | Sample library and skill output samples (note: user-added samples may be overwritten) |
    | `AGENTS.md` | Skill discovery for IDEs |
    | `.claude-plugin/plugin.json` | Version + plugin metadata |
    | `marketplace.json` | Marketplace metadata |
    | `CHANGELOG.md` | Release history |
    | `README.md` | Public docs |
    | `docs/` (public guides, reference, workflows) | User-facing documentation |
    | `scripts/` | CI/validation scripts |
    | `mkdocs.yml` | Docs site config |
    
    **Files NOT in the release ZIP (never overwritten):**
    
    | Path | Rationale |
    |------|-----------|
    | `docs/internal/` | Excluded from ZIP by `build-release.sh` |
    | `_NOTES/` | Local-only, gitignored, not in ZIP |
    | `_pm-skills/` | Local state (reports, backups), not in ZIP |
    | `.github/` | CI workflows, not in ZIP |
    | `CONTRIBUTING.md`, `LICENSE` | Not in ZIP (repo-level files) |
    
    ## Output Contract
    
    The skill MUST:
    - Validate network access before any remote operations
    - Show a preview before writing any files
    - Require explicit user confirmation before overwriting
    - Offer a backup before overwriting
    - Use validated-before-copy (download to temp, validate, then copy; backup is the recovery path for mid-copy failures)
    - Generate a report in both modes (report-only and completion)
    - Run the post-update smoke test
    - Show MCP advisory if sibling repo is detected
    
    The skill MUST NOT:
    - Write files without user confirmation
    - Proceed without network access confirmation
    - Modify files outside the pm-skills directory
    - Modify `docs/internal/`, `_NOTES/`, or `_pm-skills/` with upstream content
    - Auto-rollback on smoke test failure (inform the user instead)
    - Delete local files that don't exist in the upstream release
    
    ## Quality Checklist
    
    Before marking the update complete, verify:
    
    - [ ] Pre-flight passed: network, versions detected
    - [ ] User was shown preview before any files were written
    - [ ] User explicitly confirmed before update proceeded
    - [ ] Backup was offered (and created if accepted)
    - [ ] Archive was downloaded to temp and validated before copying
    - [ ] All in-scope files were written successfully
    - [ ] Version consistency: plugin.json, marketplace.json, CHANGELOG match
    - [ ] File integrity: AGENTS.md, skills/, commands/, _workflows/ exist
    - [ ] Skill count delta is reported (before -> after)
    - [ ] Report was generated and saved to `_pm-skills/updates/`
    - [ ] MCP advisory was shown if sibling repo detected
    - [ ] Next steps were presented
    - [ ] Summary line displayed
    
    ## FAQ
    
    **I'm a contributor who cloned the repo. Should I use this skill?**
    No. Use `git pull` or `git fetch && git merge` instead. This skill is
    for end users who installed pm-skills as a plugin or downloaded a release.
    
    **Can I update to a specific version instead of the latest?**
    Not in v1. This skill always targets the latest release. To install a
    specific version, download it manually from the releases page.
    
    **What happens to my local notes and planning docs?**
    They are never touched. The skill explicitly excludes `docs/internal/`,
    `_NOTES/`, and `_pm-skills/` from updates. See the File Scope table.
    
    **What happens to files I added that aren't in the upstream release?**
    They are left untouched. The skill only overwrites files that exist in
    the new release . it never deletes local files.
    
    **How do I undo an update?**
    If you created a backup (the default offer), restore it:
    `cp -r _pm-skills/backups/v{version}_{timestamp}/* .`
    If you didn't create a backup but have git, use `git checkout .` to
    restore tracked files to their last committed state.
    
    **The update failed partway through. What do I do?**
    The skill validates before copying (download to temp, check, then write),
    so partial failures are rare. If it does happen: restore from backup if
    available, or re-run `/update-pm-skills` to retry.
    
    ## Further Reading
    
    For a visual walkthrough and additional context, see the
    [Updating PM Skills Guide](../../docs/guides/updating-pm-skills.md).
    
  • skills/define-hypothesis/SKILL.mdskill
    Show content (3067 bytes)
    ---
    name: define-hypothesis
    description: Defines a testable hypothesis with clear success metrics and validation approach. Use when forming assumptions to test, designing experiments, or aligning team on what success looks like.
    phase: define
    version: "2.0.0"
    updated: 2026-01-26
    license: Apache-2.0
    metadata:
      category: ideation
      frameworks: [triple-diamond, lean-startup, design-thinking]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    # Hypothesis
    
    A hypothesis is a testable prediction about how a change will affect user behavior or business outcomes. It transforms assumptions into explicit statements that can be validated or invalidated through experimentation. Well-formed hypotheses prevent teams from building features based on untested beliefs and create shared understanding of what success looks like.
    
    ## When to Use
    
    - After problem framing, before committing to a solution
    - When designing experiments or A/B tests
    - When team members have differing assumptions about user behavior
    - Before investing significant engineering resources in a feature
    - When pivoting direction and need to validate the new approach
    
    ## Instructions
    
    When asked to create a hypothesis, follow these steps:
    
    1. **State the Belief**
       Articulate what you believe will happen. Use the structured format: "We believe that [action/change] for [target user] will [expected outcome]." Be specific about the intervention . vague hypotheses can't be tested.
    
    2. **Identify the Target User**
       Define who this hypothesis applies to. A hypothesis about "users" is too broad. Specify the segment: new users in their first week, power users with 10+ sessions, churned users returning, etc.
    
    3. **Define the Expected Outcome**
       What behavior change or result do you expect? Frame it in terms of user actions (complete onboarding, make a purchase, return within 7 days) rather than internal metrics when possible.
    
    4. **Set Success Metrics**
       Choose a primary metric that directly measures the expected outcome. Include secondary metrics that provide context and guardrail metrics that ensure you're not causing harm elsewhere.
    
    5. **Describe Validation Approach**
       How will you test this hypothesis? A/B test, user interviews, prototype testing, cohort analysis? Be specific about sample size, duration, and statistical requirements.
    
    6. **Document Risks and Assumptions**
       What could invalidate this hypothesis beyond the test results? What are you assuming to be true that you haven't validated?
    
    ## Output Format
    
    Use the template in `references/TEMPLATE.md` to structure the output.
    
    ## Quality Checklist
    
    Before finalizing, verify:
    
    - [ ] Hypothesis is falsifiable (possible to prove wrong)
    - [ ] Success metric has a specific numeric target
    - [ ] Target user segment is clearly defined
    - [ ] Validation approach is practical and time-bound
    - [ ] Pass/fail criteria are unambiguous
    - [ ] Hypothesis doesn't assume the solution works
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed example.
    
  • docs/internal/efforts/F-24-update-pm-skills/_discovery/2026-04-09_claude-web-session/skills/utility-update-pm-skills/SKILL.mdskill
    Show content (12535 bytes)
    ---
    name: utility-update-pm-skills
    description: Validates internet access, compares the locally installed pm-skills version against the latest public release, and updates local files with conflict-aware overwrite-or-skip options. Produces an update report listing changed files, skipped files, and new capabilities. Use when you want to bring a local pm-skills installation up to date.
    classification: utility
    version: "1.0.0"
    updated: 2026-04-09
    license: Apache-2.0
    metadata:
      category: coordination
      frameworks: [triple-diamond]
      author: product-on-purpose
    ---
    <!-- PM-Skills | https://github.com/product-on-purpose/pm-skills | Apache 2.0 -->
    
    # PM Skills Updater
    
    This skill updates a local pm-skills installation to the latest public
    release. It validates connectivity, compares versions, detects local
    modifications, gives the user control over conflict resolution, and
    produces a structured update report documenting every change.
    
    The updater operates in three phases:
    - **Pre-flight** -- validate internet access and determine version delta.
    - **Update** -- fetch the latest release and apply changes with
      conflict-aware overwrite-or-skip logic.
    - **Report** -- generate a markdown report summarizing what changed,
      what was skipped, and what new capabilities are available.
    
    ## When to Use
    
    - When you want to update your local pm-skills to the latest release
    - After a new pm-skills version is announced and you want to pull it in
    - When you're unsure whether your local copy is current
    - When onboarding to a team that uses pm-skills and you want the latest version
    - When you want a structured summary of what changed between your version and the latest
    
    ## When NOT to Use
    
    - To create or edit individual skills -> use `/pm-skill-builder` or `/pm-skill-iterate`
    - To validate skills against conventions -> use `/pm-skill-validate`
    - If you are a maintainer working directly on the pm-skills repo (use git instead)
    - If you need to pin a specific older version (this skill always targets the latest release)
    
    ## Instructions
    
    When asked to update pm-skills, follow these steps:
    
    ### Step 1: Validate Internet Access
    
    Before attempting any remote operations, confirm connectivity to GitHub.
    
    **How to validate:**
    1. Attempt to reach the GitHub API or the public repository URL:
       `https://github.com/product-on-purpose/pm-skills`
    2. Use any available method: `curl`, `wget`, `fetch`, GitHub CLI (`gh`),
       or the GitHub MCP tools.
    
    **If connectivity fails:**
    - Report the failure clearly with the error details.
    - Suggest troubleshooting steps: check network, proxy settings, VPN,
      or firewall rules.
    - Stop execution. Do not proceed to Step 2.
    
    **If connectivity succeeds:**
    - Report: "Internet access validated. Connected to GitHub."
    - Proceed to Step 2.
    
    ### Step 2: Determine Local Version
    
    Read the local version from these sources (in priority order):
    
    1. `.claude-plugin/plugin.json` -- `version` field
    2. `marketplace.json` -- `plugins[0].version` field
    3. `CHANGELOG.md` -- most recent version header
    4. Git tags -- most recent `v*` tag
    
    Record:
    - **Local version**: the version string (e.g., `2.8.2`)
    - **Local version source**: which file provided the version
    
    If no version can be determined, warn the user and default to `0.0.0`
    (treat as a fresh install requiring full update).
    
    ### Step 3: Fetch Latest Public Release
    
    Query the public repository for the latest release:
    
    **Methods (try in order):**
    1. GitHub API: `GET /repos/product-on-purpose/pm-skills/releases/latest`
    2. GitHub CLI: `gh release list --repo product-on-purpose/pm-skills --limit 1`
    3. Git: `git ls-remote --tags https://github.com/product-on-purpose/pm-skills.git`
    
    Record:
    - **Latest version**: the version string from the latest release
    - **Release date**: when the release was published
    - **Release notes URL**: link to the release page
    - **Release notes body**: the release description (for capability diff in Step 8)
    
    ### Step 4: Compare Versions
    
    Compare the local version against the latest public version.
    
    **If local version >= latest version:**
    - Report: "Your pm-skills installation is up to date (v{local})."
    - Offer to generate a version report anyway (skip to Step 8 with
      no changes to report).
    - Stop execution unless the user requests a forced update.
    
    **If local version < latest version:**
    - Report the version delta:
      ```
      Local version:  v{local}
      Latest version: v{latest}
      Update type:    {major | minor | patch}
      ```
    - If the update is a **major** version bump, warn:
      "This is a major version update. It may include breaking changes to
      skill contracts. Review the release notes before proceeding."
    - Ask: "Proceed with update? [yes / no]"
    - If no, stop execution.
    
    ### Step 5: Scan for Local Modifications
    
    Before fetching new files, scan the local installation for user
    modifications. This protects customizations from being silently
    overwritten.
    
    **How to detect modifications:**
    
    1. **If the local install is a git repo** (preferred):
       - Run `git status --porcelain` to find uncommitted changes.
       - Run `git diff HEAD` to see the actual modifications.
       - Any file with local changes is flagged as "locally modified."
    
    2. **If the local install is NOT a git repo** (downloaded release):
       - Compare file checksums (SHA-256) against a manifest if available.
       - If no manifest is available, skip modification detection and note
         this limitation in the report.
    
    Record a list of locally modified files with their modification type:
    - `modified` -- content differs from the installed version
    - `added` -- file exists locally but not in the original release
    - `deleted` -- file was removed locally
    
    Present the findings:
    ```
    Locally modified files detected: {n}
    - {status} | {file-path}
    - {status} | {file-path}
    ...
    ```
    
    If no modifications are detected, report: "No local modifications
    detected. Safe to update all files."
    
    ### Step 6: Fetch and Apply Updates
    
    Fetch the latest release content and apply updates file by file.
    
    **Update method (try in order):**
    1. **Git pull/merge** (if local is a git repo):
       - `git fetch origin`
       - `git merge origin/main` (or the tagged release)
       - If merge conflicts arise, handle per the conflict resolution
         rules below.
    
    2. **Release archive download** (if not a git repo):
       - Download the release archive (`.tar.gz` or `.zip`).
       - Extract to a temporary directory.
       - Copy files to the local installation per the rules below.
    
    **File-by-file application rules:**
    
    For each file in the update:
    
    | Local status | Action | User prompt |
    |-------------|--------|-------------|
    | Unmodified | Overwrite silently | None |
    | Locally modified | Prompt user | "File `{path}` has local changes. [overwrite / skip / diff]" |
    | New file (not in local) | Add silently | None |
    | Deleted locally | Prompt user | "File `{path}` was deleted locally but exists in the update. [restore / skip]" |
    
    **Conflict resolution options:**
    - **overwrite**: Replace the local file with the upstream version.
      The original is backed up to `{path}.local-backup` before overwriting.
    - **skip**: Keep the local version. Record as skipped in the report.
    - **diff**: Show a side-by-side or unified diff of the local vs. upstream
      version, then re-prompt with [overwrite / skip].
    - **restore**: Add the file back from the upstream version.
    - **overwrite-all**: Apply overwrite to all remaining conflicts without
      further prompting.
    - **skip-all**: Apply skip to all remaining conflicts without further
      prompting.
    
    ### Step 7: Post-Update Validation
    
    After applying updates, run a quick health check:
    
    1. **Version consistency**: Verify that `.claude-plugin/plugin.json`,
       `marketplace.json`, and `CHANGELOG.md` all reflect the new version.
    2. **File integrity**: Confirm that key files exist:
       - `AGENTS.md`
       - `skills/` directory with expected skill count
       - `commands/` directory
       - `_workflows/` directory
    3. **Skill count delta**: Compare the number of skills before and after
       the update. Report any additions or removals.
    
    If validation fails, warn the user with specific details about what
    looks wrong. Do not roll back automatically -- the user may want to
    investigate.
    
    ### Step 8: Generate Update Report
    
    Produce the update report using the template in
    `references/TEMPLATE.md`. This is the primary output artifact.
    
    The report includes:
    
    1. **Version summary**: local (before) -> latest (after), update type.
    2. **Files changed**: every file that was updated, with a one-line
       summary of what changed.
    3. **Files skipped**: files the user chose to skip due to local
       modifications, with the reason.
    4. **Files added**: new files not present in the previous version.
    5. **Files removed**: files present in the old version but not in the
       new one.
    6. **New capabilities**: skills added, skills updated (with version
       deltas), workflows added, and any breaking changes -- derived from
       release notes and file diff analysis.
    7. **Skipped file recovery**: instructions for how to manually update
       any files that were skipped.
    
    **Report delivery:**
    - Display the report in the conversation.
    - Offer to save it as a file: `updates/update-{from}-to-{to}-{date}.md`
      (e.g., `updates/update-v2.8.2-to-v2.9.0-2026-04-09.md`).
    
    ### Step 9: Present Next Steps
    
    After the update completes, suggest next steps:
    
    ```
    ## Next Steps
    
    - Review the update report for any skipped files
    - Run `/pm-skill-validate --all` to verify skill integrity
    - Run local CI: `bash scripts/lint-skills-frontmatter.sh`
    - Check the release notes for any migration steps: {release-url}
    - If you skipped files with local changes, consider merging manually
    ```
    
    ## Degraded Mode
    
    If running in an environment without direct file system or network
    access (e.g., MCP or embedded environment):
    
    1. **No network access**: Cannot perform the update. Report the
       limitation and provide the user with manual update instructions:
       - Link to the latest release page
       - List the steps to download and extract manually
    2. **No file system access**: Cannot scan for local modifications or
       write updated files. Provide:
       - Version comparison (if the user pastes their local version info)
       - Capability diff from release notes
       - A checklist of files the user should update manually
    3. **Partial access**: Do what you can. Clearly note which steps were
       skipped and why in the report.
    
    ## Output Contract
    
    The updater MUST produce an update report following the format in
    `references/TEMPLATE.md`.
    
    The report:
    - Uses the exact section headings defined in the template
    - Includes version information for both local and upstream
    - Lists every file with its disposition (updated, skipped, added, removed)
    - Describes new capabilities derived from the version delta
    - Provides recovery instructions for any skipped files
    
    The updater MUST:
    - Validate internet access before attempting any remote operations
    - Determine the local version before comparing against upstream
    - Never silently overwrite a locally modified file
    - Back up locally modified files before overwriting (if user chooses overwrite)
    - Present a clear prompt for each conflict with diff capability
    - Support batch conflict resolution (overwrite-all / skip-all)
    - Run post-update validation to confirm a healthy state
    
    The updater MUST NOT:
    - Proceed without internet access confirmation
    - Overwrite locally modified files without user consent
    - Delete local files that don't exist in the upstream release
    - Auto-rollback on validation failure (inform the user instead)
    - Modify files outside the pm-skills directory
    
    ## Quality Checklist
    
    Before delivering the update report, verify:
    
    - [ ] Internet access was validated before any remote operations
    - [ ] Local version was correctly identified from available sources
    - [ ] Latest public version was fetched and compared
    - [ ] User was warned about major version updates (if applicable)
    - [ ] All locally modified files were detected and presented
    - [ ] User was prompted for each file conflict (or batch mode was used)
    - [ ] Backups were created for overwritten locally modified files
    - [ ] Post-update validation passed (or failures were reported)
    - [ ] Update report follows the template format exactly
    - [ ] New capabilities section accurately reflects the version delta
    - [ ] Skipped file recovery instructions are provided
    - [ ] Next steps are presented
    
    ## Examples
    
    See `references/EXAMPLE.md` for a completed update report demonstrating
    a minor version update with local modifications, conflict resolution,
    and new capability discovery.
    
  • .claude-plugin/marketplace.jsonmarketplace
    Show content (1128 bytes)
    {
      "name": "pm-skills-marketplace",
      "owner": {
        "name": "product-on-purpose",
        "url": "https://github.com/product-on-purpose"
      },
      "description": "Product Management skills for AI agents",
      "plugins": [
        {
          "name": "pm-skills",
          "description": "40 PM skills covering the full product lifecycle: 26 phase skills, 8 foundation skills (including the v2.12.0 OKR Skills set, the v2.11.0 Meeting Skills Family of 5 cross-cutting skills, lean-canvas, and persona), and 6 utility skills. Includes templates, examples, workflows, thread-aligned samples, and lifecycle tools for creating, validating, and iterating skills. Adds the OKR write-and-score cycle pair in v2.12.0. Follows the agentskills.io specification.",
          "version": "2.13.1",
          "source": "./",
          "author": {
            "name": "product-on-purpose",
            "url": "https://github.com/product-on-purpose"
          },
          "homepage": "https://github.com/product-on-purpose/pm-skills",
          "license": "Apache-2.0",
          "keywords": ["product-management", "pm", "prd", "user-stories", "okrs", "agent-skills", "agentskills-io"]
        }
      ]
    }
    
  • marketplace.jsonmarketplace
    Show content (942 bytes)
    {
      "name": "pm-skills-marketplace",
      "description": "Product Management skills for AI agents",
      "plugins": [
        {
          "name": "pm-skills",
          "description": "40 PM skills covering the full product lifecycle: 26 phase skills, 8 foundation skills (including the v2.12.0 OKR Skills set, the v2.11.0 Meeting Skills Family of 5 cross-cutting skills, lean-canvas, and persona), and 6 utility skills. Includes templates, examples, workflows, thread-aligned samples, and lifecycle tools for creating, validating, and iterating skills. Adds the OKR write-and-score cycle pair in v2.12.0. Follows the agentskills.io specification.",
          "version": "2.13.0",
          "source": ".",
          "author": "product-on-purpose",
          "homepage": "https://github.com/product-on-purpose/pm-skills",
          "license": "Apache-2.0",
          "keywords": ["product-management", "pm", "prd", "user-stories", "okrs", "agent-skills", "agentskills-io"]
        }
      ]
    }
    

README

PM-Skills

A curated collection of 40 best-practice, plug-and-play product management “agent skills” (26 phase skills + 8 foundation skills + 6 utility skills) plus templates and workflows for consistent, professional PM outputs.

Report a Bug · Request a Feature · Ask a Question

Project Status: Active License Version Skills Agent Skills Spec Install via skills.sh PRs Welcome

Stars Forks Issues Contributors Last Commit

MCP Server: Maintenance Mode

AboutGetting StartedSkillsWorkflowsStatusContributingCommunity

Table of Contents

Quick Start (Clone and go!)

git clone https://github.com/product-on-purpose/pm-skills.git && cd pm-skills

📦 MCP Server: Maintenance Mode (effective 2026-05-04)

The companion pm-skills-mcp server is in the v2.9.x maintenance line (latest v2.9.3) and remains available on npm for clients that need MCP transport. The catalog is frozen at the v2.9.2 build (40 skills, 11 workflow tools, 8 utility tools = 59 tools); subsequent v2.9.x patches do not change the catalog. Active development on the MCP server is paused; security patches and critical bug fixes will continue, and new skill parity with this library is on hold.

For new users, the file-based install path documented in Getting Started is the recommended path. See MCP Integration for status details and resumption criteria.


What's New (Recent Releases)

v2.13.1 - Plugin Install Path Correction
  • Plugin install path fixed. /plugin marketplace add product-on-purpose/pm-skills now works against the public repo. Prior to this release, marketplace.json lived at the repo root and lacked the owner schema field that Claude Code's marketplace registry requires; the install path failed silently for any user who tried it. The same 40-skill catalog ships unchanged.
  • marketplace.json relocated to .claude-plugin/marketplace.json (the canonical Claude Code path). git mv preserves the file's history. The repo-root location is no longer present.
  • Marketplace schema corrected. Added top-level owner object with name + url. Converted plugin entry's author from string to object form (Claude Code's schema rejects string-form authors).
  • New CI script validate-plugin-install.{sh,ps1,md} (enforcing). Verifies both manifests exist at canonical paths, validates against Claude Code's marketplace schema (required fields: name, owner.name, plugins, per-plugin name + version + source + author as object), and asserts cross-manifest version + name consistency. Catches the exact bug class that shipped silently from v2.7.0 through v2.13.0. Front-door check.
  • README "Install as Claude Code Plugin" section rewritten with the modern /plugin marketplace add flow as the primary path; manifest-direct install retained as fallback.
  • .claude/pm-skills-for-claude.md updated to acknowledge plugin install alongside the sync-helper path. No primary recommendation between paths (decision deferred to v2.14.0+).
  • Release note: docs/releases/Release_v2.13.1.md.
v2.13.0 - Foundation Hardening + Doc Stack Decision
  • Maintenance and quality release; same 40-skill catalog as v2.12.0. Day-to-day usage of /prd, /hypothesis, /user-stories, and the rest of the catalog is unchanged. What changed is everything around the catalog.
  • Cleaner, more navigable documentation. Duplicate files removed; skill counts reconciled across README, getting-started, reference docs, mkdocs config, and the homepage hero (all now consistent at 40); a new Diataxis-aligned folder structure (concepts = generic; reference = lookup; guides = how-to); a pm-skill-* filename prefix convention that signals at a glance which docs are PM-Skills-specific vs generic agent material; every generated page clearly labeled with a generated: true frontmatter flag and a "do not edit" admonition pointing editors to the source.
  • For contributors and forkers, 7 new CI gates catch documentation drift on pull requests automatically: nav completeness, generated-content untouched, cross-doc reference integrity, docs frontmatter coverage, internal link validity, version-reference consistency, and skill-family registration. The validator inventory grew from 15 to 22; the enforcing tier doubled (5 to 10). A typo in a skill cross-reference, a count that fell out of sync, a hand-edit to a generated page - all caught at PR time now.
  • For pm-skills-mcp users, a same-week security patch. v2.9.3 cleared all 8 open Dependabot moderate advisories two hours after the v2.9.2 maintenance-mode announcement. The frozen catalog (40 skills + 11 workflow tools + 8 utility tools = 59 tools) is unchanged; v2.9.x is the maintenance line going forward.
  • Phase 0 Adversarial Review Loop applied across per-strand (4 Codex tasks closed) and release-state (5 Codex review rounds + 3 resolution passes converged) layers per the v2.11.0 + v2.12.0 codification. Caught and codified a meta-level case of the stale-aggregate-counter pattern (durable feedback memory): mid-loop summary text freezes in-progress claims and needs a final correctness pass before any promotion.
  • Release note: docs/releases/Release_v2.13.0.md.
v2.12.0 - OKR Skills Launch
  • OKR Skills set: first release with the OKR write-and-score pair. foundation-okr-writer (/okr-writer) drafts, reviews, rewrites, and coaches outcome-based OKR sets; measure-okr-grader (/okr-grader) scores completed OKRs at cycle close per a canonical 5-value type enum (committed | aspirational | learning | operational_health | compliance_or_safety) and refuses the misuse failure modes (retroactive target changes, retroactive scope shrinkage on committed or compliance KRs, softening committed misses with aspirational scoring, averaging failed guardrails into the primary score, and OKR scores as individual performance ratings).
  • 5 entry modes for the writer (Guided default, One-Shot via --oneshot, Sustained Coach, Audit Only, Rewrite). Empowered-team diagnostic with conditional Disclosure section when feature-team signals are present. 16-item anti-pattern catalog. Constraint Rules block (MUST / MUST NOT). Quality Audit Rubric on every draft.
  • Grader special states: not-yet-observable (cycle-window extensions past close, e.g. 90-day cohorts) and not-yet-fully-observable (committed or compliance_or_safety KRs with partial coverage; cannot be retroactively shrunk to claim a pass on the observed subset). Indicator class guardrail is independent of OKR type and adds a never-averaged-into-primary-score rule.
  • 6 thread-aligned library samples added (3 per skill across storevine, brainshelf, workbench). The storevine Campaigns thread now spans measure-experiment-results, foundation-okr-writer, and measure-okr-grader for a complete write-and-score arc on a single product context.
  • Phase 0 Adversarial Review Loop applied per the v2.11.0 codification. The grader's review took 3 rounds to converge (round 1 caught 1 HIGH plus 2 MEDIUM; round 2 caught 2 MEDIUM taxonomy-drift propagations introduced by round 1 fixes; round 3 returned 0 findings). Two release-state confirmation rounds caught additional rendered-doc count drift (homepage hero, mermaid phase cards, skill-anatomy frontmatter example, versioning concept page) that the count-consistency CI's regex could not detect.
  • docs/reference/README.md added as the canonical Reference section overview, wired into mkdocs nav. Indexes frontmatter schema, command catalog, category taxonomy, project structure, ecosystem comparison, and skill-family contracts.
  • Internal builder cleanup bundled silently: utility-pm-skill-builder Step 5 packet format reduced from 13 to 12 items (no downstream impact). Audit-history tree consolidated under docs/internal/audit/_archived/.
  • v2.12.0: Repo now ships 40 skills (26 phase + 8 foundation + 6 utility), 47 command docs, and 9 workflows.
  • Release note: docs/releases/Release_v2.12.0.md.
v2.11.1 - skills.sh CLI Compatibility Patch
  • Install in one command (v2.11.1): npx skills add product-on-purpose/pm-skills now installs all 38 skills through the open skills CLI and the skills.sh directory. Previously broken for 6 foundation skills due to a YAML-frontmatter quirk.
  • 6 foundation SKILL.md files fixed: leading HTML attribution comment removed (it was breaking strict YAML parsers). Attribution preserved via the identical comment right after the frontmatter.
  • foundation-meeting-synthesize: description reworded to remove inline : that was truncating it under strict YAML; version 1.0.0 to 1.0.1.
  • 25 stale tracked files removed from .claude/skills/ (pre-v1 personal-setup relics that were shipping as phantom bonus skills on install).
  • Two new lint rules in scripts/lint-skills-frontmatter.sh/.ps1: first line of every SKILL.md must be ---; unquoted descriptions must not contain inline : . Closes the gap between our validator and the real CLI consumer.
  • README install surface: new npx skills add one-liner at the top of Getting Started + skills.sh badge + Installation Options table row.
  • Distribution plan: six-phase skills.sh submission approach documented at docs/internal/distribution/2026-04-22_skills-sh.md. Phases 0 through 3 complete with this release; Phase 5 (soft-launch for install telemetry) is a post-release workstream.
  • Em-dash sweep completion: 376 tracked files, 5,805 em-dash characters replaced per the 2026-04-13 standing style rule.
  • Stale skill-count reconciliation (v2.11.1): 8 current-state references to 27 skills or 31 skills updated to 38 skills across 5 files. Historical per-release snapshots in this section preserved as accurate records.
  • No behavioral changes to any skill. Safe patch upgrade.
  • Release note: docs/releases/Release_v2.11.1.md.
v2.11.0 - Meeting Skills Family + Lean Canvas: first cross-cutting skill-family contract
  • New foundation skill: foundation-lean-canvas (/lean-canvas) . one-page business thesis across nine interlocking blocks (problem, customer, UVP, solution, channels, revenue, cost, metrics, unfair advantage). Two modes: content (structured markdown) and visual (self-contained HTML with A3 landscape print styling).
  • New foundation family . the 5-skill Meeting Skills Family, governed by a canonical contract (docs/reference/skill-families/meeting-skills-contract.md) with enforcing CI:
    • foundation-meeting-agenda (/meeting-agenda) . attendee-facing structural agenda with time-boxed topics, type tags, owners, prep; 10 meeting-type variants
    • foundation-meeting-brief (/meeting-brief) . private strategic prep with stakeholder reads, ranked outcomes, anticipated Q&A
    • foundation-meeting-recap (/meeting-recap) . topic-segmented post-meeting summary with decisions bold-flagged and actions inline; auto-discovers sibling agenda
    • foundation-meeting-synthesize (/meeting-synthesize) . cross-meeting archaeology surfacing patterns, trajectories, contradictions
    • foundation-stakeholder-update (/stakeholder-update) . async outward comms with 5 channel × 5 audience variants
  • New pattern: docs/reference/skill-families/ . canonical home for cross-cutting skill-family contracts. Meeting Skills Contract is the first entry; future families (research, delivery) can add entries.
  • New CI: validate-meeting-skills-family.sh/.ps1 . enforcing validation of contract conformance, filename convention, and shareable-boundary structure.
  • New end-user guide: Using the Meeting Skills Family with mermaid diagrams covering skill chain, go-mode flow, and family lifecycle.
  • Sample library: 94 → 120 outputs; 15 thread-aligned samples (3 per meeting skill × storevine/brainshelf/workbench) added.
  • Process improvement: Pre-release checklist now requires a Phase 0 Adversarial Review Loop (Codex adversarial review → resolution → re-run until findings stabilize below IMPORTANT). Codified from v2.11.0 experience where Round 2 of review surfaced 6 additional IMPORTANT issues in the Round 1 resolution pass itself.
  • v2.11.0: Repo now ships 38 skills (25 phase + 7 foundation + 6 utility), 45 command docs, and 9 workflows.
  • Release note: docs/releases/Release_v2.11.0.md.
v2.10.x - Utility skill expansion: mermaid diagrams, slideshows, self-updating
  • New skill: utility-mermaid-diagrams (/mermaid-diagrams) . 15 diagram types with dual-lens navigation (type catalog + PM use-case guide), dedicated syntax validity reference, and worked examples.
  • New skill: utility-slideshow-creator (/slideshow-creator) . generates professional presentations from JSON deck specs; 18 slide types with dark/light variants and Google Slides compatibility.
  • New skill: utility-update-pm-skills (/update-pm-skills) . checks for newer releases, previews changes with --report-only, and applies updates with confirmation. Includes backup, value-delta report, and post-update smoke test.
  • Sample library (v2.10.x): 84 → 91 outputs, now covering all 32 skills.
  • Tooling: generate-skill-pages.py now computes skill/command/workflow counts dynamically, eliminating stale-count drift.
  • v2.10.x: Repo now ships 32 skills, 39 command docs, and 9 workflows.
  • v2.10.1 patch: backlog spec drafts for 10 upcoming skills, generated docs/skills/ pages, F-25 scope moved to agent-config-toolkit.
  • v2.10.2 patch: corrected plugin / marketplace manifest skill counts (29 → 32) to match repo state; extended check-count-consistency CI to scan JSON manifests and closed an off-by-one in its threshold comparison; fixed README "10 workflows" to "9 workflows".

View previous release details | Full changelog


The Big Idea

Stop prompt-fumbling. Start shipping. Every time you ask an AI to help with product management, you start from zero. Generic responses. Inconsistent formats. Missing critical sections. Hours lost to repetitive prompt crafting.

PM-Skills changes that and gives your AI-tool-of-choice instant access to:

  • Professional frameworks refined across hundreds of product launches
  • Production-ready templates that capture institutional PM knowledge
  • Real-world examples that set the quality bar
You: "Create a PRD for our new search feature"

AI + PM-Skills: Generates a comprehensive PRD with problem statement,
                success metrics, user stories, scope definition, and
                technical considerations-all in professional format.

The Problem

Every time you ask an AI to help with product management, you start from zero. Generic responses. Inconsistent formats. Missing critical sections. Hours spent prompt-engineering the same workflows.

The Solution

PM-Skills gives your AI instant access to field-tested frameworks, templates, and examples for every stage of product development.

Without PM-SkillsWith PM-Skills
⚠️ Generic AI responses✅ Professional PM frameworks
⚠️ Inconsistent formats✅ Production-ready templates
⚠️ Missing key sections✅ Comprehensive coverage
⚠️ Starting from scratch✅ Building on best practices
⚠️ Prompt engineering every time✅ One command, instant results

Key Features

  • 40 Production-Ready Skills covering the complete product lifecycle (26 phase skills + 8 foundation skills + 6 utility skills)
  • Triple Diamond Framework organizing Discover, Define, Develop, Deliver, Measure, and Iterate phases
  • 9 Workflows for common PM processes (Feature Kickoff, Lean Startup, Triple Diamond, and 6 more)
  • Slash Commands for Claude Code users-instant access to every skill
  • Auto-Discovery via AGENTS.md in GitHub Copilot, Cursor, and Windsurf
  • Agent Skills Spec compliant-works across AI assistants
  • Best-Practice Templates based on industry best practices
  • Comprehensive Documentation with examples and references
  • Apache 2.0 Licensed for commercial and personal use

Skill Lifecycle Tools

PM-Skills includes three utility skills that form a complete Create → Validate → Iterate lifecycle for managing skills themselves:

flowchart LR
    Create["/pm-skill-builder\nCreate"] --> Validate["/pm-skill-validate\nValidate"]
    Validate --> Decision{Findings?}
    Decision -- "PASS" --> Ship["Ship"]
    Decision -- "WARN / FAIL" --> Iterate["/pm-skill-iterate\nIterate"]
    Iterate --> Validate
ToolCommandWhat it does
Builder/pm-skill-builderCreates a new skill from an idea . runs gap analysis against all existing skills, classifies by type and phase, generates draft files to a staging area, and promotes on confirmation
Validator/pm-skill-validateAudits an existing skill against structural conventions and quality criteria . produces a report with severity-graded findings and actionable recommendations
Iterator/pm-skill-iterateApplies targeted improvements to a skill based on feedback or a validation report . previews changes, writes on confirmation, suggests a version bump

Why this matters: Skills are living artifacts that evolve. The builder creates them, the validator catches drift and quality gaps, and the iterator applies fixes. Together they keep the library consistent as it grows.

Quick example:

# Create a new skill
/pm-skill-builder "A skill for writing stakeholder update emails"

# Validate it meets conventions
/pm-skill-validate stakeholder-update-email

# Fix any findings
/pm-skill-iterate stakeholder-update-email   # paste the validation report

See PM-Skill Lifecycle for workflow patterns and detailed usage.

Built with...

Agent Skills Spec GitHub Flavored Markdown GitHub Actions

Founded on...

Works for...

PM-Skills follows the Agent Skills Specification and works natively across the AI ecosystem.

Platform Compatibility

PlatformStatusMethodNotes
Claude Code✅ NativeSlash commands; optional `sync-claude.(shps1)to populate.claude/` cache
Claude.ai✅ NativeZIP uploadUpload to Projects
Claude Desktop✅ NativeZIP upload or MCPMCP available for programmatic access (server in maintenance mode)
GitHub Copilot✅ NativeAGENTS.md discoveryAuto-discovers in repo
Cursor✅ NativeAGENTS.md or MCPMCP available (server in maintenance mode); sync helper optional if using openskills
Windsurf✅ NativeAGENTS.md discoveryAuto-discovers; sync helper not needed
VS Code✅ NativeVia extensionsCline, Continue, or manual
OpenCode✅ NativeSkill formatDirect skill loading
Any MCP Client✅ Universalpm-skills-mcpProtocol-level access
ChatGPT / Codex🔶 ManualCopy skill contentNo native support
Other AI Tools🔶 ManualCopy skill contentWorks with any LLM

Comparison: pm-skills (this repo) vs. pm-skills-mcp

PM-Skills is available in two complementary forms:

Note: pm-skills-mcp entered maintenance mode on 2026-05-04. It remains available for clients that need MCP transport. New users are best served by the file-based install path (recommended path going forward).

pm-skills (this repo)pm-skills-mcp
What it isSkill library as markdown filesMCP server wrapping the skill library
Access methodGit clone, ZIP uploadnpx pm-skills-mcp
Setup time2-5 minutes30 seconds
Skill invocationSlash commands (Claude Code)MCP tool calls
Auto-discoveryAGENTS.md (Copilot, Cursor, Windsurf)MCP protocol (Claude Desktop, Cursor)
Template accessNavigate file systemURI-based resources
WorkflowsManual orchestrationTool-based execution
CustomizationEdit files directlySet PM_SKILLS_PATH to custom folder
Updatesgit pull (active maintenance)Maintenance mode (v2.9.x line, latest v2.9.3; security patches + critical bug fixes only)

Use pm-skills (this repo) when:

  • You prefer slash commands in Claude Code (/prd, /hypothesis)
  • You want to browse, read, and customize skill files directly
  • You're using GitHub Copilot or Windsurf with AGENTS.md discovery
  • You want to fork and heavily customize skills for your team

Use pm-skills-mcp (maintenance mode) when:

  • Your team has already adopted it and the frozen 40-skill catalog meets current needs
  • Your tooling specifically requires the MCP transport (e.g., self-hosted MCP-only configurations)
  • The frozen 40-skill catalog meets your scope (skills added to pm-skills after the v2.9.2 build are not embedded)

The file-based install ships all 40 production-ready PM skills (26 phase skills + 8 foundation skills + 6 utility skills). The frozen v2.9.2 MCP build embeds the same 40-skill catalog at the time of its publication, after which point only the file-based install receives new skills.

See the Ecosystem Overview for a detailed comparison.

(back to top)


Getting Started

Fastest path: Install all 40 skills into your agent with one command, using the open skills CLI:

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

Works with Claude Code, Cursor, GitHub Copilot, Cline, and any agent supported by the skills CLI. Skills land in your agent's default skills directory and are ready to use immediately.

Prefer a manual clone? The classic path still works:

git clone https://github.com/product-on-purpose/pm-skills.git && cd pm-skills

Need platform-specific instructions? See Quick Start by Platform below.

Want a detailed walkthrough? Check our Getting Started Guide.

Docs navigation: Quickest: this README’s Quick Start or QUICKSTART.md in the repo/release ZIP. Detailed: docs/getting-started/index.md (long-form).

Install as Claude Code Plugin

The fastest path for Claude Code users. Run two commands inside Claude Code:

/plugin marketplace add product-on-purpose/pm-skills
/plugin install pm-skills@pm-skills-marketplace

After install, all 40 skills and 47 commands resolve from any directory. Slash commands like /prd, /opportunity-tree, /agenda, /okr-writer, etc. work out of the box.

Verify with /plugin list to confirm pm-skills is installed.

Local-directory install (for forkers and contributors who want to track their working tree rather than the published version):

/plugin marketplace add /path/to/your/local/pm-skills
/plugin install pm-skills@pm-skills-marketplace

Manifest-direct fallback (older Claude clients or non-marketplace install flows):

  1. Clone the repo or extract the release ZIP.
  2. During plugin setup, select the manifest at .claude-plugin/plugin.json.
  3. Complete install in your client and reload if prompted.

Installation Options

MethodBest ForCommand / Action
skills CLIAny agent supported by the open skills ecosystem (Claude Code, Cursor, Copilot, Cline)npx skills add product-on-purpose/pm-skills
Git CloneClaude Code, Copilot, Cursor, Windsurfgit clone https://github.com/product-on-purpose/pm-skills.git
ZIP DownloadClaude.ai, Claude DesktopDownload Latest Release
MCP ServerProgrammatic tool accessnpx pm-skills-mcp (pm-skills-mcp)

Quick Start by Platform

Claude Code

Fastest install (one command):

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

Installs all 40 skills into your agent's default skills directory. Slash commands (/prd, /hypothesis, /user-stories, etc.) become available immediately. No clone, no sync helper.

Alternative: clone the full repo (gives you the sample library, library/skill-output-samples, internal docs, and workflows alongside the skills):

# Clone the repo to get slash commands + everything else
git clone https://github.com/product-on-purpose/pm-skills.git
cd pm-skills

# Use any skill with slash commands
/prd "Search feature for e-commerce platform"
/hypothesis "Will one-page checkout increase conversion?"
/user-stories "Recurring tasks feature from PRD"

All 40 skills are available as /skill-name commands. See commands/ for the full list.

Need .claude/skills for openskills or certain discovery flows? After cloning, run:

./scripts/sync-claude.sh   # macOS/Linux
./scripts/sync-claude.ps1  # Windows

This regenerates .claude/skills and .claude/commands from the flat source; keep them untracked.

Claude.ai / Claude Desktop
  1. Download pm-skills-vX.X.X.zip from Releases
  2. Upload in Claude.ai or Desktop:
    • Claude.ai: Project Settings → Add Files → Upload ZIP
    • Desktop: Settings → Capabilities → Upload ZIP
  3. Use skills by name: "Use the prd skill to create requirements for..."

See QUICKSTART.md in the archive for detailed instructions.

MCP Server (Claude Desktop, Cursor, Any MCP Client)

For MCP-compatible clients, use pm-skills-mcp:

{
  "mcpServers": {
    "pm-skills": {
      "command": "npx",
      "args": ["pm-skills-mcp"]
    }
  }
}

All 40 skills (26 phase + 8 foundation + 6 utility) become available as programmatic tools, alongside 11 workflow tools and 8 server-utility tools (59 tools total). Some utility skills like update-pm-skills are designed for file-system contexts and have reduced applicability via MCP transport. See the pm-skills-mcp README for client-specific setup.

GitHub Copilot

Copilot auto-discovers skills via AGENTS.md:

# Clone into your project or as a submodule
git clone https://github.com/product-on-purpose/pm-skills.git

# Or add as submodule
git submodule add https://github.com/product-on-purpose/pm-skills.git

Copilot Chat will see the skills. Ask: "Use the prd skill to create requirements for user authentication"

Setup checklist:

  1. Open a workspace that includes pm-skills (repo root or submodule).
  2. Use Copilot Chat in agent/workspace context.
  3. Invoke skills by name, for example: Use the hypothesis skill for checkout abandonment.
OpenCode

OpenCode can load PM-Skills directly from this repository:

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

Setup checklist:

  1. Configure OpenCode to use this folder as a skills source.
  2. If your OpenCode flow expects .claude/skills/, run ./scripts/sync-claude.sh (or .ps1) once after clone.
  3. Invoke by skill name (example: Use the prd skill for ...).
Cursor / Windsurf

Both IDEs auto-discover skills via AGENTS.md:

# Clone into your workspace
git clone https://github.com/product-on-purpose/pm-skills.git

Open the folder in Cursor or Windsurf. The AI assistant will automatically discover and can use all 40 skills.

VS Code (Cline / Continue)

With Cline or Continue extensions:

  1. Clone pm-skills into your workspace
  2. The extension will discover skills via AGENTS.md
  3. Ask: "Use the hypothesis skill to test my assumption about..."

Manual approach:

  1. Open any SKILL.md file from skills/{phase-skill}/ (e.g., skills/deliver-prd/)
  2. Copy the content into your AI chat
  3. Ask the AI to follow the skill instructions
ChatGPT / Other LLMs

ChatGPT and other LLMs don't support Agent Skills natively, but you can use skills manually:

  1. Clone or download pm-skills
  2. Open the skill you need (e.g., skills/deliver-prd/SKILL.md)
  3. Copy the full content into your ChatGPT conversation
  4. Ask: "Follow these instructions to create a PRD for [your topic]"

The skill content provides all the context the LLM needs to produce professional output.

Releases

All releases are available on the GitHub Releases page:

Each release includes QUICKSTART.md with installation and usage instructions. Release notes are published in docs/releases/ (for example, docs/releases/Release_v2.2.md).

Download Latest

Primary: skills CLI (via skills.sh)

The open skills CLI from Vercel Labs is the recommended install path for most agents. One command, no configuration:

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

This clones pm-skills, scans the skills/ directory, and installs all 40 skills into your agent's default skills directory. Supported agents include Claude Code, Cursor, GitHub Copilot, Cline, and others. Discoverable via the skills.sh directory.

Telemetry is anonymous and opt-out via DISABLE_TELEMETRY=1 or DO_NOT_TRACK=1 in your environment.

Alternative: openskills CLI

Note: The openskills CLI discovers skills in .claude/skills/ directories. PM-Skills ships a flat skills/{phase-skill}/ structure plus a sync helper that populates .claude/skills/ locally. Run ./scripts/sync-claude.sh (or .ps1) after cloning to enable discovery.

# Works for repos with .claude/skills/ structure (e.g., anthropics/skills)
npm i -g openskills
openskills install anthropics/skills
openskills sync

(back to top)


Usage

PM-Skills provides three components that work together to accelerate your product management work:

ComponentWhat it isWhen to use
SkillsSelf-contained instruction sets with templates and examplesSingle artifacts (PRD, user stories, retro)
CommandsSlash commands for Claude Code (e.g., /prd)Quick access to individual skills
WorkflowsCurated multi-skill processesEnd-to-end processes (feature kickoff, validation cycles)

Skills are the atomic building blocks-each one teaches your AI how to produce a specific PM artifact with professional quality. Commands give you instant access to skills via /skill-name syntax. Workflows chain multiple skills together for complete product development processes.

How Skills Work

Each skill is a self-contained instruction set:

skills/{phase-skill}/
├── SKILL.md              # Instructions for the AI
└── references/
    ├── TEMPLATE.md       # Output structure
    └── EXAMPLE.md        # Real-world example

Your prompt: "Create a PRD for adding dark mode to our app"

The AI:

  1. Reads skills/{phase-skill}/SKILL.md for instructions
  2. Follows the structured approach (problem → solution → metrics → scope)
  3. Uses TEMPLATE.md for formatting
  4. References EXAMPLE.md for quality benchmarks
  5. Outputs a complete, professional PRD

The Skills

PM-Skills covers the complete product lifecycle using the Triple Diamond framework (26 phase skills) plus foundation and utility capabilities:

🔍 Discover - Find the right problem

SkillWhat it doesCommand
interview-synthesisTurn user research into actionable insights/interview-synthesis
competitive-analysisMap the landscape, find opportunities/competitive-analysis
stakeholder-summaryUnderstand who matters and what they need/stakeholder-summary

📋 Define - Frame the problem

SkillWhat it doesCommand
problem-statementCrystal-clear problem framing/problem-statement
hypothesisTestable assumptions with success metrics/hypothesis
opportunity-treeTeresa Torres-style outcome mapping/opportunity-tree
jtbd-canvasJobs to be Done framework/jtbd-canvas

💡 Develop - Explore solutions

SkillWhat it doesCommand
solution-briefOne-page solution pitch/solution-brief
spike-summaryDocument technical explorations/spike-summary
adrArchitecture Decision Records (Nygard format)/adr
design-rationaleWhy you made that design choice/design-rationale

🚀 Deliver - Ship it

SkillWhat it doesCommand
prdComprehensive product requirements/prd
user-storiesINVEST-compliant stories with acceptance criteria/user-stories
acceptance-criteriaGiven/When/Then testable scenarios/acceptance-criteria
edge-casesError states, boundaries, recovery paths/edge-cases
launch-checklistNever miss a launch step again/launch-checklist
release-notesUser-facing release communication/release-notes

📊 Measure - Validate with data

SkillWhat it doesCommand
experiment-designRigorous A/B test planning/experiment-design
instrumentation-specEvent tracking requirements/instrumentation-spec
dashboard-requirementsAnalytics dashboard specs/dashboard-requirements
experiment-resultsDocument learnings from experiments/experiment-results
okr-graderScore completed OKR sets at cycle close with KR-level scoring + learning synthesis/okr-grader

🔄 Iterate - Learn and improve

SkillWhat it doesCommand
retrospectiveTeam retros that drive action/retrospective
lessons-logBuild organizational memory/lessons-log
refinement-notesCapture backlog refinement outcomes/refinement-notes
pivot-decisionEvidence-based pivot/persevere framework/pivot-decision

🧭 Foundation - Cross-cutting capability

SkillWhat it doesCommand
personaGenerate product or marketing personas with evidence and confidence/persona
lean-canvasCapture problem, customer segment, value proposition, and key metrics on one page/lean-canvas
okr-writerDraft an objectives-and-key-results plan with tight, measurable key results/okr-writer
stakeholder-updateCompose a stakeholder-facing update from project state and recent activity/stakeholder-update
meeting-agendaDraft a focused agenda from purpose, attendees, and time-box/meeting-agenda
meeting-briefOne-page brief priming attendees with context and pre-reads/meeting-brief
meeting-recapSynthesize a meeting transcript into decisions, actions, and follow-ups/meeting-recap
meeting-synthesizeCross-meeting synthesis distilling themes from multiple sessions/meeting-synthesize

🔧 Utility - Meta-tooling

SkillWhat it doesCommand
pm-skill-builderCreate new PM skills with gap analysis and guided drafting/pm-skill-builder
pm-skill-validateAudit a skill against structural conventions and quality criteria/pm-skill-validate
pm-skill-iterateApply targeted improvements from feedback or validation reports/pm-skill-iterate
mermaid-diagramsCreate syntactically valid mermaid diagrams for product documents/mermaid-diagrams
slideshow-creatorGenerate professional presentations from JSON deck specs/slideshow-creator
update-pm-skillsCheck for updates and update local pm-skills installation/update-pm-skills

Quick Examples

Generate a comprehensive PRD:

/prd "Add real-time collaboration to document editor"

Create user stories from requirements:

/user-stories "Dark mode feature from PRD.md"

Design an A/B test:

/experiment-design "Test impact of simplified onboarding flow"

Document a technical decision:

/adr "Decision to use PostgreSQL for primary database"

Synthesize user research:

/interview-synthesis "5 customer interviews about payment flows"

Workflows

While individual skills are powerful on their own, real product work rarely happens in isolation. Workflows combine multiple skills into guided, end-to-end processes that mirror how experienced product managers actually work.

Each workflow provides a sequence of skills with handoff guidance between steps, ensuring context flows naturally from discovery through delivery. Workflows are opinionated-they encode PM best practices about which artifacts to create and in what order.

Don't know where to start? Use a workflow:

WorkflowBest forSkills included
Feature KickoffNew featuresproblem-statement → hypothesis → prd → user-stories → launch-checklist
Lean StartupRapid validationhypothesis → experiment-design → experiment-results → pivot-decision
Triple DiamondMajor initiativesFull 26 phase-skill flow across 6 phases
Customer DiscoveryResearch synthesisTransform raw research into a validated problem
Sprint PlanningSprint prepPrepare sprint-ready stories from a backlog
Product StrategyStrategic initiativesFrame a major strategic initiative
Post-Launch LearningPost-launchMeasure results and capture learnings after launch
Stakeholder AlignmentLeadership buy-inBuild a case for leadership buy-in
Technical DiscoveryTech feasibilityEvaluate technical feasibility and architecture

Workflow Examples

For new features, use the Feature Kickoff workflow:

/workflow-feature-kickoff "Mobile push notifications"

This automatically executes:

  1. problem-statement - Frame the problem
  2. hypothesis - Define testable assumptions
  3. prd - Create comprehensive requirements
  4. user-stories - Generate implementation stories
  5. launch-checklist - Plan the launch

For rapid validation, use the Lean Startup workflow:

Build → Measure → Learn cycle with hypothesis, experiments, and pivot decisions

For major initiatives, use the Triple Diamond workflow:

Complete product development across all 6 phases and 26 phase skills

For detailed skill documentation and examples, see the skills/ directory.

(back to top)


Project Status

Project Structure

pm-skills/
├── skills/                     # 40 PM skills (26 phase + 8 foundation + 6 utility)
├── commands/                   # Slash commands (47) mapping to skills/workflows
├── _workflows/                 # 9 workflows: feature-kickoff, lean-startup, triple-diamond, and 6 more
├── library/                    # Sample output library (skill-output-samples) and related corpus docs
├── scripts/                    # sync-claude.(sh|ps1), build-release.(sh|ps1), validate-commands.(sh|ps1)
├── .github/                    # CI workflows + automation scripts (validate-mcp-sync)
├── docs/                       # Documentation and guides
│   ├── getting-started/        # Setup guides (index + quickstart)
│   ├── guides/                 # How-to guides (using-skills.md, creating-pm-skills.md, mcp-integration.md)
│   ├── reference/              # Technical specs (categories.md, ecosystem.md, project-structure.md)
│   └── templates/              # Skill template (SKILL.md, TEMPLATE.md, EXAMPLE.md)
├── AGENTS.md                   # Universal agent discovery file
├── CONTRIBUTING.md             # Contribution guidelines
└── CHANGELOG.md                # Version history

See docs/reference/project-structure.md for detailed descriptions.

Previous Release Details

v2.9.0 - Workflows: rename + expansion (3 → 9)
  • BREAKING: Renamed _bundles/_workflows/ and docs/bundles/docs/workflows/
  • BREAKING: /kickoff command replaced by /workflow-feature-kickoff
  • 6 new workflows: Customer Discovery, Sprint Planning, Product Strategy, Post-Launch Learning, Stakeholder Alignment, Technical Discovery
  • 7 /workflow-* slash commands (1 renamed + 6 new)
  • New script: scripts/generate-workflow-pages.py . generates docs site pages from source workflows
  • URL redirects for old /bundles/* doc site paths via mkdocs-redirects
  • Terminology guard: scripts/check-stale-bundle-refs.sh/.ps1 prevents regression
  • v2.9.0: Repo now ships 31 skills, 38 command docs, and 9 workflows.
  • Release note: docs/releases/Release_v2.9.0.md.
v2.8.0 - PM skill lifecycle: Create, Validate, Iterate
  • New skill: utility-pm-skill-validate (/pm-skill-validate) . audits a skill against structural conventions and quality criteria, producing a severity-graded validation report.
  • New skill: utility-pm-skill-iterate (/pm-skill-iterate) . applies targeted improvements based on feedback or validation reports, with before/after previews and version bump suggestions.
  • New CI: validate-skill-history and validate-skills-manifest advisory scripts for skill versioning governance.
  • New guide: docs/pm-skill-lifecycle.md . workflow patterns for the Create → Validate → Iterate lifecycle.
  • Governance: docs/internal/skill-versioning.md . SemVer rules, HISTORY.md contract, skills-manifest.yaml format.
  • v2.8.0: Repo now ships 29 skills, 30 command docs, and 3 workflows.
  • Release note: docs/releases/Release_v2.8.0.md.
v2.7.0 - Utility skills, enhanced CI, and release packaging hygiene
  • New skill: deliver-acceptance-criteria . Given/When/Then acceptance criteria for stories and features.
  • New skill: utility-pm-skill-builder . first utility-classified skill; interactive builder for creating new PM skills with gap analysis, classification, and draft file generation.
  • Enhanced CI: extended frontmatter linter, AGENTS.md sync validator, MCP impact detection.
  • Release packaging: docs/internal/** excluded from published ZIPs while staying tracked in-repo.
  • Documentation: new docs/pm-skill-anatomy.md guide, comprehensive public docs refresh.
  • v2.7.0: Repo now ships 27 skills, 28 command docs, and 3 workflows.
  • Release note: docs/releases/Release_v2.7.0.md.
v2.6.x - Claude plugin packaging + sample library recovery

v2.6.1 . Sample library recovery and packaging inclusion:

  • Restored and normalized the shipped sample-output corpus under library/skill-output-samples/.
  • Added sample-library staging to release packagers so ZIP artifacts include sample outputs.
  • Release note: docs/releases/Release_v2.6.1.md.

v2.6.0 . Claude plugin packaging release:

  • Added Claude plugin manifest support via .claude-plugin/plugin.json.
  • Release packaging now includes .claude-plugin/ and enforces plugin-manifest version alignment with the release version.
  • Release note: docs/releases/Release_v2.6.0.md.
v2.5.x - Persona skill + foundation/utility taxonomy

v2.5.2 . Public release-doc readability and hygiene:

  • Public release docs rewritten in user-first language.
  • No skill, command, template, or workflow behavior changes.
  • Release note: docs/releases/Release_v2.5.2.md.

v2.5.1 . Agent workspace canonicalization:

  • Canonical AGENTS/claude workspace + clean-worktree cut/tag/publish runbook.
  • Release note: see CHANGELOG.md.

v2.5.0 . Persona + foundation/utility + sample library:

  • Persona skill shipment + foundation/utility taxonomy + sample output library.
  • Content-alignment checks for the sample library complete and documented.
  • Release note: docs/releases/Release_v2.5.0.md.
v2.4.x - Contract lock closure + governance

v2.4.3 . Release metadata/link alignment patch. v2.4.2 . Governance and tracked-vs-local artifact hygiene. v2.4.1 . Docs/release alignment follow-up. v2.4.0 . Output and configuration contract lock closure.

  • Release notes: docs/releases/Release_v2.4.md through Release_v2.4.3.md.
v2.2.0 to v2.3.0 - MCP sync guardrails + governance baseline

v2.3.0 . MCP sync guardrail defaults to blocking mode. v2.2.0 . Cross-repo sync checker (observe mode), planning/backlog governance.

  • Release notes: docs/releases/Release_v2.2.md, Release_v2.3.md.
v2.0.x and earlier

v2.0.x . Flat skill layout (skills/{phase-skill}/), sync helpers, build scripts, docs refresh. v1.x . Security hardening, CI governance, documentation baseline, slash-command completion. v0.x . Initial repository scaffolding and early phased skill build-out.

  • See CHANGELOG.md for dated release-by-release detail.

Changelog

See CHANGELOG.md for full details.

VersionDateHighlights
2.9.02026-04-06Workflows: rename bundles → workflows + expand 3 → 9, 7 /workflow-* commands, URL redirects
2.8.22026-04-04Docs site polish + versioning concepts page
2.8.12026-04-04MkDocs Material documentation site launch
2.8.02026-04-03PM skill lifecycle: pm-skill-validate, pm-skill-iterate, lifecycle guide, skill versioning
2.7.02026-03-22Utility skills (pm-skill-builder), acceptance-criteria skill, enhanced CI, release packaging hygiene, docs refresh
2.6.12026-03-04Sample-library recovery, naming/path normalization, and release ZIP inclusion
2.6.02026-03-04Claude plugin packaging release with staged manifest version checks
2.5.22026-03-04Public release-doc readability and hygiene patch (user-first wording, no local-only path references)
2.5.12026-03-04Canonical AGENTS/claude workspace + clean-worktree cut/tag/publish runbook
2.5.02026-03-02Persona skill shipment + foundation/utility taxonomy + sample-library quality closure
2.4.32026-02-16Patch release to include post-v2.4.2 documentation/release-link updates
2.4.22026-02-16Governance/artifact-placement patch + v2.5 continuity kickoff docs
2.4.12026-02-16Docs/release-alignment patch follow-up (no contract behavior changes)
2.4.02026-02-16Output and configuration contract lock closure + release cut
2.3.02026-02-13MCP alignment closure + blocking-default sync guardrail
2.2.02026-02-13MCP drift guardrail (observe mode), planning/backlog governance, release execution checklists
2.1.02026-01-27MCP alignment milestone documentation update
2.0.02026-01-26Flat skills/{phase-skill}/, sync helpers, build scripts, docs refresh
1.2.02026-01-20Security policy, CodeQL scanning, Dependabot, issue/PR templates
1.1.12026-01-20openskills#48 fix verified, CODE_OF_CONDUCT, open-skills submissions
1.1.02026-01-16Documentation overhaul, README redesign, FAQ, collapsible TOC
1.0.12026-01-15Slash-command baseline completion for the initial shipped skill set
1.0.02026-01-14First stable Triple Diamond baseline, workflows, and AGENTS.md
0.3.02026-01-14P1 skill-lane expansion and GitHub Actions workflow setup
0.2.02026-01-14P0 core-skill baseline and early project structure
0.1.02026-01-14Initial project structure, foundation infrastructure

(back to top)

Milestones

Maintenance milestone documentation:

Roadmap

See the open issues for a full list of proposed features and known issues.

  • Launch with 32 shipped skills (25 phase skills + 1 foundation skill + 6 utility skills)
  • Add workflows (Feature Kickoff, Lean Startup, Triple Diamond)
  • GitHub Copilot, Cursor, and Windsurf integration via AGENTS.md
  • Slash commands for Claude Code
  • Apache 2.0 license for commercial use
  • openskills CLI support (#48 resolved in v1.3.1)
  • pm-skills-mcp package (https://github.com/product-on-purpose/pm-skills-mcp) with v2.4 direct-version-tracking milestone documented
  • v2.2 guardrails release: observe-first cross-repo sync validation + planning/backlog governance
  • v2.4 contract lock release: output behavior and configuration contracts closed and validated

In Progress

  • Documentation, examples, and ecosystem polish for shipped surfaces
  • Contributor-facing guidance and schema alignment follow-up

Backlog / Considering

  • New skills?! Which?
  • Community skill contributions and marketplace
  • Skill versioning and compatibility tracking
  • Additional workflows (shipped in v2.9.0)
    • Product Strategy workflow
    • Customer Discovery workflow
    • Stakeholder Alignment workflow
    • Sprint Planning workflow
    • Post-Launch Learning workflow
    • Technical Discovery workflow
  • Multi-language support
    • Spanish translations
    • Portuguese translations
    • French translations
  • Integration guides for additional AI assistants
    • Gemini integration
    • ChatGPT Plus integration
  • Advanced features
    • Skill composition and chaining
    • Custom skill templates
    • Team-specific skill customization

Top Feature Requests

Coming soon

Top Bugs

Coming soon

(back to top)


Contributing

Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make will benefit everybody else and are greatly appreciated.

How to Contribute

Quick contribution steps:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingSkill)
  3. Commit your Changes using Conventional Commits (git commit -m 'feat: add amazing skill')
  4. Push to the Branch (git push origin feature/AmazingSkill)
  5. Open a Pull Request

Please read our CONTRIBUTING.md for detailed guidelines on:

  • Code of conduct
  • Development process
  • Skill contribution guidelines
  • Testing requirements
  • Documentation standards

Reporting Bugs

Please try to create bug reports that are:

  • Reproducible - Include steps to reproduce the problem
  • Specific - Include as much detail as possible (version, environment, etc.)
  • Unique - Do not duplicate existing opened issues
  • Scoped - One bug per report

(back to top)


FAQ

Do I need to install all 40 skills?

No! You can use individual skills as needed. Each skill is self-contained and works independently. If you only need PRDs, just reference the skills/deliver-prd/ skill. The workflows are optional guides, not requirements.

Can I use PM-Skills with ChatGPT?

Yes, with some limitations. You can copy the contents of any SKILL.md file into your ChatGPT conversation as context. However, ChatGPT doesn't support the Agent Skills Specification natively, so you won't get automatic skill discovery or slash commands. For the best experience, we recommend Claude, GitHub Copilot, Cursor, or Windsurf.

How do I customize a skill for my team?

Fork the repository and modify the SKILL.md, TEMPLATE.md, or EXAMPLE.md files to match your team's standards. You can add company-specific sections, change terminology, or adjust the output format. The Apache 2.0 license allows commercial use and modification.

What's the difference between skills and workflows?

Skills are atomic units-each produces one PM artifact (a PRD, a hypothesis, user stories, etc.). Workflows chain multiple skills together in a recommended sequence. Use skills when you need a specific output; use workflows when you want guided end-to-end processes.

Why doesn't PM-Skills work with openskills CLI?

The openskills CLI discovers skills in .claude/skills/ directories. PM-Skills now ships flat skills/{phase-skill}/ plus foundation capabilities and a sync helper that populates .claude/skills/ locally. Clone the repo, run ./scripts/sync-claude.sh (or .ps1), and openskills/Claude Code will discover all shipped skills.

Can I contribute new skills?

Absolutely! Check out our authoring guide for the full process. We use a curated contribution model-submit a proposal via GitHub issue first, then create your skill following our template structure. All contributions are reviewed for quality and alignment with PM best practices.

How do slash commands work in Claude Code?

Slash commands (like /prd or /hypothesis) are shortcuts that invoke the corresponding skill. When you type /prd \"my feature\", Claude Code reads the skill instructions from skills/deliver-prd/SKILL.md and generates output following the template. No additional setup required-the commands are defined in the commands/ directory.

What's the difference between pm-skills and pm-skills-mcp?

pm-skills (this repo) is the source skill library with all 40 PM skills as markdown files. It's best for Claude Code slash commands, file browsing, and customization.

pm-skills-mcp wraps these same skills in an MCP server for programmatic access. It's best for Claude Desktop, Cursor, and any MCP-compatible client.

Both give you access to identical skills.choose based on your preferred client and workflow. See the Ecosystem Overview for a detailed comparison.

(back to top)


About

Author

Created by Jonathan Prisant

Howdy, I'm Jonathan Prisant, a product leader/manager/nerd in the church technology space who gets unreasonably excited about understanding + solving problems, serving humans, designing elegant systems, and getting stuff done. I enjoy optimizing and scaling workflows more than is probably healthy... NOT because I'm particularly fond of "business process definition", but because I think in systems and value the outcomes of increased "effectiveness and efficiency" (i.e. doing less of the boring work and more of the work I actually enjoy).

I am a follower of Jesus Christ, grateful husband to my beloved, proud (and exhausted) daddy, D&D geek, 3d printing enthusiast, formerly-consistent strength trainer, smart home enthusiast, insatiable learner, compulsive tech-experimenter, writer-of-words that aggregate into sentences and paragraphs, and a bunch of other stuff too. I have too many projects going on across too many domains and need better self control, but hopefully you find this open-source repo helpful and useful.

If PM-Skills has helped you ship better products, consider giving the repo a star and sharing it with your team.

License

Distributed under the Apache License 2.0. See LICENSE for more information.

This means you can:

  • Use PM-Skills commercially
  • Modify and distribute
  • Use privately
  • Include in proprietary software

The only requirements are attribution and including the license notice.

(back to top)


Community

Have ideas for making PM-Skills even better? Here are some ways to contribute and connect:

Feature Ideas

Skill Contributions

Spread the Word

  • Give the repo a star if you find it useful
  • Share PM-Skills on Twitter, LinkedIn, or your favorite PM community
  • Write a blog post about how you use PM-Skills in your workflow

Feedback


Built with purpose by Product on Purpose
Helping teams ship better products with AI-powered PM workflows

(back to top)