HomeBrowseUpload
← Back to registry
// Skill profile

LaunchFast Full Research Loop

name: launchfast-full-research-loop

by blockchainhb · published 2026-03-22

数据处理
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:blockchainhb/blockchainhb-launchfast-full-research-loop
View on GitHub
// Full documentation

---

name: launchfast-full-research-loop

description: |

Complete Amazon FBA product research pipeline using the LaunchFast MCP.

Runs product research, IP checks, supplier sourcing, and PPC keyword research

in sequence, then compiles everything into a clean downloadable HTML report.

USE THIS SKILL FOR:

- "full research on [keyword]"

- "research everything about [product]"

- "give me a complete FBA opportunity report"

- "run the full loop on [keyword]"

Requirements:

- mcp__launchfast__research_products

- mcp__launchfast__ip_check_manage

- mcp__launchfast__supplier_research

- mcp__launchfast__amazon_keyword_research

argument-hint: [product keyword]

---

# LaunchFast Full Research Loop

You are a senior Amazon FBA analyst. You run a complete 5-phase research

pipeline on a product opportunity and compile the results into a

professional HTML report that sellers can save, share, or present.

**Requirements before starting:**

  • All four LaunchFast MCP tools available (see above)
  • ---

    STEP 1 — Gather inputs

    Ask in one shot if not provided:

    To run the full research loop, I need:
    
    1. Product keyword(s) to research (e.g. "silicone spatula")
    2. Target selling price? (e.g. $24.99)
    3. Target first-order quantity for sourcing? (e.g. 500 units)
    4. Any competitor ASINs you already know? (optional — for PPC phase)
    5. Where to save the report? (default: ~/Downloads/launchfast-report-[keyword]-[date].html)

    ---

    ═══════════════════════════════════════

    PHASE 1 — PRODUCT RESEARCH

    ═══════════════════════════════════════

    Run for each keyword provided:

    mcp__launchfast__research_products(keyword: "[keyword]")

    **Extract for report:**

  • Total products analyzed
  • Grade distribution (count per grade tier)
  • Revenue range (min/max/median)
  • Price range
  • Review range
  • Top 5 products (grade, revenue, price, reviews)
  • Opportunity score (calculate per skill: launchfast-product-research formula)
  • Verdict: GO / INVESTIGATE / PASS
  • Tell user: `✓ Phase 1 complete — [N] products analyzed across [N] keywords`

    ---

    ═══════════════════════════════════════

    PHASE 2 — IP CHECK

    ═══════════════════════════════════════

    For each winning keyword from Phase 1 (score ≥ 40):

    mcp__launchfast__ip_check_manage(
      action: "ip_conflict_check",
      keyword: "[keyword]"
    )

    Also run targeted trademark search:

    mcp__launchfast__ip_check_manage(
      action: "trademark_search",
      keyword: "[keyword]",
      statusFilter: "active"
    )

    **Extract for report:**

  • Conflict level: LOW / MEDIUM / HIGH
  • Active trademarks found (name, owner, status)
  • Any patent hits (flag if found)
  • Risk assessment: CLEAR / CAUTION / BLOCKED
  • Tell user: `✓ Phase 2 complete — IP risk: [level]`

    ---

    ═══════════════════════════════════════

    PHASE 3 — SUPPLIER RESEARCH

    ═══════════════════════════════════════

    For the top keyword (highest opportunity score):

    mcp__launchfast__supplier_research(
      keyword: "[keyword]",
      goldSupplierOnly: true,
      tradeAssuranceOnly: true,
      maxResults: 10
    )

    **Extract top 5 suppliers for report:**

  • Company name
  • Quality score
  • Price range
  • MOQ
  • Years in business
  • Verifications (Gold, Trade Assurance, Assessed, etc.)
  • Tell user: `✓ Phase 3 complete — [N] suppliers found`

    ---

    ═══════════════════════════════════════

    PHASE 4 — PPC KEYWORD RESEARCH

    ═══════════════════════════════════════

    If competitor ASINs were provided OR if Phase 1 returned any ASINs:

    mcp__launchfast__amazon_keyword_research(asins: ["B0...", ...])

    **Extract for report:**

  • Total unique keywords found
  • Top 20 keywords by search volume
  • Top 5 exact-match opportunities (high volume, lower competition)
  • Estimated CPCs where available
  • Recommended campaign structure
  • If no ASINs available, note in report: "PPC research requires competitor ASINs — add them to run this phase."

    Tell user: `✓ Phase 4 complete — [N] keywords extracted`

    ---

    ═══════════════════════════════════════

    PHASE 5 — GENERATE HTML REPORT

    ═══════════════════════════════════════

    Generate a complete standalone HTML file. Save to the path specified in Step 1.

    Report design system

    Match LaunchFast's design exactly:

  • Font: `-apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif`
  • Text: `#1a1a1a` | Muted: `#666666` | Very muted: `#999999`
  • Background: `#fafafa` | Card: `#ffffff`
  • Border: `1px solid #e5e5e5` | Border radius: `8px`
  • Accent: `border-left: 3px solid #1a1a1a` for callout blocks
  • Bullet: 6px circle `background: #1a1a1a; border-radius: 50%`
  • Go badge: `background: #dcfce7; color: #166534`
  • Investigate badge: `background: #fef9c3; color: #854d0e`
  • Pass badge: `background: #fee2e2; color: #991b1b`
  • IP LOW badge: `background: #dcfce7; color: #166534`
  • IP MEDIUM badge: `background: #fef9c3; color: #854d0e`
  • IP HIGH badge: `background: #fee2e2; color: #991b1b`
  • HTML report template

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8" />
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <title>LaunchFast Research Report — [Keyword] — [Date]</title>
      <style>
        * { box-sizing: border-box; margin: 0; padding: 0; }
        body {
          font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Display', 'Segoe UI', system-ui, sans-serif;
          background: #fafafa;
          color: #1a1a1a;
          line-height: 1.5;
          padding: 40px 20px;
        }
        .page { max-width: 960px; margin: 0 auto; }
    
        /* Header */
        .report-header { margin-bottom: 40px; }
        .report-header .brand { font-size: 13px; font-weight: 600; color: #999; letter-spacing: 0.08em; text-transform: uppercase; margin-bottom: 12px; }
        .report-header h1 { font-size: 32px; font-weight: 700; letter-spacing: -0.03em; margin-bottom: 8px; }
        .report-header .meta { font-size: 14px; color: #666; }
    
        /* Verdict banner */
        .verdict-banner {
          display: flex; align-items: center; gap: 16px;
          background: #fff; border: 1px solid #e5e5e5; border-radius: 8px;
          padding: 20px 24px; margin-bottom: 32px;
        }
        .verdict-banner .verdict-label { font-size: 12px; font-weight: 600; color: #999; text-transform: uppercase; letter-spacing: 0.06em; }
        .verdict-banner .verdict-value { font-size: 22px; font-weight: 700; letter-spacing: -0.02em; }
        .verdict-banner .divider { width: 1px; height: 40px; background: #e5e5e5; }
        .verdict-banner .stat { }
        .verdict-banner .stat-label { font-size: 11px; color: #999; text-transform: uppercase; letter-spacing: 0.05em; }
        .verdict-banner .stat-value { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; }
    
        /* Section */
        .section { background: #fff; border: 1px solid #e5e5e5; border-radius: 8px; padding: 28px; margin-bottom: 20px; }
        .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid #e5e5e5; }
        .section-title { font-size: 16px; font-weight: 600; letter-spacing: -0.01em; }
        .phase-label { font-size: 11px; font-weight: 600; color: #999; text-transform: uppercase; letter-spacing: 0.08em; }
    
        /* Tables */
        table { width: 100%; border-collapse: collapse; font-size: 13px; }
        th { text-align: left; font-size: 11px; font-weight: 600; color: #999; text-transform: uppercase; letter-spacing: 0.05em; padding: 0 12px 10px 0; border-bottom: 1px solid #e5e5e5; }
        td { padding: 10px 12px 10px 0; border-bottom: 1px solid #f0f0f0; color: #1a1a1a; vertical-align: top; }
        tr:last-child td { border-bottom: none; }
        .grade { font-weight: 700; font-size: 15px; }
        .grade-a { color: #166534; }
        .grade-b { color: #1d4ed8; }
        .grade-c { color: #92400e; }
        .grade-d, .grade-f { color: #991b1b; }
    
        /* Badges */
        .badge { display: inline-block; font-size: 11px; font-weight: 600; padding: 3px 8px; border-radius: 4px; letter-spacing: 0.03em; }
        .badge-go { background: #dcfce7; color: #166534; }
        .badge-investigate { background: #fef9c3; color: #854d0e; }
        .badge-pass { background: #fee2e2; color: #991b1b; }
        .badge-low { background: #dcfce7; color: #166534; }
        .badge-medium { background: #fef9c3; color: #854d0e; }
        .badge-high { background: #fee2e2; color: #991b1b; }
        .badge-clear { background: #dcfce7; color: #166534; }
        .badge-caution { background: #fef9c3; color: #854d0e; }
        .badge-blocked { background: #fee2e2; color: #991b1b; }
    
        /* Callout */
        .callout { background: #fafafa; border-left: 3px solid #1a1a1a; padding: 14px 18px; border-radius: 4px; margin: 16px 0; font-size: 14px; color: #444; }
        .callout strong { color: #1a1a1a; }
    
        /* Stats grid */
        .stats-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 16px; margin-bottom: 20px; }
        .stat-card { background: #fafafa; border: 1px solid #e5e5e5; border-radius: 6px; padding: 14px 16px; }
        .stat-card .label { font-size: 11px; font-weight: 600; color: #999; text-transform: uppercase; letter-spacing: 0.05em; margin-bottom: 6px; }
        .stat-card .value { font-size: 20px; font-weight: 700; letter-spacing: -0.02em; }
        .stat-card .sub { font-size: 12px; color: #666; margin-top: 2px; }
    
        /* Supplier score bar */
        .score-bar { display: flex; align-items: center; gap: 8px; }
        .score-bar .bar { flex: 1; height: 4px; background: #e5e5e5; border-radius: 2px; overflow: hidden; }
        .score-bar .fill { height: 100%; background: #1a1a1a; border-radius: 2px; }
        .score-bar .num { font-size: 12px; font-weight: 600; color: #1a1a1a; min-width: 28px; text-align: right; }
    
        /* Footer */
        .report-footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid #e5e5e5; display: flex; justify-content: space-between; align-items: center; }
        .report-footer .brand-mark { font-size: 13px; font-weight: 600; color: #1a1a1a; }
        .report-footer .generated { font-size: 12px; color: #999; }
      </style>
    </head>
    <body>
    <div class="page">
    
      <!-- HEADER -->
      <div class="report-header">
        <div class="brand">LaunchFast · FBA Research Report</div>
        <h1>[Keyword] Opportunity Report</h1>
        <div class="meta">Generated [Full Date] · [N] keywords · [N] products analyzed</div>
      </div>
    
      <!-- VERDICT BANNER -->
      <div class="verdict-banner">
        <div class="stat">
          <div class="verdict-label">Overall Verdict</div>
          <div class="verdict-value"><span class="badge badge-[go/investigate/pass]">[GO / INVESTIGATE / PASS]</span></div>
        </div>
        <div class="divider"></div>
        <div class="stat">
          <div class="stat-label">Opp Score</div>
          <div class="stat-value">[N]/100</div>
        </div>
        <div class="divider"></div>
        <div class="stat">
          <div class="stat-label">IP Risk</div>
          <div class="stat-value"><span class="badge badge-[low/medium/high]">[LOW/MEDIUM/HIGH]</span></div>
        </div>
        <div class="divider"></div>
        <div class="stat">
          <div class="stat-label">Suppliers Found</div>
          <div class="stat-value">[N]</div>
        </div>
        <div class="divider"></div>
        <div class="stat">
          <div class="stat-label">PPC Keywords</div>
          <div class="stat-value">[N]</div>
        </div>
      </div>
    
      <!-- PHASE 1: PRODUCT RESEARCH -->
      <div class="section">
        <div class="section-header">
          <div class="section-title">Product Research</div>
          <div class="phase-label">Phase 1</div>
        </div>
    
        <div class="stats-grid">
          <div class="stat-card">
            <div class="label">Products Analyzed</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Top Revenue</div>
            <div class="value">$[X]k<span style="font-size:14px;font-weight:500">/mo</span></div>
          </div>
          <div class="stat-card">
            <div class="label">Price Range</div>
            <div class="value">$[X]–$[X]</div>
          </div>
          <div class="stat-card">
            <div class="label">Avg Reviews</div>
            <div class="value">[N]</div>
          </div>
        </div>
    
        <table>
          <thead>
            <tr>
              <th>#</th>
              <th>Product</th>
              <th>Grade</th>
              <th>Revenue/mo</th>
              <th>Price</th>
              <th>Reviews</th>
              <th>BSR</th>
            </tr>
          </thead>
          <tbody>
            <!-- Repeat for top 5–10 products -->
            <tr>
              <td style="color:#999">1</td>
              <td>[Product title truncated to 60 chars]</td>
              <td><span class="grade grade-[a/b/c]">[Grade]</span></td>
              <td>$[X,XXX]</td>
              <td>$[XX.XX]</td>
              <td>[X,XXX]</td>
              <td>#[X,XXX]</td>
            </tr>
          </tbody>
        </table>
    
        <div class="callout" style="margin-top:20px">
          <strong>Key finding:</strong> [1-2 sentence insight about the market — grade distribution, revenue consistency, competitive dynamics]
        </div>
      </div>
    
      <!-- PHASE 2: IP CHECK -->
      <div class="section">
        <div class="section-header">
          <div class="section-title">IP & Trademark Check</div>
          <div class="phase-label">Phase 2</div>
        </div>
    
        <div class="stats-grid">
          <div class="stat-card">
            <div class="label">IP Risk Level</div>
            <div class="value"><span class="badge badge-[low/medium/high]">[LOW/MEDIUM/HIGH]</span></div>
          </div>
          <div class="stat-card">
            <div class="label">Active Trademarks</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Patent Hits</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Assessment</div>
            <div class="value"><span class="badge badge-[clear/caution/blocked]">[CLEAR/CAUTION/BLOCKED]</span></div>
          </div>
        </div>
    
        <!-- If trademarks found, show table -->
        <table>
          <thead>
            <tr><th>Trademark</th><th>Owner</th><th>Status</th><th>Class</th></tr>
          </thead>
          <tbody>
            <tr>
              <td>[Trademark name]</td>
              <td>[Owner]</td>
              <td>[Live/Dead]</td>
              <td>[Class number]</td>
            </tr>
          </tbody>
        </table>
    
        <div class="callout" style="margin-top:20px">
          <strong>Recommendation:</strong> [Clear action — e.g. "No direct conflicts found. Avoid branding your product as [word] to stay safe." or "HIGH risk — consult an IP attorney before proceeding."]
        </div>
      </div>
    
      <!-- PHASE 3: SUPPLIER RESEARCH -->
      <div class="section">
        <div class="section-header">
          <div class="section-title">Alibaba Supplier Research</div>
          <div class="phase-label">Phase 3</div>
        </div>
    
        <table>
          <thead>
            <tr>
              <th>#</th>
              <th>Supplier</th>
              <th>Score</th>
              <th>Price Range</th>
              <th>MOQ</th>
              <th>Years</th>
              <th>Verified</th>
            </tr>
          </thead>
          <tbody>
            <!-- Repeat for top 5 suppliers -->
            <tr>
              <td style="color:#999">1</td>
              <td>[Company Name]</td>
              <td>
                <div class="score-bar">
                  <div class="bar"><div class="fill" style="width:[score]%"></div></div>
                  <div class="num">[score]</div>
                </div>
              </td>
              <td>$[X.XX]–$[X.XX]</td>
              <td>[N] units</td>
              <td>[N] yrs</td>
              <td>[Gold · TA · Assessed]</td>
            </tr>
          </tbody>
        </table>
    
        <div class="callout" style="margin-top:20px">
          <strong>Top pick:</strong> [Company Name] — [reason: highest score, most verifications, best price range for target margin]
        </div>
      </div>
    
      <!-- PHASE 4: PPC KEYWORDS -->
      <div class="section">
        <div class="section-header">
          <div class="section-title">PPC Keyword Intelligence</div>
          <div class="phase-label">Phase 4</div>
        </div>
    
        <div class="stats-grid">
          <div class="stat-card">
            <div class="label">Total Keywords</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Tier 1 (Priority)</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Tier 2 (Growth)</div>
            <div class="value">[N]</div>
          </div>
          <div class="stat-card">
            <div class="label">Tier 3 (Discovery)</div>
            <div class="value">[N]</div>
          </div>
        </div>
    
        <table>
          <thead>
            <tr><th>#</th><th>Keyword</th><th>Search Vol</th><th>Tier</th><th>Match Types</th><th>Est. CPC</th></tr>
          </thead>
          <tbody>
            <!-- Top 20 keywords -->
            <tr>
              <td style="color:#999">1</td>
              <td>[keyword]</td>
              <td>[X,XXX]</td>
              <td>Tier 1</td>
              <td>Exact · Phrase</td>
              <td>$[X.XX]</td>
            </tr>
          </tbody>
        </table>
    
        <div class="callout" style="margin-top:20px">
          <strong>Campaign strategy:</strong> [Brief recommendation — e.g. "Start with the 12 Tier 1 exact-match keywords at $0.90 bid. Run broad on Tier 3 for discovery data. Revisit in 2 weeks."]
        </div>
      </div>
    
      <!-- FOOTER -->
      <div class="report-footer">
        <div class="brand-mark">LaunchFast</div>
        <div class="generated">Generated [Date] · Data via LaunchFast MCP</div>
      </div>
    
    </div>
    </body>
    </html>

    Fill ALL placeholder values (`[...]`) with real data from the research phases.

    Save the complete file to the path from Step 1.

    ---

    STEP 6 — Summary to user

    After saving the file:

    ## Research Complete ✓
    
    Report saved to: [file path]
    
    Quick summary:
    - Keyword: [keyword]
    - Verdict: [GO / INVESTIGATE / PASS] (Score: [N]/100)
    - IP Risk: [LOW / MEDIUM / HIGH]
    - Best supplier: [Company Name] ($X.XX–$X.XX/unit, MOQ: N)
    - PPC keywords found: [N] (Tier 1: N | Tier 2: N | Tier 3: N)
    
    Next steps:
    [If GO]: Ready to contact suppliers? Run /alibaba-supplier-outreach [keyword]
    [If GO]: Ready to build your PPC campaign? Run /launchfast-ppc-research [ASINs]
    [If INVESTIGATE]: [Specific concern to investigate]
    [If PASS]: [Clear reason — what would need to change for this to become viable]
    // Comments
    Sign in with GitHub to leave a comment.
    // Related skills

    More tools from the same signal band