# Observatoire de l’habitat · backlog de départ

Version 0.4 · 7 octobre 2026 · proposition après sprint 0

**78 user stories, 17 epics et 24 travaux techniques.** L’ambition est maximale ; les priorités et affectations sont proposées. Les décisions effectives du sprint 0 ne sont pas documentées dans le dossier. Aucune stack ne leur est substituée.

Les cinq sprints représentent 56 heures de séance après le lancement de 7 heures. Le planning ci-dessous est un ordre de construction à estimer collectivement, pas une garantie de livraison des 102 items.

## Lecture du backlog

- P0 : parcours central ou qualité indispensable à sa livraison.
- P1 : enrichissement important de l’expérience.
- P2 : extension ambitieuse, à construire selon les données, arbitrages et capacité observée.
- US : besoin utilisateur ; EN : travail technique nécessaire, distinct d’une user story.
- Les chiffres de la maquette, sa géométrie et ses millésimes sont simulés. Les noms des 32 communes sont issus du classeur fourni.
- La maquette matérialise une proposition ; elle ne démontre ni contrôle serveur ni alimentation réelle.

## Progression sur les cinq sprints

| Sprint | Date | Axe de construction |
|---|---|---|
| S1 | 27 octobre 2026 · 7 h | Squelette intégré, contrat, premières données, atlas, fiche, provenance, recherche et mobile |
| S2 | 16–17 novembre 2026 · 10 h | Trois sources, couches, séries, comparaison, demandes et qualité |
| S3 | 11 décembre 2026 · 7 h | Tests, droits, période, distribution, exports et comité de pilotage |
| S4 | 11 et 15 janvier 2027 · 11 h | Performance, IA, relecture, publication et extensions dont les données sont prêtes |
| S5 | 1er–5 février 2027 · 21 h | Recette, intégration, rapports, transmission et extensions stabilisées |

## Démarrage conseillé du sprint 1

Noyau à prendre avant les autres items : **EN-01, EN-03, EN-04, EN-06, EN-07 ; US-005, US-009, US-011, US-040, US-053**. Une tranche réelle et intégrée doit traverser ingestion, base, API et front. EN-02, EN-05, EN-24, US-001 et US-037 accompagnent ce noyau selon la capacité. La roadmap conserve ensuite les ambitions maximales sans faire dépendre le premier écran de toute la plateforme.

Le front peut avancer immédiatement contre les fixtures de contrat. Découpage proposé : Cartographie & fiche ; Dataviz & comparaison ; Espaces, demandes & rapports. Les sous-équipes restent responsables de leurs composants partagés et des revues croisées.

## Décisions à formaliser

| Décision | Proposition de travail | Responsable |
|---|---|---|
| Stack et environnement | Conserver le choix du sprint 0 ; l’inscrire dans une ADR | Leads + Plateforme |
| Maire et communes voisines | Commune propre + agrégats ; pas d’exception implicite | Client + Projet |
| Maille | Commune, quartiers validés et rues sélectionnables ; disponibilité des indicateurs distincte à chaque maille | Client + Back + Data |
| Petit effectif | 5 ventes dans la simulation ; seuil réel à justifier et valider | Client + Data |
| Mise à jour | Cadence par producteur, pas une promesse de temps réel | Data + Client |
| DPE | Taux sur DPE retenus ; extrapolation au parc uniquement avec méthode | Data + Client |
| Public, OPAH, ZAN | Inclus dans le backlog maximal, avec étapes d’acquisition et validation | Projet + Client |
| Délais de réponse | Aucun engagement 48 h / 10 jours supposé | Service Habitat |

## Definition of Ready

- User story comprise, critères vérifiables, responsable désigné, effort estimé par les étudiants.
- Arbitrages bloquants levés ; mock correspondant à un contrat relu ; données et droits identifiés.
- Écran, variantes et transitions décrits ; dépendances explicites.

## Definition of Done

- Livré sur l’environnement intégré ; conformité du contrat et contrôles de droits vérifiés.
- Parcours nominal, erreurs, retour, recharge, mobile et clavier vérifiés.
- Source, unité, période et qualité correctement rendues ; données simulées identifiées.
- Animations interruptibles, réduction des mouvements, aucune perte de focus.
- Revue par une autre sous-équipe ; décisions et documentation mises à jour.

## Index des epics

| ID | Epic | Résultat attendu |
|---|---|---|
| E01 | Accès et espaces habilités | Retrouver le bon périmètre, sans fuite entre communes. |
| E02 | Atlas cartographique | Relier territoire, sélection et couches de données. |
| E03 | Fiches, provenance et confiance | Donner les limites nécessaires à une décision. |
| E04 | Exploration temporelle et dataviz | Faire de la dataviz une interface de lecture, pas une image. |
| E05 | Comparaison et contexte partagé | Conserver un contexte unique entre toutes les vues. |
| E06 | Demandes et collaboration | Faire circuler une question avec son contexte. |
| E07 | Rapports IA sous contrôle humain | Diffuser uniquement un document vérifié et traçable. |
| E08 | Exports et présentation | Emporter les données sans perdre leur sens. |
| E09 | Administration des données | Observer, corriger et reprendre les traitements. |
| E10 | Interface exigeante et accessible | Faire de la qualité d’intégration un résultat vérifiable. |
| E11 | Consultation citoyenne | Ouvrir des agrégats lorsque les règles de diffusion sont validées. |
| E12 | OPAH et rénovation | Ajouter un suivi opérationnel sans confondre observation et gestion. |
| E13 | Trajectoire ZAN et foncier | Documenter un périmètre foncier distinct du marché immobilier. |
| E14 | Recherche et expérience de travail | Réduire le coût des déplacements entre vues. |
| E15 | Tableaux de bord et indicateurs du service | Piloter l’observatoire et le travail du service. |
| E16 | Recette, exploitation et transmission | Livrer un service qu’un tiers peut reprendre. |
| E17 | Quartiers délimités et rues sélectionnables | Explorer Croix à partir de référentiels géographiques traçables, du quartier à la rue. |

## E01 · Accès et espaces habilités

Retrouver le bon périmètre, sans fuite entre communes.

### US-001 · Entrer dans mon espace

En tant que maire, je veux me connecter à mon espace communal afin de consulter les informations qui me concernent.

**P0 · S1 · Front espaces + Back API** · dépendances : EN-01, EN-02 · estimation à faire

**Critères d’acceptation**

- [ ] Identifiants valides : ouverture de la commune autorisée ; retour à la vue demandée si elle est autorisée.
- [ ] Échec : message générique, champs conservés sauf mot de passe, nouvelle tentative possible.
- [ ] Le chargement, l’expiration et le refus sont distingués ; le focus revient au message utile.

### US-002 · Retrouver ma session

En tant que utilisateur habilité, je veux reprendre ma consultation après une interruption afin de éviter de perdre mon contexte.

**P0 · S3 · Front espaces + Back API** · dépendances : US-001 · estimation à faire

**Critères d’acceptation**

- [ ] Une session expirée demande une reconnexion avant de recharger les données.
- [ ] Un retour sur une URL restaure une vue autorisée sans afficher fugitivement des données interdites.
- [ ] La déconnexion révoque la session serveur et retire les données sensibles des caches du navigateur.

### US-003 · Attribuer un périmètre

En tant que agent Habitat habilité, je veux attribuer un rôle et une commune à un utilisateur afin de maintenir des accès cohérents avec ses fonctions.

**P1 · S3 · Front espaces + Back API** · dépendances : US-001, EN-14 · estimation à faire

**Critères d’acceptation**

- [ ] Rôles maire, élu communautaire et agent Habitat distingués ; aucune auto-attribution de privilège.
- [ ] Modification enregistrée, journalisée et prise en compte sur la prochaine requête.
- [ ] Un utilisateur non habilité reçoit un refus côté serveur, même en appelant directement la route.

