[EF-09] Recommandations : trois règles versionnées #39

Closed
opened 2026-09-01 10:35:25 +00:00 by lenaic · 4 comments
Owner

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

  • Trois règles sont implémentées, chacune portant sa version et son horodatage.
  • Chaque recommandation cite sa règle, sa version, son horodatage et les valeurs qui l'ont déclenchée.
  • Le contenu métier des trois règles vient du ticket de spécification associé.
  • Couverture de tests d'au moins 85 % sur le module de règles.

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

  • Le moteur générique de règles chargées depuis un fichier sans redéploiement : #116 (Portée/Post-jury).
  • La rédaction métier des règles, qui appartient au PO.
  • L'affichage dans le tableau de bord.
### 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 - [ ] Trois règles sont implémentées, chacune portant sa version et son horodatage. - [ ] Chaque recommandation cite sa règle, sa version, son horodatage et les valeurs qui l'ont déclenchée. - [ ] Le contenu métier des trois règles vient du ticket de spécification associé. - [ ] Couverture de tests d'au moins 85 % sur le module de règles. ### 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 - Le moteur générique de règles chargées depuis un fichier sans redéploiement : #116 (Portée/Post-jury). - La rédaction métier des règles, qui appartient au PO. - L'affichage dans le tableau de bord.
florian added this to the EnerVision project 2026-09-01 12:42:45 +00:00
Member

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). Voir docs/BACKLOG.md et docs/PRD.md §8.

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`). Voir `docs/BACKLOG.md` et `docs/PRD.md` §8.
gabriel added the due date 2026-09-11 2026-09-03 12:41:02 +00:00
gabriel changed title from [EF-09] Moteur de recommandations par règles versionnées to [EF-09] Recommandations : trois règles versionnées 2026-09-03 13:56:49 +00:00
Member

Recadré 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).

Recadré 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).
lenaic self-assigned this 2026-09-04 11:47:43 +00:00
Author
Owner

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.

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.
Member

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.

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.
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
2026-09-11
Reference
g2/enervision#39
No description provided.