ArchitectureExperiences sur Shopify Rollouts

Experiences sur Shopify Rollouts

Item : backlog/commerce-systems/3084. Nous preparons et jugeons ; Shopify Rollouts repartit le trafic. Aucun moteur de repartition chez nous.

Item : backlog/commerce-systems/3084. Nous preparons et jugeons ; Shopify Rollouts repartit le trafic. Aucun moteur de repartition chez nous.

CoucheFichier
Contrat pur (tailles, bornes, verdicts)src/lib/experiments-contract.ts
Etat et transitionssrc/services/experiments/state.ts
Trafic (ShopifyQL puis pixel)src/services/experiments/traffic.ts
Garde-fou vitals (PSI apercu contre live)src/services/experiments/vitals.ts
Service (base, AuditLog)src/services/experiments/service.ts
Routessrc/app/api/stores/[storeId]/experiments/
Outils @Atlassrc/features/ai/tools/experiment-tools.ts
UIsrc/components/patterns/experiments/

Le cycle

  1. draft : hypothese, metrique, garde-fous, variante (theme brouillon ou branche). Faisabilite calculee ; au-dela de 12 semaines, refused, et une tache « changement verifie » est creee et liee par taskId (sourceKind: "experiment") : la terminer arme la re-mesure du lot 3.
  2. ready : pre-enregistrement (regards et taille figes).
  3. running : une variante (theme ou branche) est exigee, vitals verifies (seul un apercu redirige peut etre accepte « non mesurable »), lance dans Rollouts, « C'est lance ».
  4. Un regard par saisie du marchand, juge sur sa borne O'Brien-Fleming. Un agent ne fait que proposer des chiffres (pendingLook).
  5. concluded sur une borne franchie, un garde-fou casse ou le dernier regard. Conclure avant, c'est « non concluant ».

Chaque ecriture est optimiste : elle ne passe que si updatedAt n'a pas bouge depuis la lecture, sinon 409 conflict. Deux regards simultanes ne peuvent donc pas ecrire le meme index.

Outils agent : pas d'enregistrement ni de conclusion

Decision deliberee : un agent propose (proposeExperiment), estime (estimateExperimentFeasibility, rendue en jauge), liste et PRE-REMPLIT les chiffres d'un regard (prefillExperimentResults). Enregistrer un regard et conclure restent des clics du marchand sur la carte : un verdict engage la boutique, c'est la porte d'autonomie (ADR 0034). Pas d'outil conclude, meme en proposition : le seul verdict valide sort des regards pre-enregistres, qu'un clic du marchand declenche deja.

Lien depuis la tache

GET /api/stores/[storeId]/experiments rend la carte tache vers experience ; le hub d'activite du navigateur de boutique la charge quand on lui passe experimentsHref (garde : src/test/task-rows-link-their-experiment.test.ts).

Suite : Intelligems

Lire les resultats depuis le MCP Intelligems pour les marchands qui l'utilisent n'est pas fait : pas de compte de test, donc pas trivial ni verifiable. Suivi dans backlog/commerce-systems/3084 (section Suite).

La lecture du rollout par id attend une decision (backlog/commerce-systems/3085).