关于 solo-research
solo-research 是一个用于 PRD 生成前开展深入调研的技能,面向产品构思和市场验证工作。它指导收集竞品、用户痛点、关键词、命名选项和市场规模,并整理为 research.md。
主要功能
- 01竞品与用户痛点分析
- 02SEO/ASO 关键词研究
- 03命名与域名选项研究
- 04TAM/SAM/SOM 市场估算
- 05生成结构化 research.md
适用场景
- 01为产品构思准备 PRD 前置调研
- 02汇总竞品与用户反馈以评估方向
MCP 相关
该技能列出可选 MCP 工具,包括知识库、网页和项目代码搜索,以及项目与代码图查询;若这些工具不可用,则使用 WebSearch/WebFetch 等方式。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ fortunto2/ solo-factory --skill solo-research安装后在 Claude Code 中输入/solo-research确认已加载。
附带文件references/domain-check.mdreferences/research-template.md
详细介绍
/research
在生成 PRD 前开展深入研究。生成结构化的 research.md,涵盖竞品分析、用户痛点、SEO/ASO 关键词、命名与域名选项,以及市场规模估算。
实时上下文
- 分支:!
git branch --show-current 2>/dev/null - 最近更改:!
git log --oneline -5 2>/dev/null
MCP 工具(如有)
如果有可用的 MCP 工具,优先使用,而不是 CLI:
kb_search(query, n_results)— 搜索知识库中的相关文档web_search(query, engines, include_raw_content)— 使用搜索引擎路由进行网络搜索web_extract(url, size, page)— 将单个网页提取为干净的 Markdown,并移除模板内容session_search(query, project)— 查找之前类似研究的做法project_info(name)— 查看项目详情和技术栈codegraph_explain(project)— 查看现有项目的架构概览(技术栈、模式、依赖项)codegraph_query(query)— 对代码图执行原始 Cypher 查询(查找共享包、依赖项)project_code_search(query, project)— 对项目源代码进行语义搜索
MCP web_search 支持指定引擎:engines="reddit"、engines="youtube" 等。
如需完整阅读单个网页,优先使用 web_extract,而不是 include_raw_content:它使用
trafilatura,因此会移除导航栏和页脚,并保留表格。size="s|m|l" 的上限分别为
5k/10k/25k 个字符;size="f" 会对整篇文档分页,使用 page=2 可继续浏览。
如果没有可用的 MCP 工具,请优先使用 WebSearch/WebFetch。如果 MCP 的 web_search 工具可用,请使用它以获得更好的结果。
Reddit 搜索最佳实践
- Reddit 查询最多使用 3 个关键词——关键词越多,结果越少
- 好的示例:
"product hunt outreach launch";不好的示例:"product hunt scraper maker profiles linkedin outreach launch strategy" include_raw_content=true很少能用于 Reddit——请使用以下备用方案链
Reddit 内容访问——备用方案链
搜索到相关 Reddit 帖子后,需要通过备用方案链读取其完整内容:
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_extract / web_search raw ← sometimes works, often truncated
4. WebFetch / WebSearch snippets ← last resort, partial data only
方法 1:MCP Playwright(推荐用于获取完整帖子内容)
- 使用
browser_navigate("https://old.reddit.com/r/...")— old.reddit.com 无需 CAPTCHA 即可加载 www.reddit.com会显示 CAPTCHA(“证明你是人类”),请始终使用old.reddit.com- 快照包含完整的帖子文本和评论,并以结构化 YAML 呈现
- 示例:
old.reddit.com/r/indiehackers/comments/abc123/post_title/
方法 2:PullPush API(用于搜索和发现)
- 端点:
https://api.pullpush.io/reddit/submission/search - 参数:
q、subreddit、author、score(例如>10,<100)、since/until(Unix 时间戳)、size(最大 100) - 速率限制:软限制为 15 次请求/分钟,硬限制为 30 次请求/分钟、1000 次请求/小时。每次请求间隔 4 秒。
- 返回包含完整
selftext、作者、得分和 created_utc 的 JSON - 评论搜索:
/reddit/comment/search(参数相同) - 可通过 curl 使用:
curl -s "https://api.pullpush.io/reddit/submission/search?q=product+hunt+launch&subreddit=indiehackers&size=10"
方法 3:Reddit .json 端点(经常被屏蔽)
- 在任意 Reddit URL 后追加
.json:reddit.com/r/sub/comments/id.json - 返回包含完整帖子和评论的原始 JSON
- 经常被屏蔽(403/429)——仅将其作为可选备用方案
方法 4:PRAW(Reddit 官方 API,用于实时搜索和用户资料)
- praw-dev/praw — Python Reddit API 封装库
- 支持 OAuth2 身份验证、内置速率限制,以及同步/异步操作
- 最适合:实时 subreddit 搜索、用户资料、评论树
pip install praw/uv add praw
搜索策略:混合搜索(MCP + WebSearch)
将多个搜索后端结合使用。每种后端各有优势:
| 步骤 | 最佳后端 | 原因 |
|---|---|---|
| 竞争对手 | WebSearch + site:producthunt.com + site:g2.com | 广泛发现 + Product Hunt + B2B 评价 |
| Reddit / 痛点 | MCP web_search,使用 engines: reddit(最多 3 个关键词!)+ MCP Playwright 获取完整帖子 | PullPush API,内容中包含 selftext |
| YouTube 评测 | MCP web_search,使用 engines: youtube | 视频评测(观看量 = 需求) |
| 市场规模 | WebSearch | 综合 10 个来源的数据 |
| SEO / ASO | WebSearch | 覆盖面更广,趋势数据更多 |
| 页面抓取 | MCP web_extract(备用:WebFetch) | 输出整洁的 Markdown,长文档使用 size=f + page=n |
| Hacker News | WebSearch site:news.ycombinator.com | HN 讨论和观点 |
| 融资 / 公司 | WebSearch site:crunchbase.com | 竞争对手的融资情况、团队规模 |
| 经核实的收入 | WebFetch trustmrr.com/startup/<slug> | Stripe 核实的 MRR、增长情况、技术栈、流量 |
搜索可用性
优先使用 WebSearch/WebFetch。如果 MCP web_search 工具可用,也使用它以获取更好的结果(支持引擎路由和原始内容提取)。
步骤
-
解析想法:从
$ARGUMENTS中解析。如果为空,询问用户想研究什么想法。 -
检测产品类型——根据想法描述推断:
- 包含“app”“mobile”“iPhone”“Android”等关键词 → 移动端(ios/android)
- 包含“website”“SaaS”“dashboard”“web app”等关键词 → Web
- 包含“CLI”“terminal”“command line”等关键词 → CLI
- 包含“API”“backend”“service”等关键词 → API
- 包含“extension”“plugin”“browser”等关键词 → Web(扩展程序)
- 不明确时默认为 Web
- 只有在确实无法判断时才通过 AskUserQuestion 询问(例如,“build a todo app”可能指 Web 或移动端)
- 这将决定适用的研究部分(移动端适用 ASO,Web 适用 SEO 等)
-
搜索知识库和过往工作:
- 如果 MCP
kb_search可用:kb_search(query="<idea keywords>", n_results=5) - 如果 MCP
session_search可用:session_search(query="<idea keywords>")——检查此前是否研究过这个想法 - 否则:在
.md文件中搜索关键词 - 检查是否已为这个想法创建
research.md或prd.md。
- 如果 MCP
-
检查现有项目组合(如果 MCP codegraph 工具可用):
codegraph_explain(project="<similar project>")——查看项目组合中相关项目的架构概览project_code_search(query="<relevant pattern>", project="<sibling>")——查找可复用的代码、模式和基础设施codegraph_query("MATCH (p:Project)-[:DEPENDS_ON]->(pkg:Package) WHERE pkg.name CONTAINS '<relevant tech>' RETURN p.name, pkg.name")——查找使用相似技术的项目- 这有助于评估可行性、可复用代码、技术栈决策和时间估算
- 如果没有可用的 MCP 工具,则跳过此步骤。
-
竞争分析——使用 WebSearch(优先)+ MCP web_search(如果可用):
"<idea> competitors alternatives 2026"——广泛发现"<idea> app review pricing"——定价数据- 使用 WebFetch 或 MCP
include_raw_content=true:抓取竞争对手网址,获取详细定价信息 - 使用 MCP
engines: reddit或 WebSearch:"<idea> vs"——用户观点 "site:producthunt.com <idea>"——Product Hunt 上线产品"site:g2.com <idea>"或"site:capterra.com <idea>"——B2B 评价"site:crunchbase.com <competitor>"——融资情况、团队规模"site:trustmrr.com <idea>"或 WebFetchtrustmrr.com/startup/<slug>——Stripe 核实的 MRR、增长率、技术栈、流量(24h/7d/30d)- 对每个竞争对手提取:名称、URL、定价、主要功能、弱点、经核实的 MRR(如果 TrustMRR 上有)
-
用户痛点 — 使用 MCP web_search / WebSearch + YouTube:
- MCP
engines: reddit或 WebSearch:"<problem>"— Reddit 讨论(最多 3 个关键词!) - 如果找到 Reddit 帖子但无法获取内容 → 通过 MCP Playwright 打开:
browser_navigate("https://old.reddit.com/r/...")— old.reddit.com 可绕过 CAPTCHA - MCP
engines: youtube或 WebSearch:"<problem> review"— 视频评测 "site:news.ycombinator.com <problem>"— Hacker News 上的观点- WebSearch:
"<problem> frustrating OR annoying"— 更广泛地搜索 - 综合整理:排名前 5 的痛点,附上引述和来源 URL
- MCP
-
SEO / ASO 分析(取决于第 2 步确定的产品类型):
针对 Web 应用:
"<competitor> SEO keywords ranking"— 竞品关键词"<problem domain> search volume trends 2026"— 需求信号- 使用 WebFetch 或 MCP
include_raw_content:抓取竞品页面的 meta 标签 - 结果:关键词表(关键词、意图、竞争度、相关性)
针对移动应用:
"<category> App Store top apps keywords 2026"— 类别概况"site:reddit.com <competitor app> review"— 用户投诉- 结果:ASO 关键词、竞品评分、常见投诉
-
命名、域名和公司注册:
- 生成 7-10 个名称候选项(兼有描述性名称和原创/适合打造品牌的名称)
- 域名可用性:三重验证(whois → dig → RDAP)
- 检查商标和公司名称冲突
有关 TLD 优先级、bash 脚本、注意事项和商标检查方法,请参阅
references/domain-check.md(与此技能捆绑)。 -
用户画像(根据研究数据生成 2-3 个简要画像):
根据痛点(第 6 步)和竞争差距(第 5 步),生成 2-3 个简要用户画像:
字段 示例 姓名 "Alex,自由职业设计师" 细分群体 职业生涯早期的自由职业者,月收入 $3-8K JTBD "当我完成一个项目时,我想在 60 秒内发出一张专业发票,这样我就能更快收到款项" 痛点 第 6 步中的首要痛点,并附上来源引述 当前解决方案 他们目前使用的方案(竞品或变通方法) 转换触发因素 什么会促使他们尝试新方案 确保用户画像以第 5-6 步的证据为依据。不要虚构人口统计信息——只纳入数据支持的内容。这些内容将直接用于
/validate,以生成 ICP 和 PRD。 -
访谈脚本(可选,适用于计划访谈客户的用户):
根据上述用户画像,生成一份包含 7 个问题的 JTBD 访谈脚本:
- 背景:“告诉我你上次[核心行动]的情况……”(开放式,以过去时提问)
- 触发因素:“是什么促使你寻找解决方案?”(转换时刻)
- 当前工作流:“请逐步讲讲你现在是如何完成这件事的”
- 痛点:“最令人沮丧的部分是什么?”(不要诱导——让受访者自己说出来)
- 尝试过的替代方案:“你还尝试过什么?结果如何?”
- 预期结果:“对你来说,‘问题解决’是什么样的?”
- 付费意愿:“如果有东西能完全做到这一点,你觉得它值多少钱?”
规则:只用过去时提问(问他们做过什么,而不是会做什么),不要诱导提问,不要推销功能。参考:JTBD 访谈方法论(Bob Moesta)。
如果生成了访谈脚本,将其写入 docs/interview-script.md。
- 市场规模测算(TAM/SAM/SOM)— 主要使用 WebSearch:
- WebSearch:
"<market> market size 2025 2026 report"— 汇总相关数据 - WebSearch:
"<market> growth rate CAGR billion"— 增长预测 - 外推:TAM → SAM → SOM(第 1 年)
-
编写
research.md— 写入当前项目目录下的docs/research.md。如有需要,创建该目录。 -
输出摘要:
- 关键发现(3-5 条要点)
- 建议:GO / NO-GO / PIVOT,并简要说明理由
- 生成的 research.md 的路径
- 建议的下一步:
/validate <idea>
research.md 格式
完整的输出模板(frontmatter、6 个章节、表格)请参阅 references/research-template.md(随此技能附带)。
注意事项
- 项目目录名称始终使用 kebab-case
- 如果 research.md 已存在,请先询问再覆盖
- 如果搜索查询彼此独立,请并行执行
常见问题
MCP web_search 不可用
原因: MCP 服务未运行或未配置。 解决方法: 优先使用 WebSearch/WebFetch。若要通过引擎路由(Reddit、GitHub、YouTube)获得更好的结果,请设置 SearXNG(私有、可自托管、免费),并配置 solograph MCP。
域名检查返回错误结果
原因: 对未注册域名,.app/.dev 的 whois 会显示顶级域创建日期。
解决方法: 使用三重验证方法(whois -> dig -> RDAP)。检查 Name Server 和 Registrar 字段,而非创建日期。
research.md 已存在
原因: 此想法之前已进行过研究。 解决方法: 技能会在覆盖前询问。选择合并新发现或重新开始。
主动搜索实践
深入研究 Reddit
- MCP web_search 或 WebSearch — 用于发现内容(Reddit 最多 3 个关键词),获取帖子 URL
- MCP Playwright — 打开
old.reddit.comURL,阅读完整帖子和评论(绕过 CAPTCHA) - 提取引文 — 复制关键短语并注明出处(u/username、subreddit、日期)
- 检测交叉发布 — 同一帖子出现在多个 subreddit 中,说明信号更强
Product Hunt 研究
- producthunt.com/visit-streaks — 连续访问排行榜(可通过 Playwright 抓取)
- producthunt.com/@username — 包含社交链接、创作者历史和积分的个人资料
- PH API v2 已失效 — 自 2023 年 2 月起会隐去用户名/Twitter 信息,请使用抓取
- Apify actors — 使用前检查是否已标记为 DEPRECATED(2025 年 9 月大规模弃用)
TrustMRR 收入验证
trustmrr.com/startup/<slug>— 经 Stripe 验证的 MRR、增长率、订阅数、流量- WebFetch 可用 — 无需身份验证,会返回包含 JSON-LD 结构化数据的完整页面
- 数据字段: MRR、累计收入、过去 30 天、有效订阅数、技术栈、流量(24h/7d/30d)、类别、创始人的 X 账号
- 用途: 验证竞争对手收入、使用真实数据估算市场规模、发现技术栈
- 搜索: 使用
"site:trustmrr.com <category or idea>"查找收入经过验证的相似初创公司 - Apify 抓取工具: 用于批量提取的 TrustMRR Scraper
发现 GitHub 库
- MCP
engines: github— 常常返回空结果,请优先使用 WebSearch - github.com/topics/ — 通过 Playwright 或 WebFetch 浏览主题页面
- 检查 star 数、最近更新时间和未解决的问题 — 避免已废弃的仓库
被屏蔽内容的备用方案
MCP Playwright (best) → PullPush API (Reddit) → WebFetch → WebSearch snippets → MCP web_search include_raw_content
如果 WebFetch 返回的页面出现 403/CAPTCHA:
- Reddit: MCP Playwright →
old.reddit.com(始终可用,无 CAPTCHA) - Reddit 搜索: PullPush API
api.pullpush.io(结构化 JSON,包含完整 selftext) - Product Hunt / 其他网站: MCP Playwright
browser_navigate(大多数网站不会出现 CAPTCHA) - 通用方案: WebSearch 摘要 + WebSearch 综合结果