Canvas (archive de conception)Canvas — plan d'exécution (archive de conception, mai 2026)

Canvas : plan d'exécution (archive de conception, mai 2026)

Ce que ces dix pages sont : le plan de refonte du canvas BoostEcom, écrit avant l'implémentation (lots exécutables inspirés de v0.dev, Cursor, Linear et de la stack Vercel), plus l'audit du code d'alors et la recherche 2026+.

Ce que ces dix pages sont : le plan de refonte du canvas BoostEcom, écrit avant l'implémentation (lots exécutables inspirés de v0.dev, Cursor, Linear et de la stack Vercel), plus l'audit du code d'alors et la recherche 2026+.

Ce qu'elles ne sont pas : une description du code d'aujourd'hui. Elles se lisent comme une architecture, avec des « Schémas à créer », des « 🔴 bloquant » et des questions ouvertes ; presque tout cela a été tranché depuis. Chaque page porte le même bandeau, parce que le lecteur qui arrive ici arrive rarement par cette première page.

Pourquoi le dire plutôt que réécrire : un plan raconte ce qui était visé, et le réécrire le falsifie. Même convention que docs/architecture/agentic-stack.md, l'autre instantané de mai (ai-platform/0058).

Historique de nommage : ces docs ont d'abord été écrits sous le nom « Workspace V2 » ; le concept est devenu le canvas (unique surface à /[org]/[store] depuis la session 2026-05-12). Les références « workspace » plus bas sont conservées telles quelles ; le code en production ne porte plus ce nom.


Ce que le plan de mai laissait ouvert, et où ça en est

Vérifié le 2026-08-28, chemin par chemin. Ni la section 8 ni la section 9 n'ont été réécrites : elles restent ci-dessous telles qu'écrites, et ce tableau dit ce qu'elles valent aujourd'hui.