### US-004 · Consulter sans modifier

En tant que élu communautaire, je veux consulter le territoire sans pouvoir publier ni changer les accès afin de m’informer dans mon rôle de consultation.

**P0 · S3 · Front espaces + Back API** · dépendances : US-001, EN-14 · estimation à faire

**Critères d’acceptation**

- [ ] Les 32 communes autorisées sont consultables.
- [ ] Les actions d’administration et de publication ne sont pas disponibles.
- [ ] Toute tentative directe de mutation reçoit 403 ; un brouillon de rapport non diffusé n’est pas exposé.

### US-073 · Réinitialiser mon mot de passe

En tant qu’utilisateur, je veux réinitialiser mon mot de passe oublié afin de retrouver l’accès à mon espace.

**P0 · S1 · Front espaces + Back API** · dépendances : EN-01, EN-02 · estimation à faire

**Critères d’acceptation**

- [ ] Le lien « Mot de passe oublié » est accessible depuis la connexion ; les écrans d’accès et de réinitialisation ne présentent aucune navigation métier.
- [ ] La saisie d’une adresse e-mail permet de demander un lien ; le message de confirmation reste identique que le compte existe ou non.
- [ ] Le lien de réinitialisation est à usage unique et sa durée de validité est contrôlée côté serveur.
- [ ] Le nouveau mot de passe et sa confirmation doivent correspondre et respecter la politique de sécurité retenue.
- [ ] Après confirmation, l’utilisateur revient à la connexion ; les anciennes sessions sont invalidées.

## E02 · Atlas cartographique

Relier territoire, sélection et couches de données.

### US-005 · Explorer les communes

En tant que agent Habitat, je veux repérer une commune sur la carte et ouvrir sa fiche afin de répondre à une question territoriale sans chercher dans plusieurs outils.

**P0 · S1 · Front cartographie + Back API** · dépendances : EN-01, EN-03 · estimation à faire

**Critères d’acceptation**

- [ ] Carte, liste et fiche partagent le même identifiant communal ; sélectionner sur l’une actualise les autres.
- [ ] Une géométrie absente n’empêche pas l’accès à la fiche depuis la liste.
- [ ] Carte utilisable au clavier avec alternative tabulaire ; le périmètre provient du serveur.

### US-006 · Changer de couche

En tant que agent Habitat, je veux passer des prix aux DPE et aux risques afin de croiser plusieurs lectures du même territoire.

**P0 · S2 · Front cartographie + Back données** · dépendances : US-005, EN-08, EN-09, EN-10 · estimation à faire

**Critères d’acceptation**

- [ ] Le changement conserve commune, zoom et période ; légende, unité et date suivent la couche.
- [ ] Classes documentées, trames ou valeurs en complément de la couleur ; sans donnée distinct du zéro.
- [ ] Un résultat tardif de l’ancienne couche ne peut pas écraser la couche active.

### US-007 · Naviguer à plusieurs échelles

En tant que agent Habitat, je veux zoomer et déplacer la carte vers la zone étudiée afin de examiner le contexte sans perdre ma sélection.

**P1 · S2 · Front cartographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Zoom et déplacement à la souris, au tactile et par commandes clavier ; bornes explicites.
- [ ] Recentrer retrouve le territoire entier sans annuler les filtres.
- [ ] Les libellés adaptent leur densité au zoom ; aucune valeur ne devient inaccessible sans survol.

### US-008 · Explorer les quartiers et rues

En tant que maire, je veux naviguer dans les quartiers et rues de ma commune et consulter des indicateurs agrégés uniquement lorsque les données le permettent afin de préparer une action localisée.

**P1 · S2 · Front cartographie + Back données** · dépendances : US-006, EN-18 · estimation à faire

**Critères d’acceptation**

- [ ] La maille est visible et ne contient aucune adresse dans la diffusion prévue.
- [ ] Le retour à la commune conserve indicateur et période.
- [ ] Les quartiers non couverts sont indiqués ; aucune interpolation silencieuse ne crée une valeur.
- [ ] Carte et liste permettent commune → quartier → rue, recherche, retour, recharge et lien partagé.
- [ ] Une rue est rattachée à sa commune et son quartier ; un maire ne sort jamais de son périmètre autorisé.
- [ ] Le quartier municipal ou IRIS est identifié ; aucun découpage inventé n’est présenté comme officiel.
- [ ] Une demande conserve le quartier ou la rue sélectionnée ; les données communales ne sont pas reportées à la rue.

### US-065 · Voir les quartiers délimités

En tant que maire, je veux identifier les quartiers de ma commune sur la carte afin de situer les enjeux locaux.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : aucune · estimation à faire

**Critères d’acceptation**

- [ ] Les quartiers publiés sont des polygones ou multipolygones nommés, avec source, date, version et nature du découpage consultables.
- [ ] Carte et liste sélectionnent le même quartier ; son contour reste distinct de la couleur de l’indicateur.
- [ ] Aucun rectangle de scénario ne porte le nom d’un quartier réel ; si le référentiel manque, l’état indique quartiers non alimentés.

### US-066 · Explorer un quartier

En tant que maire, je veux ouvrir un quartier et retrouver ses rues afin de passer de la vue communale à un périmètre précis.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-065 · estimation à faire

**Critères d’acceptation**

- [ ] Le clic recadre le quartier, conserve couche et année et ouvre une fiche ; le fil Croix > quartier revient sans perdre le contexte.
- [ ] La liste contient les rues intersectant le quartier, dont les rues qui le traversent partiellement.
- [ ] L’animation de caméra est interruptible, réduite si demandé et ne déplace pas le focus clavier.

### US-067 · Sélectionner une rue réelle

En tant que maire, je veux sélectionner une rue sur la carte ou dans une liste afin de la localiser et consulter les informations disponibles.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-066 · estimation à faire

**Critères d’acceptation**

- [ ] Le tracé réel de la rue est cliquable avec une zone de capture élargie ; survol, focus et sélection sont distincts.
- [ ] Les tronçons portent un identifiant de rue stable ; sélectionner la rue souligne ses tronçons autorisés, le tronçon cliqué restant identifiable.
- [ ] La fiche affiche nom, commune, quartiers traversés, source géographique et disponibilité des indicateurs ; aucun agrégat communal ne devient une valeur de rue.

### US-068 · Rechercher une rue ou un quartier

En tant que maire, je veux retrouver un lieu par son nom afin de accéder directement à son contexte.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-067 · estimation à faire

**Critères d’acceptation**

- [ ] Recherche sans accents, catégories quartier/rue, gestion des homonymes ; résultats limités côté serveur à Croix pour le maire.
- [ ] La sélection d’un résultat synchronise carte, liste, fiche et fil de navigation.
- [ ] Chargement, absence de résultat, erreur et reprise sont distingués ; navigation complète au clavier.

### US-069 · Comprendre les valeurs à chaque maille

En tant que élu communautaire, je veux connaître la disponibilité et la méthode des indicateurs du lieu sélectionné afin de éviter une interprétation trompeuse.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-065, US-067 · estimation à faire

**Critères d’acceptation**

- [ ] Chaque valeur affiche maille, période, source, méthode, effectif et statut disponible/absent/non calculable/masqué.
- [ ] Un indicateur de rue nécessite une affectation géographique documentée ; sa disponibilité peut différer de celle du quartier.
- [ ] Seuils de diffusion configurés et validés par le responsable de données ; valeurs masquées absentes des API et exports, pas seulement du graphique.

### US-070 · Partager et questionner un lieu

En tant que maire, je veux conserver quartier et rue dans un lien ou une demande afin de obtenir une réponse sur le même lieu.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-067 · estimation à faire

**Critères d’acceptation**

