The episode:
eight AIs play Sokoban.
Eight models took the same six Sokoban puzzles, and one failed all six for a flat zero. The video is titled 我让8个AI玩推箱子,有个拿了0分,还怪题目无解? (I had 8 AIs play Sokoban. One scored zero, then blamed the puzzle for having no solution?).
The cover was generated with the built-in image_gen tool, each ratio, 3:4, 4:3 and 16:9, composed separately. It reads 8大AI推箱子 / 有个AI / 直接0分! (8 AIs play Sokoban / one AI / scored zero!). Version two followed my note: 'The zero belongs to one of the AIs. The cover can't let people think none of them passed.'
The one in use is version three, after an independent review (AGY) whose suggestions I took: the bottom is now a deadlock, a figure pushing a crate into a corner under a single red cross; the eight logos are an unscored line-up that doesn't say who got zero; GLM uses the Z mark from its official site.
Give it one narration; get back a full 4K picture layer.
The edited narration runs 6:55.133, 24,908 frames at 60fps, in 14 chapters. Each chapter is one 4K MP4; end to end they cover the timeline exactly, and there is also one full-length file. I drop it into CapCut (剪映), add my avatar and subtitles, and it's ready.
All 14 chapters and lengths
- 00Opening suspense27.0s
- 01The eight and the scoring35.9s
- 02Level 1 settles it23.1s
- 03How the top two cleared it36.3s
- 04How the other six failed45.5s
- 05Level 3's opening trap23.3s
- 06DeepSeek's small, quick steps28.3s
- 07GPT slips on level 431.7s
- 08Restarting on purpose24.9s
- 09The last two levels32.4s
- 10Gemini gets blocked20.7s
- 11Breaking down the top two35.3s
- 12What the run cost21.3s
- 13Go play against them29.6s
Watch it first.
Everything here is from the 4K cut.
The four clips come from the 1080p preview with narration, compressed to 720p for the web, so you can hear the picture following the words; the stills come from the 4K film. The 4K files delivered for editing carry only music and sound effects, no narration. Every leaderboard on screen is public data. Spoilers below if you haven't watched the video.
Everything I gave it
was in the first message.
The final script
Any picture notes in the script are used as written; without a script it works from the SRT alone.
Narration audio and a CapCut SRT
The raw recording went through my ajiang-koubo-cut Skill first: retakes removed, breaths fixed, then an edited MP4, SRT and word-level transcript. Everything after follows that one timeline.
The live leaderboard, the challenge page and a local data page
The product is our team's ModelDial Arena. The Sokoban rendering code and the stage art later came straight from its source.
“Use ego browser to get real interaction footage.”
So it captured real pages and recorded real interactions with ego-browser.
What the Skill expects
It can be an unedited raw recording. The frame rate must be a constant integer; audio-only masters are treated as 60fps.
With source code it ports front-end animation and uses the product's key art; with no product site it captures the real sources the narration mentions.
Images are used as real material first. A reference film is classified, broken into a list of techniques and judged one by one, never copied wholesale.
Twelve stages,
one fixed stop at chapter one.
The pipeline has twelve stages, top to bottom. Each row says who does the work, which open-source projects and Skills it uses, and what comes out. Only the rows marked as stops wait for me.
- 00
Inventory
Conditional stop- Me
- Stops only if there is no narration, or the frame rate is not a constant integer.
- Lead
- Lists the script, audio or video, SRT and URLs and checks duration and frame rate with ffprobe; finds the product's source code and key art; watches 3–5 segments of the previous episode.
- Uses
- Product source (ModelDial Arena this time)
- 01
Edit
Raw recordings only- Lead
- Removes retakes, completes sentences, fixes breaths. From here on only the edited timeline counts.
- Uses
- ajiang-koubo-cut · faster-whisper
- Output
- Edited MP4 · SRT · word-level ASR
- 02
Understand · theme · chapters
Before the BRIEF- Lead
- Writes a 200-character summary and an errata list. Theme = the product's own art × this episode's show format. One chapter answers one question, 20–55 seconds, cut where a turning sentence starts. Four tables: reveals, line-by-line shots, wording of record, terminology.
- Output
- chapters.json · shotlist.csv (each asset belongs to one chapter)
- 03
One-command project
- Lead
- init_project.py: template, chapters, word alignment, entry points, narration slices, dependencies, tsc.
- Uses
- Remotion 4 + React 19
- Output
- timing.json · segN.tsx
- 04
Assets + privacy pass 1
Scan on import- Lead
- Ports the product's front-end animation and drives it with real data; takes 2x screenshots to prove what a page really says; extracts the product's colours and type and fetches logos, with inverted versions for a dark stage; scans every batch for QR codes and checks privacy by eye.
- Subagents
- Capture agent (optional): screenshots and real interactions; never opens settings or key pages.
- Uses
- ego-browser · lobehub icons · OpenCV · Codex CLI (last resort)
- Output
- Screenshots · tokens · logos · replay data
- 05
Chapter one = style sample
Always stops once- Me
- I watch the chapter-one preview and approve it to roll out.
- Lead
- Builds chapter one itself, 20–30 seconds, synced line by line; at least two shot cards plus the product's key art, logos and suspense handling; self-checks twice before sending it to me.
- Subagents
- Analysis agents ×2 (≤15 minutes each): one picks this episode's shot cards, one breaks down the previous film.
- Uses
- video-shotcraft shot cards and gallery
- Output
- Seg0.tsx · chapter-one preview and contact sheet
- 06
BRIEF + parallel dispatch
- Lead
- Moves chapter one's components into the shared lib and stress-tests them (a ≥40-second preview); writes the BRIEF with my approval quoted word for word in section 0; dispatches every chapter in one message and logs the IDs.
- Subagents
- Chapter agents ×N start, one per chapter (concurrency ≤ CPU cores / 2).
- Uses
- video-shotcraft aesthetic rules
- Output
- BRIEF.md · ledger.json
- 07
Collect + round two
- Lead
- Reads each contact sheet as its notification arrives and logs issues; patrols in the background and checks any agent with no new output for 30 minutes; sends targeted fixes with SendMessage, with timestamps and numbers.
- Subagents
- Reads the BRIEF, lib, chapter one and its lead card → writes its chapter → self-checks ≥3 times → reports.
- Output
- SegN.tsx · contact sheet · preview
- 08
Sound
Parallel with 06–07- Lead
- Extends the music, flattens its envelope, sets it 16 LU under the voice and cuts it per chapter; 10 semantic sound effects at a master gain of 0.3.
- Uses
- Mixkit music · Freesound CC0 effects
- Output
- Per-chapter music · mix.json
- 09
Independent review → round three
- Lead
- Triage: shared problems are fixed in the lib once everyone stops; the rest go back to each chapter's agent.
- Subagents
- Review agent (clean context): samples frames across the film and only reports.
- Uses
- video-shotcraft final review
- Output
- Issue list: severe / medium / minor
- 10
Preview gate + privacy pass 2
Stops by default, skippable- Me
- I review the preview page, unless I've said “不要问我了” (stop asking me).
- Lead
- Re-renders each preview → scans for QR codes again → builds the preview page.
- Uses
- Claude Artifact
- Output
- Preview page
- 11
4K + delivery + privacy pass 3
Stops before overwriting- Me
- If the delivery folder already has files, it asks whether to overwrite or create a new one.
- Lead
- queue.sh renders each chapter as soon as it passes; check.py verifies frame counts, loudness, chapter tails and seam brightness; the 4K film is scanned every 2 seconds; deliver.py hands it over.
- Uses
- Remotion render · ffmpeg concat and mix
- Output
- Chapters + full 4K film + 1080p preview + CapCut guide
The only places it waits for me
Start
No narration at all, or a master without a constant integer frame rate. Nothing works without a timeline, and a wrong frame rate misaligns every chapter in the edit.
Chapter one
After two self-checks it sends me chapter one once: the picture for every line plus the defaults it chose for me (suspense, logos, wording, safe areas). After I approve, it doesn't stop again.
Preview
Once internal checks, the independent review and two privacy passes are done, it sends a preview page. If I said not to ask, it renders 4K straight away and includes a 1080p preview with narration.
Overwriting delivery
If the delivery folder already has a film, it asks whether to overwrite or create another. This can't be undone, and the delivery script blocks it.
Gates that don't involve me
Chapter self-checks ≥3 rounds → the lead reviews contact sheets → independent review → targeted fixes → check.py. I'm never the first reviewer.
Scan on import → scan again before the preview → scan the 4K film every 2 seconds. QR codes are masked in the source image; emails, keys and settings pages can't be detected by a scanner, so every imported image is also checked by eye.
When the narration and the site data disagree, the picture follows the narration and hides the conflicting number. That comes from what I said during v2: 'I think my narration should be the reference for wording.'
Chapter one
took four versions.
Chapter one is the sample for the whole film. The lead agent builds it itself and always stops once for me. v1 arrived at 23:19 and I approved v4 at 00:53: 94 minutes in all.
- v1 · 23:19Rejected
A three-shot sample, cut loose from the narration
Chapter one v1 sheet: the main frame is a score card naming first and last place with their scores; below, a replay page screenshot and a hand-drawn deadlock diagram A push-in on a replay page screenshot, a hand-drawn 'illustrative' deadlock grid and a score card, cycling regardless of what I was saying.
“What is this? Go and check it properly, will you? Your audio isn't moving with the picture at all.”
I also told it to watch the finished film from episode 3.
- v2Rejected
Synced line by line, but a pile of screenshots that gave away the winner
Chapter one v2 sheet: a big first-place card with the model name and 91.6, second place peeking in; below, full-page screenshots of the cube and Sokoban leaderboards Every line had a picture now, but nearly all of them were screenshot push-ins, and first place was on screen.
“We need to keep the suspense. When we look at the strongest model, you can often make your own visuals. Don't show the model's name, get it?”
“I think my narration should be the reference for wording.”
“Not every page needs a real screenshot. Think about it: where a zoomed screenshot fits, where Screen Studio-style footage fits… when to use motion graphics. Think it through.”
“You have to use the good animations in here.”
“First use agents to analyse what we should reference, then make me a short first chapter. Once I confirm it, we'll settle the overall approach, then build the remaining chapters with the same theme, the same animation and the same style.”
“In here” in the fourth note meant video-shotcraft.
- v3Rejected
Hidden too much: anonymous cards on black, no logos
Chapter one v3 sheet: anonymous ??? cards on black and a seven-segment 91.6; below, a cube leaderboard showing only its title and a dot chart Anonymous cards on black, a '1 dot = 1 point' dot chart, seven-segment numbers, and not a single logo.
“I'm very unhappy. Your first segment has none of that feeling, nothing like a blockbuster. You also missed the point of this episode: 1. Don't give this episode's ranking, but you can show the leaderboards from the earlier Rubik's cube episodes, right? The cube doesn't matter. 2. You didn't use the logos either. 3. Those illustrative diagrams look ugly.”
I also pasted lobehub icons' skill.md. The problem was in the dispatch: I had only said not to show the model's name, and the lead agent wrote it down as 'no names and no logos'.
- v4 · 00:50Approved 00:53
The product's own stage, shot like an esports broadcast
Chapter one v4 sheet: a 1ST scoreboard on the product stage, its identity slot showing a question mark beside a huge 91.6; below, the DEADLOCK banner and the 8×6 results matrix with names as ??? - The product's own stage art fills the screen, with an esports broadcast HUD;
- The Sokoban board runs on a real replay; when step 7 creates a deadlock, a full-screen DEADLOCK banner sweeps across;
- The real Rubik's cube leaderboard (earlier episodes, fine to show) and the real 8×6 results matrix, names replaced with ???;
- A logo slot machine that stops on '?', 170px headlines, and a huge 91.6 and 0.
“I think this version is pretty good. Do everything after this the same way.”
How the Sokoban board came alive
While v2 was in progress I said: 'The Sokoban code should move. We already animate it with front-end tech, right? All our Sokoban code is right here; you can absolutely reproduce it.'
ModelDial Arena is our own product, and its Sokoban engine and board rendering were already front-end code. The agent ported them into Remotion and drove them with real replay data. Not a single move on screen is made up.
- The engine is the product's own Sokoban engine, so the rules match the live site.
- The board reuses the product's board component and styles; the stage art and host illustration are the product's own images too.
- Replays are compressed into step-by-step frames: whether each move walks, pushes or bumps a wall, and whether each attempt clears, deadlocks, restarts or runs out of moves.
- The narration time maps to a step on the board, even halfway between two moves, so fast-forward, rewind and freeze all follow the words.
Once the direction was clear,
v4 itself took about 8 minutes.
I went to bed;
13 chapter agents kept going.
Right after approving v4, I added:
“The rest is all yours. Have multiple agents develop in parallel, brief them clearly, and don't ask me. What I want in the end is a 4K film with everything rendered. Go on, I'm off to sleep… Leave a small circle in the top-right for my avatar, and the bottom of the frame for my subtitles… The active picture should be well laid out, not too small and not too big.”
The lead was Claude Code. One project, with permissions split by file: the lead owns everything global (theme, chapter one, the lib, cross-chapter deduplication, sound, rendering, talking to me), and each chapter goes to its own subagent. They share one lib, one set of tokens and one chapter one, so the result looks like one person made it.
Lead
Claude Code- Writes
- the lib, data, BRIEF, chapter one, ledger, preview page
- Never
- writes chapter content, changes the lib's visuals mid-round, or speaks for me or adds to what I said
Analysis agents
Before chapter one- Does
- one picks shot cards and maps them to chapter one line by line; one breaks down the previous film
- Rules
- ≤15 minutes each; no files, conclusions go in the final reply
Capture agents
Optional- Does
- takes screenshots and records real interactions with ego-browser
- Never
- opens settings, API key pages or private dashboards
Chapter agents
13 this time- Writes
- only its own chapter's files
- Never
- edits the lib or other chapters, takes screenshots online, renders 4K, or writes report files
Review agent
Clean context- Sees
- only the previews, subtitles, BRIEF and review checklist
- Returns
- [severe / medium / minor] chapter @second — problem — fix; reports only, edits nothing
How messages flow
Before chapter one
- Me → lead: one input (narration + script + URLs)
- Lead sends 2 analysis agents in parallel: pick cards / break down the last film
- Final replies: 10–16 cards + a card for every line of chapter one
- Lead sends me the chapter-one preview and its defaults, then stops and asks once
- Me: “Do everything after this the same way.”
Parallel build
- All chapters dispatched in one message
- The BRIEF is the constitution; each prompt only covers what's different about its chapter
- Patrol: a background timer; no new output for 30 minutes means go and look
- Notification = final reply: output paths, shot list, checklist, leftovers, lib requests
- Targeted fixes via SendMessage, each with a timestamp and numbers
Review and delivery
- A fresh review agent with a clean context gets only previews, subtitles, BRIEF and checklist
- Issue list: [severe / medium / minor] chapter @second — fix
- Round three goes back to the same chapter agents
- Each chapter joins the 4K queue as soon as it passes
- Delivery: chapters + full 4K film + 1080p preview
What this episode measured
chapter agents in parallel; the lead built chapter one itself
minutes of real work per agent in round one
minutes for the independent review to find 21 issues
minutes per chapter for round-two fixes
minutes to render all 14 chapters in 4K, queued
Six hours stuck on one command
In round one, seg8 and seg12 each sat on a single command for about six hours:
rm -f $D/*.jpg
A delete with a variable and a wildcard. Most likely it raised a permission prompt; I was asleep and nobody clicked. The lead wasn't patrolling either, so it simply waited. The Skill now has two rules: commands like this are banned in the BRIEF in favour of clearing folders with Python, and the lead sets a background timer while it waits, checking which command any agent with no output for 30 minutes is stuck on.
Two things the lead fixed along the way
A bright background at a chapter start, right after the previous chapter's dark stage, flashed. It added a 0.4-second fade-in.
The master sound-effect gain went from 0.45 to 0.3.
Six rules for working together
- 1Only relay what I actually said, and never add to it
My words go in quotes; the lead's inferences go on a separate, labelled line. This time 'don't show the name' became 'no names and no logos', and v3 was rejected for it.
- 2Reports live only in the final reply
Subagents don't write report files; the lead stores them.
- 3Send fixes to the same agent
It still has the context, so each targeted fix takes 2–8 minutes. IDs go in a ledger so context compression can't lose them.
- 4The lib is frozen mid-round
Sound-only parameters live in mix.json and can change any time; shared problems wait until everyone stops.
- 5Each chapter has its own entry and bundle
One broken chapter doesn't take the others down, so parallel work is safe.
- 6Patrol; don't just wait
Commands that trigger a confirmation prompt are banned in the dispatch, and the lead checks every 30 minutes.
I'm never the first reviewer,
and delivery says what wasn't checked.
Once every chapter was in, the lead started a review agent with a clean context and gave it only the previews, subtitles, BRIEF and review checklist. In about 15 minutes it found 21 issues: 2 severe, 10 medium, 9 minor. Both severe ones were repeats:
- The same MiniMax level-1 replay appeared in both seg2 and seg4;
- The full Rubik's cube leaderboard appeared three times.
Round two made targeted fixes to 11 chapters, 2–8 minutes each. 4K rendering ran as a queue, each chapter starting as soon as it passed: about 37 minutes for all 14. Delivered at 08:50.
B-roll成片/ (B-roll output)
├─ 0_开场悬念_00-00-00,000~00-00-27,000_字幕1-15.mp4
├─ 1_八强与计分规则_00-00-27,000~00-01-02,867_字幕16-39.mp4
├─ … 14 chapters end to end, 3840×2160 · 60fps
├─ 13_去试试人机对战_00-06-25,533~00-06-55,133_字幕233-251.mp4
├─ B-roll全片_4K_配乐音效_不含口播.mp4 full 4K film, 24,908 frames = master
├─ 预览_B-roll加口播_1080p.mp4 1080p preview with narration
├─ 无配乐版/ same names, effects only
├─ 替换对照表.txt start/end, frames, subtitle numbers
├─ 音乐与音效来源.txt sources and licences
└─ 剪映贴法.txt CapCut placement guideFile names carry the SRT start and end in milliseconds plus subtitle numbers, so dropping them into CapCut in order just works. To avoid placing 14 files, use the single full-length film.
What was checked automatically before delivery
chapters at 3840×2160 · 60fps, frame counts match the timeline
music + effects under the narration; true peak ≤ −17 dBTP
residue at chapter tails
seam brightness difference at chapter starts, so nothing flashes in the edit
frames sampled from the 4K film and scanned for QR codes, zero hits
the audio was only measured, never listened to cue by cue
The delivery says how far verification went
Frame counts, loudness and true peak, chapter tails, seam brightness and QR codes were all checked by script.
Nobody listened to the audio cue by cue; it was only measured. The delivery notes say so.
After watching it, I said: 'This is so well done!'
After the retrospective,
things I won't have to say again.
After delivery, two independent retrospective agents read the whole session log and wrote this episode's lessons back into the Skill. Next time, all of this is the default.
- 01
Chapter one is the sample and always stops once; after approval it doesn't stop again. If I've said “不要问我了” (stop asking me), the preview gate is skipped too.
- 02
Theme = the product's own art × this episode's show format, plus a checklist for that blockbuster feel.
- 03
Four tables before the BRIEF: reveals, line-by-line shots (each asset belongs to one chapter), wording of record (the narration wins), terminology. Both severe review issues were the same material showing up in several chapters.
- 04
Logos: fetch lobehub's mono, colour and wordmark versions, with inverted ones for dark stages; show a logo whenever the narration names a model; for identities still under wraps, a logo slot machine stops on '?'.
- 05
Dispatches relay my words, nothing added. This time 'don't show the name' became 'no names and no logos', and that sank v3.
- 06
The lead patrols: any subagent with no new output for 30 minutes gets checked.
- 07
Delivery always includes the full 4K film and a 1080p preview with narration; check.py now checks seam brightness.
Want to try it?
Set these up first.
npx skills add NanmiCoder/ajiang-vibe-coding-skills --skill ajiang-koubo-brollRun raw recordings through ajiang-koubo-cut
It removes retakes and fixes breaths, then delivers the edited MP4, SRT and word-level transcript. The B-roll only follows that edited timeline.
video-shotcraft
By Vincentwei1021, Apache-2.0. The Skill doesn't bundle its files; install or clone it yourself following its repository.
ego-browser
For real page captures and recorded interactions. It works without it, with far fewer real pages.
A coding agent that supports subagents
The lead must be able to dispatch subagents in parallel and message them again. This episode used Claude Code.
Remotion
Remotion has its own licence: free for individuals and small teams, while companies above a certain size need a commercial licence. Check before you use it.
Start here
- 01
Install ajiang-koubo-broll and video-shotcraft, and ideally ego-browser.
- 02
Give your agent the script, narration (raw recordings are fine), SRT and product URLs. If you have the product's source, tell it where.
- 03
Wait for chapter one. If it's wrong, say exactly what's wrong; it maps each note to its self-check list and revises.
- 04
When you approve, say whether it should ask you again. Say “不要问我了” (stop asking me) and it renders straight through to 4K.
- 05
Listen to the audio yourself after delivery: the agent measured loudness but didn't listen.
- 06
In CapCut: keep the edited narration on the main track and put the 4K film on the track above; duplicate the narration with a circular mask in the top-right corner; import the edited SRT as subtitles.
A wrong direction is the most expensive mistake, so it stops once, at chapter one. Once the direction is right, a team of agents does the rest.
Sources and frames
Clips come from the 1080p preview with narration, compressed to 720p for the web; stills come from the 4K film; the chapter-one v1–v4 images come from each version's contact sheet at the time; the covers are this episode's published ones (version three). The header image and illustration were generated with Codex CLI and are not frames from the film.
The B-roll shows only public leaderboard data. Numbers in this article come from the delivery checks and session timestamps; the audio was not listened to cue by cue.
Thanks to
the open-source projects behind it.
This B-roll stands on these open-source projects and free assets. Each one is listed below with what it was used for.
video-shotcraftby Vincentwei1021
The motion grammar of its 124 shot-recipe cards, its aesthetic-rules and its final-review method. Chapter one uses at least two cards and every later chapter one lead card; the aesthetic rules go to chapter agents and the final review to the review agent. The Skill doesn't bundle its files; install or clone it yourself.
lobehub iconsby LobeHub
Model and vendor logos, fetched as static SVGs via unpkg. Mono, colour and wordmark versions were all used, inverted for the dark stage, including the logo slot machine.
Remotion 4 + React 19by Remotion
The whole project: React rendered frame by frame, one composition per chapter, all 14 4K chapters. Remotion has its own licence: free for individuals and small teams, commercial for companies above a certain size.
faster-whisperby SYSTRAN
Called through ajiang-koubo-cut for word-level transcription. Syncing the picture to each line depends on its word timings.
ffmpeg · OpenCV
ffmpeg for frame grabs, concatenation and mixing; OpenCV scans for QR codes in all three privacy passes.
Codex CLIby OpenAI
The Skill's last resort for generated images; this episode's B-roll used none, and the cover came from the built-in image_gen. This article's header image and illustration were generated with it.
ModelDial Arena
The Sokoban rendering components and the stage art both come from it.
Thanks to Vincentwei1021 for open-sourcing video-shotcraft; the camera moves in this Skill follow its cards. Thanks as well to LobeHub, Remotion, SYSTRAN, the authors of the CC0 sounds on Freesound and the musicians on Mixkit.