Sennable

Portfolio / AI automation systems

ambitionOS Studio

A long-form YouTube studio where Gemini decoded the motion language, Claude Code built the engine, and the unattended line runs on a local model — nine videos produced, each QC'd to −16 LUFS loudness.

Built and run by Joel Wickremasinghe

running in production

9

long-form videos (4:26–8:18) produced by the pipeline in 16 days, Jun 28 – Jul 13 2026 — 6 uploaded with video IDs on record

measured · output tree + upload records

Problem

What needed to exist

Long-form video is where automation usually falls apart: motion design, pacing, captions, loudness, and packaging each demand judgment, and stitching them by hand caps output at whatever one editor can survive.

The interesting question was whether two AI systems could split the work the way a studio does — one decoding what good motion looks like, the other engineering a pipeline that reproduces it deterministically.

What we built

The system

The two-model workflow is on disk, not a slide. Gemini analyzed a reference edit and decoded its motion system into a 27-preset library (PiP, frame, and overhost presets with rotation and rhythm rules), then authored two pipeline PRDs. Claude Code triaged those PRDs in an adopt/reject table and built the result: a 6,034-line beat-composition engine governed by four JSON Schema contracts.

The engine is deliberately LLM-free at runtime — it must reproduce a frozen golden baseline (the shipped 332-second cut, 23 cues) within 35 milliseconds on every merge. Scripts come from a local gemma4:26b, so the unattended cron line produces complete private drafts with zero cloud-LLM spend. HyperFrames renders the karaoke captions and overlay plates from HTML.

Every episode passes automated QC (loudness, A/V drift, black-frame and caption-coverage checks) and then a human approval gate on a local review server. Uploads are browser-automated with per-field screenshot verification — title, description, thumbnail, tags, and the AI-content disclosure confirmed from pixels, not return codes.

Live surface

Where it publishes

live channel

@Ambition_OS

The YouTube channel the studio produces for

Open channel

Links checked 1 August 2026. Screenshots are static captures — the live site is the source of truth.

Architecture

ambitionOS long-form pipeline — as implemented

ambitionOS long-form pipeline — as implemented5/5 CHECKSAPPROVED ONLYIDEA BACKLOGtrend scanSCRIPTgemma4:26bBEATS.JSONschema contractAVATAR + VOheygen · disclosedMOTION ENGINE27 presets · ffmpegHYPERFRAMESkaraoke captionsASSEMBLE + QC-16 LUFS · driftHUMAN REVIEWgate :5201UPLOADscreenshot-verifiedYOUTUBEwed + sat 18:00

Stack

Built with

  • Python 3.13
  • Google Gemini (motion decoding + PRDs)
  • Claude Code (engine construction)
  • Ollama · gemma4:26b
  • HyperFrames (HTML → video)
  • HeyGen avatar + voice
  • ffmpeg · two-pass loudnorm
  • JSON Schema contracts
  • faster-whisper
  • Pillow + rembg
  • Chrome DevTools Protocol

Outcome

Numbers, with provenance

9

finished long-form videos in 16 days, verified on disk with durations

measured · ffprobe over output tree

6,034

lines of engine code built by Claude Code under the schema-contract program

measured · line count, engine modules

27

motion presets Gemini decoded from the reference edit

measured · motion-presets.json

35 ms

reproduction tolerance against the frozen golden baseline (332.218 s, 23 cues) on every merge

measured · golden acceptance record

5/5

automated QC on the latest episode: −16.00 LUFS, 17 ms A/V drift, 16/16 beats captioned

measured · episode build state

$0

cloud-LLM spend on the unattended cron line — scripts run on a local model

architecture · pipeline source

[needs: channel audience metrics]

no analytics export exists on disk yet; upload records only

Every figure above is read from the system of record it describes. Gaps are marked, not filled in.

Also in this system

Supporting detail

Carousel automation, judged by a machine first

The Instagram line rendered 28 slides for a 4-carousel launch week, and an autonomous generate → critique → refine loop has produced further carousels with judge scores up to 0.94 before any human looks. The reels publish adapter is coded and unit-tested against mocks — we say so, because it hasn't faced the live API yet.

AI, disclosed

The presenter is an AI avatar and every upload carries the altered-content disclosure. The channel's premise is showing what AI systems can do — hiding the AI would be off-brand and against policy.

Tools rejected on principle

Remotion was evaluated and rejected in writing: its spring() easing violates the studio's motion law (power3.out only — no bounce, no overshoot). Saying no to a good tool for a documented reason is what a design system means.

Want a video pipeline instead of a video backlog?

Nine videos in sixteen days, every one loudness-normalized and captioned — six uploaded with their video IDs on record. We build production lines like this around your content — and hand you the engine.