- [ ] URL et demande conservent communeId, quartierId facultatif, rueId facultatif, tronconId facultatif, version du référentiel, indicateur et année.
- [ ] Retour navigateur et rechargement rétablissent la sélection autorisée ; le service retrouve le contexte exact.
- [ ] Lieu retiré, version obsolète ou périmètre interdit : message explicite et retour à la commune, sans fuite de géométrie ni d’indicateur.

### US-074 · Déplacer la carte

En tant qu’utilisateur de l’atlas, je veux déplacer la carte librement afin de explorer les rues et quartiers autour du lieu étudié.

**P0 · S1 · Front cartographie + Back géographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Le glisser-déposer déplace le fond, les limites, les rues et les valeurs ensemble, sans modifier le zoom.
- [ ] Le déplacement ne sélectionne pas involontairement une rue ou un quartier.
- [ ] La sélection, l’indicateur et la période restent conservés pendant le déplacement.
- [ ] Des commandes accessibles au clavier permettent le déplacement sans imposer la souris.

### US-075 · Zoomer et dézoomer sur la carte

En tant qu’utilisateur de l’atlas, je veux régler le niveau de zoom afin de passer de la commune au détail des rues.

**P0 · S1 · Front cartographie + Back géographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Les boutons + et − et les gestes de zoom adaptent le niveau de détail de la carte.
- [ ] Le zoom conserve le point visé et la sélection ; il ne réinitialise pas les filtres.
- [ ] Les libellés, tracés de rues et limites sont adaptés au zoom et restent lisibles.
- [ ] Les commandes ont un libellé accessible et fonctionnent au clavier.

### US-076 · Recentrer sur le territoire ou la sélection

En tant qu’utilisateur de l’atlas, je veux recentrer la carte en une action afin de retrouver rapidement mon territoire ou le lieu étudié.

**P0 · S1 · Front cartographie + Back géographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] « Voir la commune » cadre la commune autorisée avec ses limites visibles.
- [ ] « Voir la sélection » cadre le quartier ou la rue sélectionnée sans masquer son tracé sous le panneau.
- [ ] Le recentrage conserve l’indicateur, la période et les couches activées.

### US-077 · Repérer une rue avant de la sélectionner

En tant qu’utilisateur de l’atlas, je veux repérer une rue sur la carte afin de choisir le bon tracé sans ambiguïté.

**P0 · S1 · Front cartographie + Back géographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Le survol met en évidence le tracé complet et affiche le nom de la rue.
- [ ] Au clavier, le focus d’un résultat de recherche permet de repérer la rue correspondante ; sur écran tactile, la sélection reste accessible.
- [ ] Une rue formée de plusieurs tronçons est présentée comme une seule voie.
- [ ] Le repérage temporaire ne remplace pas la sélection actuelle ni ses chiffres.

### US-078 · Changer ou effacer la sélection cartographique

En tant qu’utilisateur de l’atlas, je veux changer de rue ou revenir à la commune afin de poursuivre mon analyse sans perdre les réglages.

**P0 · S1 · Front cartographie + Back géographie** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Sélectionner une autre rue remplace la sélection précédente et synchronise tracé, nom et fiche.
- [ ] La commande « Effacer la sélection » revient à la lecture communale.
- [ ] L’indicateur, l’année et les couches restent conservés.
- [ ] La sélection active se distingue visuellement du simple survol.

## E03 · Fiches, provenance et confiance

Donner les limites nécessaires à une décision.

### US-009 · Lire une fiche communale

En tant que maire, je veux retrouver les indicateurs clés de ma commune afin de préparer mon conseil avec des chiffres compréhensibles.

**P0 · S1 · Front fiche + Back API** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Chaque indicateur expose valeur, unité, période, date d’import et source.
- [ ] Valeur absente, non diffusable et erreur de chargement ont des états et des explications distincts.
- [ ] Prix, DPE et risques ne sont pas mélangés dans un score composite non défini.

### US-010 · Comprendre un taux DPE

En tant que élu, je veux connaître le dénominateur et la couverture du taux F+G afin de éviter de le présenter comme un recensement de tous les logements.

**P0 · S2 · Front fiche + Back DPE** · dépendances : US-009, EN-09 · estimation à faire

**Critères d’acceptation**

- [ ] Le numérateur F+G et le total de DPE retenus sont consultables.
- [ ] Règles de déduplication, méthode et période sont affichées.
- [ ] Une couverture inconnue reste inconnue ; aucune multiplication par le parc n’est faite sans méthode validée.

### US-011 · Voir la provenance

En tant que utilisateur habilité, je veux ouvrir la provenance d’un chiffre afin de savoir à quelle donnée je peux me fier.

**P0 · S1 · Front fiche + Back API** · dépendances : US-009 · estimation à faire

**Critères d’acceptation**

- [ ] Le panneau identifie producteur, jeu, période, date d’import et transformation utilisée.
- [ ] Ouverture et fermeture au clavier avec restitution du focus au déclencheur.
- [ ] Une source manquante bloque l’affirmation, sans inventer un nom de producteur.

### US-012 · Comprendre une non-diffusion

En tant que utilisateur habilité, je veux comprendre pourquoi une valeur est absente afin de distinguer absence, confidentialité et indisponibilité technique.

**P0 · S2 · Front fiche + Back données** · dépendances : US-009, EN-15 · estimation à faire

**Critères d’acceptation**

- [ ] Un code de qualité stable distingue missing, insufficient_sample, suppressed et source_error.
- [ ] L’explication propose une autre période ou une référence agrégée lorsqu’elles sont autorisées.
- [ ] Le seuil est versionné et présenté comme une règle validée du projet, pas comme une loi supposée.

## E04 · Exploration temporelle et dataviz

Faire de la dataviz une interface de lecture, pas une image.

### US-013 · Explorer une année

En tant que agent Habitat, je veux changer l’année affichée sur la carte afin de observer une évolution sans perdre mon contexte.

**P0 · S2 · Front dataviz + Back API** · dépendances : US-006, EN-12 · estimation à faire

**Critères d’acceptation**

- [ ] Carte, fiche, légende et source changent ensemble pour l’année sélectionnée.
- [ ] Lecture et pause de la chronologie ; fin sans boucle imposée ; contrôle toujours possible.
- [ ] Année sans données explicitée ; une animation ne fabrique pas de valeur intermédiaire interprétable comme réelle.

### US-014 · Lire une courbe précisément

En tant que élu, je veux parcourir les points d’une série au pointeur et au clavier afin de lire une valeur exacte et sa période.

**P0 · S2 · Front dataviz** · dépendances : US-013 · estimation à faire

**Critères d’acceptation**

- [ ] Curseur commun entre séries, infobulle située sans sortir du viewport et tableau de valeurs équivalent.
- [ ] Flèches gauche/droite parcourent les années ; la lecture ne dépend pas du survol.
- [ ] Une lacune casse la courbe ; les points manquants ne sont pas reliés arbitrairement.

### US-015 · Recadrer une période

En tant que agent Habitat, je veux réduire la période d’analyse afin de examiner un changement sur un intervalle choisi.

**P1 · S3 · Front dataviz + Back API** · dépendances : US-014 · estimation à faire

**Critères d’acceptation**

- [ ] Bornes ordonnées, manipulables au clavier et au tactile ; année unique autorisée.
- [ ] Courbes, écarts, tableau et export utilisent les mêmes bornes.
- [ ] Le recadrage conserve les communes sélectionnées et signale une période indisponible.

### US-016 · Lire la relation marché-énergie

En tant que agent Habitat, je veux sélectionner une commune dans un nuage de points afin de comparer ses niveaux de prix et de passoires.

**P1 · S3 · Front dataviz** · dépendances : US-014, US-010 · estimation à faire

**Critères d’acceptation**

