Episode timeline
Timeline progress
Collector hasn’t reported per-timeline progress yet.
Review coverage
Select a cell for that region’s timecodes, timeline length and takes.
GPU nodes
Guards
Region map
Raw archive — WS-02 → BLACK-A
| Episode | Delivered | CAM status | CAM on WS‑02 | Deleted | On BLACK‑A | Manifest |
|---|
Background jobs
Scripts
Re-run any pipeline script by hand — for when Claude is unavailable. Pick the episode, tick the flags, Preview (a dry run) and read the output, then Run. Scripts with no dry run ask for one confirmation. The server refuses a run on a delivered episode, while another Resolve pass is running, or when Resolve is closed; each script's own gates still apply.
Recent runs
Where things live — every script, and the Terminal command to run it
Every Dodee pipeline script, where it lives, and the exact command to run it in Terminal. This works with the monitor DOWN and with Claude unavailable. Paste the setup block once, then any command below. Flags in square brackets are optional; the monitor's checkboxes map to them one-to-one. Anything not listed as a monitor button is listed at the bottom.
Setup (paste once)
EP=EP22; N=${EP#EP}
DIR=/Volumes/2T5-WS-02/2026-MOST-PRODUCTION-DODEE/00-ASSETs/00-EPISODEs/$N-RV-$EP
XML=$(ls "$DIR"/02-$EP-IMPORTs/01-$EP-I-XMLs/*.xml | head -1)
VOCAB="$DIR/01-$EP-DOCs/$EP-VOCAB.json" # run_prompt_pack only
PREV=EP$(printf %02d $((10#$N - 1))) # previous episode (prompt-pack inheritance)
PREV_DIALOGUE_PACK=$(ls -d /Volumes/2T5-WS-02/2026-MOST-PRODUCTION-DODEE/00-ASSETs/00-EPISODEs/*-RV-$PREV)/01-$PREV-DOCs/$PREV-DIALOGUE-PROMPT-PACK.json
PREV_SONG_PACK=${PREV_DIALOGUE_PACK/DIALOGUE/SONG}
0 · Check (read-only)
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/readiness.py --ep $EP
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/audit_coverage.py --ep $EP --dir "$DIR"
1 · Ingest & gens
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/announce_raws.py --ep $EP --dir "$DIR" --dry-run # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/announce_raws.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/stage_wavs.py --ep $EP --dir "$DIR"
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/import_gens.py --ep $EP --dir "$DIR" --dry-run # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/import_gens.py --ep $EP --dir "$DIR"
2 · VOX, transcript, prompts
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_audio_export.py --ep $EP --dir "$DIR" # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_audio_export.py --ep $EP --dir "$DIR" --apply
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_transcribe.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_prompt_pack.py --ep $EP --dir "$DIR" --vocab "$VOCAB" --inherit "$PREV_DIALOGUE_PACK" --inherit-song "$PREV_SONG_PACK"
3 · Assembly, render, verify
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_assembly.py --ep $EP --dir "$DIR" --xml "$XML"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/resume_render.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/verify_pass.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/clear_hold.py --ep $EP --who dodee-monitor
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_keyings_render.py --ep $EP --dir "$DIR"
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/apply_keyings_comps.py --ep $EP --dir "$DIR" --dry-run # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/apply_keyings_comps.py --ep $EP --dir "$DIR"
4 · Colour, cut, transforms
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/apply_dodee_grade.py --ep $EP --dir "$DIR" # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/apply_dodee_grade.py --ep $EP --dir "$DIR" --apply
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_blade.py --ep $EP --dir "$DIR"
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_drop_onur_cu.py --ep $EP --dir "$DIR" # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_drop_onur_cu.py --ep $EP --dir "$DIR" --apply
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_transforms.py --ep $EP --dir "$DIR"
5 · Exports
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/export_cpx.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/export_cfx.py --ep $EP --dir "$DIR"
6 · Revisions & repair
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/recheck_renders.py --ep $EP # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/recheck_renders.py --ep $EP --apply
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/fix_uncomped.py --ep $EP --dir "$DIR" --dry-run # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/fix_uncomped.py --ep $EP --dir "$DIR"
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/fix_idles.py --ep $EP --dir "$DIR"
# preview (changes nothing) ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/pool_cleanup_2111.py --ep $EP --dir "$DIR" # run ~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/pool_cleanup_2111.py --ep $EP --dir "$DIR" --apply
7 · Sync tools
# preview (changes nothing) ~/.local/bin/dodee-review-sync $EP # run ~/.local/bin/dodee-review-sync $EP --apply
# preview (changes nothing) ~/.local/bin/dodee-gen-sync --ep $EP --dry-run # run ~/.local/bin/dodee-gen-sync --ep $EP
~/.local/bin/dodee-keyings-supervise $EP "$DIR"
Terminal-only (no monitor button)
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_all.py --ep $EP --dir "$DIR" --xml "$XML" --drp <previous-episode.drp> --raw-src <camera-raws> [--from STAGE] [--to STAGE]
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/prep_episode.py --ep $EP --dir "$DIR" --xml "$XML" --raw-src <camera-raws> [--dry-run]
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_episode.py --ep $EP --dir "$DIR" --xml "$XML" --drp <previous-episode.drp>
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/run_submit.py --ep $EP --dir "$DIR" --nodes A,B,C [--verify1 | --bulk]
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/pipeline_advance.py --once [--dry-run]
~/.pyenv/shims/python3 ~/.claude/skills/dodee-episode/selfcheck.py
Logs and keys
Runs started from the monitor write ~/.dodee-watchdog/script-runs/runs/<run-id>.log (+ .json with the exact argv and exit code). Every script also writes its own job log, which is what the dashboard's stage verdicts read. The dashboard key is in ~/.dodee-watchdog/dashboard-key. Terminal runs obey the same rules the monitor enforces: do not start a second Resolve-driving pass while one is running, never run on a DELIVERED episode, and Resolve must be open first.