Checklist · Pronto per i primi 5 paganti (hard gate 10 Giu 2026)

Decisione founder 2026-05-12 notte: NON tagliamo scope. Si modifica "agli sgoccioli i dettagli" se necessario. Questa checklist definisce concretamente cosa deve funzionare per accettare il PRIMO pagamento Multiverbe.

Ogni sessione Claude futura DEVE:

  1. Aprire questa checklist all'inizio sessione
  2. Aggiornare % completion (X/N tasks done)
  3. Identificare next 3 tasks priority per progressione MVP
  4. Avvisare founder se rischio % bassa vs giorni rimanenti

🎯 Definition of Done · "Cliente paga e ottiene valore reale"

Il cliente #1 ristoratore Lugano deve poter fare TUTTO questo in autonomia dal mobile in <30 minuti:

A. Signup + Onboarding (5 minuti)

  • [x] A1. Landing multiverbe.com mostra pricing chiaro + CTA "Inizia ora" — live su Vercel multiverbe-landing project (rinominato 2026-05-11)
  • [x] A2. Signup flow (email + password) funzionante su multiverbe.appPR #47 merged 2026-05-15 · SignupPage.tsx + AuthRouter dispatcher ?auth=mode + supabase.auth.signUp + email/password validation + AuthLayout split-pane Sistema Solare · BONUS: MagicLinkPage + ForgotPasswordPage + OAuth Google/Apple buttons (require Supabase Dashboard provider config)
  • [x] A3. Email confirmation Brevo SMTP attiva — 2026-05-19 joint session: domain multiverbe.com authenticated Brevo (DKIM+SPF+DMARC verde · auch multiverbe.app + metaverbe.it) + SMTP key dedicata supabase_production_2026_05_18 generata + Supabase Auth /smtp custom config paste (smtp-relay.brevo.com:587 + sender noreply@multiverbe.com)
  • [x] A4. Onboarding 4-step: scelta settore (5 macro · 7 cuciti pre-MVP / 21 totali in fallback generico · allineato decisione founder 2026-05-16 + audit 2026-05-17) + business info + tone + locale primaria — SetupWizardV2 implementato pre-2026-05-13
  • [x] A5. Workspace creato automaticamente con sector_id + default_locale + tier_id da scelta — schema applicato + trigger handle_new_user attivo

B. Site Builder generation (15-30 minuti async)

  • [x] B1. Wizard 7-step (mobile-first responsive) funzionante — PR #24+#25 merged 2026-05-13. SiteBuilderWizard.tsx + Step1-7 + DesktopSidebar entry "Pianeta Web"
    1. Sector confirm (auto-prefilled)
    2. Template choice (1 default per settore)
    3. Brand intake (nome, tagline, colori, tone)
    4. Photo upload (3-10 foto, drag/camera mobile)
    5. Content seeds (orari, indirizzo, contatti)
    6. Generate + preview async (background job)
    7. Publish 1-click
  • [x] B2. AI Pipeline 6-stage funzionante end-to-end (CODE COMPLETE · smoke pending Moonshot/Replicate keys) — PR #24+#25 merged 2026-05-13
    • Stage 1 Brand Strategist (Opus 4.7 + palette extraction)
    • Stage 2 Art Director (Opus 4.7 → composition)
    • Stage 3 Copywriter (Kimi K2.6 + Opus polish, almeno IT, DE/FR/EN nice-to-have)
    • Stage 4 Visual Director (almeno Flux Pro 2 per food photography)
    • Stage 5 CRO Auditor (Opus scoring 7-dim)
    • Stage 6 Senior Design Reviewer (Opus + screenshot, gate score ≥85)
  • [ ] B3. Editor visuale blocchi post-generation (Sanity-style click-to-edit testo + foto)
  • [ ] B4. Multi-page support (almeno home + menu + contatti per MVP)
  • [ ] B5. Anteprima desktop/tablet/mobile toggle