Point laissé ouvertAujourd'hui
Archiver les blocs patterns/workflow/ui/preview/blocks/ orphelinsFait — src/components/patterns/workflow/ n'existe plus
collaborative-planner ou compact-plannerTranché — collaborative-planner conservé, compact-planner supprimé
Archiver la page [storeSlug]/workflow (shell vide)Fait — 19 lignes, un redirect() vers l'aperçu de la boutique, marquée DEPRECATED
Q4 — Monaco 5–10 MB ou CodeMirror 6Tranché — CodeMirror : zéro occurrence de monaco dans package.json, @codemirror/* installé
Q7 — créer un AGENTS.mdFait — il existe à la racine
Q2 — la page de mot de passe des boutiques de développement casse l'iframeTraité — src/app/api/preview/proxy/route.ts
Q3 — limite de 20 thèmes ShopifyTraité autrement — le pool est DevStorePool au niveau de la boutique, pas des thèmes
Q5 — backoff 429 sur GraphQLPartiel — features/ai/tools/theme-tools.ts le gère, le client features/shopify/ non
Q6 — shell-client.tsx > 600 lignesOuvert, et pire — 1 283 lignes, aucun ShellTopBar / ShellSidebars / ShellModals
Q1 — comment v0 persiste ses snapshotsOuvert — aucune source publique ; ThemeVersion existe au schéma et tient le versioning côté BoostEcom

Deux seulement restent réellement ouverts, Q6 et Q5, et Q6 a doublé de taille pendant que la page la présentait comme un point mineur.


1. Vision produit

BoostEcom est le Cursor / Claude / v0 de l'e-commerce sur Shopify. Pas un outil de plus dans la stack du marchand, la plateforme où il vit.

Shopify reste le système de référence (catalogue, paiement, expédition). BoostEcom apporte la couche d'exploitation : édition, audit, automatisation, veille concurrentielle par scraping, distribution, design, SEO/GEO, opérations, tout ce que Shopify ne fait pas encore.

Ligne directrice

Centralité — catalogue + design + distribution + ads + email + SEO + audit + concurrents + ops, dans une seule UI conversationnelle augmentée d'un IDE. L'extérieur c'est Shopify. Le reste c'est nous.

L'utilisateur passe son temps sur la plateforme. Il ne sort pas.


Aperçu de l'architecture

┌──────────────────────────────────────────────────────────────────┐
│ Top du shell (existant) : org / store / iRen                     │
├──────────┬─────────────────────────────────────┬─────────────────┤
│          │ ┌─────────────────────────────────┐ │                 │
│ Left     │ │ Top header du main center       │ │   Right panel   │
│ panel    │ │ • storefront URL bar            │ │                 │
│          │ │ • action buttons                │ │   Chat @Atlas    │
│ Kernel   │ │ • view toggle: Preview/Worktree │ │   (déjà shipped)│
│          │ │ • version timeline badge        │ │                 │
│ • Tasks  │ ├─────────────────────────────────┤ │                 │
│ • Files  │ │ Center main (switchable)        │ │                 │
│ • Branch │ │ ┌───────────────────────────┐   │ │                 │
│ • Reports│ │ │ Live preview (iframe)     │   │ │                 │
│ • Notes  │ │ │ OR                        │   │ │                 │
│          │ │ │ Worktree (file tree+IDE)  │   │ │                 │
│          │ │ └───────────────────────────┘   │ │                 │
│          │ ├─────────────────────────────────┤ │                 │
│          │ │ Bottom footer du main center    │ │                 │
│          │ │ • Terminal / Console            │ │                 │
│          │ └─────────────────────────────────┘ │                 │
└──────────┴─────────────────────────────────────┴─────────────────┘

Détails complets dans architecture.md.


Index des documents

DocumentSujetQuand le consulter
architecture.mdPanneaux du Workspace + inventaire du code existantComprendre la cible UI et les zones de réutilisation
stack.mdStack technique 2026+ (versioning, AI SDK, Monaco, MCP, GraphQL, preview, tasks, terminal)Choix techniques par bloc
data-model.mdSchémas Prisma à créer + vérification croisée du schéma actuelAvant les migrations de base
tools-shopify.mdOutils Shopify à encapsuler (couche de connaissance @Atlas)Lot 1 : encapsulation exhaustive de GraphQL
execution-plan.mdLots ordonnés (Lot 1 → 7) + définition de terminéPlanification des sprints
tips-hacks.md25 angles cachés 2026+ + AGENTS.md du dépôtAffiner l'expérience produit
migration-rollout.mdChemin de migration + 7 scénarios de validationAvant la bêta / la GA
operations.mdRevue de sécurité + budgets de performance et SLO + risques et reprise après sinistreAvant lancement, audits, revue d'incident
research-summary.mdSynthèse de la recherche + sources canoniquesJustifier les décisions

8. Nettoyage préparatoire effectué dans cette session

Aucun changement de code dans cette session de préparation.

Les agents d'audit et de recherche n'ont fait que lire. Le squelette du plan a été écrit dans WORKSPACE_V2_PLAN.md (ce document). Aucun changement cassant, aucun refactoring.

À faire dans la prochaine session, avant de lancer Lot 1 :

  • Décider si on archive les blocs src/components/patterns/workflow/ui/ preview/blocks/ orphelins après un audit d'usage
  • Décider si collaborative-planner ou compact-planner est conservé (ou les deux fusionnés en <TaskPlanner>)
  • Archiver / supprimer la page (dashboard)/[orgSlug]/[storeSlug]/ workflow/page.tsx (shell vide → AgentsMode())

9. Questions techniques ouvertes

À résoudre en cours de la prochaine session, non bloquant pour démarrer Lot 1 :

  1. Persistance des snapshots v0 : aucune source publique ne décrit précisément comment v0 stocke (DB ? Blob ? Git ?). Hypothèse : git natif dans le runtime du sandbox. À confirmer avant V2.
  2. Page de mot de passe des boutiques de développement : casse l'iframe de preview. Contournement par proxy Next.js à valider sur Valise Demo / Boutique Demo.
  3. Limite 20 thèmes Shopify : contraint la parallélisation. V1 séquentielle, V2 avec un pool de thèmes draft recyclés. Nettoyage automatique au-delà de 30 jours.
  4. Bundle Monaco 5–10 MB : accepter, ou se replier sur CodeMirror 6 (300 KB). Décision : mesurer en V1, adapter selon les retours.
  5. Coût GraphQL et limite de débit : themeFilesUpsert sur 50 fichiers ≈ 100+ points de coût. File et backoff sur 429 obligatoires.
  6. Shell-client.tsx > 600 lignes : découpage en sous-composants (ShellTopBar, ShellSidebars, ShellModals) avant Lot 4 pour ne pas hériter de la complexité.
  7. AGENTS.md du dépôt (Cursor / OpenAI Codex / agents Vercel) : pertinent à créer pour informer les futurs agents IA des conventions. À évaluer.

Suivant : architecture.md