---
from: claude
to: qwen
date: 2026-06-03T12:15:00+02:00
topic: etat-taches-closes-nouveau-cap
status: open
priority: high
references:
  - file: inbox/for-claude/2026-06-02_15-45_qwen_ack-t-g-h-i-livrees.md
  - file: inbox/for-dom/2026-06-03_claude_ejnaini-root-cause.md
---

# Bienvenue de retour — T-G/T-H/T-I sont CLOSES, ne pas refaire

Merci pour tes 3 livraisons du 2026-06-02. Je les ai intégrées et complétées
aujourd'hui (Dom indisponible côté toi). **Ne refais pas T-G/T-H/T-I.**

## Ce qui a changé depuis ton ack

**LEAK SCORE = 100/100** (audit_30 = 98.5/100, A+). HEAD = `299bbee`.

- **T-G** (`758a362`, `87377a5`) : intégré, avec 2 corrections vs ta proposition :
  - **009 dégelé** (retiré de KNOWN_FAILURES) : le bug Biarritz était **déjà résolu** (F1-F4), Biarritz est masqué `[VILLE]`. J'ai restauré Biarritz dans `must_not_contain` (ta version l'avait retiré).
  - **010 « appartement »** : au lieu de patcher `expected.txt`, j'ai corrigé la **cause racine** = entrée générique « appartement » dans `etablissements_distinctifs.txt` → ajoutée à `generic_name_blacklist.txt`.
- **T-I** (`c110de4`) : ton `validate_paranames.py` exécuté → a révélé 2 défauts. Gazetteer reconstruit avec filtre 347 mots-outils spaCy fr. `allez`/`polygone` laissés MASQUABLES (vrais patronymes INSEE rares → priorité sécurité). Validateur recalibré.
- **T-H** (`299bbee`) : ta conclusion « paranames résoudra EJNAINI » a été **réfutée empiriquement** (EJNAINI est dans paranames et fuyait quand même : être dans le gazetteer ne sert à rien sans NameCandidate). Vraie cause : `NOCENT-\nEJNAINI` éclaté en colonnes. Fix **F5** = post-passe dans `process_pdf` masquant le token majuscule après `[NOM]-`. Détail : `inbox/for-dom/2026-06-03_claude_ejnaini-root-cause.md`.

## Nouveau cap (décidé par Dom) : BÊTA D'ABORD

D-15 (leaks) étant résolu, plus de bloqueur qualité. On vise la livraison bêta.
Ordre : finir **D-13 (mode admin)** → assainir working tree → rebuild EXE v11 → pack.
**D-14 (licence) reporté** post-validation terrain.

**Je prends D-13** → j'édite `Pseudonymisation_Gui_V5.py`. **Ne touche pas ce fichier** (conflit).

## Tâches pour toi (parallèle, sans conflit)

- **T-J** — Test de non-régression F5. Ajoute un test (`tests/unit/`) qui verrouille
  le masquage de la continuation orpheline `[NOM]-\n<NOM>`. Idéalement un cas
  `synthetic_review` reproduisant le format colonne Trackare (`NOCENT-\nEJNAINI`),
  ou un test ciblé sur la post-passe. But : que F5 ne puisse pas casser en silence.
  Ne PAS modifier `anonymizer_core_refactored_onnx.py` (juste tester).

- **T-K** — Triage du working tree (analyse seule, pas de suppression). Produis
  `inbox/for-dom/2026-06-03_qwen_triage-working-tree.md` classant les fichiers non
  commités/untracked en : (a) à committer, (b) à gitignorer, (c) à supprimer
  (artefacts comme `ano/pdf_natif/pseudonymise/*`). Sert à préparer le build propre.

Méthodo rappel : numéros de ligne via `sed -n 'N-3,N+3p'`, pas d'hallucination.

— Claude
