Parcourir la documentation

ai-register

Tenir un registre des outils d’IA de votre projet, de leurs données, base légale et transferts, et laisser un contrôle souple signaler toute intégration d’IA du dépôt que le registre ignore.

Sur cette page
  1. Synopsis
  2. Le fichier de registre
  3. Ce qu’il lit et écrit
  4. Codes de sortie
  5. À quoi ressemble la sortie
  6. Le même contrôle dans doctor
  7. Erreurs et que faire
  8. Exemples

Les assistants de code, les lignes de commande d’agents, les API de modèles appelées par votre produit et les serveurs MCP traitent tous des données, parfois personnelles. ai-register tient un fichier, _bmad/ai-processing-register.yaml, qui dit pour chaque outil qui le fournit, dans quel but, quelles données il voit, sur quelle base légale, pour combien de temps et où vont les données hors EEE. Son action check cherche les intégrations d’IA du dépôt et signale celles que le registre ne couvre pas. Il fait partie de la boîte à outils du pack Shield et sert à qui doit préparer un registre des traitements, une AIPD qui implique des outils d’IA ou une revue de fournisseurs.

Remarque Une porte souple, volontairement

Une entrée manquante est un avertissement et ne fait jamais échouer une construction ; seul un registre illisible sort avec un code non nul. Le registre consigne les traitements, il ne les rend pas licites. La base légale, le mécanisme de transfert et les accords relèvent du responsable de traitement et de son DPO, et le contrôle ne voit que la configuration du dépôt : un outil installé sur le poste d’un développeur sans fichier de projet se trouve en demandant, pas par le contrôle.

Synopsis

Dans le terminal de votre projet
npx bmad-plus ai-register init [-d <path>] [--json]
npx bmad-plus ai-register check [-d <path>] [--json]

Actions et options de ai-register
Option ou actionArgumentDéfautCe qu’elle fait
init--Copie le modèle Shield vers _bmad/ai-processing-register.yaml. N’écrase jamais un registre existant. Les entrées du modèle sont des exemples : check continue donc d’avertir tant que vous ne les avez pas remplacées.
check--Détecte les intégrations d’IA du projet, les compare au registre et affiche le résultat.
-d, --directory<path>dossier courantDossier du projet.
--json-désactivéeSortie lisible par machine (schemaVersion: 1).

Le fichier de registre

Forme d’une entrée (issue du modèle Shield)
schema: bmad-plus/ai-processing-register/1
controller: Example Ltd, 1 Example Street, Example City
reviewed: 2026-09-29
tools:
  - id: coding-assistant
    name: Claude Code
    provider: Anthropic PBC
    integrations: [claude-code]
    purpose: Assist developers in reading, writing and reviewing the code of this repository.
    data:
      - Source code and commit history of this repository
    personalData: true
    legalBasis: legitimate-interests
    retention: The period set by the provider’s terms, written here in days.
    transfers:
      - to: United States
        mechanism: standard-contractual-clauses
    agreement: Data processing addendum attached to the commercial terms.

Règles que le contrôle impose
ChampRègle
schemaDoit valoir bmad-plus/ai-processing-register/1. Les clés de premier niveau inconnues sont refusées (admises : schema, controller, reviewed, tools).
controllerTexte obligatoire : qui est responsable du traitement.
reviewedDate obligatoire écrite YYYY-MM-DD. Le contrôle avertit quand elle date de plus de 365 jours.
tools[].idUnique, minuscules, chiffres et tirets.
tools[].name, provider, purpose, retentionTexte obligatoire de 2000 caractères au plus.
tools[].integrationsListe non vide des identifiants d’intégration que l’entrée couvre : un identifiant d’outil d’adaptateur (claude-code, gemini-cli, antigravity, cursor, codex-cli, opencode, aider), un autre outil comme github-copilot, windsurf ou continue, ou mcp:<server name as declared>. Un identifiant ne peut être couvert que par une seule entrée.
tools[].dataListe non vide des catégories de données que l’outil voit.
tools[].personalDatatrue ou false, obligatoire.
tools[].legalBasisObligatoire quand personalData vaut true, interdit sinon. L’une de consent, contract, legal-obligation, vital-interests, public-task, legitimate-interests (RGPD art. 6, par. 1).
tools[].transfersListe obligatoire, [] pour aucun. Chaque élément est { to, mechanism } avec un mécanisme parmi adequacy-decision, standard-contractual-clauses, binding-corporate-rules, derogation.
tools[].agreementTexte facultatif : l’accord de traitement en place.

