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/Imagen true, ready.text/image: true; Mistral false (manca key prod); C2PA signing false.


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:

  1. Multiverbe-Business/source/_meta/status.json + l'AGENTS.md del BOS (stato vivo).
  2. 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).
  3. Multiverbe-Business/ops/content-studio-remediation-backlog.md (sezioni finali = verità per-item; video/worker = P3, P4, P5, R3, R6, C1/C2/C7).
  4. 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à").
  5. Multiverbe-Business/execution/decisions-log.md (le entry "Fase B1" + "P6" di questa sessione).
  6. 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_jobs polimorfico 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.

  1. 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.
  2. VIDEO ADAPTER SOVRANO + dispatch: api/_lib/sovereign/<provider>-adapter.ts + dispatchVideo nel gateway (gate PII, region flags, fail-closed 503 sovereign_routing_required, retry/breaker). Costo in secondi (C1, tier_caps 40/120). content_assets kind video + provenance + duration_seconds.
  3. 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.
  4. 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).
  5. 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.
  6. 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 distilla content_brand_signalscontent_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 applichi 2026-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:

  1. Multiverbe-Business/source/_meta/status.json + AGENTS.md.
  2. Multiverbe-Business/ops/content-studio-founder-infra-checklist-2026-06-02.md (la TUA mappa operativa — aggiornala riga per riga man mano che chiudi).
  3. Multiverbe-Business/execution/decisions-log.md (entry "Fase B1" + "P6": i "Founder TODO").
  4. 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):

  1. MISTRAL_API_KEY in prod (Vercel multiverbe-app → Settings → Environment Variables → Production) → sblocca l'outreach (Sales), oggi 503 (mistral:false nel probe). + console.mistral.ai: attiva Zero Data Retention + firma il DPA Mistral. (Apri le due pagine, fermati al login.)
  2. C2PA signing cert (C2PA_SIGNING_CERT + C2PA_SIGNING_KEY in 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).
  3. 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).
  4. 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.
  5. 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.
  6. 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.)
  7. 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).
  8. 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.