Azioni manuali founder — 2026-05-10 (post env update)
Generato dopo cleanup
.env+ sync Supabase keys + autoraization founder. Tutte queste azioni richiedono il browser, account dashboard o riavvio Claude → Claude non può fare. Ordine: priorità decrescente.
🔴 PRIORITÀ 1 — Sblocca signup/login app (15 min totale)
A1 · Service Role Key Supabase (5 min)
Perché: Backend Python daily_run.py + script admin usano SUPABASE_SERVICE_ROLE_KEY per bypassare RLS. Se manca, qualsiasi script lato server fallisce. La key NON è in memoria (è secret server-side).
Procedura:
- Apri https://supabase.com/dashboard/project/yqhixdqipojvgzfadufo/settings/api
- Sotto "Project API keys" trovi 2 row:
anon public(già nel.env) eservice_role secret(questa) - Click "Reveal" sulla riga
service_role→ click "Copy" - Apri
D:\Desktop\Multiverbe\.envcon un editor (NON commitarlo, è gitignored) - Trova la riga commentata
# SUPABASE_SERVICE_ROLE_KEY=sb_secret_TODO_RECUPERARE_DA_DASHBOARDe sostituiscila conSUPABASE_SERVICE_ROLE_KEY=sb_secret_<la_key_che_hai_copiato>(rimuovi il#iniziale) - NON incollare la key in chat — solo nel file
.env. Mi dici "service role key incollata in env" senza condividerla.
A2 · Vercel env vars frontend (5 min)
Perché: il frontend in produzione su app.multiverbe.com legge env vars da Vercel, NON dal .env.local (quello è solo per dev locale). Senza queste keys, signup/login NON funziona in produzione anche dopo push commit.
Project Vercel: multiverbe-app (rinominato 2026-05-10 da maind-dashboard).
Procedura:
-
Apri https://vercel.com/dashboard → trova project
multiverbe-app→ Settings → Environment Variables -
Clicca "Add New" e aggiungi questi 3 env vars. Spunta solo Production + Preview (Vercel non permette sensitive vars in Development per policy security — il dev locale legge da
.env.localche è già configurato):Name Value Scope VITE_SUPABASE_URLhttps://yqhixdqipojvgzfadufo.supabase.co✅ Production · ✅ Preview VITE_SUPABASE_ANON_KEYsb_publishable_0ifZ2x1UmJuxLDBg8rMdIA_QBtveGRm✅ Production · ✅ Preview VITE_ONBOARDING_V2true✅ Production · ✅ Preview -
Save → poi al prossimo push (A3) Vercel auto-deploy con le nuove env vars. Se vuoi forzare subito: Deployments → trova l'ultimo → "..." menu → "Redeploy" (use existing build cache: NO).
A3 · Push commit sessione B (1 min)
Perché: la sessione B ha lasciato il commit fa154f7 (feat: onboarding 5 macro × 18 settori + AI fallback Sonnet 4.6) NON pushato per tua review.
Procedura:
- Nel terminale locale
cd D:\Desktop\Multiverbe git log --oneline -5per vedere il commit (fa154f7)git statusper vedere cosa hai di non committato (potrebbe esserci anche il commit[next]con DB migration files dalla sessione B)- Se vuoi review prima:
git show fa154f7per vedere il diff completo git push— Vercel auto-deploy parte. Controlla https://vercel.com//maind-dashboard/deployments
A4 · Test signup end-to-end (5 min)
Perché: validare che tutto funziona dopo A1-A3.
Procedura:
- Apri https://app.multiverbe.com
- Click "Sign up" → email nuova (es.
gregorio+test1@gmail.com) - Riceve magic link via Brevo → click → conferma
- Login → SetupWizardV2 deve partire (4-dot indicator in alto a sinistra, non i 5-dot legacy)
- Step 1: clicca "🍽️ Hospitality" → 4 sector cards (Ristorante / Bar / Hotel / B&B)
- Step 2: clicca "Ristorante" → Step 3
- Step 3: nome workspace + città Lugano + 1 dipendente + range fatturato + dolore primario → "Vedi dashboard"
- Step 4: tour 5-frame → "Inizia da qui"
- Verifica DB: nel Supabase Dashboard → SQL Editor →
SELECT * FROM workspaces ORDER BY created_at DESC LIMIT 1;— deve mostrare workspace nuovo conbusiness_type='restaurant',onboarding_completed=true
Se A4 fallisce: dimmi quale step rompe + screenshot eventuale errore browser console (F12).
🟡 PRIORITÀ 2 — Stripe MCP riattivazione (5 min)
S1 · Riattivare Stripe MCP server
Stato: il system reminder all'inizio di questa sessione mi ha segnalato che mcp__plugin_stripe_stripe__authenticate e mcp__plugin_stripe_stripe__complete_authentication sono "no longer available (their MCP server disconnected)". Quindi il plugin Stripe è installato ma il suo server MCP non gira.
Tu non puoi farlo via chat — è un'operazione client-side. Procedura:
Opzione A · Riavvio Claude Code (sicuro, 30 sec):
- Chiudi tutte le sessioni Claude Code aperte
- Riapri: terminale →
cd D:\Desktop\Multiverbe-Business && claude - Verifica: il system reminder iniziale dovrebbe mostrare
mcp__plugin_stripe_stripe__*nella lista deferred tools (NO più "no longer available") - Mi dici "Stripe MCP riattivato" → io lancio
mcp__plugin_stripe_stripe__authenticateimmediatamente
Opzione B · Reload solo il plugin Stripe (se opzione A non funziona):
- In Claude Code, scrivi
/plugin(slash command) - Cerca Stripe nella lista
- Disable → Enable per forzare reload
Opzione C · Reinstall completo (se A+B non funzionano):
/plugin uninstall stripe/plugin install stripe- Riavvio sessione
S2 · Stripe authenticate (1 min, dopo S1)
Quando: dopo che mi dici "Stripe MCP attivo".
Procedura:
- Io chiamo
mcp__plugin_stripe_stripe__authenticate→ mi ritorna URL browser - Tu apri URL nel browser → login Stripe (con 2FA app, ora che è fixed) → autorizza
- Io chiamo
mcp__plugin_stripe_stripe__complete_authentication→ MCP attivo - Da quel momento posso creare prodotti, prezzi, webhooks via MCP
S3 · Creazione prodotti + prezzi (15 min, dopo S2)
Cosa creo io via MCP (zero tua azione, solo conferma):
- Product
multiverbe-starter+ Price monthly CHF 79 + Price annual CHF 790 - Product
multiverbe-pro+ Price monthly CHF 149 + Price annual CHF 1.490 - Product
multiverbe-business+ Price monthly CHF 249 + Price annual CHF 2.490 - Product
multiverbe-setup-starter(one-time CHF 590) - Product
multiverbe-setup-pro(one-time CHF 890) - Product
multiverbe-setup-business(one-time CHF 1.290)
Output: 9 price IDs Stripe che metto in .env.local + Vercel env vars.
S4 · Webhook endpoint (10 min, dopo S3)
Cosa: Stripe deve poter notificare la nostra app quando subscription cambia stato (created, paid, canceled, dunning).
Procedura mista (io scaffold + tu attivo):
- Io creo route handler
/api/stripe/webhook(filefrontend/maind-dashboard/maind-dashboard/api/stripe/webhook.ts) — gestisce eventicustomer.subscription.*,invoice.*,checkout.session.completed - Tu vai su https://dashboard.stripe.com/webhooks → "Add endpoint" → URL
https://app.multiverbe.com/api/stripe/webhook→ eventi da subscribere (te li listo: 8 eventi base) → save → riceviwhsec_...signing secret → metti in env vars Vercel comeSTRIPE_WEBHOOK_SECRET
🟢 PRIORITÀ 3 — Compliance signup (45 min totale)
C1 · iubenda Pro signup (15 min) — €27/mo
Procedura:
- https://www.iubenda.com/it/registrazione → Plan Pro Yearly €324/anno (sconto vs monthly)
- Tab "FADP" → enable toggle (Swiss compliance) — fundamental
- Crea documenti per
app.multiverbe.com+multiverbe.com:- Privacy Policy + Cookie Policy + ToS in IT (primary), DE, FR, EN
- Sub-processor list (importante GDPR Article 28): Anthropic (US), Mistral (FR), Google (US/EU), Stripe (US/IRL), Datatrans (CH, post-Q4), Brevo (FR) — non più Resend, Vercel (US/EU), Supabase (US/EU project Frankfurt), Sentry (US/EU)
- Cookie scan: lancia per multiverbe.com (richiede DNS verify TXT, 5 min)
- Embed JS code → mi dai i 2 snippet (privacy.iubenda.com + cookies.iubenda.com), io li integro nel
<head>dilanding/eapp.multiverbe.com - Verifica live: https://multiverbe.com/privacy + /cookie + /tos
Skill chain: multiverbe-ch-compliance
C2 · Klaro integration (15 min) — €0
Differenza vs iubenda: iubenda gestisce documenti legali (Privacy/Cookie/ToS), Klaro gestisce banner cookie consent (Consent Mode v2). Lavorano insieme.
Procedura mista (io codice + tu zero azione, è un'integrazione tecnica):
- Io aggiungo
klaroalpackage.jsonfrontend - Io creo
src/lib/klaro-config.tscon consent categories (necessary always-on / preferences / analytics / marketing) + Nebula Glass styling override - Io aggiungo
<KlaroProvider>nel layout root - Io test in dev → tu valida UI banner
C3 · Bitwarden free signup (5 min) — €0
Procedura:
- https://bitwarden.com/products/personal/ → Sign up free (email founder)
- Master password 20+ char (memorizza, non scrivere — usa frase mnemonica)
- Stampa Emergency Recovery Code (PDF generato dal sito) → safe location fisica
- Crea folder organization:
Multiverbe Business+Personal - Importa keys correnti: ANTHROPIC_API_KEY, MISTRAL_KEY, BREVO_API_KEY, SUPABASE_*, GROQ_KEY, GEMINI_KEY, GMAIL_APP_PASSWORD, SMTP_PASSWORD (10+ entries) — copy from
.envroot → Bitwarden vault - Invite Loris quando vuoi (post Loris onboarding)
Skill chain: multiverbe-security-ch
C4 · Aegis Authenticator install (5 min) — €0
Solo Android. Per iOS: usa Authy (cloud sync, free).
Procedura Android:
- Play Store → cerca "Aegis Authenticator" (open source, ~5MB)
- Install → setup encrypted backup (richiede password)
- Add account: scan QR da ogni dashboard 2FA enable:
- GitHub Settings → Security → 2FA → Add app
- Vercel Account → Security → 2FA
- Supabase Account → MFA
- Stripe Dashboard → User → Security → 2FA app authenticator
- Anthropic Console → Account → Security → MFA
- Google Workspace → Security → 2-Step Verification → Authenticator app
- Aegis crea backup encrypted in Drive/Local → safe
C5 · Apollo.io signup free (5 min) — €0
Per: Loris primo mese sourcing prospect Lugano.
Procedura:
- https://www.apollo.io/sign-up → Free plan (50 leads/mo + 25 email finder)
- Crea filtri saved search: Location=Lugano (50km radius) + Industry=Restaurants/Beauty/Health/Professional Services + Company Size=1-50 + Title=Founder/CEO/Owner
- Verifica: ritorna ~50-200 prospect Ticino
- Export CSV → import in Multiverbe
leadstable quando Pianeta Sales W3
📋 Status post azioni
Quando hai completato A1+A2+A3+A4 (priorità 1) e mi dici "fatto", io:
- Verifico stato signup tramite query Supabase MCP
- Procedo Day 4 roadmap (struttura templates Site Builder + brand_memory schema check)
- Sblocco Stripe MCP setup (S1+S2+S3+S4) appena lo riattivi
Per priorità 2-3 (Stripe + compliance + signup security): ognuna autonoma, fai quando hai energia. Nessun ordine forzato tra di loro.
🆕 PRIORITÀ NUOVA — Onboarding V2 + DB MVP completo (post sessione B 2026-05-10)
B1 · ANTHROPIC_API_KEY Vercel server env (5 min, scheduled 2026-05-12)
Perché: API route /api/ai/sector-deduction chiama Sonnet 4.6 per dedurre settore PMI dal testo libero in onboarding step 2.5 chat fallback. Senza key, l'API risponde 503 e il frontend cade graciously su keyword pattern matching (90 keyword mappati ai 21 settori).
Procedura:
- Apri https://vercel.com/
/maind-dashboard/settings/environment-variables (o multiverbe-appse rinominato) - "Add New" Environment Variable:
- Name:
ANTHROPIC_API_KEY(NOVITE_prefix — server-side only) - Value: la key da https://console.anthropic.com/settings/keys (crea key dedicata "Multiverbe Vercel" per audit)
- Environments: Production + Preview ✅ (Development opzionale)
- Name:
- Redeploy progetto (Vercel → Deployments → ⋯ → Redeploy)
- NON incollare la key in chat
- Test in chat: "anthropic key vercel done" → io verifico chiamata API funziona
B2 · VITE_ONBOARDING_V2=true Vercel env (2 min, dopo B1)
Perché: feature flag attiva il nuovo SetupWizardV2 (4-step ~3min target) invece del legacy SetupWizard (5-step). Default false per safety.
Procedura:
- Vercel env vars → "Add New":
- Name:
VITE_ONBOARDING_V2 - Value:
true - Environments: Preview ✅ first per testarlo, poi Production quando OK
- Name:
- Aggiungi anche in
.env.locallocale (se sviluppi) - Redeploy preview
- Test: registra utente nuovo con email confirmation disabilitata (vedi B3) → SetupWizardV2 si apre
B3 · SMTP Brevo signup confirmation Supabase Auth (10 min, scheduled 2026-05-13)
Perché: di default Supabase Auth manda email di confirmation via SMTP gratuito limitato (4 email/h). Per produzione serve SMTP custom — abbiamo già Brevo configurato a noreply@multiverbe.com via subdomain send.multiverbe.com.
Procedura:
- Apri https://supabase.com/dashboard/project/yqhixdqipojvgzfadufo/auth/templates
- Tab "SMTP Settings" → toggle "Enable Custom SMTP"
- Compila:
- SMTP Host:
smtp-relay.brevo.com - SMTP Port:
587 - SMTP User: il tuo SMTP key Brevo username (formato
8xxxxxxxxxx@smtp-brevo.com) - SMTP Password: la SMTP key da Brevo dashboard (Settings → SMTP & API → SMTP)
- Sender email:
noreply@multiverbe.com - Sender name:
Multiverbe - Minimum Interval Between Emails: 60 (anti-abuse)
- SMTP Host:
- Click "Save"
- Test in tab "Email Templates":
- Customize "Confirm signup" template (Italian, brand Multiverbe)
- Send test email to tua mail
- Verifica ricezione + click conferma funziona
ATTENZIONE: Brevo richiede DNS authentication SPF/DKIM/DMARC + verified domain send.multiverbe.com. Se non già fatto vedi decisions-log.md 2026-05-10 per status DNS. Se Brevo è ancora in pending verify domain (riga 49 current-week.md), B3 va dopo aver risolto quel bloccante.
B4 · Disable cron Supabase render-keepalive (1 min, post-MVP)
Perché: il cron render-keepalive ogni 14 min pinga il backend Render multiverbe-pipeline.onrender.com per evitare che si addormenti. Ora che MAIND Python è deprecato (vedi legacy/maind-python/), il ping è inutile.
Procedura:
- Apri Supabase SQL Editor
SELECT cron.unschedule('render-keepalive');- Su Render dashboard, pause/delete service
multiverbe-pipeline.onrender.com(CHF 7/mo risparmiati) - Conferma chiusura Render in
decisions-log.md
B5 · Push remote Multiverbe + Multiverbe-Business branch (3 min)
Perché: 5+ commits locali pendenti su sessione B fix.
Procedura:
cd D:\Desktop\Multiverbe && git push origin claude/competent-mcnulty-b059b3(se autorizzato — chiedi a Claude di farlo prima)cd D:\Desktop\Multiverbe-Business && git push origin main- Crea PR sul branch claude/competent-mcnulty-b059b3 → master in repo Multiverbe (review yourself)
Owner: Gregorio (founder) — tutte le azioni richiedono browser/dashboard/riavvio
Generato: 2026-05-10 ~17:30 da Claude (sessione fervent-hodgkin-66d2d9)
Update sessione B: 2026-05-10 ~21:00 — aggiunte B1-B5
Reference: D:\Desktop\Multiverbe-Business\execution\days-3-6-roadmap.md per piano completo W2 Mag