Back to skills
SKILL.md
Topic Resolver
ASecurityPre-search topic resolution. Maps vague queries to concrete entities (GitHub orgs, X handles, subreddits, docs URLs) before searching. Run as first step of any research workflow to dramatically improve search precision.
- 666 stars
- 0 votes
- 0 copies
- 0 views
- Added September 2, 2026
Security analysis
100/100npx -y skills add majiayu000/claude-skill-registry --skill topic-resolver --agent claude-codeAre you the author of Topic Resolver?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/majiayu000-topic-resolver)---
name: topic-resolver
description: "Pre-search topic resolution. Maps vague queries to concrete entities (GitHub orgs, X handles, subreddits, docs URLs) before searching. Run as first step of any research workflow to dramatically improve search precision."
---
# Topic Resolver
Before running any web search or research workflow, resolve the topic to concrete, searchable entities. One small LLM call upfront saves 10x the tokens in search noise.
## The Problem
Raw topic queries produce noisy results:
```
User: "latest in Next.js"
Raw search: "next.js latest" -> news articles, old tutorials, unrelated mentions
```
## The Solution
Resolve first, search second:
```
User: "latest in Next.js"
Step 1: Topic -> Entities
Framework: Next.js 15
Org: vercel/next.js (GitHub)
Docs: https://nextjs.org/blog
Community: r/nextjs (Reddit)
Maintainer: @timneutkens (X)
Release channel: github.com/vercel/next.js/releases
Step 2: Parallel searches on resolved entities
- GitHub: vercel/next.js latest commits + releases
- X: @timneutkens latest posts
- Reddit: r/nextjs top this week
- Docs: nextjs.org/blog latest entries
```
## Entity Categories
For any topic, resolve to these categories (only if applicable):
| Category | Example |
|----------|---------|
| **Official repo** | GitHub owner/repo |
| **Org account** | X/Twitter handle |
| **Docs URL** | Authoritative documentation |
| **Release channel** | RSS, changelog, release page |
| **Community** | Subreddit, Discord, forum |
| **Key maintainers** | Individual accounts (up to 3) |
| **Related packages** | npm, pip, cargo names |
| **Benchmarks** | Known comparison sites |
## Resolution Rules
1. **Use LLM knowledge first** - most entities are memorable (Next.js -> vercel/next.js is obvious)
2. **Only search when uncertain** - don't waste tokens resolving obvious mappings
3. **Cap at 8 entities** - more than that is noise
4. **Verify if critical** - for high-stakes research, confirm 1-2 entities via web fetch
5. **Cache resolutions** - topic -> entities cached in `~/.claude/topic-cache.jsonl`
## Output Format
```json
{
"topic": "Next.js 15",
"entities": {
"repo": "vercel/next.js",
"docs": "https://nextjs.org/docs",
"blog": "https://nextjs.org/blog",
"x_handles": ["@timneutkens", "@rauchg"],
"subreddit": "r/nextjs",
"npm": "next"
},
"confidence": 0.95,
"resolved_at": "2026-04-12T04:00:00Z"
}
```
## Integration
- **oracle agent**: Calls topic-resolver first, then searches resolved entities
- **harvest agent**: Uses resolved entities as starting URLs for deep crawl
- **growth agent**: Uses resolved competitors/communities for market analysis
## When NOT to Use
- Very specific queries (already pointing at one thing)
- Internal/private topics (no public entities to resolve)
- Time-sensitive urgent research (skip the resolution step)
## Example Workflow
```
1. User: "whats happening with Astro framework"
2. topic-resolver:
- repo: withastro/astro
- docs: https://astro.build/blog
- x: @astrodotbuild
- subreddit: r/astrojs
3. oracle parallel search:
- Latest commits on withastro/astro
- Recent @astrodotbuild posts
- r/astrojs top this week
- Astro blog last 10 posts
4. Cluster results, return coherent update
```
Attribution
Comments
Loading comments…
Newsletter
Get the weekly list of safe new skills, and the ones we pulled.