Skip to main content
Film & TelevisionScreenplay Audit121 lines

V.O. and O.S. Fixer

Specialized tool for fixing V.O. (voice-over) and O.S. (off-screen) attribution in

Quick Summary20 lines
Fixes the most consistently confused dialogue extensions in AI-generated screenplays.
V.O. and O.S. have precise, distinct meanings. Getting them wrong signals amateur work
to any industry reader.

## Key Points

1. **Is the character in the scene's physical location?**
- YES: Use **(O.S.)** — they are off-screen but present
- NO: Go to question 2
2. **Is the character speaking aloud to someone in the scene?**
- YES and heard through a device (phone, radio, TV): Use **(V.O.)**
- YES and they are in an adjacent space: Use **(O.S.)**
- NO — they are narrating, reading, or providing internal monologue: Use **(V.O.)**
1. Extract all dialogue extensions from the script (V.O., O.S., CONT'D, PRE-LAP, FILTERED)
2. Apply the decision test to each V.O. and O.S. instance
3. Verify all CONT'D usage against the rules above
4. For each error, provide original line, corrected line, and one-sentence explanation
- **Changing creative intent.** If the writer intentionally uses V.O. for stylistic
skilldb get screenplay-audit-skills/V.O. and O.S. FixerFull skill: 121 lines
Paste into your CLAUDE.md or agent config

V.O. and O.S. Fixer

Fixes the most consistently confused dialogue extensions in AI-generated screenplays. V.O. and O.S. have precise, distinct meanings. Getting them wrong signals amateur work to any industry reader.

When to Use

Use when the user asks to "fix V.O./O.S.", "check voice-over attribution", "fix dialogue extensions", or when a general audit flags V.O./O.S. misuse. Run proactively on any script that uses narration, flashback, phone calls, or characters speaking from other rooms.

The Core Distinction

V.O. — Voice Over

The character is narrating. They are not physically present in the scene at all. The voice exists only for the audience. Other characters in the scene cannot hear it.

Correct uses: Narrating their own story, pre-recorded messages (voicemail, broadcast), reading a letter/email for the audience, documentary narration, internal monologue, and flashback narration over images from a different time.

O.S. — Off Screen

The character is physically present in the scene's location but not visible on camera. They are speaking aloud. Other characters in the scene can hear them. The camera simply is not pointed at them.

Correct uses: Character in another room of the same location, just outside the frame, behind a door or around a corner, walked out of frame but still present, or calling from just outside the location.

The Decision Test

For every dialogue extension, ask:

  1. Is the character in the scene's physical location?

    • YES: Use (O.S.) — they are off-screen but present
    • NO: Go to question 2
  2. Is the character speaking aloud to someone in the scene?

    • YES and heard through a device (phone, radio, TV): Use (V.O.)
    • YES and they are in an adjacent space: Use (O.S.)
    • NO — they are narrating, reading, or providing internal monologue: Use (V.O.)

Edge Cases

SituationCorrect ExtensionWhy
Phone call — both sides shownNeither or (V.O.) for the voice on phoneIntercut handles this; voice through phone is V.O.
Phone call — one side shownOther party is (V.O.)They are not in the scene location
Walkie-talkie / radio(V.O.)Voice transmitted through device
Character in next room(O.S.)Physically in the location
Character yelling from outside(O.S.)They are at the location, just outside
Narrator who is also a character(V.O.) when narratingNarration is not scene dialogue
Flashback with present-day narration(V.O.) for narrationNarrator is not in the flashback
Character behind a closed door(O.S.)Present at location
TV newscast heard in scene(V.O.)Newscaster is not at the location
Character who just left the room(O.S.) for first line, then goneStill within earshot

Other Dialogue Extensions

CONT'D (Continued)

Used when dialogue is interrupted by an action line or page break and the same character resumes. AI errors: missing CONT'D after action interruption, using CONT'D when another character spoke in between, using CONT'D at the start of a new scene (new scenes reset).

PRE-LAP

Dialogue from the next scene begins before the current scene ends. Rules: the speaking character must appear in the next scene, the dialogue must be their actual scene dialogue (not narration), and it should be used sparingly as a stylistic bridging device.

INTERCUT

Scene direction for phone calls or simultaneous action in two locations. Once INTERCUT is established, V.O./O.S. extensions are no longer needed for the intercut characters.

FILTERED

Voice heard through an electronic device without an intercut. MARCUS (FILTERED) is more technically precise than V.O. for device voices. Some style guides prefer one over the other.

Analysis Procedure

  1. Extract all dialogue extensions from the script (V.O., O.S., CONT'D, PRE-LAP, FILTERED)
  2. Apply the decision test to each V.O. and O.S. instance
  3. Verify all CONT'D usage against the rules above
  4. For each error, provide original line, corrected line, and one-sentence explanation

Output Format

Present a corrections table with columns: Page | Character | Current | Correct | Reason. Follow with sections for missing extensions and CONT'D issues. Include total counts for each extension type and error counts.

Anti-Patterns

  • Changing creative intent. If the writer intentionally uses V.O. for stylistic narration, do not convert it to O.S. just because the character is nearby. Context and intent matter.
  • Applying rules rigidly to intercuts. Once INTERCUT is established, V.O./O.S. rules relax for the intercut characters. Do not flag these.
  • Ignoring house style. Some production companies and shows have specific extension preferences. If the user mentions a house style, defer to it.
  • Flagging stylistic PRE-LAP as errors. PRE-LAP is a creative choice. Only flag if technically incorrect (speaker absent from next scene) or overused.

Install this skill directly: skilldb add screenplay-audit-skills

Get CLI access →