@oh-story/dsh 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -3
- package/lib/client.js +27 -11
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +141 -136
- package/lib/drama/skills/short-drama/SKILL.md +55 -122
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +24 -78
- package/lib/drama/skills/short-drama/references/creator-documents.md +79 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +51 -77
- package/lib/drama/skills/short-drama/references/knowhow-index.md +2 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +29 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +13 -19
- package/lib/drama/skills/short-drama-assets/SKILL.md +40 -161
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +2 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +10 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +41 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +10 -12
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +6 -65
- package/lib/drama/skills/short-drama-produce/SKILL.md +26 -10
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +49 -240
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +8 -7
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +24 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +5 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +11 -71
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +44 -219
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +3 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +13 -23
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +13 -72
- package/lib/drama/skills/short-drama-write/SKILL.md +73 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/index.js +107 -14
- package/lib/index.js.map +4 -4
- package/lib/oh-story/manifest.json +26 -26
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +11 -11
- package/lib/oh-story/roles/story-architect.md +20 -14
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/story-import/SKILL.md +5 -1
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +1 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +11 -5
- package/lib/oh-story/skills/story-setup/SKILL.md +12 -9
- package/lib/types/client/file-activity.d.ts +5 -0
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/index.d.ts +2 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/package.json +3 -2
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
|
@@ -1,153 +1,86 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: short-drama
|
|
3
|
-
description:
|
|
3
|
+
description: 基于文件系统初始化和继续短剧或漫剧项目,提供 creator-first 五文档路由、本地 Dashboard、制作形态与 Look Development 决策。用户提出“创建/继续短剧项目”“看进度/下一步”“做 Look Development”“打开 dashboard/短剧创作台”“导出制作资料”,或任务跨多个创作阶段时使用;明确的写作、资产、提示词、分镜或审查请求由对应子 skill 直接处理。
|
|
4
4
|
license: MIT
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# 短剧创作路由
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
本技能负责项目初始化、跨阶段路由、制作形态与 Dashboard。各阶段正文由对应 owner 完成。
|
|
10
10
|
|
|
11
11
|
## Quick Start
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
所有项目统一使用 [creator-first 工作流](references/creator-workflow.md):每集按需维护
|
|
14
|
+
`剧本.md`、`视觉设定.md`、`分镜.md`、`图片提示词.md`、`视频提示词.md`,不建立并行的结构化创作真相。
|
|
15
|
+
具体写法见 [五份创作文档](references/creator-documents.md)。
|
|
14
16
|
|
|
15
|
-
|
|
16
|
-
python3 {技能目录}/scripts/selftest.py
|
|
17
|
-
python3 {技能目录}/scripts/project_tool.py init ./my-drama --title "示例短剧"
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
创作者可读内容使用 `short-drama.json#/language`;交给图片或视频生成器的提示词正文使用
|
|
21
|
-
`#/format/prompt_language`。两者互不推断,详见
|
|
22
|
-
[contract-and-ownership.md](references/contract-and-ownership.md#output-language-contract)。
|
|
23
|
-
|
|
24
|
-
## 每次请求的起点
|
|
25
|
-
|
|
26
|
-
1. 使用用户给出的路径,或从当前目录向上寻找最近的 `short-drama.json`。
|
|
27
|
-
2. 运行 `status`,只读完成当前任务所需的直接输入,不批量加载整个项目。
|
|
28
|
-
3. 按用户眼下要完成的工作路由;未安装的阶段技能只影响对应路由,不阻断其他工作。
|
|
29
|
-
4. 明确的单阶段任务直接交给独立安装的对应技能,按创作者要的那一步做。
|
|
30
|
-
|
|
31
|
-
统一预检见 [runtime-preflight.md](references/runtime-preflight.md),创作入口见
|
|
32
|
-
[creator-workflow.md](references/creator-workflow.md),所有权见
|
|
33
|
-
[contract-and-ownership.md](references/contract-and-ownership.md)。
|
|
34
|
-
|
|
35
|
-
## 意图路由
|
|
17
|
+
## 路由
|
|
36
18
|
|
|
37
|
-
|
|
|
19
|
+
| 用户要做什么 | owner / 行为 |
|
|
38
20
|
|---|---|
|
|
39
|
-
| 开发点子、系列承诺、改编和分集地图 | `$short-drama-develop
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
|
|
|
45
|
-
|
|
|
46
|
-
|
|
|
47
|
-
|
|
|
48
|
-
|
|
|
49
|
-
|
|
|
50
|
-
| 校验、审稿或发修订请求 | `$short-drama-review` |
|
|
51
|
-
| 打开创作台、看内容和进度 | `$short-drama dashboard` |
|
|
21
|
+
| 开发点子、系列承诺、改编和分集地图 | `$short-drama-develop`,仅在用户需要时 |
|
|
22
|
+
| 已有多集完整剧本/散稿识别分集 | `$short-drama-develop` 按实际边界建立临时索引 |
|
|
23
|
+
| 分析长篇原著 | `$short-drama-novel-analyze`,仅在用户需要时 |
|
|
24
|
+
| 写或改单集剧本 | `$short-drama-write` → `剧本.md` |
|
|
25
|
+
| 拆人物、造型、地点、道具 | `$short-drama-assets` → `视觉设定.md` |
|
|
26
|
+
| 写资产图片提示词 | `$short-drama-image-prompts` → `图片提示词.md` |
|
|
27
|
+
| 做镜头和冻结关键帧 | `$short-drama-storyboard` → `分镜.md` |
|
|
28
|
+
| 写视频/时间线音乐提示词 | `$short-drama-video-prompts` → `视频提示词.md` |
|
|
29
|
+
| 实际生成媒体 | `$short-drama-produce`,先预览,再显式确认,最后运行 |
|
|
30
|
+
| 审稿或校验 | `$short-drama-review`,仅在用户点名时 |
|
|
31
|
+
| 初始化、Dashboard、归档点名文档 | 本技能 |
|
|
52
32
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
[look-development.md](references/look-development.md)。
|
|
33
|
+
`项目开发/` 中的长材料分析与分集索引是可选分析工作区,不参与单集布局判定;写任何一集仍只维护
|
|
34
|
+
该集的五份 creator-first Markdown。
|
|
56
35
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
视频提示词。只补建对应技能拥有的、确实缺少的必要产物,绝不倒补虚构的创作简报或系列大纲。
|
|
36
|
+
现成剧本可直接拆资产;已有视觉事实可直接写图片提示词或分镜;已有分镜可直接写视频提示词。
|
|
37
|
+
不要为补齐名义流水线伪造上游。
|
|
60
38
|
|
|
61
|
-
|
|
62
|
-
状态,再给出不超过三个有意义的动作,优先能解开当前交付阻塞的那个;不要拿 schema、事务或
|
|
63
|
-
存储格式去问创作者。
|
|
39
|
+
## 执行请求
|
|
64
40
|
|
|
65
|
-
|
|
41
|
+
1. 找到用户给出的项目或资料,只读当前任务的直接输入。
|
|
42
|
+
2. 把用户点名的完整范围交给相应 owner;批次只控制上下文,自动续跑。
|
|
43
|
+
3. 只有真实创作分叉才询问;不要拿 schema、目录、事务或检查器询问创作者。
|
|
44
|
+
4. 范围完成后一次回报完成内容、关键决定、真实未决项和可选下一步。
|
|
45
|
+
5. 不自动开始用户没点名的审查、归档或生产。
|
|
66
46
|
|
|
67
|
-
|
|
68
|
-
视频提示词按各自「每轮的工作单元」分批工作;完成当前批次后报告已覆盖范围、剩余范围与
|
|
69
|
-
下一步,并把控制权交还创作者。下一阶段、审查和生产各自需要明确的后续请求;生产还要先展示
|
|
70
|
-
准确 job 并取得确认。
|
|
47
|
+
## 初始化与 Dashboard
|
|
71
48
|
|
|
72
|
-
|
|
73
|
-
如实标注为自检即可。CLI 只记录 verdict、reviewer 标签和备注,不收集或伪造上下文证明。
|
|
74
|
-
Reviewer 给出证据和修改请求,内容仍由原 owner 修改。
|
|
49
|
+
需要项目配置时运行:
|
|
75
50
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
51
|
+
```bash
|
|
52
|
+
python3 {技能目录}/scripts/project_tool.py init ./my-drama --title "示例短剧"
|
|
53
|
+
```
|
|
79
54
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
3. 将制作形态与视觉方向保持为 `unset`,告诉创作者下一个最有用的选择。
|
|
83
|
-
4. 创作者定下形态、方向、播放面或集长目标后,把这条决定发布并接受为一条创作者决策记录,
|
|
84
|
-
再用 `set-authority` 写回 `short-drama.json`,让下游读到已 `accepted` 的值。
|
|
55
|
+
`init` 只建立配置和空目录;第一次创作时再把文档写入 `剧集/<EP>/`,不预建空文件。
|
|
56
|
+
项目定位与安全写入见 [运行预检](references/runtime-preflight.md)。用户明确要求 Dashboard 时运行:
|
|
85
57
|
|
|
86
|
-
|
|
58
|
+
```bash
|
|
59
|
+
python3 {技能目录}/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
|
|
60
|
+
```
|
|
87
61
|
|
|
88
|
-
|
|
62
|
+
Dashboard 展示和编辑创作文件,不负责工作流编排或媒体生产。
|
|
89
63
|
|
|
90
|
-
|
|
91
|
-
`$short-drama dashboard` 时:
|
|
64
|
+
## 项目级创作决定
|
|
92
65
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
3. 从本技能安装目录运行:
|
|
66
|
+
制作形态、视觉方向、播放面和集长目标确实约束多个阶段时,展示选择及影响后由用户决定。
|
|
67
|
+
Look Development 是可选分支,不是进入图片提示词或分镜的固定门槛。
|
|
96
68
|
|
|
97
|
-
|
|
98
|
-
python3 <short-drama-skill-dir>/scripts/dashboard_server.py --workspace <workspace> --port 0 --open
|
|
99
|
-
```
|
|
69
|
+
按问题只读取一份相关知识:
|
|
100
70
|
|
|
101
|
-
|
|
71
|
+
- 规则分级与 owner 路由:[规则与路由索引](references/knowhow-index.md)
|
|
72
|
+
- 输出语言、稳定 ID、所有权与安全边界:[契约与所有权](references/contract-and-ownership.md)
|
|
73
|
+
- 实拍、二维、三维、水墨、Q 版、国漫的形态差异:[制作形态](references/production-form-profiles.md)
|
|
74
|
+
- 需要比较代表帧时:[Look Development](references/look-development.md)
|
|
75
|
+
- 参考图能控制什么:[参考角色](references/reference-roles.md)
|
|
76
|
+
- 遮挡、延迟揭示和观众知情时机:[观众揭示](references/audience-reveal.md)
|
|
77
|
+
- 母版、补拍和替代版的职责:[补拍与替代](references/pickup-and-alternate.md)
|
|
102
78
|
|
|
103
|
-
|
|
104
|
-
和剧集展示正文、结构化卡片以及已有图片/音频/视频;保存只表示保存文件,不代表创作者确认。
|
|
105
|
-
每次启动使用独立本机会话,项目 API 只接受该会话。参数与安全边界见
|
|
106
|
-
[lifecycle-commands.md](references/lifecycle-commands.md#dashboard-启动)。
|
|
79
|
+
## 生产与交付边界
|
|
107
80
|
|
|
108
|
-
|
|
81
|
+
外部生产永远保留 `preview -> explicit confirm -> run`。归档只复制用户点名的当前文档和成品,排除
|
|
82
|
+
私有输入、凭据、绝对路径与隐藏运行状态;不为归档补造审批、哈希或第二套内容。
|
|
109
83
|
|
|
110
|
-
|
|
84
|
+
## 安装维护
|
|
111
85
|
|
|
112
|
-
|
|
113
|
-
|---|---|
|
|
114
|
-
| `init` | 初始化最小项目 |
|
|
115
|
-
| `status` | 显示项目与产物状态 |
|
|
116
|
-
| `publish` | 原子发布一项产物并记录它的直接输入 |
|
|
117
|
-
| `accept` | 记录创作者接受或拒绝当前版本 |
|
|
118
|
-
| `review` | 记录当前版本的复核结论 |
|
|
119
|
-
| `set-authority` | 把已接受的创作者决策写回制作形态、视觉方向、播放面或集长目标 |
|
|
120
|
-
| `package` | 打包当前已确认且复核通过的文本/JSON |
|
|
121
|
-
| `verify` | 用交付校验和检查打包结果是否被改动 |
|
|
122
|
-
|
|
123
|
-
完整示例见 [lifecycle-commands.md](references/lifecycle-commands.md)。单文件发布用临时文件与
|
|
124
|
-
原子替换完成。
|
|
125
|
-
|
|
126
|
-
## 状态与修订
|
|
127
|
-
|
|
128
|
-
对创作者只使用六种状态:
|
|
129
|
-
|
|
130
|
-
- `draft`:尚未发布;
|
|
131
|
-
- `needs_confirmation`:等待创作者决定;
|
|
132
|
-
- `accepted`:创作者已接受;
|
|
133
|
-
- `revise`:创作者或 reviewer 要求修改;
|
|
134
|
-
- `approved`:当前版本已确认且复核通过;
|
|
135
|
-
- `update_needed`:输出或某个直接输入已经变化,需要重新发布。
|
|
136
|
-
|
|
137
|
-
状态在读取时核对当前文件,不把过期传播写回整个项目。修订时只说明负责技能、语义变化、
|
|
138
|
-
直接受影响的产物和下一步;重新发布会清除该产物旧的接受与复核结果,不触碰无关产物。
|
|
139
|
-
除非诊断需要,不向创作者显示内部 hash 或原始状态文件。
|
|
140
|
-
|
|
141
|
-
## 交付
|
|
142
|
-
|
|
143
|
-
先由 `$short-drama-review` 复核,再用 `package` 打包。包内只收录明确选择的、当前状态为
|
|
144
|
-
`approved` 的文本和 JSON,并记录有意省略项;二进制媒体、非公开输入、机器状态、绝对路径、
|
|
145
|
-
凭据和未批准草稿不进入文本交付包。`verify` 检查清单、校验和及未登记新增文件。
|
|
146
|
-
|
|
147
|
-
## 边界
|
|
148
|
-
|
|
149
|
-
- 图片、视频和 TTS 生产只由 `$short-drama-produce` 在展示准确 job 并取得本次明确确认后执行;
|
|
150
|
-
其他技能不直接调用生成服务。
|
|
151
|
-
- 运行时不检索外部或非公开生产来源。
|
|
152
|
-
- 不把别处案例提升为项目定律。
|
|
153
|
-
- 语义冲突不静默修复;不明外部改动由创作者选择保留或重做。
|
|
86
|
+
只有安装、升级或排障时运行 `python3 scripts/selftest.py`。
|
|
@@ -1,74 +1,21 @@
|
|
|
1
1
|
# 观众此刻可以知道什么
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
背影、门缝、画外声、浅景深和遮挡会决定观众何时知道一个人是谁、看见证据或发现门后有人。
|
|
4
|
+
需要同时防两种错:该给的信息被漂亮构图挡住;不该给的信息被镜头提前泄露。
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
## 一条事实一条判断
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
- 剧本只允许观众先看到鞋和停步位置,结果正脸提前露出来——**不该给的给了**。
|
|
8
|
+
对每个有揭示时机的事实,在对应 `SHOT-...` 下写清:
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
- **事实来源**:来自哪个场景 ID、对白、动作或画面文字;
|
|
11
|
+
- **本镜权限**:现在展示,还是暂时扣住;
|
|
12
|
+
- **可见/可听载体**:观众具体能看到或听到什么;
|
|
13
|
+
- **释放时机**:若暂时扣住,在哪个可见事件后释放;
|
|
14
|
+
- **保护方法**:靠遮挡、景深、画外声、光线或构图怎样实现;
|
|
15
|
+
- **戏剧理由**:为什么这个时机改变理解或压力。
|
|
12
16
|
|
|
13
|
-
|
|
17
|
+
同一镜头里“来者认识主角”和“来者是谁”是两件事:可以让旧称呼先从画外传来,同时让来者的脸
|
|
18
|
+
留在暗处。揉成一句“稍后揭示”,下游就无法分别处理声音和身份。
|
|
14
19
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
同一个镜头里,"这人是谁"和"他手里有什么"是两件独立的事,可以有完全不同的揭示条件。
|
|
18
|
-
揉成一句,下游就只能一起放或一起收——所以 `audience_visibility` **按事实分条**,
|
|
19
|
-
不是每镜一条。
|
|
20
|
-
|
|
21
|
-
每条记录写清五项:
|
|
22
|
-
|
|
23
|
-
| 字段 | 回答什么 |
|
|
24
|
-
|---|---|
|
|
25
|
-
| `fact` | 这条管的是哪一个具体事实 |
|
|
26
|
-
| `source_ref` | 这个揭示义务来自剧本的哪一段 |
|
|
27
|
-
| `permission` | 现在就给(`show_now`)还是先扣住(`withhold_now`) |
|
|
28
|
-
| `carrier` | 观众此刻能看见或听见的是什么 |
|
|
29
|
-
| `reveal_trigger` / `protection_method` / `rationale` | 什么时候放、靠什么扣住、为什么 |
|
|
30
|
-
|
|
31
|
-
### 合成示例
|
|
32
|
-
|
|
33
|
-
一个镜头里,观众要听见有人叫出主角的旧称呼(说明来者认识他),但**不能**看到来者的脸。
|
|
34
|
-
|
|
35
|
-
`audience_visibility` 所在的 `shots.jsonl` 在第一行声明本文件引用到的上游快照:
|
|
36
|
-
|
|
37
|
-
```json
|
|
38
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay.md"}}}
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
数组里每条只写快照键和记录 ID:
|
|
42
|
-
|
|
43
|
-
```json
|
|
44
|
-
[
|
|
45
|
-
{
|
|
46
|
-
"fact": "来者认识主角的旧身份",
|
|
47
|
-
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A02"},
|
|
48
|
-
"permission": "show_now",
|
|
49
|
-
"carrier": "画外一声旧称呼,主角闻声停手",
|
|
50
|
-
"reveal_trigger": "对方开口",
|
|
51
|
-
"rationale": "本镜必须让观众意识到主角被认出来了"
|
|
52
|
-
},
|
|
53
|
-
{
|
|
54
|
-
"fact": "来者是谁",
|
|
55
|
-
"source_ref": {"src": "screenplay", "record_id": "BLK-EP001-SC003-A05"},
|
|
56
|
-
"permission": "withhold_now",
|
|
57
|
-
"carrier": "只有门框边的一只手和影子",
|
|
58
|
-
"protection_method": "来者留在景深之外,不进正面光",
|
|
59
|
-
"reveal_trigger": "下一场推门进屋时",
|
|
60
|
-
"rationale": "身份揭示是场末的转折,提前露脸会让那一下失效"
|
|
61
|
-
}
|
|
62
|
-
]
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
两条各有各的条件:**声音放,脸扣住**。写成一条就做不到这件事。
|
|
66
|
-
|
|
67
|
-
## 不是"神秘感越多越好"
|
|
68
|
-
|
|
69
|
-
扣住信息本身没有价值,它只在为后面某个具体时刻服务时才有价值。所以
|
|
70
|
-
`withhold_now` 必须写出 `reveal_trigger`——说不出什么时候放,就说明这不是设计,
|
|
71
|
-
只是没想清楚。
|
|
72
|
-
|
|
73
|
-
审查时同时核对两侧:原文此刻**允许**透露什么,以及本镜**必须**传达什么。
|
|
74
|
-
只评价构图是否漂亮的审查,抓不到这类缺陷。
|
|
20
|
+
扣住信息本身没有价值;说不出何时释放,就说明还没完成设计。审查时同时核对原文此刻允许透露什么,
|
|
21
|
+
以及本镜必须让观众明白什么。
|
|
@@ -1,94 +1,40 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 契约与所有权
|
|
2
2
|
|
|
3
|
-
##
|
|
4
|
-
|
|
5
|
-
1. Project flow
|
|
6
|
-
2. Runtime path ownership
|
|
7
|
-
3. Output language contract
|
|
8
|
-
4. Stable identities and references
|
|
9
|
-
5. Rule classes
|
|
10
|
-
6. Trust and file safety
|
|
11
|
-
|
|
12
|
-
## Project flow
|
|
3
|
+
## 工作流不是瀑布
|
|
13
4
|
|
|
14
5
|
```text
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
6
|
+
开发? -> 剧本 -> 视觉设定 -> 图片提示词
|
|
7
|
+
\-> 分镜 -> 视频提示词
|
|
8
|
+
\-> 明确确认后的媒体生产
|
|
18
9
|
```
|
|
19
10
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
## Runtime path ownership
|
|
24
|
-
|
|
25
|
-
`project_tool.py` does not contain a registry mapping business paths to skill names. The first published artifact
|
|
26
|
-
claims its output paths in project state, and another artifact cannot silently overwrite those paths. Input,
|
|
27
|
-
delivery and machine-state roots remain protected regardless of owner name.
|
|
11
|
+
可以从任一已有材料直接进入;Look Development 和审查都按需发生。每个 owner 只修改自己的 Markdown,
|
|
12
|
+
引用上游可见事实,但不静默改写它们。
|
|
28
13
|
|
|
29
|
-
|
|
30
|
-
facts but may not silently redefine them. A reviewer requests changes; the responsible skill edits its source.
|
|
14
|
+
## 输出语言
|
|
31
15
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
| Field | Governs | Default |
|
|
16
|
+
| 内容 | 有项目配置时 | 独立任务默认 |
|
|
35
17
|
|---|---|---|
|
|
36
|
-
| `short-drama.json#/language` |
|
|
37
|
-
| `short-drama.json#/format/prompt_language` |
|
|
38
|
-
|
|
39
|
-
Creator-facing prose follows `language`. Prompt bodies follow `prompt_language`. Depicted speech and on-screen text
|
|
40
|
-
come from accepted story/asset facts, not from either description-language setting.
|
|
41
|
-
|
|
42
|
-
## Stable identities and references
|
|
43
|
-
|
|
44
|
-
Use stable IDs such as `EP001`, `SC001`, `BLK-...`, `CHAR-...`, `LOOK-...`, `LOC-...`, `PROP-...`,
|
|
45
|
-
`SHOT-...`, `KEY-...` and `MOTION-...`. Display names may change without changing identity.
|
|
46
|
-
|
|
47
|
-
For cross-artifact references, a file declares each upstream snapshot once, and every reference names that
|
|
48
|
-
declaration plus the record it points at.
|
|
49
|
-
|
|
50
|
-
A `.jsonl` file declares them on its first line:
|
|
51
|
-
|
|
52
|
-
```json
|
|
53
|
-
{"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay-index":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay-index.jsonl"}}}
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
A `.json` file uses a top-level `"sources"` object with the same entries. A reference is then:
|
|
57
|
-
|
|
58
|
-
```json
|
|
59
|
-
{"src": "screenplay-index", "record_id": "BLK-EP001-SC001-A01", "field": "/text"}
|
|
60
|
-
```
|
|
18
|
+
| 创作者可读说明与审查 | `short-drama.json#/language` | 用户当前语言 |
|
|
19
|
+
| 图片、关键帧、视频的可复制正文 | `short-drama.json#/format/prompt_language` | `en` |
|
|
61
20
|
|
|
62
|
-
|
|
63
|
-
file, and one artifact is declared under one key. `owner` and the project-relative `artifact` identify authority.
|
|
64
|
-
`record_id` and `field` are optional selectors, and a reference pointing at a whole artifact keeps `src` alone.
|
|
65
|
-
`authority` (`accepted` or `candidate`) belongs to the individual reference, because one snapshot can be read at
|
|
66
|
-
different authority levels by different references. Do not copy whole authoritative values into consumers, and do
|
|
67
|
-
not create self-references. A `sources` entry names the artifact the file was written against by `owner` and
|
|
68
|
-
`artifact` only — no digest. Bytes are compared by the tool, in lifecycle state and delivery checksums, and that is not
|
|
69
|
-
user-supplied lifecycle evidence and does not drive transitive invalidation.
|
|
21
|
+
两种语言互相独立;画面中的对白和可读文字来自剧本/视觉事实,不由描述语言推断。
|
|
70
22
|
|
|
71
|
-
##
|
|
23
|
+
## 稳定身份与引用
|
|
72
24
|
|
|
73
|
-
-
|
|
74
|
-
|
|
75
|
-
- `craft_default`: usually useful, but creator intent may override it.
|
|
76
|
-
- `taste_option`: present alternatives; never block by itself.
|
|
25
|
+
使用创作者可见的稳定 ID:`EP001-SC001`、`IMG-...`、`SHOT-...`、`MOTION-...`。显示名可以改变,
|
|
26
|
+
身份不因此改变。跨文档引用直接写这些 ID;不写哈希、内部路径、隐藏状态或第二套 record ID。
|
|
77
27
|
|
|
78
|
-
|
|
79
|
-
creator explicitly chose them as format constraints.
|
|
28
|
+
## 规则分级
|
|
80
29
|
|
|
81
|
-
|
|
30
|
+
- `structural_invariant`:本地可证明的引用、ID、算术或显式矛盾;
|
|
31
|
+
- `reviewed_invariant`:需要结合语义证据判断的义务;
|
|
32
|
+
- `craft_default`:通常有效,但创作者可以说明理由覆盖;
|
|
33
|
+
- `taste_option`:表达选择,不能单独阻断。
|
|
82
34
|
|
|
83
|
-
|
|
84
|
-
locally configured adapter without a shell; that adapter owns any provider SDK/API access and reads credentials from
|
|
85
|
-
its environment or system store. Released skills do not retrieve external or private production sources at runtime.
|
|
86
|
-
Do not ship private identifiers, plot passages, prompt sentences, URLs, user data or credentials.
|
|
35
|
+
字数、镜头数、情绪曲线和案例配方不是通用结构门槛。
|
|
87
36
|
|
|
88
|
-
|
|
89
|
-
delivery under `交付/`; neither is an owner publication target. Text/JSON publication validates all sources before
|
|
90
|
-
writing and replaces each target atomically under one project lock. A crash cannot expose a partially written file;
|
|
91
|
-
rerun the command to continue. Unknown external edits are never silently overwritten.
|
|
37
|
+
## 信任与文件安全
|
|
92
38
|
|
|
93
|
-
|
|
94
|
-
|
|
39
|
+
普通创作不联网。实际媒体生产只允许项目外 adapter 读取环境凭据,并始终经过
|
|
40
|
+
`preview -> explicit confirm -> run`。不要把私有输入、凭据、绝对路径或非公开观察写入可交付文档。
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# 五份创作文档
|
|
2
|
+
|
|
3
|
+
这是一份建议格式,不是 schema。优先让人一眼读懂;只有跨文档引用和投产定位需要稳定 ID。
|
|
4
|
+
|
|
5
|
+
## `剧本.md`
|
|
6
|
+
|
|
7
|
+
- 一级标题必须以集号开头,例如 `# EP001 集名`。
|
|
8
|
+
- 每场用 `## EP001-SC001 内 · 地点 · 时间/天气`(空间性质也可写 `外` 或 `内外`)。
|
|
9
|
+
- 对白使用 `角色(可选表演提示):台词`;画外音、画外对白、声音、可见文字、连续性和转场分别使用 `[VO]`、`[OS]`、`[SFX]`、`[画面文字]`、`[连续性]`、`[转场]`,不要把含冒号的动作叙述误写成对白。
|
|
10
|
+
- 不为每段台词生成 block ID,不另写节拍表、索引或录音表;用户明确需要时再做。
|
|
11
|
+
|
|
12
|
+
## `视觉设定.md`
|
|
13
|
+
|
|
14
|
+
按人物、造型、地点和道具分节。每项只写后续生成真正需要保持的识别锚点、当前状态与变化原因,
|
|
15
|
+
不要抄剧情摘要,也不要把瞬时姿势或镜头角度升级成新资产。
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
## 人物 · 江辰
|
|
19
|
+
- 识别锚点:窄长眼、左眉尾旧疤、肩背略绷。
|
|
20
|
+
- 本集造型:深灰旧西装,右袖口有雨水深痕。
|
|
21
|
+
- 状态变化:EP001-SC003 后右手掌沾血。
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## `分镜.md`
|
|
25
|
+
|
|
26
|
+
每镜一个二级标题。镜头 ID 在本集内唯一并保持稳定;修订镜头内容时不要无故换 ID。
|
|
27
|
+
|
|
28
|
+
```markdown
|
|
29
|
+
## SHOT-EP001-001 · 门外停步
|
|
30
|
+
- 来源:EP001-SC001
|
|
31
|
+
- 时长:4s
|
|
32
|
+
- 目的:先让观众看见他不敢进门,再揭示门内争吵。
|
|
33
|
+
- 景别/机位:中近景,门框外侧,轻微低机位。
|
|
34
|
+
- 起点:江辰右手悬在门把上方。
|
|
35
|
+
- 终点:手收回,门内传来玻璃落地声。
|
|
36
|
+
- 参考:IMG-JIANGCHEN-SHEET;IMG-OLD-DOOR;IMG-CORRIDOR-NIGHT。
|
|
37
|
+
|
|
38
|
+
### 冻结关键帧提示词
|
|
39
|
+
> 按项目提示词语言编写的冻结瞬间正文……
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
只写有镜头职责的镜头。关键帧提示词必须与该镜“起点”一致;终点才出现的文字、动作或状态不得
|
|
43
|
+
提前进入静帧,也不要把整段动作塞进静帧。
|
|
44
|
+
|
|
45
|
+
## `图片提示词.md`
|
|
46
|
+
|
|
47
|
+
每项一个可投产的角色板、场景板、道具板或状态图。标题使用 `IMG-...` ID;正文放在
|
|
48
|
+
`### 可复制提示词` 的引用块里,前面只保留用途和参考约束。
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
## IMG-JIANGCHEN-SHEET · 江辰角色板
|
|
52
|
+
- 用途:锁定身份、体态和本集造型。
|
|
53
|
+
- 参考:无;若有参考图,只说明它控制什么。
|
|
54
|
+
|
|
55
|
+
### 可复制提示词
|
|
56
|
+
> 按项目提示词语言编写的正文……
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## `视频提示词.md`
|
|
60
|
+
|
|
61
|
+
与分镜一一对应时沿用镜头号并使用 `MOTION-...` ID。正文只描述从已确认起点到终点的变化,
|
|
62
|
+
不重复静帧已经锁定的外观。
|
|
63
|
+
|
|
64
|
+
```markdown
|
|
65
|
+
## MOTION-EP001-001 · 门外停步
|
|
66
|
+
- 分镜:SHOT-EP001-001
|
|
67
|
+
- 时长:4s
|
|
68
|
+
- 起始帧:SHOT-EP001-001 的冻结关键帧
|
|
69
|
+
- 终点:右手收回;门内玻璃落地;人物视线转向门缝。
|
|
70
|
+
|
|
71
|
+
### 可复制提示词
|
|
72
|
+
> 从右手悬停的已确认起始帧开始……
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## 共通规则
|
|
76
|
+
|
|
77
|
+
- 提示词正文必须可直接复制,不放占位符、流程备注或 QA 结论。
|
|
78
|
+
- 引用使用文档里看得见的场景/镜头/提示词 ID;不写文件哈希和内部路径。
|
|
79
|
+
- 用户没要求的字段不为“完整”而补造。
|
|
@@ -1,82 +1,56 @@
|
|
|
1
|
-
# Creator
|
|
1
|
+
# Creator-first 工作流
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 唯一落盘
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
profile choices. A skill may draft choices, but only the creator or an explicitly authorized delegate can accept
|
|
7
|
-
them. If nobody has decided, keep the artifact pending; do not infer acceptance from silence or from a request to
|
|
8
|
-
preview the whole pipeline.
|
|
5
|
+
每集按需维护五份创作者可读 Markdown:
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
| 阶段 | owner | 文件 |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| 剧本 | `short-drama-write` | `剧集/<EP>/剧本.md` |
|
|
10
|
+
| 视觉资产 | `short-drama-assets` | `剧集/<EP>/视觉设定.md` |
|
|
11
|
+
| 分镜与冻结关键帧 | `short-drama-storyboard` | `剧集/<EP>/分镜.md` |
|
|
12
|
+
| 图片提示词 | `short-drama-image-prompts` | `剧集/<EP>/图片提示词.md` |
|
|
13
|
+
| 视频提示词 | `short-drama-video-prompts` | `剧集/<EP>/视频提示词.md` |
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
没有内容时不预建空文件。一个请求只创建它实际需要的文档;从剧本、视觉设定、分镜或提示词任一
|
|
16
|
+
阶段直接进入都合法,不为补齐名义流水线伪造上游。
|
|
15
17
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
##
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
3. persist a candidate without inventing creator acceptance;
|
|
56
|
-
4. report the included scope, remaining scope and next useful action, then **return control to the creator**.
|
|
57
|
-
|
|
58
|
-
The turn ends at step 4. A creator message such as “continue” authorizes the next bounded unit. The next owner
|
|
59
|
-
stage, review and production each begin on their own explicit request; review also runs when an explicitly
|
|
60
|
-
requested delivery needs a verdict. Undecided work stays in `needs_confirmation`, and delivery waits until the
|
|
61
|
-
creator accepts the relevant outputs.
|
|
62
|
-
|
|
63
|
-
For a revision:
|
|
64
|
-
|
|
65
|
-
1. identify the artifact and owner;
|
|
66
|
-
2. read only its direct current inputs;
|
|
67
|
-
3. show the semantic change and what should remain unchanged;
|
|
68
|
-
4. let the owner publish the revision;
|
|
69
|
-
5. request creator acceptance when canonical meaning changed;
|
|
70
|
-
6. report whether a separate bounded review is still needed; do not start it automatically.
|
|
71
|
-
|
|
72
|
-
Changing an upstream file does not recursively rewrite project state. A consumer that directly recorded that file
|
|
73
|
-
shows `update_needed`; republish the consumer when the creator actually wants it refreshed.
|
|
74
|
-
|
|
75
|
-
Rendered prompt Markdown is a view of its structured spec. If someone edits the rendered view, either regenerate
|
|
76
|
-
it, adopt the change into the spec, or reconcile both explicitly.
|
|
77
|
-
|
|
78
|
-
## Delivery boundary
|
|
79
|
-
|
|
80
|
-
Deliver only explicitly selected, current, approved text and JSON in the text package. Produced media remains in
|
|
81
|
-
its project production directory and may be exported by a separate creator-approved media handoff. Exclude private
|
|
82
|
-
sources, credentials, absolute paths and machine state. `verify` checks checksums; it does not judge creative quality.
|
|
18
|
+
单集创作主链不落盘 JSON/JSONL、索引、指纹、覆盖表、QA 报告、审核表、交接胶囊或恢复状态。
|
|
19
|
+
需要 ID 时写进 Markdown 标题;结构检查和批次状态留在本轮上下文,不成为第六份创作文档。建议
|
|
20
|
+
写法见 [五份创作文档](creator-documents.md)。
|
|
21
|
+
|
|
22
|
+
长篇原著拆解或多集材料识别可以在 `项目开发/` 使用机器索引;它们是用户点名时才建立的可选分析
|
|
23
|
+
工作区,不是单集创作真相。其存在不会改变 `剧集/<EP>/` 的五文档布局,也不能要求单集 owner
|
|
24
|
+
补造并行结构化产物。
|
|
25
|
+
|
|
26
|
+
创作者说明跟随项目语言。图片、关键帧和视频的可复制正文跟随 `prompt_language`;没有
|
|
27
|
+
`short-drama.json` 时默认使用 `en`,同一任务保持一致。两种语言互相独立,不能用一个推断另一个。
|
|
28
|
+
|
|
29
|
+
## 请求范围
|
|
30
|
+
|
|
31
|
+
用户点名的范围就是本轮范围。“写完这一集”完成整集;“从剧本做到视频提示词”依次完成所点名
|
|
32
|
+
阶段。场次、资产组和镜头组只是内部上下文批次,通过后自动继续,不逐批交还控制权,也不为每个
|
|
33
|
+
中间文件另开接受、审查或 QA 回合。
|
|
34
|
+
|
|
35
|
+
只在三处停下:
|
|
36
|
+
|
|
37
|
+
1. 点名范围已经完成;
|
|
38
|
+
2. 缺失事实形成会显著改变剧情或视觉方向的真实创作分叉;
|
|
39
|
+
3. 下一步会调用外部生产,必须先展示精确 job 并取得显式确认。
|
|
40
|
+
|
|
41
|
+
结构检查服务于发现错误,不是创作门禁。能在当前文档直接修正的问题直接修正;审查、归档和媒体
|
|
42
|
+
生产只有用户点名时开始。安装 selftest、全量 QA 和 demo 验证属于技能维护,不属于普通创作请求。
|
|
43
|
+
|
|
44
|
+
## 创作质量
|
|
45
|
+
|
|
46
|
+
简化文件数量不等于降低内容标准。各 owner 按具体问题读取自己的 craft references,检查剧情因果、
|
|
47
|
+
人物声音、资产身份、空间连续性、镜头职责、可生成性和提示词边界。规则与路由总表见
|
|
48
|
+
[knowhow-index.md](knowhow-index.md)。最终回报只说明已完成范围、关键创作决定、真实未决问题和可选
|
|
49
|
+
下一步,不汇报内部流水线噪音。
|
|
50
|
+
|
|
51
|
+
## 生产边界
|
|
52
|
+
|
|
53
|
+
图片、视频、TTS 和音乐生产仍遵守 `preview -> explicit confirm -> run`。生产工具可以在隐藏运行目录
|
|
54
|
+
保存 job、确认和审计记录;这些是付费/外部副作用的必要边界,不要求模型把创作内容再抄成长期
|
|
55
|
+
JSON/JSONL。job 必须把拥有当前提示词的 Markdown 写入 `source`,输出写到
|
|
56
|
+
`剧集/<EP>/制作成果/`;任何提示词、参数、输入或输出路径变化都需要重新预览和确认。
|