Prism.
Agentische tooling voor creatieve bureaus, gericht op YouTube.
Eén Client Service Director houdt de creatieve keuze. De tool doet de mechanische stappen daartussen: van statische merkassets 16:9- en 9:16-videovarianten maken, dubben, de compliancecheck, en een gepauzeerde campagne die klaarstaat voor review. Gebouwd om het deel van de bureauworkflow samen te persen dat geen drie vergaderingen nodig heeft.
Setup · Create · Recut · Distribute.
De cockpit splitst de workflow op in vier expliciete secties — de operator weet altijd in welke fase van het proces hij zit, en de veiligheidscontracten hangen aan de secties, niet aan losse knoppen.
| Sectie | Wat het doet |
|---|---|
| 01 · Setup | Onboarding-wizard (OAuth per klant), Brand Kit-extractie uit PDF's of website-URL's, koppeling van het klantdocument. Een skip-OAuth-pad laat een klant onboarden zonder Google-koppeling. |
| 02 · Create | Briefformulier met cost-cap + budgettier. De Generate-service rendert 16:9-varianten via Veo 3 + Imagen 3. |
| 03 · Recut | De Reframe-service maakt 9:16 Shorts via vigenair + een FFmpeg-worker. De Dub-service verzorgt vertaling (Ariel) + Chirp 3 HD-stem. |
| 04 · Distribute | De Judge-service draait compliance-scoring (Gemini-as-judge, binair pass/fail). De Ads-service pusht de campagne en de YouTube-upload. De Insights-service rolt VTR-signalen + creative DNA + prompt hints terug de Signal Wall in. |
Negen services + gedeelde fundamenten.
Elke service is een eigen Cloud Run-revisie. Elke service registreert via hetzelfde gedeelde contract, en elke actie wordt audit-gelogd via dezelfde wrap(), zodat alle negen dezelfde platformvorm hebben.
| Service | Directory | Taak |
|---|---|---|
| Shared foundations | services/_shared/ | Audit logging via wrap(), gedeeld JobState-contract, register_service(), strikte /healthz-probe afgedwongen op elke revisie. |
| Brand Kit | services/brand_kit/ | Gemini-gebaseerde extractie van merkassets uit PDF's OF distillatie van een website-URL (v1.2). |
| Onboarding Wizard | services/onboarding_wizard/ | OAuth per klant + prechecks + gekoppeld klantdocument. Skip-OAuth-pad ondersteund. |
| Generate | services/generate/ | Veo 3 + Imagen 3 variant-rendering (16:9). Cost-cap vooraf geprojecteerd vóór elke provider-call. |
| Reframe | services/reframe/ | 9:16 Smart-Reframe via vigenair + de FFmpeg-worker. |
| FFmpeg worker | services/ffmpeg_worker/ | Interne Cloud Run-worker — pixelbewerkingen + keyframe-extractie. Invoker-locked op Reframe + Judge. |
| Dub | services/dub/ | Vertaling op basis van Ariel + Chirp 3 HD-dubbing. Geen voice cloning in de MVP. |
| Judge | services/judge/ | Compliance-scoring (Gemini-as-judge) — binair pass/fail; nooit een derde staat. |
| Ads | services/ads/ | Push van Google Ads-campagne (altijd PAUSED) + UNLISTED YouTube-upload. |
| Insights | services/insights/ | VTR-signalen, creative DNA, generatie van prompt hints. Kosten-rollup + 7-daagse trailing VTR-mart + segmentatie op merkkleur. |
De veiligheidscontracten.
Dit zijn de standaarden waardoor iemand de tool op een deadline-dag kan gebruiken zonder alles na te lopen.
- Strikte /healthz-probe op elke revisie
- Elke Cloud Run-service registreert zichzelf via een gedeeld contract en levert een strikte /healthz. Een revisie die niet slaagt, wordt niet gepromoveerd.
- Cost-cap vooraf geprojecteerd vóór elke provider-call
- Generate roept Veo of Imagen pas aan als de geprojecteerde kosten zijn berekend tegen het budgettier in de Brief.
- Altijd PAUSED, altijd UNLISTED
- Ads pusht campagnes in de staat PAUSED. YouTube-uploads staan standaard op UNLISTED. Twee veilige standaarden die het verschil maken tussen een tool die je vertrouwt en een tool die je scherp in de gaten houdt. De Launch-bevestigingsmodal in de cockpit dwingt de operator om de PAUSED-staat expliciet te erkennen voordat er gepusht wordt.
- Binair pass/fail bij compliance — nooit een derde staat
- Judge geeft pass of fail terug. Geen 'misschien', geen geel/oranje op compliance-oppervlakken. De ontwerptaal van de review-galerij dwingt dit af: er is geen derde kleur.
- Keyboard-first review
- De Review-galerij gebruikt j/k om te navigeren, a om goed te keuren, r om af te keuren. Hover-preview, gestructureerde toast-foutmeldingen. De Client Service Director hoort een wachtrij leeg te werken, niet erdoorheen te klikken.
- Type-de-naam-veiligheidsmodal bij destructieve acties
- Een klant intrekken is een soft-delete; herstellen brengt hem terug. Maar de intrek-modal vraagt je de klantnaam in te typen, hetzelfde patroon dat GitHub gebruikt bij het verwijderen van een repo.
- Audit-log alles via wrap()
- Elke service-actie loopt door een gedeelde audit-logging-helper. Er is één audit-vorm voor alle negen services, en juist die uniforme vorm maakt forensisch onderzoek mogelijk.
- Industriële, ingetogen esthetiek
- Industriële ingetogenheid, geen decoratieve gradiënten, geen compliance-geel. De interface leest als iets wat een werkende CSD om 18:30 op een deadline-dag vertrouwt.
Wat eronder draait.
| Laag | Detail |
|---|---|
| Web cockpit | Next.js 14. Surfaces: Flight Deck (dashboard), Brand Kit, Brief, Review-galerij, Launch confirm, Insights Signal Wall, Client Settings. |
| Services | 9 FastAPI-services + _shared foundations. |
| Generative | Veo 3 + Imagen 3 (Generate). Gemini voor brand-kit-extractie + compliance-beoordeling. Ariel + Chirp 3 HD (Dub). |
| Worker pipelines | vigenair + de FFmpeg-worker voor 9:16 Smart-Reframe. Invoker-locked zodat alleen Reframe + Judge de worker kunnen aanroepen. |
| Ingestion | Composer DAGs + dbt mart (fact_creative_performance). Synthetic backfill-loader voor omgevingen zonder live advertentiedata. |
| Infra | Terraform voor een apart GCP-project, europe-west4. Single-region MVP. |
| Vendored OSS | ariel, vigenair, dreamboard, copycat — als forks/-submodules binnengehaald en ingebouwd in de Reframe- + Dub-paden. |
| Testing | 943 frontend-tests + 146 backend-tests slagen bij MVP-afsluiting. Test-suites per service draaien via Makefile-targets. |
Gebouwd met een multi-agent-opzet.
Prism is ook een werkend voorbeeld van hoe het project is gebouwd. Specialistische agents werken in aparte git worktrees, een review-agent controleert elke PR, en ik bewaak de merges op modulegrenzen. Vastgelegde contracten, zoals de audit-vorm en de cost-cap-projectieregel, staan in FOR_AGENTS.md. Dezelfde agent-discipline die de vier secties van de cockpit oplevert, levert ook de codebase op.
Een YouTube-first creatieve workflow kost normaal meerdere mensen — een regisseur, editor, dubber, compliance, ads ops. Veel van dat werk is mechanisch en hoort geen vergadering nodig te hebben. Prism neemt de mechanische laag over, zodat de Client Service Director de creatieve keuze houdt — wat we zeggen, tegen wie, met welke cost cap — en het platform doet de rest. Het is gebouwd voor de drukste dag in de week van een account director.