rule-of-six-edit · git:20260713.037b8e1 · 2026-07-13 · sha256 227237ea01ab2e26
rule-of-six-edit git:20260713.037b8e1A
Immutable. This exact content is served forever at /api/v1/blob/227237ea01ab2e26.
---
name: rule-of-six-edit
description: Evaluate and plan the CUTS / editing of a short-form video / reel using Walter Murch's "Rule of Six" — the priority hierarchy that defines an ideal cut: Emotion (51%) > Story (23%) > Rhythm (10%) > Eye-trace (7%) > 2D plane / photographic grammar (5%) > 3D spatial continuity (4%), with one doctrine — when a cut can't satisfy all six, sacrifice from the BOTTOM up and never sacrifice emotion. Produces a cut sheet (JSON), a human edit sheet (Markdown) and plain director notes (txt), and can seed itself from an avatar-reel-composer storyboard.json so every scene boundary is scored. This is the editing companion to viral-video-script (which writes the words). Use when deciding where/when to cut, evaluating or critiquing an edit, planning scene boundaries / pacing / transitions for a reel, building or reviewing a storyboard's cuts, or when the user mentions "edición", "montaje", "cortes", "dónde cortar", "ritmo", "eye-trace", "rule of six", "Walter Murch", or editing a virtual-avatar reel.
---
# Rule of Six — reel edit guide
Decide the **cuts** of a short-form video (reel / TikTok / Short) so every edit
earns its place. The framework is Walter Murch's **Rule of Six** (from *In the
Blink of an Eye*): not six rules, but a **hierarchy of six criteria** that ranks
what makes an ideal cut. A perfect cut satisfies all six; when you can't have
them all, the ones at the **top** win.
Where [`viral-video-script`](../viral-video-script/SKILL.md) writes the **words**
(the beat sheet → narration), this skill plans the **montage** — where, when and
why to cut. Its outputs annotate the cuts of a reel this repo assembles with
[`avatar-reel-composer`](../avatar-reel-composer/SKILL.md) (hard cuts at every
scene boundary).
## The hierarchy (six criteria, top = most important)
| # | Criterion | Weight | The question the cut must answer |
|---|---|---|---|
| 1 | **Emotion** | 51% | Does the cut convey / evoke the feeling the moment needs? Is this what the viewer will *remember*? |
| 2 | **Story** | 23% | Does the cut advance the plot / develop character / clarify the theme — does it deliver new info? |
| 3 | **Rhythm** | 10% | Is the cut at the *right moment*? Tempo, pacing, momentum, flow — does it feel satisfying (cut on the beat / the breath)? |
| 4 | **Eye-trace** | 7% | Does it respect where the viewer's eye is? Is the point of interest carried to the same part of the frame across the cut? |
| 5 | **2D plane of screen** | 5% | Photographic grammar: rule of thirds, eye-lines, the 180° line of action, screen direction. |
| 6 | **3D space of action** | 4% | Spatial continuity: the real geography of where people / props are in the space. |
**Emotion + Story = 74%.** Nail the top two and the cut mostly works; the bottom
four are the *details* that make it invisible. Viewers forget a technically
perfect, well-paced scene in months — they remember how it made them **feel**.
## The one doctrine: sacrifice from the bottom up
An ideal cut satisfies all six. When it can't (they conflict), **give them up
from the bottom** — 3D continuity first, then 2D grammar, then eye-trace, then
rhythm — and **never sacrifice emotion**, almost never story.
- The bottom criteria break constantly and *go unnoticed*: a viewer can't easily
gauge 3D space on a flat screen, so as long as continuity isn't *egregiously*
bad they won't notice. Films break 2D grammar (eye-lines, the 180° line) **on
purpose** to create unease or an emotional jolt.
- So: if a cut lands the emotion but "breaks" the line of action — **take the
cut**. If a spatially perfect cut kills the feeling — **throw it away**.
> North star: every cut is made to **convey and evoke emotion**. The way films
> move us is what makes them great; the rest is just the details we need to get
> there.
## Why cuts work — and where to cut
A cut is a **link between two focuses of attention**. It works because it mirrors
a **blink**: we blink when a thought is fully formed, to *separate and punctuate*
one idea from the next. A shot is an idea; the cut is the blink that ends it. So
the editor "**blinks for the viewer**" — cut where a thought **completes**, not
mid-thought. In a reel that's the end of a complete idea / on the breath / at
punctuation (exactly why `avatar-reel-composer` snaps every cut to a silence).
Find that beat and the whole audience blinks together.
Placement heuristics that follow:
- **Cut on the blink** — at thought completion, never mid-idea. (#1/#3)
- **Don't cut Dragnet-style** — mechanically after every single line reads like a
machine, not a mind; honor where thoughts actually end. (#3)
- **Avoid the "2-yard jump"** — never cut between two *near-identical* shots (it's
jarring, like a beehive moved a few yards: too similar to reorient). Change the
angle by **≥30°** or the framing/zoom — this is the alternate-angle+zoom rule. (#4/#5)
- **Juxtaposition makes meaning** (the Kuleshov effect) — a B-roll placed next to a
line creates a *third* meaning neither shot has alone; order the shots so the
cut itself says what you mean. (#2)
- **Split the edit (L/J cut)** — let the soundtrack (the running voice, or a music
phrase) spill **across** the picture cut; don't stop picture *and* sound on the
same frame unless you *want* the jolt. (#1/#3)
- **Let the music do the cut** — open on an **intro**, hand off on an **outro**,
**pivot** on a variation, and drop a hard **beat on the punch**; pick the track's
section for the emotional job. (#1/#3)
Top-three are **bound together** (emotion + story + rhythm ≈ 84%): chase the
emotion of a cut and it tends to pull the story and rhythm along. And getting the
top items right **obscures** flaws in the lower ones — but never the reverse.
## Sound & the cut — the soundtrack rides its own track
A cut is **not one event on one track**. Picture, voice and music are **three
separate streams**, and *where the soundtrack changes relative to the picture cut*
is itself an editing choice — one that lives up at **Emotion (#1)** and **Rhythm
(#3)** (rhythm is "best exemplified by cutting to the beat of music"; emotion is
the editor's north star and music is its strongest single lever). Beginners fight
this: a timeline welds each clip's video+audio into one movable block, so they
**start and stop picture and sound on the same frame**. Don't. Treat the tracks as
independent elements that move on their own and only **occasionally meet at a sync
point** — most of editing is that sleight of hand: *change the picture while the
soundtrack holds, or change the soundtrack while the picture holds*, rarely both at
once. That overlap is the **split edit** (J-cut: sound leads the picture; L-cut:
sound lingers past it).
**Look at the music, don't just listen.** After choosing a track that carries the
right feeling, read its **structure** (the waveform) and place the right *section*
against the cut:
- **Intro** — crafted to ease a listener in → use it to **open** (a hook, a scene entrance).
- **Outro / ending** — a natural resolution → use it to **hand off** across a scene change.
- **Variation / shift** — a dynamic change mid-track (verse→chorus, quiet↔loud, visible in the waveform) → use it to **pivot the emotion**.
Three soundtrack-vs-cut moves (each is chosen for the feeling, so each serves #1/#3):
1. **Gentle handoff** *(outro, offset from the cut)* — start a musical resolution
running *before / through* the picture cut. It "picks the viewer up in one scene
and gently sets them down in the next." Music transition and picture cut
deliberately **do not** land together — the score carries them over. (Film/TV's
most common transition; listen for it in any score.)
2. **Emotional shift** *(variation, on the cut)* — land the frame where the music
**shifts** exactly on the picture cut, so the *same* track carries into the next
scene with a new feeling (lift or settle: fast→mellow, loud→quiet).
3. **Hard-cut punch** *(intro beat, on the cut)* — the exception where sound and
picture **do** hit together: silence, then the music's first beat lands on the
first frame of the new scene. Punchy, powerful, energetic — spend it on the one
moment that earns it.
> Source: Austen Menges, *How a Pro Video Editor Uses Music* — the working-editor's
> companion to Murch. The through-line is the same: pick the sound for the **emotion**,
> then let the tracks move independently so the cut feels invisible.
## How it maps to a virtual-avatar reel
In this repo a reel is a chain of **hard cuts** at scene boundaries
(talking-head ⇄ B-roll, angle/zoom changes). Treat **every boundary as a cut**
and score it against the hierarchy:
- **Emotion (1):** does cutting *here* serve the feeling of the narration at this
instant (a reveal, a punch, a breath of relief)? This is what picks the cut.
- **Story (2):** the cut should reveal **new info** — a new idea, a B-roll that
shows what's being said, a reframe that re-focuses. If a shot delivers nothing
new, let it hit the cutting-room floor (drop or shorten the scene).
- **Rhythm (3):** cut on the **breath / beat**, never let a shot linger. Mirrors
the pacing rules `avatar-reel-composer` already enforces (hook ~2–3s, every
shot ≤ ~6s, alternate angle+zoom on back-to-back talking-heads).
- **Eye-trace (4):** keep the subject's face / the point of interest in a
consistent part of the 9:16 frame across a cut (talking-head → B-roll → back)
so the eye doesn't hunt — this is what makes match cuts and montages glide.
- **2D plane (5):** framing / rule-of-thirds / eye-line direction between angle
crops; keep screen direction unless you're breaking it deliberately.
- **3D space (6):** spatial continuity — least important for a talking-head reel;
the first thing to sacrifice.
- **Sound (the axis across #1/#3):** our reel already runs **one continuous
narration** that keeps talking *across* every B-roll / angle cut — a built-in
**split edit**, so exploit it: cut the *picture* mid-thought over the running
voice instead of resting picture **and** voice together at every sentence end.
The music **bed** now follows a **volume envelope** when you give it a plan
(`finish_reel.py`), so it does real editing work: mark in the cut sheet **where**
each musical move belongs — an **intro beat** on the hook punch, a **variation**
at the reel's emotional pivot, an **outro** under the CTA / close — and hand the
cut sheet straight to the composer with `finish_reel.py --music-from-cutsheet
<slug>.cutsheet.json` (it maps each cut's `sound` note to a move at that scene
boundary), or author the precise `finish.music_plan`. SFX stingers + the golden
flash already land *on* B-roll cuts (the punch move); keep those for the beats
that earn them.
## Inputs to gather (ask only what's missing)
| Input | Needed for | Example |
|---|---|---|
| The reel's script / narration | the emotional + story spine | from `viral-video-script` |
| `storyboard.json` (optional) | seed one cut per scene boundary | `avatar-reel-composer` output |
| Emotional throughline | criterion #1 across the whole reel | "unease → recognition → relief" |
| Soundtrack / music | the sound axis (#1/#3) | narration voice-over (always) + optional music bed: mood + where it **enters / shifts / resolves** |
| Platform / length | rhythm budget | `reels` \| `tiktok` \| `shorts`, ~30s |
| Language | the notes' language | `es` \| `en` (default: match the user) |
If there's no storyboard yet, scaffold the cuts from scratch and hand the result
back as the plan for building one.
## Workflow
```
- [ ] 1. Gather inputs. If a storyboard.json exists, seed from it; else set cut count.
- [ ] 2. Scaffold the cut sheet JSON.
- [ ] 3. Fill every cut: emotion + story first, then rhythm/eye-trace/2D/3D. Mark sacrifices bottom-up.
- [ ] 4. Validate against the hierarchy. Fix every FAIL, weigh each WARN.
- [ ] 5. Render the edit sheet (.md) + director notes (.txt).
- [ ] 6. Hand off: build/adjust the storyboard, or use as an edit-review rubric.
```
**Step 2 — scaffold** (writes `<out>/<slug>.cutsheet.json`):
```bash
# from scratch (N cuts)
python3 .cursor/skills/rule-of-six-edit/scripts/scaffold.py my-reel \
--cuts 6 --language es --out cuts_out/
# or seed one cut per scene boundary from a reel storyboard
python3 .cursor/skills/rule-of-six-edit/scripts/scaffold.py my-reel \
--from-storyboard lolo/reels/001_my-reel/storyboard.json --language es --out cuts_out/
```
**Step 3 — write.** Edit the JSON. The hard rules the validator enforces:
- Every cut has a non-empty `emotion` (#1) and `story` (#2) — never TODO/blank.
- `sacrifices` never contains `emotion` or `story`, and is a valid **bottom-up
suffix**: you may drop `space_3d`, then `plane_2d`, then `eye_trace`, then
`rhythm` — in that order, no gaps (can't sacrifice eye-trace while keeping 3D).
- Each of the six criteria per cut is either **addressed** (a note) or listed in
`sacrifices` — nothing left unconsidered.
- `emotional_throughline` is set (the feeling arc of the whole reel).
Optionally set a per-cut **`sound`** note (the soundtrack move — split vs hard sync,
which music edit) and a top-level **`soundtrack`** intent (the music bed's mood +
where it enters / shifts / resolves against the cuts). Neither is validated, but both
flow into the edit sheet + director notes — and `avatar-reel-composer`'s
`finish_reel.py --music-from-cutsheet <slug>.cutsheet.json` reads the `sound` notes
directly to build the music bed's **volume envelope** (entrance / lift / settle /
duck / resolve at each cut). So the `sound` axis is now *audible*, not just advisory.
**Step 4 — validate** (re-run until no FAIL; treat WARN as review notes):
```bash
python3 .cursor/skills/rule-of-six-edit/scripts/check_cuts.py cuts_out/my-reel.cutsheet.json
```
**Step 5 — render** (writes `<slug>.cutsheet.md` + `<slug>.cutnotes.txt` next to the JSON):
```bash
python3 .cursor/skills/rule-of-six-edit/scripts/render_cuts.py cuts_out/my-reel.cutsheet.json
```
## Writing each cut (per criterion)
Fill top-down; the top two decide the cut, the rest refine it.
- **emotion (#1):** the feeling this cut serves or evokes *right now* (e.g. "the
turn from doubt to relief"). If you can't name it, the cut isn't motivated.
- **story (#2):** the new information the cut delivers (a reveal, a visual proof,
a reframe). No new info → drop or shorten the shot.
- **rhythm (#3):** *why here* — on the breath / a comma / the beat; a pace note
(keep it snappy, ≤ ~6s, hook ~2–3s).
- **eye_trace (#4):** where the eye is before and after; is the point of interest
carried to the same region of the 9:16 frame?
- **plane_2d (#5):** framing / eye-line / 180° line / screen direction across the
cut (or the intentional break).
- **space_3d (#6):** spatial continuity note (usually the first to sacrifice).
- **sound (extra axis, not one of the six weighted criteria — serves #1/#3):** the
soundtrack move at this cut — a **split** (voice / music runs across the cut) vs a
**hard sync** (beat on the frame); and which music edit if a bed is in play
(handoff outro / variation shift / intro punch). Optional but high-leverage; leave
blank for a pure picture cut.
- **sacrifices:** the criteria this cut deliberately gives up (bottom-up only).
## Output files
```
<slug>.cutsheet.json # the cut sheet (source of truth; edit this)
<slug>.cutsheet.md # human edit sheet: per-cut criteria table, sacrifices, coverage score
<slug>.cutnotes.txt # plain director notes per cut (keep/sacrifice) for whoever assembles/reviews
```
## Handoff into this repo's pipeline
- **Building a reel:** use the filled cut sheet to write / adjust the
`avatar-reel-composer` `storyboard.json` — set scene boundaries where a cut is
emotionally + story-motivated, pick angle/zoom to honor eye-trace + 2D, and
keep the rhythm (short hook, no lingering shots). Then compose:
```bash
python3 .cursor/skills/avatar-reel-composer/scripts/compose_reel.py storyboard.json --finish
```
- **Reviewing an edit:** run it as a rubric — score each existing cut and flag any
that lead with 3D/2D correctness at the expense of emotion or story. Two review
laws from Murch: **judge only what's on screen** (not your intent or effort —
what will the viewer actually see?), and when a cut *feels* wrong the cause is
usually **upstream** — a setup the viewer needed was missing earlier, so fix the
setup instead of deleting the flagged shot.
For the words that ride over these cuts, see
[`viral-video-script`](../viral-video-script/SKILL.md). For the cutaways a
Story-beat calls for, see [`broll-generator`](../broll-generator/SKILL.md) /
[`broll-finder`](../broll-finder/SKILL.md). For the music bed the **sound** axis
plans, see [`bg-music-hq`](../bg-music-hq/SKILL.md) and
[`avatar-reel-composer`](../avatar-reel-composer/SKILL.md) — its `finish_reel.py`
turns this cut sheet's `sound`/`soundtrack` into the bed's volume envelope
(`--music-from-cutsheet`, `finish.music_plan`, or `--music-structure auto`).
## Anti-patterns
1. **Cutting for correctness, not feeling** — a spatially perfect cut that kills
the emotion. Emotion is 51%; take the emotional cut. (#1)
2. **Keeping a shot that adds nothing** — every cut must deliver new info; let
dead footage hit the cutting-room floor. (#2)
3. **Lingering / no cuts** — a shot that overstays kills rhythm and attention. (#3)
4. **Sacrificing from the top** — never give up emotion; almost never story. Give
up 3D/2D first. (doctrine)
5. **Making the eye hunt** — the subject jumps across the frame at a cut, adding
friction the viewer feels but can't name. (#4)
6. **Treating the 180° line as sacred** — it's a low-priority rule you may break
*on purpose* for unease; just don't break it by accident. (#5)
7. **Cutting mid-thought / Dragnet-style** — cutting mechanically or in the middle
of an idea instead of on the blink (where the thought completes). (#3)
8. **The 2-yard jump** — cutting between two near-identical shots; change the angle
≥30° or the framing/zoom so the eye reorients. (#4/#5)
9. **The beginner's block — welding sound to picture** — starting/stopping the voice
or music on the *same* frame as every picture cut. Use split edits: let the
soundtrack run **across** the cut, meeting the picture only where you mean it. (#1/#3)
10. **Wallpaper music** — a bed that just plays under everything, doing no editing
work. Choose the track's *section* and mark where it **enters / shifts /
resolves** against the cuts (intro on the hook, variation on the pivot, outro on
the close). (#1/#3)
## Additional resources
- The psychology / craft behind each criterion + Murch's reasoning: [reference.md](reference.md)
- Full worked cut sheets (EN + ES): [examples.md](examples.md)