Files
anonymisation/docs/spec-regles-administration.md
Domi31tls d21e01a2c2 chore(rgpd): replace CHCB/Bayonne refs in docs (D-12)
Anonymise les références aux entités réelles (CHCB, villes basques,
Saint-Denis, Réunion, etc.) dans la documentation projet, les maquettes
HTML/Python, les notes de coordination et les audits.

Conserve docs/coordination/decisions/2026-06-02_dom_mvp-pivots-strategiques.md
(table de mapping de référence) et docs/coordination/inbox/for-claude/
intacts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-02 14:40:20 +02:00

308 lines
5.6 KiB
Markdown

# Specification MVP - regles d'administration
## 1. Objet
Cette specification decrit un MVP pour administrer des regles d'anonymisation
sans modifier directement le code du moteur.
Le but n'est pas de donner un acces libre a des regex dangereuses.
Le but est de fournir un **moteur de regles gouverne**, testable et reversible.
## 2. Objectifs fonctionnels
Le MVP doit permettre de :
- creer une regle ;
- visualiser sa forme normalisee ;
- simuler son effet sur un corpus cible ;
- l'activer ou la desactiver ;
- garder une trace complete des changements ;
- lier chaque regle a des cas de test.
## 3. Hors perimetre MVP
Le MVP ne cherche pas encore a :
- couvrir tous les cas regex complexes ;
- gerer des workflows d'approbation multi-niveaux ;
- remplacer toute la configuration coeur existante ;
- editer directement les heuristiques internes du pipeline.
## 4. Types de regles supportes
### 4.1 `exact_term`
Usage :
- masquer un terme exact.
Exemples :
- `CHUXX`
- `LOCAL_SIGLE`
Parametres principaux :
- `match.exact_value`
- `normalization.case_insensitive`
- `normalization.whole_word`
### 4.2 `normalized_identifier`
Usage :
- masquer une valeur canonique et ses variantes normalisees.
Exemple :
- valeur canonique : `1234567`
Variantes attendues selon la configuration :
- `1234567`
- `N°1234567`
- `N° 1234567`
- `No1234567`
- `Numero 1234567`
Parametres principaux :
- `match.canonical_value`
- `normalization.accepted_prefixes`
- `normalization.prefix_value_separators`
- `normalization.allow_bare_value`
- `normalization.multiline`
### 4.3 `contextual_identifier`
Usage :
- masquer un identifiant seulement dans un contexte structure donne.
Exemples :
- `IPP : ABC12345`
- `N° venue : 1234567`
- `N° examen : 23L35781`
Parametres principaux :
- `match.canonical_value`
- `match.context_prefixes`
- `match.context_separators`
- `normalization.multiline`
### 4.4 `preserve_phrase`
Usage :
- garantir qu'une phrase ou formulation metier ne soit jamais masquee.
Exemples :
- `classification internationale`
- `prise en charge`
Parametres principaux :
- `match.exact_value`
- `normalization.case_insensitive`
## 5. Structure des regles
Le schema de reference est fourni ici :
- [admin_rules.schema.json](/home/dom/ai/anonymisation/schemas/admin_rules.schema.json:1)
Le template versionne est ici :
- [admin_rules.default.yml](/home/dom/ai/anonymisation/config/admin_rules.default.yml:1)
## 6. Champs minimaux par regle
Chaque regle doit porter :
- `id`
- `label`
- `type`
- `action`
- `status`
- `match`
- `scope`
- `governance`
Et, si `action = mask` :
- `placeholder`
## 7. Etats de cycle de vie
### `draft`
- regle redigee ;
- jamais activee ;
- pas encore validee.
### `candidate`
- regle complete ;
- simulation en cours ;
- revue humaine a faire.
### `approved`
- regle validee fonctionnellement ;
- prete a etre activee.
### `active`
- regle exploitable en environnement autorise.
### `disabled`
- regle desactivee temporairement.
### `retired`
- regle retiree, conservee pour audit.
## 8. Portee d'une regle
Une regle ne doit pas etre globalisee par defaut.
Le MVP doit permettre de preciser :
- familles documentaires ;
- environnements ;
- zones documentaires :
- `narrative`
- `structured`
- `table`
- `header`
- `footer`
## 9. Gouvernance minimale
Chaque regle doit indiquer :
- `owner`
- `justification`
- `created_at`
- `review_required_for_activation`
- `tests.required_case_ids`
Pour une regle active, l'absence de cas de test associe doit etre interdite.
## 10. Ecrans MVP recommandes
### 10.1 Liste des regles
Colonnes minimales :
- id ;
- label ;
- type ;
- status ;
- scope ;
- auteur ;
- date ;
- dernier test ;
- dernier verdict.
Actions :
- filtrer ;
- dupliquer ;
- desactiver ;
- ouvrir ;
- comparer deux versions.
### 10.2 Creation / edition d'une regle
Blocs de formulaire :
- identification ;
- type ;
- valeur source ;
- normalisation ;
- portee ;
- gouvernance ;
- rattachement des cas de test.
### 10.3 Simulation
Avant activation, afficher :
- variantes generees ;
- cas touches ;
- extrait avant / apres ;
- nouveaux masquages ;
- pertes de preservation ;
- verdict automatique.
### 10.4 Validation / activation
Le panneau d'activation doit afficher :
- resultat du validateur de schema ;
- resultat des tests lies ;
- resultat du corpus de simulation ;
- presence ou non d'une revue humaine ;
- bouton `Activer` ou blocage.
### 10.5 Historique
Chaque changement doit laisser une trace :
- qui ;
- quand ;
- quoi ;
- pourquoi ;
- sur quel perimetre ;
- avec quel resultat.
## 11. Garde-fous obligatoires
Le MVP doit bloquer :
- une regle active sans cas de test ;
- une regle `preserve_phrase` avec action `mask` ;
- une regle trop large sans justification ;
- une activation sans simulation ;
- une regle syntaxiquement invalide.
## 12. Commande de validation hors interface
Le depot fournit un validateur CLI :
- [validate_admin_rules.py](/home/dom/ai/anonymisation/tools/validate_admin_rules.py:1)
Exemple :
```bash
python3 tools/validate_admin_rules.py --config config/admin_rules.default.yml --show-variants
```
## 13. Recommandation d'implementation
Ordre recommande :
1. schema et validateur ;
2. stockage YAML versionne ;
3. simulation hors interface ;
4. ecran d'edition ;
5. ecran de simulation ;
6. activation gouvernee.
## 14. Point important
Ces artefacts definissent le **contrat de regles** et le **MVP d'administration**.
Ils ne branchent pas encore ces regles dans le moteur de production.
La prochaine etape technique sera :
- chargement de `admin_rules` ;
- compilation ;
- simulation ;
- puis application controlee dans le pipeline.