Skill: Web Research

SkillSearch

Use when a web search is needed to fill context gaps (docs, versions, CVEs).

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Skill: Web Research skill

What this skill tells your AI

The instructions your AI receives, as published by gonzalezpazmonica/pm-workspace in .claude/skills/web-research/SKILL.md and read by ahel’s review.

3-layer search: cache → SearxNG (Docker auto-start) → Claude WebSearch. Inspired by FAIR-Perplexica.

When to use

  • User asks about external technology (versions, APIs, configs)
  • Gap detected: CVE, deprecation, compatibility question
  • Tech-research-agent needs web sources for investigation
  • Developer encounters error from external library

What it produces

  1. Search results — reranked by relevance, cached locally
  2. Inline citations[web:N] with source URLs in footer
  3. Follow-up suggestions — contextual next commands
  4. Gap detection — automatic suggestion when external gap detected

Prerequisites

1. Python 3.x available                    → always true in pm-workspace
2. Docker (optional) for SearxNG           → graceful fallback if missing
3. Internet connection (optional)           → cache-only mode if offline

Flow

User query or gap detected
  → Sanitize (strip PII, projects, emails, IPs)
  → Check cache (TTL by category)
  → If miss: try SearxNG (auto-start Docker)
  → If SearxNG unavailable: use Claude WebSearch
  → Rerank results (keyword + domain authority)
  → Cache results
  → Format with [web:N] citations
  → Show follow-up suggestions

Key modules

ModuleLinesPurpose
cache.py137LRU cache, TTL, stats
sanitizer.py107PII removal, classification
rerank.py86Heuristic scoring
formatter.py88Citation formatting
gap_detector.py110External vs internal detection
searxng.py149Docker auto-start, cross-platform
search.py883-layer orchestrator
suggestions.py81Post-command follow-ups

Scrapling enrichment (SE-061)

Para URLs resultantes de SearxNG/WebSearch que requieren extracción de contenido (más allá de snippet), invocar el wrapper adaptativo scripts/scrapling-fetch.sh:

bash scripts/scrapling-fetch.sh "${URL}" --json --timeout 25
  • Backend scrapling si está instalado: bypass Cloudflare/DataDome nativo
  • Fallback transparente a curl con user-agent SaviaResearch/1.0
  • Exit 0/1/2, JSON con status|title|url_final|text|backend

Usar cuando WebFetch tool devuelve 403/429/503 o cuando el snippet no es suficiente. No usar para fetch masivo sin respetar robots.txt — ver docs/rules/domain/research-stack.md.

References

  • Spec: docs/propuestas/SPEC-003-web-research-system.md
  • Scrapling backend: docs/propuestas/SE-061-scrapling-research-backend.md
  • Config: docs/rules/domain/web-research-config.md
  • Stack chain: docs/rules/domain/research-stack.md
  • Docs ES: docs/web-research.md
  • Docs EN: docs/web-research.en.md
  • Tests: tests/test-web-research.bats

Signals

GitHub stars
50
Forks
12
Last commit
Sep 2026

Others that do the same job

Advanced
Catalog kind
skill
Gateway key
web-research-gonzalezpazmonica
Source
github.com/gonzalezpazmonica/pm-workspace