Livrable 05
IA City OS
Dense, filtrable, actions de masse, journal d'audit. Pas le style consumer.
Rôles d'interface
| Espace | Qui | Scope |
|---|---|---|
/admin | SUPER_ADMIN, SUPPORT | toutes villes, billing, users, flags globaux |
/city/:cityId | CITY_MANAGER, EDITOR, MODERATOR | une ville |
Le contrôle d'accès est serveur. Masquer un lien n'est pas une sécurité.
City Manager
- City DNA (brouillon / publié, versionné)
- Zones (géométrie, nom, slug, type)
- Navigation contextuelle
- Catégories et priorités
- Contenus mis en avant — rail « Sélection locale » (
editorial_picks), module propre, jamais un terme du ranking organique. Rail vide = module absent. Flageditorial_rail. - Sources de données et qualité
- Modération (signalements)
- SEO de la ville (title, description, pas de pages vides)
- Partenariats : fiches de suivi sans prétendre qu'un contrat existe
- Checklist de lancement
- Intelligence : couverture, données stales, lieux non revendiqués, recherches sans résultat, catégories consultées, couverture événements, activité par zone (numérique)
Super admin
Villes, utilisateurs, comptes pro, facturation, permissions, modération transversale, configuration système, feature flags, audit, coûts externes si un jour branchés (cartes, IA) — affichés seulement si le fournisseur les rapporte. Pas d'estimation inventée.
File de modération
Raisons : wrong_info · closed_business · event_cancelled · spam · impersonation · illegal_content.
États : OPEN → TRIAGED → UNDER_REVIEW → RESOLVED | REJECTED.
Revues humaines
Conflits d'entity resolution → file human_review. Claims → file dédiée. Imports → preview, erreurs explicites, pas d'import partiel silencieux.
Décisions
D1 — DNA versionnée
- Choix : chaque publication de City DNA écrit une version (
city_dna_versions) et un audit before/after. - Alternatives : édition directe sans historique ; DNA dans le code.
- Risques : un mauvais publish casse la nav d'une ville.
draft,publish, etPOST /city/:cityId/dna/rollbackvers une version encore en base. L'audit garde before/after. - Multi-ville : un super admin crée une ville ; le city manager ne voit pas les autres.
D2 — Qualité visible
Tableau : lieux sans horaire, événements sans source, objets STALE, recherches à zéro résultat (compteur réel, anonymisé).
Pas de score unique « santé 87/100 » présenté comme science. Des comptes et des définitions.
D3 — Bulk
Import CSV/JSON : validation de schéma, rapport d'erreurs ligne à ligne, commit seulement si l'opérateur confirme un lot sans erreur bloquante. Mode « importer les lignes valides » existe mais doit être explicite, jamais par défaut silencieux.
Flags
- Seuils de lancement (« assez de lieux ») : critères qualitatifs dans la checklist. Tout nombre plancher est une décision de lancement à documenter au moment des données, pas une constante inventée ici.
- Export admin : journaliser l'export (audit), minimiser les PII.