# update-policy

> Afficher ou fixer la politique du projet qui décide si BMAD+ cherche des mises à jour et si certaines peuvent s’appliquer sans vous : modes off, notify, auto, canal, plage, préversions, erreurs.

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

Documentation BMAD+ › [Référence](https://bmad-plus.rochetta.fr/fr/docs/reference/) › update-policy

La politique de mise à jour est un petit fichier de votre projet qui dit ce que BMAD+ peut faire face aux nouvelles versions. Par défaut, il vous prévient et attend. Vous pouvez couper les recherches, ou autoriser des mises à jour automatiques dans une plage de versions de votre choix : c’est ainsi qu’une équipe laisse avancer une série de correctifs de confiance tout en gardant un humain aux commandes pour le reste. `update-policy` affiche la politique et, avec des options, la réécrit. Elle ne vérifie ni n’installe rien elle-même.

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

**Dans le terminal de votre projet**

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

**Options de update-policy**

| Option | Argument | Ce qu’elle fait |
| --- | --- | --- |
| `-d, --directory <path>` | dossier | Projet (par défaut : dossier courant). |
| `--mode <mode>` | `off`, `notify`, `auto` | `off` : ne jamais contacter npm. `notify` : vérifier et rapporter, un humain applique. `auto` : autoriser des mises à jour automatiques dans `--range`. `auto` exige `--range`. |
| `--range <range>` | plage semver | Les versions que les mises à jour automatiques peuvent atteindre, par exemple `^0.23.0`. Doit être une plage semver valide. |
| `--channel <tag>` | étiquette npm | L’étiquette de publication npm à suivre. Par défaut `latest`. Lettres minuscules, chiffres, `-` et `_`, en commençant par une lettre, 32 caractères au plus. |
| `--allow-prerelease` | - | Autoriser les préversions comme cibles. |
| `--stable-only` | - | Interdire les préversions (le défaut). Incompatible avec `--allow-prerelease`. |
| `--json` | - | Afficher `{"policy": {...}, "changed": true\|false}` ; les erreurs affichent `{"error": "..."}`. |

<a id="policy-file"></a>
## Le fichier de politique

La politique vit dans `_bmad/update-policy.json`. Sans fichier, le défaut s’applique : mode `notify`, canal `latest`, pas de plage, pas de préversion, registre `https://registry.npmjs.org/`. Le registre n’est pas configurable : toute autre valeur rend la politique invalide, si bien que les mises à jour ne peuvent pas être redirigées vers une autre source. Les clés inconnues sont refusées. Le fichier est écrit de façon atomique et jamais à travers un lien.

**Une politique autorisant les correctifs automatiques en 0.23.x**

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

**Ce que fait chaque mode**

| Mode | `update-check` | `update --latest` |
| --- | --- | --- |
| `off` | Ne contacte pas npm : statut `off`. | Refusée : `updates-disabled`. |
| `notify` (défaut) | Vérifie et rapporte ; la raison est `approval-required`. | Seulement avec `--yes`. `--auto` est refusé. |
| `auto` | Rapporte `ready-for-authorized-update` quand la cible est dans la plage et que les fichiers sont inchangés. | Avec `--yes`, ou avec `--auto` pour une cible dans la plage ; `--auto` exige aussi un inventaire de propriété complet et aucun conflit. |

<a id="exit-codes"></a>
## Codes de sortie

**Codes de sortie de update-policy**

| Code | Signification |
| --- | --- |
| 0 | Politique affichée ou enregistrée. |
| 1 | Combinaison d’options invalide, politique invalide ou fichier de politique illisible. Le message va sur le flux d’erreur (ou dans le champ JSON `error`). |

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

La sortie tient en une ligne : `Update policy saved: ...` quand vous avez changé quelque chose, `Update policy: ...` quand vous avez seulement regardé. Les transcriptions sont composées à partir du modèle du code et signalées comme simulées.

**Regarder, puis autoriser les correctifs** (Simulé)

```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
```

Transcription illustrative, non capturée lors d’une exécution réelle. Source: tools/cli/commands/update-policy.js ligne 40 et tools/cli/lib/update-policy.js DEFAULT_POLICY

<a id="errors"></a>
## Erreurs et que faire

**Messages de update-policy**

| Message | Cause | Que faire |
| --- | --- | --- |
| `Choose --allow-prerelease or --stable-only.` | Les deux options sont données. | N’en gardez qu’une. |
| `--mode auto requires an explicit --range.` | `auto` sans plage. | Ajoutez `--range "<semver range>"`. |
| `Invalid update policy: check mode, channel, range, prerelease flag and official registry.` | Une valeur est hors limites : mode, nom de canal, syntaxe de plage, ou registre autre que celui de npm. | Corrigez la valeur. Le registre ne peut pas être changé. |
| `Automatic updates require an explicit allowedRange.` | Le fichier dit `auto` sans `allowedRange`. | Fixez une plage, ou changez le mode. |
| `Update policy is unreadable or invalid: ...` | Le fichier existant n’est pas du JSON valide ou échoue à la validation. | Corrigez ou supprimez `_bmad/update-policy.json`, puis fixez de nouveau la politique. |

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

**Ne jamais chercher de mises à jour dans ce projet**

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

**Retour au défaut (prévenez-moi, je décide)**

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

**Voir aussi**

- [update-check](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-update-check/)
- [update](https://bmad-plus.rochetta.fr/fr/docs/reference/cli-update/)
- [Tout le cycle de vie](https://bmad-plus.rochetta.fr/fr/docs/guides/install-lifecycle/)

[Documentation BMAD+](https://bmad-plus.rochetta.fr/fr/docs/) · [Référence](https://bmad-plus.rochetta.fr/fr/docs/reference/)

[Code sur GitHub](https://github.com/lrochetta/BMAD-PLUS)
