Pilote Orléans · configuration, pas un fork · aucun lieu inventé

Livrable 30

Backlog

Ordre du prompt, recalé sur les ADR. Une ligne n'est DONE que si : fonctionnel, testé, responsive, accessible, sécurisé, états vide/erreur/chargement, permissions, doc à jour. Compiler n'est pas DONE.

Aucun code produit n'est démarré dans la phase qui écrit ce fichier.

Phase A — Socle

  • App unique, frontières domain/*
  • Config boot (secrets, détection PostGIS / trgm / FTS)
  • CI lint + typecheck
  • Ville fixture fixture-ville noindex, marquée fixture

Phase B — Identité

  • Auth opt-in, découverte sans compte
  • Rôles et memberships
  • Tests forbidden cross-city et cross-venue
  • Audit insert-only
  • 2FA admin avant prod (peut suivre en B2 si le pilote est fermé)

Phase C — City et géo

  • CRUD ville + DNA draft/publish/rollback
  • Zones sans géométrie puis avec GeoJSON
  • GeoStore haversine + branche PostGIS derrière détection
  • Nav : persistants + 4 puces, règles timezone
  • Wizard create city
  • Checklist de publish (cases, pas de quotas magiques)

Phase D — Lieux, events, offres

  • Horaires, overnight, exceptions, closed_until
  • Live update, event studio 3 étapes, offres
  • Alcool non public par défaut
  • Provenance sur chaque write
  • Médias : seulement quand le bucket existe ; sinon pas d'upload « local prod »

Phase E — Search, Now, Freshness

  • Politique de fraîcheur en table
  • Statuts à la lecture
  • /now /tonight /weekend
  • Recherche règles + FTS si dispo
  • Search gaps
  • Tests : expiré absent de Now ; pro verified bat l'import ; paiement absent du score

Phase F — UI client

  • Accueil héros temporel, modules vides omis
  • Liste et schéma de carte synchronisés
  • Tuiles seulement si provider configuré
  • Fiches, empty, error, skeletons
  • SEO SSR, noindex conditionnel, JSON-LD strict
  • a11y liste équivalente à la carte

Phase G — Pro

  • Claim workflow
  • Aujourd'hui sans faux zéros trompeurs
  • Publier, studio, offres
  • Stats = counts ou « pas encore de mesure »

Phase H — City OS

  • Qualité, modération, imports avec rapport d'erreurs
  • Revue de match
  • Audit visible

Phase I — CMS et SEO

  • Guides liés à des entités
  • Sitemap des indexables seulement

Phase J — Analytics

  • Taxonomie, consentement, agrégats
  • Dashboard pro branché sur ces tables seulement

Phase K — PWA

  • Shell offline honnête
  • Pas de push au MVP

Phase L — Planner (P1)

  • Intent règles
  • LLM optionnel borné
  • Alternatives
  • Mode nuit sans tracking

Ensuite

P1 monétisation (Stripe), campagnes étiquetées, notifications. P2 pulse, booking, groupe. Jamais en parallèle du socle E : ads, avis, API publique, natif.

Hors backlog volontaire

Microservices, Kafka, Kubernetes, blockchain, métavers, fidélité, agents autonomes, scraping non autorisé, prix hardcodés, partenaires fictifs, POI fictifs Orléans.

Critère de fin de phase architecture

Les 30 livrables existent, les ADR tranchent les contradictions, aucun établissement réel n'est inventé, les dépendances tierces sont nommées comme non contractées. L'implémentation peut commencer par la phase A quand ce corpus est accepté.