263 lines
6.3 KiB
Markdown
263 lines
6.3 KiB
Markdown
# Tool Selection Guide
|
|
|
|
Complete reference for choosing and using the right tools for documentation discovery.
|
|
|
|
## context7.com (PRIORITY)
|
|
|
|
**Use FIRST for all llms.txt lookups**
|
|
|
|
**Patterns:**
|
|
|
|
GitHub repositories:
|
|
```
|
|
Pattern: https://context7.com/{org}/{repo}/llms.txt
|
|
Examples:
|
|
- https://github.com/vercel/next.js → https://context7.com/vercel/next.js/llms.txt
|
|
- https://github.com/shadcn-ui/ui → https://context7.com/shadcn-ui/ui/llms.txt
|
|
```
|
|
|
|
Websites:
|
|
```
|
|
Pattern: https://context7.com/websites/{normalized-path}/llms.txt
|
|
Examples:
|
|
- https://docs.imgix.com/ → https://context7.com/websites/imgix/llms.txt
|
|
- https://ffmpeg.org/doxygen/8.0/ → https://context7.com/websites/ffmpeg_doxygen_8_0/llms.txt
|
|
```
|
|
|
|
Topic-specific searches:
|
|
```
|
|
Pattern: https://context7.com/{path}/llms.txt?topic={query}
|
|
Examples:
|
|
- https://context7.com/shadcn-ui/ui/llms.txt?topic=date
|
|
- https://context7.com/vercel/next.js/llms.txt?topic=cache
|
|
- https://context7.com/websites/ffmpeg_doxygen_8_0/llms.txt?topic=compress
|
|
```
|
|
|
|
**Benefits:**
|
|
- Comprehensive aggregator of documentation
|
|
- Up-to-date content
|
|
- Topic filtering for targeted results
|
|
- Consistent format across libraries
|
|
- Reduces search time
|
|
|
|
**When to use:**
|
|
- ALWAYS try context7.com first before WebSearch
|
|
- Use topic parameter when user asks about specific feature
|
|
- Fall back to WebSearch only if context7.com returns 404
|
|
|
|
## WebSearch
|
|
|
|
**Use when:**
|
|
- context7.com unavailable or returns 404
|
|
- Finding GitHub repository URLs
|
|
- Locating official documentation sites
|
|
- Identifying package registries
|
|
- Searching for specific versions
|
|
|
|
**Best practices:**
|
|
- Try context7.com FIRST
|
|
- Include domain in query: `site:docs.example.com`
|
|
- Specify version when needed: `v2.0 llms.txt`
|
|
- Use official terms: "official repository" "documentation"
|
|
- Check multiple domains if first fails
|
|
|
|
**Example queries:**
|
|
```
|
|
Good: "Next.js llms.txt site:nextjs.org"
|
|
Good: "React v18 documentation site:react.dev"
|
|
Good: "Vue 3 official github repository"
|
|
|
|
Avoid: "how to use react" (too vague)
|
|
Avoid: "best react tutorial" (not official)
|
|
```
|
|
|
|
## WebFetch
|
|
|
|
**Use when:**
|
|
- Reading llms.txt content
|
|
- Accessing single documentation pages
|
|
- Retrieving specific URLs
|
|
- Checking documentation structure
|
|
- Verifying content availability
|
|
|
|
**Best practices:**
|
|
- Use specific prompt: "Extract all documentation URLs"
|
|
- Handle redirects properly
|
|
- Check for rate limiting
|
|
- Verify content is complete
|
|
- Note last-modified dates when available
|
|
|
|
**Limitations:**
|
|
- Single URL at a time (use Explorer for multiple)
|
|
- May timeout on very large pages
|
|
- Cannot handle dynamic content
|
|
- No JavaScript execution
|
|
|
|
## Task Tool with Explore Subagent
|
|
|
|
**Use when:**
|
|
- Multiple URLs to read (3+)
|
|
- Need parallel exploration
|
|
- Comprehensive documentation coverage
|
|
- Time-sensitive requests
|
|
- Large documentation sets
|
|
|
|
**Best practices:**
|
|
- Launch all agents in single message
|
|
- Distribute workload evenly
|
|
- Group related URLs per agent
|
|
- Maximum 7 agents per batch
|
|
- Provide clear extraction goals
|
|
|
|
**Example prompt:**
|
|
```
|
|
"Read the following URLs and extract:
|
|
1. Installation instructions
|
|
2. Core API methods
|
|
3. Configuration options
|
|
4. Common usage examples
|
|
|
|
URLs:
|
|
- [url1]
|
|
- [url2]
|
|
- [url3]"
|
|
```
|
|
|
|
## Task Tool with Researcher Subagent
|
|
|
|
**Use when:**
|
|
- No structured documentation found
|
|
- Need diverse information sources
|
|
- Community knowledge required
|
|
- Scattered documentation
|
|
- Comparative analysis needed
|
|
|
|
**Best practices:**
|
|
- Assign specific research areas per agent
|
|
- Request source verification
|
|
- Ask for date/version information
|
|
- Prioritize official sources
|
|
- Cross-reference findings
|
|
|
|
**Example prompt:**
|
|
```
|
|
"Research [library] focusing on:
|
|
1. Official installation methods
|
|
2. Common usage patterns
|
|
3. Known limitations or issues
|
|
4. Community best practices
|
|
|
|
Prioritize official sources and note version/date for all findings."
|
|
```
|
|
|
|
## Repomix
|
|
|
|
**Use when:**
|
|
- GitHub repository available
|
|
- Need complete codebase analysis
|
|
- Documentation scattered in repository
|
|
- Want to analyze code structure
|
|
- API documentation in code comments
|
|
|
|
**Installation:**
|
|
```bash
|
|
# Check if installed
|
|
which repomix
|
|
|
|
# Install globally if needed
|
|
npm install -g repomix
|
|
|
|
# Verify installation
|
|
repomix --version
|
|
```
|
|
|
|
**Usage:**
|
|
```bash
|
|
# Basic usage
|
|
git clone [repo-url] /tmp/docs-analysis
|
|
cd /tmp/docs-analysis
|
|
repomix --output repomix-output.xml
|
|
|
|
# Focus on specific directory
|
|
repomix --include "docs/**" --output docs-only.xml
|
|
|
|
# Exclude large files
|
|
repomix --exclude "*.png,*.jpg,*.pdf" --output repomix-output.xml
|
|
```
|
|
|
|
**When Repomix may fail:**
|
|
- Repository > 1GB (too large)
|
|
- Requires authentication (private repo)
|
|
- Slow network connection
|
|
- Limited disk space
|
|
- Binary-heavy repository
|
|
|
|
**Alternatives if Repomix fails:**
|
|
```bash
|
|
# Option 1: Focus on docs directory only
|
|
repomix --include "docs/**,README.md" --output docs.xml
|
|
|
|
# Option 2: Use Explorer agents to read specific files
|
|
# Launch agents to read key documentation files directly
|
|
|
|
# Option 3: Manual repository exploration
|
|
# Read README, then explore /docs directory structure
|
|
```
|
|
|
|
## Tool Selection Decision Tree
|
|
|
|
```
|
|
Need documentation?
|
|
↓
|
|
Try context7.com first
|
|
↓
|
|
Know GitHub org/repo?
|
|
YES → https://context7.com/{org}/{repo}/llms.txt
|
|
NO → Continue
|
|
↓
|
|
Know website URL?
|
|
YES → https://context7.com/websites/{normalized-path}/llms.txt
|
|
NO → Continue
|
|
↓
|
|
Specific topic/feature?
|
|
YES → Add ?topic={query} parameter
|
|
NO → Use base llms.txt URL
|
|
↓
|
|
context7.com found?
|
|
YES → Process llms.txt URLs (go to URL count check)
|
|
NO → Continue
|
|
↓
|
|
Fallback: WebSearch for llms.txt
|
|
↓
|
|
Single URL?
|
|
YES → WebFetch
|
|
NO → Continue
|
|
↓
|
|
1-3 URLs?
|
|
YES → Single Explorer agent
|
|
NO → Continue
|
|
↓
|
|
4+ URLs?
|
|
YES → Multiple Explorer agents (3-7)
|
|
NO → Continue
|
|
↓
|
|
Need repository analysis?
|
|
YES → Repomix (if available)
|
|
NO → Continue
|
|
↓
|
|
No structured docs?
|
|
YES → Researcher agents
|
|
```
|
|
|
|
## Quick Reference
|
|
|
|
| Tool | Best For | Speed | Coverage | Complexity |
|
|
|------|----------|-------|----------|------------|
|
|
| context7.com | llms.txt lookup | Instant | High | Low |
|
|
| context7.com?topic= | Targeted search | Instant | Focused | Low |
|
|
| WebSearch | Finding URLs | Fast | Narrow | Low |
|
|
| WebFetch | Single page | Fast | Single | Low |
|
|
| Explorer | Multiple URLs | Fast | Medium | Medium |
|
|
| Researcher | Scattered info | Slow | Wide | High |
|
|
| Repomix | Repository | Medium | Complete | Medium |
|