C. Publish + Hosting (zero-touch DNS)

  • [x] C1. Sites runtime Next.js 16 deployato su Vercel project dedicato — Stream C 2026-05-12 · PR #22 · Next.js 16.2.6 (canon source/05-stack.md, NON 15) + Turbopack + React 19.2 + Tailwind 4 + ISR 60s + SSG generateStaticParams. Worktree feat/publish-hosting
  • [ ] C2. Wildcard *.multiverbe.app configurato sul progetto Vercel multiverbe-sitesdominio canonico dei siti cliente (il vecchio *.sites.multiverbe.com è stato dismesso il 2026-05-19, v18). Da verificare lo stato: il glossario §6-bis lo segna attivo, mentre current-week.md FASE 0 lo elenca ancora tra i task. Setup docs in publish-hosting-setup.md
  • [x] C3. Vercel Domains API integration funzionante (auto-add subdomain on publish) — Stream C 2026-05-12 · frontend/multiverbe-app/api/sites/publish.ts POST con JWT auth + workspace rate limit (10/min) + Vercel API /v10/projects/{id}/domains idempotent (409 OK)
  • [ ] C4. SSL Let's Encrypt auto-provisioned per ogni nuovo cliente — pending DNS C2 + Vercel domain Verify (auto-issued post-propagation)
  • [x] C5. ISR cache + revalidate on publish (<5s propagation post-edit) — Stream C 2026-05-12 · sites-runtime/app/api/revalidate/route.ts POST + shared secret + revalidatePath('/{slug}', 'layout'). publish.ts triggera automaticamente.
  • [x] C6. Slug check + reserved blacklist funzionante in real-time — Stream C 2026-05-12 · frontend/multiverbe-app/src/lib/sites-slug-rules.ts SSoT (35 reserved: admin/api/www/app/bos/sites/mail/ftp/dev/staging/test/...) + api/sites/check-slug.ts GET con IP rate limit 30/min + RFC 1035 subset regex. Stream A wizard step 7 importa la stessa funzione validateSlugFormat().

D. Sito pubblico cliente (visitatore finale vede)

  • [x] D1. SSR rendering {slug}.multiverbe.app da DB schema — Stream C 2026-05-12 PR #22 sites-runtime Next.js 16 + ISR 60s + SSG · PR #35 (Stream 2a) token DNA per-sito injection · dominio aggiornato a .app (canonico) il 2026-05-21
  • [x] D2. Section Library Linear-grade per ristorante (almeno 3 variants per sezione critica) — PR #35 Stream 2a token DNA + PR #37 Stream 3 style-tier variants Standard/Premium + animation stack Lenis/GSAP/Motion + PR #38 Stream 4 AI section selection/ordering · CAVEAT: Wow Audit 2026-05-14 W-010 alcune sezioni render null silently (action_item web-quality-gap-closure-2026-05-15 todo)
  • [x] D3. Performance: LCP <2.5s mobile, CLS <0.1, INP <200ms — Next.js 16 ISR + Turbopack + chunk splitting (main 793K, lazy Reach + 3D)
  • [x] D4. SEO: Schema.org Restaurant JSON-LD + meta OG + sitemap.xml + robots.txt — PR #39 Stream 5 Reach Session 1 Blocco A SEO foundation + PR #41 Stream 5 S2/3/4 NAP checker + Perplexity Sonar AI-visibility engine
  • [x] D5. Compliance: cookie banner GDPR + Impressum CH auto-gen + Privacy auto-gen — PR #28 Klaro 0.7.21 + PR #45 iubenda Privacy Policy 92115618 + Cookie Policy wired + cookieDomain .com fix
  • [ ] D6. Mobile responsive verificato pixel-level (70%+ traffic mobile) — Mother task w4 schedule 26 Mag-1 Giu · "/launch-checklist pre-deadline 10 Giu"

