跳到正文

短剧项目与故事开发

围绕题材、人物、故事结构与分集方向组织短剧开发材料,为剧本和后续制作提供依据。

开源精选视频内容40 个文件2,909 Stars浏览次数 0zenstory-ai/drama-skills MIT版本 f53fb20
开始使用

下载前阅读 SKILL.md 中的使用条件,并确认所用工具支持对应能力。

输入资料
创意、题材与项目目标 角色、故事和平台条件 阅读本节完整说明
交付内容
故事开发资料 角色与分集方向 阅读本节完整说明
  1. 获取完整包,保留配套文件的目录结构。
  2. 按照原文准备所需工具、依赖与输入资料。
  3. 阅读对应使用步骤与输入输出说明,在自己的环境中验证结果。

使用提示摘自原文,配套文件保留来源版本;实际运行条件以各包说明为准。

正文

获取原文件

references/multi-episode-intake.md

当创作者给的是一份已经写好的多集剧本、散稿或合订稿,并希望生成或补齐 项目开发/episode-map.jsonl 时使用本流程。它不是小说改编分析,也不是把整份文件塞进一次 提示词:Agent 判断这份文件实际怎样分集、每集讲了什么;脚本只保存精确定位并防止重复劳动。

不变边界

  • 原文件原样保存在 输入/;byte span 按原始字节计算,CRLF 不做归一化。
  • 自动标题识别只生成候选索引,不是对文件语义的裁决。不要为了迎合脚本而改写创作者原文。
  • 不把整稿、全部分集正文或整季 map 塞进 heredoc、内联 Python、命令参数或单次模型上下文。
  • episode_intake.py 不生成转折、回报、钩子等创作字段。它只做索引、校验、单集切片、 完成集推导和 Agent 所写记录的原子合并。
  • 批次没有通用固定值。Agent 先看索引里的各集 byte_length、实际复杂度和当前可用上下文, 再为本轮明确选择 --batch-size;首轮宜保守,读过真实切片后可以调整。

1. 在工作区只建一次候选索引

python3 <本技能目录>/scripts/episode_intake.py index \
  输入/<完整剧本> \
  --source-ref 输入/<完整剧本> \
  --out 项目开发/_work/episode-intake-index.next.json

脚本识别短独立行形式的 第N集、第N集 标题 与 Markdown # EP N,统一写成规范 EP001 ID。索引只含行/字节跨度、长度与结构问题,不含正文。

退出码 0 表示机械结构自洽;退出码 2 表示候选已落盘但有缺号、重号、空集或未识别等 问题。

unmapped_spans 用 locator 标出落在任何一集跨度之外的材料——实际上就是第一个集标题 之前的前言与目录。它标不出集间说明与尾注:分集跨度从一个集标题一直延伸到下一个集标题 (最后一集延伸到文件末尾),两集之间不存在空隙,所以一段插在中间的制作方说明会被并进 前一集,尾注会被并进最后一集,problems 仍是空的。这不是可以靠正则补上的: 「这一段属于上一集还是不属于任何一集」是语义判断,扩大正则去猜作品语义正是下一段 禁止的做法。

所以「材料不会静默丢失」这条要靠下面的边界检查来保证,而不是靠 unmapped_spans 报全: Agent 必须对每个 unmapped_spans 做小范围检查,并且按下一段的做法读每一集的首尾几行, 确认边界落在正确的位置。 此时根据候选中的 line span,只读取疑似边界附近的小段,判断这份文件使用的是 幕标题、分隔线、混合标题、目录加正文还是别的规律。不要扩大自动正则去猜作品语义。

非标准结构由 Agent 写一个很短的 JSONL 边界文件,每行只给规范 episode_id 与 1-based line_start,必要时给 line_end;然后让工具推导精确 byte span:

{"episode_id":"EP001","line_start":12}
{"episode_id":"EP002","line_start":58}
python3 <本技能目录>/scripts/episode_intake.py manual-index \
  输入/<完整剧本> <临时边界.jsonl> \
  --source-ref 输入/<完整剧本> \
  --out 项目开发/_work/episode-intake-index.next.json