- [ ] Axes, unités et période visibles ; sélection reliée à la fiche et à la comparaison.
- [ ] Les données manquantes sont exclues du nuage mais restent listées dans le tableau.
- [ ] Une relation visuelle n’est jamais présentée comme une causalité prouvée.

## E05 · Comparaison et contexte partagé

Conserver un contexte unique entre toutes les vues.

### US-017 · Constituer une comparaison

En tant que agent Habitat, je veux sélectionner jusqu’à trois communes afin de les lire côte à côte sur une période identique.

**P0 · S2 · Front dataviz + Front cartographie** · dépendances : US-009, US-014 · estimation à faire

**Critères d’acceptation**

- [ ] Ajout/retrait depuis carte et tableau ; limite visible ; sélection conservée en changeant de vue.
- [ ] Courbes identifiées par libellé et style de trait, pas seulement par couleur.
- [ ] Une commune hors périmètre est refusée et retirée de la sélection restaurée.

### US-018 · Me situer dans le territoire

En tant que maire, je veux comparer ma commune à des références agrégées autorisées afin de contextualiser ses indicateurs.

**P0 · S2 · Front dataviz + Back données** · dépendances : US-010, EN-12 · estimation à faire

**Critères d’acceptation**

- [ ] Commune, agglomération et département hors agglomération emploient la même définition et la même période.
- [ ] Le calcul de la référence et ses poids sont documentés ; ratios jamais moyennés sans méthode.
- [ ] Pas de nom ni de valeur d’une autre commune lorsque le périmètre du maire l’interdit.

### US-019 · Partager une vue

En tant que utilisateur habilité, je veux partager un lien de ma consultation afin de retrouver les mêmes filtres avec un collègue autorisé.

**P1 · S2 · Front espaces** · dépendances : US-017 · estimation à faire

**Critères d’acceptation**

- [ ] URL encode commune, indicateur, année, période, sélection et couches actives.
- [ ] Lien ouvert dans un autre profil : contrôle des accès avant chargement ; identifiants inconnus normalisés.
- [ ] Retour navigateur et rechargement restaurent un état cohérent ; le lien ne contient aucun jeton.

### US-020 · Filtrer par classe de valeur

En tant que agent Habitat, je veux sélectionner une classe dans une distribution afin de examiner les communes qui correspondent à mon analyse.

**P1 · S3 · Front dataviz** · dépendances : US-016, US-017 · estimation à faire

**Critères d’acceptation**

- [ ] Classe sélectionnée filtre tableau, décompte et export ; action répétée retire le filtre.
- [ ] Les classes restent fixes entre années et les valeurs manquantes ont une classe distincte.
- [ ] Le focus reste utilisable après actualisation ; la classe active est annoncée.

## E06 · Demandes et collaboration

Faire circuler une question avec son contexte.

### US-021 · Transmettre une demande contextualisée

En tant que maire, je veux demander une synthèse depuis ma consultation afin de éviter de ressaisir les chiffres et le périmètre.

**P0 · S2 · Front rapports + Back API** · dépendances : US-009, EN-13 · estimation à faire

**Critères d’acceptation**

- [ ] Objet obligatoire et précisions facultatives ; contexte joint : commune, indicateur, période, sources et filtre.
- [ ] Succès retourne une référence serveur ; erreur conserve la saisie et permet une reprise.
- [ ] Double clic ou retry ne créent pas deux demandes ; les délais affichés proviennent d’un engagement validé.

### US-022 · Suivre mes demandes

En tant que maire, je veux retrouver l’état de mes demandes afin de savoir si une réponse est prête.

**P1 · S3 · Front rapports + Back API** · dépendances : US-021 · estimation à faire

**Critères d’acceptation**

- [ ] Nouvelle, en cours, en attente de précision, répondue et close distinguées.
- [ ] Liste paginée, triée et limitée au périmètre ; état vide avec action pertinente.
- [ ] Le brouillon interne n’est jamais inclus dans la réponse API destinée au maire.

### US-023 · Traiter la file de demandes

En tant que agent Habitat, je veux affecter et prioriser les demandes afin de organiser le travail du service.

**P1 · S3 · Front rapports + Back API** · dépendances : US-021 · estimation à faire

**Critères d’acceptation**

- [ ] Filtres commune, thème, statut et responsable ; détail lié à la fiche.
- [ ] Changement de statut journalisé, conflit de modification signalé sans écraser le travail d’un collègue.
- [ ] Une demande sans données exploitables peut recevoir une réponse explicative.

### US-024 · Être averti d’une réponse

En tant que maire, je veux recevoir un avis lorsqu’une synthèse est publiée afin de ne pas devoir vérifier chaque jour.

**P2 · S4 · Front rapports + Back API** · dépendances : US-022, US-027 · estimation à faire

**Critères d’acceptation**

- [ ] Notification in-app avec lien vers la ressource autorisée.
- [ ] Lecture de la notification enregistrée sans modifier le rapport.
- [ ] Échec du canal externe journalisé ; publication conservée ; pas d’envoi à des utilisateurs hors périmètre.

## E07 · Rapports IA sous contrôle humain

Diffuser uniquement un document vérifié et traçable.

### US-025 · Préparer un brouillon sourcé

En tant que agent Habitat, je veux générer un brouillon depuis des indicateurs agrégés afin de préparer une synthèse sans ressaisir les valeurs.

**P0 · S4 · Front rapports + Back IA** · dépendances : EN-16, US-010, US-023 · estimation à faire

**Critères d’acceptation**

- [ ] Job asynchrone : queued, running, failed et ready ; pas de bouton qui prétend publier immédiatement.
- [ ] Chiffres liés aux snapshots utilisés ; texte sans chiffre non fourni ni causalité inventée.
- [ ] Prompt, modèle, version et horodatage tracés ; données au logement exclues du périmètre de génération retenu.

### US-026 · Relire section par section

En tant que agent Habitat, je veux accepter, corriger ou exclure les sections du brouillon afin de garder la maîtrise de son contenu.

**P0 · S4 · Front rapports + Back IA** · dépendances : US-025 · estimation à faire

**Critères d’acceptation**

- [ ] Acceptation impossible sans source ; correction réelle du texte, source et auteur sauvegardés.
- [ ] Section exclue absente du document diffusé ; le brouillon conserve son historique.
- [ ] Retour ou rechargement conserve les décisions ; deux relecteurs ne peuvent pas s’écraser silencieusement.

### US-027 · Publier une version validée

En tant que agent Habitat habilité, je veux publier une version entièrement relue afin de diffuser un document dont je peux justifier les chiffres.

**P0 · S4 · Front rapports + Back IA** · dépendances : US-026, EN-14 · estimation à faire

**Critères d’acceptation**

- [ ] Le serveur vérifie les sections, les sources et l’habilitation ; le front seul ne peut pas lever le blocage.
- [ ] Version, auteur, date et empreinte des données enregistrés ; publiée et brouillon distingués.
- [ ] La publication ne modifie pas une version déjà diffusée ; une correction crée une nouvelle version.

### US-028 · Consulter un rapport validé

En tant que élu, je veux lire un rapport publié pour mon périmètre afin de l’utiliser en réunion en connaissant ses limites.

**P0 · S4 · Front rapports + Back API** · dépendances : US-027 · estimation à faire

**Critères d’acceptation**

- [ ] Une version publiée expose texte, sources, auteur de validation, date et période.
- [ ] Brouillons, sections rejetées et commentaires internes absents de la réponse destinée aux élus.
- [ ] Rapport retiré signalé explicitement ; lien vers la version remplaçante si autorisé.

## E08 · Exports et présentation

Emporter les données sans perdre leur sens.

### US-029 · Exporter un tableau

En tant que agent Habitat, je veux exporter les données de ma sélection afin de poursuivre une analyse avec les mêmes définitions.

**P1 · S3 · Front dataviz + Back API** · dépendances : US-015, US-020 · estimation à faire

