agentsclimarketplace

Do web doc resolver

Skill d-oit/do-web-doc-resolver/.agents/skills/do-web-doc-resolver

LLM-ready web documentation resolver: Python cascade skill + web + Rust CLI (wdr) with semantic cache, multi-provider routing, and quality synthesis

Install
npx -y skills add d-oit/do-web-doc-resolver --skill do-web-doc-resolver

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Python implementation for resolving URLs and queries into compact, LLM-ready markdown documentation. Use when you need the Python resolver with full cascade support, quality scoring, circuit breakers, and advanced routing features.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.7 KB, as published. Nobody here has run it

Web Doc Resolver Skill

Python implementation for resolving web URLs and queries into compact, LLM-ready markdown documentation with provider cascade, quality scoring, and advanced routing.

When to use this skill

Activate this skill when you need to:

  • Resolve a URL or query to markdown using Python
  • Use the full provider cascade with intelligent routing
  • Access quality scoring and content validation features
  • Use circuit breaker patterns for provider reliability
  • Leverage routing memory for learned provider preferences
  • Run as a CLI tool or import as a Python module

Prerequisites

Install Python dependencies:

pip install -r requirements.txt
# Optional: for high-performance semantic caching
pip install sqlite-vec

Commands

CLI Usage (from project root)

# Resolve a URL — uses project root scripts/
python3 -m scripts.cli "https://docs.rs/tokio"

# Resolve a query
python3 -m scripts.cli "Rust async runtime comparison"

# With options
python3 -m scripts.cli "query" --log-level INFO --max-chars 5000

CLI Usage (standalone — after copying skill to any project)

# From the skill directory
cd .agents/skills/do-web-doc-resolver && python -m scripts.resolve "https://docs.rs/tokio"

# Or via PYTHONPATH from anywhere
PYTHONPATH=.agents/skills/do-web-doc-resolver python -c "from scripts.resolve import main; main()" "https://example.com"

Python Module Usage

import sys, os
# Add skill root to path
skill_root = os.path.join(os.path.dirname(__file__), ".agents", "skills", "do-web-doc-resolver")
sys.path.insert(0, skill_root)

from scripts.resolve import resolve, resolve_url, resolve_query

# Resolve URL
result = resolve_url("https://docs.rs/tokio")

# Resolve query
result = resolve_query("Rust web frameworks")

# Generic resolve (auto-detects URL vs query)
result = resolve("https://example.com")
result = resolve("Python web frameworks")

Provider Cascade

Query Resolution Cascade

  1. Cache check (24h TTL)
  2. Exa MCP (FREE, no API key)
  3. Exa SDK (paid, EXA_API_KEY)
  4. Tavily (paid, TAVILY_API_KEY)
  5. Serper (paid, SERPER_API_KEY)
  6. DuckDuckGo (FREE, no API key)
  7. Mistral Web Search (paid, MISTRAL_API_KEY)

URL Resolution Cascade

  1. Cache check (24h TTL)
  2. Special file type detection (.pdf, .docx, .pptx → Docling; .png, .jpg, .jpeg → OCR)
  3. llms.txt probe (FREE)
  4. Jina Reader (FREE)
  5. Firecrawl (paid, FIRECRAWL_API_KEY)
  6. Direct HTTP fetch (FREE)
  7. Mistral Browser (paid, MISTRAL_API_KEY)
  8. DuckDuckGo fallback (FREE)

Available Providers

ProviderTypeFreeDescription
exa_mcpQueryYesExa MCP (free, no key)
exaQueryNoExa SDK (requires API key)
tavilyQueryNoTavily comprehensive search
serperQueryNoGoogle search via Serper
duckduckgoQueryYesDuckDuckGo search
mistral_websearchQueryNoMistral AI search
llms_txtURLYesllms.txt structured docs
jinaURLYesJina Reader
firecrawlURLNoFirecrawl extraction
direct_fetchURLYesDirect HTML fetch
mistral_browserURLNoMistral browser agent
doclingURLNoDocling document processing
ocrURLNoOCR text extraction

Execution Profiles

ProfileMax AttemptsMax PaidMax LatencyQuality Threshold
free306,000ms0.70
fast214,000ms0.60
balanced4-61-29,000-12,000ms0.65
quality6-103-515,000-20,000ms0.55

Quality Scoring

Content is scored on a 0.0-1.0 scale:

SignalPenalty
Too short (< 500 chars)-0.35
Missing links-0.15
Duplicate-heavy-0.25
Noisy content-0.20

Error Handling

Error TypeDetectionBehavior
rate_limit429, "rate limit"Set cooldown, skip provider
auth_error401, 403, "unauthorized"Log error, skip provider
quota_exhausted402, "quota", "credits"Log warning, skip provider
network_error"timeout", "connection"Log error, skip provider
not_found404, "not found"Log error, skip provider
provider_5xx500-504Trip circuit breaker

Circuit Breaker

  • Failure threshold: 3 consecutive failures
  • Cooldown period: 300 seconds (5 minutes)
  • Behavior: Provider skipped until cooldown expires
  • Reset: Successful call resets failure count

Configuration

Environment Variables

# Provider API keys (all optional)
export EXA_API_KEY="your_key"
export TAVILY_API_KEY="your_key"
export SERPER_API_KEY="your_key"
export FIRECRAWL_API_KEY="your_key"
export MISTRAL_API_KEY="your_key"

# Resolver settings
export WEB_RESOLVER_MAX_CHARS=8000
export WEB_RESOLVER_MIN_CHARS=200
export WEB_RESOLVER_TIMEOUT=30

Output Format

Dictionary Response

{
    "url": "https://example.com/docs",
    "content": "# Documentation\n\n...",
    "source": "exa_mcp",
    "score": 0.87,
    "metrics": {
        "latency_ms": 1234,
        "providers_attempted": ["exa_mcp"],
        "cache_hit": false
    }
}

Skill Structure

The skill is implemented across the project root. Key files:

LocationFilePurpose
.agents/skills/do-web-doc-resolver/SKILL.mdThis file
.agents/skills/do-web-doc-resolver/references/*.mdReference docs
scripts/resolve.py, models.py, …Core Python implementation
tests/test_resolve.py, conftest.py, …Python test suite
cli/src/main.rs, cli.rs, …Rust CLI implementation
web/app/, lib/, tests/Next.js web UI

References

TopicFile
Full cascade logicreferences/CASCADE.md
CLI usage (Python + Rust)references/CLI.md
Configuration & env varsreferences/CONFIG.md
All providers & rate limitsreferences/PROVIDERS.md
Rust CLI architecturereferences/RUST_CLI.md
Test structure & markersreferences/TESTING.md

Related Skills

  • do-wdr-cli: Rust compiled CLI for faster performance
  • agent-browser: Browser automation for complex web interactions

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.