solo-research
npx skills add https://github.com/fortunto2/solo-factory --skill solo-research
Agent 安装分布
Skill 文档
/research
Deep research before PRD generation. Produces a structured research.md with competitive analysis, user pain points, SEO/ASO keywords, naming/domain options, and market sizing.
MCP Tools (use if available)
If MCP tools are available, prefer them over CLI:
kb_search(query, n_results)â search knowledge base for related docsweb_search(query, engines, include_raw_content)â SearXNG web search with engine routingsession_search(query, project)â find how similar research was done beforeproject_info(name)â check project details
MCP web_search supports engine override: engines="reddit", engines="youtube", etc.
If MCP tools are not available, use Claude WebSearch/WebFetch as fallback.
Search Strategy: Hybrid (SearXNG + Claude WebSearch)
Use both backends together. Each has strengths:
| Step | Best backend | Why |
|---|---|---|
| Competitors | Claude WebSearch + site:producthunt.com + site:g2.com |
Broad discovery + Product Hunt + B2B reviews |
| Reddit / Pain points | SearXNG engines: reddit (or MCP web_search) |
PullPush API, selftext in content |
| YouTube reviews | SearXNG engines: youtube + /transcript |
Video reviews (views = demand) |
| Market size | Claude WebSearch | Synthesizes numbers from 10 sources |
| SEO / ASO | Claude WebSearch | Broader coverage, trend data |
| Page scraping | SearXNG include_raw_content |
Up to 5000 chars of page content |
| Hacker News | SearXNG site:news.ycombinator.com |
Via Google (native HN engine broken) |
| Funding / Companies | SearXNG site:crunchbase.com |
Competitor funding, team size |
SearXNG Availability
If MCP web_search is available, use it (it wraps SearXNG).
Otherwise, check local availability:
curl -sf http://localhost:8013/health && echo "searxng_ok" || echo "searxng_down"
If unavailable â use Claude WebSearch for everything.
SearXNG via curl (when MCP not available)
# General query
curl -s -X POST 'http://localhost:8013/search' \
-H 'Content-Type: application/json' \
-d '{"query": "<query>", "max_results": 10, "include_raw_content": true}'
# Force Reddit only
curl -s -X POST 'http://localhost:8013/search' \
-H 'Content-Type: application/json' \
-d '{"query": "<query>", "max_results": 10, "engines": "reddit", "include_raw_content": true}'
# YouTube transcript
curl -s -X POST 'http://localhost:8013/transcript' \
-H 'Content-Type: application/json' \
-d '{"video_id": "<VIDEO_ID_or_URL>", "max_length": 5000}'
Steps
-
Parse the idea from
$ARGUMENTS. If empty, ask the user what idea they want to research. -
Ask product type â ask the user:
- Web app / Mobile (iOS) / Mobile (Android) / Desktop / CLI / API
- This determines which research sections apply (ASO for mobile, SEO for web, etc.)
-
Search knowledge base for existing related content:
- If MCP
kb_searchavailable:kb_search(query="<idea keywords>", n_results=5) - Otherwise: Grep for keywords in
.mdfiles - Check if
research.mdorprd.mdalready exist for this idea.
- If MCP
-
Competitive analysis â use Claude WebSearch (primary) + SearXNG (scraping):
"<idea> competitors alternatives 2026"â broad discovery"<idea> app review pricing"â pricing data- SearXNG
include_raw_content=true: scrape competitor URLs for detailed pricing - SearXNG/MCP
engines: reddit:"<idea> vs"â user opinions "site:producthunt.com <idea>"â Product Hunt launches"site:g2.com <idea>"or"site:capterra.com <idea>"â B2B reviews"site:crunchbase.com <competitor>"â funding, team size- For each competitor extract: name, URL, pricing, key features, weaknesses
-
User pain points â use SearXNG reddit (primary) + YouTube + Claude WebSearch:
- SearXNG/MCP
engines: reddit:"<problem>"â Reddit via PullPush API - SearXNG/MCP
engines: youtube:"<problem> review"â video reviews - SearXNG
/transcript: extract subtitles from top 2-3 YouTube videos "site:news.ycombinator.com <problem>"â Hacker News opinions- Claude WebSearch:
"<problem> frustrating OR annoying"â broader sweep - Synthesis: top 5 pain points with quotes and source URLs
- SearXNG/MCP
-
SEO / ASO analysis (depends on product type from step 2):
For web apps:
"<competitor> SEO keywords ranking"â competitor keywords"<problem domain> search volume trends 2026"â demand signals- SearXNG
include_raw_content: scrape competitor pages for meta tags - Result: keyword table (keyword, intent, competition, relevance)
For mobile apps:
"<category> App Store top apps keywords 2026"â category landscape"site:reddit.com <competitor app> review"â user complaints- Result: ASO keywords, competitor ratings, common complaints
-
Naming, domains, and company registration:
- Generate 5-7 name candidates
Domain availability (RDAP â free, no auth):
# 404 = available, 200 = registered curl -s -o /dev/null -w "%{http_code}" "https://rdap.org/domain/<name>.com"- Check .com, .app, .io, .dev, .ai for each candidate (run in parallel)
Trademark check:
"<name> trademark"â basic conflict check"site:trademarkia.com <name>"â US trademarks
Company name conflicts:
"site:opencorporates.com <name>"â 240M+ companies worldwide"<name> LLC OR Inc OR Corp"â existing businesses
-
Market sizing (TAM/SAM/SOM) â use Claude WebSearch (primary):
"<market> market size 2025 2026 report"â synthesizes numbers"<market> growth rate CAGR billion"â growth projections- Extrapolation: TAM â SAM â SOM (Year 1)
-
Write
research.mdâ write to3-opportunities/<project-name>/research.mdif in solopreneur KB, otherwise todocs/research.mdin the current project. Create the directory if needed. -
Output summary:
- Key findings (3-5 bullets)
- Recommendation: GO / NO-GO / PIVOT with brief reasoning
- Path to generated research.md
- Suggested next step:
/validate <idea>
research.md Format
---
type: research
status: draft
title: "Deep Research â <Idea Name>"
created: <today>
tags: [<project>, research, competitive-analysis]
product_type: web|ios|android|desktop|cli|api
---
# Deep Research: <Idea Name>
## Executive Summary
<!-- 3-4 sentences: problem, market, competitors, recommendation -->
## 1. Competitive Landscape
| Competitor | URL | Pricing | Key Features | Weaknesses |
|-----------|-----|---------|-------------|------------|
| ... | ... | ... | ... | ... |
### Gap Analysis
<!-- What nobody does. Where our advantage is. -->
## 2. User Pain Points
| Pain Point | Source | URL | Sentiment |
|-----------|--------|-----|-----------|
| ... | Reddit r/... | ... | negative |
### Top Insights
<!-- 3-5 key insights -->
## 3. SEO / ASO Analysis
| Keyword | Intent | Competition | Relevance |
|---------|--------|------------|-----------|
| ... | commercial | medium | primary |
## 4. Naming & Domains
| Name | .com | .app | .io | .ai | Trademark | Notes |
|------|------|------|-----|-----|-----------|-------|
| ... | avail | taken | avail | avail | clean | ... |
### Recommended Name: **<name>**
## 5. Market Size
- **TAM:** $X â <source>
- **SAM:** $X â <reasoning>
- **SOM (Year 1):** $X â <assumptions>
## 6. Recommendation
**Verdict:** GO / NO-GO / PIVOT
## Sources
1. [Title](url) â brief description
Notes
- Always use kebab-case for project directory names
- If research.md already exists, ask before overwriting
- Run SearXNG and Claude WebSearch queries in parallel when independent