mcpField
S
solo-research

solo-research

github.com/fortunto2マーケティング・グロース1864 回インストール今日更新
リポジトリ

solo-research について

solo-researchは、PRD作成前の詳細調査を行うスキルで、プロダクトの企画や検証に取り組む人を対象とします。競合、ユーザーの課題、キーワード、命名案、市場規模の調査を案内し、結果をresearch.mdにまとめます。

主な機能

  1. 01競合とユーザー課題の分析
  2. 02SEO/ASOキーワード調査
  3. 03命名案とドメイン候補の調査
  4. 04TAM/SAM/SOMの推定
  5. 05構造化されたresearch.mdの作成

活用シーン

  1. 01プロダクト案のPRD作成前に調査を準備
  2. 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 ページ分のクリーンな 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" など。 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 PlaywrightPullPush API、コンテンツ内の selftext
YouTube のレビューMCP web_search(engines: youtube を指定)動画レビュー(再生回数 = 需要)
市場規模WebSearch10 個のソースから数値を統合
SEO/ASOWebSearchより幅広い網羅性、トレンドデータ
ページのスクレイピングMCP web_extract(フォールバック:WebFetch)すっきりした Markdown、長いドキュメントには size=f + page=n
Hacker NewsWebSearch site:news.ycombinator.comHN の議論と意見
資金調達/企業WebSearch site:crunchbase.com競合の資金調達、チーム規模
検証済み収益WebFetch trustmrr.com/startup/<slug>Stripe で検証済みの MRR、成長率、技術スタック、トラフィック
検索の利用可否

WebSearch/WebFetch を主に使用します。MCP web_search ツールが利用可能な場合は、より良い結果を得るために使用してください(エンジンのルーティングと生コンテンツの抽出に対応しています)。

