You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5.2 KiB
5.2 KiB
Plan d'implementation des suggestions d'audit
Date: 2026-03-28
Base: audits multi-profils + clarifications produit validees le 2026-03-28.
1. Objectif
Implementer les recommandations de l'audit en priorisant:
- la correction fonctionnelle (contrats/theme-scoping),
- la fiabilite (scheduler + SSE + coverage CI deterministe),
- la maintenabilite (simplification/refactoring progressif sans regression).
2. Contraintes de reference (deja decidees)
- Creation de theme possible sans categories utilisateur.
- Categories par defaut toujours presentes:
Divers,Sans date. GET /themes/{id}/scheduleretourne200avecnullsi absent.- Valeurs par defaut theme:
max_items_per_category=4,summary_length=3. - Sources et "preferred" strictement scopes par theme.
- Import/export sources toujours lies au theme selectionne.
- Mode d'extraction "LLM vs HTML" deprecie (HTML uniquement).
- Couverture deterministe CI obligatoire avant release pour flows critiques.
3. Sequencement recommande
Phase 0 - Stabilisation des contrats (3-5 jours)
Backend
- Rendre
theme_idobligatoire pour create/bulk/import-csv/export-csv/preferred. - Scoper
PUT /sources/preferredpartheme_id. - Verifier ownership
theme_idsur tous les writes sources. - Aligner defaults backend sur
4/3. - Aligner validation theme create/update sur les regles finales.
Frontend
- Adapter clients API (
sources.ts,themes.ts,schedules.ts) aux nouveaux contrats. - Garantir l'envoi systematique du
theme_iddans tous les flux sources. - Aligner creation de theme (draft sans categories utilisateur).
- Gerer explicitement
schedule: null.
QA
- Ajouter tests d'integration contrat API (theme + sources + schedule).
- Ajouter tests d'isolation multi-theme (import/export/preferred).
Definition of Done
- Contrats API aligns avec docs.
- Tests integration P0 verts en CI.
- Aucun flux UI principal casse.
Phase 1 - Fiabilite runtime + gates CI (4-6 jours)
Backend
- Ajouter timeout explicite sur execution scheduler (parite avec generation manuelle).
- Brancher cleanup periodique
job_store.cleanup_expired()au runtime. - Renforcer erreurs non silencieuses (
.ok()critiques -> logs/warn explicites).
QA
- Tests d'integration deterministes scheduler:
- due selection, anti-double-run, conflit job actif, succes/echec email.
- Tests d'integration deterministes SSE:
- sequence
progress -> complete/error, ownership, resilience.
- sequence
- Rendre ces suites bloquantes dans CI.
Definition of Done
- Scheduler/SSE couverts par tests deterministes.
- Gate CI "release" bloque si ces suites echouent.
Phase 2 - Coherence produit et hygiene code (4-6 jours)
Frontend
- Corriger enums/filters
ArticleHistorypour coller au contrat backend. - Supprimer hardcoded strings (i18n centralise).
- Appliquer regle stricte
Button(remplacer les<button>bruts). - Eliminer fetch directs dans pages au profit du client API.
Backend
- Supprimer toute trace fonctionnelle du mode extraction LLM deprecie.
- Verification complete des defaults/documentation runtime.
QA
- Tests unitaires/frontend sur i18n + rendering + article-history filters.
- Tests integration pour cas no-date ->
Sans date.
Definition of Done
- Plus de drift visible entre spec/doc/code pour ces zones.
- Lint/tests frontend/backend verts.
Phase 3 - Simplification structurelle (1-2 sprints)
Backend
- Decomposer
services/synthesis.rspar phases:init,phase1,phase2,finalize,trace.
- Extraire structures de contexte pour limiter l'etat mutable partage.
- Ajouter tests de caracterisation avant et apres refactor.
Frontend
- Decomposer
ThemeManager,Settings,Admin/Providers. - Introduire hooks/metiers (
useThemeEditor,useGenerationProgress, etc.). - Nettoyer anti-patterns reactivite (side effects en render).
Definition of Done
- Complexite par fichier/fonction reduite de facon mesurable.
- Aucun changement comportemental non voulu (tests non-regression verts).
Phase 4 - Durcissement final (3-5 jours)
- Optimiser points chauds (N+1
article_history, insertions bulk). - Completer observabilite (logs structurés, erreurs pipeline visibles).
- Mettre a jour templates PR/checklists anti-drift docs/spec/code.
- Synchroniser
qa_guidelinesavec inventaire reel genere en CI.
4. Plan QA global (obligatoire)
- Gate CI minimal:
- backend unit
- backend integration (incluant scheduler + SSE + source-scoping)
- frontend typecheck
- frontend unit tests
- E2E live provider reste non-bloquant (supplementaire).
- Aucun merge sur branches release si gate deterministe rouge.
5. Risques et mitigation
- Risque: regression sur flux theme/sources.
- Mitigation: tests d'integration multi-theme en premier.
- Risque: refactor structurel trop tot.
- Mitigation: refactor uniquement apres Phases 0-2 stabilisees.
- Risque: fausse confiance via tests live externes.
- Mitigation: CI bloquee sur suites deterministes internes.
6. Ordre d'execution concret (suggestion)
- Sprint A: Phase 0 complete.
- Sprint B: Phase 1 complete.
- Sprint C: Phase 2 complete.
- Sprint D-E: Phase 3.
- Sprint F: Phase 4 + cloture.