/competitive-research
Produce a sourced competitive matrix for a focused research question
$ npx -y skills add aleksander-dytko/ai-pm-workspace --skill competitive-research --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/competitive-research
Context preview
The summary Claude sees to decide when to auto-load this skill.
Produce a sourced competitive matrix for a focused research question
SKILL.md
competitive-research.SKILL.mdname: competitive-research
description: Produce a sourced competitive matrix for a focused research question
argument-hint: "[research topic or path to a research-prompt file]"
Competitive Research
You help produce a sourced competitive matrix for a focused research question. The output is a markdown table plus sourced observations, landed in `research/`.
Input
The user provides via `$ARGUMENTS`:
- A short research topic (e.g., "how competitors handle first-time user onboarding"), OR
- A path to a research-prompt file (e.g., `samples/sample-competitor-prompt.md`)
Workflow
1. Read the prompt
If `$ARGUMENTS` is a file path, read it. Otherwise use the prompt directly.
**Extract (or ask in one round)**:
- **Research topic** - the question.
- **Scope** - which competitors (direct / adjacent / aspirational), any exclusions.
- **Questions** - 3-7 specific things you want answered.
- **Deliverable format** - matrix (rows = products, columns = questions) by default.
- **Timeline and non-goals**.
If any of these are missing, ask the user in ONE `AskUserQuestion` round. Skip any that are clear.
2. Pick the competitor set
If the user provided competitors, use them. Otherwise suggest a set and confirm:
- **Direct**: 2-3 products in the same pricing tier and feature surface as your own (list your company's known competitors from `CLAUDE.md` or ask).
- **Adjacent / aspirational**: 1-2 products in related spaces known for excellent practice in the research topic.
- **Exclude**: tools clearly out of scope.
Confirm the list with the user before proceeding.
3. Gather observations (sourced)
For each product, for each research question, gather observations. Use available tools:
- **WebFetch / WebSearch** for public product docs, blog posts, marketing pages, changelog posts, and product-hunt-style coverage.
- **Any documentation MCP** your environment has configured (check the `MCP Servers Available` section of `CLAUDE.md`).
- **Internal research notes** in `Loose Notes/Work/` that mention the competitor by name.
**Rules for observations**:
- **Sourced**: every observation has a URL or an internal note reference. No "I think they probably...".
- **Observed vs. inferred**: mark each cell as `observed:` (you can point to a specific page/screenshot) or `inferred:` (your reasoning based on other evidence).
- **Date-stamped**: competitive landscapes move fast. Note the date of the source when it's older than 6 months.
4. Build the matrix
Produce a markdown table:
| Product | Q1 | Q2 | Q3 | ... | |---------|----|----|----|-----| | Competitor A | observed: [fact] - [link] | inferred: [reasoning] | ... | ... | | Competitor B | ... | ... | ... | ... |
Cells can be long. Keep them scannable but informative.
5. Summarize the landscape
Below the matrix, write a 3-5 paragraph synthesis:
- **Common patterns**: what do all / most of the competitors do similarly?
- **Divergences**: where do they differ meaningfully, and why?
- **Outliers**: any surprising approaches worth investigating further.
- **Implications for us**: how this should inform our decision (without prescribing a specific solution yet).
6. Note methodology and limits
A short section at the end:
- **Sources consulted**: docs, blog posts, pricing pages, external analyses.
- **Gaps**: what you couldn't find out (and would need a customer conversation or a demo account to verify).
- **Confidence**: where you're confident in observations vs. where you're inferring.
7. File location and naming
- **Folder**: `research/`. Create if it doesn't exist.
- **Filename**: `YYYY-MM-DD - Competitive - [Topic slug].md`. Example: `2026-04-20 - Competitive - Onboarding UX.md`.
- **Frontmatter**: `tags: Research, Competitive`, `created: YYYY-MM-DD`.
8. Link the research
- **Daily journal**: under `## Notes`.
- **Related epic** (if any): add a link in that epic's `## Breakdown > Explore` section.
9. Output summary
✅ Research: [[YYYY-MM-DD - Competitive - Topic]]
✅ Linked in today's journal
Products compared: [N]
Questions answered: [N]
Sources cited: [N]
Gaps flagged: [N]
💡 Key pattern: [One-line top insight]
Next step: run `/opportunity-solution-tree` to convert insights into opportunities.
Notes
- **Sourced over speculative.** If you can't find evidence, say so.
- **A matrix is a structure, not a verdict.** Don't prescribe "we should do X because Competitor Y does it."
- **Competitive research ages fast.** Add the source date for anything older than 6 months. A year-old blog post about a product's onboarding is probably wrong now.
- **The Extended Opportunity Solution Tree framework** pairs well with this - use `/opportunity-solution-tree` next to turn patterns into opportunity hypotheses.
Read more
name: competitive-research description: Produce a sourced competitive matrix for a focused research question argument-hint: "[research topic or path to a research-prompt file]"
Competitive Research
You help produce a sourced competitive matrix for a focused research question. The output is a markdown table plus sourced observations, landed in `research/`.
Input
The user provides via `$ARGUMENTS`:
- A short research topic (e.g., "how competitors handle first-time user onboarding"), OR
- A path to a research-prompt file (e.g., `samples/sample-competitor-prompt.md`)
Workflow
1. Read the prompt
If `$ARGUMENTS` is a file path, read it. Otherwise use the prompt directly.
**Extract (or ask in one round)**:
- **Research topic** - the question.
- **Scope** - which competitors (direct / adjacent / aspirational), any exclusions.
- **Questions** - 3-7 specific things you want answered.
- **Deliverable format** - matrix (rows = products, columns = questions) by default.
- **Timeline and non-goals**.
If any of these are missing, ask the user in ONE `AskUserQuestion` round. Skip any that are clear.
2. Pick the competitor set
If the user provided competitors, use them. Otherwise suggest a set and confirm:
- **Direct**: 2-3 products in the same pricing tier and feature surface as your own (list your company's known competitors from `CLAUDE.md` or ask).
- **Adjacent / aspirational**: 1-2 products in related spaces known for excellent practice in the research topic.
- **Exclude**: tools clearly out of scope.
Confirm the list with the user before proceeding.
3. Gather observations (sourced)
For each product, for each research question, gather observations. Use available tools:
- **WebFetch / WebSearch** for public product docs, blog posts, marketing pages, changelog posts, and product-hunt-style coverage.
- **Any documentation MCP** your environment has configured (check the `MCP Servers Available` section of `CLAUDE.md`).
- **Internal research notes** in `Loose Notes/Work/` that mention the competitor by name.
**Rules for observations**:
- **Sourced**: every observation has a URL or an internal note reference. No "I think they probably...".
- **Observed vs. inferred**: mark each cell as `observed:` (you can point to a specific page/screenshot) or `inferred:` (your reasoning based on other evidence).
- **Date-stamped**: competitive landscapes move fast. Note the date of the source when it's older than 6 months.
4. Build the matrix
Produce a markdown table:
| Product | Q1 | Q2 | Q3 | ... | |---------|----|----|----|-----| | Competitor A | observed: [fact] - [link] | inferred: [reasoning] | ... | ... | | Competitor B | ... | ... | ... | ... |
Cells can be long. Keep them scannable but informative.
5. Summarize the landscape
Below the matrix, write a 3-5 paragraph synthesis:
- **Common patterns**: what do all / most of the competitors do similarly?
- **Divergences**: where do they differ meaningfully, and why?
- **Outliers**: any surprising approaches worth investigating further.
- **Implications for us**: how this should inform our decision (without prescribing a specific solution yet).
6. Note methodology and limits
A short section at the end:
- **Sources consulted**: docs, blog posts, pricing pages, external analyses.
- **Gaps**: what you couldn't find out (and would need a customer conversation or a demo account to verify).
- **Confidence**: where you're confident in observations vs. where you're inferring.
7. File location and naming
- **Folder**: `research/`. Create if it doesn't exist.
- **Filename**: `YYYY-MM-DD - Competitive - [Topic slug].md`. Example: `2026-04-20 - Competitive - Onboarding UX.md`.
- **Frontmatter**: `tags: Research, Competitive`, `created: YYYY-MM-DD`.
8. Link the research
- **Daily journal**: under `## Notes`.
- **Related epic** (if any): add a link in that epic's `## Breakdown > Explore` section.
9. Output summary
✅ Research: [[YYYY-MM-DD - Competitive - Topic]] ✅ Linked in today's journal Products compared: [N] Questions answered: [N] Sources cited: [N] Gaps flagged: [N] 💡 Key pattern: [One-line top insight] Next step: run `/opportunity-solution-tree` to convert insights into opportunities.
Notes
- **Sourced over speculative.** If you can't find evidence, say so.
- **A matrix is a structure, not a verdict.** Don't prescribe "we should do X because Competitor Y does it."
- **Competitive research ages fast.** Add the source date for anything older than 6 months. A year-old blog post about a product's onboarding is probably wrong now.
- **The Extended Opportunity Solution Tree framework** pairs well with this - use `/opportunity-solution-tree` next to turn patterns into opportunity hypotheses.
A structured, Claude-Code-ready workspace for product managers, designers, and other PM-adjacent roles. Your notes become the persistent memory; Claude Code becomes the executor. This is a template.
Other skills on ai-pm-workspace.
- /communicate
Draft a professional communication (Slack, email, or async doc) with context from the vault
Open skill - /create-epic
Turn an idea into a structured epic draft using templates/epic-template.md
Open skill - /decision
Make a product decision with full context from the vault and available sources
Open skill - /guide
Interactive 8-module learning path for the shipped skills, role-adaptive
Open skill - /meeting
Process raw meeting notes into structured meeting note with in-repo tasks
Open skill - /opportunity-solution-tree
Structure product discovery with Teresa Torres' Opportunity Solution Tree - outcome, opportunities, solutions, experiments
Open skill

