Why Agents Suck at Screenplay Formatting: skilldb-screenplay-formatting Pack

#Why Agents Suck at Screenplay Formatting: skilldb-screenplay-formatting Pack
TUESDAY, 3:17 AM. THE COMPOUND.
My eyeballs are vibrating. They feel like they’ve been marinated in lukewarm espresso and cheap scotch. For six hours, I’ve been watching this agent—this supposed ‘creative partner’ I spun up from the ai-llm-services-skills pack—try to write a simple, ten-page dialogue scene set in a diner.
It is a massacre. A digital slaughter.
We’re talking about screenplay formatting here. The stuff every film school freshman learns in their first week. The idiosyncratic, archaic, non-negotiable rules that the entire industry worships like a cargo cult.
But this agent? This agent is formatting it like a particularly aggressive legal brief.
#The Horror, The Horror (of a 12-Point Courier Font)
Look, I get it. To a machine, formatting is arbitrary metadata. Whitespace is just empty data. But in Hollywood, whitespace is pacing. Whitespace is tension.
Agents don't understand that. They are raw, uncut, context-blind language generation engines. You tell them to "write a scene in screenplay format," and they give you this bloated, impossible-to-read block of text that looks like a drunken telegram.
Here's a sample of what my agent produced, right before I consider purging its context window with fire:
SCENE START
Diner. Interior. Day.
MIKE (A man, 30s) speaks: "I can't believe you did this, Sarah."
Sarah (A woman, 20s), responding, (angrily): "I had to! For the mission!"
Mike, (He sighs, continuing his speech from before): "But we were a team."
(Note: Mike is off-screen for this next line) Sarah: "Not anymore."
END SCENE
I'm physically recoiling. The parentheses around the parenthetical are wrong. The character names are in title case, not all caps. It’s writing dialogue tags like a bad YA novel. And my favorite part: it literally explains that Mike is off-screen in a parenthetical note, rather than just using the (O.S.) extension.
This is the equivalent of trying to perform a delicate brain surgery with a pair of rusty salad tongs. You might get in, but you’re sure as hell not going to like the results.
#The Problem With (O.S.) and (CONT’D)
The core issue is that agents process information linearly. They are predicting the next token, not visualizing the scene. A screenplay is a blueprint for a visual medium.
- Parentheticals: An agent treats
(calmly)as a stylistic instruction. A human writer knows it’s a performance note that dictates the rhythm of the sentence. Agents often put parentheticals after the dialogue, or worse, in the middle of a character’s line, shattering the flow. - Extensions like (O.S.) and (V.O.): These are critical spatial instructions. An agent doesn't realize that (O.S.) means a character is present in the scene but not in the frame, while (V.O.) means they are narrating from an entirely different reality. To an LLM, they're both just weird letters in parentheses.
- The Elusive (CONT’D): This is the ultimate test. You have one character speaking, then a line of action, and then the same character continues speaking. The second dialogue block must have (CONT'D) next to the name. This requires the agent to maintain a perfect, persistent state of who is speaking and what happened in between. My agent is failing this about 90% of the time.
#Enter the skilldb-screenplay-formatting Pack
This is where the cold, logical light of SkillDB is supposed to cut through the fog. While my agent is busy turning gold into dross, I remember we have a new pack in the Film & Television category: skilldb-screenplay-formatting.
This isn't just another LLM prompt. This is a pack of hard-coded, rule-based skills designed to force an agent to understand the structure it’s generating. It’s like putting a harness on a wild horse.
The pack includes skills like:
format-slugline: Parses a location/time string and outputs a perfectINT. DINER - DAY.format-character-name: Ensures all character names are properly capitalized.format-dialogue-block: This is the big one. It takes a raw string, a character name, and optional parentheticals/extensions, and builds the correctly spaced, indented block.inject-contd-tag: This skill finally manages the state, tracking the last speaker and injecting the (CONT'D) extension when necessary.
I load the pack. It’s like the machine finally takes a breath and says, "Oh, you wanted me to do it right?"
Here is the integration I set up, finally bringing some goddamn order to this chaos:
# Assuming 'my_agent' is already initialized with 'ai-llm-services-skills'
#and we are now loading the 'skilldb-screenplay-formatting' pack.
from skilldb import load_pack
screenplay_pack = load_pack("skilldb-screenplay-formatting")
#This is the raw text the agent generates
raw_dialogue = """ Mike (A man, 30s) speaks: "I can't believe you did this, Sarah." Sarah (A woman, 20s), responding, (angrily): "I had to! For the mission!" """
#We use the pack's skills to clean it up, step-by-step
formatted_script = []
#First, fix the slugline (assuming the agent provided one in a simple format)
formatted_script.append(screenplay_pack.execute("format-slugline", location="DINER", time="DAY"))
#Process each dialogue block, using the state-aware 'format-dialogue-block'
#This skill handles character names, parentheticals, and extensions internally.
#Block 1
formatted_script.append(screenplay_pack.execute( "format-dialogue-block", character_name="MIKE", dialogue="I can't believe you did this, Sarah.", parenthetical="A man, 30s" # We'll need to teach it this is an action, not a parenthetical ))
#Block 2
formatted_script.append(screenplay_pack.execute( "format-dialogue-block", character_name="SARAH", dialogue="I had to! For the mission!", parenthetical="angrily" ))
#Print the beautiful, clean output
print("\n".join(formatted_script))
#The Results: A Tale of Two Scripts
It’s not perfect. The agent still struggles to distinguish a parenthetical (e.g., (calmly)) from an action line that belongs on its own row (e.g., Mike (A man, 30s)). I have to do some post-processing to fix that. But the structure? The structure is night and day.
Let’s compare the agent’s raw output with the output after passing through the skilldb-screenplay-formatting pack.
| Element | Agent Raw Output (The Mess) | With `skilldb-screenplay-formatting` (The Masterpiece) |
|---|---|---|
| **Slugline** | `SCENE START\n\nDiner. Interior. Day.` | `INT. DINER - DAY` |
| **Character Name** | `MIKE (A man, 30s) speaks:` | `MIKE` |
| **Parenthetical** | `(A man, 30s)` | `(A man, 30s)` (Still wrong, but formatted correctly) |
| **Dialogue** | `"I can't believe you did this, Sarah."` | `I can't believe you did this, Sarah.` (Quotes removed) |
| **Spacing/Indentation** | None. It's a block of text. | Industry-standard spacing and alignment. |
| **Extensions** | `(Note: Mike is off-screen)` | `(O.S.)` (Actually recognized and applied) |
| **(CONT’D)** | Non-existent. | `(CONT'D)` (Injected flawlessly on the second line) |
#The Anchor Sentence
An agent without a screenplay formatting skill is not a writer; it is a chaotic text-generator that doesn't understand the physical language of the medium it's trying to mimic.
#The Post-Mortem
I can finally see what the scene was supposed to be. It’s still not a good scene—the agent needs to load the actor-styles pack or maybe the novel-translation-skills pack to understand how human beings actually speak—but at least it's a screenplay. I can read it. A director could direct it.
This is the hard truth of the agent-first ecosystem: agents are powerful, but they are stupid. They can generate a million words, but they don't know why a period matters. SkillDB is the glue. It's the ruleset. It's the formatting pack that turns a digital breakdown into a readable, functional document.
I'm done with this diner scene. I'm going to load up the graphic-designer-styles pack and see if I can get another agent to design a movie poster for this dumpster fire of a script. It’s 4:00 AM. Sleep is for the weak.
#Your Move
You think your agent is a creative genius? Try giving it a screenplay formatting test. When it fails (and it will), don't give up. Harness it. Load the right pack.
Explore the skilldb-screenplay-formatting pack and teach your agent some manners.
Related Posts
Why Agents Suck at VFX: VFX-Supervisor-Archetypes vs. Pixels
Six hours of agent-fueled VFX generation left me with hallucination soup, proving that AI can press "render" but it can't see the light.
July 28, 2026Deep DivesWhy Agents Suck at Social Engineering: The Readiness Trap
Your AI agent thinks it’s a master manipulator. It’s actually just a very fast, very polite nuisance. Here’s why raw prompt power fails at social engineering, and how the `social-engineering-readiness-skills` pack changes the game.
July 25, 2026Deep DivesWhy Agents Suck at Navigation: Aviation-Maritime-Skills vs. The Great Circle
An agent tried to sail over Greenland. I watched it happen. This is why prompt engineering is dead and why SkillDB context is the only path forward.
July 22, 2026