# Validar agente

> Valida un archivo JSON de agente contra el schema oficial.

Fuente: https://developers.plazbot.com/cli/agent/validate/

### Validar un archivo de agente

Valida un archivo JSON de agente contra el schema oficial antes de usarlo en [`create`](https://developers.plazbot.com/cli/agent/create) o [`update`](https://developers.plazbot.com/cli/agent/update). Funciona sin conexión y sin sesión.

```bash
plazbot agent validate <file> [options]
```

### Parámetros

| Parámetro | Flag | Requerido | Descripción |
|-----------|------|-----------|-------------|
| `file` | (posicional) | Sí | Ruta al archivo JSON del agente. |
| Estricto | `--strict` | No | También falla con propiedades desconocidas en objetos anidados (detecta errores de tipeo). Por defecto: `false`. |
| Crudo | `--raw` | No | Imprime los errores de AJV sin procesar, como JSON. Por defecto: `false`. |
| JSON | `--json` | No | Imprime el resultado como JSON (`{"valid","errors":[{"path","message"}]}`). Por defecto: `false`. |

### Ejemplos

```bash
# Validar un archivo exportado
plazbot agent validate ./agent.json

# Detectar también propiedades desconocidas (typos)
plazbot agent validate ./agent.json --strict

# Resultado legible por máquina (código de salida 1 si es inválido)
plazbot agent validate ./agent.json --json
```

### Resultado

Archivo válido:

```text
Valid schema
The agent "Asistente de Ventas" matches the official schema.
```

Con `--strict` termina en `(strict mode).`

Archivo inválido (código de salida 1):

```text
Invalid schema (4 errors):

1. (root): missing required property 'prompt'
2. (root): missing required property 'zone'
3. buffer: must be of type integer
4. instructions -> tone: must be of type string

Tip: use --raw to inspect the AJV errors as JSON.
```

Los campos obligatorios en la raíz son `name`, `prompt`, `zone` y `buffer` (entero de 3 a 20). En la raíz no se permiten propiedades desconocidas; `--strict` aplica la misma regla a los objetos anidados.

### Salida JSON

```json
{
"valid": false,
"errors": [
  { "path": "(root)", "message": "missing required property 'prompt'" },
  { "path": "buffer", "message": "must be of type integer" }
]
}
```

Si el archivo es válido: `{"valid": true, "errors": []}`. Si el JSON tiene un error de sintaxis, con `--json` se imprime `valid: false` con un único error en `(root)` que empieza por `Invalid JSON syntax:`.

Con `--raw` se imprime el arreglo de errores de AJV (`instancePath`, `schemaPath`, `keyword`, `params`, `message`).

### Errores comunes

| Mensaje | Causa | Solución |
|---------|-------|----------|
| `File not found: <ruta>` | La ruta no existe. | Revisa la ruta del archivo. |
| `Invalid JSON syntax: ...` | El archivo no es JSON válido. | Corrige la sintaxis en la posición indicada. |
| `unknown property '<nombre>'` | Hay un campo que el schema no admite (en la raíz, o anidado con `--strict`). | Corrige el nombre del campo o elimínalo. |
