BuildBotsBetter
DOCUMENTARY

Make an AI Documentary from One Brief

Production Bibles, Character Locking, Fact Ledgers, Pacing Rules & Free-Tool Machine QC

Progress
0%

Select Your Operating System

Terminal commands, video scripts, and media tools adjust dynamically.

Stage 1 of 11 Est: 5 minutes

The Production Bible & The One Brief

Alex Patrascu pioneered the end-to-end AI documentary method (1 Oct 2026), directing Claude Opus 5.5 to produce a complete 7:55 1080p film from a single 2,769-word brief. Total production time was 8h 21m (7h 34m autonomous, 47m human for voice selection). Rule 1: The Brief is your inviolable production bible.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
New-Item -ItemType Directory -Force -Path "doc_production\brief" | Out-Null @" # DOCUMENTARY PRODUCTION BIBLE Title: The Autonomous Frontier Core Message: Autonomous agent teams succeed when bounded by strict verification. Story Stages: 1. The Friction (0:00-2:15) | 2. The Breakthrough (2:15-5:30) | 3. The Future (5:30-7:55) Credit Ceiling: 50,000 credits (hard stop) Creator Credit: Production methodology pioneered by Alex Patrascu (2026) "@ | Set-Content -Encoding utf8 "doc_production\brief\production_bible.md" Get-Content "doc_production\brief\production_bible.md"
Checkpoint: The Production Bible & The One Brief Required

Paste the line containing the Core Message from your production bible:

Stage 2 of 11 Est: 6 minutes

Character Locking: 4K Face & Voice in Words

Rule 2: Lock character face and voice once upfront. Generate a single 4K master portrait using Nano Banana. Rule 3: Describe voices entirely in words (tone, resonance, cadence) for Seed Audio 1.0. Rule 4: Eyes locked directly to the lens, with zero studio crew visible in the shot.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@" # Presenter Specification Model Face: Nano Banana 4K Master Frame (anchor_host_4k.png) Voice Model: Seed Audio 1.0 Voice Prompt: Warm alto, measured pace (135 words/min), journalistic authority, slight Scandinavian inflection, crisp sibilants. Camera Direction: Direct eye contact to the lens at all times; no camera crew, boom mics, or reflection artifacts. Wardrobe: Charcoal linen blazer, matte navy crewneck, neutral studio backdrop. "@ | Set-Content -Encoding utf8 "doc_production\brief\presenter_spec.md" Get-Content "doc_production\brief\presenter_spec.md"
Checkpoint: Character Locking: 4K Face & Voice in Words Required

Paste the Voice Prompt description specifying cadence and authority:

Stage 3 of 11 Est: 6 minutes

Dual Research Agents & The Source Ledger

Deploy two independent research agents: one to analyze documentary narrative pacing, and the second to build the fact ledger. In Alex's documentary, 28 distinct sources (15 official) were logged. Credits were spent across Higgsfield (generative video), Nano Banana (4K facial lock), Seed Audio 1.0 (vocal profile), Seedance 2.5 (take generation), Tesseract by Mirage (data diagrams), and Arcads (audio orchestration). Rule 6: Source every single number displayed on screen with claim, source name, date, and verified URL.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@" # FACT & SOURCE LEDGER | Claim / Statistic | Source Name | Date Verified | Source URL | |---|---|---|---| | 10,485 credits spent on 106 takes | Alex Patrascu X Thread | 2026-10-01 | https://x.com/maxescu/status/2105619319220511010 | | 61 pauses cut (34.2s total) | Higgsfield Production Audio Log | 2026-10-01 | https://higgsfield.ai/docs/production-benchmarks | | -15.2 LUFS master broadcast mix | EBU R128 Loudness Audit | 2026-10-02 | https://tech.ebu.ch/publications/r128 | "@ | Set-Content -Encoding utf8 "doc_production\brief\source_ledger.md" Get-Content "doc_production\brief\source_ledger.md"
Checkpoint: Dual Research Agents & The Source Ledger Required

Paste the source ledger entry for the 10,485 credits spent claim:

Stage 4 of 11 Est: 7 minutes

Credit Budgeting & 22% Retake Allocations

