Buscar un término en las fuentes de contexto y mostrar fragmentos relevantes
Searches context sources for a term and displays relevant matching snippets.
npx claudepluginhub elafo/context-sources<query> [source]Busco un término específico en las fuentes de contexto y devuelvo solo los fragmentos donde aparece.
Para fuentes con indexación habilitada, consultar:
$1 - Término a buscar (requerido)$2 - Nombre de la fuente donde buscar (opcional, si no se especifica busca en todas)| Comando | Comportamiento |
|---|---|
load | Carga TODO el contenido de las fuentes |
search | Busca un término y devuelve solo fragmentos relevantes |
Usa search cuando:
cat .context-sources/sources.yaml 2>/dev/null || echo "ERROR: No se encontró configuración"
Para cada fuente a buscar, verificar si tiene indexación habilitada:
PARA CADA fuente EN fuentes_a_buscar:
SI fuente.indexing.enabled == true Y fuente.provider != "mcp":
# Resolver ruta de índices (ver skill: skills/indexes/navigation.md)
SI fuente.indexing.mode == "embedded":
index_base = fuente.path (expandir ~)
SINO SI fuente.indexing.mode == "mirror":
index_base = fuente.indexing.mirror_path
O ".context-sources/indexes/<source_id>"
index_file = fuente.indexing.index_file O "index.md"
index_path = <index_base>/<index_file>
# Navegar índices para encontrar rutas relevantes
rutas_relevantes = navegar_índice(index_path, $1)
SI rutas_relevantes no está vacío:
fuente.buscar_en = rutas_relevantes
fuente.usar_índice = true
SINO:
# Fallback: buscar en todo
fuente.buscar_en = [fuente.path]
fuente.usar_índice = false
ADVERTIR: "No se encontraron coincidencias en índices para '$1'"
SINO:
fuente.buscar_en = [fuente.path]
fuente.usar_índice = false
SI fuente.usar_índice == true:
# Buscar solo en rutas identificadas por el índice
PARA CADA ruta EN fuente.buscar_en:
Grep: pattern="$1" path="<fuente.path>/<ruta>"
SINO:
# Búsqueda directa en todo el contenido
Grep: pattern="$1" path="<fuente.path>" glob="*.md"
O con scripts Python:
cd $PLUGIN_DIR/scripts && python3 provider_filesystem.py search '<config_json>' '$1'
Misma lógica que filesystem. GDrive usa rutas locales sincronizadas.
SI fuente.usar_índice == true:
PARA CADA ruta EN fuente.buscar_en:
Grep: pattern="$1" path="<fuente.path>/<ruta>"
SINO:
Grep: pattern="$1" path="<fuente.path>" glob="*.md"
O con scripts Python:
cd $PLUGIN_DIR/scripts && python3 provider_gdrive.py search '<config_json>' '$1'
Misma lógica que filesystem, pero adicionalmente busca en:
SI fuente.usar_índice == true:
PARA CADA ruta EN fuente.buscar_en:
Grep: pattern="$1" path="<fuente.path>/<ruta>"
SINO:
Grep: pattern="$1" path="<fuente.path>" glob="*.md"
O con scripts Python:
cd $PLUGIN_DIR/scripts && python3 provider_obsidian.py search '<config_json>' '$1'
MCP no soporta indexación. Siempre búsqueda directa:
Invocar el tool de búsqueda del servidor con $1 como argumento.
Los resultados se muestran agrupados por fuente. El formato depende de si la fuente tiene índices:
| Indicador | Significado |
|---|---|
| 📇 | Fuente con índice (resultados filtrados por índice) |
| ⭕ | Fuente sin índice (búsqueda directa) |
| ⚠️ | Índice no encontró matches (fallback a búsqueda directa) |
Incluye el contexto jerárquico del índice antes de los resultados:
## Resultados para "API"
### Fuente: project-docs (filesystem) 📇
#### Contexto del índice
> 📁 api/ - Documentación de la API REST
> 📄 auth.md - Autenticación y tokens
> 🔍 "Leer cuando se configure autenticación basada en tokens"
#### "/docs/api/auth.md" (línea 45)
> ...endpoint de la **API** de autenticación...
Contexto:
El sistema de autenticación utiliza la API de tokens JWT para validar usuarios.
Formato estándar (sin contexto jerárquico):
### Fuente: clients (filesystem) ⭕
#### "/home/user/docs/clients/contrato acme.md" (línea 45)
> ...endpoint de la **API** de pagos debe implementarse...
Contexto:
El cliente requiere que el endpoint de la API de pagos debe implementarse antes del Q2 según el contrato.
### Fuente: notas (mcp: mem-ai) ⭕
#### mem://note-xyz789 (línea 8)
> ...documentación de la **API** actualizada...
Contexto:
Revisar la documentación de la API actualizada para el próximo sprint.
---
📊 4 coincidencias en 3 archivos de 3 fuentes
📇 2 fuentes con índice | ⭕ 1 fuente sin índice
/context-sources:search API
/context-sources:search API clients
/context-sources:search "API REST"
/context-sources:search "autenticación" --index-only
Solo busca en descripciones y condiciones de los índices, no en el contenido. Útil para descubrir qué documentos podrían ser relevantes sin leer contenido.
/context-sources:search "API" --no-index
Fuerza búsqueda directa en todo el contenido, ignorando índices aunque existan. Útil cuando el término no está en las descripciones de los índices.
/context-sources:search "API" --show-context
Incluye el contexto jerárquico del índice en los resultados.
Por defecto: true para fuentes indexadas, false para las demás.
Para cada coincidencia muestro:
| Error | Acción |
|---|---|
| Sin resultados | Sugerir términos alternativos o ampliar búsqueda |
| Fuente no disponible | Indicar qué fuentes se buscaron |
| Demasiados resultados | Mostrar los primeros 20 y preguntar si quiere más |
| Índice no encontrado | Advertir y usar búsqueda directa (fallback) |
| Índice malformado | Advertir y usar búsqueda directa (fallback) |
| Sin matches en índices | Ofrecer búsqueda directa con --no-index |
skills/indexes/navigation.md