E. Pianeta Booking (almeno MVP per ristorante)

  • [x] E1. Form prenotazione native Multiverbe — PR #23 merged 2026-05-13 · 5 settori (ristorante/parrucchiere/palestra/studio/hotel) + widget mobile embeddable + 7 API endpoints
  • [x] E2. Confirmation email cliente prenotante via Brevo — PR #23 · 4 Brevo templates seed script · pending DNS verify per produzione
  • [x] E3. Notification ristoratore (email/push) — PR #23 · email Brevo · push PWA pending service worker
  • [x] E4. Dashboard booking list visibile in app — PR #23 · BookingDashboard week view + BookingSettings CRUD

F. Payment + Subscription

  • [x] F1. Stripe Checkout funzionante per tier Starter/Pro/Business — 9 prezzi seeded test mode 2026-05-11 · create-checkout-session.ts + BillingPage + PricingTable
  • [x] F2. Stripe webhook handlers subscription created/updated/deleted — PR #27 merged 2026-05-13 · 6 events logic completa: checkout.completed + sub. + invoice.paid/failed + customer.* · idempotency webhook_events + signature verification*
  • [x] F3. Customer portal Stripe per fattura + cancellation — PR #27 · api/stripe/portal.ts endpoint + usePortal hook + BillingPage button "Gestisci abbonamento"
  • [x] F4. Tier caps enforcement (AI generations/mese, cold emails, contatti, ecc.) — schema tier_caps applicato
  • [x] F5. Dunning flow (failed payment retry) — PR #27 · onInvoiceFailed handler email Brevo + Stripe Smart Retries native 3-7-14gg
  • [x] G1. Privacy Policy MultiverbePR #28 merged 2026-05-13 · docs/legal/privacy-policy.md IT nLPD revFADP CHF 250k + GDPR Art.33 72h breach + 8 sub-processor table + DSAR + 3 cookie cats · review fiduciario PTEK pending Q2
  • [x] G2. ToS Multiverbe Swiss-compliant + nDSG + GDPR — PR #28 · docs/legal/tos-multiverbe.md · Swiss law foro Lugano · trial 10gg no card · pricing CHF · cancellation/refund/SLA 99.5%
  • [x] G3. DPA template per cliente — PR #28 · docs/legal/dpa-template.md Art.9 nLPD/Art.28 GDPR · sub-processors-list.md · 30gg post-cancel delete · TOMs RLS+AES256+TLS1.3+MFA+PITR
  • [x] G4. Cookie banner Multiverbe stesso — PR #28 · Klaro 0.7.21 + klaro-config.ts + CookieBanner Nebula Glass + initKlaro main.tsx + SettingsPage "Privacy" tab · sites-runtime banner mini · migration 2026-05-13c_compliance_legal_acceptances.sql NON applicata (founder Dashboard)

📊 Progress tracker (aggiornare ogni sessione)

Updated: 2026-05-26 ~22:00 · founder+Claude session "analisi senior completa + W1 kickoff" · timeline finale riprogrammata.

Update 2026-06-02 (sessione orchestratrice · reconciliation): 3 sessioni parallele mergiate in master#140 Content (testo reale Gemini + calendario + endpoint hardened) · #142 Home agentica (Sole memory engine + daily-brief fix + agent runtime) · #141 Sales Boss-View completa + accesso per-pianeta team + posti per piano. Pianeti: Sales 40→~70 · Content 0→~35 · foundation agentica ~40. Landing PR #21 (posti per piano i18n) mergiata. Dettaglio + azioni founder aperte: execution/reconciliation-2026-06-02.md. Aggregati pesati status.json da ricalcolare al prossimo build BOS. Next: Content → v2 "Bonifica + Sovranità" (ops/content-studio-remediation-backlog.md).

🆕 Timeline 2026-05-26 · Riscadenzata (founder decision)

Gate primo pagante: lun 10 Giulun 22 giugno 2026 (15gg lavorativi netti, -1 Corpus Domini 4 Giu) App completa: ven 15 Giu MVP+ven 31 luglio 2026 (29gg lavorativi netti, -1 San Pietro 29 Giu)