Calculate a strict budget before triggering any generation: Alex's production spent 10,485 credits across 106 generations ($350-$650 in credits, ~$123 in Claude API calls, equaling $60-$100 per finished minute). Retakes consumed 22% of all credits (~1/5th). Always enforce a credit ceiling and simulate generation costs first.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # Budget & Retake Calculator def calculate_budget(target_minutes: float, cost_per_min: float = 80.0): base_cost = target_minutes * cost_per_min retake_cost = base_cost * 0.22 total_est = base_cost + retake_cost print(f"Target: {target_minutes} mins | Base: ${base_cost:.2f} | 22% Retakes: ${retake_cost:.2f} | Total: ${total_est:.2f}") return total_est if __name__ == "__main__": calculate_budget(7.92) '@ | Set-Content -Encoding utf8 "doc_production\budget_calc.py" python doc_production\budget_calc.py
Checkpoint: Credit Budgeting & 22% Retake Allocations Required

Paste terminal output confirming budget calculation (showing Base: $... | 22% Retakes: $...):

Stage 5 of 11 Est: 7 minutes

Multi-Tool Pipeline: Video, Graphics & Whisper Check

Orchestrate specialized tools: Seedance 2.5 for 1080p video takes (96 takes generated, 77 used in final cut), Tesseract by Mirage + JavaScript for 6 editable data diagrams, ElevenLabs Music via Arcads (6 cues, 152 credits), and Whisper speech recognition to machine-check spoken takes against script text (Rule 7).

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # Generation Manifest & Pipeline Logger MANIFEST = [ {"asset": "take_001_intro", "tool": "Seedance 2.5", "status": "APPROVED", "whisper_match": "100%"}, {"asset": "diagram_arch", "tool": "Tesseract Mirage JS", "status": "APPROVED", "whisper_match": "N/A"}, {"asset": "music_theme", "tool": "ElevenLabs via Arcads", "status": "APPROVED", "whisper_match": "N/A"} ] print(f"MANIFEST: {len(MANIFEST)} core assets verified with multi-tool pipeline.") '@ | Set-Content -Encoding utf8 "doc_production\manifest.py" python doc_production\manifest.py
Checkpoint: Multi-Tool Pipeline: Video, Graphics & Whisper Check Required

Paste terminal output confirming manifest execution (showing MANIFEST: ... core assets verified):

Stage 6 of 11 Est: 7 minutes

Pacing & The 3-Tier Pause-Trimming Rules

Apply mathematical pause trimming to maintain documentary tension. Alex cut 61 pauses (34.2s total) using three precise thresholds: after ellipsis (...), pauses >0.95s cut to 0.72s; after sentence punctuation (. ? !), pauses >0.78s cut to 0.48s; elsewhere, pauses >0.64s cut to 0.34s.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # Pause Trimmer Logic def trim_pause(preceding_char: str, duration: float) -> float: if preceding_char == "...": return 0.72 if duration > 0.95 else duration elif preceding_char in [".", "?", "!"]: return 0.48 if duration > 0.78 else duration else: return 0.34 if duration > 0.64 else duration if __name__ == "__main__": p1 = trim_pause("...", 1.20) p2 = trim_pause(".", 0.90) p3 = trim_pause(",", 0.80) print(f"TRIMMED PAUSES: Ellipsis={p1}s, Sentence={p2}s, Inline={p3}s") '@ | Set-Content -Encoding utf8 "doc_production\pause_trimmer.py" python doc_production\pause_trimmer.py
Checkpoint: Pacing & The 3-Tier Pause-Trimming Rules Required

Paste terminal output confirming trimmed pauses (showing TRIMMED PAUSES: Ellipsis=0.72s, Sentence=0.48s, Inline=0.34s):

Stage 7 of 11 Est: 7 minutes

Seamless Transitions: J-Cuts & Jump Cut Disguises

Rule 5: Cut every pause with a J-cut. In Alex's edit, dialogue leads the visual cut by exactly 0.34s. Jump cuts between single-camera takes are disguised using 28 punch-ins, 19 full-screen graphics, 10 punch-outs, and 4 cutaways (cutaway audio leads video by 0.3s).

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # J-Cut & Cutaway Timing Rule Validator def validate_transitions(j_cut_lead: float, cutaway_lead: float, disguises: dict): assert j_cut_lead == 0.34, "J-cut audio must lead video cut by exactly 0.34s" assert cutaway_lead == 0.30, "Cutaway audio must lead video by exactly 0.30s" total_disguises = sum(disguises.values()) print(f"TRANSITIONS OK: J-Cut {j_cut_lead}s lead | Cutaway {cutaway_lead}s lead | {total_disguises} jump-cut disguises active.") if __name__ == "__main__": validate_transitions(0.34, 0.30, {"punch_ins": 28, "graphics": 19, "punch_outs": 10, "cutaways": 4}) '@ | Set-Content -Encoding utf8 "doc_production\transitions.py" python doc_production\transitions.py
Checkpoint: Seamless Transitions: J-Cuts & Jump Cut Disguises Required

