ADRADR-0043 · Le plan C (agence) est retire

ADR-0043 — Le plan C (agence) est retire : BoostEcom ne produit pas pour des marques clientes

Remplace l'ADR 0004. Restreint, sans les revoquer, les ADR 0013, 0017, 0024 et 0026 : ce qu'ils disent des plans A et B reste vrai, ce qu'ils disent d'une marque cliente de l'agence ne s'applique plus a rien.

Statut

Accepté · 2026-09-26

Remplace : ADR-0004 ; restreint 0013, 0017, 0024 et 0026 (la moitie « marque cliente » de chacun)

Piliers : app-shell, security-identity, ai-platform, design-system, growth-web, data-platform, platform-ops

Remplace l'ADR 0004. Restreint, sans les revoquer, les ADR 0013, 0017, 0024 et 0026 : ce qu'ils disent des plans A et B reste vrai, ce qu'ils disent d'une marque cliente de l'agence ne s'applique plus a rien.

Contexte

Trois usages de la production creative coexistaient dans le depot :

  • plan A : le contenu Growth de BoostEcom lui-meme, produit dans le Studio interne /ops/creative/studio(/[storeId]), gate par platform.creative.review, avec Remotion sous creative/ ;
  • plan B : le Studio d'un marchand pour SA boutique (le mode studio de /[orgSlug]/[storeSlug], facture en credits, StudioAsset) ;
  • plan C : une agence de production creative vendue a des marques externes. Pipeline de prospection (Prospect, ProspectEvent), portefeuille client et gate Go/No-Go (colonnes de production sur Store), cadence et livraisons (StudioDrop, cron creative-drop-tick, job open-creative-drop), livraison publique par jeton (/drop/[token]), le Studio d'organisation /[orgSlug]/~/studio/**, les pages /ops/creative/{pipeline,clients} et les brand kits sous creative/brand/clients/.

Le 2026-09-26, decision finale : BoostEcom n'a ni agence ni client externe. Aucune marque n'a jamais recu de drop. Le plan C portait un modele de donnees, un cron, une surface publique par jeton, cinq outils @Atlas et une dizaine de permissions pour un metier qui n'existe pas, et chaque garde, chaque traduction et chaque audit le payaient.

Décision

Le plan C est retire du produit. Il ne reste que les plans A et B, inchanges.

Ce qui part : les pages /[orgSlug]/~/studio/**, /ops/creative/pipeline, /ops/creative/clients, /drop/[token] ; le cron creative-drop-tick et le job open-creative-drop ; la route agency-bootstrap ; les modeles Prisma StudioDrop, Prospect, ProspectEvent, leurs enums, la cadence et les colonnes de gate de production sur Store ; les permissions agency.prospect.*, agency.client.*, agency.cadence.manage, studio.drop.*, studio.gate.read et les presets sales / client_ops ; les outils getStudioPipeline, getStudioClientGates, publishStudioDrop, qualifyStudioProspect, setStudioProspectStatus ; creative/brand/clients/.

Ce qui reste, par decision explicite :

  1. La file de QC /ops/creative/qc, re-cadree comme la revue des assets Growth avant publication Postiz. agency.qc.review et agency.economics.read restent : l'ADR 0013 a nomme agency.* « ce que BoostEcom FAIT », et juger sa propre production en fait toujours partie.
  2. Les concepts (CreativeConcept, CreativeLearning, /ops/creative/concepts, studio.concept.*) comme briefs d'angle Growth. Seul leur rattachement a un client disparait. CreativeLearning est lu par Growth (src/services/growth/creator-intelligence.ts).

Alternatives écartées

OptionPourquoi non
Garder le plan C derriere un feature flagUn flag garde le cout (gardes, traductions, schema, cron) sans le revenu, et le jeton /drop resterait une surface publique a defendre.
Tout supprimer, QC et concepts comprisLa QC et les concepts servent le plan A. Demande de ne rien nettoyer « qui pourrait servir ailleurs ».
Supprimer aussi les tables en baseLe schema guard est additif : retirer un modele laisse la table. Un DROP est une action operateur deliberee, jamais un effet de bord d'une PR.

Conséquences

  • Les tables StudioDrop, Prospect, ProspectEvent et les colonnes retirees de Store restent orphelines en base. Leur DROP est une action operateur ulterieure, deliberee (pnpm db:deploy apres sauvegarde), suivie dans backlog/app-shell/3028.
  • Les liens /drop/<jeton> deja envoyes existent dans des boites mail : le proxy garde /drop dans les racines « URL a capacite », robots et l'analytique IA continuent de ne jamais le lire ni le tracer, et le slug drop reste reserve. La page, elle, rend 404.
  • Les ADR 0004, 0013, 0017, 0024 et 0026 ne sont pas reecrits (immuables). 0004 passe superseded by 0043 ; les autres restent accepted pour leur moitie plans A et B.
  • clientBrandsFor (le chemin « marque cliente » du montage interne de l'ADR 0026) est garde pour l'instant et signale au proprietaire.
  • Signal de revisite : un premier contrat de production signe avec une marque externe. Il reouvrirait la question par un nouvel ADR, pas par la restauration de ce code.