Mmcp.market

short-drama-produce skill

by zenstory-ai·zenstory-ai/drama-skills·2.3k stars·MIT

在创作者明确确认后,执行短剧项目的图片、视频、TTS/配音或时间线音乐生产任务,并把结果与精简运行记录落回项目。用户说“生成这张图/这段视频/这句配音/这段配乐”“开始跑图/跑视频/合成语音/生成音乐”“把已确认提示词送去生产”,或要求批量执行已确认媒体任务时使用;不负责创作提示词、镜头、台词、歌词或声音身份,也绝不把预览、继续、预算说明或既有接受状态当作本次付费生产确认。

A100/100content scan

Is the short-drama-produce skill safe?

Clean: nothing in its files matched our rules. We read 12 files in the folder on 2026-09-28.

No findings.

Install the short-drama-produce skill

A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description.

git clone --depth 1 https://github.com/zenstory-ai/drama-skills.git /tmp/drama-skills
mkdir -p ~/.claude/skills
cp -r /tmp/drama-skills/skills/short-drama-produce ~/.claude/skills/short-drama-produce
available in every project

In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub

The instructions your agent would load

SKILL.md as published, without the frontmatter. Read it on GitHub

确认后生产

本技能只负责把已经写好的生产规格安全送到运行环境配置的 adapter。图片提示词仍归 $short-drama-image-prompts,视频提示词归 $short-drama-video-prompts,台词与录音表归 $short-drama-write,声音身份归 $short-drama-assets。

Quick Start

