short-drama · diff

git:20260904.a9bf714 to git:20260910.1a0bfc1

5 added, 1 removed. Audit A to A.

---
name: short-drama
- description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。
+ description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜、剪辑或审查请求由对应子 skill 直接处理。
license: MIT
---
# 短剧创作路由
本技能负责项目初始化、跨阶段路由、制作形态与 Dashboard。各阶段正文由对应 owner 完成。
## Quick Start
所有项目统一使用 [creator-first 工作流](references/creator-workflow.md):每集按需维护
`剧本.md`、`视觉设定.md`、`分镜.md`、`图片提示词.md`、`视频提示词.md`,不建立并行的结构化创作真相。
具体写法见 [五份创作文档](references/creator-documents.md)。
## 路由
| 用户要做什么 | owner / 行为 |
|---|---|
| 开发点子、系列承诺、改编和分集地图 | `$short-drama-develop`,仅在用户需要时 |
| 已有多集完整剧本/散稿识别分集 | `$short-drama-develop` 按实际边界建立临时索引 |
| 分析长篇原著 | `$short-drama-novel-analyze`,仅在用户需要时 |
| 写或改单集剧本 | `$short-drama-write` → `剧本.md` |
| 拆人物、造型、地点、道具 | `$short-drama-assets` → `视觉设定.md` |
| 写资产图片提示词 | `$short-drama-image-prompts` → `图片提示词.md` |
| 做镜头和冻结关键帧 | `$short-drama-storyboard` → `分镜.md` |
| 写视频/时间线音乐提示词 | `$short-drama-video-prompts` → `视频提示词.md` |
| 实际生成媒体 | `$short-drama-produce`,先预览,再显式确认,最后运行 |
+ | 把已生产的素材剪成成片 | `$short-drama-edit` → `剪辑单.md` 与 `制作成果/成片/` |
| 审稿或校验 | `$short-drama-review`,仅在用户点名时 |
| 初始化、Dashboard、归档点名文档 | 本技能 |
`项目开发/` 中的长材料分析与分集索引是可选分析工作区,不参与单集布局判定;写任何一集仍只维护
该集的五份 creator-first Markdown。
现成剧本可直接拆资产;已有视觉事实可直接写图片提示词或分镜;已有分镜可直接写视频提示词。
不要为补齐名义流水线伪造上游。
+
+ 五文档是创作真相,剪辑单不是第六份。它写在素材生产之后,只记录「已有的这些素材,哪些帧进成片」,
+ 不改变任何一集的剧本、镜头职责或时长声明;需要改这些就回到拥有它们的文档。
## 执行请求
1. 找到用户给出的项目或资料,只读当前任务的直接输入。
2. 把用户点名的完整范围交给相应 owner;批次只控制上下文,自动续跑。
3. 只有真实创作分叉才询问;不要拿 schema、目录、事务或检查器询问创作者。
4. 范围完成后一次回报完成内容、关键决定、真实未决项和可选下一步。
5. 不自动开始用户没点名的审查、归档或生产。
6. 请求横跨视觉设定、图片提示词、分镜或视频提示词时,结束前按当前五文档做一次视觉依赖对账;
不因图片提示词和分镜可并行,就把后完成的一支留在另一支的旧引用之外。
7. 视频提示词请求遇到「输入参考图:无」或仍带「待补参考图」时,先路由分镜 owner 检查项目已有图片并刷新绑定。有匹配图就同请求续跑;有必要图缺失就列表停下。
停下时把三条路一起给出:把已有图片放进项目绑成 `REF-...`;由创作者在自己的工具里出图、本轮先用
`PLAN-...` 写出逐镜挂图计划并照常产出视频提示词;或者明确改走文生视频。用本套件生产参考图需要项目外的
adapter 与凭据,只是第一条路的一种做法,不要把它说成唯一入口,也不要只给「生成参考图 / 文生视频」两个选项。
不把“没有手工指定”当成明确选择文生视频。这一轮如果镜头还缺「视觉依据」,
同时按已成稿的冻结关键帧回填;两条依据描述同一格画面,不要只补一条。
8. 用户在会话里点名目标视频模型(“按 MiniMax H3 写”“用 Seedance 2.5”)而 `short-drama.json` 的
`production_profile` 还是 `unset` 时,先把这个选择连同它带来的原生时长、参考方式和正文语言写进档案,
再继续下游阶段。会话里的一句点名不落到档案上,下一轮就会退回通用路径,方言和时长要重猜。
## 初始化与 Dashboard
需要项目配置时运行:
```bash
python3 {技能目录}/scripts/project_tool.py init ./my-drama --title "示例短剧"
```
直接输入已经确认创作者说明语言、提示词语言、画幅、集数或单集目标时长时,首次 `init` 就带上对应的
`--language`、`--prompt-language`、`--aspect-ratio`、`--episode-count`、`--target-seconds`;只省略
未确认项,不让 Brief 中的确定事实留成配置里的 `null`。写入已确认的生产档案时,状态统一为
`accepted`;`unset` 只表示尚未决定,不另造中间状态。
`init` 只建立配置和空目录;第一次创作时再把文档写入 `剧集/<EP>/`,不预建空文件。
项目已经建好、用户之后才定下目标视频模型时,把选择写进档案,并同时展示它对时长区间、参考方式和
正文语言的影响。档案只接受已发布并已接受的创作者决策,所以是三步,不是一步。先写一行决策记录
(`accepted_value` 就是要落进 `choices` 的对象本身,不要再包一层 `choices`):
```jsonl
{"decision_id":"CD-H3","status":"accepted","target_locators":[{"src":"short-drama","field":"/creator_authority/production_profile/choices"}],"accepted_value":{"target_video_model":"minimax-h3","video_prompt_dialect":"minimax-h3","video_prompt_language":"en","native_duration_seconds":{"min":4,"max":15},"supported_generation_modes":["text","first_frame","first_last_frame","reference"],"audio_generation":"same_pass"}}
```
再发布、接受、写入:
```bash
python3 {技能目录}/scripts/project_tool.py publish <project> --owner short-drama \
--artifact-id AR-PROFILE --output "创作者决策/production-profile.jsonl=输入/profile.jsonl"
python3 {技能目录}/scripts/project_tool.py accept <project> --artifact-id AR-PROFILE --decision accepted
python3 {技能目录}/scripts/project_tool.py set-authority <project> \
--field /creator_authority/production_profile/choices \
--decision-ref "创作者决策/production-profile.jsonl#CD-H3"
```
各字段取值由命中的模型方言给出:`$short-drama-video-prompts` 的 MiniMax H3 / Seedance 方言文件都写了
推荐档案。写完用 `status` 复核 `video_model_profile` 是否已经出现。
项目定位与安全写入见 [运行预检](references/runtime-preflight.md)。用户明确要求 Dashboard 时运行:
```bash
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --port 0 --detach --open
```
`--detach` 让服务进程脱离当前 shell 独立运行,会话结束、终端关闭或智能体退出都不会带走它;
链接因此在整个创作期间保持有效。运行中的地址、端口和 pid 记录在
`<workspace>/.short-drama/dashboard.json`(仅本人可读),日志在同目录 `dashboard.log`:
```bash
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --status # 打印当前链接
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --stop # 停止
```
同一 workspace 已有在跑的 Dashboard 时,再次启动只会打印同一个链接,不再开第二个端口;确实要换
端口或换令牌时加 `--restart`。不加 `--detach` 时行为不变:前台运行,Ctrl-C 结束。
Dashboard 展示和编辑创作文件,不负责工作流编排或媒体生产。
## 项目级创作决定
制作形态、视觉方向、播放面和集长目标确实约束多个阶段时,展示选择及影响后由用户决定。
Look Development 是可选分支,不是进入图片提示词或分镜的固定门槛。
按问题只读取一份相关知识:
- 规则分级与 owner 路由:[规则与路由索引](references/knowhow-index.md)
- 输出语言、稳定 ID、所有权与安全边界:[契约与所有权](references/contract-and-ownership.md)
- 实拍、二维、三维、水墨、Q 版、国漫的形态差异:[制作形态](references/production-form-profiles.md)
- 需要比较代表帧时:[Look Development](references/look-development.md)
- 参考图能控制什么:[参考角色](references/reference-roles.md)
- 遮挡、延迟揭示和观众知情时机:[观众揭示](references/audience-reveal.md)
- 母版、补拍和替代版的职责:[补拍与替代](references/pickup-and-alternate.md)
## 生产与交付边界
外部生产永远保留 `preview -> explicit confirm -> run`。归档只复制用户点名的当前文档和成品,排除
私有输入、凭据、绝对路径与隐藏运行状态;不为归档补造审批、哈希或第二套内容。
用户问“做完了怎么导出/交付给我”时,用 `export` 打包当前状态:
```bash
python3 {技能目录}/scripts/project_tool.py export <project> --out <项目外目录>
```
它把每集现有的五份创作文档和 `剧集/<EP>/制作成果/` 复制到 `--out`,附 `manifest.json` 与
`checksums.sha256`,并排除 `输入/`、`交付/` 和 `.short-drama/`。只要一部分时加
`--episode EP001`(可重复);只要文字时加 `--no-media`;覆盖旧目录加 `--overwrite`。
`--out` 必须在项目之外。
`export` 是**当前状态快照**,manifest 里 `asserts_approval` 恒为 `false`:它不声称任何审查或
创作者接受。需要带审批证据的正式交付包仍然只有 `package`/`verify` 那条路径。
## 安装维护
只有安装、升级或排障时运行 `python3 scripts/selftest.py`。