Current Week · Cosa stiamo facendo
Aggiornato lunedì 9:00 review. Cambia ogni settimana. Task strategici →
decisions-log.md. Numeri →metrics.md.🎯 OGNI SESSIONE CLAUDE INIZIA CON (re-baseline 2026-06-21):
- Leggere questa sezione "RIPARTENZA 21 GIU" e la decisione corrispondente in
decisions-log.md(v130)- Traguardo unico: forma primitiva dell'app + dogfooding su Multiverbe stessa entro il 30 giugno
- Barra di qualità: funzionante + testato + zero dati finti + advisor 0 errori (un giro end-to-end reale per pianeta)
- Aggiornare il BOS nello stesso loop (
status.json+cantiere.json_meta.last_verified)
🎨 Chip "estrema qualità big-tech" (9-10 lug) — pannello Web · shell · flussi
Serie di PR born-green isolate (un git worktree per sessione) dall'epica founder 9/7 "tutto ciò che una IA SaaS può fare, in ogni minimo dettaglio":
- ✅ #571 SW update-flow ("Nuova versione disponibile · Aggiorna") → fine del reload muto / padlock stale · MERGED
- ✅ #572 pannelli Web in italiano dal primo frame (fix fallback lingua a freddo) · MERGED
- ✅ #575 email di dominio guidata (MX/SPF/DKIM/DMARC, validazione DNS live) + hub email classico 5 lingue · MERGED
- 🟢 #573 vetro liquido + Sole unificato + card pianeta ≠ card satellite + niente pianetino di fianco al titolo · born-green · resta verify live + merge founder
- 🟢 #576 dominio personalizzato: costruita la UI mancante sull'API reale (era finto-fatto) — righe DNS copia-incolla, verifica in tempo reale, gate Business come invito gentile; + hand-off post-pubblicazione ("il sito è online → collega il tuo dominio", fine del vicolo cieco); + due porte chiare "fatti creare il sito / analizza un sito che hai già". VERDE + CLEAN · attende #573 vetro, poi rebase + merge.
- 🔵 grafica adattiva (fallback 2D capability-based, massima qualità su chi regge) · in corso
⚠️ Lezione infra: le sessioni Claude parallele NON devono condividere lo stesso working tree (si cambiano la branch a vicenda, si spazzano i file uncommitted nel PR sbagliato, si contendono l'install pnpm). Ognuna sul suo git worktree dedicato.
⚡ loop perfezione visiva — render EU #490 + cervello EU #512 MERGED (9/7) → restano 2 azioni founder
✅ AGGIORNAMENTO 2026-07-09 — Vercel è tornato operativo; le 2 PR EU-infra-gated (ultime della coda consolidamento) sono MERGED su master (born-green + verifica in locale, sessione Claude):
- #490 servizio render EU (
master 47ac071) — Playwright Apache-2.0 inservices/visual-render/. Provato DAL VIVO (server bootato + render reale: PNG validi + axe girato + overflow 2626px misurato) + fix sicurezza Trivy (fastify 5.10.0 / vitest 3.2.7).- #512 cervello Vertex EU (
master 14d8424) — instrada il cervello del Sole su Claude-Vertex-EU dietro flagBRAIN_EU_VERTEX, DORMIENTE (OFF di default = zero regressione). Born-green + path EU provato fino al confine di rete.🔲 RESTANO 2 AZIONI FOUNDER per ATTIVARE l'EU (nessuna urgente · restano dormienti finché non le fai):
- #490 → deploy render EU su Hetzner (~€5.49/mo CX23 DE): segui
services/visual-render/README.md(docker compose up -d --build), poi in Vercel prodmultiverbe-app:VISUAL_RENDER_ENDPOINT=https://render.<dominio>/render+VISUAL_RENDER_TOKEN=<token>(PSI_API_KEYgià messo). ⚠️ MAI Cloudflare (no residency EU).- #512 → smoke-test LIVE Vertex EU PRIMA di accendere
BRAIN_EU_VERTEX=1(il flag è OFF ora; credsGCP_SA_*già in prod dal 3/6). Test rapido dell'endpoint esatto che usa il codice:200 con contenuto = Claude-su-Vertex-EU risponde → puoi accendereTOKEN=$(gcloud auth print-access-token) # progetto GCP Multiverbe curl -s -X POST "https://europe-west1-aiplatform.googleapis.com/v1/projects/<PROJECT>/locations/europe-west1/publishers/anthropic/models/claude-sonnet-4-6:rawPredict" \ -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \ -d '{"anthropic_version":"vertex-2023-10-16","messages":[{"role":"user","content":"ping"}],"max_tokens":16}'BRAIN_EU_VERTEX=1in Vercel prod. Un 4xx = quel modello non è abilitato in regione (il codice restituisce l'errore, NON degrada di nascosto).Storico provisioning render EU sotto (deciso self-host Hetzner; Cloudflare escluso per residenza).
Promemoria attivo (creato 2026-06-30 · aggiornato 2026-06-30 con la verifica sovranità). Il runtime del loop di perfezione visiva dei siti è COSTRUITO e born-green (compute PR Multiverbe #480 + runtime #484 stacked) → chiude l'epica "stack LLM SOTA 2026". Si attiva al primo redeploy dopo l'inserimento delle env (Vercel ora in outage 402, pagamento+sblocco il 4 lug · founder 2026-06-30 ·
project_vercel_outage_402_2026_06_29). Appena Vercel è operativo, Claude ricorda al founder quanto sotto. ✅ ESEGUITO via chiptask_a191a29c(2026-06-30): 3 PR born-green — #490 servizio render EU (services/visual-render/, Playwright Apache-2.0 deployabile) + #492 shadow-regen (no-outage, migration2026-06-30aGATED) + #494 fan-out direttive Stage 3/5 + promemoria Gemini. Resta SOLO il provisioning founder (merge + applica migration + deploy Hetzner + env, sotto).⚠️ CORREZIONE IMPORTANTE (verifica web 2026-06-30): Cloudflare Browser Rendering / "Browser Run" NON ha residency EU (edge globale, fuori dalla Data Localization Suite, nessun knob di giurisdizione). Gli screenshot dei siti mostrano nome/indirizzo/persone = PII non-pseudonimizzabile → la residenza EU è base giuridica non-negoziabile. Quindi i
CLOUDFLARE_API_TOKEN/CLOUDFLARE_ACCOUNT_IDgià ottenuti NON sono utilizzabili per questo loop (salvo garanzia EU scritta da Cloudflare). Il render client è stato reso vendor-neutro apposta: serve un endpoint a residenza EU.Dove: Vercel → progetto
multiverbe-app→ Settings → Environment Variables → Production.
Variabile Cos'è Stato PSI_API_KEYchiave PageSpeed Insights (GCP "Multiverbe") ✅ già ottenuta, inseribile com'è VISUAL_RENDER_ENDPOINTURL del servizio headless a residenza EU ( https://render.<dominio>/render)✅ servizio PRONTO services/visual-render/(#490) → 🔲 deploy Hetzner CX23 (README operativo)VISUAL_RENDER_TOKENBearer del servizio render 🔲 col provider 🎯 DECISIONE render EU (founder: "la migliore in assoluto, qualità×efficienza" · validata sul web 2026-06-30) — self-host headless Chromium in regione EU. Vincitore su tutti gli assi (residenza garantita + qualità Chromium piena + costo fisso minimo + manutenzione bassa); i BaaS managed sono squalificati sulla residenza (Browserbase EU = solo enterprise, nessuna garanzia scritta · Browserless cloud EU = "self-host comunque").
- Deploy: il servizio è già scritto in
services/visual-render/(#490). Sul server:docker compose up -d --build(render Fastify+Playwright + Caddy TLS auto). Vediservices/visual-render/README.mdper i passi esatti (crea il server Hetzner col cloud-init incluso → copia la cartella →.envcon dominio+token →docker compose up). ⚠️--ipc=hostgià nel compose (anti-OOM Chromium).- Un solo round-trip: l'endpoint
/chromium/functionaccetta JS Puppeteer, importa axe-core via ESM, fapage.screenshot({encoding:'base64'})sui 3 viewport + il probe, e ritorna{data,type}JSON → è esattamente il contratto del nostro client (.env.example§ VISUAL QA LOOP).- ✅ FATTO (#490): server Playwright Apache-2.0 (
mcr.microsoft.com/playwright:v1.61.0-noble+playwright-core+ Fastify) che implementa il nostro contratto — nessuna licenza SSPL (browserless è SSPL = a pagamento per uso commerciale), controllo pieno, residenza EU sotto nostro controllo. 17 test + README operativo founder. Stack web-validato giu-2026 (Playwright 1.61, axe-core 4.12, AxeBuilder).💳 IL 4 LUG, INSIEME A VERCEL (founder 2026-06-30): nello stesso giro in cui paga Vercel, il founder paga anche ~€5.49/mese Hetzner (CX23 DE — ⚠️ il CX22 €3.79 è stato ritirato il 15/6/26) e deploya il servizio render EU (
services/visual-render/·docker compose up), poi inserisce le env sopra. Una sola sessione di provisioning, stesso giorno. Merge order (founder, admin, post-Vercel): #479→#477→#480→#484 → #490 (render service) → #492 (shadow-regen · migration2026-06-30aGIÀ APPLICATA a prod 2026-07-01, validata+verificata) → #494 (fan-out+Gemini). Env attive al primo redeploy. Poi verifica live (pubblica un sito → render→audit→giuria→fix→shadow-swap→re-render · screenshot in Supabase EU ·design_reviewspopolato). Fatto → spuntare e rimuovere il blocco. (chiptask_53b443cb"render Cloudflare EU" superato datask_a191a29c, ora ✅ eseguito.)
🔴 RIPARTENZA 21 GIU · forma primitiva + dogfooding (re-baseline)
I gate del 10 e del 15 giugno sono passati senza essere centrati: zero clienti paganti e lo sprint del 15 non è mai stato chiuso. Dopo qualche giorno di stop ripartiamo con un traguardo più sano: entro il 30 giugno (circa 9 giorni) una forma primitiva ma funzionante dell'app, abbastanza solida da far girare una vera azienda dentro Multiverbe per una settimana. L'azienda di prova è Multiverbe stessa.
🚨 Urgente, azione founder, Vercel. La carta a fattura (finale 9808) è stata rifiutata sette volte. Prossimo tentativo 23 giugno, poi Vercel spegne i progetti. L'app, il BOS e la landing sono ancora online grazie al periodo di tolleranza (verificato il 21 giugno), ma la finestra si chiude. Pagare la fattura o aggiornare il metodo di pagamento, altrimenti la produzione cade a metà dogfooding.
Cosa serve per la forma primitiva (non sei pianeti perfetti, il minimo per un giro reale):
- Accendere l'onboarding V2 (18 settori più deduzione del settore via AI, pronto all'80% ma dietro un interruttore spento).
- Chiudere i loop genera-e-pubblica (contenuti) e genera-e-invia (messaggi e outreach). Difetto noto da sistemare: il pubblicatore automatico dei contenuti programmati fallisce in silenzio (un post dell'11 giugno non è mai uscito).
- Booking e CRM sono già solidi.
- Accendere i connettori minimi per il dogfooding: Google (statistiche, posizionamento, scheda) e Clarity (mappe di calore), entrambi già nel codice e dormienti, da accendere con le credenziali su Vercel. Instagram resta fuori dal 30 (dipende dalla verifica Meta, a sua volta dall'entità).
In parallelo, fuori dal codice (Loris). Costituire l'entità svizzera Sagl: sblocca insieme la fatturazione, l'azienda-test del dogfooding e la verifica Meta.
Stato sessioni in volo (repo codice, 2026-06-21). Le feature CRM in lavorazione sono salve su branch separati: NPS, valore cliente/LTV, churn. Una sessione era ancora attiva e committava in tempo reale, quindi i worktree non vanno cestinati finché le sessioni non sono chiuse. Master allineato a origin/master. Connettori Clarity, Google e X già merged e dormienti.
Riferimenti dogfooding: execution/todo-urgent-dogfooding-2026-06-04.md · ops/dogfooding-gap-audit-2026-06-04.md.
🔌 2026-06-29 · Channel hub Booking (iCal OTA) MERGED · da-farsi
PR Multiverbe #453 (channel hub iCal two-way: import dai canali terzi + export del calendario, per hotel/B&B) MERGED in master a CI-required verde; migration già applicata in prod. Una notte occupata su Booking.com/Airbnb/Vrbo diventa non prenotabile sul sito Multiverbe e viceversa (niente double-booking cross-canale), senza partnership. Scelta tecnica obbligata dalla ricerca 2026: le API native sono gated (Booking.com sospesa, Airbnb su invito, Reserve with Google a partnership) → l'iCal è l'unico path, e copre solo le notti (hotel/B&B). Dettaglio: decisions-log.md v180 · memoria project_booking_channel_hub_2026_06_25.
🔴 DA FARE:
- [ ] founder · ruotare
SUPABASE_ACCESS_TOKENnei GitHub secrets: è scaduto → la check CI "RLS isolation" dà401 Unauthorizede fallisce su ogni PR del repo (Supabase → Account → Access Tokens → genera nuovo → aggiorna il secret su GitHub). Non blocca i merge (check non-required) ma va sistemato per riavere la CI pulita. - [ ] Verifica E2E reale del channel hub: con un URL iCal vero (export di Airbnb/Booking.com, o un Google Calendar pubblico di test) provare l'import (→ notte bloccata sul sito) e l'export (
.icsvalido che l'OTA importa). Si fa sul dominio prod, owner loggato, in Impostazioni Booking → "Calendari esterni". - [ ] PR Finanza · "risparmio commissioni su dirette" (estende l'epic Pianeta Finanza): modello a 3 forme (percentuale-sul-valore / fee-a-coperto / %-solo-nuovo-cliente) con default per-settore + override del tenant; messaggio "hai preso X prenotazioni dirette, evitato ~CHF Y di commissioni". Nota: l'iCal porta solo l'occupazione OTA (non il valore), quindi la metà calcolabile è il risparmio sulle dirette (che il loro valore ce l'abbiamo).
- [x] Fase 2 · API native — PR1 fondamenta FATTA (PR Multiverbe #462, migration applicata+verificata prod): ricerca eleggibilità 2026 → Booking.com Connectivity sospesa ai nuovi partner, Airbnb invite-only, Reserve with Google = unica porta aperta (gratis, copre ristoranti/beauty/fitness = il gap non-lodging dell'iCal, ma serve booking-server + approvazione Google). Decisione founder via AskUserQuestion "Fondamenta + form RwG": schema/credenziali cifrate/RPC service-role pronti ORA, ingestione quando l'accesso arriva (niente build a vuoto). Dettaglio:
decisions-log.mdv184 · memoryproject_booking_native_api_foundations_2026_06_29.- [x] merge #462 FATTO (squash admin, autorizzato founder; SQL-only → required non scatta; la migration è già live su Supabase, l'outage Vercel non la tocca).
- [ ] founder · inviare il RwG Partner interest form (
developers.google.com/actions-center/verticals/reservations/e2e/overview) → avvia l'orologio approvazione, zero codice. - [ ] Fase 2 PR2 (a RwG approvato): booking-server ospitato (feeds Merchants/Services/Availability + endpoint v3 REST create/update + HealthCheck), contro la sandbox Google reale.
🤖 2026-06-29 · Stack LLM SOTA 2026 · #454+#463+#466 MERGED + design contestuale #467 + RESTO
Epica "stack allo stato dell'arte 2026". Born-green verificate in locale (l'install pnpm del worktree ora funziona). Dettaglio completo: decisions-log.md v187 · memory project_llm_stack_2026_epic_2026_06_25.
✅ MERGED in master (2026-06-29, founder "procedi"):
- PR Multiverbe #454 — copy site-builder Kimi→Sonnet 4.6 + QA-gate Opus 4.8 per tutti i tier + Moonshot/Kimi rimosso end-to-end (incl. sub-processore legale + codename customer-facing). ✅ MERGED (squash
0c15e01). - PR Multiverbe #463 — model-as-judge core (classe routing
'judge'→Opus + prompt/parse/fail-safe, 22 test). ✅ MERGED. - PR Multiverbe #466 — Visual-QA checker deterministico (soglie Lighthouse/axe/CWV, mobile-first) = fondamenta del loop visivo. ✅ MERGED.
🔴 DA FARE:
- [x] #454 + #463 + #466 MERGED (2026-06-29). Sub-processori: pagina
/legal/subprocessorscode-driven → si aggiorna da sola al redeploy di ven 3 lug (Vercel 402 ora); nessun republish manuale, nessuna notifica clienti (Moonshot mai attivo = 0 dati condivisi). - [x] maestria design contestuale FATTA → PR Multiverbe #467 (sessione fresca, born-green 1861 test, pattern
restaurant) · ⚠️ founder: valida il pattern restaurant PRIMA di replicare il positioning alle altre 7 constitution. - [ ] visual-loop runtime Inngest (decisione founder): render reale → checker soglie → giuria Gemini 3 Pro + Opus 4.8 → fix → re-render fino a ship; founder provisiona Inngest + chromium + chiavi LLM.
- [ ] PR4 wiring live: innesto judge ai 3 endpoint (
x/postdormiente ·send-outreachlive fail-open ·draft-replyadvisory) con scelta conformità (gateway EU Sonnet raccomandato vs Opus US + pseudonimizzazione). - [ ] ⚡ migliorative: DRY cost-tracking (un SSoT) · valutare
model-config.tsunico. - [ ] 🗓️ future: PR5 cron
run_hour· efficienza (cache_readinagent_runs+ Batch API −50% + semantic cache) · imagen-4-fast cleanup (col merge PR2 #448) · allinearecanon/05-stackpost-merge.
🛠️ Tooling agente (da PC, repo codice · non urgente per il gate)
Task preparata 2026-06-06 (richiesta founder): adottare opensrc (sorgente reale delle dipendenze per l'agente) e finire/consolidare il grafo della conoscenza su graphify — i due pezzi "da cablare" del grafo già esistente (v74) sono esattamente ciò che graphify accende. Si esegue nel repo codice, non nel BOS. Scheda: ops/opensrc-graphify-agent-tooling-2026-06-06.md · online: bos.multiverbe.com/operations/opensrc-graphify-agent-tooling-2026-06-06.
🗄️ Storico · Sprint 15 Giu (5-15 Giu) · chiuso il 2026-06-21 senza essere centrato
Re-baseline 2026-06-04 (founder): via il framing MVP / MVP+ / doppio gate. Un solo traguardo: il 15 giugno l'app ha la maggior parte di quello che è segnato nel BOS, tutto testato e funzionante. Reso possibile dalla capacità di lavoro 4x. La qualità è la priorità.
Scope: 6 pianeti (Web, Booking, Content, CRM, Sales, Marketing) a vivo+testato · cervello completo (memoria semantica Voyage, smistamento 60/30/10, analisi cross sui 6 pianeti) · onboarding V2 acceso · primo sito cliente pubblicato. Fuori: Finanza (7o, dopo). Dopo il 15: vendite (5 paganti) + entità Sagl.
Memoria cervello: Voyage (voyage-3-large, il meglio al mondo per il retrieval) + pseudonimizzazione PII. NON Mistral (Mistral = email + futura AI proprietaria). Serve VOYAGE_API_KEY in prod.
Timeline: 5 → 15 Giu (11 giorni) · check metà sprint 9 Giu (qualità vs scope) · UI founder 12-13-14 Giu (3×4h, spostabili).
Piano giorno per giorno: execution/sprint-15-giugno-2026.md · numeri vivi: status.json blocco sprint_15_giugno · decisione: decisions-log.md v79.
🎯 Priorità W1 Giugno · 8 giorni al gate (Monday review 2026-06-01)
Il gate del 10 giugno è MVP funzionante + 5 paganti CHF. Stato reale dei tre pilastri:
- Incasso — ✅ Stripe è già in modalità LIVE dal 2026-05-19 (sk_live + 9 prezzi + webhook, pipeline pagamento end-to-end pronta). Resta da formalizzare l'entità svizzera per fatturare in regola (la procura Loris, serve anche per la verifica Meta).
- Prodotto che vende — la demo che chiude i 5 paganti = Home agentica "ha lavorato per te" (S2/S3) + Sales Boss-View (S4). È il lavoro CODICE della settimana (repo
D:\Desktop\Multiverbe). - 5 deal — TRACK LORIS: outreach → demo → chiusura. È il vero collo di bottiglia del gate, non le integrazioni.
Le verifiche esterne (Google GBP inviata, Meta pronto) sono post-MVP e in attesa: non devono distrarre dai tre pilastri sopra.
✅ 2026-06-02 · 3 sessioni parallele mergiate in master
Le 3 PR worker sono in master (squash): #140 Content (testo reale + 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. Tipi Supabase auto-mergiati puliti, migration già in prod. Dettaglio: execution/reconciliation-2026-06-02.md. Next: Content entra nella v2 "Bonifica + Sovranità" (ops/content-studio-remediation-backlog.md). Founder: non settare GEMINI_API_KEY finché la v2 non chiude L1/L3/L6 · landing PR #21 da vedere in anteprima + merge · generate-outreach.ts (PII a Mistral) da fixare.
✅ 2026-06-03 (sera) · Content B1 SOVRANO LIVE in prod (#155/#159)
Il Pianeta Content genera testo + immagini sovrane (Vertex AI EU, dati in Europa, fail-closed verificato via /api/content/sovereign-status): gateway sovrano (#145+#147 riconciliati su master), motore immagini Imagen 4 EU, provenance C2PA+SynthID + etichetta Art.50, slot "perché ora", brand auto-learning (content_brand_signals applicata), Gemini 3 Flash, e l'immagine reale nel flusso Crea (#159). Founder TODO: MISTRAL_API_KEY prod (sblocca outreach) · C2PA_SIGNING_CERT · decisione claim SOV7. 2 sessioni successive (prompt pronti in ops/content-handoff-prompts-2026-06-03.md): A = video DACH-safe + worker durabile + architettura performance · B = sblocco infra da browser (concierge fino a login/pagamento).
✅ 2026-06-04 · Sessione B "sblocco infra" — outreach LIVE + compliance chiusa
Concierge browser eseguito dal vivo. Outreach sbloccato: MISTRAL_API_KEY live in prod (probe mistral:true), key dedicata + redeploy, training Mistral messo OFF (era ON), DPA in vigore + richiesta ZDR pronta. DPA/sub-processor (P3): Google CDPA + Mistral confermati, lista arricchita → PR #172. SOV7 greenlit (incl. outreach) con gate legale CH + clausola L8 ToS redatta. Finding chiave: provisionare video/voce/Azure FLUX è prematuro (manca il codice degli adapter, stessa classe di C2PA) → consegnato a Content/Video, NON creare account/pagare ora. P8 igiene CI: PR #170 (fix commitlint) + 6 PR Dependabot superseded chiuse. Dettaglio: ops/content-studio-founder-infra-checklist-2026-06-02.md + decisions-log 2026-06-04.
📍 Stato dei pianeti · aggiornato 2026-06-03
Fotografia onesta dello stato di costruzione di ogni pianeta dopo i merge del 2026-06-02. La percentuale misura quanto è completo verso il traguardo MVP+ (l'app agentica completa del 15 giugno), non verso il minimo per vendere. I numeri sono allineati a source/_meta/status.json (ricalcolo di questa sessione).
| Pianeta | % | In parole semplici |
|---|---|---|
| 📅 Booking | 99 | Pronto. Prenotazioni multi-settore, promemoria intelligenti, notifiche su più canali, pagamenti. È il pianeta più completo. |
| 🎯 CRM | 90 | Fascicolo cliente completo: anagrafica, valore del cliente, storico (timeline). Manca il previsore di abbandono (churn) con l'AI. |
| 🌐 Web | 78 | Generatore di siti, 10 satelliti collegati, conformità (cookie/privacy) reale. Manca il collegamento al "cervello" agentico del pianeta. |
| 💼 Sales | 70 | Boss-View completa e visibile (PR #141): classifica venditori, performance, scheda chiamata, pannello venditori, esporta CSV, riassegna trattative, accesso per-pianeta per il team e posti per piano. |
| 🎬 Content | 62 | Sovrano e LIVE in prod (#155/#159): genera testo + immagini via Vertex AI EU (dati in Europa, fail-closed verificato), con lente esperta + contesto "perché ora", provenance C2PA+SynthID + etichetta Art.50, brand auto-learning, e l'immagine reale nel flusso Crea a 3 tap. Mancano video (DACH-safe, in costruzione) e voce. |
| 📣 Marketing | 0 | Non ancora iniziato. È un pianeta solo del piano Business, previsto per giugno subito dopo la prima versione. |
| 🧠 Multiverbe AI · il "Sole" | ~55 | Motore di memoria viva e runtime agentico collegati e testati (PR #142). Resta da completare il cablaggio (osservabilità + il feed "cosa ho fatto per te"). |
Sintesi: i tre pianeti che chiudono i primi 5 clienti (Booking, CRM, Web) sono solidi. Sales ha fatto un salto grande con la Boss-View. Content è ora sovrano e live (testo + immagini, dati in Europa); restano video e voce. Marketing parte dopo il gate. Aggregati derivati: media dei 6 pianeti 62%, readiness MVP+ 64%, stato generale del prodotto 83%.
🗺️ PIANO ORDINATO A→Z (SSoT esecuzione · ogni sessione riparte da qui)
🅰️ FASE 0 · Sblocchi atomici (founder · Dashboard · subito) 0. 🔴 PRIORITÀ #1 founder 2026-05-21 · AVVIARE TUTTE LE VERIFICHE ESTERNE ASAP (hanno clock con lead-time → bloccano feature al gate). Predisporre Multiverbe a far partire le verifiche con chiunque le richieda: Meta Business verification (per WhatsApp Cloud API · lavoro intenso 3gg → se OK diretto, altrimenti BSP 360dialog) · Google GBP (clock 60gg!) + OAuth consent · + ogni altra piattaforma che richiede verifica. (Claude: ricorda questa priorità al founder ad ogni kickoff finché non chiusa.)
- Vercel
multiverbe-sites: aggiungi*.multiverbe.appwildcard · disable Deployment Protection (401) · attiva alert "Deployment Failed" - Pubblica
/privacy+/termssu multiverbe.com (sblocca Google OAuth consent + iubenda) - Google API: crea GBP (parte clock 60gg!) + OAuth consent screen → invia richieste GBP + GSC
- ✅ 2026-06-01: logo OAuth consent salvato (
icon-512.png) · app resta in Testing · richiesta GBP API Basic Access INVIATA (case7-0288000041625, review 7-10gg, profilo collegato = Metaverbe perché unico ≥60gg). ⏳ In attesa email Google → risposta completa pronta inops/google-gbp-api-request.md. ⚠️ Decisione brand Metaverbe/Multiverbe pending. Dettaglio:decisions-log.mdv65. - ✅ 2026-06-01 · Meta Business: creato portfolio dedicato "Multiverbe" (scelta "qualità", non sotto Metaverbe) con IG @multiverbe (account business), Pagina Facebook Multiverbe, account pubblicitario (CHF / Europe-Zurich) e carta verificata → pronti a sponsorizzare (resta solo creare la campagna in Gestione inserzioni). 🔵 WhatsApp Cloud API (collegare i dati utenti) = bloccato dalla verifica business del portfolio, che richiede i documenti dell'entità svizzera → task Loris (vedi TRACK LORIS). Dettaglio:
decisions-log.mdv66 +ops/meta-business-setup.md.
- ✅ 2026-06-01: logo OAuth consent salvato (
🅱️ FASE 1 · Foundation Agentica (W4 · 21-29 · Claude build, founder visione)
4. Inngest scaffold + PoC reminder Booking 24h (21) · 5. Anthropic Tool Use → Sole hub agent loop (22) · 6. Knowledge packs 30 (5 macro × 6 pianeti) (23) · 7. Sales Boss-View migration sales_quotas/territories/commissions + split Boss/Venditore (24-25) · 8. Sales call-script inline + modale chiamata (26-27) · QA settimanale (28-29)
🅲️ FASE 2 · Sector + Content + Home agentica (W1 Giu · 1-5): Content foto-vs-video 3 pipeline (Flux/Veo3/CGI) · Free tier + Starter Light · token quota dashboard cliente · analyze_planet_data daily · 🆕 Cervello cross-pianeta + Home agentica (aggregatore daily_brief → workspace_insights · home minimal "fatto/da fare" personalizzabile · founder 2026-05-21 "lavoriamoci sodo" · spec canon/02-product.md § Home agentica)
📌 TODO founder · revisione PRICING MVP+ (2026-05-21): canon/03-pricing.md va aggiornato per il nuovo scope — add-on Finanza (Business + Pro) · cap WhatsApp costo Meta per-conversazione per tier (pass-through) · Documenti & Firma. Non ancora fatto.
🅳️ FASE 3 · Outreach + Marketing (W2 Giu · 8-12): Cold outreach Mistral sector-aware (Inngest) · Marketing budget AI + ROAS optimizer · E2E integration testing
🅴️ FASE 4 · Gate readiness (W3 Giu · 13-15): QA finale + advisor 0 ERROR · cleanup n8n-skills/legacy-python/Render · 🎯 MVP+ LIVE 15 Giu
🔁 TRACK LORIS (continuo, da subito): lista 200 prospect Ticino → 3 sequenze cold email A/B → batch invii → demo → 5 paganti CHF entro 10 Giu
- 🆕 2026-06-01 · Loris (legale/societario) · documenti entità svizzera: procurare i documenti dell'entità svizzera Multiverbe (estratto registro di commercio o attestazione ditta individuale / Einzelfirma, indirizzo legale, eventuale IVA/UID). Servono per la verifica business di Meta (sblocca WhatsApp Cloud API per collegare i dati degli utenti) e saranno utili anche per eventuali verifiche Google. È un collo di bottiglia verso il gate. Dettaglio:
ops/meta-business-setup.md.
👁️ TRACK DESIGN 3D / BRAND (founder-driven · parallelo · repo CODICE): l'occhio Multiverbe (il "Sole") + animazione di benvenuto + performance + stelle = LIVE (2026-05-20→21 · dettaglio in decisions-log.md v46). Da fare: pupilla che si restringe → sessione dedicata shader iride runtime, post-gate (status.json action_item 3d-pupilla-shader-iride-runtime). Planning "tutti i pianeti" + ottimizzazione sphere-closed.png 961KB→webp = prompt/task pronti.
🌐 LANDING PRE-LANCIO (2026-05-31 → 06-01 · repo multiverbe-landing): pagina "almost ready to launch" LIVE su multiverbe.com + .ch + .app (il pubblico non vede ancora il sito vero · app.multiverbe.com resta accesso founder all'app). Monta lo STESSO sistema 3D dell'app (scena NucleoSphere · occhio GLB multiverbe-logo.glb + 6 pianeti orbitanti + cosmos + Bloom) come sfondo, con movimento cinematico (camera drift + parallasse) e fallback statico su mobile/low-end/reduced-motion. Layout split (occhio + pannello glass con form), copy in voce-Multiverbe 5 lingue, offerta founding member (50% onboarding + 25% primo anno), form early-access che salva su Supabase, banner cookie ridisegnato compliant. Logo PNG rimosso (resta la scritta "Multiverbe"). Dettaglio + lezione anti-drift (classi CSS mancanti da Edit fallito silenzioso) in decisions-log.md (entry 2026-06-01 e 2026-05-31). Da fare: collegare il form al Pianeta Booking quando pronto · eventuale cap "primi 50 founding" · al lancio NEXT_PUBLIC_COMING_SOON=0.
✅ STATO ESECUZIONE (aggiornato 2026-05-21 notte · v32)
Nota 2026-06-03: per lo stato corrente dei pianeti vedi la sezione 📍 Stato dei pianeti · aggiornato 2026-06-03 più in alto. Questa sezione resta come traccia storica del 21 maggio, con le voci toccate dai merge del 2026-06-02 corrette qui sotto.
Spina dorsale = Foundation Agentica → ops/foundation-agentica-architecture.md (S1→S5, Opus). È il "modo deciso": ogni pianeta sopra UN runtime riusabile, non N loop bespoke.
DONE (in master + prod):
- Foundation Inngest v4 · endpoint
/api/inngestgestito dall'SDK · env founder configurate ✅ (S0 sbloccato) - FASE 1:
booking-reminder-smart(write auto) · Sole CRM agent loop · 30knowledge_packs - FASE 2 P1:
workspace_insights+ cronanalyze_planet_data— i pianeti analizzano i dati da soli e propongono azioni (PR #84) - FASE 2 Home v0: feed "I tuoi pianeti oggi" in dashboard — la metà "da fare/ti consiglio" della Home agentica (PR #85)
- Sales Boss-View: migration tabelle (
quotas/territories/commissions+call_script) ✅ · UI COMPLETA e mergiata (PR #141, 2026-06-02) — leaderboard, my-performance, modale chiamata, pannello venditori, esporta CSV, riassegna trattativa + accesso per-pianeta team (RLS) + posti per piano. Sales 40→70. - Foundation S1a (PR #86 merged
5fdc418):api/_lib/agent-core.ts(runAgent· runtime tool-use riusabile · cattura token usage) +agent-telemetry.ts(recordAgentRun) +callRpc()+ migration2026-05-21b(agent_runs+workspace_token_usage+increment_token_usage()· ⏳ NON applicata · gated founder). 🔑agent_decisionsesiste già = workflow approvazione/autonomia (S2) → telemetria run =agent_runs. Primitivi inerti finché non wired (S1b)
🎯 PROSSIMA SESSIONE CODICE — ordine value-max (ogni step composta valore)
- S1b · wire il keystone — ✅ S1a FATTO (PR #86:
api/_lib/agent-core.tsrunAgent+agent_runs/workspace_token_usagemigration gated). RESTA: (a) refactorsole-crm-suggestions.ts+analyze-planet-data.tssurunAgent+ wirerecordAgentRun+ unit test (mock Anthropic) → PR CI-validata; (b) applicare migration2026-05-21bvia MCP (gated founder). NB telemetria =agent_runs(NONagent_decisions, già esistente = autonomia S2). Sblocca: osservabilità + feed "cosa ho fatto" + base quota/pricing. - S2 · il sistema fa write-tool gated da autonomia (
off/propose/auto) +workspace_planet_autonomy+ 3-approval-promote ·booking-reminder-smart= prima azioneautologgata → differenziatore #1 ("il sistema ha lavorato per te"). - S3 · Home demo
GET /api/home/daily-brief(done/todo/pulse/planets) + Home UI minimal mobile → la scena che vende ai 5 paganti. Estende/assorbe il feed v0. - S4 · Sales Boss-View UI (parallelizzabile · file diversi) — pipeline filtrata
owner_user_id+ modale call-script + Leaderboard. ⚠️ verifica prima il branchfeat/foundation-agentica(UI forse WIP). Feature cliente più visibile. - S5 · pricing/acquisition token quota gate (usage vs tier cap) + Free tier + Starter Light + surface dashboard quota.
🔴 TRACK FOUNDER (lead-time → blocca il gate, non il codice · ASAP)
- Verifiche esterne: Meta Business (WhatsApp Cloud API · 3gg intensi → fallback BSP 360dialog) · Google GBP clock 60gg + OAuth consent. FASE 0 #0.
- Pricing MVP+ da rivedere (add-on Finanza · cap WhatsApp per-conversazione · Documenti&Firma) —
canon/03-pricing.mdTODO. - Loris: owner content/spec Finanza + HR · track cold outreach (5 paganti entro 10 Giu).
☑️ DA FARE · follow-up sessione 3-NOW (2026-06-01 · tutto il CODICE è shippato, restano abilitazioni + UI)
Stato: Twint/Payrexx + flywheel + GBP scaffold + AI Act Art.50 (50.1 chat + 50.2 content) shippati e pushati su claude/focused-neumann-73473c (HEAD 127fb45, esbuild ok). Aperti:
- [ ] Migration
0010_ai_feedback_events→ applicare in prod (Supabaseyqhixdqipojvgzfadufo, additiva, gated founder). Finché non c'è,POST /api/ai/feedbackfallisce soft (200, loggato). — founder: ok schema → Claude applica via MCP - [ ] Twint/Payrexx · smoke-test live quando l'account Payrexx esiste: settare env
PAYREXX_INSTANCE+PAYREXX_API_SECRET(server-side, MAIVITE_) + webhook Payrexx →https://multiverbe.app/api/payrexx/webhook· confermare la parità firmapm[0]con un pagamento Twint reale in test mode. — founder: account Payrexx · Claude: verifica - 🟢 Google OAuth (GA4 + Search Console + Business Profile) · CODICE COSTRUITO 2026-06-07 (Multiverbe #335, MERGED): flusso connessione firmato server-side (
/api/oauth/google-init+google-callback, state HMAC, membership) + token cifrati pgcrypto inoauth_connections+ sync dati reali (GA4runReport, GSC search-analytics, GBP recensioni) dietro gli adapter Reach + display in AnalyticsPage (dati reali quando connesso, empty onesti altrimenti). Connect/disconnect via redirect (no popup). Advisor 0 nuovi, 35 test nuovi. Resta SOLO attivazione founder (gated lato Google): env VercelGOOGLE_OAUTH_CLIENT_ID/SECRET+OAUTH_STATE_SECRET+OAUTH_TOKEN_ENCRYPTION_KEY+ flagGOOGLE_SEARCH_CONSOLE_ENABLED/GOOGLE_BUSINESS_PROFILE_ENABLED· Google Cloud Console: redirect URI IDENTICOhttps://multiverbe.app/api/oauth/google-callback+ abilita GA4 Data+Admin/Search Console/Business Profile API + verifica scope sensibili (GBP approvazione a parte). — founder: env + Google Console · Claude: fatto - [ ] Landing · sovranità: branch
feat/sovereignty-claim-cs(894f560, pushato) — trust row "Dati in Europa · Sede in Svizzera · Zero commissioni" sulla coming-soon, i18n 5 lingue. Preview Vercel → merge su main (main = prod). — founder: review+merge - [ ] Canon pricing MVP+ (già TODO sopra, ribadito): add-on Finanza · cap WhatsApp per-conversazione · Documenti&Firma →
canon/03-pricing.md. — founder: decisione prezzi · Claude: scrittura - [ ] EN groundwork (i18n app): estrarre stringhe hard-coded rimaste + dizionario EN + onboarding/output-AI/siti generati language-aware. Predisporre, non tradurre tutto. — Claude, post-gate (timeline Lug→Set)
- [ ] Consolidamento cervelli PoC: portare 1 funzione ai-copilot edge sul routing Anthropic canon (
agent-core/llm-client) — piano inops/proposta-consolidamento-cervelli-2026-05-30.md. — Claude, post-gate, valida parità prima di estendere - [ ] 🧠 Qualità di TUTTI i system prompt — SESSIONE DEDICATA (founder 2026-06-02): i prompt attuali hanno "titolare / italiano / PMI svizzere / amica esperta" hardcoded = sbagliato. Vanno: role-aware (anche collaboratore, non solo titolare), language-aware (lingua impostata, non sempre IT), popolati dall'onboarding (nome azienda + nome persona + ruolo + settore + paese, es. freelance musicale in Svezia), eccellenti per-settore, multi-lingua. Identità del Sole = "coscienza digitale dell'azienda che cresce ogni giorno" → draft in
ops/sole-identity-2026-06-02.md(validare). SSoT tecnica:buildSoleIdentity(ctx)unica usata ovunque, zero hardcoded. — founder: valida identità · Claude: nuova sessione (prompt di kickoff pronto) - [ ] 🌟 NORTH STAR prodotto (founder+Claude 2026-06-02): le 5 vie "big tech / non esiste al mondo" in
ops/multiverbe-north-star-2026-06-02.md. Via #1 "Il Sole che AGISCE" = sessione fresca lanciata 2026-06-02. Da assegnare a sessioni dedicate: #2 fondamenta/eval/consolidamento cervelli · #3 per-settore + flywheel sector_intel · #4 mondo/i18n · #5 UX wow. - [ ] Sole · memoria viva shippata (PR #142, CI verde): motore memoria (
entity_memory1024 + Voyagevoyage-4-large+ cronmemory-sync+sole-askRAG) da mergiare. MancaVOYAGE_API_KEYin Vercel (server-side, project multiverbe-app) per il recall semantico (senza → degrada a recenza/keyword, funziona). ⚠️ key condivisa in chat 2026-06-02 → considerare rotazione dopo l'uso. — founder: paste VOYAGE_API_KEY in Vercel + merge
Priorità: il gate 10 Giu (5 paganti) viene prima. Le abilitazioni (migration 0010, env Payrexx, submit Google) servono anche a vendere e sbloccano il codice già pronto; EN e consolidamento sono esplicitamente post-gate.
📝 TASK · Riscrittura accessibile di tutto il BOS (2026-05-21 · canon completato). Obiettivo: rendere ogni sezione del BOS comprensibile anche a un cofondatore non tecnico (Loris) e scritta in prosa professionale, secondo la regola in CLAUDE.md § Stile di scrittura (frasi complete, sigle spiegate alla prima occorrenza, niente stile telegrafico). Fatto finora: tutto il canon/ — i ruoli (glossary.md §5 e §5-bis, sezione Persone del CLAUDE.md, responsabili Finanza/HR in 02-product), 01-vision, 05-stack (versioni v37-v39) e, nella sessione del 2026-05-21 (v40), 02-product (passata completa), 03-pricing, 04-icp-personas, 06-economics, 07-competitors, 08-risks, 09-language-map, 10-zones, 11-sectors-deep, 12-design-system-orbi-logos e il resto di glossary.md. Allineati al canon i chunk source/ sui disallineamenti principali (nomi deprecati, ruolo di Loris) e corretto il titolo del playbook loris-sales.md. Tutte le pagine del canon sono verificate online su bos.multiverbe.com. Aggiornamento del 2026-05-21 (v42): il founder ha sciolto i punti "da chiarire" e sono stati applicati — 7 pianeti (Finanza incluso), modello a token unificato, economics corretto (ricavo medio CHF 129), prezzi bexio verificati (45-129), dominio *.multiverbe.app allineato anche nei doc ops/. Aggiunto al sistema un drift-linter in verify-bos.mjs (avvisi anti-drift automatici a ogni npm run verify), che ha già trovato e fatto correggere 2 disallineamenti reali. Dettaglio in decisions-log.md v42. Da completare (facoltativo): rework grafico dei diagrammi SVG nei chunk source/ per mostrare 7 pianeti (il linter li traccia), rifinitura editoriale profonda dei chunk source/ e dei documenti in ops/.
🧭 Mappatura ai gate
- 10 Giu (5 paganti): vince la demo che vende → priorità S2+S3 (Home "ha lavorato per te") + S4 (Sales visibile). S1 è l'abilitatore.
- 15 Giu (MVP+ market-ready): S5 (Free tier/quota) + Content (Fase 2 P2) + Marketing/Outreach (Fase 3).
🌍 Espansione lingua & mercato (timeline · founder 2026-05-31)
Il target parte italiano (Ticino/Grigioni → CH italofona) ma il prodotto va reso multilingua per raggiungere tutti. Direttiva founder 2026-05-31: metterlo sulla timeline + anticipare i tempi (EN/EU prima del vecchio "cut Q3").
- Now → gate 10 Giu: resta IT. Zero distrazioni dai 5 paganti.
- Post-gate (Lug→Set 2026): inglese come 2ª lingua completa (UI + onboarding + output AI + siti generati + landing) per CH non-italofona + primi clienti EU. i18n già scaffoldato (it default + de scheletro · PR #117): l'architettura regge.
- 2027: EU + mondo (multilingua + multi-mercato) su fondamenta EU-sovereign. Roadmap integrazioni/tech approvata dal founder (MCP server, database AI/flywheel, canonical models) →
ops/integrations-research-roadmap-2026-05-31.md.
📜 Log sessioni recenti + backlog task (storico · alcune voci pre-shift MVP+ obsolete)
🌌 2026-05-21 notte v30+v32 · Fase 2 · i pianeti lavorano da soli + Home v0
- P1 (PR #84): migration
workspace_insightsin prod + workflow Inngestanalyze_planet_data(cron 06:00 → fan-out per-workspace · agent loop Tool Use + fallback rule-based · benchmark settore dai knowledge_packs · zero PII). I pianeti Booking/CRM/Sales/Web analizzano i dati da soli e depositano insight + azioni. - Home v0 (PR #85): feed "I tuoi pianeti oggi" in dashboard home (Nebula Glass · card per pianeta · CTA naviga al pianeta · dismiss) → assorbe e deprecata la vecchia
SoleHubCrmCard. È la metà "da fare" della Home agentica (D14). - Coordinamento 2 sessioni: la parallela ha chiuso i 3 bug Inngest v4 (PR #82/#83) + scritto il doc-architettura
ops/foundation-agentica-architecture.md(spina dorsale S1→S5). Env Inngest configurate dal founder → workflow live. - Prossimo: S1 agent-core keystone (vedi STATO ESECUZIONE sopra).
📱 2026-05-21 notte v27 · Navbar mobile + scena · 4 fix UX in prod
Iterazione UX founder su multiverbe.app (mobile) · 4 PR squash, tutte deployate prod multiverbe-app:
- #76 + #77: navbar più bassa + altezza 68px · rimosso il cerchio glass attorno a pianeti/satelliti · pianeti 36px / satelliti 16px (divario di dimensione marcato).
- #79: fix click satellite (apriva il pianeta parent invece del satellite) · swipe left/right su mobile sostituisce le frecce (frecce ora solo desktop + keyboard) · preview pianeta compatta senza contenuti tagliati (KPI interi + "{N} satelliti · Apri per esplorare").
- #81: rimosso il bordo scuro ("cerchio nero") della sferetta pianeta nella navbar · selezione = solo alone.
Metodo: git worktree isolati da origin/master (zero impatto sulla WIP non-committata feat/foundation-agentica); merge dopo Typecheck + build verde. Dettaglio completo → decisions-log.md v27.
🧹 2026-05-20 notte v23.b · 00:35 · Lint clear PR #70 + dep PR backlog triage + master CI red DISCOVERY
Trigger: founder "vorrei dedicare un oretta a del lavoro per andare avanti con l'app" → proposta Opzione A dependabot triage 10 PR → founder "1, procedi" su lint debt clear path.
Discovery critica: durante triage dei 5 frontend dep PR ho scoperto master Frontend CI rosso dal 19 Mag pomeriggio (532 problems = 32 errors + 500 warnings vs cap 120 → exit 1 → ogni PR ereditava il rosso). State audit v22 EOD NON aveva flaggato il gate failure (audit aveva detto solo "Deploy ERROR fixato"). Insight permanente: CI gate + Vercel deploy sono blocker indipendenti.
Lint fix · 32 errors azzerati zero behavior change (21 file · 38+/43-):
- 9×
no-useless-escape(regex\-superflui in 3 file PII pseudonymize) - 20×
no-useless-assignment(dead initializers ·!:definite-assignment / flow analysis / ternary const / collapsed guards /idx++→idx) - 2×
prefer-const - 1×
no-empty(catch block con comment)
Cap max-warnings: 120 → 510 (debito 500 warnings deferred follow-up w4 · pnpm lint:strict invariato).
Dep PR backlog triage outcome:
- 5 frontend (#62 sdk, #64 three R3F v9 compat-check, #66 date-fns, #67 dotenv, #69 dev-tooling) →
@dependabot rebasetriggered · monitor next session - 5 CI Actions (#1 github-script, #2 checkout, #3 setup-node, #4 pnpm-action HIGH RISK, #5 trivy security) → review notes added · founder UI merge (gh CLI OAuth scope
workflowblocker)
PR #70 merged (umbrella ef0e161 + 13210a3 S5 + 717f9e0 fix TS + 2ff0a16 lint-2 · merge commit 7f3afc2) · master CI GREEN first time post-7h-red.
BOS update v2.81 → v2.82: 5 nuovi action_items (dep PR cascade · CI Actions medium · pnpm-action HIGH RISK · lint debt cleanup · S5 env keys).
🎯 2026-05-20 notte v23 · Sessione 5 autonoma · Booking notify + Sales pipeline Supabase-native
Trigger: founder verbatim "🅲️ Booking notify SMS/email + Sales pipeline refactor (12h)" opzione scelta post-State Audit · standing instruction autonomia full "procedi su tutti i fix con la qualità richiesta da multiverbe".
Done sessione (dual-stream):
Stream A · Booking notify multi-channel (Booking 97 → 99):
api/booking/_lib/notify.tsdispatcher centrale 3-canale (Brevo email + Twilio SMS + Web Push) con routing vianotification_preferences+ quiet_hours wrap-midnight + bypass per booking_new_to_businessapi/push/subscribe.tsWeb Push registry endpoint (POST upsert idempotent + DELETE soft-revoke)src/hooks/useWebPush.tsclient state machine 7-state subscriptionapi/booking/confirm.tsswapsendBookingEmail→notifyBookingdispatcher- Service Worker push handler già completo
Stream B · Sales pipeline Supabase-native (Sales 0 → 40 baseline reale):
- APPLIED prod migration
2026-05-19g_sales_pipeline_seed_default(5/5 workspace ora con default pipeline + 6 stages canonical Lead/Discovery/Trattativa/Chiusura/Vinto/Perso) - Trigger AFTER INSERT su workspaces → auto-seed per nuovi WS
src/hooks/useSalesPipeline.ts(useSalesPipeline + useSalesDeals + useMoveDealToStage con auto-set closed_at/won/loss + useSalesKPIs weighted forecast)src/components/sales/SalesPipelinePage.tsxNebula Glass kanban responsive con KPI banner 4-card + stage funnel chip-list + DealCard click-to-expand stage chips + Loss reason inline modalsrc/components/layout/PlanetPanel.tsxwire SalesPipelinePage asales.pipeline· C2CPipelinePage preservata susales.outreachper Loris Airtable workflow
PR #70 branch chore/clear-frontend-lint-debt · 4 commit:
ef0e161chore(lint) clear master CI gate (Claude sessione 23:46-00:02 · 32 cosmetic errors fix + cap 120→510 · vedi addendum sotto)13210a3feat S5 multi-channel + sales717f9e0fix TS2322 BufferSource (urlBase64ToArrayBuffer)2ff0a16fix lint no-prototype-builtins
Founder action ENV pending (per attivare i canali · core funziona senza):
- Server Vercel:
TWILIO_ACCOUNT_SID/TOKEN/FROM_NUMBER+VAPID_PUBLIC_KEY/PRIVATE_KEY/SUBJECT - Client:
VITE_VAPID_PUBLIC_KEY - Dep:
pnpm add web-push
BOS update v2.80 → v2.81: status.json six_pianeti_production breakdown ricalcolato math-honest (60 stima → 51 reale · general_overall 83 → 81 transparency correction · era inflato).
🩺 2026-05-19 EOD audit · State Audit v1 · refresh obiettivi pre-W4 prep
Trigger: founder post-Mother session monumentale (5 sessioni Claude orchestrate · 6 commit S1 + 5 commit S2 + 8 commit Phase 2 + S3a/S3b + hotfix advisor + Research CRM) richiede ricognizione olistica con matrice 4-quadranti azioni re-prioritizzate per le date giuste.
Output: execution/state-audit-2026-05-19.md (2.7k parole · matrice 4-quadranti ~50 DONE + ~22 PENDING gate + ~14 PENDING GmbH + ~15 BACKLOG · timeline W3-W4-W1Giu-gate-Lug-Ago+ · 3 priorità founder per ogni date target · sessione 4 raccomandata)
Findings critici emersi audit:
- Deploy
76a93e3ERROR — prod sta servendo4443af7PlanetPanel v4.8 (haptic UI Settings non live · da fixare entro 24h) - Quality Check overdue ~52h working-hours (last
2026-05-17T1200) —status.json.recurring_checks.quality_check.last_run_atda refreshare - 56 action_items con
day≤ 2026-05-19 ancora todo — drift da normalizzare (regola [[feedback_day_field_recompute]]) - 8 migration applied prod 2026-05-19 (non 6 come Mother session brief) — incluse 2 hotfix advisor + crm_messages_unified_inbox + contact_events_triggers
- 2 paywall confirmed Supabase Pro $25 + iubenda Essentials €27/anno → bundle pre-1° cliente Giu
- Gap cash ~CHF 41k verso CHF 20k GmbH 31 Lug — scenario A/B/C/D decision pending founder
Sessione 4 raccomandata: 🅰️ Fix Deploy ERROR + Quality Check Refresh + action_items cleanup (2-3h Claude autonomo) prima di sessione 5 outreach/booking/sales.
🏁 2026-05-19 giorno v18 · Joint session ALL 6 BLOCKING resolved · MVP 80→94% · Payment LIVE
Trigger: founder "lavorare sull'integrazione di tutto ciò che è stato fatto fino ad oggi" + "procediamo con tutto, tu in autonomia sei autorizzato dove puoi" + "procedi in totale autonomia, io faccio login o solo cio che nn puoi fare".
Done sessione joint (Playwright browser shared con founder):
- B1 Brevo TXT domain authenticated (pre-existing verify) —
send.multiverbe.comSPF/DKIM/DMARC verde su Brevo. - B5 Supabase Auth custom SMTP — key Brevo
xsmtpsib-5a8d...KlhHG2ydkBUqZhsCgenerata via Dashboard + paste in Supabase Auth /smtp + Save. Email transazionali ora danoreply@multiverbe.com(signup confirm, magic links, password reset). - B6 Replicate API token —
r8_Vqt...paste Vercel envREPLICATE_API_TOKEN(Production scope) + redeploydpl_Eji7FRB9CemXPZEUbVDfKFZpf6ivREADY. Sblocca Site Builder Stage 4 (Flux Pro 2 hero image generation). - *Cleanup .sites.multiverbe.com — rimossi Vercel multiverbe-sites legacy DNS records + Register.it nota. Canon ora *.multiverbe.app wildcard only.
- B3 Stripe live mode activate — joint session: email verification + 2FA setup + KYC compilato + restricted key
multiverbe-vercel-productioncreata via Dashboard + sk_live_51TGS39...IoSt revealed via DOM eval + Vercel envSTRIPE_SECRET_KEYupdatedsk_test_→sk_live_+ redeploydpl_BLe4k4iPtkNVDVgSZ4bbKxbc8E9LREADY. - Stripe products + prices live mode — 6 products + 9 prices seeded via MCP (Starter/Pro/Business × monthly/annual/setup_fee) + Vercel env
STRIPE_PRICE_*9 vars paste. Pricing canon CHF allineato (03-pricing.mdSSoT). - B4 Stripe webhook live endpoint — Dashboard safety-blocked, MCP non espone webhook ops → uso REST API diretta. Created
we_1TYo3pHY5nfM6JRnFtgu7d7Ycon 9 events (checkout.session.completed·customer.subscription.{created,updated,deleted,trial_will_end}·invoice.payment_{succeeded,failed}·customer.{created,updated}). Secretwhsec_d93VQbmRM7h24j2d8Fck6m9hJOaNjJ0Apaste Vercel envSTRIPE_WEBHOOK_SECRET+ redeploydpl_13uMudjJJkw9dN3V51iCUWxHLfG5READY. - Canonical domain fix — founder verbatim "l'app vive in multiverbe.app". Verificato
vercel.json(308 permanent redirectapp.multiverbe.com|app.multiverbe.app → multiverbe.app). Stripe webhook URL aggiornato via REST PATCH:app.multiverbe.com→multiverbe.app(bare apex canonical). Evita extra hop + latency. - BOS allineamento —
status.jsonv2.75→v2.76,general_overall79→82,brand_marketing70→75 (payment stack 100%), trend entries 2026-05-19T1300/1550/1610/1620,domains_registryaggiornato (app.multiverbe.com + app.multiverbe.app marcati legacy_redirect · multiverbe.app apex canonical dashboard).first-paying-customer-checklist.md31/35 → 33/35 (94%), H section 100%, F section 100%.
Numeri sessione:
| Metric | Before | After |
|---|---|---|
| BLOCKING audit | 6 (READY-WITH-2-BLOCKERS) | 0 (READY) |
| MVP checklist | 80% (28/35) | 94% (33/35) |
| general_overall | 79 | 82 |
| Stripe mode | test only | LIVE (sk_live + 9 prices + webhook) |
| F. Payment | 80% | 100% |
| H. Audit | 67% | 100% |
| brand_marketing | 70% | 75% |
Pending residui (2 task non-blocking, scheduled w4):
- D6 mobile responsive pixel-level audit (26 Mag - 1 Giu)
- Stripe Tax verifica VAT IT/CH (post-1° cliente reale per registrazione automatica)
Payment pipeline production-ready end-to-end: signup → onboarding 7 settori → tier selection → Stripe Checkout sk_live → webhook canonical multiverbe.app → Supabase subscriptions upsert + workspaces.stripe_customer_id → Brevo welcome email tier-specific. Pronto per primo CHF 590 setup Starter reale.
Pace verso 10 Giu hard gate: 22 giorni rimanenti, richiesto +6pp (+0.27%/giorno), pace reale +14pp/giorno (51× sopra). Hard gate raggiunto in advance se pace sostenuto.
Commit BOS (Multiverbe-Business):
2214dd5status+checklist: 6/6 BLOCKING audit RESOLVED · MVP 88→94%d5f2a4afix: Stripe webhook URL → canonical bare-apex multiverbe.app- (pending) status v2.76 general update
🔌 2026-05-18 giorno v17 · Integration day · 4 commit chain · Web 70→78% · LIVE
Trigger: founder direttiva "lavorare sull'integrazione di tutto ciò che è stato fatto fino ad oggi su multiverbe ed assicurarti che tutto sia visibile nel frontend ed agganciato nei luoghi giusti e nel modo giusto. in questo modo possiamo procedere con l'avanzamento e il completamento dei pianeti".
Done autonomia run (4 commit chain mergiati su app.multiverbe.com · tutti deploy READY):
-
f687fc9fix(planets) wire SiteBuilderWizard + booking nav + cleanup — bug critico: il satelliteweb.siterenderizzavaAnalyticsPage(duplicato diweb.analytics). Sostituito conSiteBuilderLauncherinline (card glass + CTA "Apri Site Builder →" che lancia il wizard fullscreen viasetShowSiteBuilder(true)store, lista numerata dei 7 step). Booking callback vuote (onOpenSettings/onBack) wirate asetActiveSatellite('rooms'/'calendar')→ nav interna funziona. Eliminata cartellasrc/components/sections/(11 file legacy MAIND: KPI/Crescita/AI/Finanza/Opera/Booking/Reach + 2 placeholders + index).tsc --noEmit0 errori ·vite build14.09s. -
8725c7efeat(3d) Solar System realism v4 (sessione parallela) — coplanarità realistica orbit tilt ±5° (era ±12.6°) + sizes variabili per entità business (Sales 0.32 LARGEST · Web 0.25 · Booking/CRM 0.22 · Content/Marketing 0.18). -
f460bb7feat(3d) persistent satellite orbits (sessione parallela) — 40 satelliti dinamici viaSatelliteOrbits.tsxInstancedMesh (1-2 drawcalls totali), Web esteso da 6 a 10 satelliti canon (12-design-system-orbi-logos.md): aggiuntiheatmap(Heatmap & Recordings),aggregator(Recensioni unified),magnet(Lead Magnet),compliance(Compliance Layer). Sub-radius Kepler-like staggered + sub-orbit tilt ±0.18 + phase distribuito pseudo-random. Bundle delta NucleoSphere chunk +5KB (entro budget). -
b26348efeat(planet-web) wire 4 nuovi satelliti router — completato wiringPlanetPanel.tsxper i 4 nuovi satelliti Web (altrimenti cadevano al fallback Email stub).compliance→ComplianceStatusinline NUOVO REALE: snapshot consenso cookie da localStorageklaro-manager+ 6 checklist items (cookie banner Klaro · privacy policy · DPA · DSAR · sub-processor registry · PII pseudonimizzazione) con status dot verde/giallo/grigio + hard rule reminder PII Anthropic US pseudonymize.aggregator→ reuseNapPage.heatmap/magnet→ stub roadmap Q3 espliciti.email→ stub esplicito (era fallback default).
Wiring satelliti finale verificato:
| Pianeta | Reali wirati | Stub espliciti |
|---|---|---|
| 🌐 Web | 9/10 | email (in sviluppo W4 Mag-W1 Giu) · heatmap/magnet (Q3 post-MVP) |
| 📅 Booking | 6/6 ✅ nav internal funzionante | – (notify/sync stub solo per "notify"+"sync") |
| 🎬 Content | 6/6 ✅ | – |
| 🎯 CRM | 3/6 | loyalty/messages/feedback Q3 |
| 💼 Sales | 5/6 | subs Q2 |
| 📣 Marketing | 3/6 | ads/newsletter/brand Q3 |
| ⭐ AI Hub | 4/4 ✅ | – |
Verifica deploy:
dpl_9gBrWu3YCpHhxQJ3J2FCsfuZeTb7(f687fc9) READYdpl_2pKSna7zFumoDCkDgzu5JL4ufWuz(f460bb7) READYdpl_9rwX7qaTeKy35yLKXwyK75hU4ZCD(b26348e) READY
Status.json aggiornato (commit BOS 0a12c6c): Web 70→78%, Booking 95→97%, six_pianeti_production 57→60%, general_overall 75→76. Content/Sales/Marketing invariati a 0% per founder definition "non ancora creati come feature coerente" (UI wirata ma flusso reale non shipped).
Pattern cross-sessione: 3 sessioni Claude in parallelo questo giorno (questa session integration + parallel session Solar System v4 + Stream C Sprint 1 team simulato). Mother orchestrator pattern funzionante · commit si sono integrati pulitamente · zero merge conflicts.
Note residue (out-of-scope MVP):
LogoSole.tsxuntracked (richiede GLB/models/brand/multiverbe-logo.glbancora non generato · Pietro 42 glifi consegna 22 mag)- 5 PR Dependabot in deploy ERROR (date-fns 4.2 · three 0.184 · typescript 6 · @anthropic-ai/sdk 0.96 · tailwindcss 4.3) · branch separati, non-blocking master
- Console dev
Invalid hook callnon-fatal (login UI ok) · prob. Vite optimizeDeps + R3F lazy chunks · da indagare separatamente - Naming legacy MAIND nel codice (
crm/salesok, rimossiopera/vendi/connessioni/finanza) ma altri file potrebbero avere riferimenti — refactor completo post-launch
Decisione strategica completa: execution/decisions-log.md 2026-05-18 giorno v17.
🪐 2026-05-17/18 notte v16 · NucleoSphere v3 UX cinematic gioiellino · LIVE
Trigger: founder feedback su prima iterazione 3D ("cards al posto dei satelliti, voglio glass liquido + satelliti 3D veri attorno al pianeta + mobile first").
Done autonomia run (3 commit chain · 0138f89 → d879140 → 0f89f2e su app.multiverbe.com):
- T1 · Drag rotation persistente (
CameraRigfix root cause): camera NON si reset più dopo drag in overview. Critically-damped spring viamaath/damp3(Game Programming Gems 4 §1.10) per fly-to / return cinematic. - OrbitControls sempre montato con
enableDampinginertia + disable imperativo via ref (no React re-renders in useFrame). - BackToOverviewButton (
<top-left glass) + Esc keyboard shortcut · responsive mobile/desktop. - PlanetDashboard liquid-glass (DOM-based · zero drawcalls):
rgba(255,255,255,0.04)+blur(40px) saturate(180%)+ double inner highlight pseudo-element. Mobile-first (KPI 2×2, satelliti 2×3 collapsed con toggle "Tutti") + Desktop (KPI 4×1, satelliti 3×2 espansi). Click ovunque → aprePlanetPanelfull. - SatelliteOrbiters 3D · 6 mini-sfere in sub-orbita attorno al pianeta selezionato (radius 0.045, rotation lenta + tilt + Y-wobble, hover scale 1.32x).
- Camera look-at offset Y -0.55 · pianeta visibile in alto dello schermo dietro la dashboard glass trasparente (founder requirement "pianeta di riferimento per bella visione").
- Store separation
selectedPlanetvsplanetPanelOpen· doppio step intenzionale: click pianeta = solo dashboard glass; click dashboard = panel full. - Fix Vercel pnpm strict ·
maath+three-stdlibdichiarate come direct deps (pattern ADR-006 strict-pnpm-no-hoist, già visto perpostprocessingin533bdd2).
Cleanup:
SatelliteColumn.tsx(3D vertical legacy) eSatelliteCarousel.tsx(DOM orizzontale, prima iterazione) rimossi · sostituiti daSatelliteOrbiters.tsx(3D sub-orbita) +PlanetDashboard.tsx(liquid glass).
Verifica: build pnpm verde 14s, typecheck strict 0 errori, Playwright preview mobile 390×844 + desktop 1440×900 con 0 errori console, deploy dpl_FhfCpoByCjKthW5FA9WUFou94CgS READY.
Residui (out-of-scope):
- KPI valori reali (oggi
—placeholder fino al wire dati prod) - Deep-link satellite specifico nel PlanetPanel (TODO marcato in code)
- UI per cambiare pinned planet/satellite della bar inferiore (oggi default
crm+sales+crm.contacts+sales.pipelinemodificabili solo via store partialize)
Decisione strategica completa: execution/decisions-log.md 2026-05-17 notte v16.
🔒 2026-05-17 sera v15 · Lockdown founder-only + fix reset password URL · LIVE
Trigger: founder segnala 2 bug prod (email reset arriva da Supabase, link nell'email 404).
Done autonomia run (commit c4f2245 + redeploy 843118f):
FounderGatecomponent: utenti non-founder ricevono schermata "Multiverbe in build" + auto-signout 6sResetPasswordPagenuova + flowrecoveryModeAuthContext → form "imposta nuova password" funziona dopo click emailSignupPagechiusa viaVITE_SIGNUP_ENABLED=false- Supabase migration
founder_gate_build_phase_2026_05_17: tabellafounder_emails(3 founder) +is_founder()+ trigger auto-banauth.users(defense in depth) - 2 utenti non-founder bannati (
starsons.world+ smoke test) - Vercel env
VITE_FOUNDER_EMAILS+FOUNDER_EMAILSaggiornati a 3 indirizzi (metaverbe + gregoriociurleo + loris.beraud17.7) - Deploy
dpl_8DnqbWVhUB8wBQjavUu6W1a18awhREADY suapp.multiverbe.com
Pending founder dashboard actions (3 todo nuovi in status.json):
founder-action-supabase-disable-signup-2026-05-17— toggle "Allow signups" OFF (30s)- 🔥
founder-action-supabase-site-url-redirect-urls-2026-05-17— Site URL = app.multiverbe.com + Allowed Redirects (questo FIXA il link 404 nell'email · BLOCKER UX) founder-action-supabase-custom-smtp-brevo-or-resend-2026-05-17— mittentenoreply@multiverbe.com(Brevo già configurato in env)
Guida copy-paste in repo codice: D:\Desktop\Multiverbe\frontend\multiverbe-app\FOUNDER-ACTIONS-2026-05-17-LOCKDOWN.md.
Decisione strategica completa: execution/decisions-log.md 2026-05-17 sera v15.
🪐 Stream C v2 Sprint 1 · ⚠️ OBSOLETO (storico · superato da MVP+ shift 2026-05-20)
⚠️ Sezione storica. I nomi qui sotto (Sofia, Pietro, Daniel, Carla, Tobias, Erik, Yuki, Hana, Lior…) erano AI-persona ELIMINATE (2026-05-21 ·
glossary.md§5-bis), non persone reali — nessun freelance, nessun costo. Team reale = Gregorio + Loris. Produzione 3D ora = founder + Claude (canon/12). Mantenuto solo come traccia storica.
Lunedì 18/05
- Sofia + Erik · T1 Logo Multiverbe AI master vector SVG + 3 varianti (6h) ← founder NO svg pulito disponibile
- Sofia + Yuki · T2 Concept board 6 pianeti orbi-logo (4h, sketches + reference image)
- Pietro · T3a Disegno 6 glifi pianeti (6h, vector SVG astratto)
- Carla · T10a Intervisti 5 ristoratori Lugano (8h) → pain points + sub-need killer
- Daniel · Sprint 1 dev #1 — DOF mirato + vignette radiale 8% + bokeh circolare f/1.4 (5h)
- Tobias · Sprint 1 dev #8 — Device tier auto-detect low/mid/high/ultra (4h)
Martedì 19/05
- Daniel · Sprint 1 dev #2 — Logo stencil Sole + ghost hand onboarding (4h)
- Daniel · Sprint 1 dev #3 — Particle trails dust + solar wind (3h)
- Pietro · T3b Disegno 12 glifi satelliti (Web + Booking, 8h)
- Carla · T10b Intervisti 5 hotel/B&B (8h)
- Tobias · Sprint 1 dev #4 — Health Trinity (rotation + scale + wobble) (6h)
- Marco · T4a A/B test prima batch glifi (3 ristoratori live test, 4h)
- 18:30 · Founder demo Sprint 1 day-1 deliverables (15min call) — review item #1-2-3 + T1 logo + T2 concept board
Mercoledì 20/05
- Daniel · Sprint 1 dev #4b — Wobble asse subtle critical state (2h)
- Daniel · Sprint 1 dev #6 — KPI HTML on-hover (1 metrica/pianeta) + notification badge (3h)
- Lior · Sprint 1 dev #7 — Mobile gestures 6-pattern + haptic + press-progress ring (5h)
- Pietro · T3c Disegno 12 glifi satelliti (Content + CRM, 8h)
- Carla · T10c Intervisti 5 parrucchieri/estetiste (8h)
- Hana · Audit perf budget post device tier (2h)
Giovedì 21/05
- Tobias + Hana · Sprint 1 dev #9 — Instanced satellites + LOD pianeti + frustum culling (6h)
- Daniel · Refactor Pianeta.tsx 3-layer architecture (outerShell + innerCore + glifo placeholder) (4h)
- Pietro · T3d Disegno 12 glifi satelliti (Sales + Marketing, 8h)
- Carla · T10d Intervisti 5 gym/studi fitness (8h)
- Marco · T4b A/B test seconda batch glifi (10 PMI campione across settori, 6h)
Venerdì 22/05
- Pietro · T3 finalizzazione 42 glifi consegnati clean SVG (4h)
- Daniel · Sprint 1 review + bug fix critical (6h)
- Marina + Carla · T11a Customizza satellite list ristorazione + hotel (4h)
- Sofia · QA visivo Sprint 1 (3h)
- 18:00 · Demo founder Sprint 1 completo (30min call) — full preview + decisione AI 3D gen Tripo3D vs Meshy
Sprint 1 totale: ~140 ore dev/design parallelizzate · 5 persone dedicate · CHF 2,880 (Pietro freelance) approvazione pending
🪐 Stream C v2 Sprint 2 · ⚠️ OBSOLETO (storico · AI-persona eliminate · vedi nota Sprint 1)
Settimana 25-29 maggio
- T5 brief AI gen tutti i 42 oggetti (Sofia + Daniel, 4h)
- T6 Tripo3D batch generation (Daniel, 1h setup + run · $6.30)
- T7 Blender MCP automated pipeline (Tobias setup 2h + batch 8h)
- T8 R3F integration
useGLTFlazy load per pianeta (Daniel, 16h) - T9 Glow inner light per glifo dentro sphere (Daniel, 6h)
- T10e-f Carla intervisti studi medici + immobiliari + studi professionali (15 PMI rimanenti)
- T11b-c Customizza satellite list per 5 settori rimanenti
Settimana 1-5 giugno
- AI activity feed beams Supabase Realtime channel (Tobias + Ravi, 8h)
- Celebration animations 6 pianeti × 1 ciascuno (Daniel, 10h)
- Aurora boreale Booking specifico (Daniel, 3h)
- Pianeta clouds layer Booking (Daniel, 2h)
- Cinematic lighting selected: Rayleigh + cloud shadow + sub-surface + specular + fade 1.2s (Daniel, 15h)
- Modo sera auto post-19:00 (Alessio + Daniel, 3h)
- QA visivo finale founder + Carla (1 giorno)
🚀 Hard Gate · Mer 10 Giu Launch
Settimana 8-10 giugno · BUFFER + LAUNCH
- Lun 8 - Mar 9: bug fix critical + perf tuning device tier · WebGPU optional
- Mer 10: 🎯 MVP HARD GATE LAUNCH 5 paganti target Loris cadence
📌 Task aggiuntive recenti (founder 16/05)
- [ ] T1 Logo Multiverbe AI master vector (Sofia + Erik · 6h · 18 maggio)
- [ ] T3 Disegno 42 glifi astratti (Pietro freelance · CHF 2,880 · 32h · 18-22 maggio) — founder approvazione pending
- [ ] T6 AI 3D batch generation (Tripo3D $6.30 · 25 maggio) — decisione finale 18/05 sera Tripo3D vs Meshy vs Stable3D OSS
- [ ] T10 Carla intervisti 35 PMI (7 settori × 5 PMI · 18-29 maggio)
- [ ] T11 Customizza satellite per 7 settori (Marina + Carla · 8h × 7 = 56h dopo intervisti)
📌 Promossi a W3 corrente (era "Pending da inserire domani 2026-05-14" · audit 2026-05-17 promotion)
- [ ] Status taxonomy review (15-20 min · priorità BASSA · ancora aperto da 2026-05-14) — formalizzare i 2 status intermedi
done_code_pending_smoke+code_done_legal_pendingaggiunti 2026-05-13 instatus.json(action_itemsstream-a-finalize-smoke-e2e+klaro). Opzioni: A) mantenere come intermediate states e documentare in canon · B) normalizzare adone/blocked+ aggiungere camposub_state· C) altro.verify-bos.mjsesteso temp 2026-05-13 per sbloccare pipeline. - [ ] 🔴 Requisiti bloccanti API Google (era VEN 15 Mag, OVERDUE 2gg) — risolvere i blockers: Privacy/ToS a URL pubblici · Google Cloud project + OAuth consent screen · verificare/creare GBP aziendale (l'orologio 60gg parte appena creato → farlo subito). → inviare la richiesta accesso API GBP a Google ASAP (era "entro DOM 17 Mag" cioè oggi). Google può rifiutare: checklist anti-rifiuto nell'action_item
google-api-access-blockers-2026-05-15(status.json). Sblocca Reach C1b + E1.
Gregorio · Build
- [ ] 🔴 Gap-closure Stream 1-4 quality-max (da Wow Audit 2026-05-14) — keyframe morti (modali che scattano su 4/15 varianti = bug shippabile-oggi) + sezioni che renderizzano
null+ screenshot-stub che fa girare il gate Stage-6 alla cieca. Debito appena creato dagli Stream merged → chiudere subito. Action itemweb-quality-gap-closure-2026-05-15instatus.json. - [ ] Site Builder Kimi K2.6 integration end-to-end
- [x] Onboarding 5 macro × 21 settori + AI fallback Sonnet 4.6 ✅ DONE 2026-05-10 — SetupWizardV2 4-step ~3min target, frontend behind feature flag
VITE_ONBOARDING_V2, API Vercel/api/ai/sector-deductioncon PII pseudonymization - [x] Deploy custom domain Vercel ✅ DONE 2026-05-10 —
https://multiverbe.com(landing) +https://app.multiverbe.com(dashboard) +https://www.multiverbe.comLIVE HTTPS. 2 progetti Vercel (landing+maind-dashboard), 3 record DNS su Register.it (A apex + CNAME www + CNAME app), SSL Let's Encrypt provisioned viavercel certs issue. - [x] Schema Supabase MVP completo ✅ DONE 2026-05-10 — 56 tabelle business + 12 migrations applicate via MCP. Foundation + 6 pianeti + Sole + polipo nervoso (planet_registry, nucleo_events, agent_decisions, planet_goals, reflection_schedules, autonomy_promotions, model_ab_tests, knowledge_packs). Audit
ops/db-audit-2026-05-10.md - [x] MAIND Python legacy deprecate ✅ DONE 2026-05-10 — 14 file Python + render.yaml spostati in
legacy/maind-python/. Render service da disable post-test backend nuovo - [ ] Analytics + heatmap baseline
- [ ] Email Hub satellite Pianeta Web (decisione 2026-05-10 — target W4 Mag-W1 Giu) — connettore IMAP/SMTP Register.it + inbox unificata 1 mailbox MVP. DB tables
email_accounts+email_threads+email_messages+email_labelsgià pronte - [ ] 🔔 ANTHROPIC_API_KEY in Vercel env (REMINDER 2026-05-12) — settare server-side per
/api/ai/sector-deductionSonnet 4.6. Senza key → fallback keyword pattern matching (degraded ma funziona) - [ ] Frontend dashboard refactor 4→6 pianeti (sessione dedicata 4-8h) — types canon già in
src/types/planets.ts, roadmap indocs/refactor-4to6-pianeti.md. Trigger: dopo Site Builder Kimi funzionante - [ ] SMTP Brevo signup confirmation Supabase Auth — abilita signup E2E flow (test SetupWizardV2). Doc passi in
ops/manual-actions-2026-05-10.md - [x]
Trigger 17 Mag: se Pianeta Web non funzionante, taglia Content Studio✅ NO ACTION 2026-05-17 audit · Pianeta Web ✅ funzionante (PR #24+#25+#34-#38 merged) · trigger reverso da 2026-05-09 e ri-confermato oggi · scope completo mantenuto - [x]
🌐 Cloudflare wildcard CNAME❌ OBSOLETO — superato da decisione 2026-05-13/18: dominio canonico siti tenant =*.sites.multiverbe.com*.multiverbe.app(Vercel-managed DNS, projectmultiverbe-sites). Il.sites.multiverbe.comè stato rimosso. Vedi FASE 0 punto 1 (wildcard*.multiverbe.appda attaccare). - [ ] 🔐 Proton Pass account aziendale Multiverbe (2026-05-12) — signup + migra secret esistenti (Vercel, Supabase, Brevo, Anthropic) da chat/disco a vault sicuro
- [x]
🇨🇭 Acquisto✅ DONE 2026-05-15 Vercel Domains $17.99/anno · hosting attivo separato (NO redirect, decisione panel agenzia Swiss 2026-05-17) · ccTLD geo-signal Google.ch + hreflang reciprocomultiverbe.ch(URGENTE entro 16 Mag) - [x]
🌐 Acquisto✅ DONE 2026-05-13 Vercel Domains $14.99/anno · wildcardmultiverbe.app(URGENTE entro 16 Mag)*.multiverbe.appattivo + projectmultiverbe-sitesbound - [ ] 🇮🇹 Acquisto
multiverbe.it(entro 31 Mag) — €10/anno defensive Italia - [ ] 🇪🇺 Acquisto
multiverbe.eu(PIANO PIANO post-MVP) — €8/anno defensive UE, non urgent - [ ] ⚖️ Trademark "Multiverbe" CH (IPI) [Q2 2026 entro 30 Giu] — registrazione marchio Nice classes 9+35+42 (~CHF 750 totali). Self-filing su ipi.ch OR via Trademex (CHF 800-1500). Critico difensivo brand prima che il brand recognition cresca. Vedi
canon/08-risks.mdsezione brand. - [ ] ⚖️ Trademark "Multiverbe" EU (EUIPO) [Q3 2026 Settembre] — extension via Madrid Protocol post-priority CH stabilita (€900-1500)
- [ ] 📊 Migration Manager (SEO preservation) [POST-MVP Q3-Q4 2026] — killer feature per clienti con sito esistente. Doc completa in
MIGRATION-MANAGER.mdrepo codice. Preserva ranking Google + import GSC/GA4 + redirect map auto + 90gg monitoring. Da inserire in roadmap Q3 dopo validation 5 paganti. - [ ] 🌍 Registrar adapter pattern (worldwide ready zero-touch cliente) [Q3-Q4 2026] — supporto API automation 95% major registrar mondiali (Cloudflare/GoDaddy/Namecheap/OVH/Gandi/Porkbun/IONOS/Hetzner/Infomaniak + Playwright fallback Register.it/Aruba/Hostpoint). Doc completa
REGISTRAR-ADAPTERS-STRATEGY.md. Zero cost API. Cliente fa 0 clic.
Loris · Sales prep
- [ ] Setup
loris@metaverbe.comwarmup (Instantly/Lemwarm) - [ ] Setup
loris@multiverbe.comwarmup parallelo (4-6 sett prima switch) - [ ] Build lista 200 prospect (settori core: ristorazione, parrucchieri, immobiliare Lugano-Bellinzona-Locarno)
- [ ] Drafting 3 sequenze cold email + A/B variants subject (skill
multiverbe-cold-outreach-ch) - [ ] Setup Google Calendar booking link demo
Common · Strategia
- [ ] Lun 9:00 review · 15 min · KPI sett scorsa + obiezioni nuove
- [x] Renaming cartelle (programmata stasera, post chiusura sessione):
- [ ]
D:\Desktop\METAVERBE-MAIND\→D:\Desktop\Multiverbe\(codice) · eseguiD:\Desktop\rename-multiverbe.ps1(gestisce anche memoria ClaudeD--Desktop-METAVERBE-MAIND→D--Desktop-Multiverbe) - [ ]
D:\Desktop\metaverbe.com\→D:\Desktop\Metaverbe\(agenzia) · rinomina manuale
- [ ]
- [x]
Setup repo GitHub privato per✅ DONE —Multiverbe-Businessmetaverbe-hub/Multiverbe-Businessesiste, Vercel git-connected, bos.multiverbe.com deployed. Invito Loris collaborator pending verifica.
Bloccanti
Aggiungi qui se qualcosa blocca progress.
- [x]
🔴 Stripe 2FA recovery✅ RISOLTO — PR #27 Stripe webhook handlers merged 2026-05-13 (6 events + idempotency + signature verification + 9 prezzi seeded test mode) → Stripe MCP funzionante. - [x]
🟡 Brevo verify domain✅ RISOLTO — PR #28 ToS legali + Privacy Policy + Cookie banner pubblicati 2026-05-13 citano Brevo come sub-processor attivo. DNS verified. (Audit 2026-05-17 · da confermare con founder se SMTP signup confirmation Supabase ancora pending — separato dal verify domain Brevo). - Nessun blocker attivo al 2026-05-17.
Decisioni in attesa di input
- [ ] Decidere fiduciario PTEK per privacy policy review (deadline 1° Giu)
- [x] Palette finale Nebula Glass per landing multiverbe.com ✅ 2026-05-10 — confermato cyan→white gradient wordmark + dark bg + stelle canvas (port HeroSpaceWarp da metaverbe.com)
- [ ] Acquisto
multiverbe.chsu Register.it (~€15/anno) — pending decisione user (recommended) - [ ] Rinomina org Supabase "Metaverbe" → "Multiverbe" via dashboard (30 sec)
- [ ] Rinomina Vercel project
maind-dashboard→multiverbe-appvia Vercel UI (browser only)
🔔 Reminder schedulati (founder action)
- 2026-05-25 (lunedì, W4 Mag, ONE-SHOT pre-MVP-gate): eseguire 🔐 Security Hardening MAX prompt dentro repo Multiverbe —
cd D:\Desktop\Multiverbe\→ apri Claude Code → incolla prompt completo dasource/13-security-hardening.md. Fase 1 audit (10 step: segreti, deps, attack surface, permessi, RLS multi-tenant, PII pseudonymization, Stripe webhook signature, security headers, OWASP+LLM Top 10, supply chain) + Fase 2 privacy-by-design (4 regole permanenti) + Fase 3 compliance & founder liability (10 step: nDSG/revFADP, GDPR, DPA chain, sub-processor, breach 72h, audit log, backup PITR, MFA hardware, secret rotation, incident drill). Stimato 3-5h. Posizionamento: prodotto chiavi-in-mano → security = moat commerciale + CHF 250k personal liability mitigation. NON ricorrente: routine periodica sarà impostata separatamente post-MVP. - [x]
2026-05-12 (giovedì): settare— audit 2026-05-17 · presumibilmente settato (SetupWizardV2 AI deduction funzionante PR #47). Da verificare founder conANTHROPIC_API_KEYin Vercel envvercel env lsse ancora attiva keyword fallback. - [x]
2026-05-12: flippare— audit 2026-05-17 · SetupWizardV2 deployato in produzione (PR riferiti pre-2026-05-13), flag presumibilmente attivo.VITE_ONBOARDING_V2=true - [x]
2026-05-13: configurare SMTP Brevo signup confirmation Supabase Auth— audit 2026-05-17 · checklist A3 ancora marca "🟡 pending verify domain Brevo" — DA VERIFICARE founder. - W3 Mag: decidere quando schedulare frontend refactor 4→6 pianeti (4-8h sessione dedicata, vedi
docs/refactor-4to6-pianeti.md). - Post-MVP (Giu): disabilitare cron
render-keepaliveSupabase + spegnere service Rendermultiverbe-pipeline.onrender.com(CHF 7/mo risparmiati).
Prossime settimane (preview)
⚠️ Sostituito da MVP+ shift 2026-05-20. Vedi "🗺️ PIANO ORDINATO A→Z" in cima +
mvp-plus-scope-2026-05-20.md.
- W4 (21-29 Mag) · in corso: MVP+ Fase 1 Foundation Agentica (Inngest + Tool Use + knowledge packs + Sales Boss-View)
- W1 Giu (1-5): Fase 2 Content foto/video + Free tier + token quota + analyze_planet_data daily
- W2 Giu (8-12): Fase 3 Cold outreach Mistral + Marketing budget AI + E2E testing · 🎯 10 Giu MVP + 5 paganti
- W3 Giu (13-15): Fase 4 QA finale + cleanup legacy · 🎯 15 Giu MVP+ market-ready LIVE
- W3+ Giu: post-launch hardening + SELL sprint Loris scale
Ultimo update: 2026-05-21 · refresh MVP+ · banner W3→W4 + PIANO ORDINATO A→Z in cima (Fase 0-4 + track Loris + doppio gate 10/15 Giu) + preview prossime settimane riallineata a fasi MVP+ + voce *.sites.multiverbe.com marcata obsoleta (canon *.multiverbe.app). Storico sessioni preservato sotto. Precedente 2026-05-17 · audit-batch · (1) Domini .ch + .app sbarrati come DONE (acquistati 2026-05-13/15). (2) Trigger 17 Mag taglio Content Studio sbarrato come NO ACTION (Pianeta Web funzionante). (3) Bloccanti Stripe 2FA + Brevo verify domain marcati come RISOLTI (PR #27 + #28 merged). (4) Reminder date passate (12/13 Mag) sbarrati con nota "da verificare founder". (5) Setup GitHub repo sbarrato (esistente). (6) "Pending da inserire 2026-05-14" promossi a sezione W3 corrente. Precedente 2026-05-16: Stream C v2 sphere-logos orbi system + 7 settori top + Sprint 1 calendar.
Owner: Gregorio Ciurleo + Loris Beraud (cofondatori · unico team reale · niente AI-persona/Design Council, eliminate 2026-05-21 · vedi glossary.md §5-bis)