只在用户明确要求实际生成后,从当前 图片提示词.md、分镜.md 或 视频提示词.md 中 取出本次提示词,建立一个有边界的运行 job。creator-first job 的 source 必须指向拥有这条提示词的 当前 Markdown,sourceentry 必须点名该文档允许的二级标题:图片提示词.md 用 IMG-, 视频提示词.md 用 MOTION-,分镜.md 用 SHOT-(modality 为 image,正文取该镜的 ### 冻结关键帧提示词)。此选择器只提取首帧;尾帧需先由图片提示词阶段建立独立 IMG- 状态图条目, 再从 图片提示词.md 准备 image job。创作者也可以提供已有起始帧—— 在自己的工具里出图再放进项目同样成立,图片始终不进项目时走分镜的 PLAN-...; 产出落在 剧集//制作成果/images/ 后,分镜 owner 才能把它绑成 用途:起始帧 的 REF-...。存在真实参考图时, 还必须逐张填写 referencebindings 的槽位、顺序、路径、中文名、用途以及允许/禁止控制范围; 内置视频 adapter 把这里的 用途 字段读成供应商自己的 role,只接受它公布的取值 (MiniMax 为 firstframe/lastframe/referenceimage/referencevideo/referenceaudio, Seedance 为三个 reference);带参考图却没有绑定的 job 会直接失败,不替它猜一个 role。 本地图片由内置 adapter 按 base64 data URI 直接送出,不需要自建上传服务。 条目的「输入参考图」写成 PLAN-... 时,那些图片在创作者自己的工具里,项目内没有文件可送: prepare 直接失败并说明先把真实文件放进项目、改写成 REF-...,不拿计划当输入,也不静默丢掉参考。 references 可以省略并由绑定顺序生成,也可以作为相同顺序的显式镜像。输出放在 剧集//制作成果/;这个 job 是生产工具的临时输入,不是第六份创作文档:

python3 {技能目录}/scripts/production_tool.py prepare <project> --job <临时-job.json>

先展示 prepare 的完整预览;此时不会调用供应商。

硬闸门

每次生产都必须经过以下四步,顺序不可合并:

reference bindings、references、outputs、overwrite 与 adapter。creator-first job 会在这一步机械核对 所选标题里的可复制提示词,以及参考图槽位、顺序、路径、中文名和控制边界;任一漂移都 fail closed。

  1. 建立一个有边界的 job:一种 modality、明确数量、完整 prompt/spec、参考文件、参数、输出路径和 adapter profile。
  2. 运行 prepare,把返回的完整预览展示给创作者,尤其是数量、prompt、source entry、

“继续”“都做完”“预算没问题”、上游内容已接受或之前确认过另一版,都不算本次生产确认。

  1. 等创作者在看到这份预览之后明确确认。只有明确同意这项当前任务,才运行 confirm;

防止失败重试意外产生第二笔费用。

  1. 运行 run。它会在启动 adapter 前消费一次确认;成功或失败后再次执行都必须重新确认,

job、prompt、参数、输出路径或直接输入任一变化,旧确认立即失效。不得代替创作者填写确认。 当前已确认 job 是本轮唯一工作单元;运行结束后回报结果并交还控制权,不自动准备下一批或启动审查。

分镜.md 的「输入参考图」路径只是创作阶段的可读依据与使用意图,不是生产输入快照。进入生产时, creator-first job 必须从 图片提示词.md 或 视频提示词.md 的对应条目建立绑定;prepare 展示的 referencebindings、references 与已确认 job 才是本次 adapter 实际读取哪些文件字节、各自允许 影响什么的权威。非 creator 的结构化规格可不填 sourceentry/reference_bindings,继续只使用显式 references;但新的 image/video job 只要 source 指向 canonical 图片提示词.md 或 视频提示词.md 就强制使用对应 selector,不能靠省略字段降级绕过。升级前已经 prepare 并落盘的 旧 job 仍可按原指纹读取。 新生产结果不自动回填或刷新分镜;需要把它改为后续输入时,由分镜 owner 修订文档,再建立新 job 并重新预览、确认。

命令

只在进入生产边界后把当前提示词和运行参数写成临时 JSON;视频与图片 job 的 parameters.promptlanguage 跟随当前可复制正文已经解析出的提示词语言,使 adapter 追加的参考约束 使用同一种语言,而不是重新回退成固定英文。不要在创作阶段为每条提示词预建 job。 格式和 adapter 契约见 adapter-contract.md。命令由 productiontool.py 提供,然后运行:

python3 <本技能目录>/scripts/production_tool.py prepare <project> --job <job.json>
python3 <本技能目录>/scripts/production_tool.py confirm <project> --job-id <id> --confirmation "CONFIRM <id> <code>"
python3 <本技能目录>/scripts/production_tool.py run <project> --job-id <id> --adapter-config <outside-project-config.json>
python3 <本技能目录>/scripts/production_tool.py status <project> --job-id <id>
python3 <本技能目录>/scripts/production_tool.py collect <project> --job-id <id> --adapter-config <outside-project-config.json>
python3 <本技能目录>/scripts/production_tool.py audit <project>

prepare 只验证并预览,不生产。confirm 只保存与当前 job 指纹绑定的一次性确认。 run 才启动 adapter。collect 只取回已经提交过、已经计费的那次任务的结果, 不重新提交、也不需要新的确认——见下面「中断不等于要重跑」。audit 只对账本地任务历史、失败后恢复、重复内容尝试和当前输出字节, 不会调用供应商,也不把技术成功、文件存在或哈希一致写成媒体质量结论。同一 job 存在未决 running attempt 时禁止重新 prepare、confirm 或 run;先等待完成或排查遗留 attempt。

输入选择

冻结关键帧正文,加上必要参考图和明确的输出尺寸/数量;creator-first job 使用 sourceentry 锁定这一条。资产板走 IMG-,某一镜的起始画面走 SHOT-*;两者不互相替代。

  • image:读取 图片提示词.md 的当前 IMG- 可复制正文,或 分镜.md 的当前 SHOT-

冻结关键帧、时长与画幅;creator-first job 使用 sourceentry 锁定这一条。连续段选择从上一段 生成结果续接时,下一段 job 同时绑定上一段实际视频和从该视频取得的实际尾帧,并保留 continuityvideo、actualtailframe 的不同职责;供应商 role 由目标模型 adapter 翻译。H3 的这组 输入统一译为 referencevideo + referenceimage,不能混成 referencevideo + firstframe;不以 计划尾帧或文字描述代替真实文件。

  • video:读取 视频提示词.md 的当前 MOTION-* 可复制正文,并核对 分镜.md 中对应镜头、

中改词,也不为 TTS 新建第六份创作文档。

  • tts:从 剧本.md 读取原句与表演要求,声音参考由用户或现有媒体明确提供。不得在生产 job

不携带歌词。供应商不能精确承诺时长时,生成源音轨后仍由 $short-drama-edit 按文档里的混音意图完成落点、 循环、淡入淡出和对白 ducking。

  • music:读取 视频提示词.md 中创作者已确认的时间线音乐章节;主题曲使用已确认歌词,纯配乐

一个 job 不混合 modality。大批量工作拆成创作者能看清数量和成本边界的小 job;不为方便把整季 隐式塞进一次确认。

Adapter 边界

adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 adapter 自己从进程环境或系统凭据 存储读取。项目 job、确认记录、运行记录和 Dashboard 都不得保存密钥。

脚本以 JSON stdin 调用 argv 数组,不使用 shell,不拼接命令。adapter 返回本地临时文件;工具只 接受与已确认 targets 完全一致的结果,并把完整文件原子复制到项目的 剧集//制作成果/ 目录。项目和上游 Skill 不写死供应商、模型或即将变化的 API。

内置图片/视频 compiler 会根据已确认的 reference_bindings,按顺序向供应商 prompt 附加一段确定性的 引用语义说明(中文名、用途、允许控制与不得控制范围);不会把槽位名误当成要渲染进画面的文字。 外部 adapter 也必须保留这组语义或明确拒绝,不能只上传文件而静默丢失控制边界。

本技能可选提供四个 stdlib adapter,均通过项目外 adapter config 选择,凭据只从运行环境读取:

官方图片、视频和音频参考 role,内置 runtime 未配置可信上传时仍拒绝本地参考文件。

  • Seedance:模型/Endpoint ID 必须由账号显式配置;compiler 支持

固定高保真引用并校验尺寸、格式与透明背景限制。

  • GPT Image 2:无参考图走 generation,有参考图走 edit;

和纯配乐,不伪造时长请求字段。

  • MiniMax Music:使用 music-3.0 与 hex 结果,区分主题曲

由账号与文档显式给出,不内置音色清单。只从预置音色合成,不做声音克隆——克隆是授权问题, 创作者授权的参考录音按普通创作者输入走 输入/。

  • MiniMax 语音:tts 模态;模型与 voice_id 都必须

由账号显式配置;提示词进 content 的 text 项,参考图按显式 role 绑定,本地参考在没有可信上传时 fail closed。该模型与画面同一次生成声音,写法影响见视频提示词技能的目标模型能力档案。

  • MiniMax H3 视频:模型 ID、分辨率集合与时长区间必须

这些 adapter 是已验证请求契约,不是账号可用性或生成质量保证;正式生产仍必须通过上面的本次 确认闸门,并由审查 Skill 判断产物质量。

仓库自带 fixture_adapter.py 只用于离线测试,不代表真实生成质量或默认生产 adapter。

中断不等于要重跑

视频任务在提交那一刻就已经计费,不是在拿到结果时。提交之后的一切——轮询几分钟、下载—— 都可能被进程被杀、断网、机器休眠打断。内置 adapter 因此在拿到供应商任务 ID 的第一时间就把它 写进 handle_path(早于第一次轮询),这个路径不随本次尝试一起删除。

于是中断之后有三条确定的动作,不必再花一次钱:

action 是 collectbeforeretry;

  1. audit 会把带着任务 ID 的未完成尝试报成 orphanedproviderjob,
  1. collect 用那个 ID 取回结果并把这次尝试标成成功;
  2. 只有在 collect 也确认那边确实失败之后,才走重新确认与重投的老路。

不要在 audit 报出 orphanedproviderjob 时直接重投——那是在为同一个镜头付第二次钱。 collect 不走确认闸门是有意的:闸门防的是意外花钱,而 collect 不花钱; 如果它也要求重新确认,那么中断之后最省事的路径就变成再付一次,正好是闸门要防的事。

结果与复核

成功后回报实际输出路径、媒体类型和运行状态;不要把“adapter 返回成功”写成质量结论。 多任务或重试后先运行 audit:终态失败按 retryable 路由,重试仍须新的明确确认;输出缺失或 文件的哈希或大小不再等于运行记录时,先复核当前字节或重新生产。repeatedcontent 只是成本与诊断信号, 不能自动判定同文重试合理或不合理;runningattempt 是未决运营状态,audit 必须返回 attention。 失败按三路走。超时、限流、服务端错误这类技术失败可做有上限重试。失败信息点名了被拒的是哪 一项输入——提示词文本、参考图或音频——就先改那一项再投:文本被拒改写那一句,把「一拳砸在 对方脸上,血顺着下巴滴」换成「一拳挥空,对方侧身避开,桌上的杯子被带倒」;参考图被拒换一张 构图与角色一致、画面本身合规的图;音频被拒重录那句台词。改动写进新的 job 重新 prepare,让创 作者在预览里看到改的是哪一项再确认;原样重投的那次确认不产生修复,只产生一笔费用。重复内容 缺陷回到对应 prompt/spec owner。 生产结束后不自动进入剪辑。素材要装配成成片时由用户点名 $short-drama-edit;它只取舍已有帧, 不回头改本阶段的 job,也不生成新素材。 如需质量复核,报告可把已有结果另行交给 $short-drama-review;不要在生产调用中自动启动复核。 Dashboard 只负责展示这些文件和运行摘要,不提供 adapter 设置或生产按钮。

安装维护

只有安装、升级或排障时运行离线自检;普通创作和生产准备不运行:

python3 scripts/selftest.py
python3 scripts/provider_adapters.py --selftest

More skills from zenstory-ai/drama-skills

  • Ashort-drama基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜、剪辑或审查请求由对应子 skill 直接处理。
  • Ashort-drama-assets从短剧剧本拆出人物/造型、地点/视图、道具/状态和跨场连续性,写成创作者可读的视觉设定。用户说“拆角色/场景/道具”“做资产设定”“判断复用还是新变体”“更新造型/道具状态”,或拿现成剧本直接做视觉资产准备时使用;不写图片提示词,不生成媒体。
  • Ashort-drama-develop将中文小说、短剧或漫剧想法、梗概、改编材料、已有系列笔记或多集完整剧本发展成可追溯的改编方案、戏剧方向、创作简报、导演阐述、故事引擎与分集地图,并按题材与制作形态(画风)选择写法。用户提出“导入小说做短剧”“从多集整稿生成/补分集地图”“开发短剧/漫剧”“做故事设定/系列大纲/分集规划”“写导演阐述”“这个题材怎么写”“定画风/制作形态”“把这个点子变成短剧”或需要梳理人物冲突与集间交接时使用;已有单集剧本可直接进入写作、资产或审查流程,不强制补开发文件。
  • Ashort-drama-edit将已生成的短剧镜头剪成成片,记录入出点、镜序、声音、字幕与交付规格。用于套剪、加字幕、统一响度、调整节奏或导出精修素材;需要补素材或修改故事时转回对应创作阶段。
  • Ashort-drama-image-prompts为短剧人物、造型、地点、道具和状态编写或修改可直接复制的图片提示词 Markdown。用户提到角色设定图、三视图、参考图、场景板、道具图、风格帧、Look Development、状态变体或局部编辑提示词时使用;不生成图片,也不调用供应商。
  • Ashort-drama-knowhow维护者专用的短剧 know-how 学习、验证与生命周期治理。仅在维护者明确要求从其当前会话提供的授权只读文本源学习完整短剧项目链,并把私有观察逐步转成去标识、去复刻、经盲测与独立审查的公共 reference、rubric 或 synthetic fixture 候选时使用;不用于普通创作、公开运行时取数、媒体生成或粗略数据分析。
  • Ashort-drama-novel-analyze把长篇小说、连载网文或多集散稿拆成可追溯的原著分析:章节索引、改编价值快评、逐章功能提取、剧情单元与节奏聚合、人物与设定归并,最后给出改编价值判定与分集候选,交给 $short-drama-develop 立契约。用户说“导入这本小说”“拆这本书”“分析原著”“这本书能不能改短剧”“先看看值不值得拆”“把长篇拆成分集候选”,或直接给出小说文件路径时使用。只做只读的结构化分析,不写剧本、不建资产、不生成媒体,也不替创作者决定改编方案。
  • Ashort-drama-review审查短剧项目中的原著分析、故事、剧本、视觉设定、图片提示词、分镜、冻结关键帧、视频提示词和已有媒体。用户提出“审稿/检查剧本”“检查资产或连续性”“检查图片/视频提示词”“检查原著分析”“审查模板感”“根据生产观察做项目校准”时使用;只写审查问题、结论和修订要求,不代替 owner 修改来源文件。
  • Ashort-drama-storyboard把中文短剧剧本和视觉设定写成有戏剧职责、连续性边界与冻结关键帧提示词的分镜 Markdown。用户提出“拆分镜/设计镜头/做镜头表”“场次视觉计划/调度故事板”“比较导演方案”“写首帧/关键帧提示词”或检查轴线、站位、视线、持物连续性时使用;不生成媒体。
  • Ashort-drama-video-prompts把短剧分镜和冻结关键帧写成可直接复制的视频提示词 Markdown,也可按用户要求写时间线配乐/主题曲意图。用户提到文生/图生视频动作、人物表演、运镜、口型、环境运动、镜头时长、起止状态、把分镜转成视频提示词或写配乐提示词时使用;不生成媒体、不创作歌词、不改分镜边界。
  • Ashort-drama-write编写或修订可拍摄的中文短剧、漫剧单集 Markdown 剧本,也负责保留作者原文地规范化现成剧本。用户提出“写/改一集短剧”“把大纲写成剧本”“优化场景/对白”“去模板感”“去 AI 味润色”“续写下一集”或提供剧本要求进入后续制作时使用;不负责资产、分镜、媒体提示词或终审。

All agent skills → · MCP servers