Module 2

Story

Module 2. Your idea becomes a script, and your script becomes a shot list, as a file with structure, not a document you retype into a prompt box thirty times.

2 · Claude Code for Filmmakers1 / 14

Why this comes before any image

The generation is only ever as good as the thing you asked for.

Most people skip this and pay for it later: they prompt shot by shot, out of their head, and by shot fourteen the character has drifted, the look has drifted, and there is no document anywhere that says what it was supposed to be.

Every serious course in this field opens on story. Not because it is romantic, because it is the only thing that makes the next four modules cheap.

2 · Claude Code for Filmmakers2 / 14

The trap, named

A prompt you typed once and cannot find again is not a decision. It is a lucky accident you are now trying to reproduce from memory.
2 · Claude Code for Filmmakers3 / 14

Start from what you actually have

You almost never start from nothing. You start from a brief, a reference, a client's half-sentence, or a shot you saw and want to steal the feeling of.

Put that in the folder. A .txt, a PDF, a screenshot, notes you dictated badly, it does not need to be tidy.

"Read everything in ./brief. Tell me back what you think we're making, who it's for, and what the one feeling is. Where the brief is vague or contradicts itself, say so instead of smoothing it over."

That last clause is the whole slide. A model asked to summarise will paper over a gap. A model asked to find gaps will find them.

2 · Claude Code for Filmmakers4 / 14

Make it interview you

The fastest way to a brief you can use is not typing one. It is being asked.

"Interview me about this. One question at a time, hardest first. Stop when you have enough to write a treatment I'd actually recognise."

One question at a time matters. A list of twelve questions gets three lazy answers; one question at a time gets twelve real ones.

2 · Claude Code for Filmmakers5 / 14

The move that changes everything

2 · Claude Code for Filmmakers6 / 14

Your script is a file, not a chat message

When the treatment is right, it goes on disk. story/treatment.md. Then the script beside it.

Because it is a file:

  • It is read at the start of every session: you stop re-explaining your own project
  • It can be diffed: you can see exactly what changed between v3 and v9
  • It is in version history: the version the client liked is recoverable
  • Everything downstream can be generated from it rather than retyped

This is the difference between using a chat tool and running a pipeline.

2 · Claude Code for Filmmakers7 / 14

From script to shot list, as data

Now the move the rest of the course stands on:

"Break the script into shots. Write it to story/shots.json. One object per shot with: id, scene, description, character, location, time_of_day, camera, duration_s, prompt, status. Leave prompt and status empty, we'll fill those in the next module."

You now have a shot list that a machine can act on. Not a table you read and retype, a file that the image module reads, the video module reads, and the edit reads.

2 · Claude Code for Filmmakers8 / 14

Why structured beats prose

A prose shot listA structured one
You read it and retype into a prompt boxThe next module reads it and generates from it
"Shot 12ish, the alley one"id: 12, unambiguous, forever
Changing the look means editing 30 paragraphsChange one field, regenerate the affected shots
No idea which shots are donestatus tells you, and tells the pipeline
A client note means starting overA client note changes one row

This is the file that makes the unattended pipeline possible. Twenty platform cuts, delivered while you sleep, all tracing back to these rows.

2 · Claude Code for Filmmakers9 / 14

Consistency starts here, not three modules from now

While you are in the script, name the things that must not drift:

"Pull every character and every location out of the script into story/bible.json, one entry each, with the details that have to stay identical across shots. Flag anything the script never actually specifies."

The flags are the valuable part. The script never said what colour her coat is, so every generation will invent a different one. Decide it now, once, in a file, or discover it across thirty shots.

2 · Claude Code for Filmmakers10 / 14

Do it now

2 · Claude Code for Filmmakers11 / 14

The exercise

Fifteen minutes, on something real. Not a practice idea.

  1. Put whatever you have into ./brief, even one messy paragraph
  2. "Read ./brief, tell me what we're making, and name what's missing."
  3. "Interview me. One question at a time, hardest first."
  4. "Write the treatment to story/treatment.md."
  5. "Now the script, to story/script.md."
  6. "Break it into shots → story/shots.json, fields as listed, prompt and status empty."
  7. "Pull characters and locations into story/bible.json. Flag what the script never specifies."

Then open shots.json and read it. If a row is wrong, the fix is one row, that is the point.

2 · Claude Code for Filmmakers12 / 14

What you should have now

  • story/treatment.md: what you are making, in language you recognise
  • story/script.md: the thing itself
  • story/shots.json: every shot, as data, ready to generate from
  • story/bible.json: what must not drift, decided once

You have not generated a single image yet, and you are already ahead of where most people are at shot thirty.

2 · Claude Code for Filmmakers13 / 14

Next: Module 3

Image. Stills first, always, the look, the frames, and a prompt library that fires twenty variants off the shot list you just built and keeps the ones that worked.

Verified against Claude Code 2.1.220 · 2026-07-30.

2 · Claude Code for Filmmakers14 / 14
Keys space next  ·  back
Or click the arrows, the sides of the frame, or the bar along the bottom
Home / End first / last
S presenter notes
A scroll-all view, then ⌘P to make a PDF
F fullscreen  ·  ? this help
NextImageContinue ›