Skip to content
D · 07 · TECHNISCHE WRITE-UP

Prism.

Agentische tooling voor creatieve bureaus, gericht op YouTube.

Eén Client Service Director die meer draait van de creatieve YouTube-workflow die normaal meerdere mensen kost. Statische merkassets erin, platform-klare 16:9 + 9:16-videovarianten eruit, beoordeeld op compliance en klaar voor de campagne. Gebouwd om het deel van de bureauworkflow samen te persen dat geen drie vergaderingen nodig heeft.

  • REPO github.com/rutgertuit/prism →
  • RUNTIME 10 Cloud Run-services + Cloud Composer · europe-west4
  • FOCUS YouTube-first · Benelux-middenmarkt-MVP
  • STATUS MVP afgesloten 2026-05-01 · gepubliceerd voor portfolio-transparantie
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, met een kostenprojectie vooraf, vóór elke provider-call.
03 · RecutDe Reframe-service maakt 9:16 Shorts via vigenair + een FFmpeg-worker. De Dub-service verzorgt vertaling (Ariel) + Chirp 3 HD-stem (geen voice cloning in de MVP).
04 · DistributeDe Judge-service draait compliance-scoring (Gemini-as-judge, binair pass/fail). De Ads-service pusht de campagne — altijd PAUSED — en uploadt naar YouTube als UNLISTED. 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 met een strikte/healthz-probe. Elke service registreert via hetzelfde gedeelde contract; elke actie wordt audit-gelogd via dezelfde wrap(). Eén platformvorm over negen oppervlakken — niet negen toevallige architecturen.

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.

De meeste hiervan zijn geen features — het zijn beslissingen die de tool betrouwbaar maken op een deadline-dag. Het platform is het contract; de cockpit dwingt het alleen af aan de operator-kant.

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. Healthchecks zijn infrastructuur, geen folklore.
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. De kostenpoort is het contract, geen waarschuwing achteraf.
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. Compliance-ambiguïteit is de bug; haal de bug weg door de derde staat weg te halen.
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 vereist dat je de klantnaam intypt. Het patroon is geleend van het verwijderen van een GitHub-repo — de wrijving is de feature.
Audit-log alles via wrap()
Elke service-actie loopt door een gedeelde audit-logging-helper. Het platform heeft één enkele audit-vorm, niet 10 verschillende per service. Forensisch onderzoek werkt omdat de log-vorm uniform is.
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. Hij blijft bewust rustig.
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. Elk levert een strikte /healthz; elk registreert via het gedeelde contract.
GenerativeVeo 3 + Imagen 3 (Generate). Gemini voor brand-kit-extractie + compliance-beoordeling. Ariel + Chirp 3 HD (Dub). Geen voice cloning in de MVP.
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 het iamagency 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 staan in FOR_AGENTS.md: wat de audit-vorm moet zijn, wat het strikte /healthz-contract is, wat de cost-cap-projectieregel zegt. 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 draait op hetzelfde principe dat Luminary bij elkaar houdt — de machinerie is stabiel, de keuze van de mens is de enige variabele die beweegt — deze keer gericht op de drukste dag in de week van een account director.

Lees de broncode op GitHub →