Phase 1 implementation: script ingestion + AI extraction pipeline
Complete working pipeline from Fountain script to validated scene JSON: - Schemas (Pydantic): all 7 layers defined upfront - Fountain parser + normalizer (Layer 1) - AI scene extractor with prompt contracts (Layer 2) - Schema validator + scene-specific semantic validator - Structured JSON logging per layer/scene execution - Versioned output writer (never overwrites) - Retry engine with 4-level failure escalation - Stop condition evaluator (per-unit + global halts) - Diff/drift detector for re-run comparison - CLI entry point with --dry-run, --scene, --test, --force - 3 test scripts (dialogue-heavy, action-heavy, nonstandard) - Expected output files for regression testing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,238 @@
|
||||
Title: The Extraction
|
||||
Credit: written by
|
||||
Author: Test Script
|
||||
Draft date: 2026-04-06
|
||||
|
||||
====
|
||||
|
||||
EXT. ROOFTOP - MEXICO CITY - NIGHT
|
||||
|
||||
A sprawling cityscape glitters below. JACK REEVES (40s, ex-military, scar across his jaw) crouches behind an air conditioning unit, binoculars pressed to his eyes.
|
||||
|
||||
Through the binoculars: a fortified compound three blocks away. Armed guards patrol the perimeter.
|
||||
|
||||
Jack touches his earpiece.
|
||||
|
||||
JACK
|
||||
I count twelve on the outside. How many inside?
|
||||
|
||||
DISPATCH (V.O.)
|
||||
Thermal says another eight. Plus the package.
|
||||
|
||||
JACK
|
||||
Twenty hostiles. One extraction target. Lovely.
|
||||
|
||||
He slings a tactical bag over his shoulder and moves to the roof's edge.
|
||||
|
||||
EXT. ALLEY - MEXICO CITY - NIGHT
|
||||
|
||||
Jack drops from a fire escape, landing silently. He presses against the wall as a patrol vehicle passes.
|
||||
|
||||
He checks his watch: 11:47 PM.
|
||||
|
||||
He moves through the shadows toward the compound.
|
||||
|
||||
EXT. COMPOUND PERIMETER - NIGHT
|
||||
|
||||
Jack reaches a drainage grate at the compound's east wall. He pulls a small cutting tool from his bag and works the bolts.
|
||||
|
||||
A guard's flashlight sweeps nearby. Jack freezes. The light passes.
|
||||
|
||||
He removes the grate and slides into the drain.
|
||||
|
||||
INT. DRAINAGE TUNNEL - NIGHT
|
||||
|
||||
Cramped, wet, dark. Jack crawls through the tunnel using a red-filtered headlamp. Rats scatter ahead of him.
|
||||
|
||||
He reaches a junction and checks a hand-drawn map.
|
||||
|
||||
JACK
|
||||
(whispering)
|
||||
Left fork, thirty meters, then up.
|
||||
|
||||
He crawls left.
|
||||
|
||||
INT. COMPOUND - BASEMENT - NIGHT
|
||||
|
||||
Jack pushes up through a floor grate into a dimly lit basement. Stacked crates everywhere. He draws his suppressed pistol and listens.
|
||||
|
||||
Footsteps above. Two sets, moving away.
|
||||
|
||||
He crosses the basement to a steel door. Locked. He pulls a bypass kit from his bag and works the lock. It clicks open in twelve seconds.
|
||||
|
||||
INT. COMPOUND - GROUND FLOOR CORRIDOR - NIGHT
|
||||
|
||||
Jack moves down a concrete corridor, back to the wall. Security camera ahead — he pulls a small device from his pocket and aims it. The camera's red light blinks off.
|
||||
|
||||
He rounds a corner and comes face to face with GUARD #1.
|
||||
|
||||
A brutal, silent fight. Jack disarms the guard, puts him in a chokehold. The guard goes limp. Jack drags him into a side room.
|
||||
|
||||
INT. COMPOUND - STAIRWELL - NIGHT
|
||||
|
||||
Jack climbs the stairs, pistol leading. He pauses at the second floor landing — voices in Spanish behind the door.
|
||||
|
||||
He waits. The voices move away. He opens the door slowly.
|
||||
|
||||
INT. COMPOUND - SECOND FLOOR - NIGHT
|
||||
|
||||
A hallway lined with doors. At the far end, GUARD #2 and GUARD #3 stand outside a reinforced door.
|
||||
|
||||
Jack checks his options. A ventilation shaft above him. He holsters the pistol, jumps, grabs the edge, and pulls himself up.
|
||||
|
||||
INT. VENTILATION SHAFT - NIGHT
|
||||
|
||||
Jack crawls above the hallway. Through a vent below, he can see the two guards.
|
||||
|
||||
He pulls two smoke canisters from his bag. Drops them through the vent.
|
||||
|
||||
The hallway fills with white smoke. Shouts from the guards. Jack drops through the vent, lands between them.
|
||||
|
||||
Two precise strikes. Both guards are down in four seconds.
|
||||
|
||||
INT. COMPOUND - HOLDING ROOM - NIGHT
|
||||
|
||||
Jack kicks through the reinforced door. Inside: a bare room with a single chair. DR. SOFIA NAVARRO (30s, bruised, defiant) is handcuffed to it.
|
||||
|
||||
SOFIA
|
||||
About time.
|
||||
|
||||
Jack cuts the cuffs with bolt cutters.
|
||||
|
||||
JACK
|
||||
Can you run?
|
||||
|
||||
SOFIA
|
||||
Can you get us out of here?
|
||||
|
||||
An alarm blares. Red lights flood the corridor outside.
|
||||
|
||||
JACK
|
||||
That answers that. Move.
|
||||
|
||||
He hands her a spare earpiece and they exit into the hallway.
|
||||
|
||||
INT. COMPOUND - SECOND FLOOR - NIGHT
|
||||
|
||||
They run. Jack fires twice behind them as guards pour from a doorway. Both shots hit.
|
||||
|
||||
JACK
|
||||
Stairs — go left!
|
||||
|
||||
They hit the stairwell. Gunfire chases them, sparking off the metal railing.
|
||||
|
||||
EXT. COMPOUND - COURTYARD - NIGHT
|
||||
|
||||
They burst through a ground floor exit into an open courtyard. Floodlights snap on. Guards converge from two sides.
|
||||
|
||||
Jack pulls a flashbang from his vest. Throws it. BANG — blinding white light.
|
||||
|
||||
In the chaos, Jack grabs Sofia and they sprint for the east wall.
|
||||
|
||||
JACK
|
||||
Over the wall. I'll boost you.
|
||||
|
||||
He cups his hands. Sofia steps up and scrambles over. Jack follows, bullets pocking the concrete around him.
|
||||
|
||||
EXT. STREET - MEXICO CITY - NIGHT
|
||||
|
||||
They drop onto a narrow street. A black SUV screeches around the corner — RAMOS (30s, driver, cool under fire) behind the wheel.
|
||||
|
||||
RAMOS
|
||||
Get in!
|
||||
|
||||
They dive into the back. Ramos floors it.
|
||||
|
||||
INT. SUV - MOVING - NIGHT
|
||||
|
||||
Jack reloads. Sofia catches her breath.
|
||||
|
||||
SOFIA
|
||||
Who sent you?
|
||||
|
||||
JACK
|
||||
People who want you alive.
|
||||
|
||||
SOFIA
|
||||
That narrows it down to almost nobody.
|
||||
|
||||
Rear window SHATTERS — pursuit vehicle behind them.
|
||||
|
||||
RAMOS
|
||||
Hang on!
|
||||
|
||||
Ramos cuts hard left through a market street. Stalls explode as the SUV plows through. The pursuit vehicle follows.
|
||||
|
||||
Jack leans out the window and fires at the pursuit vehicle's tires. Third shot connects — the vehicle swerves and crashes into a storefront.
|
||||
|
||||
EXT. HIGHWAY - NIGHT
|
||||
|
||||
The SUV merges onto a highway. City lights fall behind them.
|
||||
|
||||
Silence in the car. Ramos checks the mirror — no pursuit.
|
||||
|
||||
RAMOS
|
||||
Airstrip is forty minutes out.
|
||||
|
||||
Jack nods. He looks at Sofia.
|
||||
|
||||
JACK
|
||||
You're going to have to tell them everything. The lab, the formula, all of it.
|
||||
|
||||
SOFIA
|
||||
I know.
|
||||
|
||||
JACK
|
||||
They won't be happy about what you found.
|
||||
|
||||
SOFIA
|
||||
That's why they tried to kill me.
|
||||
|
||||
EXT. DESERT AIRSTRIP - NIGHT
|
||||
|
||||
A small prop plane waits on a dirt runway, engines running. The SUV skids to a stop beside it.
|
||||
|
||||
Jack, Sofia, and Ramos exit. PILOT waves them toward the plane.
|
||||
|
||||
JACK
|
||||
(to Ramos)
|
||||
Burn the car.
|
||||
|
||||
RAMOS
|
||||
Already planned on it.
|
||||
|
||||
Jack and Sofia board the plane.
|
||||
|
||||
INT. PROP PLANE - NIGHT
|
||||
|
||||
They settle into seats. The plane taxis and lifts off. Through the window, they watch the SUV ignite below — Ramos standing clear, lighter in hand.
|
||||
|
||||
SOFIA
|
||||
Where are we going?
|
||||
|
||||
JACK
|
||||
Somewhere they can't reach you.
|
||||
|
||||
SOFIA
|
||||
Does that place exist?
|
||||
|
||||
Jack doesn't answer. The plane climbs into darkness.
|
||||
|
||||
EXT. COMPOUND - NIGHT
|
||||
|
||||
The compound is in chaos. Guards shout, lights sweep the surrounding blocks. COLONEL VEGA (50s, cold, scarred) stands in the holding room, staring at the empty chair and cut handcuffs.
|
||||
|
||||
An AIDE approaches.
|
||||
|
||||
AIDE
|
||||
They escaped east. Vehicle lost them on the highway.
|
||||
|
||||
VEGA
|
||||
Find the pilot's name. Find the airstrip. Find the plane.
|
||||
|
||||
He picks up the cut handcuffs.
|
||||
|
||||
VEGA
|
||||
And find whoever sent the soldier.
|
||||
|
||||
FADE OUT.
|
||||
Reference in New Issue
Block a user