# update-policy

> Mostrar o fijar la política del proyecto que decide si BMAD+ busca actualizaciones y si alguna puede aplicarse sin ti: modos off, notify y auto, canal, rango, preversiones, el archivo y los errores.

Canonical: https://bmad-plus.rochetta.fr/es/docs/reference/cli-update-policy/
Language: es
BMAD+ version: 0.23.1
Documentation reviewed: 2026-10-19
Author: Laurent Rochetta
License: MIT

Documentación de BMAD+ › [Referencia](https://bmad-plus.rochetta.fr/es/docs/reference/) › update-policy

La política de actualización es un pequeño archivo de tu proyecto que dice cuánto puede hacer BMAD+ ante las nuevas versiones. Por defecto avisa y espera. Puedes desactivar las consultas, o permitir actualizaciones automáticas dentro de un rango de versiones que elijas: así un equipo deja avanzar una línea de parches de confianza y mantiene a una persona al mando de lo demás. `update-policy` muestra la política y, con opciones, la reescribe. Nunca comprueba ni instala nada por sí mismo.

<a id="synopsis"></a>
## Sinopsis

**En la terminal de tu proyecto**

```sh
npx bmad-plus update-policy [-d <path>] [--mode <off|notify|auto>] [--range <semver-range>] [--channel <tag>] [--allow-prerelease | --stable-only] [--json]
```

**Opciones de update-policy**

| Opción | Argumento | Qué hace |
| --- | --- | --- |
| `-d, --directory <path>` | carpeta | Proyecto (por defecto, la carpeta actual). |
| `--mode <mode>` | `off`, `notify`, `auto` | `off`: no contactar nunca con npm. `notify`: comprobar e informar, una persona aplica. `auto`: permitir actualizaciones automáticas dentro de `--range`. `auto` exige `--range`. |
| `--range <range>` | rango semver | Las versiones que pueden alcanzar las actualizaciones automáticas, por ejemplo `^0.23.0`. Debe ser un rango semver válido. |
| `--channel <tag>` | etiqueta npm | La etiqueta de publicación de npm que seguir. Por defecto `latest`. Minúsculas, dígitos, `-` y `_`, empezando por letra, 32 caracteres como máximo. |
| `--allow-prerelease` | - | Permitir preversiones como destino. |
| `--stable-only` | - | No permitir preversiones (lo predeterminado). No se combina con `--allow-prerelease`. |
| `--json` | - | Imprimir `{"policy": {...}, "changed": true\|false}`; los errores imprimen `{"error": "..."}`. |

<a id="policy-file"></a>
## El archivo de política

La política vive en `_bmad/update-policy.json`. Sin el archivo se aplica el valor por defecto: modo `notify`, canal `latest`, sin rango, sin preversiones, registro `https://registry.npmjs.org/`. El registro no es configurable: cualquier otro valor invalida la política, de modo que las actualizaciones no pueden redirigirse a otra fuente. Se rechazan las claves desconocidas. El archivo se escribe de forma atómica y nunca a través de un enlace.

**Una política que permite parches automáticos en 0.23.x**

```json
{
  "schemaVersion": 1,
  "mode": "auto",
  "channel": "latest",
  "allowedRange": "~0.23.0",
  "allowPrerelease": false,
  "registry": "https://registry.npmjs.org/"
}
```

**Qué hace cada modo**

| Modo | `update-check` | `update --latest` |
| --- | --- | --- |
| `off` | No contacta con npm: estado `off`. | Rechazada: `updates-disabled`. |
| `notify` (por defecto) | Comprueba e informa; el motivo es `approval-required`. | Solo con `--yes`. `--auto` se rechaza. |
| `auto` | Informa `ready-for-authorized-update` cuando el destino está dentro del rango y los archivos no han cambiado. | Con `--yes`, o con `--auto` para un destino dentro del rango; `--auto` exige además un inventario de propiedad completo y ningún conflicto. |

<a id="exit-codes"></a>
## Códigos de salida

**Códigos de salida de update-policy**

| Código | Significado |
| --- | --- |
| 0 | Política mostrada o guardada. |
| 1 | Combinación de opciones inválida, política inválida o archivo de política ilegible. El mensaje va al flujo de error (o al campo JSON `error`). |

<a id="real-output"></a>
## Salida

La salida es una línea: `Update policy saved: ...` si cambiaste algo, `Update policy: ...` si solo miraste. Las transcripciones se componen con la plantilla del código y se señalan como simuladas.

**Mirar y luego permitir parches** (Simulado)

```text
$ npx bmad-plus update-policy
Update policy: notify; channel=latest; range=none; prereleases=false
$ npx bmad-plus update-policy --mode auto --range "~0.23.0"
Update policy saved: auto; channel=latest; range=~0.23.0; prereleases=false
```

Transcripción ilustrativa, no capturada de una ejecución real. Fuente: tools/cli/commands/update-policy.js línea 40 y tools/cli/lib/update-policy.js DEFAULT_POLICY

<a id="errors"></a>
## Errores y qué hacer

**Mensajes de update-policy**

| Mensaje | Causa | Qué hacer |
| --- | --- | --- |
| `Choose --allow-prerelease or --stable-only.` | Se dieron ambas opciones. | Quédate con una. |
| `--mode auto requires an explicit --range.` | `auto` sin rango. | Añade `--range "<semver range>"`. |
| `Invalid update policy: check mode, channel, range, prerelease flag and official registry.` | Un valor está fuera de límites: modo, nombre de canal, sintaxis del rango, o un registro distinto del de npm. | Corrige el valor. El registro no se puede cambiar. |
| `Automatic updates require an explicit allowedRange.` | El archivo dice `auto` sin `allowedRange`. | Fija un rango o cambia el modo. |
| `Update policy is unreadable or invalid: ...` | El archivo existente no es JSON válido o no supera la validación. | Corrige o borra `_bmad/update-policy.json` y vuelve a fijar la política. |

<a id="examples"></a>
## Ejemplos

**No buscar nunca actualizaciones en este proyecto**

```sh
npx bmad-plus update-policy --mode off
```

**Volver al valor por defecto (avísame, yo decido)**

```sh
npx bmad-plus update-policy --mode notify
```

**Véase también**

- [update-check](https://bmad-plus.rochetta.fr/es/docs/reference/cli-update-check/)
- [update](https://bmad-plus.rochetta.fr/es/docs/reference/cli-update/)
- [El ciclo completo](https://bmad-plus.rochetta.fr/es/docs/guides/install-lifecycle/)

[Documentación de BMAD+](https://bmad-plus.rochetta.fr/es/docs/) · [Referencia](https://bmad-plus.rochetta.fr/es/docs/reference/)

[Código en GitHub](https://github.com/lrochetta/BMAD-PLUS)
