data 51s ago·built 51s ago·a34409d
Operator runbook

How to make one episode, end to end

Read this once. Every button in the wizard and preview pages has a small ? next to it that links back to the section here that explains what happens when you click it. Costs and timings are real (calibrated against ep21 + ep22).

Money checkpoint: only one button on this entire flow actually costs more than pennies — the Send to build button on the storyboard preview page (~$3-6 per click). Everything else is free or ~$0.02. Read step 7 carefully before clicking it.
Step 1· free

Pick a subject

Go to Recommendations (sidebar → Create → Recommendations). Each row is a participant the recommendation engine flagged as ready for an episode, sorted by score.

The score is a roll-up of: number of curated TikToks, recent news mentions, completeness of the participant brain (key facts, photos, bio). Higher = more source material to work from.

What "ready" means: the recommendation engine refuses to surface anyone missing the minimum viable bundle (brain + at least 5 photos + at least 5 TikToks). If the person you want isn't here, fix the underlying data first — see the Participants page for what's missing.

Open Recommendations
Step 2· free

Open the wizard

Click the subject's tile from the recommendations grid. The URL pattern is/episodes/builder/<subject-slug>/. That's the wizard.

The wizard's job is to let you tweak the inputs (which TikToks make the showcase, which photos are in rotation, what the music bed is, what "test mode" should do) before any expensive work happens. Nothing you click in the wizard alone costs money — even Save Draft only writes JSON to S3.

Example: open El Senior Jiménez
Step 3· free (~5 seconds)

Click 'Scaffold who-is skeleton'

The big Scaffold who-is skeletonbutton at the top of the wizard runs the recipe. It reads the participant brain + curated TikToks + sentiment + news, and produces a 30-segment skeleton: intro, narrated beats, leaderboard card, 25 TikTok showcase slots, outro.

As of Wave-4 (2026-05-01) Scaffold also auto-saves to S3 immediately. You'll see a green "Scaffolded N beats and persisted script.json" message under the button. That means the storyboard preview will resolve cleanly on the next click — no separate "Save Draft" needed before previewing.

The 30 segments include 25 TikTok showcase slots by default (was 10 before Wave-4). Each TikTok runs ~25s, so a default scaffold targets a ~15-minute video. To shorten, edit the wizard's "Advanced · recipe overrides" section and set numShowcaseSegments to a smaller number, then re-Scaffold.

Step 4· free

Rate the TikToks + photos (optional)

Each TikTok and photo card in the wizard has a 0-10 rating slider. Use it to teach the recommendation engine which assets are good vs noise:

  • 0 (BLOCK) — drop entirely. Never use this asset for any episode of this subject.
  • 1-4 — demote (less likely to be picked).
  • 5 — neutral baseline (same as no rating).
  • 6-10 — boost (more likely to be picked).

Ratings persist to DynamoDB and apply to every future scaffold for this subject. They also show up on the per-participant page under Participants (TikToks + Images tabs) so you can curate outside the wizard.

You can skip this step and the build still works — the engine just uses the default ranking (vibe + tier + engagement + recency).

Step 5· free

Open the storyboard preview

Once Scaffold finishes, click the small storyboard preview → link at the top of the wizard (next to "← back to recommendations"). It opens a read-only view of the 30 segments — what the LLM was told to narrate, which images each segment uses, the music bed, and the total runtime.

The preview is your last chance to catch problems before paying for the build. Look for:

  • Yellow placeholder segments (text starts with [SCAFFOLD ...]) — these need LLM fill.
  • Amber-bordered segments — Gate C flagged unverified facts; the LLM said something the participant brain can't back up.
  • "no visual declared" tiles — the recipe couldn't pick an image; you'll need to scaffold again with more rated photos.
Step 6· $0.02 per click (~30-90 seconds)

Click 'Run LLM fill'

