Write the single-episode intent into something performable, shootable, and capable of changing the story state 剧集/<EP>/剧本.md。
Quick Start
Maintain only one script Markdown; do not separately create an episode card, beats, block index, recording sheet, QA, or acceptance record.
Use for the level-one heading # EP001 集名, and use for scene headings ## EP001-SC001 内 · 地点 · 时间/天气.
Write dialogue as 角色(可选表演提示):台词; use for production tags [VO]、[OS]、[SFX]、[画面文字]、
[连续性]、[转场]. Do not mistakenly write action narration containing a colon as dialogue.
Entry points
- Has episode planning: read this episode's entering state, goal, turn, payoff, and handoff facts.
- Only an idea/outline: form a minimal single-episode contract and causal beats in context, then write the script directly.
- Existing script: preserve the author's language and make only the targeted revisions the user names.
- Non-standard text needs to enter production: preserve the original text and only normalize scenes, action, dialogue, and production tags as necessary.
Development outlines and long-form analysis are both optional upstream inputs; write directly when the current material is sufficient.
Workflow
- Lock in the viewing experience this episode promises, who wants what now, the阻力, the current-episode payoff, and the exit state.
- Identify only the engines that actually exist in this episode: if it centers on a difficult choice, check the value on both sides; if the turn depends on disputed evidence, check the boundaries of proof; if it foregrounds a precise deadline, check action capacity; if the prompt limits the number of times, rounds, breaths, or beats, check whether each unit completes the required state within its boundary. Do not force in missing elements; when the input already uses one as its main engine, make it truly change action, relationships, or results, not merely name it in dialogue.
- Arrange "because—action—result—next pressure" in context, without committing a beat sheet to disk; let objects, dialogue, silence, space, or sound do the necessary work according to this episode's subject matter, without presupposing any one carrier.
- Determine scene by scene the irreplaceable function, visible change, and end-of-scene state; for scenes organized by pursuit or conflict, further clarify the focal agenda and阻力. Supporting characters carrying major dramatic functions should have their own strategies; transactional or environmental characters can remain concise.
- Write action, dialogue, voice-over, sound facts, and on-screen text into the same script.
- If the user asks for a full episode, write the complete episode, with scene batches automatically continuing.
- Before submission, silently reverse-check: looking only at the script, can this episode's promise be received, do character actions have causality, and is the subject-matter tone consistent; then run a specialized check on the choices, evidence, limited units, or precise deadlines this episode actually uses. If self-checking causes the script to grow mechanisms the input did not require, remove the mechanisms rather than finding reasons for them.
- For local revisions, preserve unrelated passages; directly fix clear problems, and leave only genuine plot forks to the user.
Writing requirements
- First obey the facts already given by the input,
必须/禁止, the subject-matter viewing contract, and the exit state; this skill's review items and craft defaults only help realize these requirements and must not, in turn, fabricate precise numbers, records, resources, procedures, relationships, or mechanisms that the prompt does not contain. - Each scene changes information, power, relationships, emotions, physical state, or risk; delete or merge scenes without change. The turn of the core resistance must have traceable facts, leverage, authority, cost, or character action, and cannot rely only on the opponent ceasing to react.
- Dialogue must be seeking, avoiding, testing, pressuring, or redefining the relationship; show status through visible, audible, or touchable behavior, do not replace action with explanation, and do not restate a mechanism already fully dramatized.
- For a draft of dialogue you wrote yourself, read it once after finishing and delete sentences that do not carry action or conflict; every remaining line must be convertible into one action or expression for the actor, and anything that cannot be converted should be deleted or changed into action. Original text brought by the creator is not deleted under this rule.
- The first beat of the whole episode must itself be the hook, seeopening first beat。
- The stakes necessary for the audience to understand the current action must enter the script, but the carrier follows the subject matter; special rules such as choices, evidence, limited units, and precise deadlines are enabled only when the input truly uses them as the engine, and are read as neededdramatic craft, ordinary decisions, ordinary objects, and vague time pressure are not upgraded into the same set of devices.
- When compressing process, keep only the nodes that change strategy, relationships, risk, or outcome. Resources and external reactions must come from the input or be established earlier, and cannot complete the hardest dramatic action on behalf of the characters.
- Characters bearing the main conflict must maintain commensurate goals, judgment, or strategy; transactional and environmental characters stay concise, and secrets, reversals, or character arcs are not forced in for the sake of a checklist.
- Established costs, irreversible consequences, key props, space, and knowledge states must enter a traceable exit state; the ending may advance, leave space, be ironic, close quietly, form resonance, or make an existing action change meaning, and does not force the addition of external events; when the accepted rhythm profile's
end_on_peakistrue, stop at the peak and do not follow with resonance (seeproject rhythm profile)。 [连续性]hand over only states already established by prior action and easily lost downstream; author labels cannot prove that something never happened off-screen, and results already clearly presented in the main text are not restated.- Before submitting, silently do one economy check: whether precise numbers or record chains not required by the input were added; whether labels/dialogue repeat action; whether multiple consequences in the same direction were piled up after the payoff. Delete content with no new function; knowhow itself is not deleted.
- When the input gives a target duration, read through and cut the draft according to real performance, action, and pauses, first deleting repeated verification, explanation, and synonymous endings; do not fill a template with uniform word counts, shot counts, or beat counts.
- The user's original text takes priority; "removing AI flavor" is targeted revision and does not flatten the author's personality.
knowledge as needed
By default, read only this SKILL and the direct input. When the following clear signals appear, read the corresponding knowledge before writing the main text; if the same input has multiple different issues, they may be read separately, but do not traverse irrelevant references:
- stage boundaries and rule grading:stage contract
- scene headings, dialogue, and production label syntax, or normalizing a ready-made script brought by the creatornormalization:script format
- project-specific production script dialect:production format dialect
- Input containscore choice、limited count/rounds/breaths/beats、precise countdownorkey physical evidence that will change a character's judgment:Playwriting Craft
- Past relationships must enter through dialogue, or key characters easily become mere exposition devices:Dialogue Craft
- Sound sources, negative space, and sound bridge:Scene Sound Dramaturgy
- Different filmable realizations of the same story obligation:Substitutable Realizations
- Minimal handoff when a long single episode spans contexts:Scene Handoff Capsule, kept only in context
- This episode needs to use
[VO]or inner monologue to convey information, or has a pain point to convey:Show, Don't Tell short-drama.jsoncontainsstatusasaccepted'screator_authority.rhythm_profile:Project Rhythm Profile
Duration Estimation (as needed)
Only when the user asks about duration, or the project has accepted a rhythm profile and needs to check the VO proportion, write the index into the system temporary directory. First use Python to query the cross-platform temporary directory, and replace the complete path printed by the first command verbatim into the quotes of the latter two commands. Each of the following is a complete single-line command, relying on no shell variables or line continuation characters; on Windows when there is no python3 command, use py -3。--speaker 's example value must be replaced with this episode's actual speaker.
--project short-drama.json only added to the third command(duration_estimate.py only then accept it,
screenplay_index.py does not have this parameter; adding it will directly report unrecognized arguments), and only add it when the project configuration actually exists:
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 "粘贴第一条命令输出的完整路径"
Rerun after revision: the output path written once by the second command cannot be directly written again, or it will fail with already holds an index .
To keep the original block IDs, add --previous-index <同一路径>; to renumber from the beginning, add --no-previous;
or simply return to the first command and take another temporary path.
Before estimating, distinguish the counting conventions:dialogue_characters includes punctuation; the reference speaking rate in video prompts is calculated by pronounceable character count.
When converting by speaking rate, exclude punctuation, and handle numbers and abbreviations according to actual pronunciation; do not mix the two counts.
When the project has accepted a rhythm profile, add one more item in the output: vo_share:[VO] the proportion of characters in all dialogue characters, the profile upper limit, and whether it is exceeded.
Estimation is a reference, not a gate; when there is no speaking rate or action-segment rate, report only countable facts and do not guess seconds. But when the task has given a target duration, the writer must still judge whether it can fit by reading aloud for real and reading through the action, and directly compress repeated beats; "cannot estimate seconds precisely" is not a reason to ignore the target.
Completed
It is complete when the named scope has been written, scene causality is coherent, dialogue and action are performable, promises are fulfilled or intentionally delayed, and the ending fulfills the episode's intended dramatic or emotional function. The form of the final beat follows the ending item above; judging whether it is effective is not replaced by "whether another thing happens."
Assets, storyboards, review, and production begin only when the user names them.
After the five creative documents are complete, you may turn to $short-drama to perform a mechanical check of the cross-document structure; content quality is still reviewed by the creator.
Installation and Maintenance
Run only when installing, upgrading, or troubleshooting python3 scripts/selftest.py。