22 task strutturate in TaskList: A1-A11 (Fase A minimal vendibile) + B1-B11 (Fase B polish completo).

Task A Status Commit / PR Note
A1 · Tech debt critical sicurezza+legalità ✅ done PR #106 (f03f6ff) Auth register stub rimosso + SECURITY.md CSRF + Iubenda fix + headers. Stimato 3gg, reali 2h (80% già fatto)
A2 · Seed servizi 7 settori top ✅ done + applied prod PR #106 (d8e6266) 56 servizi su 10 settori in sector_default_services + trigger workspace.onboarding_completed
A3 · Tier caps soft + cost cap AI soft ⏳ next gio 28-ven 30 Mag · 2gg
A4 · Test suite minima Vitest + CI gate ⏳ pending W2 · 2gg
A5 · Foundation S4 model router dinamico ⏳ pending W3 · 2gg
A6 · Pianeta Web Hub scheletro ✅ done PR #107 (445abac) Types + adapter pattern + React Query hook. Backend (3 tabelle) già esistente
A7 · CookieBanner sites-runtime + Iubenda verify ✅ done PR #106 (d9a2f9c) Layout sites-runtime ora include CookieBanner (bug GDPR pre-fix) + security harden migration
A8 · Dogfooding workspace Multiverbe HQ + connetti multiverbe.com ⏳ pending W3 · 1gg
A9 · Mobile pixel audit D6 + fix ⏳ pending W4 · 1gg
A10 · QA end-to-end + founder sign-off ⏳ pending W4 · 1.5gg
A11 · Update Loris playbook + outreach prep ⏳ pending W4 · 0.5gg

Fase A progress: 4/11 done = 36% in 1 sera (vs stima 6.5gg lavoro → effettivi ~3h, +6gg buffer accumulato).

Migration prod applicate stasera via Supabase MCP:

  1. sector_default_services_seed_2026_05_27 · 56 righe in 10 settori
  2. harden_seed_workspace_booking_services_security_2026_05_26 · REVOKE EXECUTE anon/authenticated

Skill stack integrato (founder approvato 2026-05-26):

  • Graphifyy 0.8.19 (knowledge graph code, 71.5x token reduction) · installed
  • Shannon (autonomous AI pentest) · installed
  • Anthropic skills marketplace · added
  • Stack tools planning in memoria project_stack_tools_integrati_2026_05_26.md

Legacy progress (checklist pre-MVP 35 task)

Days remaining 10 Giu hard gate (legacy): 22 ora gate è 22 Giu = 27gg · Soft gate 31 Mag: 5 giorni (verificato pre-MVP raggiunto)