manual-index 仍会机械阻断重号、跳号、倒序、空跨度和非规范 ID,但不会判断一幕是否应该 属于上一集还是下一集;这个选择仍由 Agent 结合文件内容完成。

自动或手工候选通过检查后,把它发布到正式 owner 路径;不要让 intake 工具直接覆盖规范索引:

python3 <本技能目录>/scripts/episode_intake.py verify \
  项目开发/_work/episode-intake-index.next.json 输入/<完整剧本>

python3 <core 技能目录>/scripts/project_tool.py publish <项目根> \
  --owner short-drama-develop --artifact-id series:episode-intake-index \
  --output 项目开发/episode-intake-index.json=项目开发/_work/episode-intake-index.next.json \
  --input 输入/<完整剧本>

发布成功且下游命令已改读正式索引后再删除工作区候选。可重建索引仍通过 owner 的 publish 发布,以保持路径所有权和原子替换。

2. 每次只读当前集

任何切片前都验证索引;原文件变化一个字节就重建,不沿用旧 locator:

python3 <本技能目录>/scripts/episode_intake.py verify \
  项目开发/episode-intake-index.json 输入/<完整剧本>

python3 <本技能目录>/scripts/episode_intake.py progress \
  项目开发/episode-intake-index.json 输入/<完整剧本> \
  项目开发/episode-map.jsonl --batch-size <本轮由 Agent 决定>

python3 <本技能目录>/scripts/episode_intake.py slice \
  项目开发/episode-intake-index.json 输入/<完整剧本> EP001 \
  --out <临时单集文件>

只读取 next_batch 指向的单集切片。Agent 根据每集自己的进入状态、追求、阻力、因果升级、 局部结果和出去压力写 map 记录;需要连续性时只携带已接受的紧凑前情、上一集交接和已有 map 相关记录,不回读整稿。每完成一集先落到短 batch JSONL,随后再处理下一集。

3. 合并与发布

merge 读取当前 map,但必须把结果写到另一个候选文件,绝不直接覆盖当前项目事实:

python3 <本技能目录>/scripts/episode_intake.py merge \
  项目开发/episode-intake-index.json 输入/<完整剧本> \
  <本轮 batch.jsonl> 项目开发/episode-map.jsonl \
  --out 项目开发/episode-map.next.jsonl \
  --batch-size <本轮由 Agent 决定>

它拒绝未知 ID、批内重号、超过本轮显式上限的记录和对已完成集的冲突重写;相同记录重放是 no-op。合并成功后,通过 core 的公开生命周期把 episode-map.next.jsonl 作为同一 artifact 的新候选发布,并声明它实际读取的完整剧本与索引:

python3 <core 技能目录>/scripts/project_tool.py publish <项目根> \
  --owner short-drama-develop --artifact-id series:episode-map \
  --output 项目开发/episode-map.jsonl=项目开发/episode-map.next.jsonl \
  --input 输入/<完整剧本> \
  --input 项目开发/episode-intake-index.json

发布完成后再删除临时候选和单集切片。不要让 merge 直接覆盖 项目开发/episode-map.jsonl,也不要绕过 project_tool.py 手工替换它。

中断后先重新运行 progress;项目工具可用时也读取 status。磁盘上的当前 episode-map.jsonl 是唯一完成真相;checkpoint 若需要只是由它重建的缓存,不能用 last_completed 猜连续进度。已有 EP001、EP003 时,EP002 仍会出现在 pending,已完成 记录不会重跑。全部 pending 清空后,再做所有者检查、创作者接受与审查。

CONTACT HAONAN

联系haonan

医疗 AI · 产品与独立开发

刘浩南

关注医疗 AI 从 demo 到真实落地,聚焦产品化、商业化与院内工作流效率提升。

12年医疗产研经验,大湾区头部医疗AI公司前产品总监,独立开发者

医疗 AI 产品化医疗 AI 商业化院内工作流效率
刘浩南的微信联系二维码
微信扫一扫,联系 haonan