Agentic creative-agency tooling for YouTube. Prism turns static brand assets into platform-ready video variants (16:9 + 9:16 Shorts), localized, brand-compliance-checked, and ready to push to Google Ads — designed so a single Client Service Director can run an end-to-end creative workflow that previously needed a full agency team.
GCP-native. YouTube-first. Benelux mid-market focus for the MVP.
Status (2026-05-01 — MVP closed): 10 Cloud Run services + 1 Next.js cockpit + 1 Composer DAG live in
iamagency(europe-west4). Strict/healthzbootstrap probe enforced on every revision. 4-section information architecture (Setup · Create · Recut · Distribute). 943 frontend tests passing; 146 backend tests passing across brand-kit + shared/audit.
| Layer | What it does |
|---|---|
Web cockpit (apps/web/) |
Next.js 14 operator UI — Flight Deck, Brand Kit, Brief, Review gallery, Launch confirm, Insights Signal Wall, Client Settings. |
Services (services/) |
9 FastAPI surfaces + shared foundations covering brand-kit extraction, onboarding (per-client OAuth), generation (Veo 3 + Imagen 3), reframe (9:16 via vigenair + FFmpeg), dub (Ariel + Chirp 3 HD — no voice cloning), compliance judging, Google Ads push (always PAUSED) + YouTube upload (UNLISTED), and insights. |
Ingestion (ingestion/) |
Composer DAGs + dbt mart (fact_creative_performance) with synthetic backfill loader. |
Infra (infra/) |
Terraform for the GCP project (europe-west4). |
Forks (forks/) |
Vendored OSS submodules: ariel, vigenair, dreamboard, copycat. |
| Service | Directory | Purpose |
|---|---|---|
| Shared foundations | services/_shared/ |
Audit logging (wrap()), shared contract (JobState, register_service, strict /healthz), meta. |
| Brand Kit | services/brand_kit/ |
Gemini-based brand-asset extraction from PDFs OR website URL distillation (v1.2). |
| Onboarding Wizard | services/onboarding_wizard/ |
Per-client OAuth + prechecks + linked client doc. Skip-OAuth path lets a client onboard without Google linkage. |
| Generate | services/generate/ |
Veo 3 + Imagen 3 variant rendering (16:9). Cost-cap pre-projected before any provider call. |
| Reframe | services/reframe/ |
9:16 Smart-Reframe via vigenair + FFmpeg worker. |
| FFmpeg worker | services/ffmpeg_worker/ |
Internal Cloud Run worker — pixel ops + keyframe extraction. Invoker-locked to reframe + judge. |
| Dub | services/dub/ |
Ariel-powered translation + Chirp 3 HD dubbing. No voice cloning in MVP. |
| Judge | services/judge/ |
Compliance scoring (Gemini-as-judge) — binary pass/fail; never a third state. |
| Ads | services/ads/ |
Google Ads campaign push (always PAUSED) + UNLISTED YouTube upload. |
| Insights | services/insights/ |
VTR signals, creative DNA, prompt hint generation. Cost rollup view + 7d-trailing VTR mart + brand-color segmentation. |
| Ingestion | ingestion/ |
Composer DAGs + dbt mart (fact_creative_performance) + synthetic backfill loader. |
apps/web/ is the operator cockpit. Kanso Industrial Agency aesthetic:
industrial restraint, no yellow/amber on compliance surfaces, binary
pass/fail. Surfaces:
- Agency Flight Deck (cockpit / dashboard).
- Brand Kit (PDF upload + URL distill + describe-from-prose).
- Brief form with cost-cap + budget tier.
- Review gallery — keyboard nav (
j/k/a/r), hover preview, structured toast errors, compliance binary (no third color). - Launch confirm modal — explicit PAUSED-state acknowledgement before pushing to Google Ads.
- Insights signal wall — hint cards from real or synthetic-backfilled rows.
- Client settings — modify display fields; revoke (soft-delete) with type-the-name safety modal; restore.
If you've never seen this repo before, read in order:
FOR_AGENTS.md— locked MVP decisions, audit contract, what NOT to do.docs/NEXT.md— cold-start handoff: where we are, what's next, deferred items.docs/ops/install/README.md— installer state map (steps 01-06 + smokes 10-19).docs/ops/install/INSTALL_COPILOT_PROMPT.md— paste into a Gemini 2.5 Pro chat to get a step-by-step install copilot.docs/specs/— binding service specs (12 files, one per surface).
# Clone + submodules (forks/ariel + forks/vigenair are required for dub + reframe builds)
git clone <url>
cd IAMAGENCY
git submodule update --init --recursive forks/ariel forks/vigenair
# Pre-flight check (51 tooling/auth/project/repo checks)
bash scripts/preflight.sh
# Frontend dev server (against live Cloud Run backends, see docs/ops/reference/local-dev.md)
cd apps/web && npm install && npm run dev
# Run tests
make test-all
# Deploy a single service (build + push + roll Cloud Run + post-deploy probe)
bash scripts/deploy.sh <service-name>
# Deploy everything
bash scripts/deploy.sh
# Verify the whole fleet is Ready
bash scripts/verify-deploy.shBuilt by a multi-agent workflow: a Lead Architect dispatches specialist
subagents into git worktrees; a Verifier agent reviews every PR; humans
gate at module boundaries. Locked contracts in
FOR_AGENTS.md.
apps/web/ Next.js 14 cockpit (Operator Command Bar, Flight Deck,
Material Board, Brief, Contact Sheet, Launch Gate,
Signal Wall, Client Settings).
docs/
archive/ Historical context — shipped or superseded; do not follow.
ops/install/ The install runbook (16 step + smoke files + a Gemini
copilot prompt).
ops/reference/ Env-var contracts + GCP project bootstrap + local dev.
specs/ Binding service specifications (one per service).
NEXT.md Cold-start handoff for the next session.
forks/ Vendored OSS submodules: ariel, vigenair, copycat,
dreamboard.
ingestion/ Composer DAGs + dbt mart for creative performance.
infra/ Terraform (GCP iamagency, europe-west4).
scripts/ preflight.sh, deploy.sh, verify-deploy.sh,
load_synthetic_backfill.py.
services/ 9 Prism-owned FastAPI services + _shared foundations.
tests/ Per-service test suites (run via Makefile targets).
Internal — IAMAGENCY MCC tooling. Not currently distributed externally.