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

# General

> Los ajustes centrales de la revisión — cadencia, flujo de PR, condiciones de omisión y tipos de análisis — más la referencia completa de kodus-config.yml.

## Configuración Principal

<Note>
  Kodus tiene tres niveles de configuración: Global, Repositorio y Directorio. Aprende cómo funcionan en <a href="/es/how_to_use/code_review/configs/inheritance_overrides">Herencia y Overrides de Configuración</a>.
</Note>

### Prioridad de Configuración

Puedes mantener la configuración de revisión en un archivo `kodus-config.yml` en la raíz de tu
repositorio en lugar de usar la interfaz web.

<Warning>
  **El archivo se ignora hasta que lo habilites.** Por defecto,
  `kodusConfigFileOverridesWebPreferences` es `false`, lo que significa que Kody nunca lee
  `kodus-config.yml` — hacer commit del archivo por sí solo no hace nada.

  Actívalo primero en **Settings → Code Review → el repositorio → General**, o define
  `kodusConfigFileOverridesWebPreferences: true` a nivel de repositorio (o directorio) desde la
  interfaz web. Solo entonces el archivo surte efecto.
</Warning>

Una vez habilitado, el archivo se fusiona sobre tus ajustes web, así que solo necesitas declarar
las claves que quieras cambiar — todo lo que omitas conserva su valor de la web.

<Note>
  **Las claves desconocidas se descartan en silencio.** Cualquier clave de primer nivel que no
  forme parte del esquema actual se elimina antes de aplicar la configuración — sin error ni
  advertencia. Si un ajuste parece no tener efecto, revisa la ortografía contra el ejemplo de
  abajo.
</Note>

<Accordion title="Ejemplo de kodus-config.yml">
  ```yaml theme={null}
  version: 2.0

  # general
  automatedReviewActive: true
  showStatusFeedback: true
  kodusConfigFileOverridesWebPreferences: false
  reviewCadence:
      type: 'automatic' # automatic | auto_pause | manual
      timeWindow: 15 # minutos
      pushesToTrigger: 3
  pullRequestApprovalActive: false
  isRequestChangesActive: false # no disponible en GitLab
  runOnDraft: true
  ignorePaths:
      - 'yarn.lock'
      - 'package-lock.json'
      - 'package.json'
      - '.env'
      - '**/*.json'
  ignoredTitleKeywords: []
  baseBranches: []
  enableCommittableSuggestions: true
  byokModel: '' # vacío = hereda el modelo de tus ajustes de BYOK

  # Solo Teams / Enterprise. Repositorios hermanos que el agente puede consultar en la revisión.
  # Límite recomendado de 3; vacío = función desactivada.
  linkedRepositories: []

  # categorías de revisión
  reviewOptions:
      bug: true
      performance: true
      security: true
      business_logic: true

  # control de sugerencias
  suggestionControl:
      applyFiltersToKodyRules: false
      severityLevelFilter: 'medium' # low | medium | high | critical

  # resumen del PR
  summary:
      generatePRSummary: true
      behaviourForNewCommits: 'none'
      behaviourForExistingDescription: 'replace'
      customInstructions: ''

  # kody rules
  ideRulesSyncEnabled: false
  kodyRulesGeneratorEnabled: true
  kodyLearningExcludedReviewers: []
  kodyKnowledgeApproval:
      enabled: false

  # mensajes personalizados
  customMessages:
      globalSettings:
          hideComments: false # solo GitHub
          suggestionCopyPrompt: true # no disponible en Bitbucket
      errorReviewMessage:
          status: 'off' # off | active
          content: ''
      startReviewMessage:
          status: 'every_push' # every_push | only_when_opened | off
          content: ''
      endReviewMessage:
          status: 'every_push' # every_push | only_when_opened | off
          content: ''
  ```
</Accordion>

