---
name: validate-prerequisites
description: Verifica que JFrog CLI, Java JDK, Maven y el archivo de configuración estén disponibles antes de ejecutar cualquier escaneo.
---

# Skill: Validar Prerrequisitos del Entorno

## Descripción
Verifica que todas las herramientas necesarias estén instaladas y configuradas antes de
ejecutar cualquier operación de escaneo con JFrog Artifactory.

## Pasos mínimos

1. Verificar que **JFrog CLI** está instalado detectando automáticamente el comando disponible (`jfrog` o `jf`):
   ```powershell
   # Detectar el comando JFrog CLI disponible en el entorno
   $jfCmd = $null
   if (Get-Command jfrog -ErrorAction SilentlyContinue) {
       $jfCmd = "jfrog"
   } elseif (Get-Command jf -ErrorAction SilentlyContinue) {
       $jfCmd = "jf"
   }

   if (-not $jfCmd) {
       Write-Error "JFrog CLI no está instalado o no está en el PATH."
       Write-Host "Instrucciones de instalación:"
       Write-Host "  - Descarga: https://jfrog.com/getcli/"
       Write-Host "  - PowerShell (admin): winget install JFrog.JFrog"
       Write-Host "  - Luego verifica con: jfrog --version"
       exit 1
   }

   & $jfCmd --version
   Write-Host "[OK] JFrog CLI detectado como: $jfCmd"
   ```
   > **Nota:** La variable `$jfCmd` se reutiliza en todos los pasos siguientes del flujo.
   > Dependiendo de la instalación, JFrog CLI puede responder a `jfrog` o `jf`. Ambos son válidos.

2. Verificar que **Java JDK** (≥ 11) está instalado:
   ```powershell
   java -version
   ```
   Si falla → `winget install Microsoft.OpenJDK.21`

3. Verificar que **Maven** está instalado:
   ```powershell
   mvn --version
   ```
   Si falla → `winget install Apache.Maven`

4. Verificar que existe el archivo de configuración `.github/config/jfrog-config.properties`:
   ```powershell
   Test-Path ".github/config/jfrog-config.properties"
   ```
   Si no existe → copiar la plantilla e indicar al usuario:
   ```
   El archivo .github/config/jfrog-config.properties no existe.
   Copia la plantilla jfrog-config.properties.template, renómbrala y completa
   con tus credenciales personales de JFrog Artifactory.
   ```

## Resultado esperado
Todos los checks en verde antes de continuar al siguiente paso.
Mostrar resumen:
```
[OK] JFrog CLI detectado como: jfrog  (o jf, dependiendo del entorno)
[OK] JFrog CLI  v2.x.x
[OK] Java       17.x.x / 21.x.x
[OK] Maven      3.x.x
[OK] jfrog-config.properties encontrado
```

## Variable de sesión
La variable `$jfCmd` queda disponible en la sesión PowerShell para todos los pasos siguientes.
No es necesario volver a detectar el comando en cada skill posterior.