The Run LLM fill button on the preview page replaces every [SCAFFOLD ...] placeholder with real Spanish narration, generated by gpt-4o-mini. It's grounded by the participant brain's key_facts array (so it can only claim things the brain knows) and post-checked by Gate C (so any claim the regex can't trace back to a key fact gets re-tried up to 2 times).

When fill finishes:

  • The "Placeholders" stat at the top of the page should drop to 0.
  • You should see "filled=N verified=N retries=R" success line.
  • If "unverified=[seg-id, seg-id]" appears — those segments hit max retries. Read them carefully and either accept (they're plausible) or click forceAll + Run LLM fill again to retry.

The fill is cached on a per-segment basis: re-running it withoutforceAll only fills segments that are still placeholders. This makes iterative LLM passes cheap — fix one bad segment, click again, pay for one segment.

Step 7· $3-6 per click · ~10-15 minutes

Click 'Send to build' (the only expensive button)

This is the only button on the whole flow that can lose you money. Read this section before clicking.

Send to build dispatches the full PlanetaAlofoke-RacheteoPrep Step Function. Steps that run downstream (and what each costs):

  • Polly TTS for ~30 narration segments → ~$0.50
  • Whisper captions over the rolled-up audio → ~$0.30
  • FFmpeg slideshow for ~25 TikTok showcase slots + ~12 narrated slots → ~$1.50 (Lambda compute)
  • MediaConvert concat + final encode → ~$1.00
  • Tail-hook + intro mix + audio rollup + leaderboard render → ~$0.50-1.50

Total: typically $3-6 per build. The wizard pops a confirmation modal listing the exact cost components — read it before clicking OK.

The button is disabled if any placeholder remains(Run LLM fill first) or if any Gate C unverified flag is still red. Don't bypass this with the URL — fix the underlying data instead.

Step 8· free

Monitor the build

After clicking Send to build the dashboard auto-redirects to /admin/executions/ with the new execution selected. You'll see a per-step timeline that auto-refreshes every 3 seconds.

Steps to watch:

  • PrepDoctor + PrepValidate — the structural gates from Wave-1. If these fail, the build aborts before paying for any rendering. Cost so far: $0.
  • PrepFanOut — runs IntroMix, TikTok showcase, audio rollup, captions in parallel. Largest spend bucket.
  • SlidePlan + Slideshow — assembles the visuals.
  • HandoffToBuild → enters PlanetaAlofoke-RacheteoBuild SFN — concat, music mix, tail-hook, MediaConvert, upload.

Total wall time: ~10-15 minutes for a 15-min episode. If a step fails, the trace viewer shows the exact failure JSON; share it with the team and we can re-dispatch with Redeploy if a Lambda needs patching.

Build Monitor
Step 9· free

Review and publish

When the build SFN reaches PublishManifest, the episode appears in /episodes/ with a "Ready to publish" card. The card has:

  • An inline mp4 player for the final video.
  • A presigned URL to download the raw mp4.
  • A feedback drawer (Refeed / Patch / Recreate) if you spot something to fix.

Refeed and Patch are much cheaper than Recreate (no full re-render). Use them first if the issue is brain-only or a single segment.

Episodes archive

Button glossary

Every button in the wizard / preview maps to exactly one step above. If you click the small ? next to any button you'll land back here.

ButtonWhereWhat it doesCost
Scaffold who-is skeletonWizardstep 3free
Save draftWizardmanual re-save (Scaffold auto-saves)free
storyboard preview →Wizard headerstep 5free
0-10 rating sliderWizard + Participantsstep 4free
Run LLM fillPreviewstep 6~$0.02
Send to buildPreviewstep 7$3-6
Refeed / Patch / RecreateEpisode pagestep 9$0 / $1-2 / $3-6

Cost summary (one full episode)

StepCost
Scaffold + Savefree
Run LLM fill (per pass)$0.02
Send to build (Polly + Whisper + FFmpeg + MediaConvert)$3-6
Total typical~$3-6 per episode

A few iteration loops (re-fill a segment, re-scaffold, re-rate assets) stay under $0.10 cumulative. The expensive button is gated behind two confirmation prompts — you can't accidentally trigger it.

Troubleshooting

The storyboard preview says 'Nothing in S3 for racheteo-NNN'
You opened the preview before Scaffold finished writing. Click Scaffold who-is skeleton in the wizard — as of Wave-4 it auto-saves, so the preview will resolve immediately afterward. If Scaffold itself failed (red error message), check the wizard's recipe warnings list — usually a missing brain or empty TikTok pool.
A segment's image tile shows 'no visual declared'
The recipe couldn't pick an image for that segment. Causes:
  • The participant has fewer than 5 rated photos (mark some 5+ on the participant page).
  • The segment's image_id is a synthesized one the resolver doesn't recognize yet (file a bug).
  • Pinned image was deleted (re-pin via "paste an image" on the segment).
Run LLM fill keeps flagging segments as 'unverified'
Gate C couldn't trace a claim back to key_facts. Two fixes: add the missing fact to the participant brain (preferred — improves every future episode) or accept the unverified text if it's plausible (the build will still ship, but you take ownership of the claim).
Send to build is greyed out even after Run LLM fill
At least one segment still starts with [SCAFFOLD ...]. Toggle forceAll on the fill section and re-run; that forces a re-fill of every segment regardless of state.
The build SFN failed at PrepDoctor or PrepValidate
These are the Wave-1 structural gates. They abort before any rendering, so cost so far = $0. The trace viewer shows exactly which gate fired (voice diversity, segment shape, forbidden alias, fact grounding). Fix the underlying script in the wizard and re-Send to build.