Hybrid semantic discovery — fuses embeddings + keyword search + live web search via 3-way Reciprocal Rank Fusion. Use when the user has a good source and wants more like it, says "find similar", "related pages", "more like this", or wants to discover content related to a known URL or concept. Works best after a `crawl` or several `fetch` calls have warmed the local cache. Emits `cold_start` when local signals are weak.
72
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Hybrid semantic discovery: semantic embeddings + keyword search + web search, fused via Reciprocal Rank Fusion (RRF).
// Find pages similar to a URL
{ "url": "https://docs.astro.build/en/getting-started/" }
// Find pages related to a concept
{ "concept": "JavaScript framework server-side rendering" }
// Scoped to specific domains
{ "url": "https://react.dev/reference/react/use", "include_domains": ["vuejs.org", "svelte.dev"] }
// Cache-only (no web fallback)
{ "url": "https://example.com/page", "include_web": false }| Parameter | Type | Default | When to use |
|---|---|---|---|
url | string | — | Find pages similar to this URL's content |
concept | string | — | Find pages related to a text concept (no URL needed) |
max_results | number | 10 | Cap at 50 |
include_domains | string[] | none | Scope results to specific sites |
exclude_domains | string[] | none | Filter out domains |
include_cache | boolean | true | Search local cache (fast, free) |
include_web | boolean | true | Web fallback when cache is sparse |
mode | string | "auto" | "auto", "cache", "web-expansion", "crawl-rank" |
threshold | number | 0 | Hard post-filter on the raw fused score; 0 = no filtering. Filters match_signals.fused_score, not the normalized relevance_score |
include_ranking_debug | boolean | false | Attach per-result ranking_debug with the raw ranks |
max_tokens_out | number | none | Token-budget cap (cl100k-base) |
include_full_markdown | boolean | false | Restore full body alongside evidence |
citation_format | string | "numbered" | "numbered" / "json" / "anthropic_tags" |
Provide either url or concept (not both).
match_signals with the fused_score. Set include_ranking_debug: true to also attach a per-result ranking_debug object exposing the individual source ranks (fts5_rank, embedding_rank, web_rank, rrf_score) so you can audit disagreement between the three ranking sources.auto (default) — pick the strategy from available signals.cache — local hybrid only (keyword + semantic over the cache).web-expansion — derive key terms and expand via web search.crawl-rank — 1-hop crawl from the seed URL, embed, and cosine-rank the neighbours.When the fused score from local signals is below threshold (env WIGOLO_FIND_SIMILAR_COLD_START_THRESHOLD), the response includes a cold_start string explaining why results came from web search. Pass it verbatim to the user.
find_similar works best with a warm cache. Recommended workflow:
// Step 1: crawl to populate cache with embeddings
{ "url": "https://docs.framework.dev", "strategy": "sitemap", "max_pages": 20 }
// Step 2: now find_similar has real semantic signal
{ "url": "https://docs.framework.dev/getting-started" }url and concept — pick one.search instead.search with include_domains.c6ad447
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.