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é ouvert | Aujourd'hui |
|---|---|
Archiver les blocs patterns/workflow/ui/preview/blocks/ orphelins | Fait — src/components/patterns/workflow/ n'existe plus |
collaborative-planner ou compact-planner | Tranché — 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 6 | Tranché — CodeMirror : zéro occurrence de monaco dans package.json, @codemirror/* installé |
Q7 — créer un AGENTS.md | Fait — il existe à la racine |
| Q2 — la page de mot de passe des boutiques de développement casse l'iframe | Traité — src/app/api/preview/proxy/route.ts |
| Q3 — limite de 20 thèmes Shopify | Traité autrement — le pool est DevStorePool au niveau de la boutique, pas des thèmes |
| Q5 — backoff 429 sur GraphQL | Partiel — features/ai/tools/theme-tools.ts le gère, le client features/shopify/ non |
Q6 — shell-client.tsx > 600 lignes | Ouvert, et pire — 1 283 lignes, aucun ShellTopBar / ShellSidebars / ShellModals |
| Q1 — comment v0 persiste ses snapshots | Ouvert — 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
| Document | Sujet | Quand le consulter |
|---|---|---|
| architecture.md | Panneaux du Workspace + inventaire du code existant | Comprendre la cible UI et les zones de réutilisation |
| stack.md | Stack technique 2026+ (versioning, AI SDK, Monaco, MCP, GraphQL, preview, tasks, terminal) | Choix techniques par bloc |
| data-model.md | Schémas Prisma à créer + vérification croisée du schéma actuel | Avant les migrations de base |
| tools-shopify.md | Outils Shopify à encapsuler (couche de connaissance @Atlas) | Lot 1 : encapsulation exhaustive de GraphQL |
| execution-plan.md | Lots ordonnés (Lot 1 → 7) + définition de terminé | Planification des sprints |
| tips-hacks.md | 25 angles cachés 2026+ + AGENTS.md du dépôt | Affiner l'expérience produit |
| migration-rollout.md | Chemin de migration + 7 scénarios de validation | Avant la bêta / la GA |
| operations.md | Revue de sécurité + budgets de performance et SLO + risques et reprise après sinistre | Avant lancement, audits, revue d'incident |
| research-summary.md | Synthèse de la recherche + sources canoniques | Justifier 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-planneroucompact-plannerest 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 :
- 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.
- 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.
- 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.
- Bundle Monaco 5–10 MB : accepter, ou se replier sur CodeMirror 6 (300 KB). Décision : mesurer en V1, adapter selon les retours.
- Coût GraphQL et limite de débit :
themeFilesUpsertsur 50 fichiers ≈ 100+ points de coût. File et backoff sur 429 obligatoires. - Shell-client.tsx > 600 lignes : découpage en sous-composants
(
ShellTopBar,ShellSidebars,ShellModals) avant Lot 4 pour ne pas hériter de la complexité. AGENTS.mddu dépôt (Cursor / OpenAI Codex / agents Vercel) : pertinent à créer pour informer les futurs agents IA des conventions. À évaluer.
Suivant : architecture.md