手順

  1. $ARGUMENTS からアイデアを解析します。空の場合は、調査したいアイデアをユーザーに尋ねます。

  2. プロダクトの種類を判定 — アイデアの説明から推測します。

    • 「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 など)が決まります
  3. ナレッジベースと過去の作業を検索します。

    • 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 がすでに存在するか確認します。
  4. 既存のポートフォリオを確認(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 ツールが利用できない場合は、この手順をスキップします。
  5. 競合分析 — 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>" または WebFetch trustmrr.com/startup/<slug> — Stripe で検証済みの MRR、成長率(%)、技術スタック、トラフィック(24 時間/7 日/30 日)
    • 各競合について、名前、URL、価格、主な機能、弱点、検証済み MRR(TrustMRR に掲載されている場合)を抽出します
  6. ユーザーの課題 — 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 とともに記載します
  7. 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 キーワード、競合の評価、よくある不満
  8. 名前、ドメイン、会社登記:

    • 名前の候補を 7~10 個生成します(説明的なものと、創作的でブランド化しやすいものを組み合わせます)
    • ドメインの空き状況:3 段階で確認します(whois → dig → RDAP)
    • 商標および会社名との競合を確認します

    TLD の優先順位、bash スクリプト、注意点、商標の確認方法については、references/domain-check.md(このスキルに同梱)を参照してください。

  9. ユーザーペルソナ(調査データに基づく簡易ペルソナを 2~3 件):

    課題(ステップ 6)と競合の弱点(ステップ 5)に基づき、簡易ペルソナを 2~3 件作成します。

    項目例
    名前「Alex、フリーランスのデザイナー」
    セグメントキャリア初期のフリーランサー、月収 3,000~8,000 ドル
    JTBD「プロジェクトを終えたら、60 秒以内にプロ仕様の請求書を送り、より早く報酬を受け取りたい」
    課題ステップ 6 で挙げた最上位の課題と、その出典からの引用
    現在の解決策現在使っているもの(競合製品または代替手段)
    乗り換えのきっかけ新しいものを試すきっかけとなる要素

    ペルソナは、ステップ 5~6 の根拠に基づくものにしてください。架空の属性情報は使わず、データで裏付けられる情報のみを使用します。これらは /validate に引き継がれ、ICP と PRD の作成に直接使用されます。

  10. インタビュー用スクリプト(任意。ユーザーが顧客インタビューを予定している場合):

上記のペルソナに基づき、JTBD に関する 7 つの質問からなるインタビュースクリプトを作成します。

  1. 背景:「最後に[主要な行動]をしたときのことを教えてください……」(自由回答形式、過去形)
  2. きっかけ:「解決策を探そうと思ったきっかけは何でしたか?」(乗り換えの瞬間)
  3. 現在のワークフロー:「現在どのように行っているか、手順を追って説明してください」
  4. 課題:「最も不満に感じる点は何ですか?」(誘導せず、相手に答えてもらいます)
  5. 試した代替策:「他に何を試しましたか? どうなりましたか?」
  6. 望む結果:「あなたにとって『解決した』とは、どのような状態ですか?」
  7. 支払い意思:「それを正確に実現するものがあったら、いくらの価値があると思いますか?」

ルール:過去形のみ(これから何をするかではなく、実際に何をしたか)、誘導的な質問はしない、機能を売り込まない。参考:JTBD インタビュー手法(Bob Moesta)。

生成した場合は docs/interview-script.md に書き込みます。

  1. 市場規模の推定(TAM/SAM/SOM)— 主に WebSearch を使用します。
  • WebSearch:"<market> market size 2025 2026 report" — 数値をまとめます
  • WebSearch:"<market> growth rate CAGR billion" — 成長予測
  • 外挿:TAM → SAM → SOM(1 年目)
  1. research.md を作成 — 現在のプロジェクトディレクトリ内の docs/research.md に書き込みます。必要に応じてディレクトリを作成してください。

  2. 概要を出力:

    • 主な調査結果(箇条書き 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 の詳細調査
  1. MCP web_search または WebSearch — 発見に使用します(Reddit のキーワードは最大 3 つ)。投稿 URL を取得してください
  2. MCP Playwright — old.reddit.com の URL を開き、投稿全体とコメントを読みます(CAPTCHA を回避します)
  3. 引用を抽出 — 重要な表現を出典情報(u/username、subreddit、日付)とともにコピーします
  4. クロスポストの検出 — 同じ投稿が複数の subreddit にある場合、より強いシグナルになります
Product Hunt の調査
  1. producthunt.com/visit-streaks — 連続訪問のリーダーボード(Playwright でスクレイピング可能)
  2. producthunt.com/@username — ソーシャルリンク、メーカーとしての履歴、ポイントを含むプロフィール
  3. PH API v2 は機能していません — 2023 年 2 月以降、ユーザー名と Twitter 情報が伏せられるため、スクレイピングを使用してください
  4. Apify アクター — 利用する前に DEPRECATED のステータスでないことを確認してください(2025 年 9 月に大規模な非推奨化が実施されました)
TrustMRR による収益の検証
  1. trustmrr.com/startup/<slug> — Stripe で検証済みの MRR、成長率、サブスクリプション、トラフィック
  2. WebFetch が利用できます — 認証不要で、JSON-LD の構造化データを含むページ全体を返します
  3. データフィールド: MRR、累計収益、直近 30 日間、有効なサブスクリプション、技術スタック、トラフィック(24 時間/7 日間/30 日間)、カテゴリ、創業者の X ハンドル
  4. 用途: 競合の収益検証、実データに基づく市場規模の推定、技術スタックの把握
  5. 検索: "site:trustmrr.com <category or idea>" を使い、収益が検証済みの類似スタートアップを見つけます
  6. Apify スクレイパー: 一括抽出には TrustMRR Scraper を使用します
GitHub ライブラリの発見
  1. MCP engines: github — 空の結果が返されることが多いため、WebSearch を優先して使用してください
  2. github.com/topics/ — Playwright または WebFetch でトピックページを閲覧します
  3. スター数、最終更新日、未解決の issue を確認 — 放置されたリポジトリは避けてください
ブロックされたコンテンツのフォールバック手順
MCP Playwright (best) → PullPush API (Reddit) → WebFetch → WebSearch snippets → MCP web_search include_raw_content

WebFetch 経由でページが 403/CAPTCHA を返す場合:

  1. Reddit: MCP Playwright → old.reddit.com(常に動作し、CAPTCHA なし)
  2. Reddit の検索: PullPush API api.pullpush.io(構造化された JSON、selftext 全文)
  3. Product Hunt/その他のサイト: MCP Playwright browser_navigate(ほとんどのサイトで CAPTCHA なし)
  4. 一般: WebSearch のスニペット + WebSearch による統合

コメント