$npx -y skills add aleksander-dytko/ai-pm-workspace --skill competitive-researchProduce a sourced competitive matrix for a focused research question
| 1 | # Competitive Research |
| 2 | |
| 3 | You help produce a sourced competitive matrix for a focused research question. The output is a markdown table plus sourced observations, landed in `research/`. |
| 4 | |
| 5 | ## Input |
| 6 | |
| 7 | The user provides via `$ARGUMENTS`: |
| 8 | - A short research topic (e.g., "how competitors handle first-time user onboarding"), OR |
| 9 | - A path to a research-prompt file (e.g., `samples/sample-competitor-prompt.md`) |
| 10 | |
| 11 | ## Workflow |
| 12 | |
| 13 | ### 1. Read the prompt |
| 14 | |
| 15 | If `$ARGUMENTS` is a file path, read it. Otherwise use the prompt directly. |
| 16 | |
| 17 | **Extract (or ask in one round)**: |
| 18 | - **Research topic** - the question. |
| 19 | - **Scope** - which competitors (direct / adjacent / aspirational), any exclusions. |
| 20 | - **Questions** - 3-7 specific things you want answered. |
| 21 | - **Deliverable format** - matrix (rows = products, columns = questions) by default. |
| 22 | - **Timeline and non-goals**. |
| 23 | |
| 24 | If any of these are missing, ask the user in ONE `AskUserQuestion` round. Skip any that are clear. |
| 25 | |
| 26 | ### 2. Pick the competitor set |
| 27 | |
| 28 | If the user provided competitors, use them. Otherwise suggest a set and confirm: |
| 29 | |
| 30 | - **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). |
| 31 | - **Adjacent / aspirational**: 1-2 products in related spaces known for excellent practice in the research topic. |
| 32 | - **Exclude**: tools clearly out of scope. |
| 33 | |
| 34 | Confirm the list with the user before proceeding. |
| 35 | |
| 36 | ### 3. Gather observations (sourced) |
| 37 | |
| 38 | For each product, for each research question, gather observations. Use available tools: |
| 39 | |
| 40 | - **WebFetch / WebSearch** for public product docs, blog posts, marketing pages, changelog posts, and product-hunt-style coverage. |
| 41 | - **Any documentation MCP** your environment has configured (check the `MCP Servers Available` section of `CLAUDE.md`). |
| 42 | - **Internal research notes** in `Loose Notes/Work/` that mention the competitor by name. |
| 43 | |
| 44 | **Rules for observations**: |
| 45 | - **Sourced**: every observation has a URL or an internal note reference. No "I think they probably...". |
| 46 | - **Observed vs. inferred**: mark each cell as `observed:` (you can point to a specific page/screenshot) or `inferred:` (your reasoning based on other evidence). |
| 47 | - **Date-stamped**: competitive landscapes move fast. Note the date of the source when it's older than 6 months. |
| 48 | |
| 49 | ### 4. Build the matrix |
| 50 | |
| 51 | Produce a markdown table: |
| 52 | |
| 53 | | Product | Q1 | Q2 | Q3 | ... | |
| 54 | |---------|----|----|----|-----| |
| 55 | | Competitor A | observed: [fact] - [link] | inferred: [reasoning] | ... | ... | |
| 56 | | Competitor B | ... | ... | ... | ... | |
| 57 | |
| 58 | Cells can be long. Keep them scannable but informative. |
| 59 | |
| 60 | ### 5. Summarize the landscape |
| 61 | |
| 62 | Below the matrix, write a 3-5 paragraph synthesis: |
| 63 | |
| 64 | - **Common patterns**: what do all / most of the competitors do similarly? |
| 65 | - **Divergences**: where do they differ meaningfully, and why? |
| 66 | - **Outliers**: any surprising approaches worth investigating further. |
| 67 | - **Implications for us**: how this should inform our decision (without prescribing a specific solution yet). |
| 68 | |
| 69 | ### 6. Note methodology and limits |
| 70 | |
| 71 | A short section at the end: |
| 72 | |
| 73 | - **Sources consulted**: docs, blog posts, pricing pages, external analyses. |
| 74 | - **Gaps**: what you couldn't find out (and would need a customer conversation or a demo account to verify). |
| 75 | - **Confidence**: where you're confident in observations vs. where you're inferring. |
| 76 | |
| 77 | ### 7. File location and naming |
| 78 | |
| 79 | - **Folder**: `research/`. Create if it doesn't exist. |
| 80 | - **Filename**: `YYYY-MM-DD - Competitive - [Topic slug].md`. Example: `2026-04-20 - Competitive - Onboarding UX.md`. |
| 81 | - **Frontmatter**: `tags: Research, Competitive`, `created: YYYY-MM-DD`. |
| 82 | |
| 83 | ### 8. Link the research |
| 84 | |
| 85 | - **Daily journal**: under `## Notes`. |
| 86 | - **Related epic** (if any): add a link in that epic's `## Breakdown > Explore` section. |
| 87 | |
| 88 | ### 9. Output summary |
| 89 | |
| 90 | ``` |
| 91 | ✅ Research: [[YYYY-MM-DD - Competitive - Topic]] |
| 92 | ✅ Linked in today's journal |
| 93 | |
| 94 | Products compared: [N] |
| 95 | Questions answered: [N] |
| 96 | Sources cited: [N] |
| 97 | Gaps flagged: [N] |
| 98 | |
| 99 | 💡 Key pattern: [One-line top insight] |
| 100 | |
| 101 | Next step: run `/opportunity-solution-tree` to convert insights into opportunities. |
| 102 | ``` |
| 103 | |
| 104 | ## Notes |
| 105 | |
| 106 | - **Sourced over speculative.** If you can't find evidence, say so. |
| 107 | - **A matrix is a structure, not a verdict.** Don't prescribe "we should do X because Competitor Y does it." |
| 108 | - **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. |
| 109 | - **The Extended Opportunity Solution Tree framework** pairs well with this - use `/opportunity-solution-tree` next to turn patterns into opportunity hypotheses. |