Categoria Tasks totali Done %
A. Signup + Onboarding 5 5 ✅ (A1+A4+A5 architettura · A2 PR #47 Stream B · A3 Brevo authenticated 2026-05-19 + Supabase SMTP custom) 100%
B. Site Builder generation 5 2 (B1+B2 ✅ PR #24+#25 · qualità potenziata da PR #34-#38 Stream 1-4 quality-max · B3+B4+B5 deferred post-MVP) 40%
C. Publish + Hosting 6 4 (C1+C3+C5+C6 ✅ · C2+C4 superseded · canon ora *.multiverbe.app wildcard Valid Configuration) 67%
D. Sito pubblico cliente 6 5 (D1+D3+D4+D5 ✅ · D2 NEW via PR #35+#37+#38 Section Library + style-tier + AI ordering · D6 mobile verify w4 26 Mag) 83%
E. Pianeta Booking 4 4 (✅ ALL via PR #23 booking-engine-stream-b) 100%
F. Payment + Subscription 5 5 ✅ (F1-F5 code-complete + F0 Stripe live mode ACTIVATED 2026-05-19 · sk_live_51TGS39...IoSt + 9 prices + webhook live we_1TYo3pHY5nfM6JRnFtgu7d7Y) 100%
G. Compliance + Legal 4 4 (✅ ALL via PR #28 + PR #45 iubenda · review fiduciario PTEK pending Q2) 100%
H. Audit BLOCKING 2026-05-18 6 6 ✅ (B1 Brevo TXT · B3 Stripe activate live · B4 webhook live we_1TYo3pHY5nfM6JRnFtgu7d7Y → https://multiverbe.app/api/stripe/webhook (canonical apex) + whsec_d93V... · B5 Supabase SMTP custom · B6 Replicate API key · cleanup *.sites.com) 100%
TOTALE 35 33 94%

Trend storico (ultimi giorni)

Data % MVP Δ giornaliero Eventi chiave
2026-05-11 ~34% baseline Pre-merge train
2026-05-13 69% +35% Merge train AM+PM (#19/#16/#18/#23/#24/#25/#27/#28 — 8 PR)
2026-05-14 ~75% +6% Stream 1-4 quality-max Pianeta Web (PR #34-#38 — 5 PR · D2 strong progress)
2026-05-15 80% +5% Reach pre-gate CORE + Compliance iubenda + Osservatorio app v1.1 + Sneak Peek + brand propagation (PR #39-#49 — 11 PR oggi · A2 Signup unlocked)
2026-05-16 80% 0% (checklist) · +2% strict 2 PR BONUS extra-MVP: PR #51 Stream C v2 (b0cf852) shader GLSL + WarpStarField + CameraRig + SatelliteColumn 3D · PR #50 auth-v2-awwwards (6814636) Awwwards × Apple aesthetic premium · AuthLayout 3D full-bleed NucleoSphere + UnderlineField + Klaro corner pill · moat moltiplicatore conversion + ritenzione · 'INCREDIBILE' bar achieved verbatim founder
2026-05-18 80% 0% (28/35) Audit READY-WITH-2-BLOCKERS · 6 BLOCKING identificati (4 founder action · 0 codice nuovo) · drift F0 Stripe live scoperto
2026-05-19 13:00 88% +8% Joint session founder+Claude via Playwright · 4/6 BLOCKING audit risolti (B1 Brevo authenticated + B5 Supabase SMTP custom Brevo + B6 Replicate API token Vercel + cleanup *.sites.com superseded) · 2/6 pending Stripe lato founder (KYC 24-48h)
2026-05-19 15:50 94% +6% 🎯 ALL 6 BLOCKING RESOLVED · B3 Stripe live activate completato (email verify + 2FA + named key 'multiverbe-vercel-production' sk_live_51TGS39...IoSt revealed via Playwright + Vercel env STRIPE_SECRET_KEY update + redeploy) + B4 Stripe webhook live (we_1TYo3pHY5nfM6JRnFtgu7d7Y · 9 events · whsec_d93V...A in Vercel env + redeploy) · Payment & billing pipeline ora end-to-end production-ready · pending solo D6 mobile pixel + Stripe Tax verifica

Trend richiesto verso 10 Giu: 94% → 100% in 22 giorni = +0.27%/giorno minimo. Trend reale ultimi 6 giorni: +60% in 6 giorni = +10%/giorno medio (37× sopra il pace richiesto).

Soglie raggiunte/in arrivo

  • Soglia 22 Mag (40%) abbattuta 9 giorni prima · attualmente 94%
  • Soglia 31 Mag soft gate (80%) RAGGIUNTA 15 Mag16 giorni in anticipo
  • 🎯 Soglia 10 Giu hard gate (100%) richiede +6% in 22 giorni · ultimo collo di bottiglia = D6 mobile audit (scheduled w4)

Tasks aperti (2 totali · post 2026-05-19 15:50 joint session)

Mother w4 task (1):

  1. D6 Mobile responsive pixel-level audit (scheduled 26 Mag-1 Giu in priority queue)

Founder verification (1 · non-critical): 2. Stripe Tax verifica (post-activate · può attendere primo cliente reale per registrazione VAT IT/CH automatica)

Post-MVP candidates (3 · checklist B Site Builder · valuta scope reduction founder): 3-5. B3+B4+B5 Site Builder (editor visuale · multi-page · anteprima toggle) — non-blocker primo paying customer

Moltiplicatori "moat" extra-MVP (oltre checklist Done)

Non contano per Done/Pagamento ma fanno la differenza su conversione/ritenzione:

  • 🌟 Osservatorio v1.1 design system (PR #46-#49 oggi) · drift sweep + theme preview + AuthLayout split-pane + 11 UI primitives + NucleoSphere R3F 3D + SVG fallback + cyan whisper polish · bar "incredibile" su primo login achieved
  • 📡 Reach pre-gate CORE (PR #39+#41 oggi) · SEO foundation + NAP checker + GBP guide + Perplexity Sonar AI-visibility engine + Reach Cockpit · sites generati pronti per essere trovati su Google AI Overviews + Perplexity citation
  • 🎭 Sneak Peek Live momento magico (PR #42 oggi) · onboarding magic moment per signup→preview conversion
  • 🎨 Brand propagation Osservatorio (PR #40 oggi) · Bricolage+Geist fonts + sky-dominant palette propagati a dashboard

Decisione founder pending: B3/B4/B5 MVP scope reduction?

Considerata la velocità di progresso (15× pace richiesto), 3 opzioni:

  • OPT1 keep: tenere B3+B4+B5 in MVP scope (3 settimane buffer ampio)
  • OPT2 demote: declassare a post-MVP, MVP a 80% raggiunto = pronto ora per primo paying customer test
  • OPT3 prioritize: aggiungere altre task (D6 mobile + UX polish + Stripe live mode switch) come blocking MVP

🚨 CONFLITTO PR #22 STREAM A↔C 2026-05-12 · risolto · merge sequence completata.


🧹 Pre-lancio · Cleanup ambiente di verifica QA (Claude)

Setup creato il 2026-05-22/26 per fare verifiche live sull'app mentre è in FounderGate. Rimuovere prima del lancio pubblico (vedi decisions-log v53).

  • [ ] Vercel · progetto multiverbe-app · Settings → Environment Variables · rimuovere claude-demo@multiverbe.app da VITE_FOUNDER_EMAILSRedeploy production (il valore VITE_* è cotto nel build).
  • [ ] DB public.founder_emails · delete from public.founder_emails where email = 'claude-demo@multiverbe.app';
  • [ ] (a scelta) DB · cancellare workspace DEMO + utente di test + i 3 venditori sintetici: - select id from workspaces where name like 'DEMO ·%'; → cascade delete (deals, bookings, services, quotas, sales_seller_subaccounts, pipeline/stages, crm_contacts, team_members) per i 4 workspace DEMO: Boss-View Vendite, Trattoria Bellinzona, Salone Lugano, Studio Legale Locarno (creati 2026-05-26 P2-7); - utenti auth.users con email claude-demo@multiverbe.app, marco.seller.demo@…, lucia.seller.demo@…, paolo.seller.demo@….
  • [ ] File creds locale D:\Desktop\per claude\claude-app-access.json → cancellare se non ti serve più mantenere accesso QA dopo il lancio.

⚠️ Reminder per ogni sessione Claude futura

INIZIO sessione:

  1. Leggi questa checklist
  2. Aggiorna % completion in tabella sopra
  3. Dichiara al founder le 3 priorità della giornata
  4. Avvisa se % è sotto soglia di alarm

DURANTE sessione:

  • Resistere scope creep (post-MVP features documentate ma NON implementare)
  • Implementation > Architettura per i prossimi 29 giorni
  • Mobile-first sempre (founder regola)
  • Multilingua/zone/Migration Manager/external sites = POST 5 paganti, NON ora

FINE sessione:

  • Update progress tracker
  • Identifica blocker se presenti
  • Founder informato % aggiornata + cosa fatto + cosa next

Owner: Gregorio (founder, decisioni progresso) Tracker: Claude (ogni sessione) Review cadence: ogni sessione + giorno fisso lun 9:00