---
from: claude
to: dom
date: 2026-06-05T18:10:00+02:00
topic: plan-v11-5-parallele
status: open
priority: high
references:
  - decision: docs/coordination/decisions/2026-06-05_dom_d17-v11-5-chantiers-paralleles.md
  - decision: docs/coordination/decisions/2026-06-05_dom_d16-test-windows-avant-diffusion.md
  - decision: docs/coordination/decisions/2026-06-02_dom_d14-plateforme-licence-architecture.md
  - decision: docs/coordination/decisions/2026-06-02_dom_d13-partial-scope.md
---

# Plan v11.5 — préparation parallèle (3 chantiers)

Réponse au cap D-17. **Planification uniquement** — gel bêta respecté : aucun code
packagé bêta modifié, aucune refonte sur la branche de livraison.

## 0. ⚠️ Action de sécurité PRIORITAIRE (à faire maintenant, indépendante du gel)

**Le WIP Windows sauvegardé (`backup/windows-wip-2026-06-05`, commit `b8c9c41`,
GUI v6 +1250 lignes) n'existe QUE sur le disque de `192.168.1.11`.** Il n'est ni
sur Linux ni sur Gitea. Si la machine tombe, **on perd la base de la GUI v6**.

→ **Recommandation : pousser cette branche backup sur Gitea** (serveur local) dès
ton accord. C'est non destructif, hors périmètre bêta (branche séparée), et ça
sécurise le point d'entrée de l'Agent A. Sans ça, tout le chantier GUI v6 repose
sur un seul disque.

## 1. Ce qui peut démarrer TOUT DE SUITE (lecture / planification, sans GO bêta)

Tout ce tableau est de la lecture + des docs déposés en `inbox/for-dom/`. Zéro
modification de code de livraison.

| Agent | Démarrable maintenant | Livrable (doc) |
|---|---|---|
| A — GUI v6 | Inventaire `Pseudonymisation_Gui_V5.py` + `docs/ui_mockup_v6.html` + diff du WIP backup | `for-dom/…_planA_gui-v6-archi.md` |
| B — D-13 complet | Inventaire des réglages à protéger (déjà listés dans D-13) + matrice admin | `for-dom/…_planB_d13-complet.md` |
| C — Licence | Archi serveur + `license.py` (D-14 déjà cadré) — conception, pas de déploiement | `for-dom/…_planC_licence.md` |
| D — Intégration | Frontières fichiers + ordre de merge + critères d'acceptation | `for-dom/…_planD_integration.md` |

## 2. Ce qui ATTEND le GO bêta (D-16)

- **Tout codage** sur les fichiers du périmètre bêta : `anonymizer_core_refactored_onnx.py`,
  `quarantine.py`, `Pseudonymisation_Gui_V5.py`, `launcher.py`, le `.spec`, `admin_mode.py`.
- **Toute branche v11.5** créée à partir de la branche de livraison.
- Le **repackaging installateur** (Inno Setup) — déjà gelé par D-16.
- La **réintégration du WIP GUI v6** dans une branche de travail.

Raison : tant que Dom teste le pack v11 et peut demander un **hotfix MVP** sur
`feature/q1-quarantine-mvp`, on ne doit pas faire diverger cette branche ni mélanger
hotfix et v11.5.

## 3. Qui touche quels fichiers (frontières anti-collision — Agent D)

| Agent | Fichiers/zones PROPRES (création ou refonte) | Ne touche PAS |
|---|---|---|
| A — GUI v6 | nouveau `Pseudonymisation_Gui_V6.py`, `gui_v6/` (nouveau package), assets v6 | le moteur core, quarantine, license |
| B — D-13 | `admin_mode.py` (extension), `gui_v6/` sections « avancé » (avec A), `config_defaults.py` | core détection |
| C — Licence | nouveau `license.py`, nouveau repo/dossier `platform/` (serveur), clé publique embarquée | GUI, core |
| D — Intégration | docs de merge, CI, `tests/` (structure) | code applicatif |

**Zone de contact A↔B** : les écrans « Paramètres avancés / Profils techniques »
de la GUI v6 sont co-conçus (B définit les règles admin/non-admin, A les écrans).
→ contrat écrit entre A et B avant tout code.

