From solo
Conducts deep research on product ideas before PRD, generating research.md with competitive analysis, user pain points, SEO/ASO keywords, naming/domain options, and market sizing. Use for market checks, competitors, and opportunities.
npx claudepluginhub fortunto2/solo-factory --plugin soloThis skill is limited to using the following tools:
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.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
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.
git branch --show-current 2>/dev/nullgit log --oneline -5 2>/dev/nullIf 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) — web search with engine routingsession_search(query, project) — find how similar research was done beforeproject_info(name) — check project details and stackscodegraph_explain(project) — architecture overview of an existing project (stack, patterns, deps)codegraph_query(query) — raw Cypher queries against code graph (find shared packages, dependencies)project_code_search(query, project) — semantic search over project source codeMCP web_search supports engine override: engines="reddit", engines="youtube", etc.
If MCP tools are not available, use WebSearch/WebFetch as primary. If MCP web_search tool is available, use it for better results.
"product hunt outreach launch" — Bad: "product hunt scraper maker profiles linkedin outreach launch strategy"include_raw_content=true rarely works for Reddit — use fallback chain belowWhen a search finds a relevant Reddit post, reading its full content requires a fallback chain:
1. MCP Playwright (old.reddit.com) ← BEST: bypasses CAPTCHA, full post + comments
2. PullPush API (api.pullpush.io) ← search by query/subreddit/author/score/date
3. MCP web_search include_raw_content ← sometimes works, often truncated
4. WebFetch / WebSearch snippets ← last resort, partial data only
Method 1: MCP Playwright (recommended for full post content)
browser_navigate("https://old.reddit.com/r/...") — old.reddit.com loads without CAPTCHAwww.reddit.com shows CAPTCHA ("Prove your humanity"), always use old.reddit.comold.reddit.com/r/indiehackers/comments/abc123/post_title/Method 2: PullPush API (for search/discovery)
https://api.pullpush.io/reddit/submission/searchq, subreddit, author, score (e.g. >10,<100), since/until (unix timestamps), size (max 100)selftext, author, score, created_utc/reddit/comment/search (same params)curl -s "https://api.pullpush.io/reddit/submission/search?q=product+hunt+launch&subreddit=indiehackers&size=10"
Method 3: Reddit .json endpoint (often blocked)
.json to any Reddit URL: reddit.com/r/sub/comments/id.jsonMethod 4: PRAW (Reddit Official API, for live search/user profiles)
pip install praw / uv add prawUse multiple search backends together. Each has strengths:
| Step | Best backend | Why |
|---|---|---|
| Competitors | WebSearch + site:producthunt.com + site:g2.com | Broad discovery + Product Hunt + B2B reviews |
| Reddit / Pain points | MCP web_search with engines: reddit (max 3 keywords!) + MCP Playwright for full posts | PullPush API, selftext in content |
| YouTube reviews | MCP web_search with engines: youtube | Video reviews (views = demand) |
| Market size | WebSearch | Synthesizes numbers from 10 sources |
| SEO / ASO | WebSearch | Broader coverage, trend data |
| Page scraping | WebFetch or MCP web_search with include_raw_content | Up to 5000 chars of page content |
| Hacker News | WebSearch site:news.ycombinator.com | HN discussions and opinions |
| Funding / Companies | WebSearch site:crunchbase.com | Competitor funding, team size |
| Verified revenue | WebFetch trustmrr.com/startup/<slug> | Stripe-verified MRR, growth, tech stack, traffic |
Use WebSearch/WebFetch as primary. If MCP web_search tool is available, use it for better results (supports engine routing and raw content extraction).
Parse the idea from $ARGUMENTS. If empty, ask the user what idea they want to research.
Detect product type — infer from the idea description:
Search knowledge base and past work:
kb_search available: kb_search(query="<idea keywords>", n_results=5)session_search available: session_search(query="<idea keywords>") — check if this idea was researched before.md filesresearch.md or prd.md already exist for this idea.Check existing portfolio (if MCP codegraph tools available):
codegraph_explain(project="<similar project>") — architecture overview of related projects in the portfolioproject_code_search(query="<relevant pattern>", project="<sibling>") — find reusable code, patterns, infrastructurecodegraph_query("MATCH (p:Project)-[:DEPENDS_ON]->(pkg:Package) WHERE pkg.name CONTAINS '<relevant tech>' RETURN p.name, pkg.name") — find projects using similar techCompetitive analysis — use WebSearch (primary) + MCP web_search (if available):
"<idea> competitors alternatives 2026" — broad discovery"<idea> app review pricing" — pricing datainclude_raw_content=true: scrape competitor URLs for detailed pricingengines: reddit or WebSearch: "<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"site:trustmrr.com <idea>" or WebFetch trustmrr.com/startup/<slug> — Stripe-verified MRR, growth %, tech stack, traffic (24h/7d/30d)User pain points — use MCP web_search / WebSearch + YouTube:
engines: reddit or WebSearch: "<problem>" — Reddit discussions (max 3 keywords!)browser_navigate("https://old.reddit.com/r/...") — old.reddit.com bypasses CAPTCHAengines: youtube or WebSearch: "<problem> review" — video reviews"site:news.ycombinator.com <problem>" — Hacker News opinions"<problem> frustrating OR annoying" — broader sweepSEO / 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 signalsinclude_raw_content: scrape competitor pages for meta tagsFor mobile apps:
"<category> App Store top apps keywords 2026" — category landscape"site:reddit.com <competitor app> review" — user complaintsNaming, domains, and company registration:
See references/domain-check.md (bundled with this skill) for TLD priority tiers, bash scripts, gotchas, and trademark check methods.
User Personas (2-3 quick personas from research data):
Based on pain points (step 6) and competitive gaps (step 5), generate 2-3 lightweight personas:
| Field | Example |
|---|---|
| Name | "Alex, freelance designer" |
| Segment | Early-career freelancers, $3-8K/mo |
| JTBD | "When I finish a project, I want to send a professional invoice in under 60 seconds so I can get paid faster" |
| Pain | Top pain point from step 6 with source quote |
| Current solution | What they use today (competitor or workaround) |
| Switching trigger | What would make them try something new |
Keep personas grounded in evidence from steps 5-6. No fictional demographics — only what the data supports. These feed directly into /validate for ICP and PRD generation.
Interview Script (optional, if user plans customer interviews):
Generate a 7-question JTBD interview script based on the personas above:
Rules: past tense only (what they DID, not what they WOULD do), no leading questions, no feature pitching. Reference: JTBD interview methodology (Bob Moesta).
Write to docs/interview-script.md if generated.
"<market> market size 2025 2026 report" — synthesizes numbers"<market> growth rate CAGR billion" — growth projectionsWrite research.md — write to docs/research.md in the current project directory. Create the directory if needed.
Output summary:
/validate <idea>See references/research-template.md (bundled with this skill) for the full output template (frontmatter, 6 sections, tables).
Cause: MCP server not running or not configured. Fix: Use WebSearch/WebFetch as primary. For better results with engine routing (Reddit, GitHub, YouTube), set up SearXNG (private, self-hosted, free) and configure solograph MCP.
Cause: .app/.dev whois shows TLD creation date for unregistered domains.
Fix: Use the triple verification method (whois -> dig -> RDAP). Check Name Server and Registrar fields, not creation date.
Cause: Previous research run for this idea. Fix: Skill asks before overwriting. Choose to merge new findings or start fresh.
old.reddit.com URLs to read full post + comments (bypasses CAPTCHA)trustmrr.com/startup/<slug> — Stripe-verified MRR, growth %, subscriptions, traffic"site:trustmrr.com <category or idea>" to find similar startups with verified revenueengines: github — often returns empty, use WebSearch as primaryMCP Playwright (best) → PullPush API (Reddit) → WebFetch → WebSearch snippets → MCP web_search include_raw_content
If a page returns 403/CAPTCHA via WebFetch:
old.reddit.com (always works, no CAPTCHA)api.pullpush.io (structured JSON, full selftext)browser_navigate (no captcha on most sites)