docs(development): finalize checkpoint C4 integration
Some checks are pending
CI - Tests et Syntax / lint-and-test (push) Waiting to run

This commit is contained in:
root 2026-08-24 22:03:14 +00:00
parent 59e3f6d8c1
commit 5f7ec0b405
2 changed files with 34 additions and 3 deletions

View file

@ -84,6 +84,27 @@ Les décisions sont ajoutées au fil des checkpoints. Les modèles existants son
**DATE/COMMIT** : 2026-08-23 / checkpoint A en cours.
## D-018 — Intégration C2/C4 et estimation scolaire des photocopieurs
Une référence contractuelle de début de période est exacte si le relevé est
daté du jour cible ou s'il est relié à l'occurrence C2 portant cette
`target_date`. Une date opérationnelle anticipée seule ne suffit pas. Le
calcul réutilise `MeterReadingOccurrence.meter_reading_id` et conserve les
dates cible/opérationnelle de C2, sans second calendrier.
Les quotas utilisent exclusivement `Meter.contract_role` (`NONE`,
`COPIER_BW`, `COPIER_COLOR`). Un assistant ponctuel peut classer les anciens
compteurs dont le nom est non ambigu ; les compteurs ambigus restent `NONE`.
Le calcul contractuel ne réanalyse jamais les noms à l'exécution.
Pour les photocopieurs, les intervalles historiques sont exprimés en
copies/jour scolaire comparable et l'estimation de la partie manquante utilise
ce taux multiplié par les jours scolaires manquants. Les intervalles sans jour
scolaire exploitable sont ignorés pour le taux. Les autres compteurs
conservent leur logique C3 calendaire.
**DATE/COMMIT** : 2026-08-24 / C4-FINAL.
## D-017 — Compléments C4
Le rôle contractuel d'un compteur est explicite (`COPIER_BW`, `COPIER_COLOR` ou `NONE`) : un compteur inconnu n'est jamais classé silencieusement N&B. Lorsqu'il manque l'index de début d'une période, la consommation manquante est estimée par moyenne journalière historique ; pour les équipements d'impression, les jours scolaires comparables sont privilégiés. Sans historique suffisant, la qualité est `PARTIAL`. L'agrégation globale suit `PARTIAL > ESTIMATED > EXACT`.

View file

@ -1,13 +1,23 @@
CURRENT VERSION: 0.2.0-dev.2
CURRENT CHECKPOINT: C4 — finalisation contrats, quotas et consommables
CURRENT COMMIT: 254018d — test(c4): complete contract and consumable coverage
CURRENT CHECKPOINT: C4 — intégration C2/C4 finale
CURRENT COMMIT: C4-FINAL — intégration des relevés C2 et compatibilité des compteurs
CURRENT MIGRATION: s4g5h6i7j8k9 (down_revision r3f4g5h6i7j8)
DOCKER VERSION: gmao-college:0.2.0-dev.2 (reconstruite, healthy, MariaDB connectée)
LAST FULL TEST: baseline précédente 202 passed, 1 failed, 1 error ; les deux anomalies historiques restent visibles
LAST TARGETED TEST: 46 passed (C1/C2/C3/C4) ; 7 tests C4, dont instrumentation performance
LAST TARGETED TEST: 20 passed (C4 + C4-FINAL) ; suite complète : 227 passed, 1 failed, 1 error historiques
BLOCKERS: validation responsive visuelle et base vide non exécutées ; anomalies pytest historiques conservées
NEXT ACTION: revue indépendante C4-COMPLETE ; ne pas bump la version
## C4-FINAL — intégration C2/C4
- [x] un relevé rattaché à une occurrence C2 dont `target_date` est le début de période est une référence contractuelle `EXACT`, même si sa date opérationnelle est anticipée ;
- [x] un relevé spontané anticipé sans occurrence C2 correspondante n'est pas classé exact par sa seule date ;
- [x] `Meter.contract_role` est configurable dans les formulaires de création/édition (`NONE`, `COPIER_BW`, `COPIER_COLOR`) ;
- [x] l'assistant de compatibilité classe prudemment les anciens compteurs N&B/couleur et laisse les noms ambigus à `NONE`, sans fallback runtime ;
- [x] l'estimation des photocopieurs utilise les copies par jour scolaire comparable, puis les jours scolaires manquants ;
- [ ] validation base vide et Playwright restent non exécutées ;
- [ ] revue indépendante finale C4 encore attendue.
## C4 — contrats photocopieurs, quotas et consommables
- [x] photocopieurs et imprimantes restent des `Equipment`, avec type d'appareil, S/N, IP, hostname et MAC facultatifs ;