Docs / CLI reference

Checks and loops

Commands that check each file and take against the standard, and run the 5 loops that make, check and fix the episode.

Every command on this page needs a signed-in computer. Signed out, each one prints You are not signed in. Ask your agent to run minicut login. and exits with code 10. Flags every command takes, and every exit code, are on Global options.

The checks run on your own computer. Each check prints every failure with its fix, so your agent can fix it and run the check again. The loops run these checks in rounds, as the Overview shows.

minicut check STEP

Checks one step's file against its standard and writes the result beside it.

Usage

Usage
minicut check STEP FILE [OPTIONS] [--ignore CHECKS]

Replace the following:

  • STEP: the step number, from the table below.
  • FILE: the file or folder that step checks.
  • OPTIONS: the options for that step, from the table below.
  • CHECKS: the names of the failing checks to ignore, separated by commas.

Details

Each step of an episode has its own check. Your agent runs it after it writes the step's file, and fixes what fails.

StepLoopChecksFILEOptions
1ScriptResearched ideathe idea document, .mdnone
2ScriptStory and world documentthe story document, .md--format {one-off|series-episode|series}
3ScriptEpisode scriptscript.md--soft-only
4Shot sheetShot sheetshots.md--model MODEL
5Shot sheetAsset list and sheet promptsassets.md--sheet shots.md, --version VERSION, --model MODEL
6Shot sheetShot promptsprompts.md--assets assets.md, --sheet shots.md, --model MODEL, --root FOLDER, --strict
10Mock and EditEditor timelinethe episode folder--target SECONDS, --tol SECONDS

Steps 4, 5 and 6 need --model with the video model you picked, because each video model has its own shortest and longest shot. No model is a default. minicut models --kind video lists them.

--ignore lets you keep a failing check on purpose. Only the checks you name stop counting, and the ignore is written to the step's checks file with the date. A missing sheet or picture that a video take needs can never be ignored.

Options

FlagTypeDefaultDescription
--modelnamenoneThe video model. Needed for steps 4, 5 and 6
--sheetfilenoneSteps 5 and 6: the shot sheet
--assetsfilenoneStep 6: the asset list
--formatformatnoneStep 2: one episode, an episode of a series, or a whole series
--soft-onlyswitchoffStep 3: show only the soft checks
--strictswitchoffStep 6: a picture file named in a prompt that is not on disk yet is a FAIL, not a note. Use it before a real paid run
--targetsecondsnoneStep 10: the episode's target length
--tolsecondsnoneStep 10: how far from the target the length may be
--ignorecheck namesnoneKeep these failing checks on purpose

Examples

Check the shot sheet

Terminal
minicut check 4 shots.md --model MODEL

Replace MODEL with the video model you picked.

Output

One line per check that failed, with its fix, then a result line and the path of the checks file:

Result lineMeaningExit code
RESULT: PASSEvery hard check passed. Soft warnings are counted on the same line0
RESULT: FAILHard checks failed. The line gives how many1
RESULT: NOT RUNThe check could not run. The reason is above it2
RESULT: REFUSED--ignore named a check that can never be ignored5

Errors

MessageWhat to do
not a step: <step>.Use a step number from the table, or one of the named checks below
file not found: <file>Check the path
no Python 3 found. Run: minicut setupRun minicut setup

See also

minicut loop run, minicut script

minicut check take

Checks one video take of a shot and prints each failure with its fix.

Usage

Usage
minicut check take CLIP_FOLDER [--take TAKE] [--json]

Replace the following:

  • CLIP_FOLDER: the shot's folder, such as episodes/ep01/clips/c03.
  • TAKE: a take id such as t02.

Details

With no --take, the command checks the newest take. It saves the result beside the take. A shot with no take fails, and the fix names the minicut gen video command to make one.

Options

FlagTypeDefaultDescription
--taketake idthe newest takeThe take to check
--jsonswitchoffPrint the result as one JSON object

Examples

Check the newest take of shot 3

Terminal
minicut check take episodes/ep01/clips/c03

Output

The shot, the take, its kind and its length, then one FAIL line per failure with a fix: line under it, then RESULT: PASS or RESULT: FAIL. With --json, the result is one object with result and a failures list, each with check, message and fix. Exit codes: 0 when it passes, 1 when it fails, 2 when the folder is not a shot folder.

See also

minicut gen video, minicut check zoom

minicut check mock

Checks the whole mock of an episode: every shot's picture, every line's voice, and the music.

Usage

Usage
minicut check mock EPISODE_FOLDER [--json]

Replace the following:

  • EPISODE_FOLDER: the episode folder, such as episodes/ep01.