Ce qu’il lit et écrit

  • init écrit un seul fichier, _bmad/ai-processing-register.yaml, en créant _bmad si besoin. Il refuse si _bmad n’est pas un dossier (un lien écrirait hors du projet).
  • check n’écrit rien. Il lit le registre (jusqu’à 256 Ko) et cherche des intégrations d’IA à quatre endroits : les fichiers d’adaptateurs que BMAD+ installe (CLAUDE.md, GEMINI.md, .cursor/rules/bmad-plus.mdc, .codex/AGENTS.md, .opencode/AGENTS.md, CONVENTIONS.md), les marqueurs propres aux outils (.claude, .cursor, .cursorrules, .gemini, .codex, .opencode, opencode.json, .aider.conf.yml, .github/copilot-instructions.md, .windsurf, .windsurfrules, .continue) et les serveurs MCP déclarés dans .mcp.json, .cursor/mcp.json, .gemini/settings.json et .vscode/mcp.json (commentaires et virgules finales acceptés).
  • Rien n’est envoyé nulle part et aucun programme n’est lancé. Les liens symboliques ne sont pas suivis.

Codes de sortie

Codes de sortie par action
ActionCodeSignification
init0Registre écrit.
check0Le registre a été lu ou est absent. Les avertissements n’y changent rien.
check1Le registre existe mais est inutilisable : illisible, YAML invalide, ou une règle ci-dessus n’est pas respectée. La raison s’affiche en error.
init, autre3Action inconnue (ai-register: unknown action "x" (init, check)) ou échec de init (par exemple le registre existe déjà).

À quoi ressemble la sortie

Les transcriptions sont composées à partir des modèles de messages du code source, sur un projet imaginaire qui utilise Claude Code et un serveur MCP GitHub, puis ajoute Cursor. Elles sont marquées comme simulées.

Démarrer le registre, puis le contrôler
npx bmad-plus ai-register init
_bmad/ai-processing-register.yaml: started from the Shield template. Replace the example entries, then run bmad-plus ai-register check.
npx bmad-plus ai-register check
_bmad/ai-processing-register.yaml: reviewed 2026-09-29 — 2/2 AI integration(s) registered
  registered claude-code → coding-assistant
  registered mcp:github → issue-tracker-connector
Le 2/2 suppose que le .mcp.json du projet déclare un serveur github. Sans lui, le compte est 1/1 et une ligne indique que mcp:github est « not found here (may be used outside the repository) ».

Sortie capturée lors d’une exécution réelle. Source: Rejoué avec le paquet 0.23.0 (packs Core et Shield, Claude Code) dans un projet jetable dont le .mcp.json déclare un serveur github

Un outil que le registre ignore
npx bmad-plus ai-register check
_bmad/ai-processing-register.yaml: reviewed 2026-09-29 — 2/3 AI integration(s) registered
  registered claude-code → coding-assistant
  registered mcp:github → issue-tracker-connector
  warning   cursor is set up (.cursor/rules/bmad-plus.mdc, .cursor) but not in the AI processing register
  Add each tool with its purpose, data, legal basis, retention and transfers; see the Shield template shared/ai-processing-register-template.yaml.
Code de sortie 0 : un avertissement ne fait jamais échouer la commande.

Sortie capturée lors d’une exécution réelle. Source: Rejoué avec le paquet 0.23.0 dans le même projet jetable après ajout de l’adaptateur Cursor

Autres lignes possibles : <file>: absent — 0/N AI integration(s) registered avec l’avertissement no AI processing register at _bmad/ai-processing-register.yaml quand il y a des intégrations mais pas de registre ; warning the register was last reviewed on <date>, <n> days ago ; not found here (may be used outside the repository): <ids> pour les entrées qui ne correspondent à rien dans le dépôt (normal pour une API de modèle appelée seulement par votre produit) ; et des lignes error sur le flux d’erreur quand le registre est invalide. Avec --json, le résultat comporte status (ok, warning ou error), integrations (chacune avec ids, sources, coveredBy), unmatched, warnings et errors.

Le même contrôle dans doctor

