josemoreupeso.es
01-detector-entorno.md — TLOTP
# 🔍 Detector de Entorno - Celebrimbor

## Misión

Detectar el entorno de ejecución y validar requisitos para Celebrimbor.

---

## Detección de Node.js

**Ejecutar comandos de detección**:

```bash
# Versión de Node.js
node --version

# Versión de npm
npm --version

# Versión de npx
npx --version
```

**Parsear versiones**:
- Extraer número de versión de Node.js (ej: v20.11.0 → 20)
- Validar si Node.js >= 18

---

## Validación de skills CLI

**Probar skills CLI**:

```bash
npx skills --version
```

**Estados posibles**:
- ✅ **OK**: skills CLI funciona (Node.js >=18)
- ❌ **Error**: Node.js desactualizado (<18)
- ❌ **No disponible**: npm/npx no instalado

---

## Reporte de Estado

### Caso 1: Node.js >= 18 ✅

**NO mostrar nada** - Continuar directo al menú de operaciones.

### Caso 2: Node.js < 18 ⚠️

```
⚠️ Node.js Desactualizado

Node.js detectado: v12.22.9
Requerido: >= v18.0.0

💡 Solución Rápida: ¿Tienes nvm instalado?

Ejecuta: nvm use 20 (o nvm use 18)

Esto cargará una versión compatible de Node.js y Celebrimbor
funcionará perfectamente.

¿Quieres que intente ejecutar 'nvm use 20' ahora? [s/N]: _
```

**Si usuario acepta**: Ejecutar `nvm use 20` y reintentar detección
**Si usuario rechaza**: Mostrar opciones alternativas

### Caso 3: Node.js NO disponible ❌

```
❌ Node.js No Detectado

Celebrimbor requiere Node.js >= 18 para el backend CLI.

Opciones:
1. Instalar Node.js >= 18 → Usar Celebrimbor ahora
   https://nodejs.org/

2. Esperar backend Git → Sin Node.js requerido (WIP)

🚧 Backend Git estará disponible en versión futura

No puedes continuar sin Node.js >= 18.
```

---

## Guardar Configuración

**Después de detección exitosa, guardar en archivo de estado**:

```bash
# Crear archivo de configuración
~/.celebrimbor/config.yml
```

**Contenido**:

```yaml
# Celebrimbor Configuration
version: "1.0"
backend: "cli"  # o "git" en v2.0
node_version: "20.11.0"
detected_at: "2026-02-15T10:30:00Z"
```

---

## Reglas de Ejecución

1. **SIEMPRE ejecutar detección al inicio** de Celebrimbor
2. **Mostrar reporte claro** con iconos ✅/❌
3. **Si Node.js < 18**: Informar y dar opciones (actualizar o esperar v2.0)
4. **Si todo OK**: Continuar con menú principal
5. **Guardar estado** para no repetir detección en cada ejecución

---

**Siguiente módulo**: 02-menu-principal.md