Details

The mock is the whole episode as still pictures with voices, music and captions. The check compares its length with the target, and saves the result in the episode folder. It also asks for a person to look at one frame of every shot and answer its questions.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint the result as one JSON object

Examples

Check the mock of episode 1

Terminal
minicut check mock episodes/ep01

Output

The episode's length against its target, the failures with their fixes, then RESULT: PASS or RESULT: FAIL. Exit codes: 0 when it passes, 1 when it fails, 2 when the folder is not an episode folder.

See also

minicut loop run, minicut check captions

minicut check render

Checks a finished video file of an episode.

Usage

Usage
minicut check render EPISODE_FOLDER RENDER_FILE [--json]

Replace the following:

  • EPISODE_FOLDER: the episode folder, such as episodes/ep01.
  • RENDER_FILE: the finished video file, such as renders/ep01.mp4.

Details

The check saves its result beside the video file, with the same name and .verdict.json on the end.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint the result as one JSON object

Examples

Check the finished episode

Terminal
minicut check render episodes/ep01 episodes/ep01/renders/ep01.mp4

Output

The failures with their fixes, then RESULT: PASS or RESULT: FAIL. Exit codes: 0 when it passes, 1 when it fails, 2 when a path is wrong.

See also

minicut check captions

Checks that every caption is placed, split, timed and readable to the standard.

Usage

Usage
minicut check captions EPISODE_FOLDER [--json]

Replace the following:

  • EPISODE_FOLDER: the episode folder, such as episodes/ep01.

Details

The Mock and Edit loops run this check. The standard is captions at the bottom centre, at most 2 lines, each timed to its spoken line.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint the result as JSON and save it in the episode folder

Examples

Check the captions of episode 1

Terminal
minicut check captions episodes/ep01

See also

minicut check mock, minicut check labels

minicut check labels

Checks that every mock shot has a labeled copy for people to review.

Usage

Usage
minicut check labels EPISODE_FOLDER [--json]

Replace the following:

  • EPISODE_FOLDER: the episode folder, such as episodes/ep01.

Details

The Mock loop runs this check. In each labeled copy, every asset of the shot carries a tag with its @name. The tags are on screen, apart from each other and off faces. The clean copy of the picture stays untouched.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint the result as one JSON object

Examples

Check the labels of episode 1

Terminal
minicut check labels episodes/ep01

See also

minicut check lengths

Checks each shot on the timeline against the length of its take, and the music against the episode.

Usage

Usage
minicut check lengths EPISODE_FOLDER [--json]

Replace the following:

  • EPISODE_FOLDER: an episode folder that has a timeline, such as episodes/ep01.

Details

A take shorter than its shot leaves the last frame held on screen. The check finds each of those and checks that the music fits the episode.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint the result as one JSON object

Examples

Check the lengths of episode 1

Terminal
minicut check lengths episodes/ep01

Output

The number of shots checked, then one FAIL line per problem with its fix. Exit code 2 means the folder has no timeline.

See also

minicut check zoom

Makes full-size pictures of every part of a take, so a person or an agent can look at the detail.

Usage

Usage
minicut check zoom TAKE_FILE [--prev PREVIOUS_TAKE] [--box NAME=X,Y,W,H@FRAME ...] [--out FOLDER] [--json]

Replace the following:

  • TAKE_FILE: the take's video file, such as t02.mp4.
  • PREVIOUS_TAKE: the take of the shot before, to check the cut between them.
  • NAME=X,Y,W,H@FRAME: one area to look at closely: a name, its position and size in pixels, and the frame number.
  • FOLDER: the folder to save the pictures in.

Details

The pictures show every part of the frame, every hand and face, and the places where something changes. With --prev, they also show the cut from the shot before.

Options

FlagTypeDefaultDescription
--prevfilenoneThe take of the shot before
--boxareanoneOne area to look at closely. Repeat it for more
--outfoldernoneWhere to save the pictures
--jsonswitchoffPrint the result as one JSON object

Examples

Look closely at a take and the cut before it

Terminal
minicut check zoom episodes/ep01/clips/c03/t02.mp4 --prev episodes/ep01/clips/c02/t01.mp4

See also

minicut loop

Shows each loop's round, its limit and its last result, and the one command to run next.

Usage

Usage
minicut loop [status] [--episode EPISODE] [--json]

Replace the following:

  • EPISODE: an episode id such as ep01.

Details

The loops run in a project folder, or any folder under it. There are 5 loops, and the CLI names them script, sheet, mock, videos and edit:

LoopCLI nameWhat it makes
ScriptscriptThe story and the episode script
Shot sheetsheetEvery shot in the episode, and pictures of its characters and places
MockmockThe whole episode as still pictures with voices, music and captions
VideosvideosA video take for every shot
EditeditThe finished episode as a video file

Each loop makes its part, checks it, fixes what fails and checks again. A loop stops after 3 rounds by default and shows you what still fails, and you decide. The order is a suggestion: a loop run out of order prints one warning and runs.

To change the limit for a project, add "loops" to its series.json, such as "loops": {"mock": 4, "takes": 5}. The key for the Videos loop is takes.

Options

FlagTypeDefaultDescription
--episodeepisode idthe episode you are inThe episode to show
--jsonswitchoffPrint one JSON object

Examples

Show where every loop stands

Terminal
minicut loop

Output

The project title and episode, then one row per loop with the steps it covers, its limit, its rounds and its state. The last two lines are next: with the one command to run, and why:.

Errors

MessageWhat to do
minicut loop runs inside a project folderRun it in the project folder, the one with series.json, or a folder under it

See also

minicut loop next, Overview

minicut loop next

Prints the one command to run next, and why.

Usage

Usage
minicut loop next [--json]

Details

Your agent runs this to find out what to do. It never has to guess the order of the steps.

Options

FlagTypeDefaultDescription
--jsonswitchoffPrint one JSON object

Examples

Ask what to do next

Terminal
minicut loop next

Output

The command on the first line, then why: with the reason and read: with the files to read first.

See also

minicut loop run

Runs one loop's checks once and records the round.

Usage

Usage
minicut loop run {script|sheet|mock|videos|edit} [--max ROUNDS] [--json]

Replace the following:

  • ROUNDS: the most rounds this loop may take.

Details

Before it uses a round, the command checks that the loop's files exist. For the Mock loop, every shot needs its mock picture, every line its voice, and the music its file. Someone also has to look at the mock's picture sheet first. For the Script and Shot sheet loops, every step file must be written. When something is missing, the command lists it, exits with code 3 and uses no round.

Options

FlagTypeDefaultDescription
--maxnumber3, or the limit in series.jsonThe most rounds for this loop
--jsonswitchoffPrint one JSON object

Examples

Run the Shot sheet loop's checks

Terminal
minicut loop run sheet

See also

minicut check STEP, minicut loop approve

minicut loop approve

Records that you said yes to what a loop showed you.

Usage

Usage
minicut loop approve {script|sheet|mock|videos|edit}

Details

Approve a loop after you look at what it made. If the loop's last round did not pass, the command records your yes anyway and prints a note. It then prints the next command.

Examples

Approve the mock

Terminal
minicut loop approve mock

See also

minicut loop done

Ends a loop because you decided to, whether it passed or not.

Usage

Usage
minicut loop done {script|sheet|mock|videos|edit} --reason REASON

Replace the following:

  • REASON: your words for why the loop ends, in quotes.

Details

Use this when a loop stops at its limit and you decide the result is good enough. Your reason is kept with the loop.

Examples

End the Videos loop

Terminal
minicut loop done videos --reason "Good enough, ship it"

See also

minicut loop pause

Makes every loop go quiet, until minicut loop resume brings them back.

Usage

Usage
minicut loop pause [--reason REASON]
minicut loop resume

Replace the following:

  • REASON: why you pause, in quotes.

Details

While the loops are paused, your agent can stop work and nothing asks it to go on.

Examples

Pause for the day

Terminal
minicut loop pause --reason "Back tomorrow"

See also

minicut loop stop-at

Tells the loops to go only as far as one loop, such as the mock.

Usage

Usage
minicut loop stop-at {script|sheet|mock|videos|edit|none} --reason REASON

Replace the following:

  • REASON: your words for the stop, in quotes. Not needed with none.

Details

After a stop, minicut loop next names no loop or step past it. none clears the stop, and every loop is open again.

Examples

Go only as far as the mock

Terminal
minicut loop stop-at mock --reason "Show me the mock first"

See also

minicut loop guard

Sends your coding agent back to work while a loop or a job is still open.

Usage

Usage
minicut loop guard [--hook | --pre-tool]

Details

This command is for your coding agent's hooks. It exits with code 2, which sends the agent back to work, in three cases:

  • a loop is mid-round
  • real video takes wait for the Videos loop
  • a job of the project still runs

Outside a project, or while the loops are paused, it exits with code 0.

Options

FlagTypeDefaultDescription
--hookswitchoffRun as the agent's stop hook, reading what the agent app sends
--pre-toolswitchoffRun before the agent writes a file. It refuses a direct write to the episode timeline and names the minicut timeline command to use

See also