**Zone de contact A↔C** : la GUI v6 affichera l'état licence (bannière, expiration).
→ A réserve un emplacement UI, C fournit l'API `license.py` (statut/expiration).

## 4. Comment éviter de perdre le WIP Windows sauvegardé

1. **Pousser `backup/windows-wip-2026-06-05` sur Gitea** (section 0) — survie hors disque unique.
2. **Produire un diff lisible** du WIP vs base (`git diff 0124457..b8c9c41 -- Pseudonymisation_Gui_V5.py`)
   → c'est la matière première de l'Agent A (les +1250 lignes GUI v6 déjà écrites).
3. **Ne PAS réintégrer le WIP par merge brut** dans la branche de livraison : le WIP
   part de `0124457` (52 commits avant `15f73f8`) et entre en conflit avec les fixes
   leak/RGPD/admin. La GUI v6 sera **réécrite proprement** (`Pseudonymisation_Gui_V6.py`
   neuf) en s'appuyant sur le WIP comme **référence**, pas comme base à merger.
4. **Tag de sécurité** sur le commit backup pour qu'il ne soit jamais gc.

## 5. Tests qui devront valider v11.5

| Chantier | Tests attendus |
|---|---|
| Non-régression moteur | **La suite `tests/unit` (98 passed) doit rester verte** — la GUI v6 ne doit RIEN changer au moteur. Garde-fou n°1. |
| GUI v6 (A) | Tests `gui_batch_paths` / `manual_masking` conservés ; smoke test lancement + workflow principal ; contrat moteur (mêmes entrées/sorties que v5). |
| D-13 (B) | Tests matrice admin/non-admin : chaque réglage protégé caché/désactivé en non-admin ; `admin_required` lève bien ; sauvegarde config sensible bloquée en non-admin. |
| Licence (C) | Tests `license.py` : vérif signature RSA-PSS (valide/falsifiée), expiration, grace period 15 j, offline 30 j, révocation au check. Tests serveur : activation poste, 1 licence = 1 machine_id. |
| Intégration (D) | Audit qualité `evaluate_quality.py` ≥ baseline (98.5) ; leak score 100/100 inchangé ; build EXE v11.5 reproductible. |

**Principe directeur** : v11.5 = refonte UI + ajouts périphériques (licence, admin).
**Le moteur de détection ne bouge pas** → le leak score 100/100 et les 98 tests sont
le filet de sécurité non négociable.

## 6. Ordre de merge proposé (Agent D)

1. **Base** : repartir de la branche de livraison **figée après GO bêta** (= `15f73f8`
   ou le hotfix éventuel), créer `feature/v11-5`.
2. **C (licence)** en premier — le plus isolé (`license.py` + `platform/` neufs), zéro
   conflit moteur/GUI. Mergeable indépendamment.
3. **A (GUI v6)** ensuite — gros morceau, fichier neuf `Pseudonymisation_Gui_V6.py`.
4. **B (D-13)** se greffe sur A (sections avancées de la GUI v6) — merge après A.
5. **Validation D** : qualité + tests + build, puis bascule v6 par défaut.

## 7. Risques principaux

| Risque | Mitigation |
|---|---|
| WIP GUI v6 perdu (disque unique) | Push backup sur Gitea **maintenant** (section 0) |
| GUI v6 casse le moteur | Contrat moteur strict + 98 tests verts obligatoires |
| Collision A/B sur écrans avancés | Contrat écrit A↔B avant code |
| Mélange hotfix MVP / v11.5 | Gel respecté ; v11.5 sur branche dédiée créée APRÈS GO bêta |
| Licence : clé privée RSA | Jamais dans le repo client ; côté serveur OVH uniquement (D-14) |
| Plateforme = gros effort (~50h) | Phasage D-14 respecté : 1.1 (client, ~12h) avant 1.2 (serveur, ~50h) |

## 8. Ce que je propose de démarrer dès ton accord

- **Immédiat (sécurité)** : push `backup/windows-wip-2026-06-05` sur Gitea + tag + diff GUI v6.
- **Planification (sans GO bêta)** : lancer les 4 sous-plans A/B/C/D en agents parallèles
  (lecture seule + docs), livrés en `inbox/for-dom/`.
- **En attente du GO bêta** : tout codage.

Dis-moi si tu valides ce découpage, et notamment le point 0 (push backup) que je
considère urgent indépendamment du reste.

— Claude
