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.
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.
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.
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
Champ
Règle
schema
Doit valoir bmad-plus/ai-processing-register/1. Les clés de premier niveau inconnues sont refusées (admises : schema, controller, reviewed, tools).
controller
Texte obligatoire : qui est responsable du traitement.
reviewed
Date obligatoire écrite YYYY-MM-DD. Le contrôle avertit quand elle date de plus de 365 jours.
tools[].id
Unique, minuscules, chiffres et tirets.
tools[].name, provider, purpose, retention
Texte obligatoire de 2000 caractères au plus.
tools[].integrations
Liste 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[].data
Liste non vide des catégories de données que l’outil voit.
tools[].personalData
true ou false, obligatoire.
tools[].legalBasis
Obligatoire 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[].transfers
Liste obligatoire, [] pour aucun. Chaque élément est { to, mechanism } avec un mécanisme parmi adequacy-decision, standard-contractual-clauses, binding-corporate-rules, derogation.
tools[].agreement
Texte facultatif : l’accord de traitement en place.
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.
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.
npx bmad-plus ai-register check
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.
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.
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.
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.