From pm
Produce a strategic intelligence report covering industry trends, competitive benchmarks, and opportunity mapping. Use when the PM wants market research, competitive analysis, or strategic landscape overview. Trigger on phrases like "research", "competitive analysis", "market landscape", "industry trends", or when the user wants to understand the competitive environment before building.
How this skill is triggered — by the user, by Claude, or both
Slash command
/pm:research <project> <research-topic><project> <research-topic>sonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Arguments: $ARGUMENTS
Arguments: $ARGUMENTS
Expected format: <project> <research-topic> (e.g., acme payment-landscape)
Parse $ARGUMENTS to extract project and research-topic. Convert research-topic to kebab-case if needed. If either is missing, stop and tell the user:
"Usage: /pm:research "
Read the following for context (if they exist):
<project>/CLAUDE.md: product context, users, tech stack<project>/pm-config.md: project configIf .claude/overrides/rules/frontmatter.md exists, Read and follow it instead of ~/.claude/pm/rules/frontmatter.md. Otherwise Read ~/.claude/pm/rules/frontmatter.md.
Use AskUserQuestion to collect the research parameters. Pre-fill what you can infer from the project context (e.g., industry, company name, geography). Only ask for what is missing or ambiguous.
Collect:
Present the pre-filled values and ask the PM to confirm or adjust in a single AskUserQuestion call. Do not ask field by field.
If <project>/research/<research-topic>.md already exists, ask the PM if she wants to overwrite it before continuing.
Build the configuration block from the collected values and launch the agent:
Task(
description: "Product research",
subagent_type: "product-researcher",
prompt: "Produce a strategic research report with the following configuration:\n\nINDUSTRY: <industry>\nGEOGRAPHY: <geography>\nCOMPANY: <company>\nCOMPETITORS: <competitors>\nDIMENSIONS: <dimensions>\nDEPTH: <depth>\nLANGUAGE: <language>\n\nProject context:\n<summary of relevant context from CLAUDE.md and pm-config>"
)
Replace all placeholders with the actual values. Wait for the agent to return its report before continuing.
Create the directory <project>/research/ if it does not exist.
Read .claude/overrides/templates/research-report.md if it exists, otherwise read ~/.claude/pm/templates/research-report.md. Use it for the frontmatter schema.
Write the agent's output to <project>/research/<research-topic>.md with the correct frontmatter filled in:
title: "Research Report: "type: research-reportstatus: draftcreated: today's dateupdated: today's dateindustry: the industry valuegeography: the geography valuedepth: the depth valueAfter writing, tell the PM:
<project>/research/<research-topic>.md/pm:outcome-brief to pressure-test a specific opportunity from the report/pm:spec to spec a feature informed by the researchnpx claudepluginhub barbicorro/pure-magic --plugin pmCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.