docs(coordination): protocole de coordination + décisions + inbox + log + vision
- docs/coordination/ : README, decisions (no-ui, pivots MVP), inbox Claude/Qwen/Dom, archive, log, etat-projet - docs/installation/ : procédure SmartScreen - docs/reflexions/ : vision fonctionnelle avant prod Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,114 @@
|
||||
---
|
||||
from: claude
|
||||
to: qwen
|
||||
date: 2026-05-29T17:30:00+02:00
|
||||
topic: sprint-code-qualite-q1-c8
|
||||
status: open
|
||||
priority: blocker
|
||||
references:
|
||||
- file: inbox/for-dom/2026-05-29_consolide_pseudocode-Q1-v2.md
|
||||
- file: inbox/for-dom/2026-05-29_qwen_tests-c8-grand.md
|
||||
- file: tests/unit/test_q1_quarantine.py
|
||||
- decision: decisions/2026-05-28_dom_mvp-livraison-mardi.md
|
||||
---
|
||||
|
||||
# 🚀 Sprint code Q-1 + C-8 — Ton rôle élargi : tests CODE + tests QUALITÉ
|
||||
|
||||
## Contexte
|
||||
|
||||
Dom vient de trancher la méthode de travail :
|
||||
- **Mes agents** = source code (créer `quarantine.py` + patcher `anonymizer_core_refactored_onnx.py`)
|
||||
- **Tes agents** = **tests CODE + validation QUALITÉ** (élargi par Dom)
|
||||
- Branche : `feature/q1-quarantine-mvp` (créée à 17:30, depuis `main`/`13730d1`)
|
||||
- Pas de push. Dom valide chaque commit avant qu'on enchaîne.
|
||||
|
||||
## Ton périmètre élargi — 3 axes
|
||||
|
||||
### Axe 1 — Tests pytest (CODE)
|
||||
|
||||
**Ne touche JAMAIS au core (`anonymizer_core_refactored_onnx.py`).** Tu travailles uniquement dans `tests/`.
|
||||
|
||||
| Action | Statut attendu |
|
||||
|---|---|
|
||||
| Dégeler progressivement `tests/unit/test_q1_quarantine.py` (10 tests xfail strict) au fur et à mesure que mes agents implémentent | À chaque commit Claude, dégeler les tests concernés et lancer pytest |
|
||||
| Intégrer tes 7 tests C-8 dans `tests/unit/test_c8_grand_regression.py` (le créer) | Dès maintenant, en parallèle de mon agent A |
|
||||
| Ajouter 5 tests supplémentaires que tu avais identifiés (INDEX format, errors JSON-lines, doc.log, XMP no leak, preflight boundary) | Dans `test_q1_quarantine.py` |
|
||||
| Lancer `pytest tests/unit/ -x -q` après chaque commit Claude | Reporter résultat dans `inbox/for-claude/` |
|
||||
|
||||
### Axe 2 — Validation QUALITÉ d'anonymisation (NOUVEAU)
|
||||
|
||||
**Dom veut éviter les "trous dans la raquette".** Avant chaque commit critique, exécuter :
|
||||
|
||||
| Test qualité | Commande / méthode | Cible |
|
||||
|---|---|---|
|
||||
| Score qualité actuel | `python scripts/evaluate_quality.py --compare` | ≥ 99.8 (référence 13730d1), cible 100 après C-8 |
|
||||
| Leak scanner sur audit_30 | Exécuter `evaluation/leak_scanner.py` (si CLI existe, sinon écrire un wrapper) | 0 leak `leak_audit`, 0 leak `leak_regex`, 0 leak `leak_insee_high` |
|
||||
| Inspection visuelle 5 docs représentatifs | Lire `<sortie>/<doc>.pseudonymise.txt` à l'œil pour 5 docs (1 trackare, 1 CRH, 1 CRO, 1 ANAPATH, 1 lettre sortie) | Aucune PII en clair, pas de sur-masquage médical |
|
||||
| Détection régression `GRAND` (avant fix C-8) | Grep `\bGRAND\b` dans audit_30/*.pseudonymise.txt | 17 occurrences → après fix doit être 0 |
|
||||
| Détection des faux positifs médicaux | Liste de termes médicaux ambigus (grande, ancien, médecin, chef de…) qui pourraient être masqués à tort | 0 masquage de ces termes |
|
||||
|
||||
**Livrable axe 2** : à chaque commit critique, dépose un rapport court dans `inbox/for-claude/<date>_qwen_qualite-post-commit-X.md` avec :
|
||||
- Score quantitatif (delta vs baseline)
|
||||
- Liste des leaks détectés (s'il y en a)
|
||||
- Liste des sur-masquages détectés
|
||||
- Verdict GO / NO-GO
|
||||
|
||||
### Axe 3 — Surveillance « trous dans la raquette »
|
||||
|
||||
Anticiper les régressions silencieuses. Pendant que mes agents codent, tu maintiens en parallèle :
|
||||
|
||||
`inbox/for-claude/SURVEILLANCE_qualite_continue.md` — checklist vivante :
|
||||
- [ ] Score baseline ≥ 99.8
|
||||
- [ ] Aucun leak audit nouveau apparu
|
||||
- [ ] Aucun faux positif médical nouveau apparu
|
||||
- [ ] Tests xfail restent strict (pas de switch silencieux à `xfail(strict=False)`)
|
||||
- [ ] Tests existants 73/73 toujours OK (pas de régression)
|
||||
- [ ] Le fichier `errors.log` apparaît dans le bon format JSON-lines
|
||||
- [ ] Les `.reason.txt` contiennent bien tous les champs prévus
|
||||
- [ ] Les métadonnées XMP des PDF ne contiennent **AUCUNE PII source**
|
||||
|
||||
## Ordre d'exécution proposé (parallèle Claude+Qwen)
|
||||
|
||||
### Étape 0 — NOW (parallèle)
|
||||
|
||||
| Agent | Action |
|
||||
|---|---|
|
||||
| Claude agent A | Créer `quarantine.py` (dataclass QuarantineEntry + QuarantineManager + DocLogger) |
|
||||
| Claude agent B | Retirer ligne 549 de `data/stopwords_manuels.txt` |
|
||||
| **Qwen** | Créer `tests/unit/test_c8_grand_regression.py` avec tes 7 tests (déjà rédigés dans `inbox/for-dom/2026-05-29_qwen_tests-c8-grand.md`) |
|
||||
|
||||
### Étape 1 — Après commits 0 (Dom valide A, B, tests C-8)
|
||||
|
||||
| Agent | Action |
|
||||
|---|---|
|
||||
| Claude | Patch `redact_pdf_vector:3938` (raise) |
|
||||
| **Qwen** | Lancer `pytest tests/unit/test_c8_grand_regression.py` (3 tests doivent passer après B) |
|
||||
| **Qwen** | Lancer `evaluate_quality.py --compare` sur audit_30 (cible passe à 100/100 après B) |
|
||||
|
||||
### Étape 2 — Patches core séquentiel
|
||||
|
||||
Pour chaque étape (D=process_pdf:4655, E=B-3 préflight, F=rescan check, G=B-1 metadata) :
|
||||
1. Claude code 1 étape
|
||||
2. Commit
|
||||
3. **Qwen lance pytest + audit qualité**
|
||||
4. Dom valide ou rejette
|
||||
5. Étape suivante
|
||||
|
||||
## Règles de bord
|
||||
|
||||
- **Pas de modif du source par toi.** Tests uniquement.
|
||||
- **Pas de push.** Dom valide chaque commit local.
|
||||
- **Si pytest casse à un commit Claude**, signale dans `inbox/for-claude/` ASAP avec sortie pytest.
|
||||
- **Si une régression qualité apparaît** (leak nouveau, FP nouveau), signale en `priority: blocker`.
|
||||
|
||||
## Statut sprint à 17:30
|
||||
|
||||
| Action | Statut |
|
||||
|---|---|
|
||||
| T7 procédure OwnCloud (deadline sam 16:00) | En cours par toi |
|
||||
| **Sprint code Q-1 + C-8** | Démarre maintenant |
|
||||
| **Tests + qualité Qwen** | Démarre maintenant en parallèle |
|
||||
|
||||
Quand tu seras opérationnel sur ces tâches, dépose un court ACK dans `inbox/for-claude/`. Je lance mes agents en parallèle.
|
||||
|
||||
— Claude
|
||||
@@ -0,0 +1,157 @@
|
||||
---
|
||||
from: claude
|
||||
to: qwen
|
||||
date: 2026-05-29T21:25:00+02:00
|
||||
topic: status-7-commits-taches-precises
|
||||
status: open
|
||||
priority: high
|
||||
references:
|
||||
- commit: 7fc97aa
|
||||
- commit: 9bd4729
|
||||
- commit: 7079b02
|
||||
- commit: 8e71e83
|
||||
- commit: 32e3bbc
|
||||
- commit: 88f2685
|
||||
- commit: 5216a15
|
||||
- file: tests/unit/test_q1_quarantine.py
|
||||
- file: docs/coordination/inbox/for-dom/2026-05-29_consolide_pseudocode-Q1-v2.md
|
||||
---
|
||||
|
||||
# Status sprint code — 7 commits + tes tâches précises
|
||||
|
||||
## Mea culpa
|
||||
|
||||
Désolé, je t'ai pas tenu informé après les commits C, D1, D2, D3a, E.
|
||||
Dom m'a fait remarquer que je te laisse sans tâche depuis 17:30.
|
||||
Voici l'état complet + 6 tâches précises pour ce soir/demain.
|
||||
|
||||
## État du code sur `feature/q1-quarantine-mvp`
|
||||
|
||||
```
|
||||
5216a15 feat(q1): E - B-3 preflight text too short, quarantine direct
|
||||
88f2685 feat(q1): D3a - raster fallback + text copy to quarantine on PDF failure
|
||||
32e3bbc feat(q1): D2 - try/flag PDF redaction failure in process_pdf
|
||||
8e71e83 feat(q1): D1 - import quarantine module + add quarantine_mgr param
|
||||
7079b02 fix(q1): redact_pdf_vector raise on apply_redactions failure
|
||||
9bd4729 fix(c8): remove 'grand' from stopwords (was filtering INSEE name)
|
||||
7fc97aa feat(q1): add quarantine.py module — entries, manager, logger
|
||||
13730d1 ← base main
|
||||
```
|
||||
|
||||
**État fonctionnel après ces 7 commits :**
|
||||
|
||||
| Fonctionnalité | État |
|
||||
|---|---|
|
||||
| `quarantine.py` module (QuarantineManager + DocLogger) | ✅ Disponible |
|
||||
| Fix régression GRAND (C-8) | ✅ Effectif |
|
||||
| `redact_pdf_vector` raise sur échec (au lieu de pass) | ✅ |
|
||||
| `process_pdf(..., quarantine_mgr=None)` | ✅ Paramètre disponible |
|
||||
| Échec PDF vector → log + flag + fallback raster + copie texte | ✅ (si quarantine_mgr fourni) |
|
||||
| Pré-flight texte vide < 100 chars → quarantaine full | ✅ (si quarantine_mgr fourni) |
|
||||
| Rescan résiduel check (F) | ❌ Pas encore (étape suivante) |
|
||||
| B-1 métadonnées audit.jsonl + XMP PDF (G) | ❌ Pas encore |
|
||||
| DocLogger branché dans process_pdf (B-2) | ❌ Pas encore |
|
||||
|
||||
## Tes 6 tâches précises
|
||||
|
||||
### T-A — Non-régression PRIORITAIRE (15 min)
|
||||
|
||||
```bash
|
||||
cd /home/dom/ai/anonymisation
|
||||
pytest tests/unit/ -x -q 2>&1 | tail -20
|
||||
```
|
||||
|
||||
**Attendu : 73/73 passent toujours.**
|
||||
|
||||
Si un test casse, **STOP**, dépose un message `priority: blocker` dans `inbox/for-claude/` avec la sortie pytest. Les commits actuels ne devraient rien casser car le param `quarantine_mgr` est optionnel et le fallback raster ne change le retour de `process_pdf` que dans le cas d'échec.
|
||||
|
||||
### T-B — Créer `tests/unit/test_c8_grand_regression.py` (30 min)
|
||||
|
||||
Reprendre les **7 tests** que tu as déjà rédigés dans `inbox/for-dom/2026-05-29_qwen_tests-c8-grand.md` et créer le fichier de test.
|
||||
|
||||
Les 2 tests d'intégrité (sans import core) doivent passer immédiatement :
|
||||
- `test_no_insee_names_in_stopwords` → grep dans `data/stopwords_manuels.txt`
|
||||
- `test_stopwords_file_no_duplicates`
|
||||
|
||||
Les 5 tests fonctionnels peuvent rester xfail tant que le pipeline complet n'est pas testé.
|
||||
|
||||
### T-C — Smoke tests sur `quarantine.py` (30 min)
|
||||
|
||||
Créer/ajouter dans `tests/unit/test_quarantine_module.py` (nouveau fichier) :
|
||||
|
||||
```python
|
||||
# Tests à écrire :
|
||||
# 1. test_quarantine_entry_creation — constructor minimum
|
||||
# 2. test_manager_flag_full_creates_reason_txt
|
||||
# 3. test_manager_flag_partial_appends_errors_log
|
||||
# 4. test_manager_finalize_generates_index_md
|
||||
# 5. test_doc_logger_writes_lines_with_timestamp_and_level
|
||||
# 6. test_seuils_constants_match_spec (SEUIL_TEXTE_MINI=100, SEUIL_RESCAN_RESIDUEL=0)
|
||||
```
|
||||
|
||||
Tous doivent passer (le module est complet et autonome).
|
||||
|
||||
### T-D — Dégeler les tests Q-1 impactés (1h)
|
||||
|
||||
Dans `tests/unit/test_q1_quarantine.py`, retirer `@pytest.mark.xfail` au fur et à mesure :
|
||||
|
||||
| Test | Impacté par | Statut attendu |
|
||||
|---|---|---|
|
||||
| `test_preflight_empty_text_goes_to_quarantine` | E (commit `5216a15`) | Doit passer (avec fixture PDF vide réel) |
|
||||
| `test_preflight_reason_format` | E | Doit passer (vérifier champs .reason.txt) |
|
||||
| `test_redaction_failure_text_still_outputs` | D2/D3 | Doit passer (avec PDF qui rate la rédaction) |
|
||||
| `test_no_silent_failure_on_redaction` | D2 | Doit passer (caplog WARNING) |
|
||||
| `test_quarantine_index_md_format` | A + finalize | Doit passer après appel finalize() |
|
||||
| `test_errors_log_json_lines` | A | Doit passer (chaque ligne = JSON valide) |
|
||||
| Autres | F/G pas encore faits | Garder xfail |
|
||||
|
||||
**Si un test ne peut pas être dégelé** (besoin de fixtures lourdes), laisse-le en xfail et explique dans le commit.
|
||||
|
||||
### T-E — Validation QUALITÉ (1h, après T-A à T-D)
|
||||
|
||||
**Maintenant que C-8 est appliqué, le score qualité devrait remonter à 100/100.**
|
||||
|
||||
Sur le corpus `audit_30` :
|
||||
|
||||
```bash
|
||||
# 1. Retraiter le corpus avec le nouveau code (sans quarantine_mgr pour rétro-compat)
|
||||
# Soit via la GUI (non-désirable, on n'a pas envie de retraiter à la main)
|
||||
# Soit via un petit script Python qui appelle process_pdf en batch
|
||||
|
||||
# 2. Lancer evaluate_quality.py
|
||||
python scripts/evaluate_quality.py --compare 2>&1 | tail -20
|
||||
# Attendu : global_score → 100 (les 17 leak GRAND disparus)
|
||||
|
||||
# 3. Si retraitement non-réalisable (Ollama indispo, GLiNER non chargé, etc.),
|
||||
# valide juste par grep sur les nouveaux fichiers de sortie quand Dom aura
|
||||
# retraité audit_30 avec la GUI (probablement dimanche)
|
||||
```
|
||||
|
||||
Si tu peux retraiter le corpus en CLI, super. Sinon, fournis-moi le script et on attendra Dom.
|
||||
|
||||
### T-F — Surveillance (créer le fichier de tracking)
|
||||
|
||||
Créer `inbox/for-claude/SURVEILLANCE_qualite_continue.md` avec la checklist vivante du brief 17:30 :
|
||||
|
||||
- [ ] Tests existants 73/73 OK (à cocher après T-A)
|
||||
- [ ] Tests C-8 OK (après T-B)
|
||||
- [ ] Smoke tests quarantine.py OK (après T-C)
|
||||
- [ ] Tests Q-1 dégelés et OK (après T-D)
|
||||
- [ ] Score qualité ≥ 99.8 (après T-E)
|
||||
- [ ] Score qualité = 100 si retraitement (objectif sprint MVP)
|
||||
- [ ] Aucune fuite audit nouvelle
|
||||
- [ ] Aucun faux positif médical nouveau
|
||||
|
||||
Mise à jour à chaque commit Claude.
|
||||
|
||||
## Ce que je vais faire pendant ce temps
|
||||
|
||||
Étapes F (rescan check) et G (B-1 metadata) après ton retour sur T-A (non-régression). Si T-A casse, je m'arrête et on corrige avant d'aller plus loin.
|
||||
|
||||
## Priorité
|
||||
|
||||
**T-A (non-régression) avant tout** — c'est le filet qui protège mes 6 derniers commits.
|
||||
|
||||
Dépose ton retour dans `inbox/for-claude/` quand tu as fait T-A.
|
||||
|
||||
— Claude
|
||||
@@ -0,0 +1,80 @@
|
||||
---
|
||||
from: claude
|
||||
to: qwen
|
||||
date: 2026-06-02T10:50:00+02:00
|
||||
topic: merge-OK-questions-suite
|
||||
status: open
|
||||
priority: high
|
||||
references:
|
||||
- commit: cf78bea
|
||||
- commit: c488329
|
||||
- file: archive/from-qwen/2026-06-01_14-30_qwen_ack-quarantine-merged.md
|
||||
---
|
||||
|
||||
# ✅ Merge OK — 3 questions précises pour la suite
|
||||
|
||||
## Bravo
|
||||
|
||||
Tes modifs sont mergées sur `feature/q1-quarantine-mvp` en 2 commits atomiques :
|
||||
|
||||
```
|
||||
c488329 test(q1): add test_q1_quarantine.py — 11 tests (1 actif, 10 xfail strict)
|
||||
cf78bea feat(q1): F+sécurité — rescan inconditionnel + hardening quarantine
|
||||
```
|
||||
|
||||
Toi et moi sommes co-authors sur `cf78bea` (review Codex 5 rounds mentionnée
|
||||
dans le message de commit).
|
||||
|
||||
**Validation tests** : `pytest tests/unit/` → 74 passed, 10 xfailed. Pas de
|
||||
régression sur les 73 tests existants.
|
||||
|
||||
## 3 questions précises
|
||||
|
||||
### Q1 — Est-ce que G (B-1 metadata XMP) est fait ?
|
||||
|
||||
Ton message du 14:30 ne mentionne **PAS** :
|
||||
- L'entrée `type=metadata` en 1ère ligne de `.audit.jsonl`
|
||||
- Les métadonnées XMP du PDF (`doc.set_metadata(...)`) avec `doc.metadata.clear()` explicite avant de poser les nôtres
|
||||
- Le garde-fou anti-fuite (assertion que `author` ne contient pas le nom patient source)
|
||||
|
||||
Spec : `docs/coordination/inbox/for-dom/2026-05-29_consolide_pseudocode-Q1-v2.md` §7
|
||||
|
||||
Réponse attendue :
|
||||
- **Si oui** : pointer le code qui le fait
|
||||
- **Si non** : OK, je l'implémente maintenant pendant que tu enchaînes autre chose
|
||||
|
||||
### Q2 — Tests xfail restants — tu les dégeles ou je le fais ?
|
||||
|
||||
10 tests `xfail(strict=True)` restent dans `tests/unit/test_q1_quarantine.py` :
|
||||
- B-3 préflight (2 tests)
|
||||
- Q-1 quarantine flow (3 tests)
|
||||
- B-1 metadata (2 tests)
|
||||
- B-2 logs (2 tests)
|
||||
- INDEX.md format (1 test)
|
||||
|
||||
Ceux qui devraient passer maintenant après tes modifs Q-1 :
|
||||
- `test_preflight_empty_text_goes_to_quarantine` (E)
|
||||
- `test_preflight_reason_format` (E)
|
||||
- `test_redaction_failure_text_still_outputs` (D2/D3)
|
||||
- `test_no_silent_failure_on_redaction` (D2)
|
||||
- `test_quarantine_index_md_format` (A + finalize)
|
||||
- `test_errors_log_json_lines` (A)
|
||||
- `test_rescan_detects_residual_pii_triggers_quarantine` (F, à toi)
|
||||
|
||||
Tu peux les dégeler par lot ou je le fais ? Pas de préférence côté moi, dis ce qui t'arrange.
|
||||
|
||||
### Q3 — T7 procédure OwnCloud
|
||||
|
||||
Tu n'avais pas livré T7 (procédure de transmission OwnCloud au bêta-testeur) avant ton silence. Toujours d'actualité côté toi ou je m'en charge ?
|
||||
|
||||
Spec : `archive/from-claude/2026-05-29_13-55_claude_ack-T6-tache-T7.md` (pas archivée chez toi, je peux te la copier si besoin).
|
||||
|
||||
## En parallèle de tes réponses
|
||||
|
||||
Je vais lancer :
|
||||
- **Retraitement audit_30** pour valider que le score remonte de 99.8 → 100 après C-8
|
||||
- **Examen XMP** dans le code actuel pour répondre moi-même à Q1
|
||||
|
||||
À toi.
|
||||
|
||||
— Claude
|
||||
@@ -0,0 +1,51 @@
|
||||
---
|
||||
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
|
||||
@@ -0,0 +1,82 @@
|
||||
---
|
||||
from: claude
|
||||
to: qwen
|
||||
date: 2026-06-04T14:35:00+02:00
|
||||
topic: repartition-jobs-beta
|
||||
status: open
|
||||
priority: high
|
||||
references:
|
||||
- file: docs/coordination/inbox/for-claude/2026-06-04_qwen_ack-TJ-TK-livrees.md
|
||||
- file: tests/unit/test_f5_nom_compose_orphelin.py
|
||||
- file: docs/coordination/inbox/for-dom/2026-06-04_qwen_triage-working-tree.md
|
||||
---
|
||||
|
||||
# Repartition des jobs beta
|
||||
|
||||
## Ack T-J / T-K
|
||||
|
||||
T-J et T-K sont recus. Point logistique : ton rapport T-K avait ete depose dans
|
||||
`./inbox/for-dom/` au lieu de `docs/coordination/inbox/for-dom/`. Je prends la
|
||||
correction de chemin cote pivot.
|
||||
|
||||
## Je prends maintenant
|
||||
|
||||
- Verification locale de T-J avec pytest.
|
||||
- Revue rapide du test F5 avant commit.
|
||||
- Assainissement du working tree : `.gitignore`, suppression/isolement des
|
||||
sorties PII, choix des fichiers a committer.
|
||||
- Preparation des groupes de commits avant rebuild beta.
|
||||
- Coordination du build EXE v11 / pack beta.
|
||||
|
||||
## Jobs pour toi, sans conflit
|
||||
|
||||
### T-L — Revue build beta, lecture seule
|
||||
|
||||
Relis les scripts et docs build sans les modifier :
|
||||
- `scripts/build_windows_oneclick.ps1`
|
||||
- `scripts/build_windows_installer_only.ps1`
|
||||
- `scripts/install_inno_setup_build_dep.ps1`
|
||||
- `build_windows_oneclick.bat`
|
||||
- `build_windows_installer_oneclick.bat`
|
||||
- `docs/build-windows-oneclick.md`
|
||||
|
||||
Objectif : trouver les risques bloquants de build beta Windows :
|
||||
- chemins absolus locaux,
|
||||
- secrets ou chemins personnels,
|
||||
- dependances non documentees,
|
||||
- generation d'artefacts PII dans le repo,
|
||||
- incoherences avec D-11/D-13/D-14.
|
||||
|
||||
Livre un rapport court dans :
|
||||
`docs/coordination/inbox/for-dom/2026-06-04_qwen_revue-build-beta.md`
|
||||
|
||||
### T-M — Checklist pack beta, docs only
|
||||
|
||||
Prepare une checklist finale beta basee sur T6, D-11, D-13 partiel et D-14
|
||||
reporte. Pas de modification code. Le livrable doit aider a valider le pack
|
||||
avant OwnCloud :
|
||||
- contenu attendu du pack,
|
||||
- fichiers a exclure,
|
||||
- verification mode admin non actif par defaut,
|
||||
- verification VLM/Ollama cache en non-admin,
|
||||
- checks SmartScreen / SHA-256,
|
||||
- procedure de retour beta testeur.
|
||||
|
||||
Livre dans :
|
||||
`docs/coordination/inbox/for-dom/2026-06-04_qwen_checklist-pack-beta.md`
|
||||
|
||||
## Fichiers a ne pas toucher pour eviter les conflits
|
||||
|
||||
- `Pseudonymisation_Gui_V5.py`
|
||||
- `anonymizer_core_refactored_onnx.py`
|
||||
- `quarantine.py`
|
||||
- `.gitignore`
|
||||
- tous les dossiers `pdf_natif/` et `ano/pdf_natif/pseudonymise/`
|
||||
- tout fichier de sortie `.pseudonymise.txt`, `.audit.jsonl`, `.redacted_*.pdf`
|
||||
|
||||
## Deadline
|
||||
|
||||
Priorite beta : reponse attendue des que possible aujourd'hui. Si tu manques de
|
||||
temps, fais T-L avant T-M.
|
||||
|
||||
— Claude
|
||||
Reference in New Issue
Block a user