**Critères d’acceptation**

- [ ] Export CSV avec filtres, période, unités, sources et codes de qualité.
- [ ] Cellules texte protégées contre l’interprétation comme formules dans un tableur.
- [ ] Jeu trop volumineux traité par job et lien temporaire autorisé ; aucune fuite hors périmètre.

### US-030 · Télécharger une synthèse PDF

En tant que élu, je veux télécharger la version publiée d’un rapport afin de la distribuer en réunion.

**P1 · S4 · Front rapports + Back IA** · dépendances : US-028 · estimation à faire

**Critères d’acceptation**

- [ ] PDF reproduit uniquement la version validée et ses sources ; date et numéro de version visibles.
- [ ] Pagination, graphiques et tables lisibles ; aucun contenu tronqué.
- [ ] Le téléchargement contrôle l’habilitation et explique une indisponibilité sans faux succès.

### US-031 · Présenter en conseil

En tant que agent Habitat, je veux passer les visualisations en mode présentation afin de les lire clairement avec les élus.

**P2 · S5 · Front dataviz** · dépendances : US-014, US-028 · estimation à faire

**Critères d’acceptation**

- [ ] Mode grand écran avec titre, unités, sources et période conservés.
- [ ] Navigation clavier, sortie explicite et restauration du contexte de travail.
- [ ] Les annotations ne masquent pas les données ; le mode ne crée aucun accès supplémentaire.

### US-032 · Annoter une analyse

En tant que agent Habitat, je veux associer une note à une sélection et une période afin de préparer une discussion sans altérer la donnée.

**P2 · S4 · Front dataviz + Back API** · dépendances : US-019 · estimation à faire

**Critères d’acceptation**

- [ ] Annotation liée à des identifiants et à un snapshot ; auteur et date conservés.
- [ ] Texte éditable et supprimable selon les droits, sans modifier les valeurs.
- [ ] Changement de millésime signale que la note porte sur une autre version.

## E09 · Administration des données

Observer, corriger et reprendre les traitements.

### US-033 · Voir la fraîcheur des sources

En tant que agent Habitat, je veux consulter l’état de chaque alimentation afin de savoir si une donnée récente est réellement disponible.

**P0 · S2 · Front données + Back données** · dépendances : EN-08, EN-09, EN-10 · estimation à faire

**Critères d’acceptation**

- [ ] Période source, publication producteur et date d’import distinguées.
- [ ] Dernier import réussi, import en cours, retard et échec visibles.
- [ ] Le retard ne masque pas la dernière donnée valide ; la date reste attachée à sa valeur.

### US-034 · Relancer un import

En tant que exploitant habilité, je veux relancer un traitement en échec afin de rétablir l’alimentation sans créer de doublons.

**P1 · S3 · Front données + Back données** · dépendances : US-033, EN-11 · estimation à faire

**Critères d’acceptation**

- [ ] Reprise depuis le dernier point connu et idempotence vérifiées.
- [ ] Deux lancements concurrents contrôlés ; progression observable.
- [ ] Les erreurs détaillées restent dans l’espace d’exploitation, sans secrets dans le navigateur.

### US-035 · Réconcilier les communes

En tant que agent Habitat, je veux résoudre les noms et codes ambigus de l’ancien fichier afin de rattacher correctement les données au territoire.

**P0 · S2 · Front données + Back données** · dépendances : EN-06 · estimation à faire

**Critères d’acceptation**

- [ ] Candidats, raisons et anomalies visibles ; aucune association silencieuse à partir d’un nom ambigu.
- [ ] Décision humaine conservée avec auteur et date ; le quartier gare n’est pas traité comme une commune.
- [ ] Doublons, codes réutilisés et anciens libellés restent consultables dans le journal de migration.

### US-036 · Auditer un indicateur

En tant que agent Habitat, je veux retrouver les étapes de calcul d’une valeur afin de expliquer un écart entre deux millésimes.

**P1 · S3 · Front données + Back données** · dépendances : US-011, EN-12 · estimation à faire

**Critères d’acceptation**

- [ ] Version de méthode, volume brut, exclusions et total retenu accessibles.
- [ ] Recalcul reproductible depuis les références enregistrées.
- [ ] Un changement de méthode marque une rupture et ne se présente pas comme une variation territoriale.

## E10 · Interface exigeante et accessible

Faire de la qualité d’intégration un résultat vérifiable.

### US-037 · Utiliser le service sur mobile

En tant que maire, je veux consulter puis demander un rapport sur mon téléphone afin de préparer une réunion en déplacement.

**P0 · S1 · Tous les fronts** · dépendances : US-009, EN-04 · estimation à faire

**Critères d’acceptation**

- [ ] À 390 px, carte et fiche se réorganisent sans réduire une page desktop en miniature.
- [ ] Actions tactiles de 44 px minimum, clavier virtuel et safe areas pris en compte.
- [ ] La consultation et le formulaire restent utilisables à 200 % de zoom, sans perte d’information.

### US-038 · Tout parcourir au clavier

En tant que utilisateur au clavier, je veux naviguer dans les cartes, graphiques et dialogues afin de accéder à toutes les informations sans souris.

**P0 · S3 · Tous les fronts** · dépendances : US-014, EN-04 · estimation à faire

**Critères d’acceptation**

- [ ] Ordre de tabulation, focus visible, liens d’évitement et restitution du focus dans chaque dialogue.
- [ ] Carte et graphiques disposent d’une lecture équivalente tabulaire.
- [ ] Changement de donnée annoncé de manière mesurée ; aucun piège clavier ni contenu exclusivement au survol.

### US-039 · Comprendre les transitions visuelles

En tant que utilisateur, je veux voir les transitions entre données et contextes afin de comprendre ce qui a changé sans perdre mes repères.

**P1 · S2 · Front dataviz + Front cartographie** · dépendances : US-013, EN-05 · estimation à faire

**Critères d’acceptation**

- [ ] Tracé des séries, morphing des points, changement de couche et panneau coordonnés selon la spécification motion.
- [ ] Animation annulable lors d’un nouvel événement ; seul le dernier état demandé est retenu.
- [ ] Réduction des mouvements : affichage immédiat et lisible ; les nombres intermédiaires ne sont pas annoncés comme des mesures.

### US-040 · Reprendre après une erreur

En tant que utilisateur, je veux réessayer un chargement sans refaire ma sélection afin de continuer mon travail malgré une panne.

**P0 · S1 · Tous les fronts + Back API** · dépendances : EN-03 · estimation à faire

**Critères d’acceptation**

- [ ] Chargement, vide, absent, non diffusable, refus et panne ont des états distincts.
- [ ] Nouvelle tentative conserve filtres et saisies ; aucun ancien résultat n’est affiché comme nouveau.
- [ ] Erreur persistante propose une sortie utile ; messages compréhensibles et corrélation de diagnostic côté service.

## E11 · Consultation citoyenne

Ouvrir des agrégats lorsque les règles de diffusion sont validées.

### US-041 · Consulter des indicateurs publics

En tant que citoyen, je veux consulter les données territoriales publiées afin de comprendre l’habitat dans mon territoire.

**P2 · S4 · Front public + Back API** · dépendances : EN-17, US-012 · estimation à faire

**Critères d’acceptation**

- [ ] Seuls les jeux explicitement autorisés au public sont exposés.
- [ ] Vue adaptée au grand public, avec définition, date et limites.
- [ ] Une route publique ne permet pas de déduire des données privées par ses filtres.

### US-042 · Comprendre un indicateur public

En tant que citoyen, je veux ouvrir une explication simple des indicateurs afin de éviter de confondre aléa, sinistre et diagnostic.

**P2 · S4 · Front public** · dépendances : US-041, US-010 · estimation à faire

**Critères d’acceptation**

