Livrable 26
Risques et arbitrages
Gravité qualitative. Pas de probabilité chiffrée.
| Id | Risque | Gravité | Parade |
|---|---|---|---|
| R1 | Cold start : ville vide ou, pire, fiches inventées | critique | Sources autorisées seulement ; empty states ; pas de seed « réaliste » |
| R2 | Licence données (BAN, OSM, open data) mal lue | critique | terms_note obligatoire avant publish ; LEGAL |
| R3 | PostGIS absent en prod réelle | haute | GeoStore double chemin ; ne pas documenter ST_* comme actif |
| R4 | Tuiles utilisées contre leurs CGU | haute | Pas de fond de carte tant qu'un fournisseur n'est pas accepté |
| R5 | « Live » perçu comme foule ou websocket | haute | Définitions UI ; City Pulse off |
| R6 | Ranking vendu | haute | Test : plan payant ≠ ordre ; slots séparés |
| R7 | LLM invente un lieu | haute | Le modèle ne fournit pas les entités |
| R8 | Claim frauduleux | haute | Pas de publish public avant APPROVED ; revue humaine |
| R9 | Alcool / pub | haute | Flag off ; LEGAL REVIEW REQUIRED |
| R10 | IDOR multi-ville ou multi-lieu | haute | Tests de scope |
| R11 | UGC illicite | moyenne au MVP (avis off) | Signalements + modération avant d'ouvrir les avis |
| R12 | Thin SEO | haute | noindex si vide ; pas de combinatoire |
| R13 | Vercel : jobs et SSE | moyenne | Expiration aussi à la lecture ; poll plutôt que socket |
| R14 | Redis absent : rate limit permissif | moyenne | Limite edge ou Redis avant prod ouverte ; THIRD-PARTY |
| R15 | Coûts cartes / IA | moyenne | Quotas, pas d'appel IA sans geste, PMTiles préféré au geste payant |
| R16 | Documents d'identité | haute | Minimisation, accès audit, revue juridique |
| R17 | DST / après minuit faux | moyenne | Tests horaires dédiés |
| R18 | Attente « comme Google » sur tout le Loiret | moyenne | Périmètre affiché ; pas de POI fantôme |
| R19 | Dark patterns commerciaux | moyenne | Liste d'interdits + revue UI |
| R20 | Dépendance à une seule ville codée en dur | haute | Revue de code : pas de constante métier Orléans |
| R21 | Analytics sans consentement | haute | Off par défaut au-delà du nécessaire |
| R22 | Suppression compte incomplète | moyenne | Plan privacy avant launch comptes réels |
| R23 | Fausse fraîcheur (job en retard) | moyenne | Filtre à la lecture, job en plus |
| R24 | Partenariat annoncé à tort | haute | Aucun logo partenaire sans contrat |
Revue critique — arbitrée
Les contradictions ouvertes sont closes dans l'index (A1–A8). Rappel court :
1. Nightlife on ≠ legal_gates.alcohol_ads off. 2. /carte noindex. Landings temporelles et fiches portent le SEO. Pas de /quartiers. 3. Héros texte Maintenant / Ce soir. La carte n'est pas le LCP. 4. Recherche, Maintenant, Carte persistants. Au plus 4 puces. Elles ne réordonnent pas les ancrages. 5. Next.js écrit au prompt, TanStack Start ici. ADR-003. 6. Une app, trois zones de routes. 7. 2FA admin obligatoire avant prod réelle. 2FA pro optionnelle. Personne ne publie avant claim approuvé. 8. Fenêtres dans time_windows. Semaine ISO côté DNA, 0 = lundi côté horaires. 9. Pas d'ISR. Cache HTTP. 10. Centroïde null tant que non saisi. 11. Organique intact si une campagne existe. Quota free ≠ expulsion de Now. 12. closed_until n'est pas une expiration. 13. Signalement OPEN sans badge public.
Risque résiduel accepté
La première démo peut être vide. C'est préférable à une ville fictive.