josemoreupeso.es
01-module-marketplace.md β€” TLOTP
# πŸͺ 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