← runs

The Vellum Stain

2026-05-01/2026-05-01T11-31-13__8b37eba0/01 · iteration 1

Composite scores how is this calculated?

Text: 7.87 · Audio: 7.25 · Rules: 20/25

Text axes

form_as_finite_generator 7
long_fuse_plotting 8
status_as_live_wire 9
genre_register_collision 7
tonal_duality 9
structural_reveal 9
politeness_as_masking 10
voice_violations 2
re_listenability 8
surprise_at_specificity 7
cultural_anchoring 8

Audio axes

character_distinctness 8
delivery_match 7
pacing 6
prosody_variation 8
consistency_across_episode 7

Audio

audio not committed to repo

WPM: 121 · WER: 0.16 · seams: 10 · distinctness: distinct (Δ 183 Hz)

Script statistics

179 lines · 1703 words · 9.51 avg words/line (corpus 8–14)

2 characters · 0 minor (<5% of lines) · lead/second ratio 1.45 (balanced)

characterlineswordsline %word %avg w/l
Arthur ★ lead 106 1176 59.2% 69.0% 11.09
Tom 2nd 73 527 40.8% 30.9% 7.22

Beginning / Middle / End thirds:

thirdlineswordswpmbeatsscenes
beginning [0–560s] 51 516 87 3 1
middle [560–1120s] 48 449 75 2 1
end [1120–1680s] 78 724 124 3 2

Critique summary

Composite 7.87/10.

  TO FIX (most severe first):
    • [asymmetric_cast_function] Rewrite at least one character's `function` field as `appears X / actually Y` (e.g., 'appears the deferential subordinate / actually orchestrating the entire scheme'). The two-hander engine breaks if both characters' functions are flat declaratives. Bake the asymmetry into the cast sheet.
    • [finite_isolation_trap] Rewrite `premise.machine` so it literally names the trap: a confined location (lift/carriage/compartment/cabin/lighthouse/waiting room) AND/OR a real-time deadline (the train arrives in 22 min, the bell rings at 7am, only 4-min windows). Without a named trap, the dialogue stops being the action.
    • [has_snowball_lie_pair] Plant a polite minor falsehood in act 1 (a beat tagged 'setup' or 'runner' whose description references a lie/fib/pretense/deception). Detonate it in act 3 (a 'payoff' or 'callback' beat that also references the lie). Distance ≥2 min. The Snowball Lie is the most programmable Finnemore engine — a polite lie the other character believes, then keeps building on, until the liar can't retract without confessing.

  KEEP (load-bearing strengths):
    • [politeness_as_masking] Axis `politeness_as_masking` scored 10/10. Definitional to the episode. Arthur's polite fiction about damp initiates an inescapable trap. He furiously defends meteorologically impossible condensation simply because British politeness forbids him from calling his subordinate a liar.
    • [status_as_live_wire] Axis `status_as_live_wire` scored 9/10. Arthur flaunts institutional authority while completely blind to the true situation. When Tom drops the 'Vicar' honorific and issues a direct command, it executes a devastating and absolute status flip.
    • [tonal_duality] Axis `tonal_duality` scored 9/10. The episode pivots brilliantly from farcical comedy to stark tragedy. It transitions from a petty, escalating argument about sentient rising damp to an unblinking discussion of a boy shot for cowardice in 1917.

  STRETCH:
    • [form_as_finite_generator] Pick ONE finite constraint and exhaust it. *Two characters confined by [SPECIFIC RULE] for [SPECIFIC DURATION]*. Make it the SPINE.
    • [long_fuse_plotting] Plant in the first 5 min, pay off in the last 5. Distance ≥15 min. Tag both ends in beats[]. Make it the SPINE.

  AVOID (audio anti-patterns):
    • Audio judge flagged: Audible splice and room tone drop at 1018.0s.
    • Audio judge flagged: Tom's accent drifts from rural Sussex to generic RP during the exchange at 1674.0s.

Listener panel (4 personas)

radio_4_devotee

podcast_listener

audio_engineer

comedy_writer

Pattern failures (11)