Drawn from the technical contract, shipped implementation notes, and remaining backlog. The June 4, 2026 vNext Development lane is now complete; future priorities may still shift.
Want the deep version? Detailed breakdown -> Or read the shipped batch: vNext summary ->.
The current base, for context.
| Pipeline | Four understanding layers (audio · visual · fusion · intelligence) on a custom SKIP LOCKED queue with tunable worker concurrency. |
| Studio | Per-package review: scored options, inline edit, on-demand regeneration, live pipeline status. |
| Shorts editor | Word-snap trimming, 6 ASS subtitle animations, live no-render subtitle preview, auto-written descriptions, per-clip publishing. |
| Dispatch | YouTube Direct (per-brand OAuth), Zernio (social + clips), DojoClaw (editorial). |
| Storage | Inline Stage-1 cleanup (Option A) + post-publish archive worker (Option B). |
| Providers | Pluggable LLM providers with per-purpose routing + at-rest key encryption. |
Re-mine an existing back catalogue with the current pipeline + prompts, so old uploads yield fresh publishing kits without re-recording. All of v1.1 has shipped.
| Item | Status | What it does |
|---|---|---|
| Backlog Revival | ✅ shipped | reviveSource clears the source's jobs and re-runs the whole pipeline in place with current prompts (defaults to the cheap transcription_only profile); assets UPSERT so dispatch history is kept. A Revive button lives on the package page. |
transcription_only profile | ✅ shipped | A fourth, cheapest profile — audio transcription only, no visual phase or diarization. The engine that makes backlog re-runs inexpensive. |
| Hard-delete sources | ✅ shipped | A Delete video button removes local + archived media and nulls the paths; Postgres history kept, re-render/re-mine fail cleanly. Completes the storage lifecycle. |
| AI thumbnail generation | ✅ shipped | Thumbnails are AI-generated images via pluggable image providers (Runware) at /providers, with a frame-extraction fallback when none is configured. An LLM turns the analysis into visual concepts; each renders as a plain + headline-overlay variant. |
| Modal focus trap | ✅ shipped | Focuses the first element on open, cycles Tab/Shift+Tab within, restores focus on close. |
| YouTube Direct hardening | ✅ shipped | CSRF-safe OAuth state table (one-time state consume), encrypted refresh_token with auto-refreshed access tokens, and a Connect / Disconnect / reconnect brand card for per-brand Direct upload. |
| Idempotent re-renders | ✅ in v1.0 | clip_render keyed by (plan, clip) + render_rev; render-shorts.ts --force. |
Close the Helm Signal feedback loop: stop generating-and-forgetting; observe what performs and feed it back into generation. All of v1.5 has shipped.
| Item | What it does | Notes |
|---|---|---|
| Title/thumbnail A/B routing | ✅ Shipped. Self-run rotation — the experiment_tick worker rotates title + thumbnail variants on the live video, reads views / impressions / CTR from the YouTube Analytics API, and applies the winner (→ positive voice example, losers negative). Native "Test & Compare" isn't in the Data API, so ChannelHelm runs the test itself. | Needs the yt-analytics.readonly scope — reconnect brands. |
| Thumbnail feedback loop | ✅ Shipped. A decided thumbnail experiment writes the winning concept's image prompt to voice_examples; the thumbnail worker biases new concepts toward past winners. | Closes the thumbnail half of the loop. |
| Sentiment-over-time curves | ✅ Shipped. Lexicon emotion curve over the scene log (no extra inference) — the clip planner favours high-arousal peaks and the Studio shows a sparkline. | Cheap; reuses existing data. |
| Retention calibration model | ✅ Shipped. Least-squares calibration of predicted engaging-fraction → measured average view %, fit per brand from YouTube Analytics pulls; applied in analyze_intelligence (identity until enough samples). | Improves as data accumulates. |
| Per-provider concurrency limits | ✅ Shipped. A max_concurrent column on llm_providers + a per-provider semaphore so a rate-limited provider isn't hammered by N worker slots. | Set it in /providers. |
The June 4 Development batch moved ChannelHelm from package-only post-production toward Plan, Produce, Publish, and Channel.
| Item | What it does | Notes |
|---|---|---|
| B-roll insertion | ✅ Shipped. Honour b_roll_enabled by compositing b-roll into rendered clips. | Non-b-roll renders stay byte-stable. |
| Plan stage | ✅ Shipped. Idea Board, outlier mining, content gaps, remix scripts, scripts, script critic, and thumbnail formats. | Pre-production is first-class but not dispatchable. |
| Publish collaboration | ✅ Shipped. Guest review links, frame comments, notifications, bulk operations, deliverables board, users, sessions, and brand roles. | Local-first auth, not cloud SaaS auth. |
| Channel | ✅ Shipped. Embed player, M3U8, linear/FAST builder, scheduler, analytics, RTMP restream, and CTV target path. | Restream failures isolated from publishing state. |
| GSC article signals | ✅ Shipped. Pull Search Console metrics for DojoClaw articles into signals when connected. | Completes editorial signal collection. |
| YouTube Direct for Shorts | Upload Shorts per-clip via the YouTube Data API, not only through Zernio. | Still a v2 follow-up. |
| Object storage | Optional S3 / R2 backend beyond the local NAS export. | Local storage suffices for v1. |
| Speaker ID by name | Replace speaker_01 with named ID via a per-brand face/voice index. | More storage + privacy considerations. |
| Higher dispatch-volume path | Documented upgrade path if dispatch outgrows local bandwidth. | Choose when needed. |
The business layer on top of the pipeline — costs, policy, batch intake, vertical fit, and catalogue intelligence. Full guide: Command Deck -> · shipped record: v1.7 development summary.
| Item | Status | What it does |
|---|---|---|
| Helm Ledger | ✅ shipped | Every LLM call, generated image, and render lands in an append-only cost_events ledger; per-brand monthly budgets gate new generation spend; month-to-date costs on /performance. |
| Helm Atlas | ✅ shipped | Topics + entities from every package analysis indexed into a queryable /atlas explorer (zero extra LLM calls): coverage per brand, revisit candidates, one-shot topics, promote-to-idea. |
| Auto-approve rules | ✅ shipped | Per-brand, per-asset-type trust thresholds; high-confidence assets skip review with an audit trail. Plans and rendered clips never auto-approve. |
| Bulk backlog ingest | ✅ shipped | Paste up to 50 YouTube URLs or point at a local folder (≤25 files); per-line dedupe and outcome reporting. |
| Brand vertical presets | ✅ shipped | Six presets (YouTube creator, podcaster, webinar/B2B, educator, agency client, local business) tuning default profile, prompt tone, and asset fan-out. |
A themed backlog of candidates. Tagged grounded (scaffolding already exists in the code) or bet (new direction), with a rough effort. ✅ shipped marks items already built straight from this backlog (extended-network generation, long-clip planning, pinned comments, the unified performance dashboard, DojoClaw article signals, comment mining, brand-voice bootstrap, multi-language subtitles).
| Idea | What it is | Type | Effort |
|---|---|---|---|
| Generate for the 8 un-wired networks | ✅ Shipped. Per-network post generation for Facebook, Pinterest, Bluesky, Threads, Reddit, Telegram, Discord & Google Business — gated by the brand's connected Zernio accounts so nothing un-shippable gets drafted. | ✅ shipped | — |
| Long-clip planning | ✅ Shipped. long_clip_plan generates horizontal highlight segments; the renderer produces rendered_long_clip and dispatch routes it to YouTube via Zernio. | ✅ shipped | — |
| Multi-language subtitles | ✅ Shipped. Translate a Short's subtitles to other languages → per-language SRT + ASS sidecar files, reusing the transcript + ASS pipeline. TTS dubbing and a burned-in per-language re-render are deferred. | ✅ shipped | — |
| Quote cards / carousels | ✅ Shipped (v1.8). Branded quote cards from the strongest lines; manual posting for now. | ✅ shipped | — |
| Per-platform Short captions | Tailored caption + hashtags per destination. Deferred — captions belong to clips, so better built as a short_clip_plan enhancement than standalone asset types. | bet | M |
| Idea | What it is | Type | Effort |
|---|---|---|---|
| Comment mining → content loop | ✅ Shipped. Post-publish, on-demand: mine a video's top YouTube comments → content_ideas + faq assets, from the Studio's "Mine comments" panel. (youtube_pinned_comment already generates from the analysis; this makes follow-up content audience-driven.) | ✅ shipped | — |
| Best-time-to-post | Learn per-platform optimal windows from the signals already collected; pre-fill the scheduler. | bet | S–M |
| Unified performance dashboard | ✅ Shipped. A new /performance route — one cross-surface view of how dispatched/published assets performed (signals + A/B results). | ✅ shipped | — |
| DojoClaw + GSC article signals | ✅ Shipped. collect_signal combines DojoClaw article analytics with Search Console clicks, impressions, CTR, and position when a GSC connection and published article URL are available. | ✅ shipped | — |
| Prompt-version A/B | ✅ Shipped (v1.8). Prompt files compete on real view signals; reported winner on /performance. | ✅ shipped | — |
| Idea | What it is | Type | Effort |
|---|---|---|---|
| Prosodic analysis | ✅ Shipped (v1.8). Real energy + emphasis per window, computed in pure TS at transcription time. | ✅ shipped | — |
| Audio-event detection | Laughter / music / applause (YAMNet on the Neural Engine) — good for podcasts and a cheap local music-presence signal. | grounded | M |
| Brand glossary | ✅ Shipped (v1.8). Canonical spellings in transcripts + prompts. | ✅ shipped | — |
| Fact-check / claim guard | ✅ Shipped (v1.8). Per-claim verdicts + Studio badge. | ✅ shipped | — |
| Music / copyright detection | Flag clips likely to carry copyrighted audio before non-YouTube syndication. A risk predictor, not a verdict — local detects music presence (~90%) not copyright status; real ID needs an opt-in fingerprint API (breaks local-first); YouTube's own Checks already cover YouTube. | bet | M |
| Idea | What it is | Type | Effort |
|---|---|---|---|
| Cost tracking & budgets | ✅ Shipped (v1.7). Helm Ledger: per-call cost_events, COST_RATES_JSON pricing, per-brand monthly budgets, costs panel on /performance. See Command Deck. | ✅ shipped | — |
| Brand-voice bootstrap | ✅ Shipped. /brands/[id]/voice seeds voice_examples from pasted samples or the brand's existing published assets, so voice is good from upload #1 (no cold-start wait). | ✅ shipped | — |
| Bulk / batch ingest | ✅ Shipped (v1.7). Paste up to 50 YouTube URLs or scan a local folder on /sources/new; per-line dedupe + outcomes. | ✅ shipped | — |
| Auto-approve rules | ✅ Shipped (v1.7). Per-brand thresholds on the brand form; auto-approved assets carry a payload.auto_approved audit trail. | ✅ shipped | — |
All ten proposed candidates approved and shipped in one wave. Shipped record: v1.8 development summary ->.
| Item | Status | What it does |
|---|---|---|
| Prosodic analysis | ✅ shipped | Real energy_db + emphasis_words per scene-log window — pure-TS RMS/z-score pass over the audio, no new Python. |
| Brand glossary | ✅ shipped | Canonical spellings applied to transcripts post-Whisper and enforced in every generation prompt. |
| Claim guard | ✅ shipped | On-demand fact-check of generated copy vs the source; per-claim verdicts + Studio warning badge. |
| Atlas semantic search | ✅ shipped | Local embeddings → "Ask your catalogue" on /atlas; hides gracefully without an embedding provider. |
| Quote cards | ✅ shipped | Strongest spoken lines rendered as branded 1080×1080 cards (manual posting; Zernio image posts → v2). |
| Best-time-to-post | ✅ shipped | Learned per-platform windows from the brand's own history; one-click suggestions in the schedulers. |
| Prompt-version A/B | ✅ shipped | Prompt files compete on real view signals; winner reported on /performance, never auto-pinned. |
| YouTube Direct Shorts | ✅ shipped | Per-clip opt-in uploads Shorts via the brand's own OAuth; falls back to Zernio when not connected. |
| Helm Briefing | ✅ shipped | Deterministic weekly per-brand digest (spend, throughput, movers, coverage, experiments, health) at /briefing. |
| Client report links | ✅ shipped | Expiring read-only /report/{token} page per brand — performance for clients, costs never exposed. |
Every vertical gets a real preset and a declared north-star metric; the data ChannelHelm already collects becomes a recommendation queue. Shipped record: v1.9 development summary -> · operator guide: Helm Decisions ->.
| Item | Status | What it does |
|---|---|---|
| Vertical catalogue v2 | ✅ shipped | 12 presets — new: coach/consultant, SaaS/startup, e-commerce, nonprofit, fitness/wellness, real estate — each with tone guidance, fan-out emphasis, and a north-star metric. |
| Helm Decisions | ✅ shipped | Deterministic recommendation queue at /decisions: coverage gaps, budget pace, ROI outliers, experiment opportunities. Accept → idea board; dismiss → silenced forever. Zero LLM. |
| Return on content | ✅ shipped | Ledger spend joined to collected reach — cost per 1k reach by topic and asset type on /performance. |
| Vertical scorecards | ✅ shipped | Per-brand north-star card on /performance, with the metric's reasoning on the card. |
| Vertical-aware briefing | ✅ shipped | The weekly digest opens with the vertical's north star and emphasized-type throughput. |
One command surface across every brand, and the follow-through on v1.9 — accepting a recommendation now acts. Shipped record: v1.10 development summary -> · operator guide: Operator Command ->.
| Item | Status | What it does |
|---|---|---|
| Prompt version pinning | ✅ shipped | Accepting a prompt-A/B winner applies it — brands.prompt_pins overrides "latest" for that brand + asset type (experiments still override the pin). |
| Brand health score | ✅ shipped | A composite 0–100 per brand (throughput, momentum, freshness, coverage, experiments, budget); missing data degrades gracefully. |
| Portfolio command view | ✅ shipped | /portfolio: every brand on one screen — health, north star, spend vs budget, reach, open decisions; each cell links into its surface. |
| Decision mutes | ✅ shipped | Silence a recommendation kind per brand, forever, from the decision card or the queue. |
| Experiment bootstrap | ✅ shipped | Accepting a "start an experiment" decision drafts a title A/B from the package's real title options. |
| Global search + CSV export | ✅ shipped | /search across sources, assets, topics, ideas; /performance CSV download (costs stay operator-only). |
| Edit-rate analytics | ✅ shipped | How much each asset type gets rewritten between generation and approval — reveals which prompts need work. |
| Vertical posting times | ✅ shipped | Best-time-to-post falls back to per-vertical windows before generic defaults. |
| Decisions in the briefing | ✅ shipped | The weekly digest opens a Decisions section with the open count and top titles. |
YouTube Studio, brought into ChannelHelm as a per-brand surface at /youtube. Shipped record: development summary -> · operator guide: YouTube Command Center ->.
| Item | Status | What it does |
|---|---|---|
| Content manager | ✅ shipped | Your live YouTube videos as a sortable library — edit title/description/tags/visibility in place and bulk-edit, not only before upload. |
| Deep analytics | ✅ shipped | Traffic sources, geography, age×gender, devices, subscribers, revenue (when monetized), and a per-video audience-retention curve. |
| Comments inbox | ✅ shipped | Published / held / spam buckets with reply, approve, hold, spam, reject + ban, delete. Heart/pin deep-link to Studio (not API-exposed). |
| Captions & playlists | ✅ shipped | Manage each video's caption tracks (upload, generate-from-transcript, delete) and create/curate playlists. |
| Channel dashboard | ✅ shipped | A YouTube-native home: totals, latest uploads, comments needing attention. |
Needs a one-time reconnect for the force-ssl (writes) + monetary (revenue) scopes. End screens/cards, community posts, and Content-ID aren't in the public API and are out of scope.
ChannelHelm is local-first and single-operator by design; the roadmap optimizes for one person turning more videos into more on-brand output with less manual work, not for multi-tenant scale. The feedback loop (v1.5) is weighted heavily because it compounds — every shipped asset that gets measured makes the next one better.