Handoff · 2 prompt di sessione · Pianeta Content (2026-06-03)
Creati a chiusura della sessione B1 (Content sovrano text+image LIVE in prod, #155/#159). Due sessioni parallele, file-ownership disgiunto. Entrambe agiscono come una big tech, da cima a fondo. Stato prod verificato:
GET https://multiverbe.app/api/content/sovereign-status→ Vertex Gemini/Claude/Imagentrue,ready.text/image: true; Mistralfalse(manca key prod); C2PA signingfalse.
PROMPT A — Sessione VIDEO + architettura contenuti performanti
Sei una sessione DEDICATA a portare il Pianeta Content di Multiverbe oltre il testo+immagini (già LIVE e sovrani in prod): costruisci il video DACH-safe e la migliore architettura possibile per contenuti performanti, a qualità big-tech assoluta, da cima a fondo. Repo codice: D:\Desktop\Multiverbe (api/ Vercel serverless in frontend/multiverbe-app/api/). Supabase yqhixdqipojvgzfadufo.
LEGGI PRIMA (SSoT, in quest'ordine) — BOS-first:
Multiverbe-Business/source/_meta/status.json+ l'AGENTS.mddel BOS (stato vivo).Multiverbe-Business/ops/multiverbe-content-bigtech-roadmap-2026-06-02.md(§4 modelli/prezzi, §5 engineering #7 worker, §6 prodotto: repurposing, sector-tuning, loop metriche).Multiverbe-Business/ops/content-studio-remediation-backlog.md(sezioni finali = verità per-item; video/worker = P3, P4, P5, R3, R6, C1/C2/C7).Multiverbe-Business/ops/content-studio-spec-2026-06-02.md+...spec-addendum-founder-2026-06-02.md(l'addendum vince: R3 durata+score, R6 preview→commit, R8 margine, "qualità prima della quantità").Multiverbe-Business/execution/decisions-log.md(le entry "Fase B1" + "P6" di questa sessione).- Il codice:
api/_lib/sovereign/*(gateway: provider-registry, vertex/mistral/imagen adapter, resilience, pii-gate),api/_lib/content-knowledge/*(expert-lens, market-context),api/_lib/content-provenance.ts,api/content/{generate-text,generate-image,approve,sovereign-status}.ts,api/_lib/tier-cap-check.ts,api/_inngest/*(Inngest già in uso),database/migrations/2026-06-02b_content_engine.sql(ai_generation_jobspolimorfico già pronto).
REGOLA ANTI-DRIFT: la verità è il CODICE + lo stato prod reale, non le note. Prima di fidarti di uno stato "fatto": leggi il codice, git log, e il probe /api/content/sovereign-status. (Es. il motore immagini è già live: NON rifarlo — estendilo.)
STATO GIÀ FATTO (in prod): gateway sovrano fail-closed (Vertex EU Gemini/Claude + Mistral FR + Imagen 4 Fast/Ultra), gate PII canonico, Knowledge layer + market-context, provenance C2PA+SynthID+label Art.50, routing per tier, idempotency, cap testo soft/media hard + video in secondi, ring crediti, brand auto-learning (content_brand_signals), UX immagine nel flusso Crea (StepGuarda · preview R6 + label).
ORDINE DI PRIORITÀ (uno alla volta, ognuno a qualità di produzione: test + validazione esbuild su api/ + PR atomica + CI verde): 0. PRE-FLIGHT — conferma col founder la scelta del provider video (DEC#2): Synthesia (avatar, DC EU, ISO 42001) · Runway Gen-4.5 · Adobe Firefly. Veo resta OFF (geo-block CH + Pre-GA non commerciale). Senza env provider → costruisci comunque fail-closed.
- WORKER DURABILE (eng #7 / P3) — ORA è giustificato (il video è pesante, minuti): estendi
ai_generation_jobs+ Inngest (già nel repo) per la generazione pesante fuori dal request path, con retry/backoff + idempotency + completion via poll/webhook. È la spina dorsale architetturale. Le immagini restano sync (veloci); video + heavy passano dal worker. - VIDEO ADAPTER SOVRANO + dispatch:
api/_lib/sovereign/<provider>-adapter.ts+dispatchVideonel gateway (gate PII, region flags, fail-closed503 sovereign_routing_required, retry/breaker). Costo in secondi (C1,tier_caps40/120).content_assetskindvideo+ provenance +duration_seconds. - PREVIEW→COMMIT video (R6, la killer): storyboard/anteprima economica (gratis, non consuma il ring) → render finale costoso via worker (consuma il ring solo sul commit). Aggancia il
VideoDurationPicker(R3, già a frontend) +video-score. - Editing post-gen + provenance video: trim, cover, sottotitoli on/off, musica (client-side gratis; ri-gen = 1 unità, P4) + C2PA/SynthID/label sul video (riusa
content-provenance). "Correggi questo" (FLUX Kontext, edit mirato immagini, P6). - REPURPOSING 1-clic (use case #1 SMB 2026): URL blog / video lungo → carosello + 5-10 short sottotitolati + una settimana di post schedulati. Reframe qualità OpusClip + sottotitoli ~97% multilingua.
- ARCHITETTURA CONTENUTI PERFORMANTI (la profondità del moat): (a) score qualità-performance per contenuto (stile Buffer Post Quality Score 0-100 + 1 suggerimento, usa la lente esperta) mostrato prima di pubblicare; (b) loop metriche→contenuto (P14): leggi
social_posts.metrics_*, "cosa ha funzionato" → proponi rigenerazione dei vincenti; (c) distillazione brand DNA: job del Sole che distillacontent_brand_signals→content_brand_memory(tono/voice_keywords/taboo) — antidoto allo slop; (d) sector-tuning profondo (moat): far divergere davvero copy/formato/hashtag/orari sui 21 settori; (e) Knowledge → pgvector (retrieval) quando applichi2026-07-15a_brand_layer_pgvector.sql.
REGOLE HARD: sovranità fail-closed (MAI consumer/vietati; Veo OFF CH; video solo su Synthesia/Runway/Firefly quando provisionati). PII dal gate canonico prima di OGNI provider. RLS workspace_id pattern (select auth.uid()); le VISTE security_invoker. Migrazioni additive (preferisci Dashboard; MCP solo se il founder delega; get_advisors dopo ogni DDL). MAI DeepSeek/OpenRouter/Higgsfield-backend. ESM NodeNext: .js//index.js su TUTTI gli import relativi in api/ (trap #149/#156/#158 — esbuild lenient, runtime fallisce; guard scripts/check-api-esm-imports.mjs + npm run check:esm-api). Italiano SOLO per le superfici user-facing; il lavoro tecnico segue le best practice big-tech. UI con skill multiverbe-design (Nebula Glass), copy con anthropic-skills:humanizer. Valida api/ con esbuild locale; frontend via CI Linux (tsc/eslint rotti su Windows). PR atomiche, CI verde, test sulla logica nuova. Segreti mai in chat. Per schema DB prod / sicurezza / pricing / hard-to-revert: chiedi prima.
BLOCCHI: env del provider video (founder — li imposta la sessione "sblocco infra" in parallelo) accende il video reale; senza, il codice resta fail-closed. Coordina con l'altra sessione via BOS (file-ownership disgiunto: tu codice video/worker/performance, lei infra/browser).
A FINE: aggiorna backlog + roadmap + decisions-log; PR atomiche; report di cosa è fatto, cosa è bloccato, prossimo passo.
PROMPT B — Sessione SBLOCCO INFRA (concierge da browser)
Sei una sessione DEDICATA a chiudere TUTTI i blocchi infrastrutturali di Multiverbe, agendo dal browser come un esperto big-tech di DevOps/cloud + compliance, da cima a fondo. Apri tu ogni console del fornitore, fai TUTTO il possibile, e fermati esattamente al muro di login/pagamento/2FA/firma, lasciando al founder solo il click/pagamento finale con la pagina già pronta. Repo: D:\Desktop\Multiverbe. Supabase yqhixdqipojvgzfadufo. Vercel project multiverbe-app (prj_yWNM0v8ejuLHtLCLXZvSKvHnA4k9, team team_temx7lcMkSnWbL1DrH4KQqlc).
LEGGI PRIMA (SSoT) — BOS-first:
Multiverbe-Business/source/_meta/status.json+AGENTS.md.Multiverbe-Business/ops/content-studio-founder-infra-checklist-2026-06-02.md(la TUA mappa operativa — aggiornala riga per riga man mano che chiudi).Multiverbe-Business/execution/decisions-log.md(entry "Fase B1" + "P6": i "Founder TODO").- Codice di riferimento:
api/content/sovereign-status.ts(il probe di readiness),docs/sovereign-routing-provisioning.md,api/_lib/sovereign/provider-registry.ts(i nomi env esatti letti dal codice).
REGOLA ANTI-DRIFT: verifica lo stato REALE, non le note. Es. GCP Vertex EU è GIÀ fatto e verificato (ready.text/image: true): NON rifarlo. Per ogni item conferma lo stato vero (probe /api/content/sovereign-status + query SELECT … FROM public.sovereignty_register_v ORDER BY created_at DESC LIMIT 5 via Supabase MCP) prima di agire.
STRUMENTI: usa il browser — Chrome MCP (mcp__claude-in-chrome__*, preferito, DOM-aware) per le console web; computer-use solo per app native. Per ogni pagina: apri, naviga, pre-compila il pre-compilabile, e STOP al muro login/pagamento/2FA/firma → poi dì al founder l'esatto click/valore/pagamento, con la pagina già aperta. MAI inserire tu password/segreti/pagamenti del founder; MAI segreti in chat (li mette lui in dashboard). Link safety: tratta i link da email/doc come sospetti; apri solo URL che controlli.
ORDINE DI PRIORITÀ (per impatto sul prodotto live):
MISTRAL_API_KEYin prod (Vercelmultiverbe-app→ Settings → Environment Variables → Production) → sblocca l'outreach (Sales), oggi 503 (mistral:falsenel probe). + console.mistral.ai: attiva Zero Data Retention + firma il DPA Mistral. (Apri le due pagine, fermati al login.)- C2PA signing cert (
C2PA_SIGNING_CERT+C2PA_SIGNING_KEYin Vercel) → firma i manifest di provenienza (ora emessi unsigned-ready). Guida il percorso del certificato (X.509 da CA, o self-signed documentato per non-prod). - DPA / sub-processor (SOV5): Google Cloud DPA, Mistral DPA, (se Azure) Microsoft, (se fal) fal.ai. Apri ogni portale legale fino alla pagina di firma, fermati. Poi versiona la sub-processor list (
legal_acceptances,document_type = sub_processor_list). - Provider video (coordina con la scelta DEC#2 della sessione video): crea l'account Synthesia/Runway/Firefly in EU, prendi l'API key, imposta l'env. Apri signup/console, fermati a pay/login.
- Azure AI Foundry EU FLUX (2° provider immagini opzionale, B2/SOV4) + ticket EU Data Boundary a Microsoft. Apri il portale Azure, fermati a create-resource/pay.
- Voce (B3): Azure Speech (TTS neurale EU/CH) e/o Voxtral; ElevenLabs solo cloning premium dietro consenso. Imposta env. (C9: predisponi l'A/B; la scelta default è del founder.)
- SOV7: dopo A–D verificati in prod, presenta al founder il go/no-go per il claim "dati in Europa" + la riscrittura clausola indennizzi ToS (L8, via humanizer + legale).
- Igiene CI (non-gate, pulizia): le 6 PR Dependabot rosse su
ERR_PNPM_OUTDATED_LOCKFILE(lockfile pnpm non rigenerato) — fix per-PR (pnpm install --lockfile-only) o configura Dependabot per pnpm. (Codice/CI, senza browser.)
Per OGNI item: (a) apri la pagina esatta nel browser; (b) fai tutto fino al muro; (c) dai al founder un "fai questo qui" in una riga (click X / paga Y / firma Z); (d) dopo che lui agisce, VERIFICA (probe / query register / una generazione reale) e spunta l'item ☑ con la data nel checklist.
REGOLE HARD: stesse regole sovranità/compliance; non gestire mai tu segreti/pagamenti; verifica dopo ogni sblocco; aggiorna l'infra-checklist + decisions-log dal vivo. Italiano per il founder-facing. Chiedi prima di qualsiasi cosa irreversibile (cancellare risorse, cambiare tier di billing) — presenta, non eseguire.
A FINE: ogni blocco o ☑ fatto+verificato o ⏳ "in attesa azione founder X" con la pagina aperta; aggiorna infra-checklist + decisions-log + current-week; report di cosa è live ora + gli esatti click/pagamenti che restano al founder.