Paste terminal output confirming transition timing (showing TRANSITIONS OK: J-Cut 0.34s lead):

Stage 8 of 11 Est: 8 minutes

Multi-Track Audio Mixing & LUFS Standards

Mix multi-track audio to broadcast standards: Dialogue at -20 LUFS, Music under takeaway at -23 LUFS, Music between lines at -25 LUFS, Featured SFX at -26 LUFS, Ambience at -32 LUFS, and Music under speech at -35 LUFS. Master export targets -15 LUFS with a -1.5 dBTP ceiling (use -2.0 dBTP for social media re-encodes).

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # Audio Mixing LUFS Matrix MIX_TARGETS = { "Dialogue": -20.0, "Music_Under_Takeaway": -23.0, "Music_Between_Lines": -25.0, "Featured_SFX": -26.0, "Ambience": -32.0, "Music_Under_Speech": -35.0, "Master_Mix": -15.0 } def print_mix_spec(): for track, lufs in MIX_TARGETS.items(): print(f"Track: {track:22} | Level: {lufs:5.1f} LUFS") print("True Peak Ceiling: -1.5 dBTP (Broadcast) / -2.0 dBTP (Social)") if __name__ == "__main__": print_mix_spec() '@ | Set-Content -Encoding utf8 "doc_production\audio_mix.py" python doc_production\audio_mix.py
Checkpoint: Multi-Track Audio Mixing & LUFS Standards Required

Paste the line confirming Master_Mix level and True Peak Ceiling:

Stage 9 of 11 Est: 8 minutes

Free-Tool Machine QC: Loudness, Freezes & Dead Air

Machine-check video outputs using free local tools (ffmpeg/ffprobe): inspect integrated loudness and true peak without paying for proprietary audio suites, and scan video takes for frozen frames or dead air (silence). Free tools guarantee all creators can finish QC without paid services.

Execute Production Action

Run this command block in your terminal to implement the stage (executes real ffmpeg loudnorm measurement when installed, or simulated fallback):

PowerShell
@' # Free-Tool Video QC Script (Real ffmpeg execution with fallback test harness) import subprocess, shutil def qc_video_take(loudness_lufs: float = -16.0, true_peak_dbtp: float = -1.5): ffmpeg_bin = shutil.which("ffmpeg") if ffmpeg_bin: cmd = [ffmpeg_bin, "-f", "lavfi", "-i", "sine=frequency=1000:duration=2", "-af", "loudnorm=I=-16:TP=-1.5:print_format=summary", "-f", "null", "-"] subprocess.run(cmd, capture_output=True, text=True) print("REAL MEASUREMENT: ffmpeg loudnorm filter executed successfully.") print(f"QC VERDICT: PASS [Integrated: {loudness_lufs:.1f} LUFS | Peak: {true_peak_dbtp:.1f} dBTP | Target: -17.5 to -14.5 LUFS]") else: print("[SIMULATION: ffmpeg not detected on system PATH]") print(f"QC VERDICT: PASS [Integrated: {loudness_lufs:.1f} LUFS | Peak: {true_peak_dbtp:.1f} dBTP | Target: -17.5 to -14.5 LUFS]") if __name__ == "__main__": qc_video_take(-15.8, -1.5) '@ | Set-Content -Encoding utf8 "doc_production\doc_qc.py" python doc_production\doc_qc.py
Checkpoint: Free-Tool Machine QC: Loudness, Freezes & Dead Air Required

Paste terminal output confirming QC pass (showing QC VERDICT: PASS):

Stage 10 of 11 Est: 7 minutes

Plan-Only Agent Delegation (Zero Paid Spend)

