[EF-09] Recommandations : trois règles versionnées #39
Labels
No labels
Compat/Breaking
EC01
EC02
EC03
EC04
EC05
EC06
Kind/BDD
Kind/Back
Kind/Bug
Kind/CICD
Kind/Cloud
Kind/Contenu
Kind/Data
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Front
Kind/IA
Kind/Infra
Kind/Monitoring
Kind/Security
Kind/Testing
Portée/Post-jury
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
ops/alerte
No milestone
No project
No assignees
2 participants
Notifications
Due date
Depends on
#35 [EF-12] Agrégation et zone or matérialisée
g2/enervision
#46 [PO] Glossaire métier et référentiel des sept sites
g2/enervision
Reference
g2/enervision#39
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Exigence couverte
EF-09
Épreuve servie
EC06 · IA et automatisation
Charge estimée
2 j.h
Ce qu'on veut obtenir
Émettre des recommandations qui disent pourquoi elles sortent, à partir de trois
règles versionnées écrites dans le code pour la fenêtre du 11/09.
Critères d'acceptation
Comment on le vérifie
Tests tests/unit/rules/
Commande pytest tests/unit/rules --cov
Preuve rapport de couverture, plus trois recommandations produites avec leur justification
Hors périmètre
Repriorisation du 03/09 : réduit à trois règles versionnées en dur pour la fenêtre du 11/09. Le moteur générique (règles chargées sans redéploiement) est suivi dans #116, hors fenêtre (
Portée/Post-jury). Voirdocs/BACKLOG.mdetdocs/PRD.md§8.[EF-09] Moteur de recommandations par règles versionnéesto [EF-09] Recommandations : trois règles versionnéesRecadré sur la repriorisation du 03/09 : trois règles versionnées écrites dans le code pour la fenêtre. Le moteur générique de règles chargées sans redéploiement est #116 (Portée/Post-jury).
Je prends, avec l'accord de Marvin, qui a cinq branches ouvertes en parallèle.
Une dépendance à lever avant de pouvoir cocher le critère 3. Le contenu
métier des trois règles doit venir d'un ticket de spécification, et ce ticket
n'existe pas : il n'y a aujourd'hui ni seuils, ni formulations, ni conditions de
déclenchement écrites nulle part.
Je commence donc par ce qui n'en dépend pas : la structure du module, le
versionnage des règles, la traçabilité de sortie (règle, version, horodatage,
valeurs déclenchantes) et les tests. Les trois règles se branchent ensuite, et
c'est de toute façon le bon ordre : une règle dont on change le seuil ne doit pas
demander de retoucher la mécanique.
Ce que j'attends du PO, pour chacune des trois règles : ce qu'elle observe,
le seuil ou la condition qui la déclenche, la formulation rendue à
l'utilisateur, et ce qu'elle recommande de faire. Sans ça je coderais des règles
inventées, ce que le ticket interdit à juste titre.
Périmètre inchangé : pas de moteur générique, c'est le #116, et pas d'affichage
dans le tableau de bord.
Ticket de spécification créé : #153. Il porte le contenu métier des trois règles — observation, fenêtre, condition exacte, message rendu, action recommandée — plus le cadre commun : sources en zone or uniquement, cadence horaire, cycle de vie des recommandations, enveloppe de traçabilité et versionnage. Seuils de départ 0,90 / 0,85 / 0,80, recalage prévu dans un ticket de suivi. Le critère 3 se coche en s'y référant.