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-villenoindex, 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
GeoStorehaversine + 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é.