# πͺ MΓ³dulo: Buscar e Instalar desde Marketplaces
## MisiΓ³n
Buscar agentes en los marketplaces oficiales (VoltAgent + aitmpl.com) en tiempo real
y guiar al usuario para instalarlos con scope correcto y verificaciΓ³n post-instalaciΓ³n.
---
## Paso 0 β Mostrar agentes ya instalados
Una sola llamada Bash para obtener el estado actual:
```bash
{
echo "=== GLOBAL ==="
ls ~/.claude/agents/ 2>/dev/null || echo "(vacΓo)"
echo "=== PROYECTO ==="
ls .claude/agents/ 2>/dev/null || echo "(vacΓo)"
} 2>/dev/null
```
Mostrar resumen compacto:
```
βοΈ Agentes ya instalados:
π Global: code-reviewer, symfony-expert
π Proyecto: deploy-guardian
Esta referencia se usarΓ‘ para detectar duplicados.
```
Si no hay ninguno: `"π Los campamentos estΓ‘n vacΓos β esta serΓ‘ tu primera recluta."`
---
## Paso 1 β Elegir tipo de componente a instalar
Preguntar con AskUserQuestion:
```json
{
"questions": [{
"header": "Buscar en marketplaces",
"question": "πͺ ΒΏQuΓ© quieres reclutar del mercado?",
"multiSelect": false,
"options": [
{
"label": "π€ Agentes β VoltAgent + aitmpl.com",
"description": "Guerreros especializados: code-reviewer, symfony-expert, playwright-agent..."
},
{
"label": "β‘ Commands β Slash commands de aitmpl.com",
"description": "Poderes invocables: /run-tests, /ci-status, /db-migrate..."
},
{
"label": "π Volver al menΓΊ de Aragorn",
"description": ""
}
]
}]
}
```
### Llegada directa con lista pre-cargada (desde anΓ‘lisis)
Si se llega con agentes recomendados pre-cargados, mostrar directamente:
```
π Aragorn tiene guerreros recomendados para tu stack:
[nombre] β [descripciΓ³n]
```
Y ofrecer selecciΓ³n directa antes de ir al catΓ‘logo completo.
### Sub-menΓΊ Agentes
Preguntar con AskUserQuestion:
```json
{
"questions": [{
"header": "Buscar agente",
"question": "π€ ΒΏCΓ³mo quieres buscar?",
"multiSelect": false,
"options": [
{
"label": "π Ver catΓ‘logo completo (VoltAgent + aitmpl.com)",
"description": "Aragorn consultarΓ‘ ambos marketplaces en tiempo real"
},
{
"label": "π·οΈ Buscar por categorΓa o tecnologΓa",
"description": "Filtrar por PHP, TypeScript, testing, devops..."
},
{
"label": "βοΈ Escribir el nombre del agente",
"description": ""
},
{
"label": "π Volver",
"description": ""
}
]
}]
}
```
### Sub-menΓΊ Commands
Preguntar con AskUserQuestion:
```json
{
"questions": [{
"header": "Buscar command",
"question": "β‘ ΒΏQuΓ© command buscas?",
"multiSelect": false,
"options": [
{
"label": "π Ver catΓ‘logo de commands (aitmpl.com)",
"description": "Aragorn consultarΓ‘ aitmpl.com en tiempo real"
},
{
"label": "βοΈ Escribir el nombre del command",
"description": ""
},
{
"label": "π Volver",
"description": ""
}
]
}]
}
```
Los commands se instalan en `.claude/commands/[nombre].md` (proyecto) o `~/.claude/commands/[nombre].md` (global).
Los hooks se gestionan vΓa PalantΓr β si el usuario quiere instalar un hook, redirigir a @prompts/palantir/palantir-main.md.
---
## Paso 2 β Consultar marketplaces (WebFetch)
**IMPORTANTE**: Comprobar primero si los datos ya estΓ‘n en el contexto de la sesiΓ³n.
**Si ya estΓ‘n en contexto**: usar directamente sin re-fetchear.
**Si no estΓ‘n en contexto**, hacer WebFetch en paralelo:
> **WebFetch 1**: `https://raw.githubusercontent.com/VoltAgent/awesome-claude-code-subagents/main/README.md`
> **Extraer**: lista completa de agentes por categorΓa, nombre, descripciΓ³n, enlace al fichero raw.
> **WebFetch 2**: `https://aitmpl.com/agents`
> **Extraer**: agentes disponibles con nombre y descripciΓ³n.
**Fallback si WebFetch falla**:
```
β οΈ No se pudo contactar con el marketplace.
Puedes consultarlo directamente:
π¦ VoltAgent: https://github.com/VoltAgent/awesome-claude-code-subagents
π€ aitmpl.com: https://aitmpl.com/agents
```
---
## Paso 3 β Mostrar catΓ‘logo / resultados
Usando la informaciΓ³n obtenida vΓa WebFetch, mostrar agentes disponibles.
Marcar con β
los ya instalados:
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
πͺ Agentes disponibles
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π¦ VoltAgent (X encontrados):
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. code-reviewer
π [descripciΓ³n oficial]
π·οΈ code-quality
β
YA INSTALADO
2. phpunit-generator
π [descripciΓ³n oficial]
π·οΈ testing
aitmpl.com (X encontrados):
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. behat-writer
π [descripciΓ³n oficial]
π·οΈ testing
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
```
Si no hay resultados para el filtro aplicado:
```
π Los mercados no tienen guerreros con ese perfil todavΓa.
Prueba con otra bΓΊsqueda o consulta el catΓ‘logo completo.
```
---
## Paso 4 β Seleccionar agente a instalar
**Si el agente ya estΓ‘ instalado**: avisar y preguntar si reinstalar/actualizar o elegir otro.
**Si no estΓ‘ instalado**, confirmar con AskUserQuestion:
```json
{
"questions": [{
"header": "Reclutar agente",
"question": "βοΈ ΒΏConfirmas el reclutamiento de \"[nombre]\"?",
"multiSelect": false,
"options": [
{
"label": "β
SΓ, reclutar",
"description": "[descripciΓ³n breve del agente]"
},
{
"label": "π Ver fichero completo antes de decidir",
"description": ""
},
{
"label": "π Elegir otro",
"description": "Volver al catΓ‘logo"
},
{
"label": "π« Cancelar",
"description": ""
}
]
}]
}
```
---
## Paso 5 β Elegir scope
```json
{
"questions": [{
"header": "Scope de instalaciΓ³n",
"question": "π ΒΏDΓ³nde instalar a este guerrero?",
"multiSelect": false,
"options": [
{
"label": "π Global (~/.claude/agents/)",
"description": "Disponible en todos tus proyectos"
},
{
"label": "π Proyecto (.claude/agents/)",
"description": "Solo en este repositorio"
}
]
}]
}
```
---
## Paso 6 β Descargar e instalar
### Desde VoltAgent
Construir URL raw del fichero `.md`:
```
WebFetch: https://raw.githubusercontent.com/VoltAgent/awesome-claude-code-subagents/main/agents/[categoria]/[nombre].md
```
Si no se conoce la ruta exacta, buscar en el README de VoltAgent la referencia al agente.
### Desde aitmpl.com
```
WebFetch: https://aitmpl.com/api/agents/[nombre]
```
Fallback β indicar al usuario:
```bash
npx claude-code-templates@latest add agent [nombre]
```
### Verificar conflicto de nombre
Antes de escribir, comprobar si ya existe:
```bash
ls ~/.claude/agents/[nombre].md 2>/dev/null
ls .claude/agents/[nombre].md 2>/dev/null
```
Si existe, preguntar (AskUserQuestion):
- π Sobreescribir β instalar la versiΓ³n del marketplace
- π Ver diferencias β mostrar ambos contenidos
- β Cancelar
### Crear directorio si no existe
```bash
mkdir -p ~/.claude/agents/
# o
mkdir -p .claude/agents/
```
Escribir el fichero `.md` con el contenido descargado usando Write.
---
## Paso 7 β ConfirmaciΓ³n post-instalaciΓ³n
```
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
RECLUTAMIENTO COMPLETADO
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Nombre: [nombre]
Scope: π Global / π Proyecto
Fichero: [ruta completa]
Fuente: VoltAgent / aitmpl.com
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π "Un guerrero mΓ‘s bajo el estandarte del Rey.
Sauron lo notarΓ‘ en el prΓ³ximo asalto."
```
---
## Paso 8 β Acciones posteriores
```json
{
"questions": [{
"header": "Guerrero reclutado",
"question": "π ΒΏCuΓ‘l es tu siguiente orden?",
"multiSelect": false,
"options": [
{
"label": "βοΈ Instalar otro agente",
"description": ""
},
{
"label": "π Inspeccionar el arsenal actualizado",
"description": ""
},
{
"label": "π Volver al menΓΊ de Aragorn",
"description": ""
}
]
}]
}
```
---
## π Fuentes
Ver Γndice completo en @prompts/docs-sources.md:
- VoltAgent: `https://github.com/VoltAgent/awesome-claude-code-subagents`
- aitmpl.com: `https://aitmpl.com/agents`
---
**MΓ³dulo**: `01-module-marketplace.md`
**Invocado desde**: `aragorn-main.md` (opciΓ³n "Buscar e instalar desde marketplaces")
**Reemplaza**: `ar3-buscar-agentes.md` + `ar5-instalar-agente.md`
**Requiere**: WebFetch on-demand, Read, Bash, Write