> ## Documentation Index
> Fetch the complete documentation index at: https://docs.raigal.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Configuración

> Referencia de .raigal/config.yml, anulación de reglas y validación de esquema.

Raigal lee las preferencias de tu proyecto desde `.raigal/config.yml` en la raíz del repositorio. El archivo sigue un esquema estricto validado con Zod; cualquier propiedad no reconocida o mal escrita produce un error inmediato de validación.

## Ejemplo completo de configuración

A continuación tienes un archivo `.raigal/config.yml` completo con todos los campos válidos:

```yaml theme={null}
version: 1

# Motores de análisis
engines:
  format: true          # Biome, Ruff, Gofmt, Cargo fmt, etc.
  lint: true            # Oxlint, Ruff, Clippy, Golangci-lint, Roslynator, etc.
  code-quality: true    # Exportaciones sin uso (Knip), código muerto, complejidad
  ai-slop: true         # Más de 26 reglas contra patrones defectuosos de IA
  architecture: false   # Reglas de límites de dependencias y módulos
  security: true        # Secretos, inyecciones de prompt y llamadas inseguras

# Límites de calidad y complejidad
quality:
  maxFunctionLoc: 80
  maxFileLoc: 400
  maxNesting: 5
  maxParams: 6

# Opciones de linter por lenguaje
lint:
  typecheck: false      # Diagnósticos de TypeScript con tsc (más lento en CI)
  expoDoctor: false     # Comprobaciones de salud para proyectos Expo React Native
  csharp:
    projectEvaluation: false
    jb: true            # JetBrains InspectCode
    roslynator: true
    jbSeverityFloor: "WARNING"
  cpp:
    cppcheck: true
    clangTidy: true
    cppcheckEnable: "warning,performance,portability"

# Control de calidad en CI
ci:
  failBelow: 75         # Nota mínima para aprobar (por defecto 70)
  format: "json"

# Calibración del cálculo de notas
scoring:
  thresholds:
    good: 75
    ok: 50
  smoothing: 5
  maxPerRule: 40

# Protección contra regresiones sobre la línea base
baseline:
  mode: strict          # "strict" o "relaxed"

# Comportamiento si expira la licencia
licensing:
  onLapse: "fail-closed" # "fail-closed" (código 2 en CI) o "fail-open"

# Políticas para monorrepositorios
workspace:
  minimumFloor: 75      # Impide que subpaquetes fijen failBelow por debajo de 75

# Control de telemetría saliente
telemetry:
  enabled: true         # Fija false para desactivar la cola de telemetría

# Anulación de gravedad de reglas
rules:
  ai-slop/trivial-comment: "off"
  ai-slop/unsafe-type-assertion: "error"

# Rutas excluidas
exclude:
  - "node_modules"
  - ".git"
  - "dist"
  - "build"
  - "coverage"
include: []
```

## Ubicación de archivos y orden de prioridad

Raigal busca el archivo de configuración recorriendo directorios hacia arriba hasta la raíz del repositorio:

1. `.raigal/config.yml` o `.raigal/config.yaml`
2. `.raigal/config.json`
3. Archivos en la raíz: `.raigal.yml`, `.raigal.yaml` o `.raigal.json`
4. Rutas heredadas de compatibilidad (`.aislop/config.yml`)

## Referencia de opciones

### `engines`

Activa o desactiva motores de análisis individuales:

* `format` (booleano, por defecto: `true`): espacios en blanco, sangrado, ajuste de líneas y orden de importaciones.
* `lint` (booleano, por defecto: `true`): reglas de linters con Oxlint, Ruff, Clippy y herramientas nativas.
* `code-quality` (booleano, por defecto: `true`): exportaciones sin uso (Knip), código muerto y límites de complejidad.
* `ai-slop` (booleano, por defecto: `true`): reglas contra malos patrones generados por IA, comentarios obvios y funciones wrapper redundantes.
* `architecture` (booleano, por defecto: `false`): límites arquitectónicos e importaciones cruzadas entre capas.
* `security` (booleano, por defecto: `true`): secretos expuestos, inyecciones de código y llamadas a funciones peligrosas.

### `quality`

Define los límites estructurales evaluados por el motor `code-quality`:

