---
from: qwen
to: dom
date: 2026-06-04
topic: checklist-pack-beta
status: open
priority: high
references:
  - inbox/for-qwen/2026-06-04_14-35_claude_repartition-jobs-beta.md
---

# Checklist pack beta v11 — 2026-06-04

Checklist de validation avant envoi du pack beta sur OwnCloud au beta-testeur Province Beta.
Chaque case doit etre verifiable par une personne qui prepare le pack.

---

## 1. Contenu du pack

- [ ] **EXE principal** : `Pseudonymisation.exe` present (build v11, pas l'installer MSI)
  - Verifier : le fichier existe, taille ~200-500 Mo, nom exact `Pseudonymisation.exe`
  - *Note* : le build se fait sur Windows (192.168.1.11) via `build_windows_oneclick.bat` ou `anonymisation_onefile.spec`
- [ ] **Fichiers de config** : `config/profiles.yml` et `config/` complet inclus
  - Verifier : pas de profil `standard_local_copie_copie` (doublon corrige en C-2)
- [ ] **Modeles ONNX/GLiNER** : dossier `models/` present avec :
  - `models/camembert-bio-deid/onnx/model.onnx` (embarque)
  - `models/eds-pseudo/` (telecharge au premier lancement si absent)
  - `models/gliner/` (telecharge au premier lancement si absent)
- [ ] **Dictionnaires externes** : dossier `data/` complet (INSEE, FINESS, BDPM, blacklist villes, etc.)
  - Verifier : `data/` contient bien les fichiers `.txt` / `.json` / `.csv` — pas de repertoires vides
- [ ] **Documentation minimale** : au minimum `FONCTIONNEMENT.md` present
- [ ] **Procedure SmartScreen** : `docs/installation/smartscreen-procedure.md` incluse (ou version simplifiee en PDF)

---

## 2. Fichiers a exclure du pack

- [ ] **Sorties PII** : aucun fichier dans `pdf_natif/`, `pseudonymise/`, `test_anonymise/`, `test_chcb_leak/`, etc.
  - Verifier : `find . -path "*/pdf_natif/*" -o -path "*/pseudonymise/*"` retourne rien
- [ ] **Caches AI** : aucun dossier `.claude/`, `.codex-loop/`, `.qwen/` (hors `.qwen/output-language.md` si besoin)
- [ ] **Fichiers de dev/tests** : excludes :
  - `tests/`, `test_*/` (tous les dossiers de test)
  - `demo_*.py`, `audit_*.py`, `analyze_anonymization_result.py`
  - `run_batch_*.py`
  - `server.py` (serveur API — pas pour la beta)
  - `pdf_mask_designer.py`, `test-mini.js`
  - `build_*.bat`, `build_*.ps1` (scripts de build)
  - `setup_env_and_build.bat`
  - `__pycache__/`, `.pytest_cache/`, `.ruff_cache/`
- [ ] **Logs et artefacts temporaires** : aucun `.log`, `*.lock`, `anonymisation.log` residuel
- [ ] **Fichier `.admin`** : confirme ABSENT du pack (decisions D-13, D-14)
  - Verifier : `find . -name ".admin"` retourne rien

---

## 3. Verifications fonctionnelles (post-build)

### 3.1 Mode admin

- [ ] **Mode admin NON actif par defaut** : sans variable d'env `ANON_ADMIN` et sans fichier `.admin`, `is_admin()` retourne `False`
  - Test rapide (sur poste Windows) : lancer l'EXE, verifier que le titre de la fenetre NE contient PAS `[MODE ADMIN]`
  - Reference : `admin_mode.py` — `is_admin()` verifie `ANON_ADMIN` env + fichier `.admin`
- [ ] **Banniere "MODE ADMIN" s'affiche SI lance en admin** :
  - Test : `$env:ANON_ADMIN="1"; .\Pseudonymisation.exe`
  - Verifier : le titre de la fenetre contient `[MODE ADMIN]` (ou signal visuel equivalent)
  - Reference : D-13 — titre fenetre montre `[MODE ADMIN]` si actif

### 3.2 VLM / Ollama

- [ ] **VLM/Ollama cache fonctionne en non-admin** :
  - Verifier : en mode non-admin, l'option VLM est **masquee** dans l'UI (D-13 : VLM Ollama cache en non-admin)
  - Le beta ne peut PAS configurer Ollama sans le mode admin (garde `admin_required()` dans le code GUI)
  - Reference : `admin_mode.admin_required()` leve `RuntimeError` si pas admin
- [ ] **VLM Manager ne bloque pas le lancement** :
  - `vlm_manager.py` utilise uniquement `urllib` (stdlib) — pas de dependance externe
  - Si Ollama n'est pas installe, le pipeline degrade gracieusement (pas de crash au lancement)

### 3.3 Quarantaine

- [ ] **Dossier `quarantine/` cree avec permissions 0o700** :
  - Reference : `quarantine.py:95` — `os.chmod(str(self.quarantine_dir), 0o700)`
  - Note : sur Windows, le chmod peut etre ignore (`pass` si FS ne supporte pas) — le dossier est quand meme cree
  - Les fichiers `.reason.txt` et `errors.log` sont en 0o600 (quarantine.py:216)
- [ ] **INDEX.md et `.reason.txt` generes correctement** :
  - Test : traiter un PDF vide (< 100 caracteres) → dossier `quarantaine/` cree avec `INDEX.md` + `.reason.txt`
  - Le `.reason.txt` contient : document, severite, raison, horodatage, version code, suggestion operateur

---

## 4. SmartScreen / SHA-256

- [ ] **SHA-256 du EXE calcule et documente** :
  - Commande (PowerShell sur Windows) : `Get-FileHash -Algorithm SHA256 .\Pseudonymisation.exe`
  - Ou (Linux, si EXE accessible) : `sha256sum Pseudonymisation.exe`
  - Reporter le hash dans le message OwnCloud envoye au beta-testeur
- [ ] **Procedure SmartScreen incluse** :
  - Le fichier `smartscreen-procedure.md` (ou equivalent PDF) est joint au pack
  - Il couvre : deblocage fichier, premier lancement, SmartScreen bleu, Defender, poste DSI managed, verification hash

---

## 5. Procedure de retour beta-testeur

- [ ] **Fichier de feedback fourni** : un fichier `docs/feedback-beta.md` (ou equivalent) indiquant :
  - Ce que le beta-testeur doit tester (cf. smoke test T6 dans `inbox/for-dom/2026-05-29_qwen_smoke-test-T6.md`)
  - Le format de retour attendu : dossier `quarantaine/` complet + `errors.log` + profil utilise en cas de probleme
- [ ] **Canal de remontee defini** :
  - OwnCloud (meme canal que la livraison, decision D-4)
  - Email de Dom en backup : le beta-testeur sait a qui envoyer les retours
- [ ] **Ce que le beta-testeur doit tester** :
  - Test normal : anonymiser le PDF de test (section 1 du smoke test T6)
  - Test quarantaine : anonymiser un PDF vide ou image (section 4 du smoke test T6)
  - Checklist OK/KO du smoke test T6 a remplir et retourner
  - En cas de probleme : envoyer `quarantaine/` + `errors.log` + capture d'ecran

---

## 6. Checks RGPD

- [ ] **Aucune PII dans le pack** :
  - Verifier : aucun fichier de test contenant des noms, emails, NIR, etc. en clair dans le pack
  - Les dossiers `pdf_natif/`, `test_*/` sont exclus (voir section 2)
- [ ] **`quarantine/` cree avec bonnes permissions** :
  - Permissions 0o700 sur le dossier (Linux) ou best-effort sur Windows
  - Fichiers internes en 0o600
  - Reference : `quarantine.py:89-97` et `quarantine.py:207-216`
- [ ] **Pas de chemins absolus locaux qui fuiteraient** :
  - Verifier : `grep -r "C:\\\\Users" .` et `grep -r "/home/dom" .` dans les fichiers livres
  - Corriger : `anonymisation_onefile.spec` a deja ete corrige (C-2 : chemin absolu supprime)
  - Reference : decision D-6 (C-2) — doublon profil et chemin absolu corriges
- [ ] **Metadonnees de sortie presentes** (B-1) :
  - Les fichiers de sortie portent : `version_code`, `horodatage`, `profil_applique`
  - Verifier : un fichier `.audit.jsonl` contient bien ces champs

---

## 7. Resume rapide avant envoi OwnCloud

| Verification | Statut |
|---|---|
| EXE present et fonctionnel | / |
| Config et modeles inclus | / |
| Dictionnaires `data/` complets | / |
| Fichiers de dev/tests exclus | / |
| Aucune PII residuelle | / |
| `.admin` absent | / |
| Mode admin inactif par defaut | / |
| VLM masque en non-admin | / |
| Quarantaine fonctionnelle (permissions) | / |
| SHA-256 calcule et documente | / |
| Procedure SmartScreen incluse | / |
| Feedback beta-testeur pret | / |
| **PACK PRET A ENVOYER** | **OUI / NON** |

---

*Checklist generee le 04/06/2026 pour la beta v11.0 — Pseudonymisation de documents medicaux*
*References : smoke test T6, decisions D-1 a D-14, vision fonctionnelle, procedure SmartScreen*
