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 生成前の詳細なリサーチです。競合分析、ユーザーの課題、SEO/ASO キーワード、名称・ドメインの候補、市場規模を含む、構造化された research.md を作成します。
ライブコンテキスト
- ブランチ:!
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)— 定型部分を除去した、1 ページ分のクリーンな Markdownsession_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" など。
1 ページを全文読む場合は、include_raw_content よりも web_extract を優先してください。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 Wrapper
- OAuth2 認証、組み込みのレート制限、同期・非同期に対応
- 最適な用途:サブレディットのライブ検索、ユーザープロフィール、コメントツリー
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
- 本当に曖昧な場合に限り(例:「todo アプリを作る」だけでは Web かモバイルか不明)、AskUserQuestion で尋ねます
- これにより、適用する調査セクション(モバイルなら ASO、Web なら SEO など)が決まります
-
ナレッジベースと過去の作業を検索します。
- MCP
kb_searchが利用可能な場合:kb_search(query="<idea keywords>", n_results=5) - MCP
session_searchが利用可能な場合:session_search(query="<idea keywords>")— このアイデアが以前に調査されたか確認します - それ以外の場合:
.mdファイル内のキーワードを Grep で検索します - このアイデアの
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:競合の URL をスクレイピングして詳しい価格情報を取得 - 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、成長率(%)、技術スタック、トラフィック(24 時間/7 日/30 日)- 各競合について、名前、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:競合ページをスクレイピングしてメタタグを取得します - 結果:キーワードの表(キーワード、検索意図、競争率、関連性)
モバイルアプリの場合:
"<category> App Store top apps keywords 2026"— カテゴリーの概況"site:reddit.com <competitor app> review"— ユーザーからの不満- 結果:ASO キーワード、競合の評価、よくある不満
-
名前、ドメイン、会社登記:
- 名前の候補を 7~10 個生成します(説明的なものと、創作的でブランド化しやすいものを組み合わせます)
- ドメインの空き状況:3 段階で確認します(whois → dig → RDAP)
- 商標および会社名との競合を確認します
TLD の優先順位、bash スクリプト、注意点、商標の確認方法については、
references/domain-check.md(このスキルに同梱)を参照してください。 -
ユーザーペルソナ(調査データに基づく簡易ペルソナを 2~3 件):
課題(ステップ 6)と競合の弱点(ステップ 5)に基づき、簡易ペルソナを 2~3 件作成します。
項目 例 名前 「Alex、フリーランスのデザイナー」 セグメント キャリア初期のフリーランサー、月収 3,000~8,000 ドル JTBD 「プロジェクトを終えたら、60 秒以内にプロ仕様の請求書を送り、より早く報酬を受け取りたい」 課題 ステップ 6 で挙げた最上位の課題と、その出典からの引用 現在の解決策 現在使っているもの(競合製品または代替手段) 乗り換えのきっかけ 新しいものを試すきっかけとなる要素 ペルソナは、ステップ 5~6 の根拠に基づくものにしてください。架空の属性情報は使わず、データで裏付けられる情報のみを使用します。これらは
/validateに引き継がれ、ICP と PRD の作成に直接使用されます。 -
インタビュー用スクリプト(任意。ユーザーが顧客インタビューを予定している場合):
上記のペルソナに基づき、JTBD に関する 7 つの質問からなるインタビュースクリプトを作成します。
- 背景:「最後に[主要な行動]をしたときのことを教えてください……」(自由回答形式、過去形)
- きっかけ:「解決策を探そうと思ったきっかけは何でしたか?」(乗り換えの瞬間)
- 現在のワークフロー:「現在どのように行っているか、手順を追って説明してください」
- 課題:「最も不満に感じる点は何ですか?」(誘導せず、相手に答えてもらいます)
- 試した代替策:「他に何を試しましたか? どうなりましたか?」
- 望む結果:「あなたにとって『解決した』とは、どのような状態ですか?」
- 支払い意思:「それを正確に実現するものがあったら、いくらの価値があると思いますか?」
ルール:過去形のみ(これから何をするかではなく、実際に何をしたか)、誘導的な質問はしない、機能を売り込まない。参考: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 形式
完全な出力テンプレート(フロントマター、6 つのセクション、表)については、references/research-template.md(このスキルに同梱)を参照してください。
メモ
- プロジェクトのディレクトリ名には常に kebab-case を使用してください
- research.md がすでに存在する場合は、上書きする前に確認してください
- 独立した検索クエリは並行して実行してください
よくある問題
MCP web_search を利用できない
原因: MCP サーバーが起動していないか、設定されていません。 対処法: WebSearch/WebFetch を優先して使用してください。エンジンのルーティング(Reddit、GitHub、YouTube)でより良い結果を得るには、SearXNG(プライベート、セルフホスト可能、無料)をセットアップし、solograph MCP を設定してください。
ドメイン確認で誤った結果が返される
原因: 未登録ドメインの場合、.app/.dev の whois では TLD の作成日が表示されます。
対処法: 3 段階の確認方法(whois -> dig -> RDAP)を使用してください。作成日ではなく、Name Server と Registrar のフィールドを確認してください。
research.md がすでに存在する
原因: このアイデアについて、以前に調査が実行されています。 対処法: スキルが上書きする前に確認します。新しい調査結果を統合するか、最初からやり直すかを選択してください。
積極的な検索の実践
Reddit の詳細調査
- MCP web_search または WebSearch — 発見に使用します(Reddit のキーワードは最大 3 つ)。投稿 URL を取得してください
- MCP Playwright —
old.reddit.comの URL を開き、投稿全体とコメントを読みます(CAPTCHA を回避します) - 引用を抽出 — 重要な表現を出典情報(u/username、subreddit、日付)とともにコピーします
- クロスポストの検出 — 同じ投稿が複数の subreddit にある場合、より強いシグナルになります
Product Hunt の調査
- producthunt.com/visit-streaks — 連続訪問のリーダーボード(Playwright でスクレイピング可能)
- producthunt.com/@username — ソーシャルリンク、メーカーとしての履歴、ポイントを含むプロフィール
- PH API v2 は機能していません — 2023 年 2 月以降、ユーザー名と Twitter 情報が伏せられるため、スクレイピングを使用してください
- Apify アクター — 利用する前に DEPRECATED のステータスでないことを確認してください(2025 年 9 月に大規模な非推奨化が実施されました)
TrustMRR による収益の検証
trustmrr.com/startup/<slug>— Stripe で検証済みの MRR、成長率、サブスクリプション、トラフィック- WebFetch が利用できます — 認証不要で、JSON-LD の構造化データを含むページ全体を返します
- データフィールド: MRR、累計収益、直近 30 日間、有効なサブスクリプション、技術スタック、トラフィック(24 時間/7 日間/30 日間)、カテゴリ、創業者の X ハンドル
- 用途: 競合の収益検証、実データに基づく市場規模の推定、技術スタックの把握
- 検索:
"site:trustmrr.com <category or idea>"を使い、収益が検証済みの類似スタートアップを見つけます - Apify スクレイパー: 一括抽出には TrustMRR Scraper を使用します
GitHub ライブラリの発見
- MCP
engines: github— 空の結果が返されることが多いため、WebSearch を優先して使用してください - github.com/topics/ — Playwright または WebFetch でトピックページを閲覧します
- スター数、最終更新日、未解決の issue を確認 — 放置されたリポジトリは避けてください
ブロックされたコンテンツのフォールバック手順
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 による統合