Skip to content
D · 07 · TECHNISCHE WRITE-UP

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.

  • REPO github.com/rutgertuit/prism →
  • RUNTIME 9 Cloud Run-services + Cloud Composer · europe-west4
  • FOCUS YouTube-first · Benelux-middenmarkt-MVP
  • STATUS MVP afgesloten 2026-05-01 · open source, gebouwd na werktijd
01 · INFORMATIEARCHITECTUUR IN VIER SECTIES

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.

SectieWat het doet
01 · SetupOnboarding-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 · CreateBriefformulier met cost-cap + budgettier. De Generate-service rendert 16:9-varianten via Veo 3 + Imagen 3.
03 · RecutDe Reframe-service maakt 9:16 Shorts via vigenair + een FFmpeg-worker. De Dub-service verzorgt vertaling (Ariel) + Chirp 3 HD-stem.
04 · DistributeDe 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.
02 · DE VLOOT

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.

ServiceDirectoryTaak
Shared foundationsservices/_shared/Audit logging via wrap(), gedeeld JobState-contract, register_service(), strikte /healthz-probe afgedwongen op elke revisie.
Brand Kitservices/brand_kit/Gemini-gebaseerde extractie van merkassets uit PDF's OF distillatie van een website-URL (v1.2).
Onboarding Wizardservices/onboarding_wizard/OAuth per klant + prechecks + gekoppeld klantdocument. Skip-OAuth-pad ondersteund.
Generateservices/generate/Veo 3 + Imagen 3 variant-rendering (16:9). Cost-cap vooraf geprojecteerd vóór elke provider-call.
Reframeservices/reframe/9:16 Smart-Reframe via vigenair + de FFmpeg-worker.
FFmpeg workerservices/ffmpeg_worker/Interne Cloud Run-worker — pixelbewerkingen + keyframe-extractie. Invoker-locked op Reframe + Judge.
Dubservices/dub/Vertaling op basis van Ariel + Chirp 3 HD-dubbing. Geen voice cloning in de MVP.
Judgeservices/judge/Compliance-scoring (Gemini-as-judge) — binair pass/fail; nooit een derde staat.
Adsservices/ads/Push van Google Ads-campagne (altijd PAUSED) + UNLISTED YouTube-upload.
Insightsservices/insights/VTR-signalen, creative DNA, generatie van prompt hints. Kosten-rollup + 7-daagse trailing VTR-mart + segmentatie op merkkleur.
03 · OPVALLENDE ONTWERPKEUZES

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.
04 · STACK

Wat eronder draait.

LaagDetail
Web cockpitNext.js 14. Surfaces: Flight Deck (dashboard), Brand Kit, Brief, Review-galerij, Launch confirm, Insights Signal Wall, Client Settings.
Services9 FastAPI-services + _shared foundations.
GenerativeVeo 3 + Imagen 3 (Generate). Gemini voor brand-kit-extractie + compliance-beoordeling. Ariel + Chirp 3 HD (Dub).
Worker pipelinesvigenair + de FFmpeg-worker voor 9:16 Smart-Reframe. Invoker-locked zodat alleen Reframe + Judge de worker kunnen aanroepen.
IngestionComposer DAGs + dbt mart (fact_creative_performance). Synthetic backfill-loader voor omgevingen zonder live advertentiedata.
InfraTerraform voor een apart GCP-project, europe-west4. Single-region MVP.
Vendored OSSariel, vigenair, dreamboard, copycat — als forks/-submodules binnengehaald en ingebouwd in de Reframe- + Dub-paden.
Testing943 frontend-tests + 146 backend-tests slagen bij MVP-afsluiting. Test-suites per service draaien via Makefile-targets.
05 · OPLEVERMODEL

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.

WAAROM DIT BESTAAT

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.

Lees de broncode op GitHub →