<Note>
  Este ejemplo refleja los valores por defecto que se entregan. La fuente canónica es
  [`default-kodus-config.yml`](https://github.com/kodustech/kodus-ai/blob/main/default-kodus-config.yml)
  en el repositorio kodus-ai.
</Note>

## Comportamiento de la Revisión

### Revisión Automatizada

Kody puede revisar los PRs automáticamente cuando se abren, o solo cuando comentas `@kody start-review`.

<Info>
  Esto afecta solo la **revisión inicial**. Para commits posteriores, consulta Cadencia de Revisión a continuación.
</Info>

#### Cadencia de Revisión

Cómo Kody gestiona las revisiones en commits posteriores:

<Tabs>
  <Tab title="Automática">
    Revisa cada nuevo push. Feedback continuo sobre todos los cambios.
  </Tab>

  <Tab title="Auto-pausa">
    Pausa las revisiones durante pushes consecutivos rápidos (p. ej., 3 pushes en 15 minutos). Previene el spam durante la codificación activa.

    Valores predeterminados: 3 pushes / 15 minutos
  </Tab>

  <Tab title="Manual">
    Solo ejecuta revisiones de seguimiento cuando comentas `@kody start-review`.
  </Tab>
</Tabs>

### Flujo de Trabajo del PR

#### Auto-aprobar PRs

Kody aprueba los PRs cuando no se encuentran problemas.

**Plataformas:** GitHub, GitLab, Bitbucket

#### Solicitar Cambios

Kody solicita cambios cuando encuentra problemas críticos.

**Plataformas:** GitHub, Bitbucket

### Condiciones de Omisión

**Archivos Ignorados:** Usa patrones glob (p. ej., `**/*.js`), uno por línea. Predeterminados: `yarn.lock`, `package-lock.json`, `package.json`, `.env`, `**/*.json`

**Títulos Ignorados:** Omite PRs con palabras clave específicas (sin distinción entre mayúsculas y minúsculas, máx. 100 caracteres)

**Ramas Base:** Restringe *qué* ramas de destino se revisan.

<Info>
  **Vacío (el valor por defecto) significa que se revisa cualquier rama de destino** — no existe
  una lista integrada de `dev`/`release`/`master`. Añade entradas solo cuando quieras *acotar* el
  alcance: con la lista no vacía, Kody revisa únicamente los PRs dirigidos a esas ramas (la rama
  por defecto de tu repositorio siempre se incluye).

  Las entradas se comparan con la rama de **destino** del PR y admiten una sintaxis propia:

  | Entrada           | Coincide con                                                                           |
  | ----------------- | -------------------------------------------------------------------------------------- |
  | `main`            | PRs dirigidos exactamente a `main`                                                     |
  | `release/*`       | PRs dirigidos a cualquier rama bajo `release/` (`*` es comodín de un nivel)            |
  | `=main`           | Coincidencia exacta, igual que escribir `main`                                         |
  | `!staging`        | Excluye PRs dirigidos a `staging`                                                      |
  | `contains:hotfix` | Compara con la rama de **origen** — cualquier PR cuya rama de origen contenga `hotfix` |

  Cuando varias entradas coinciden, gana la más específica. Cada entrada está limitada a 100
  caracteres, solo puede usar `a-z A-Z 0-9 / * - _ ! = :`, y `**` no está permitido.
</Info>

**PRs en borrador:** `runOnDraft` es `true` por defecto, así que los borradores se revisan.
Ponlo en `false` para omitirlos hasta que el PR se marque como listo.

## Tipos de Análisis

Kody revisa en cuatro categorías. Habilita o deshabilita cada una en **Analysis Types**, o
mediante `reviewOptions` en `kodus-config.yml`.

* **Bug** — errores de lógica, condiciones de carrera, desreferencias nulas, casos límite y comportamiento incorrecto.
* **Security** — vulnerabilidades, inyección, problemas de autenticación, exposición de datos y secretos.
* **Performance** — consultas N+1, asignaciones en el hot path, falta de caché y E/S bloqueante.
* **Business Logic** — valida la implementación contra reglas de negocio, requisitos y criterios
  de aceptación vinculados al PR. Consulta
  [Validación de Lógica de Negocio](/es/how_to_use/code_review/business_logic_validation).

<Note>
  Kody Rules **no** es una de estas categorías — siempre se ejecutan, con independencia de
  `reviewOptions`. Consulta [Kody Rules](/es/how_to_use/code_review/configs/kody_rules).
</Note>