* `maxFunctionLoc` (número, por defecto: `80`): máximo de líneas físicas permitidas por función.
* `maxFileLoc` (número, por defecto: `400`): máximo de líneas físicas permitidas por archivo.
* `maxNesting` (número, por defecto: `5`): profundidad máxima de bloques anidados.
* `maxParams` (número, por defecto: `6`): número máximo de parámetros permitidos por función.

### `lint`

Configura herramientas de compilación y diagnóstico específicas por lenguaje:

* `typecheck` (booleano, por defecto: `false`): ejecuta diagnósticos del compilador de TypeScript (`tsc`).
* `expoDoctor` (booleano, por defecto: `false`): ejecuta comprobaciones de higiene en proyectos Expo React Native.
* `csharp`: opciones para C#, incluyendo `roslynator` y JetBrains InspectCode (`jb`).
* `cpp`: opciones para C/C++ (`cppcheck`, `clangTidy`).

### `ci`

Configura las comprobaciones en integración continua:

* `failBelow` (número, por defecto: `70`): nota mínima para dar el paso por bueno. Si la nota es inferior o hay algún `error`, `raigal ci` devuelve código de salida 1.
* `format` (`"json"`, por defecto: `"json"`): formato de salida en ejecuciones de CI.

### `baseline`

Configura la comparación de regresiones contra `.raigal/baseline.json`:

* `mode` (`"strict"` | `"relaxed"`, por defecto: `"relaxed"`): en modo `"strict"`, se desactiva la tolerancia de Stage 3 a nivel de archivo. Cualquier incidencia fuera de la ventana de 11 líneas se considera una regresión bloqueante.

### `licensing`

Define cómo actuar en CI si vence la licencia:

* `onLapse` (`"fail-open"` | `"fail-closed"`, por defecto: `"fail-open"`): en modo `"fail-closed"`, el CI finaliza con código de salida 2 si no se puede validar la licencia tras el periodo de gracia.

### `workspace`

Aplica estándares mínimos en monorrepositorios:

* `minimumFloor` (número, por defecto: `50`): suelo mínimo para `ci.failBelow` que las configuraciones de paquetes hijos no pueden rebajar.

### `scoring`

Calibra los parámetros del cálculo de notas:

* `thresholds`: límites de estado en la CLI.
  * `good` (número, por defecto: `75`): nota a partir de la cual el estado es `Healthy`.
  * `ok` (número, por defecto: `50`): nota a partir de la cual el estado es `Needs Work`. Por debajo se considera `Critical`.
* `smoothing` (número, por defecto: `5`): constante sumada al recuento de archivos para evitar caídas bruscas en repositorios pequeños.
* `maxPerRule` (número, por defecto: `40`): límite base de deducción para cualquier regla antes de escalar por tamaño de repositorio.
* `weights`: pesos personalizados por categoría (por defecto: `security: 1.5`, `ai-slop: 1.0`, `architecture: 1.0`, `code-quality: 0.8`, `lint: 0.6`, `format: 0.3`).

### `rules`

Diccionario de reglas para cambiar su gravedad o desactivarlas:

```yaml theme={null}
rules:
  ai-slop/trivial-comment: "off"
  ai-slop/unsafe-type-assertion: "error"
```

Los valores válidos son `"error"`, `"warning"` y `"off"`.

### `exclude` e `include`

Define qué carpetas y archivos analiza Raigal:

* `exclude` (lista de cadenas): rutas y directorios ignorados. Por defecto: `["node_modules", ".git", "dist", "build", "coverage"]`.
* `include` (lista de cadenas): rutas explícitas a analizar. Si está vacía (`[]`), se analizan todos los archivos compatibles no excluidos.

### `overrides`

Aplica límites o severidades diferentes según patrones de archivos:

```yaml theme={null}
overrides:
  - files: ["legacy/**/*.ts"]
    quality:
      maxFileLoc: 800
    rules:
      ai-slop/trivial-comment: "off"
```

### `telemetry`

Controla el envío de métricas a Raigal Cloud:

```yaml theme={null}
telemetry:
  enabled: true
```

Fija `false` para desactivar el envío de telemetría.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.