- [ ] Définitions courtes complétées par la méthode détaillée.
- [ ] Les limites du parc diagnostiqué et des petits effectifs apparaissent près des valeurs.
- [ ] Vocabulaire factuel, aucune commune qualifiée de bonne ou mauvaise.

### US-043 · Lire les rapports publics

En tant que citoyen, je veux lire les rapports explicitement ouverts au public afin de accéder à une information validée.

**P2 · S5 · Front public + Back API** · dépendances : US-041, US-027 · estimation à faire

**Critères d’acceptation**

- [ ] Publication interne et publication publique sont deux décisions distinctes.
- [ ] Les versions publiques excluent annexes ou informations non autorisées.
- [ ] Retrait et remplacement d’une version visibles, sans effacer l’historique de validation interne.

### US-044 · Rechercher une commune publique

En tant que citoyen, je veux retrouver une commune dans l’espace public afin de accéder rapidement aux données qui m’intéressent.

**P2 · S4 · Front public** · dépendances : US-041 · estimation à faire

**Critères d’acceptation**

- [ ] Recherche par nom, avec accents et aliases normalisés.
- [ ] Absence de résultat expliquée ; aucune suggestion d’un territoire non publié.
- [ ] URL publique stable et utilisable sur mobile.

## E12 · OPAH et rénovation

Ajouter un suivi opérationnel sans confondre observation et gestion.

### US-045 · Voir les périmètres OPAH

En tant que agent Habitat, je veux superposer les périmètres des opérations de rénovation afin de situer les actions par rapport au parc étudié.

**P2 · S4 · Front cartographie + Back données** · dépendances : EN-19, US-006 · estimation à faire

**Critères d’acceptation**

- [ ] Périmètre, dates et type d’opération documentés ; source jointe.
- [ ] Superposition activable sans modifier la classification des DPE.
- [ ] Aucun périmètre reconstitué à partir de notes incomplètes.

### US-046 · Suivre les objectifs de rénovation

En tant que agent Habitat, je veux suivre objectifs et réalisations d’une opération afin de préparer un bilan opérationnel.

**P2 · S4 · Front données + Back données** · dépendances : US-045, EN-19 · estimation à faire

**Critères d’acceptation**

- [ ] Objectifs, engagés et achevés distingués par période.
- [ ] Saisie avec preuve ou source, responsable et historique.
- [ ] Total et taux calculés avec dénominateur documenté ; absent différent de zéro.

### US-047 · Comparer objectifs et résultats

En tant que élu, je veux voir l’évolution d’une opération par rapport à ses objectifs afin de identifier les écarts à discuter.

**P2 · S5 · Front dataviz** · dépendances : US-046 · estimation à faire

**Critères d’acceptation**

- [ ] Graphique objectifs/résultats accessible avec mêmes périodes et unités.
- [ ] Écart factuel, sans explication causale automatiquement inventée.
- [ ] Une opération terminée et une opération en cours restent distinguées.

### US-048 · Joindre le bilan OPAH au rapport

En tant que agent Habitat, je veux intégrer un bilan validé d’opération à la synthèse afin de présenter une lecture observation et action.

**P2 · S5 · Front rapports + Back IA** · dépendances : US-046, US-026 · estimation à faire

**Critères d’acceptation**

- [ ] Section rattachée au snapshot de l’opération et revue séparément.
- [ ] Objectifs futurs jamais présentés comme des réalisations.
- [ ] Même contrôle de publication que pour les autres sections.

## E13 · Trajectoire ZAN et foncier

Documenter un périmètre foncier distinct du marché immobilier.

### US-049 · Consulter une trajectoire foncière

En tant que agent Habitat, je veux consulter une trajectoire de consommation d’espace documentée afin de préparer un échange avec les services d’aménagement.

**P2 · S4 · Front dataviz + Back données** · dépendances : EN-20 · estimation à faire

**Critères d’acceptation**

- [ ] Période de référence, unité, périmètre et source explicités.
- [ ] Objectifs et mesures observées distingués ; données SCOT absentes signalées.
- [ ] Aucun calcul ZAN déduit des seules ventes DVF.

### US-050 · Explorer le foncier sur la carte

En tant que agent Habitat, je veux superposer des agrégats fonciers autorisés afin de situer les évolutions à l’échelle utile.

**P2 · S5 · Front cartographie + Back données** · dépendances : US-049, EN-18 · estimation à faire

**Critères d’acceptation**

- [ ] Géométrie et unité de surface homogènes ; maille et source visibles.
- [ ] Surfaces cumulées sans double comptage ; couches compatibles clairement indiquées.
- [ ] Données cadastrales indisponibles ne sont pas remplacées par une géométrie inventée.

### US-051 · Suivre un scénario de trajectoire

En tant que élu, je veux comparer une trajectoire observée à des hypothèses explicites afin de discuter une projection sans la confondre avec un résultat.

**P2 · S5 · Front dataviz + Back données** · dépendances : US-049 · estimation à faire

**Critères d’acceptation**

- [ ] Hypothèses éditables identifiées comme hypothèses et versionnées.
- [ ] Courbe observée et projection différenciées par style et libellé.
- [ ] Résultats invalides ou inputs absents explicités ; aucune certitude réglementaire implicite.

### US-052 · Exporter une note foncière

En tant que agent Habitat, je veux exporter une note fondée sur les données foncières validées afin de partager une analyse avec le service d’aménagement.

**P2 · S5 · Front rapports + Back IA** · dépendances : US-049, US-030 · estimation à faire

**Critères d’acceptation**

- [ ] Données, hypothèses et objectifs présentés séparément.
- [ ] Source, méthode et date de validation intégrées au document.
- [ ] Une note non validée reste un brouillon non diffusable.

## E14 · Recherche et expérience de travail

Réduire le coût des déplacements entre vues.

### US-053 · Rechercher rapidement

En tant que agent Habitat, je veux rechercher une commune depuis n’importe quelle vue afin de accéder à sa fiche sans revenir à la carte.

**P0 · S1 · Front espaces** · dépendances : US-005 · estimation à faire

**Critères d’acceptation**

- [ ] Recherche accessible depuis un bouton et un raccourci documenté.
- [ ] Résultats filtrés par droits, navigation clavier, recherche insensible aux accents.
- [ ] Dialogue fermé restaure le focus ; absence de résultat ne bloque pas la navigation.

### US-054 · Retrouver une vue favorite

En tant que agent Habitat, je veux enregistrer une consultation favorite afin de reprendre mes analyses récurrentes.

**P2 · S3 · Front espaces + Back API** · dépendances : US-019 · estimation à faire

**Critères d’acceptation**

- [ ] Nom, périmètre et filtres stockés ; favoris propres au compte.
- [ ] Une commune devenue inaccessible est signalée puis retirée de la restauration.
- [ ] Modification et suppression n’altèrent pas les données consultées.

### US-055 · Consulter deux périodes côte à côte

En tant que agent Habitat, je veux comparer visuellement deux périodes sur la carte afin de repérer les évolutions géographiques.

**P2 · S4 · Front cartographie + Front dataviz** · dépendances : US-013, EN-12 · estimation à faire

**Critères d’acceptation**

- [ ] Deux cartes partagent zoom, centre et classification ; années identifiées.
- [ ] Séparateur déplaçable au clavier et au tactile, avec mode côte à côte équivalent.
- [ ] Différences de méthode ou couverture signalées avant une lecture des écarts.

### US-056 · Conserver mes préférences de lecture

En tant que utilisateur, je veux conserver les couches et préférences de présentation afin de retrouver un environnement adapté à mes usages.

**P2 · S3 · Front espaces** · dépendances : US-019, US-039 · estimation à faire

**Critères d’acceptation**

- [ ] Préférences non sensibles restaurées sans dépasser les droits actuels.
- [ ] Préférence système de réduction des mouvements respectée en priorité.
- [ ] Une sauvegarde impossible ne bloque pas la consultation ; reset disponible.