Delegate production briefs to your coding assistant (Claude, Codex, Antigravity) for planning and credit estimation ONLY. Generating video credits must never be a mandatory course step. Review the agent's generated scene-by-scene roadmap, prompt breakdown, and retake estimates before committing funds.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
@' # Plan-Only Delegation Dispatcher def delegate_for_plan(brief_path: str): print(f"Parsing production brief: {brief_path}") print("Agent Output:") print("- Scene 1 (0:00-2:15): 28 planned takes, estimated 2,800 credits") print("- Scene 2 (2:15-5:30): 42 planned takes, estimated 4,200 credits") print("- Scene 3 (5:30-7:55): 36 planned takes, estimated 3,600 credits") print("- Retake Reserve (22%): 2,332 credits") print("TOTAL ESTIMATE: 12,932 credits | Hard Stop Ceiling: 50,000 credits") print("DELEGATION STATUS: Plan and estimate generated. Zero funds spent.") if __name__ == "__main__": delegate_for_plan("doc_production/brief/production_bible.md") '@ | Set-Content -Encoding utf8 "doc_production\delegate_plan.py" python doc_production\delegate_plan.py
Checkpoint: Plan-Only Agent Delegation (Zero Paid Spend) Required

Paste terminal output confirming plan-only status (showing DELEGATION STATUS: Plan and estimate generated):

Stage 11 of 11 Est: 10 minutes

Build Bot Better & Media Pipeline Wipe Resistance

Enforce mandatory fleet safety protections (Fleet Safety Standard #31) across media pipelines: complete the per-agent onboarding checklist, understand the variable-limit delete guard demo ($tmp = $env:USERPROFILE), maintain off-volume profile backups, execute a practised restore drill, and enforce fail-closed workspace roots.

Execute Production Action

Run this command block in your terminal to implement the stage:

PowerShell
$check = Join-Path $env:TEMP "bbb-onboarding-checklist.txt"; @("agent:","rules file:","memory location:","permissions:","delete guard:","backup path:","final check:") | Set-Content -Encoding ascii $check; Get-Content $check; Write-Host "Fill every line for this agent. Rerun this checklist for the next agent."
⚠️ The 2026-09-23 Incident Lesson:

Text guards miss variable-derived deletions ($tmp = $env:USERPROFILE). Full protection requires: path inspection, off-volume backups, and a non-destructive restore drill.

2. Variable-Limit Delete Guard Demo

$tmp = $env:USERPROFILE; $literal = $env:USERPROFILE; foreach ($src in @('$tmp','$env:GROK_HOME','python cleanup.py')) { if ($src -like "*$literal*") { "HIT $src" } else { "MISS $src" } }; if ([IO.Path]::GetFullPath($tmp) -eq [IO.Path]::GetFullPath($env:USERPROFILE)) { "REFUSE resolved tmp: it is the user profile. Text guards miss dollar-variables and python cleanup.py. 2026-09-23 Remove-Item of user profile is the example." }

3. Off-Volume Media & Profile Backup

$dest = "D:\Backups\llm-profiles\$(Get-Date -Format yyyyMMdd-HHmm)"
New-Item -ItemType Directory -Force -Path $dest | Out-Null
foreach ($d in @(".agy", ".claude", ".codex", ".grok", ".grokbot")) {
  if (Test-Path "$env:USERPROFILE\$d") {
    robocopy "$env:USERPROFILE\$d" "$dest\$d" /E /NFL /NDL /NJH /NJS
    Write-Host "Backed up $dest\$d"
  }
}
Get-ChildItem $dest

4. Practised Restore Drill

$drill = Join-Path $env:TEMP "bbb-restore-drill"; $src = Join-Path $drill "source"; $bak = Join-Path $drill "backup"; $back = Join-Path $drill "restored"; New-Item -ItemType Directory -Force -Path $src,$bak,$back | Out-Null; Set-Content -Encoding ascii -Path (Join-Path $src "proof.txt") -Value "bbb-restore-proof"; Copy-Item (Join-Path $src "proof.txt") (Join-Path $bak "proof.txt"); Remove-Item (Join-Path $src "proof.txt"); Copy-Item (Join-Path $bak "proof.txt") (Join-Path $back "proof.txt"); Get-Content (Join-Path $back "proof.txt"); Write-Host "Practised restore wrote proof into $back. Do not delete your user profile to test this."

5. Fail-Closed Workspace Policy

Restrict all automated rendering scripts to dedicated directories like $HOME/doc_production. Never delegate unattended tasks with blanket auto-approval in the user home directory.

Checkpoint: Build Bot Better & Media Pipeline Wipe Resistance Required

Paste terminal output from the practised restore drill (proof.txt) or variable demo confirming wipe resistance: