Install
openclaw skills install @worldwonderer/short-drama-write创作因果清楚、人物声音鲜明、动作可表演的中文短剧剧本
openclaw skills install @worldwonderer/short-drama-write把单集意图写成可表演、可拍摄、会改变故事状态的 剧集/<EP>/剧本.md。
只维护一份剧本 Markdown,不另建 episode card、beats、block index、录音表、QA 或接受记录。
一级标题使用 # EP001 集名,场景标题使用 ## EP001-SC001 内 · 地点 · 时间/天气。
对白写 角色(可选表演提示):台词;生产标签使用 [VO]、[OS]、[SFX]、[画面文字]、
[连续性]、[转场]。不要把含冒号的动作叙述误写成对白。
开发大纲和长篇分析都是可选上游;当前材料足够时直接写。
必须/禁止、题材观看契约和退出状态;本技能的审查项与手艺默认只帮助实现这些要求,不能反过来补造题面没有的精确数字、记录、资源、程序、关系或机关。end_on_peak 为 true 时,停在峰值上,不接余韵(见项目节奏档案)。[连续性] 只交接由前文动作已经建立、又容易在下游丢失的状态;不能用作者标签证明镜头外从未发生某事,也不复述正文已清楚呈现的结果。默认只读本 SKILL 和直接输入。出现下列明确信号时,在写正文前读取对应知识;同一输入有多个不同问题 可以分别读取,但不遍历无关引用:
[VO] 或内心独白交代信息,或有痛点要交代:能演的不说short-drama.json 里有 status 为 accepted 的 creator_authority.rhythm_profile:项目节奏档案用户问时长,或项目已接受节奏档案、需要核对 VO 占比时,才把索引写入系统临时目录。先用 Python 查询跨平台临时目录,把第一条命令打印的完整
路径原样替换进后两条命令的引号内。以下每条都是一行完整命令,不依赖 shell 变量或续行符;Windows
没有 python3 命令时使用 py -3。--speaker 的示例值必须替换为本集实际说话者。
--project short-drama.json 只加在第三条命令上(duration_estimate.py 才接受它,
screenplay_index.py 没有这个参数,加上去会直接报 unrecognized arguments),且只在项目
配置确实存在时加:
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 "粘贴第一条命令输出的完整路径"
改稿后重跑:第二条命令写过一次的输出路径不能直接再写一次,会以 already holds an index 失败。
要保留原有块 ID 就加 --previous-index <同一路径>,要从头重编号就加 --no-previous;
或者干脆回到第一条命令另取一个临时路径。
估时前区分计数口径:dialogue_characters 包含标点,视频提示词中的参考语速按可发声字数计算。
按语速换算时排除标点,并按实际读法处理数字和缩写;不把两个计数混用。
项目已接受节奏档案时,输出里多一项 vo_share:[VO] 字数占全部台词字数的比例、档案上限,以及是否超过。
估算是参考,不是门禁;没有语速或动作段速率时只报告可数事实,不猜秒数。但任务已给目标时长时, 写作者仍须用真实朗读和动作通读判断能否容纳,并直接压缩重复节拍;“不能精确估秒”不是忽略目标的理由。
点名范围已写入、场景因果连贯、对白与行动可表演、承诺有兑现或有意延迟、结尾完成本集预定的戏剧或情绪功能,即完成。最后一拍的形态按上文结尾一条;判断它是否有效,不用“是否又发生一件事”代替。
资产、分镜、审查与生产只有用户点名时开始。
五份创作文档齐备后,可转 $short-drama 对跨文档结构做一次机械核对;内容质量仍由创作者审查。
只有安装、升级或排障时运行 python3 scripts/selftest.py。