A self-improving YouTube channel factory, shipped as a Claude Code plugin.
ViewForge brainstorms a niche and a brand, then runs a video from idea to published asset — research → script → voice → motion → edit → package → distribute → measure — and feeds what it measures back into a strategy library so the next video is made better. The visual language is motion graphics, illustration, real footage, and screen capture. It never uses a fake human (an AI avatar pretending to be a real person) as the on-screen visual.
It is opinionated about one thing: it refuses to fool itself. Optimization is driven by a sourced, testable strategy library with a lifecycle, and a hard anti-reward-hacking / anti-overfitting layer in tested code.
/viewforge start a channel about <your interest>
- Evidence, not vibes. Every optimization tactic is a strategy with a cited
source and a lifecycle:
documented → testing → validated → retired. The pipeline leans on what's been proven on our own channels, and clearly labels what's still just a documented claim. Seeded from the leaked MrBeast production memos and built to expand. - It won't game itself. A strategy can only be
validatedwith enough out-of-sample wins and without sacrificing guard metrics (no clickbait CTR that tanks watch-time). Fabricated/simulated numbers can never promote anything. SeeANTI-REWARD-HACKING.md. - Organized as departments that improve over time. niche · brand · research ·
script · voice · motion · edit · package · distribute · analytics — each separable,
each with a maturity level (
departments/README.md). - State you can trust. One channel = one validated, atomically-written,
immutable project under
state/channels/<slug>/. - Remotion-first production. Programmatic React video → every visual element is a tweakable, A/B-testable parameter, which is exactly what the optimization loop needs.
The foundation plus the full nine-department chain at L2 — a channel can go from "what's it about" all the way to a published video whose real metrics feed back and improve the next one. The analytics department closes the optimization loop, and production is audio-first: scene durations are solved from the real narration (never guessed), captions are word-timed to the voice, renders cache per scene, and the master bus has enforceable loudness targets (−14 LUFS / −1 dBTP).
- Strategy library: schema + lifecycle + 9 source-cited MrBeast-memo seeds, with a CI gate that rejects any unsourced or malformed strategy.
- Integrity + state libs (zero-dep, 245 tests):
strategy-registry(+ rule domains: packaging|content),guards(hard constraints incl. no-fake-human, research-only-never-published + the promotion gate: out-of-sample, anti-Goodhart, youtube_api-provenance-only, topic-cluster confound guard),niche-score,niche-discovery,brand-brief,video-idea,packaging-experiment(thumbnail Test & Compare — the fast out-of-sample path),script-model(3 scene grammars: education/demo/short),voice-spec,motion-plan,timing-solver(audio-first scene timing: VO overruns bounce to script with a word budget; voice never stretched > ±4%),caption-timing(timestamp-first word sync + whisperX merge),audio-mix(12–15 dB duck + −14 LUFS mastering checks),render-cache(per-scene content-hash render keys + codec-strict concat),capture-plan(capture-first demos: 2x-scale contract, deterministic cursor tracks, Playwright emitter),scene-qc(Gate-B visual harness: WCAG contrast math, caption spot-checks, fail-closed aggregation),gates(Gate 0 at every gate; A/B/publish composed),asset-license,asset-source(provenance: genAI b-roll logs model+prompt+seed; UI-truth must be captured; §22 scene-scoped fallbacks),edit-qa,distribution,analytics(domain separation, provenance admissibility, expiry),youtube-upload,state. - Seven L2 departments (
/viewforge):- niche-select — discover (autonomous cold-start) or brainstorm → ground → score → rank → commit a channel project.
- brand-suite — derive a brand brief, generate the suite via
brand-studio, validate all seven deliverables, persist. - video-research — ground ideas, lock the packaged promise, score, hard-block unpaid-off clickbait, lock the slate.
- script-write — retention beat sheet (first-minute / crazy-progression / re-engagement / no-dull / no-abrupt-end) + structure validator.
- voice-over — narration spec + free local TTS (Piper); synthetic voice disclosed, never a fake human on screen.
- motion-graphics — parameterized scene timeline (the A/B substrate) → Remotion-first render; blocks fake-human brands in code.
- edit-assemble — final ship/block QA: no dull moments + the hard constraints.
- distribution-publish — description/chapters/tags/end-screen + synthetic-voice disclosure, validated (doesn't auto-publish — uploading needs the operator).
- analytics-optimize — ingest a published video's REAL metrics, run the promotion gate, advance strategies along the lifecycle. Refuses to learn from simulated data. This is what makes the system self-improving.
ViewForge also generates its own strategies: the first internal one,
ground-quantified-claims, was born from a logged mistake and enters as a hypothesis
that must earn validation like any other. A worked example (Marginalia EP.01) runs the
whole chain from a cold-start niche to a plan-driven Remotion project + brand comps.
Run npm run check. Roadmap in ROADMAP.md.
.claude-plugin/ plugin + marketplace manifests
commands/ /viewforge — the factory router
skills/ the nine departments (niche-select … analytics-optimize)
lib/ tested zero-dep engines (timing-solver, render-cache, guards, …)
strategy-library/ sourced, schema-valid strategies + SCHEMA + SOURCES
departments/ the department registry + maturity model
plans/ written build plans (05 imagery/audio, 06 audio-first, 07 v2 completion)
assets/ the reusable Remotion render template
state/channels/ per-channel projects (live ones gitignored; _example checked in)
tools/ check-strategies (CI gate), synth-voice, align-words, synth-audio, fetch-assets
tests/ node --test property + BDD suites (245)
ARCHITECTURE.md · ANTI-REWARD-HACKING.md · ROADMAP.md · harness/IMPROVEMENT-LOG.md
node tools/export-plans.mjs renders every channel's plan — niche, brand (with palette
swatches), and the locked video slate — into a single responsive docs/index.html you
can read from a phone. Served via GitHub Pages so it's just a URL. The live channel
state stays local; the page is a small derived snapshot, safe to commit.
- No fake-human visuals — ever.
- Every strategy is sourced; every promotion earns its way past the guards.
- State is atomic, validated, immutable; mistakes are dogfooded into the harness as reproducing tests, not notes.
MIT licensed.