## E15 · Tableaux de bord et indicateurs du service

Piloter l’observatoire et le travail du service.

### US-057 · Lire la synthèse territoriale

En tant que agent Habitat, je veux retrouver une synthèse du territoire afin de identifier les sujets à examiner en priorité.

**P1 · S2 · Front dataviz + Back données** · dépendances : EN-12, US-033 · estimation à faire

**Critères d’acceptation**

- [ ] Indicateurs agrégés calculés par méthode documentée, avec leurs dates.
- [ ] Le tableau de bord dirige vers les communes ou sources concernées.
- [ ] Un sous-ensemble ne se présente pas comme un total des 32 communes.

### US-058 · Repérer les données à vérifier

En tant que agent Habitat, je veux voir les anomalies prioritaires afin de concentrer les corrections sur les informations utiles.

**P1 · S3 · Front données + Back données** · dépendances : US-035, US-036 · estimation à faire

**Critères d’acceptation**

- [ ] Anomalies filtrées par source, commune et gravité méthodologique.
- [ ] Résolution nécessite une action ou justification tracée.
- [ ] Les anomalies ne sont pas masquées par un indicateur global de succès.

### US-059 · Suivre l’activité du service

En tant que responsable Habitat, je veux suivre les demandes et délais réellement observés afin de adapter l’organisation du travail.

**P2 · S4 · Front dataviz + Back API** · dépendances : US-023 · estimation à faire

**Critères d’acceptation**

- [ ] Volumes et délais fondés sur événements horodatés, avec règles de jours ouvrés définies.
- [ ] Demandes non répondues comptées séparément ; pas de moyenne qui les efface.
- [ ] Objectifs de délai validés et observés distingués.

### US-060 · Préparer le conseil communautaire

En tant que agent Habitat, je veux assembler des sections validées pour un conseil afin de produire une synthèse au périmètre pertinent.

**P1 · S5 · Front rapports + Back IA** · dépendances : US-027, US-059 · estimation à faire

**Critères d’acceptation**

- [ ] Sections choisies depuis des versions compatibles et validées.
- [ ] Périodes hétérogènes signalées ; références conservées pour chaque chiffre.
- [ ] L’assemblage final est relu et validé avant diffusion.

## E16 · Recette, exploitation et transmission

Livrer un service qu’un tiers peut reprendre.

### US-061 · Vérifier les parcours livrés

En tant que représentant du client, je veux recetter les parcours au regard des engagements afin de savoir ce qui est effectivement livré.

**P0 · S5 · Projet + tous les fronts** · dépendances : EN-07, EN-21 · estimation à faire

**Critères d’acceptation**

- [ ] Scénarios nominaux, variantes, erreurs, droits et retours documentés.
- [ ] Recette exécutée sur l’environnement intégré avec données de test identifiées.
- [ ] Écart entre proposition, mock et intégré consigné sans prétendre qu’une maquette est une livraison.

### US-062 · Reprendre l’outil

En tant que exploitant mutualisé, je veux redémarrer et alimenter l’application avec la documentation afin de assurer sa continuité après le projet.

**P0 · S5 · Plateforme + Back données** · dépendances : EN-22 · estimation à faire

**Critères d’acceptation**

- [ ] Un tiers démarre l’environnement en moins de 30 minutes selon une procédure testée.
- [ ] Documentation des sources, secrets, sauvegardes et procédures de reprise.
- [ ] Chaque décision structurante et contrat d’API est versionné.

### US-063 · Diagnostiquer une panne

En tant que exploitant mutualisé, je veux retrouver les traces d’une requête ou d’un import afin de résoudre un incident sans reproduire toute la consultation.

**P0 · S4 · Plateforme + Back API** · dépendances : EN-23 · estimation à faire

**Critères d’acceptation**

- [ ] Identifiant de corrélation entre navigateur, API et job ; logs sans secrets ni données inutiles.
- [ ] Panne de source et panne applicative distinguées.
- [ ] Procédure permet rollback et reprise ; dernière donnée valide identifiable.

### US-064 · Restaurer une sauvegarde

En tant que exploitant mutualisé, je veux restaurer les données et versions publiées afin de récupérer le service après un incident.

**P0 · S5 · Plateforme** · dépendances : EN-24 · estimation à faire

**Critères d’acceptation**

- [ ] Sauvegarde et restauration testées dans un environnement isolé.
- [ ] Rapports, validations et rattachements de sources conservés.
- [ ] Temps observés et pertes possibles documentés ; aucune promesse non mesurée.

## E17 · Quartiers délimités et rues sélectionnables

Explorer Croix à partir de référentiels géographiques traçables, du quartier à la rue.

### US-071 · Publier un référentiel de quartiers

En tant que agent Habitat habilité, je veux importer, vérifier puis publier un découpage géographique afin de maintenir une carte fiable.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : aucune · estimation à faire

**Critères d’acceptation**

- [ ] Import GeoJSON avec identifiants, noms, source, licence et date ; contrôles de géométrie, projection, périmètre, doublons, recouvrements et lacunes.
- [ ] Aperçu en brouillon et liste des anomalies ; les lacunes et recouvrements doivent être corrigés ou explicitement justifiés avant publication.
- [ ] Publication crée une version atomique, trace auteur et date, préserve la version précédente et permet sa restauration ; aucun dessin manuel n’est présenté comme officiel.

### US-072 · Contrôler le réseau de rues

En tant que agent Habitat habilité, je veux vérifier les rues et leurs relations avec les quartiers afin de fiabiliser la recherche et la navigation.

**P0 · S2 · Front cartographie + Back géospatial + Data** · dépendances : US-071 · estimation à faire

**Critères d’acceptation**

- [ ] Le réseau conserve identifiants de rue et de tronçon, nom, géométrie linéaire, source, licence, date et commune.
- [ ] Les intersections géographiques produisent une relation plusieurs-à-plusieurs quartier/rue ; les rues sans nom ou non affectées restent contrôlables.
- [ ] Un rapport compare versions, signale rues ajoutées/retirées/modifiées et permet de publier le réseau avec le découpage cohérent.

## Travaux techniques / enablers

Ces items sont nécessaires mais ne sont pas déguisés en besoins utilisateur.

### EN-01 · Contrat API initial

Définir indicateurs, qualités, rôles, erreurs, pagination et exemples avant de brancher les vues.

**S1 · Plateforme + Back + Front** · dépendances : aucune

- [ ] OpenAPI versionné, relu par Front et Back.
- [ ] Exemples normal, missing, suppressed, 403 et 503 valides contre le schéma.
- [ ] Changement cassant proposé et versionné avant implémentation.

### EN-02 · Session et identité mockées

Fournir un utilisateur et ses périmètres par une route commune.

**S1 · Plateforme + Back API** · dépendances : EN-01

- [ ] GET /me cohérent avec les rôles.
- [ ] Mock séparé du contrôle réel serveur.
- [ ] Aucun secret ni mot de passe réel dans les fixtures.

### EN-03 · Adaptateur de données front

Brancher un même contrat sur fixtures puis API réelle.

**S1 · Front + Plateforme** · dépendances : EN-01

- [ ] Mode fixture et mode API explicites.
- [ ] Annulation ou latest-wins en cas de changement rapide.
- [ ] Scénarios de panne reproductibles sans modifier les composants.

### EN-04 · Tokens et composants accessibles

Extraire charte, états, focus, cibles et composants structurants.

**S1 · Front** · dépendances : aucune

- [ ] Inter et couleurs institutionnelles conservées.
- [ ] Navigation, dialogue, champ et états partagés.
- [ ] Documentation desktop/mobile avec variantes.

### EN-05 · Contrat de motion

Définir les transitions et règles d’annulation avant de multiplier les animations.