Quand le pack Shield est installé, bmad-plus doctor exécute la même comparaison sous le contrôle shield.ai-register. C’est un pass (« AI processing register covers the N AI integration(s) found. ») ou un warning qui liste les problèmes et renvoie à bmad-plus ai-register check. Doctor n’en fait jamais une erreur : un registre incomplet ne fait donc pas échouer le contrôle de santé d’une installation.

Erreurs et que faire

Messages de ai-register
MessageCauseQue faire
ai-register: _bmad/ai-processing-register.yaml already existsinit n’écrase jamais.Modifiez le fichier existant, ou déplacez-le d’abord.
ai-register: _bmad is not a folderAutre chose qu’un dossier se trouve à _bmad.Retirez-le ou renommez-le, puis relancez init.
ai-register: unknown action "x" (init, check)L’action n’est ni init ni check.Utilisez l’une des deux actions.
error _bmad/ai-processing-register.yaml: tool X: legalBasis must be one of ...personalData vaut true et la base légale manque ou est inconnue.Choisissez l’une des six bases légales, ou mettez personalData: false et retirez legalBasis.
error ... tool X: transfers must list where data goes outside the EEA ([] for nowhere)La liste transfers manque.Ajoutez transfers: [], ou les destinations avec leur mécanisme.
error ... tool X: <id> is already covered by YDeux entrées revendiquent le même identifiant d’intégration.Gardez l’identifiant dans une seule entrée.
error ... register: schema must be "bmad-plus/ai-processing-register/1" / unknown key(s) ...Mauvaise ligne schema ou clé non reconnue.Corrigez la ligne schema, retirez ou renommez la clé inconnue.
error ... register: reviewed: expected a date written YYYY-MM-DDLa date de revue n’est pas une vraie date de calendrier sous cette forme.Écrivez-la 2026-09-29.
warning <file> cannot be read (...); its MCP servers are not checkedUn fichier de déclaration MCP n’est pas du JSON valide (commentaires et virgules finales passent).Corrigez le fichier ; d’ici là ses serveurs ne sont pas comparés.
warning <file> declares the MCP server "<name>", whose name cannot be registered; it is not checkedLe nom du serveur contient des caractères qu’un identifiant de registre ne peut pas porter.Renommez le serveur dans le fichier MCP, ou gardez une note à son sujet hors du registre.

Exemples

Inventorier les outils d’IA et remplir le registre

Votre équipe utilise un assistant de code et deux serveurs MCP, et personne n’a noté ce qu’ils voient.

Dans votre assistant IA
Shield, quels outils d’IA touchent aux données de ce projet ? Lance le contrôle du registre, crée le registre s’il n’y en a pas, et remplis une entrée par outil. Demande-moi ce que tu ne peux pas lire dans le dépôt au lieu de le deviner.

Ce que vous devriez obtenir Shield lance bmad-plus ai-register check, liste les intégrations trouvées (fichiers d’adaptateurs, dossiers d’outils, serveurs MCP) et celles sur lesquelles il doit vous interroger parce qu’elles ne laissent aucune trace dans le dépôt, comme une API de modèle appelée par votre produit. Il lance ai-register init, remplace les exemples du modèle par une entrée par outil, en remplissant fournisseur, finalité, données, durée de conservation et transferts d’après les conditions du fournisseur et ce que l’outil peut lire, et dit clairement quand un fait est inconnu. Pour les entrées avec données personnelles, il propose une base légale que vous tranchez. Il termine en relançant check et en rapportant les intégrations enregistrées et les avertissements restants.

Contrôler le registre avant une AIPD

Vous allez conduire une analyse d’impact sur la protection des données pour une fonctionnalité qui utilise des outils d’IA.

Dans votre assistant IA
Shield, avant de commencer l’AIPD, vérifie que le registre des traitements IA est complet et revu. Liste les outils sans entrée, les entrées sans base légale et tout ce qui a été revu il y a plus d’un an.

Ce que vous devriez obtenir Shield lance bmad-plus ai-register check (lecture seule). Il rapporte chaque ligne warning (outils configurés mais non enregistrés, revue de plus de 365 jours) et, si le registre est invalide, chaque ligne error, ce qui signifie aussi le code de sortie 1. Il lit ensuite le fichier de registre pour repérer les entrées qui demandent encore une décision, et rappelle que la détection ne voit que ce qui est configuré dans le dépôt. Il ne choisit pas une base légale à votre place ; pour un traitement à grande échelle ou nouveau, il recommande de poursuivre avec le workflow d’AIPD.