chore(beta): C-BETA-1 hygiène finale repo
- gitignore graphify-out/ (artefacts knowledge graph générés) - commit messages coordination 2026-06-05 (ordre de marche Dom via Codex) - commit rapport analyse campagne GUI (synthétique, sans PII) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -113,3 +113,6 @@ ano/pdf_natif/pseudonymise/
|
|||||||
.claude/
|
.claude/
|
||||||
.codex-loop/
|
.codex-loop/
|
||||||
.qwen/
|
.qwen/
|
||||||
|
|
||||||
|
# === Artefacts graphify (knowledge graph généré) ===
|
||||||
|
graphify-out/
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
---
|
||||||
|
from: dom
|
||||||
|
to: claude
|
||||||
|
date: 2026-06-05T10:55:00+02:00
|
||||||
|
topic: rebuild-beta
|
||||||
|
status: open
|
||||||
|
priority: high
|
||||||
|
references:
|
||||||
|
- commit: 68ec345
|
||||||
|
- file: docs/coordination/inbox/for-qwen/2026-06-05_10-55_dom-via-codex_relance-validation-beta.md
|
||||||
|
---
|
||||||
|
|
||||||
|
# Ordre de marche — rebuild et pack beta
|
||||||
|
|
||||||
|
Message depose par Codex a la demande de Dom.
|
||||||
|
|
||||||
|
## Etat de depart
|
||||||
|
|
||||||
|
Branche : `feature/q1-quarantine-mvp`
|
||||||
|
HEAD observe : `68ec345` — T-N retrograde, T-O prioritaire.
|
||||||
|
|
||||||
|
Working tree observe par Codex le 2026-06-05 10:52 :
|
||||||
|
- non suivis restants : `docs/rapport-analyse-campagne-gui-2026-04-21.md`,
|
||||||
|
`graphify-out/`.
|
||||||
|
- Le reste des travaux beta a ete committe par la session precedente.
|
||||||
|
|
||||||
|
## Travail pour Claude
|
||||||
|
|
||||||
|
### C-BETA-1 — Hygiene finale repo
|
||||||
|
|
||||||
|
- Classer `docs/rapport-analyse-campagne-gui-2026-04-21.md` :
|
||||||
|
commit si utile a la beta, sinon laisser hors scope.
|
||||||
|
- Classer `graphify-out/` :
|
||||||
|
probablement artefact a gitignorer/supprimer, mais verifier avant action.
|
||||||
|
- Ne pas toucher aux livrables Qwen en cours sauf pour les lire.
|
||||||
|
|
||||||
|
### C-BETA-2 — Attendre ou compenser T-O
|
||||||
|
|
||||||
|
- Si Qwen livre `2026-06-05_qwen_validation-pack-beta.md`, lire son verdict.
|
||||||
|
- Si Qwen ne livre pas rapidement, faire une validation minimale equivalente
|
||||||
|
en local avant rebuild : admin off, VLM cache, absence PII pack, secrets,
|
||||||
|
chemins absolus, quarantaine.
|
||||||
|
|
||||||
|
### C-BETA-3 — Rebuild v11
|
||||||
|
|
||||||
|
- Lancer le build Windows sur la machine prevue `192.168.1.11`.
|
||||||
|
- Verifier que le modele custom ONNX est present localement avant build.
|
||||||
|
- Produire EXE/ZIP/installer selon les scripts valides.
|
||||||
|
- Calculer SHA-256 des artefacts.
|
||||||
|
|
||||||
|
### C-BETA-4 — Pack beta
|
||||||
|
|
||||||
|
- Exclure explicitement : `pdf_natif/`, `ano/pdf_natif/pseudonymise/`,
|
||||||
|
`.admin`, `.claude/`, `.codex-loop/`, `.qwen/`, logs, caches, tests, secrets.
|
||||||
|
- Inclure procedure SmartScreen et instructions de feedback beta.
|
||||||
|
- Produire un rapport dans :
|
||||||
|
`docs/coordination/inbox/for-dom/2026-06-05_claude_pack-beta-build-report.md`
|
||||||
|
|
||||||
|
## Garde-fous
|
||||||
|
|
||||||
|
- Aucune suppression irreversible de donnees hors artefacts clairement identifies.
|
||||||
|
- Aucun push sans accord explicite Dom.
|
||||||
|
- Si Qwen signale un NO-GO bloquant, stopper le rebuild et documenter le blocage.
|
||||||
|
|
||||||
|
— Dom via Codex
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
---
|
||||||
|
from: dom
|
||||||
|
to: qwen
|
||||||
|
date: 2026-06-05T10:55:00+02:00
|
||||||
|
topic: relance-validation-beta
|
||||||
|
status: open
|
||||||
|
priority: high
|
||||||
|
references:
|
||||||
|
- file: docs/coordination/inbox/for-qwen/2026-06-04_17-05_claude_nouveaux-jobs-tn-to.md
|
||||||
|
- commit: 68ec345
|
||||||
|
---
|
||||||
|
|
||||||
|
# Relance prioritaire — validation pack beta
|
||||||
|
|
||||||
|
Message depose par Codex a la demande de Dom.
|
||||||
|
|
||||||
|
## Priorite immediate
|
||||||
|
|
||||||
|
T-O est le chemin critique. Merci de livrer en priorite :
|
||||||
|
|
||||||
|
`docs/coordination/inbox/for-dom/2026-06-05_qwen_validation-pack-beta.md`
|
||||||
|
|
||||||
|
Objectif : verdict **GO / NO-GO** du pack beta contre l'etat reel du repo, en
|
||||||
|
lecture seule.
|
||||||
|
|
||||||
|
## Points a verifier reellement
|
||||||
|
|
||||||
|
- Mode admin non actif par defaut : `.admin` absent, `ANON_ADMIN` non force dans
|
||||||
|
les scripts et le launcher.
|
||||||
|
- VLM/Ollama cache en non-admin : verifier le branchement D-11/D-13 dans le GUI.
|
||||||
|
- Quarantaine : permissions `0o700` / `0o600`, fail closed, pas de perte doc.
|
||||||
|
- Pack beta : aucun chemin `pdf_natif/`, sortie `.pseudonymise.txt`,
|
||||||
|
`.audit.jsonl`, `.redacted_*.pdf`, cache agent, log, secret, ou `.admin`.
|
||||||
|
- Build : coherences scripts Windows / spec / docs, sans bloquer sur le modele
|
||||||
|
ONNX custom puisque Dom a tranche que ce point n'est pas bloquant beta.
|
||||||
|
- Secrets / chemins absolus : verifier `C:\Users`, `/home/dom`, tokens, mots de
|
||||||
|
passe, domaines non prevus.
|
||||||
|
|
||||||
|
## Livrable attendu
|
||||||
|
|
||||||
|
Un tableau court par section :
|
||||||
|
|
||||||
|
- check,
|
||||||
|
- commande ou fichier lu,
|
||||||
|
- resultat observe,
|
||||||
|
- statut `GO`, `RESERVE`, ou `NO-GO`,
|
||||||
|
- action requise si reserve/no-go.
|
||||||
|
|
||||||
|
Verdict global obligatoire en tete du fichier.
|
||||||
|
|
||||||
|
## T-N
|
||||||
|
|
||||||
|
T-N reste utile mais n'est pas prioritaire : plan de sauvegarde du modele custom
|
||||||
|
ONNX, docs only, apres T-O.
|
||||||
|
|
||||||
|
## Garde-fous
|
||||||
|
|
||||||
|
Ne modifie aucun fichier. Ne touche pas au working tree, a Git, `.gitignore`,
|
||||||
|
`models/`, `pdf_natif/`, ni aux fichiers moteur/GUI. Lecture seule stricte.
|
||||||
|
|
||||||
|
— Dom via Codex
|
||||||
@@ -52,3 +52,4 @@ Format : `YYYY-MM-DD HH:MM | AUTEUR | ACTION | RÉSUMÉ`
|
|||||||
2026-06-04 17:00 | claude | ASSAINIT working tree | 6 commits sur feature/q1-quarantine-mvp : chore(rgpd) untrack 48 PII pdf_natif + gitignore RGPD/caches (9f4fe1b), deps pyahocorasick (4b1ab3a), feat batch/manual_masking (91a128d), tests F5/batch/manual/layouts (a02e89b), build(windows), docs(coordination). 48 PII supprimées du disque (~38 Mo). 98 tests unit verts. Restent hors scope : 6 PDF sources pdf_natif/ (gitignorés), rapport-campagne-gui untracked.
|
2026-06-04 17:00 | claude | ASSAINIT working tree | 6 commits sur feature/q1-quarantine-mvp : chore(rgpd) untrack 48 PII pdf_natif + gitignore RGPD/caches (9f4fe1b), deps pyahocorasick (4b1ab3a), feat batch/manual_masking (91a128d), tests F5/batch/manual/layouts (a02e89b), build(windows), docs(coordination). 48 PII supprimées du disque (~38 Mo). 98 tests unit verts. Restent hors scope : 6 PDF sources pdf_natif/ (gitignorés), rapport-campagne-gui untracked.
|
||||||
2026-06-04 17:05 | claude | ECRIT for-qwen | Nouveaux jobs T-N (plan résolution modèle ONNX gitignoré, 440 Mo, build non reproductible — compare Git LFS / script fetch / release asset / statu quo) + T-O (validation go/no-go pack bêta contre état réel du repo). Lecture seule, anti-conflit working tree.
|
2026-06-04 17:05 | claude | ECRIT for-qwen | Nouveaux jobs T-N (plan résolution modèle ONNX gitignoré, 440 Mo, build non reproductible — compare Git LFS / script fetch / release asset / statu quo) + T-O (validation go/no-go pack bêta contre état réel du repo). Lecture seule, anti-conflit working tree.
|
||||||
2026-06-04 17:10 | claude | CORRIGE T-N | Décision Dom : le « bloquant ONNX » de T-L est FAUX. Vérif code : modèle custom camembert-bio embarqué dans l'EXE au build (.spec datas l.23), autres modèles (GLiNER/docTR/EDS) téléchargés au 1er lancement (launcher.py:466). Ni bêta ni rebuild v11 bloqués. T-N rétrogradé en priorité normale (pérennité backup modèle custom non re-téléchargeable). T-O passe en priorité (chemin critique bêta).
|
2026-06-04 17:10 | claude | CORRIGE T-N | Décision Dom : le « bloquant ONNX » de T-L est FAUX. Vérif code : modèle custom camembert-bio embarqué dans l'EXE au build (.spec datas l.23), autres modèles (GLiNER/docTR/EDS) téléchargés au 1er lancement (launcher.py:466). Ni bêta ni rebuild v11 bloqués. T-N rétrogradé en priorité normale (pérennité backup modèle custom non re-téléchargeable). T-O passe en priorité (chemin critique bêta).
|
||||||
|
2026-06-05 10:55 | codex | ECRIT for-qwen+for-claude | Mandat Dom : relance Qwen sur T-O validation GO/NO-GO pack bêta en lecture seule ; ordre de marche Claude pour hygiène finale repo, validation minimale si Qwen tarde, rebuild v11, SHA-256 et pack bêta.
|
||||||
|
|||||||
152
docs/rapport-analyse-campagne-gui-2026-04-21.md
Normal file
152
docs/rapport-analyse-campagne-gui-2026-04-21.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
## Rapport d'analyse de campagne GUI
|
||||||
|
|
||||||
|
Date d'analyse : 2026-04-21
|
||||||
|
|
||||||
|
### Périmètre
|
||||||
|
|
||||||
|
Campagne lancée depuis la GUI sur le dossier :
|
||||||
|
|
||||||
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases`
|
||||||
|
|
||||||
|
Sorties observées dans :
|
||||||
|
|
||||||
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases/anonymise`
|
||||||
|
|
||||||
|
### Synthèse
|
||||||
|
|
||||||
|
La campagne n'est pas exploitable comme validation globale du corpus.
|
||||||
|
|
||||||
|
Le moteur n'a pas échoué sur l'anonymisation observée, mais la méthode de lancement via la GUI a mélangé les cas de test dans un dossier de sortie unique. Résultat : les fichiers de sortie se sont écrasés entre eux, et il ne reste plus que trois sorties distinctes (`input`, `expected`, `test`) alors que 30 fichiers d'entrée ont été pris dans la campagne.
|
||||||
|
|
||||||
|
En l'état, un seul cas est encore vérifiable de façon fiable : `010_spaced_establishment_header`. Ce cas est conforme.
|
||||||
|
|
||||||
|
### Constats
|
||||||
|
|
||||||
|
#### 1. La campagne a pris 30 fichiers en entrée
|
||||||
|
|
||||||
|
Le dossier `tests/synthetic_regression/cases` contient 10 cas, et chaque cas contient :
|
||||||
|
|
||||||
|
- `input.txt`
|
||||||
|
- `test.txt`
|
||||||
|
- `expected.txt`
|
||||||
|
|
||||||
|
Soit 30 fichiers texte supportés au total.
|
||||||
|
|
||||||
|
#### 2. Les sorties ont été écrasées
|
||||||
|
|
||||||
|
La GUI écrit toutes les sorties dans un seul dossier :
|
||||||
|
|
||||||
|
`folder / "anonymise"`
|
||||||
|
|
||||||
|
Puis le moteur nomme les sorties uniquement avec le `stem` du fichier source :
|
||||||
|
|
||||||
|
- `input.pseudonymise.txt`
|
||||||
|
- `test.pseudonymise.txt`
|
||||||
|
- `expected.pseudonymise.txt`
|
||||||
|
|
||||||
|
Comme les 10 cas portent tous les mêmes noms de fichiers, chaque nouveau cas remplace le précédent.
|
||||||
|
|
||||||
|
Conséquence observée :
|
||||||
|
|
||||||
|
- 30 entrées traitées
|
||||||
|
- 3 sorties texte finales restantes
|
||||||
|
|
||||||
|
#### 3. Les fichiers de référence ont aussi été anonymisés
|
||||||
|
|
||||||
|
La GUI a pris tous les fichiers supportés trouvés récursivement dans le dossier sélectionné, donc elle a traité :
|
||||||
|
|
||||||
|
- les fichiers de test à anonymiser
|
||||||
|
- les fichiers `input.txt`
|
||||||
|
- les fichiers `expected.txt`
|
||||||
|
|
||||||
|
Pour une campagne de validation, ce n'est pas le bon protocole : les fichiers `expected.txt` sont des références de comparaison, pas des entrées métier à anonymiser.
|
||||||
|
|
||||||
|
### Analyse des sorties restantes
|
||||||
|
|
||||||
|
Les trois sorties restantes sont :
|
||||||
|
|
||||||
|
- `tests/synthetic_regression/cases/anonymise/input.pseudonymise.txt`
|
||||||
|
- `tests/synthetic_regression/cases/anonymise/test.pseudonymise.txt`
|
||||||
|
- `tests/synthetic_regression/cases/anonymise/expected.pseudonymise.txt`
|
||||||
|
|
||||||
|
Leur contenu correspond au cas :
|
||||||
|
|
||||||
|
`tests/synthetic_regression/cases/010_spaced_establishment_header`
|
||||||
|
|
||||||
|
Contenu observé :
|
||||||
|
|
||||||
|
```text
|
||||||
|
[ETABLISSEMENT]
|
||||||
|
Service de cardiologie
|
||||||
|
```
|
||||||
|
|
||||||
|
Résultat :
|
||||||
|
|
||||||
|
- `test.pseudonymise.txt` correspond exactement à `010_spaced_establishment_header/expected.txt`
|
||||||
|
- `input.pseudonymise.txt` correspond aussi à `010_spaced_establishment_header/expected.txt`
|
||||||
|
- `expected.pseudonymise.txt` reste déjà anonymisé, ce qui est cohérent
|
||||||
|
|
||||||
|
Audit observé :
|
||||||
|
|
||||||
|
- `input.audit.jsonl` : 1 hit `ETAB_SPACED`
|
||||||
|
- `test.audit.jsonl` : 1 hit `ETAB_SPACED`
|
||||||
|
- `expected.audit.jsonl` : vide
|
||||||
|
|
||||||
|
Conclusion sur ce cas :
|
||||||
|
|
||||||
|
Le cas `010_spaced_establishment_header` est réussi.
|
||||||
|
|
||||||
|
### Conclusion générale
|
||||||
|
|
||||||
|
Conclusion fonctionnelle :
|
||||||
|
|
||||||
|
- aucun échec d'anonymisation n'est visible sur le cas encore vérifiable
|
||||||
|
- la campagne globale ne permet pas d'évaluer les 10 cas du corpus
|
||||||
|
|
||||||
|
Conclusion méthodologique :
|
||||||
|
|
||||||
|
- la structure actuelle des sorties GUI n'est pas compatible avec un lancement sur un dossier de corpus contenant des noms de fichiers répétés
|
||||||
|
- la campagne du 2026-04-21 doit être considérée comme non concluante pour 9 cas sur 10
|
||||||
|
|
||||||
|
### Causes racines
|
||||||
|
|
||||||
|
1. La GUI parcourt récursivement tous les fichiers supportés du dossier sélectionné.
|
||||||
|
2. La GUI écrit toutes les sorties dans un seul sous-dossier `anonymise/`.
|
||||||
|
3. Le moteur génère les noms de sortie à partir du seul nom de fichier, sans conserver le chemin relatif du cas.
|
||||||
|
|
||||||
|
### Recommandations immédiates
|
||||||
|
|
||||||
|
1. Pour tester sans modifier le code, lancer la GUI sur un seul dossier de cas à la fois.
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
|
||||||
|
`/home/dom/ai/anonymisation/tests/synthetic_regression/cases/001_patient_header_and_birth`
|
||||||
|
|
||||||
|
2. En validation humaine, ne pas lancer la GUI sur `tests/synthetic_regression/cases` directement.
|
||||||
|
|
||||||
|
3. Comparer chaque sortie produite au `expected.txt` du même dossier de cas.
|
||||||
|
|
||||||
|
### Correctifs recommandés
|
||||||
|
|
||||||
|
1. Préserver l'arborescence relative des cas dans le dossier de sortie.
|
||||||
|
|
||||||
|
Exemple attendu :
|
||||||
|
|
||||||
|
- `anonymise/001_patient_header_and_birth/test.pseudonymise.txt`
|
||||||
|
- `anonymise/002_contact_bundle/test.pseudonymise.txt`
|
||||||
|
|
||||||
|
2. Ou préfixer les sorties par le nom du dossier parent.
|
||||||
|
|
||||||
|
Exemple :
|
||||||
|
|
||||||
|
- `001_patient_header_and_birth__test.pseudonymise.txt`
|
||||||
|
|
||||||
|
3. Ajouter un mode "campagne de tests" dans la GUI qui ne traite que les fichiers `test.txt`.
|
||||||
|
|
||||||
|
4. Générer automatiquement un rapport de comparaison contre les `expected.txt`.
|
||||||
|
|
||||||
|
### Statut
|
||||||
|
|
||||||
|
- Campagne GUI du 2026-04-21 : non exploitable pour validation complète
|
||||||
|
- Cas encore vérifiable : `010_spaced_establishment_header`
|
||||||
|
- Verdict sur ce cas : conforme
|
||||||
Reference in New Issue
Block a user