**S1 · Front dataviz** · dépendances : EN-04

- [ ] Durées, easing, ordre et réduction des mouvements documentés.
- [ ] Animations interrompues sans écraser l’état courant.
- [ ] Budget de performance observé et rapporté sur un appareil de référence.

### EN-06 · Référentiel communal

Constituer un pivot communal unique et une table d’aliases.

**S1 · Back données** · dépendances : aucune

- [ ] Les 32 libellés fictifs sont normalisés ; un territoire pilote réel est choisi pour tester les sources, sans correspondance géographique inventée.
- [ ] Codes du territoire pilote vérifiés et stockés en texte ; aliases pédagogiques, versions et périmètres explicités.
- [ ] Aucune assimilation quartier/commune.

### EN-07 · Squelette intégré et CI/CD

Déployer une chaîne base → API → front.

**S1 · Plateforme** · dépendances : EN-01

- [ ] Lint, tests, contrat et build contrôlés.
- [ ] Une première donnée réelle traverse toutes les couches.
- [ ] CI rouge bloque la fusion ; démonstration sur l’environnement intégré.

### EN-08 · Ingestion DVF

Charger, dédupliquer et normaliser les mutations.

**S2 · Back ventes** · dépendances : EN-06

- [ ] Brut conservé en staging et transformations traçables.
- [ ] Mutations multi-lots et dépendances traitées explicitement.
- [ ] Import rejouable sans doublon et millésimes corrigés supportés.

### EN-09 · Ingestion DPE

Charger les diagnostics et définir le périmètre analytique.

**S2 · Back énergie** · dépendances : EN-06

- [ ] Méthode, dates et identifiants de déduplication documentés.
- [ ] Ruptures de méthode visibles dans les séries.
- [ ] Numérateur, dénominateur et couverture contrôlés.

### EN-10 · Ingestion risques

Récupérer les aléas et arrêtés par commune.

**S2 · Back risques** · dépendances : EN-06

- [ ] Pagination, quotas, retry borné et absence de réponse traités.
- [ ] Aléa et sinistre séparés.
- [ ] Données et import horodatés, dernière version valide conservée.

### EN-11 · Orchestration des imports

Rendre les jobs idempotents, observables et reprenables.

**S2 · Back + Plateforme** · dépendances : EN-08, EN-09, EN-10

- [ ] Point de reprise et verrous de concurrence.
- [ ] Échec partiel ne détruit pas les agrégats valides.
- [ ] État des jobs accessible à l’exploitation.

### EN-12 · Agrégats et séries

Pré-agréger les mesures par maille et période.

**S2 · Back données** · dépendances : EN-08, EN-09, EN-10

- [ ] Méthodes de pondération documentées.
- [ ] Séries avec lacunes et codes de qualité.
- [ ] Département hors agglo calculé selon même définition, sans moyenne naïve de ratios.

### EN-13 · Persistance des demandes

Stocker demandes, contextes et transitions.

**S2 · Back API** · dépendances : EN-01

- [ ] Clé d’idempotence et périmètres vérifiés.
- [ ] Transitions journalisées.
- [ ] Données minimales, pas de copie de chiffres sans version de source.

### EN-14 · Autorisations serveur

Contrôler toutes les lectures et mutations par rôle et territoire.

**S3 · Back API** · dépendances : EN-02

- [ ] Tests de lecture d’une commune voisine refusée au maire.
- [ ] Élu en lecture seule ; brouillons non diffusés absents des réponses.
- [ ] Exports, liens et jobs contrôlés au même niveau.

### EN-15 · Politique de diffusion

Faire valider mailles, petits effectifs et périmètres.

**S2 · Projet + client + Back** · dépendances : EN-06

- [ ] Décisions versionnées, propriétaire identifié.
- [ ] Seuils et exceptions justifiés, sans affirmation réglementaire non sourcée.
- [ ] Règles identiques dans API, carte, rapport et export.

### EN-16 · Génération IA et snapshots

Créer un pipeline de brouillons ancrés dans les données.

**S4 · Back IA** · dépendances : EN-12, EN-15

- [ ] Pas d’appel IA avec données brutes inutiles.
- [ ] Modèle, prompt, snapshot et génération tracés.
- [ ] Échec, timeout et retry contrôlés ; aucun brouillon diffusé.

### EN-17 · Politique de publication publique

Résoudre la tension transparence / périmètre politique avant ouverture citoyenne.

**S3 · Projet + client** · dépendances : EN-15

- [ ] Liste des données publiables et responsables de validation.
- [ ] Règles stables et factuelles plutôt qu’une sélection opportuniste de chiffres.
- [ ] Diffusion publique distincte des droits internes.

### EN-18 · Géométries multi-mailles

Fournir géométries officielles adaptées au rendu et au zoom.

**S3 · Back données + Front cartographie** · dépendances : EN-06

- [ ] Versions, projections et clés de jointure documentées.
- [ ] Simplification conserve la topologie utile.
- [ ] Géométries synthétiques de la maquette jamais publiées comme réelles.

### EN-19 · Données OPAH

Identifier les données opérationnelles et leur propriétaire.

**S3 · Projet + Back données** · dépendances : EN-15

- [ ] Objectifs, réalisations, dates, périmètres et responsables disponibles.
- [ ] Accès et fréquence de mise à jour confirmés.
- [ ] Absence de source bloque le développement de mesures supposées.

### EN-20 · Données foncières / ZAN

Obtenir un jeu et une méthode de trajectoire foncière validés.

**S3 · Projet + Back données** · dépendances : EN-15

- [ ] Source, période et définition du foncier confirmées.
- [ ] Lien avec SCOT/PLH documenté par propriétaire métier.
- [ ] Aucun proxy DVF pour une mesure ZAN.

### EN-21 · Tests de contrat et parcours

Vérifier les interfaces et scénarios critiques dans la CI.

**S3 · Plateforme + tous** · dépendances : EN-07

- [ ] Tests consumer/provider et validation schéma.
- [ ] Tests réels auth, navigation, demande, relecture, publication et export.
- [ ] Erreurs, accès refusés, petits effectifs et rechargements couverts.

### EN-22 · Documentation de reprise

Écrire et éprouver le guide de démarrage et d’exploitation.

**S5 · Tous + Plateforme** · dépendances : EN-07, EN-11

- [ ] README, ADRs, OpenAPI, runbook d’import et diagnostic.
- [ ] Test de reprise par une personne extérieure.
- [ ] Écarts et éléments non livrés explicités.

### EN-23 · Performance et observabilité

Mesurer API, imports, carte et animation sur un contexte de référence.

**S4 · Plateforme + tous** · dépendances : EN-07, EN-12

- [ ] Appareil, navigateur, taille du jeu et réseau documentés.
- [ ] Temps p95, payloads et frames mesurés avant/après.
- [ ] Pagination, caches et réduction de géométrie justifiés par mesures.

### EN-24 · Hébergement France et sauvegardes

Proposer une exploitation compatible avec la contrainte client.

**S1 · Plateforme + Projet** · dépendances : aucune

- [ ] Localisation des données, sauvegardes et prestataires documentée.
- [ ] Restauration répétable et testée avant recette finale.
- [ ] Secrets hors dépôt et procédure de rotation.

## Sources de cadrage

- Expression de besoin, septembre 2026 : besoin métier, périmètres, hébergement, reprise, échéance.
- Classeur Suivi_habitat_V4_definitif_ND_2.xlsx : anomalies et cas de test.
- Charte Val d’Aubrelle 2026 : identité et exigences d’accessibilité.
- Support Coordination Front & Back M2 : organisation, sprints, contrat, CI/CD, tests et soutenance.
- Prototype initial : référence conservée, non assimilée à un arbitrage client validé.
- Demande de Pierre du 6 octobre : ambition maximale et intégration front exigeante.
