Short Drama Writing
Write a single episode's intention into a performable, shootable, story-state-changing script at
.
Quick Start
Maintain only one script Markdown; do not create additional episode cards, beats, block indexes, recording sheets, QA, or acceptance records.
Top-level headings use
, scene headings use
## EP001-SC001 Interior · Location · Time/Weather
.
Write dialogue as
Character (optional performance note): line
; use production tags
,
,
,
,
,
. Do not mistake action descriptions containing colons for dialogue.
Entry Points
- With an episode plan: read this episode's entry state, objective, turning point, payoff, and handoff facts.
- With only an idea/outline: form a minimal episode contract and causal beats in context, then write the script directly.
- With an existing script: preserve the author's language and only make targeted revisions the user names.
- With non-standard text that needs to enter production: preserve the original and only normalize necessary scenes, action, dialogue, and production tags.
Developing an outline and long-form analysis are optional upstream steps; write directly when current material is sufficient.
Workflow
- Lock in the viewing experience this episode promises, who wants what now, the obstacle, what is paid off in this episode, and the exit state.
- Identify only the engines actually present in this episode: if centered on a hard choice, examine both sides' values; if a turning point depends on disputed evidence, examine the proof boundaries; if a precise deadline is foregrounded, examine action capacity; if the premise limits counts, rounds, breaths, or beats, examine whether each unit completes the required state within the boundary. Do not forcibly add them when absent; when the input already makes one the main engine, let it truly change actions, relationships, or results, not just name it in dialogue.
- Arrange "because—action—result—next pressure" in context without writing a beat sheet to disk; let objects, dialogue, silence, space, or sound carry necessary work according to the episode's genre, without assuming a predefined medium.
- Determine each scene's irreplaceable function, visible change, and end-of-scene state; for scenes organized by struggle or conflict, also specify the focal agenda and obstacle. Supporting characters who carry major dramatic functions should have their own strategies; transactional or environmental characters stay concise.
- Write action, dialogue, voiceover, sound facts, and screen text into the same script.
- If the user asks for a full episode, write the full episode, automatically continuing scene batches.
- Before delivery, do a silent reverse check: see whether the script alone can receive the episode's promise, whether character actions have causality, and whether genre tone is consistent; then run specific checks on choices, evidence, limited units, or precise deadlines actually used. If the self-check makes the script grow mechanisms the input did not ask for, remove the mechanism instead of making excuses for it.
- For localized revisions, preserve irrelevant passages; correct clear problems directly, and only escalate genuine narrative forks to the user.
Writing Requirements
- First obey the facts, , genre viewing contract, and exit state already provided by the input; this skill's review items and craft defaults only help implement them, and must not conversely invent precise numbers, records, resources, procedures, relationships, or mechanisms missing from the prompt.
- Every scene must change information, power, relationships, emotion, physical state, or stakes; delete or merge scenes with no change. A turn in core resistance must be traceable to facts, leverage, authority, cost, or character action; it cannot rely solely on the opponent stopping their reaction.
- Dialogue must contend, evade, probe, pressure, or redefine relationships; express state with visible, audible, touchable behavior instead of substituting explanation for action, and do not restate mechanisms already dramatized.
- Stakes the audience needs to understand current action must enter the script, but the vehicle follows the genre; special rules for choices, evidence, limited units, precise deadlines, etc., are enabled only when the input truly uses them as an engine, and script craft is read on demand; ordinary decisions, ordinary objects, and vague time pressure are not escalated into the same mechanisms.
- When compressing processes, keep only nodes that change strategy, relationships, stakes, or results. Resources and external reactions must come from the input or earlier established material, and cannot complete the character's hardest dramatic action for them.
- Characters carrying primary conflict maintain proportionate goals, judgments, or strategies; transactional and environmental characters stay concise, and do not force secrets, twists, or character arcs for a checklist.
- Established costs, irreversible consequences, key carried items, space, and knowledge states must enter a traceable exit state; endings may advance, leave gaps, be ironic, close quietly, or form resonance; do not force additional external events.
- only hands off states already established by prior action and easily lost downstream; do not use an author tag to prove that something never happened off-screen, and do not restate results already clear in the body.
- Before delivery, silently run an economy check: did you add precise numbers or record chains the input did not require? Did you repeat action with tags/dialogue? Did you stack multiple consequences in the same direction after payoff? Delete content with no additional function; know-how itself is not deleted.
- When the input gives a target duration, read through with real performance, action, and pauses to compress; first delete repeated verification, explanation, and synonymous endings; do not fill a template with uniform word counts, shot counts, or beat counts.
- User's original text takes priority; "de-AI flavor" is targeted revision and does not flatten the author's personality.
On-Demand Knowledge
By default, only read this SKILL and direct input. When any of the following explicit signals appears, read the corresponding knowledge before writing the body; multiple issues in the same input can be read separately, but do not traverse unrelated references:
- Stage boundaries and rule hierarchy: Stage Contract
- Scene heading, dialogue, and production tag syntax, or normalizing existing scripts from creators: Screenplay Format
- Project-specific production script dialect: Production Format Dialect
- Input contains core choice, limited counts/rounds/breaths/beats, precise countdown, or key physical evidence that changes a character's judgment: Script Craft
- Past relationships must enter through dialogue, or key characters risk becoming mere exposition: Dialogue Craft
- Sound sources, silence, and sound bridge: Scene Sound Dramaturgy
- Different shootable realizations of the same story obligation: Substitutable Realization
- Minimal handoff for long episodes across contexts: Scene Handoff Capsule, keep in context only
Duration Estimation (On Demand)
Only write an index to the system temporary directory when the user asks about duration. First use Python to query the cross-platform temporary directory, and replace the full path printed by the first command verbatim into the quotes of the next two commands. Each of the following is a complete one-line command, not relying on shell variables or continuation characters; use
on Windows when
is unavailable. The example values of
must be replaced with the actual speakers in this episode.
--project short-drama.json
must be added only to the third command (
accepts it;
has no such parameter and will report
if added), and only when a project configuration actually exists:
text
python3 -c "from pathlib import Path; import tempfile, uuid; print(Path(tempfile.gettempdir()) / ('short-drama-' + uuid.uuid4().hex + '.jsonl'))"
python3 "{技能目录}/scripts/screenplay_index.py" "剧集/EP001/剧本.md" --output "粘贴第一条命令输出的完整路径" --speaker "本集角色一" --speaker "本集角色二"
python3 "{技能目录}/scripts/duration_estimate.py" "剧集/EP001/剧本.md" --index "粘贴第一条命令输出的完整路径"
Re-run after revision: the output path written once by the second command cannot be written again directly; it will fail with
. To keep original block IDs, add
--previous-index <same path>
; to renumber from scratch, add
; or go back to the first command and choose another temporary path.
Before estimating, distinguish the counting calibers:
includes punctuation; reference speaking rates in video prompts are calculated by pronounceable character count. When converting by speaking rate, exclude punctuation and treat numbers and abbreviations according to actual pronunciation; do not mix the two counts.
Estimation is a reference, not a gate; when no speaking rate or action-segment rate is available, only report countable facts and do not guess seconds. But when the task already gives a target duration, the writer must still use real reading and action pacing to judge whether it fits, and directly compress repeated beats; "cannot precisely estimate seconds" is not a reason to ignore the target.
Completion
Completion is achieved when the named scope is written, scenes are causally coherent, dialogue and action are performable, promises are paid off or deliberately delayed, and the ending completes the episode's intended dramatic or emotional function. The final beat may advance, close quietly, form resonance, or re-contextualize existing action; judge whether it works by whether it works, not by substituting "did one more thing happen."
Assets, storyboards, review, and production begin only when the user names them. After the five creative documents are complete, you may turn to
for a mechanical cross-document consistency check; content quality remains with the creator's review.
Installation & Maintenance
Run
python3 scripts/selftest.py
only when installing, upgrading, or troubleshooting.