Étend `RE_RPPS` pour tolérer 0 à 3 mots qualificateurs entre `RPPS` et le séparateur `:` ou `-`. Couvre les variantes observées : - RPPS prescripteur : - RPPS du médecin signataire : - RPPS de garde - - N° RPPS : Si un qualificateur est présent, le séparateur (`:` ou `-`) devient obligatoire pour éviter d'aspirer du narratif (faux positif type "Le RPPS est consulté pour vérifier 12345678901 dans la base"). La lambda `_repl_rpps` reconstruit `RPPS : [RPPS]` en sortie : le qualificateur est consommé mais perdu (pas de fuite, choix cosmétique). Cas 005_bacterio_complete passe désormais (retiré de KNOWN_FAILURES). La fuite `10101010101` derrière `RPPS prescripteur :` est masquée. Cohérent avec le cadrage section 10.1 (règle cœur générique applicable à tout établissement de santé français — pas de spécificité locale). Tests : 72 passed, 1 xfailed (avant : 71 passed, 2 xfailed). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Corpus synthétique de revue humaine
Ce corpus ne remplace pas les tests unitaires. Il sert à valider des documents complets, relus par un humain, avec un vrai diff entre :
test.txt: document synthétique sourceexpected.txt: anonymisation attendue selon la règle métieractual/: sortie réellement produite par le moteur
Objectif :
- détecter les régressions de composition sur des documents réalistes ;
- rendre visibles les écarts de comportement du moteur ;
- préparer une validation humaine avant promotion éventuelle en suite bloquante.
Commande :
python3 tools/run_synthetic_review_corpus.py
Chaque exécution écrit :
actual.txtactual.audit.jsonactual.summary.jsondiff.txt
Sous actual.