/research
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.
MCP Tools (use if available)
If MCP tools are available, prefer them over CLI:
kb_search(query, n_results) — search knowledge base for related docs
web_search(query, engines, include_raw_content) — web search with engine routing
session_search(query, project) — find how similar research was done before
project_info(name) — check project details and stacks
codegraph_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 code
MCP 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.
Reddit Search Best Practices
- Max 3 keywords in reddit queries — more keywords = fewer results
- Good:
"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 below
Reddit Content Access — Fallback Chain
When 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)
- Use
browser_navigate("https://old.reddit.com/r/...") — old.reddit.com loads without CAPTCHA
www.reddit.com shows CAPTCHA ("Prove your humanity"), always use old.reddit.com
- Snapshot contains full post text + comments in structured YAML
- Example:
old.reddit.com/r/indiehackers/comments/abc123/post_title/
Method 2: PullPush API (for search/discovery)
- Endpoint:
https://api.pullpush.io/reddit/submission/search
- Params:
q, subreddit, author, score (e.g. >10,<100), since/until (unix timestamps), size (max 100)
- Rate limits: soft 15 req/min, hard 30 req/min, 1000 req/hr. Sleep 4 sec between requests.
- Returns JSON with full
selftext, author, score, created_utc
- Comment search:
/reddit/comment/search (same params)
- Can use via curl:
curl -s "https://api.pullpush.io/reddit/submission/search?q=product+hunt+launch&subreddit=indiehackers&size=10"
Method 3: Reddit .json endpoint (often blocked)
- Append
.json to any Reddit URL: reddit.com/r/sub/comments/id.json
- Returns raw JSON with full post + comments
- Frequently blocked (403/429) — use as opportunistic fallback only
Method 4: PRAW (Reddit Official API, for live search/user profiles)
- praw-dev/praw — Python Reddit API Wrapper
- OAuth2 auth, built-in rate limiting, sync/async support
- Best for: live subreddit search, user profiles, comment trees
pip install praw / uv add praw
Search Strategy: Hybrid (MCP + WebSearch)
Use 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 |
Search Availability
Use WebSearch/WebFetch as primary. If MCP web_search tool is available, use it for better results (supports engine routing and raw content extraction).
Steps
Parse the idea from $ARGUMENTS. If empty, ask the user what idea they want to research.
Detect product type — infer from the idea description:
- Keywords like "app", "mobile", "iPhone", "Android" → mobile (ios/android)
- Keywords like "website", "SaaS", "dashboard", "web app" → web
- Keywords like "CLI", "terminal", "command line" → cli
- Keywords like "API", "backend", "service" → api
- Keywords like "extension", "plugin", "browser" → web (extension)
- Default if unclear → web
- Only ask via AskUserQuestion if truly ambiguous (e.g., "build a todo app" could be web or mobile)
- This determines which research sections apply (ASO for mobile, SEO for web, etc.)
Search knowledge base and past work:
- If MCP
kb_search available: kb_search(query="<idea keywords>", n_results=5)
- If MCP
session_search available: session_search(query="<idea keywords>") — check if this idea was researched before
- Otherwise: Grep for keywords in
.md files
- Check if
research.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 portfolio
project_code_search(query="<relevant pattern>", project="<sibling>") — find reusable code, patterns, infrastructure
codegraph_query("MATCH (p:Project)-[:DEPENDS_ON]->(pkg:Package) WHERE pkg.name CONTAINS '<relevant tech>' RETURN p.name, pkg.name") — find projects using similar tech
- This helps assess: feasibility, reusable code, stack decisions, and time estimates
- If no MCP tools available, skip this step.
Competitive analysis — use WebSearch (primary) + MCP web_search (if available):
"<idea> competitors alternatives 2026" — broad discovery
"<idea> app review pricing" — pricing data
- WebFetch or MCP
include_raw_content=true: scrape competitor URLs for detailed pricing
- MCP
engines: 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)
- For each competitor extract: name, URL, pricing, key features, weaknesses, verified MRR (if on TrustMRR)
User pain points — use MCP web_search / WebSearch + YouTube:
- MCP
engines: reddit or WebSearch: "<problem>" — Reddit discussions (max 3 keywords!)
- If Reddit post found but content not available → open via MCP Playwright:
browser_navigate("https://old.reddit.com/r/...") — old.reddit.com bypasses CAPTCHA
- MCP
engines: youtube or WebSearch: "<problem> review" — video reviews
"site:news.ycombinator.com <problem>" — Hacker News opinions
- WebSearch:
"<problem> frustrating OR annoying" — broader sweep
- Synthesis: top 5 pain points with quotes and source URLs
SEO / 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 signals
- WebFetch or MCP
include_raw_content: scrape competitor pages for meta tags
- Result: keyword table (keyword, intent, competition, relevance)
For mobile apps:
"<category> App Store top apps keywords 2026" — category landscape
"site:reddit.com <competitor app> review" — user complaints
- Result: ASO keywords, competitor ratings, common complaints
Naming, domains, and company registration:
- Generate 7-10 name candidates (mix of descriptive + invented/brandable)
- Domain availability: triple verification (whois → dig → RDAP)
- Trademark + company name conflict checks
See references/domain-check.md (bundled with this skill) for TLD priority tiers, bash scripts, gotchas, and trademark check methods.
Market sizing (TAM/SAM/SOM) — use WebSearch (primary):
- WebSearch:
"<market> market size 2025 2026 report" — synthesizes numbers
- WebSearch:
"<market> growth rate CAGR billion" — growth projections
- Extrapolation: TAM → SAM → SOM (Year 1)
Write research.md — write to docs/research.md in the current project directory. Create the directory if needed.
Output summary:
- Key findings (3-5 bullets)
- Recommendation: GO / NO-GO / PIVOT with brief reasoning
- Path to generated research.md
- Suggested next step:
/validate <idea>
research.md Format
See references/research-template.md (bundled with this skill) for the full output template (frontmatter, 6 sections, tables).
Notes
- Always use kebab-case for project directory names
- If research.md already exists, ask before overwriting
- Run search queries in parallel when independent
Common Issues
MCP web_search not available
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.
Domain check returns wrong results
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.
research.md already exists
Cause: Previous research run for this idea.
Fix: Skill asks before overwriting. Choose to merge new findings or start fresh.
Proactive Search Practices
Reddit Deep Dive
- MCP web_search or WebSearch — use for discovery (max 3 keywords for Reddit), get post URLs
- MCP Playwright — open
old.reddit.com URLs to read full post + comments (bypasses CAPTCHA)
- Extract quotes — copy key phrases with attribution (u/username, subreddit, date)
- Cross-post detection — same post in multiple subreddits = higher signal
Product Hunt Research
- producthunt.com/visit-streaks — streak leaderboard (scrapeable via Playwright)
- producthunt.com/@username — profile with social links, maker history, points
- PH API v2 is broken — redacts usernames/Twitter since Feb 2023, use scraping
- Apify actors — check for DEPRECATED status before relying on them (mass deprecation Sep 2025)
TrustMRR Revenue Validation
trustmrr.com/startup/<slug> — Stripe-verified MRR, growth %, subscriptions, traffic
- WebFetch works — no auth needed, returns full page with JSON-LD structured data
- Data fields: MRR, all-time revenue, last 30 days, active subs, tech stack, traffic (24h/7d/30d), category, founder X handle
- Use for: competitor revenue validation, market sizing with real data, tech stack discovery
- Search:
"site:trustmrr.com <category or idea>" to find similar startups with verified revenue
- Apify scrapers: TrustMRR Scraper for bulk extraction
GitHub Library Discovery
- MCP
engines: github — often returns empty, use WebSearch as primary
- github.com/topics/ — browse topic pages via Playwright or WebFetch
- Check stars, last update, open issues — avoid abandoned repos
Blocked Content Fallback Chain
MCP Playwright (best) → PullPush API (Reddit) → WebFetch → WebSearch snippets → MCP web_search include_raw_content
If a page returns 403/CAPTCHA via WebFetch:
- Reddit: MCP Playwright →
old.reddit.com (always works, no CAPTCHA)
- Reddit search: PullPush API
api.pullpush.io (structured JSON, full selftext)
- Product Hunt / other sites: MCP Playwright
browser_navigate (no captcha on most sites)
- General: WebSearch snippets + WebSearch synthesis
1---2name: solo-research3description: Deep market research — competitor analysis, user pain points, SEO/ASO keywords, naming/domain availability, and TAM/SAM/SOM sizing. Use when user says "research this idea", "find competitors", "check the market", "domain availability", "market size", or "analyze opportunity". Do NOT use for idea scoring (use /validate) or SEO auditing existing pages (use /seo-audit).4license: MIT5---6
7# /research
8
9Deep research before PRD generation. Produces a structured `research.md` with competitive analysis, user pain points, SEO/ASO keywords, naming/domain options, and market sizing.
10
11## MCP Tools (use if available)
12
13If MCP tools are available, prefer them over CLI:
14- `kb_search(query, n_results)` — search knowledge base for related docs
15- `web_search(query, engines, include_raw_content)` — web search with engine routing
16- `session_search(query, project)` — find how similar research was done before
17- `project_info(name)` — check project details and stacks
18- `codegraph_explain(project)` — architecture overview of an existing project (stack, patterns, deps)
19- `codegraph_query(query)` — raw Cypher queries against code graph (find shared packages, dependencies)
20- `project_code_search(query, project)` — semantic search over project source code
21
22MCP `web_search` supports engine override: `engines="reddit"`, `engines="youtube"`, etc.
23If MCP tools are not available, use WebSearch/WebFetch as primary. If MCP web_search tool is available, use it for better results.
24
25### Reddit Search Best Practices
26
27- **Max 3 keywords** in reddit queries — more keywords = fewer results
28- Good: `"product hunt outreach launch"` — Bad: `"product hunt scraper maker profiles linkedin outreach launch strategy"`
29- `include_raw_content=true` rarely works for Reddit — use fallback chain below
30
31### Reddit Content Access — Fallback Chain
32
33When a search finds a relevant Reddit post, reading its full content requires a fallback chain:
34
35```
361. MCP Playwright (old.reddit.com) ← BEST: bypasses CAPTCHA, full post + comments
372. PullPush API (api.pullpush.io) ← search by query/subreddit/author/score/date
383. MCP web_search include_raw_content ← sometimes works, often truncated
394. WebFetch / WebSearch snippets ← last resort, partial data only
40```
41
42**Method 1: MCP Playwright** (recommended for full post content)
43- Use `browser_navigate("https://old.reddit.com/r/...")` — old.reddit.com loads without CAPTCHA
44- `www.reddit.com` shows CAPTCHA ("Prove your humanity"), always use `old.reddit.com`
45- Snapshot contains full post text + comments in structured YAML
46- Example: `old.reddit.com/r/indiehackers/comments/abc123/post_title/`
47
48**Method 2: PullPush API** (for search/discovery)
49- Endpoint: `https://api.pullpush.io/reddit/submission/search`
50- Params: `q`, `subreddit`, `author`, `score` (e.g. `>10,<100`), `since`/`until` (unix timestamps), `size` (max 100)
51- Rate limits: soft 15 req/min, hard 30 req/min, 1000 req/hr. Sleep 4 sec between requests.
52- Returns JSON with full `selftext`, author, score, created_utc
53- Comment search: `/reddit/comment/search` (same params)
54- Can use via curl:
55```bash
56curl -s "https://api.pullpush.io/reddit/submission/search?q=product+hunt+launch&subreddit=indiehackers&size=10"
57```
58
59**Method 3: Reddit .json endpoint** (often blocked)
60- Append `.json` to any Reddit URL: `reddit.com/r/sub/comments/id.json`
61- Returns raw JSON with full post + comments
62- Frequently blocked (403/429) — use as opportunistic fallback only
63
64**Method 4: PRAW** (Reddit Official API, for live search/user profiles)
65- [praw-dev/praw](https://github.com/praw-dev/praw) — Python Reddit API Wrapper
66- OAuth2 auth, built-in rate limiting, sync/async support
67- Best for: live subreddit search, user profiles, comment trees
68- `pip install praw` / `uv add praw`
69
70## Search Strategy: Hybrid (MCP + WebSearch)
71
72Use **multiple** search backends together. Each has strengths:
73
74| Step | Best backend | Why |
75|------|-------------|-----|
76| **Competitors** | WebSearch + `site:producthunt.com` + `site:g2.com` | Broad discovery + Product Hunt + B2B reviews |
77| **Reddit / Pain points** | MCP `web_search` with `engines: reddit` (max 3 keywords!) + MCP Playwright for full posts | PullPush API, selftext in content |
78| **YouTube reviews** | MCP `web_search` with `engines: youtube` | Video reviews (views = demand) |
79| **Market size** | WebSearch | Synthesizes numbers from 10 sources |
80| **SEO / ASO** | WebSearch | Broader coverage, trend data |
81| **Page scraping** | WebFetch or MCP `web_search` with `include_raw_content` | Up to 5000 chars of page content |
82| **Hacker News** | WebSearch `site:news.ycombinator.com` | HN discussions and opinions |
83| **Funding / Companies** | WebSearch `site:crunchbase.com` | Competitor funding, team size |
84| **Verified revenue** | WebFetch `trustmrr.com/startup/<slug>` | Stripe-verified MRR, growth, tech stack, traffic |
85
86### Search Availability
87
88Use WebSearch/WebFetch as primary. If MCP `web_search` tool is available, use it for better results (supports engine routing and raw content extraction).
89
90## Steps
91
921. **Parse the idea** from `$ARGUMENTS`. If empty, ask the user what idea they want to research.
93
942. **Detect product type** — infer from the idea description:
95 - Keywords like "app", "mobile", "iPhone", "Android" → mobile (ios/android)
96 - Keywords like "website", "SaaS", "dashboard", "web app" → web
97 - Keywords like "CLI", "terminal", "command line" → cli
98 - Keywords like "API", "backend", "service" → api
99 - Keywords like "extension", "plugin", "browser" → web (extension)
100 - Default if unclear → web
101 - Only ask via AskUserQuestion if truly ambiguous (e.g., "build a todo app" could be web or mobile)
102 - This determines which research sections apply (ASO for mobile, SEO for web, etc.)
103
1043. **Search knowledge base and past work:**
105 - If MCP `kb_search` available: `kb_search(query="<idea keywords>", n_results=5)`
106 - If MCP `session_search` available: `session_search(query="<idea keywords>")` — check if this idea was researched before
107 - Otherwise: Grep for keywords in `.md` files
108 - Check if `research.md` or `prd.md` already exist for this idea.
109
1104. **Check existing portfolio** (if MCP codegraph tools available):
111 - `codegraph_explain(project="<similar project>")` — architecture overview of related projects in the portfolio
112 - `project_code_search(query="<relevant pattern>", project="<sibling>")` — find reusable code, patterns, infrastructure
113 - `codegraph_query("MATCH (p:Project)-[:DEPENDS_ON]->(pkg:Package) WHERE pkg.name CONTAINS '<relevant tech>' RETURN p.name, pkg.name")` — find projects using similar tech
114 - This helps assess: feasibility, reusable code, stack decisions, and time estimates
115 - If no MCP tools available, skip this step.
116
1175. **Competitive analysis** — use WebSearch (primary) + MCP web_search (if available):
118 - `"<idea> competitors alternatives 2026"` — broad discovery
119 - `"<idea> app review pricing"` — pricing data
120 - WebFetch or MCP `include_raw_content=true`: scrape competitor URLs for detailed pricing
121 - MCP `engines: reddit` or WebSearch: `"<idea> vs"` — user opinions
122 - `"site:producthunt.com <idea>"` — Product Hunt launches
123 - `"site:g2.com <idea>"` or `"site:capterra.com <idea>"` — B2B reviews
124 - `"site:crunchbase.com <competitor>"` — funding, team size
125 - `"site:trustmrr.com <idea>"` or WebFetch `trustmrr.com/startup/<slug>` — Stripe-verified MRR, growth %, tech stack, traffic (24h/7d/30d)
126 - For each competitor extract: name, URL, pricing, key features, weaknesses, verified MRR (if on TrustMRR)
127
1286. **User pain points** — use MCP web_search / WebSearch + YouTube:
129 - MCP `engines: reddit` or WebSearch: `"<problem>"` — Reddit discussions (**max 3 keywords!**)
130 - If Reddit post found but content not available → open via MCP Playwright: `browser_navigate("https://old.reddit.com/r/...")` — old.reddit.com bypasses CAPTCHA
131 - MCP `engines: youtube` or WebSearch: `"<problem> review"` — video reviews
132 - `"site:news.ycombinator.com <problem>"` — Hacker News opinions
133 - WebSearch: `"<problem> frustrating OR annoying"` — broader sweep
134 - Synthesis: top 5 pain points with quotes and source URLs
135
1367. **SEO / ASO analysis** (depends on product type from step 2):
137
138 **For web apps:**
139 - `"<competitor> SEO keywords ranking"` — competitor keywords
140 - `"<problem domain> search volume trends 2026"` — demand signals
141 - WebFetch or MCP `include_raw_content`: scrape competitor pages for meta tags
142 - Result: keyword table (keyword, intent, competition, relevance)
143
144 **For mobile apps:**
145 - `"<category> App Store top apps keywords 2026"` — category landscape
146 - `"site:reddit.com <competitor app> review"` — user complaints
147 - Result: ASO keywords, competitor ratings, common complaints
148
1498. **Naming, domains, and company registration:**
150 - Generate 7-10 name candidates (mix of descriptive + invented/brandable)
151 - Domain availability: triple verification (whois → dig → RDAP)
152 - Trademark + company name conflict checks
153
154 See `references/domain-check.md` (bundled with this skill) for TLD priority tiers, bash scripts, gotchas, and trademark check methods.
155
1569. **Market sizing** (TAM/SAM/SOM) — use WebSearch (primary):
157 - WebSearch: `"<market> market size 2025 2026 report"` — synthesizes numbers
158 - WebSearch: `"<market> growth rate CAGR billion"` — growth projections
159 - Extrapolation: TAM → SAM → SOM (Year 1)
160
16110. **Write `research.md`** — write to `docs/research.md` in the current project directory. Create the directory if needed.
162
16311. **Output summary:**
164 - Key findings (3-5 bullets)
165 - Recommendation: GO / NO-GO / PIVOT with brief reasoning
166 - Path to generated research.md
167 - Suggested next step: `/validate <idea>`
168
169## research.md Format
170
171See `references/research-template.md` (bundled with this skill) for the full output template (frontmatter, 6 sections, tables).
172
173## Notes
174
175- Always use kebab-case for project directory names
176- If research.md already exists, ask before overwriting
177- Run search queries in parallel when independent
178
179## Common Issues
180
181### MCP web_search not available
182**Cause:** MCP server not running or not configured.
183**Fix:** Use WebSearch/WebFetch as primary. For better results with engine routing (Reddit, GitHub, YouTube), set up [SearXNG](https://github.com/fortunto2/searxng-docker-tavily-adapter) (private, self-hosted, free) and configure solograph MCP.
184
185### Domain check returns wrong results
186**Cause:** `.app`/`.dev` whois shows TLD creation date for unregistered domains.
187**Fix:** Use the triple verification method (whois -> dig -> RDAP). Check Name Server and Registrar fields, not creation date.
188
189### research.md already exists
190**Cause:** Previous research run for this idea.
191**Fix:** Skill asks before overwriting. Choose to merge new findings or start fresh.
192
193## Proactive Search Practices
194
195### Reddit Deep Dive
196
1971. **MCP web_search or WebSearch** — use for discovery (max 3 keywords for Reddit), get post URLs
1982. **MCP Playwright** — open `old.reddit.com` URLs to read full post + comments (bypasses CAPTCHA)
1993. **Extract quotes** — copy key phrases with attribution (u/username, subreddit, date)
2004. **Cross-post detection** — same post in multiple subreddits = higher signal
201
202### Product Hunt Research
203
2041. **producthunt.com/visit-streaks** — streak leaderboard (scrapeable via Playwright)
2052. **producthunt.com/@username** — profile with social links, maker history, points
2063. **PH API v2 is broken** — redacts usernames/Twitter since Feb 2023, use scraping
2074. **Apify actors** — check for DEPRECATED status before relying on them (mass deprecation Sep 2025)
208
209### TrustMRR Revenue Validation
210
2111. **`trustmrr.com/startup/<slug>`** — Stripe-verified MRR, growth %, subscriptions, traffic
2122. **WebFetch works** — no auth needed, returns full page with JSON-LD structured data
2133. **Data fields:** MRR, all-time revenue, last 30 days, active subs, tech stack, traffic (24h/7d/30d), category, founder X handle
2144. **Use for:** competitor revenue validation, market sizing with real data, tech stack discovery
2155. **Search:** `"site:trustmrr.com <category or idea>"` to find similar startups with verified revenue
2166. **Apify scrapers:** [TrustMRR Scraper](https://apify.com/actor_builder/trustmrr-scraper/api) for bulk extraction
217
218### GitHub Library Discovery
219
2201. **MCP `engines: github`** — often returns empty, use WebSearch as primary
2212. **github.com/topics/<keyword>** — browse topic pages via Playwright or WebFetch
2223. **Check stars, last update, open issues** — avoid abandoned repos
223
224### Blocked Content Fallback Chain
225
226```
227MCP Playwright (best) → PullPush API (Reddit) → WebFetch → WebSearch snippets → MCP web_search include_raw_content
228```
229
230If a page returns 403/CAPTCHA via WebFetch:
2311. **Reddit:** MCP Playwright → `old.reddit.com` (always works, no CAPTCHA)
2322. **Reddit search:** PullPush API `api.pullpush.io` (structured JSON, full selftext)
2333. **Product Hunt / other sites:** MCP Playwright `browser_navigate` (no captcha on most sites)
2344. **General:** WebSearch snippets + WebSearch synthesis