@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.
Files changed (99) hide show
  1. package/README.md +5 -3
  2. package/lib/client.js +27 -11
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/manifest.json +141 -136
  5. package/lib/drama/skills/short-drama/SKILL.md +55 -122
  6. package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
  7. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +24 -78
  8. package/lib/drama/skills/short-drama/references/creator-documents.md +79 -0
  9. package/lib/drama/skills/short-drama/references/creator-workflow.md +51 -77
  10. package/lib/drama/skills/short-drama/references/knowhow-index.md +2 -0
  11. package/lib/drama/skills/short-drama/references/look-development.md +2 -3
  12. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
  13. package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
  14. package/lib/drama/skills/short-drama/references/reference-roles.md +29 -135
  15. package/lib/drama/skills/short-drama/references/runtime-preflight.md +13 -19
  16. package/lib/drama/skills/short-drama-assets/SKILL.md +40 -161
  17. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
  18. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
  19. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
  20. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -12
  21. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
  22. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +2 -2
  23. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +10 -105
  24. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
  25. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +41 -155
  26. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
  27. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +10 -12
  28. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
  29. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
  30. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
  31. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
  32. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
  33. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
  34. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
  35. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +6 -65
  36. package/lib/drama/skills/short-drama-produce/SKILL.md +26 -10
  37. package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
  38. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
  39. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
  40. package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
  41. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
  42. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
  43. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
  44. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -19
  45. package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
  46. package/lib/drama/skills/short-drama-storyboard/SKILL.md +49 -240
  47. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
  48. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  49. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
  50. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +8 -7
  51. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +24 -62
  52. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
  53. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +5 -23
  54. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
  55. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
  56. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +11 -71
  57. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +44 -219
  58. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
  59. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +3 -5
  60. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
  61. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +13 -23
  62. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
  63. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +2 -3
  64. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
  65. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +13 -72
  66. package/lib/drama/skills/short-drama-write/SKILL.md +73 -268
  67. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
  68. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
  69. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
  70. package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
  71. package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
  72. package/lib/index.js +107 -14
  73. package/lib/index.js.map +4 -4
  74. package/lib/oh-story/manifest.json +26 -26
  75. package/lib/oh-story/roles/character-designer.md +4 -4
  76. package/lib/oh-story/roles/narrative-writer.md +11 -11
  77. package/lib/oh-story/roles/story-architect.md +20 -14
  78. package/lib/oh-story/roles/story-explorer.md +8 -5
  79. package/lib/oh-story/skills/story-import/SKILL.md +5 -1
  80. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +1 -1
  81. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +1 -1
  82. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
  83. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +1 -1
  84. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +1 -0
  85. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +11 -5
  86. package/lib/oh-story/skills/story-setup/SKILL.md +12 -9
  87. package/lib/types/client/file-activity.d.ts +5 -0
  88. package/lib/types/client/file-activity.d.ts.map +1 -1
  89. package/lib/types/client/index.d.ts.map +1 -1
  90. package/lib/types/index.d.ts +2 -1
  91. package/lib/types/index.d.ts.map +1 -1
  92. package/lib/types/reference-tool.d.ts +6 -0
  93. package/lib/types/reference-tool.d.ts.map +1 -0
  94. package/lib/types/role-provider.d.ts.map +1 -1
  95. package/lib/types/role-tool.d.ts +3 -1
  96. package/lib/types/role-tool.d.ts.map +1 -1
  97. package/lib/types/skill-provider.d.ts.map +1 -1
  98. package/package.json +3 -2
  99. package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
@@ -35,6 +35,7 @@
35
35
  | 多人场次的可辨识度与主角缺席场 | `$short-drama-write` | 一场里人多到分不清谁在与谁交手,或某场/某集不给主角 | 不决定站位、景别与镜头切换;那属于分镜 |
36
36
  | 场次声音戏剧 | `$short-drama-write` | 声源、留白或 sound bridge 承担故事信息与压力 | 不替逐镜实现或混音,不让配乐替代表演 |
37
37
  | 剧本生产标签 | `$short-drama-write` | 规范化对白、动作、VO/OS、文字与连续性 | 不借格式补造剧情 |
38
+ | 有限行动单位与精确时限 | `$short-drama-write` | 题面明确给出可核对的次数、轮次、节拍或字面死线 | 按完成状态与题面约定检查,不把定性压力升级为数字或主动增加计数结构 |
38
39
  | 资产出现证据 | `$short-drama-assets` | 从剧本拆角色、地点、道具与状态 | 不用名词/人名匹配直接建资产 |
39
40
  | 身份、变体与复用 | `$short-drama-assets` | 决定复用、新变体、新身份或未决 | 相机角度通常不是资产变体 |
40
41
  | 资产图片提示词 | `$short-drama-image-prompts` | 把已接受资产投影为单帧可见规格 | 不承载有先后顺序的剧情动作 |
@@ -43,6 +44,7 @@
43
44
  | 镜头目的与覆盖 | `$short-drama-storyboard` | 从剧本建立有动机的镜头 | 不为景别多样性硬拆镜 |
44
45
  | 场次视觉计划与 Coverage Audition | `$short-drama-storyboard` | 关键场次需先比较观众立场、信息时机、空间、摄影与声音运动 | 可选中间层,不拥有剧本事实或 shot 边界,不规定宫格/镜头数 |
45
46
  | 冻结关键帧 | `$short-drama-storyboard` | 写镜头起点的可冻结瞬间 | 不写动作链或镜头终态 |
47
+ | 漫剧关键帧视觉词表 | `$short-drama-storyboard` | 视觉方向已接受为漫剧/二维漫画形态,要为关键帧稳定投影共享画风与当前可读性约束 | 全部是 `taste_option` 选项,不设质量门槛,不替代身份、地理与边界事实 |
46
48
  | 多人场面调度与交付面遮挡 | `$short-drama-storyboard` | 多人、群体、证据揭示、动态物体场面,或竖屏播放面会叠加遮挡 | 不把一个布局复用于所有题材;遮挡区来自已声明交付方案,不设通用安全框 |
47
49
  | 视频运动规格 | `$short-drama-video-prompts` | 把已接受镜头边界写成时间变化 | 不改镜头、资产或剧本权威 |
48
50
  | 交付容器与分段算术 | `$short-drama-video-prompts` | 项目声明了分段或多镜打包的交付方式 | 打包方式不改写镜头边界与可审查性 |
@@ -28,9 +28,8 @@ Look development 不是给全剧粘一个风格标签,也不是让参考图接
28
28
  - **失效信号**:身份锚点被吞、群像层级打平、冲突场景只剩氛围等可观察风险。
29
29
 
30
30
  删除风格名称后,如果材质、光、色、边缘和空间写法没有任何变化,这个方向仍只是标签。
31
- 创作者接受后,把选择写入
32
- `short-drama.json#/creator_authority/visual_direction/choices/look_development`;候选提示词本身
33
- 不具有 creator authority。
31
+ 创作者选定后,把可观察的稳定项、允许变化和失效信号写入 `视觉设定.md` 的“项目视觉方向”;
32
+ 候选提示词本身不能反向改写人物身份、地点地理或剧情事实。
34
33
 
35
34
  ## 权限边界
36
35
 
@@ -1,58 +1,24 @@
1
1
  # 母版、补拍与替代版
2
2
 
3
- 一个已接受的镜头在制作过程中经常要重做一部分。重做出来的那一版,和原来那一版是什么关系,
4
- 必须写清楚——因为它决定了**原文要求还有没有人负责**。
5
-
6
- 三种关系:
7
-
8
3
  | 版本 | 承担什么 | 默认关系 |
9
4
  |---|---|---|
10
- | `master`(母版) | 已确认镜头的**全部**原文要求 | — |
11
- | `pickup`(补拍) | 只补一个动作、反应、构图或效果片段 | 与母版**并存**,不替代 |
12
- | `alternate`(替代版) | 同一项要求的另一种实现 | 是否替代**必须另行决定** |
13
-
14
- ## 危险不在"变短",在悄悄变成母版
15
-
16
- 缩小提示词范围往往是**正确**的修复:三人同框、复合动作或大范围变化做不出来时,
17
- 收成一个可控的瞬间是专业做法。
18
-
19
- 出问题的是另一件事——把这个缩小版当成完整母版归档。此后没有人再去看原文里那些
20
- 它没有承担的要求,而它们已经不在任何一版的责任范围内了。**没有报错,只是那部分内容
21
- 从此不会被拍出来。**
22
-
23
- 举个例子:母版是"甲当着乙和丙的面把账页拍在桌上,乙别开视线,丙起身"。做不出来,
24
- 于是改成一个特写:"一只手把账页拍在桌上"。这个特写本身没问题——问题是原文里的
25
- "乙别开视线"和"丙起身"现在无人认领。
26
-
27
- ## 所以补拍要逐项交代去向
28
-
29
- 普通母版**不写** `coverage_scope`。只有补拍或替代版需要,写清四件事:
30
-
31
- 1. `master_motion_id`:它补的是哪一版;`supplements_motion_ids`:它实际补上了哪几段。
32
- 2. `source_obligations`:把原文要求**逐项列出**——动作、反应、对白、揭示、项目要求、
33
- 结束边界,每项带准确的 `source_ref`。
34
- 3. 每项要求的 `disposition`,以及它当前落在哪个 `motion_field`:由本版本承担 /
35
- 留在母版 / 交给另一个补拍版本 / 必须退回分镜修改。**不允许留空**。
36
- 4. `replacement_intent`:只能**提出**替代请求。
37
-
38
- 接着上面的例子,那个特写版的 `source_obligations` 大致是这样:
5
+ | 母版 | 当前镜头的全部原文要求 | 当前主要版本 |
6
+ | 补拍 | 补一个动作、反应、构图或效果 | 与母版并存,不替代 |
7
+ | 替代版 | 同一要求的另一种实现 | 必须明确比较后才能替代 |
39
8
 
40
- | 原文要求 | `disposition` |
41
- |---|---|
42
- | 甲把账页拍在桌上 | 本版本承担 |
43
- | 乙别开视线 | 留在母版 |
44
- | 丙起身 | **退回分镜修改**——本版本和母版都没有拍到 |
9
+ 缩小提示词范围经常是正确修复。危险不是“变短”,而是把只拍了一部分的版本悄悄当成母版,使未被
10
+ 它承担的对白、反应、揭示或终点从此无人负责。
45
11
 
46
- 第三行就是这套记账存在的理由:它把"丢了一条"变成一件写在纸面上、必须有人处理的事,
47
- 而不是一个没人发现的空缺。若缩小范围丢掉的信息确实没有其他镜头承担,就退回分镜改边界——
48
- 不能靠改名叫"特写版"让它消失。
12
+ ## 补拍必须逐项交代去向
49
13
 
50
- ## 谁能决定替代
14
+ 在 `视频提示词.md` 中为补拍或替代版使用稳定 `MOTION-...` ID,并写清:
51
15
 
52
- 补拍默认 `does_not_replace_master`。
16
+ 1. 它对应哪个母版;
17
+ 2. 原文要求逐项由本版本、母版、另一补拍承担,还是必须退回分镜;
18
+ 3. 本版本的准确起点、终点和保持项;
19
+ 4. 它是补充还是请求替代。
53
20
 
54
- 替代版想取代母版时,由**reviewer**核对全部要求后,在下游审查结论的
55
- `supersession_decisions` 里指名替代版与母版的记录再作决定。运动规格文件
56
- **不回写**这个结论——否则两个文件互相引用,依赖方向就成了环。
21
+ 例如母版要求“甲拍下账页,乙别开视线,丙起身”,补拍只拍手部特写,那么甲的动作由补拍承担,
22
+ 乙的反应留在母版,丙的动作若两边都没有,就必须退回分镜。不能靠改名让遗漏消失。
57
23
 
58
- 一句话:运动规格可以申请,不能自己批准。
24
+ 补拍默认不替代母版;是否替代由后续审查结合全部故事义务判断,不能由运动提示词自己批准。
@@ -21,7 +21,7 @@
21
21
  不产生 ID,也不能创造新的 `structural_invariant`。卡片里写作“硬规则/硬约束”的条目,
22
22
  指的是它在投影一条**已经登记**的身份或连续性不变式(见 [knowhow-index.md](knowhow-index.md)),
23
23
  按那条原规则的等级执行;比例、rig 能力、头身比一类是**本项目的制作约束**,由创作者
24
- 在 `creator_authority` 中确认后生效,不是套件层规则。审查者不得单凭形态卡阻断交付。
24
+ 写入 `视觉设定.md` 的“项目视觉方向”后才对本项目生效,不是套件层规则。审查者不得单凭形态卡阻断交付。
25
25
 
26
26
  ## 先写一张 production-form card
27
27
 
@@ -1,142 +1,36 @@
1
1
  # 一张参考图可以决定什么
2
2
 
3
- ## 目录
3
+ 绑定参考图等于告诉下游“哪些地方照着它”。不说明边界,身份参考会越权决定服装、构图、背景或文字。
4
4
 
5
- - [绑定前先回答四个问题](#绑定前先回答四个问题)
6
- - [绑定不等于看过](#绑定不等于看过)
7
- - [两种观察不能混成一条](#两种观察不能混成一条)
8
- - [每种用途允许借用什么](#每种用途允许借用什么)
9
- - [多图、联系表与首尾帧](#多图联系表与首尾帧)
10
- - [审查顺序](#审查顺序)
5
+ ## 每张参考回答四个问题
11
6
 
12
- 绑定一张参考图,等于告诉下游"照着它写"。问题是"照着"到底指哪些内容——同一张人物定妆照,
13
- 可以用来定脸,也可能被当成定构图、定服装、定表情,甚至把图里背景一起搬走。
14
- 不说清楚,下游只能猜;猜错了不会报错,只会拍错。
7
+ 1. 它的稳定可见 ID 是什么,例如 `IMG-JIANGCHEN-SHEET`;
8
+ 2. 本次参考身份、造型状态、地点地理、构图、尺度、效果、起点、终点还是风格;
9
+ 3. 哪些可见内容允许照着写;
10
+ 4. 哪些身份、文字、人数、道具和空间锚点不能跟着变。
15
11
 
16
- 本文只回答两件事:一次绑定要写清什么,以及每种用途各自允许借用什么。
17
- 观众何时能知道某件事见 [audience-reveal.md](audience-reveal.md);
18
- 一个缩小范围的版本是否仍算母版见 [pickup-and-alternate.md](pickup-and-alternate.md)。
12
+ 同一张图承担两个作用时分开说明,不写“全参考”。
19
13
 
20
- ## 绑定前先回答四个问题
21
-
22
- 1. **它是哪一条记录**:写准确的产物引用与记录 ID,不是"参考图二"。
23
- 2. **这次参考它的什么**:身份、造型状态、地点方位、构图、尺度、效果还是起始帧。
24
- 3. **哪些内容可以照着写**:在 `may_control` 里列出这次确实要参考的可见内容。
25
- 4. **哪些内容不能跟着变**:在 `must_not_control` 里保护身份、文字、人数、道具和空间锚点。
26
-
27
- 同一张图若要承担两个不同作用,拆成两条绑定分别审查,不写"全参考"。
28
-
29
- ### 绑定不等于看过
30
-
31
- `artifact_ref` 只说明绑定了哪条文本记录,**不能证明智能体真的看过那张图**。所以每条绑定
32
- 还要写清证据到了哪一步:
33
-
34
- | `admission_status` | 什么情况 | 可以下什么结论 |
14
+ | 用途 | 可以控制 | 默认不能控制 |
35
15
  |---|---|---|
36
- | `creator_described` | 创作者或图片权利人给了可核对的画面说明 | 按说明内容判断 |
37
- | `visually_inspected` | 运行环境获授权检查输入参考图并完成检查 | 按检查记录判断 |
38
- | `unverified` | 只有 JSON 或文字描述,媒体不可见或没有授权 | **不得**声称像素、文字、水印或裁切已通过 |
39
-
40
- 前两种都要绑定准确的 `reference_observation_ref`,记录所看的文件、检查区域、
41
- 文字处理结论、检查方式与未决风险,格式见
42
- [reference-observation.example.jsonl](../assets/reference-observation.example.jsonl)。
43
-
44
- ### 两种观察不能混成一条
45
-
46
- 输入准入记录固定写 `observation_kind: input_reference`——它只支持"这张参考图上有什么"。
47
-
48
- 若创作者另行提供某个准确提示词/规格版本下的授权**生产**观察,用独立的
49
- [production-observation.example.jsonl](../assets/production-observation.example.jsonl),写
50
- `observation_kind: generated_result`、`evidence_state: active`,并绑定 prompt/spec、
51
- 稳定参考槽位与制作配置。
52
-
53
- `evidence_state: active` 只表示这份证据仍可使用,**不表示产物通过或被接受**。
54
-
55
- 两种观察不能混为一条:一条讲输入里有什么,另一条讲某次结果发生了什么,能支持的结论
56
- 完全不同。任务成功、结果地址或文件存在,都不能代替其中任何一种。
57
-
58
- 两条容易被绕过的边界:
59
-
60
- - **检查输入参考 ≠ 生成图片,也 ≠ 验收成片**。 三件事各自需要各自的证据。
61
- - **负面提示词擦不掉参考图上已有的像素**。 图里有水印就是有水印,写"不要文字"不会让它消失;
62
- 要么裁切、清理、遮罩、替换,要么退回参考图归属方决策。
63
-
64
- ## 每种用途允许借用什么
65
-
66
- | 用途 | 可以借用 | 默认不可借用 |
67
- |---|---|---|
68
- | `identity` | 稳定脸型、体态、识别标记 | 临时服装、姿势、场景、画中文字 |
69
- | `look_state` | 已接受的造型,或伤损、湿污等状态 | 新身份、无来源道具、背景方位 |
70
- | `geography` | 入口、区域、固定锚点、方向关系 | 图中临时人物、光线以外的故事状态 |
71
- | `composition` | 占画比例、视线布局、镜头所在一侧、留白 | 图中人物是谁、穿什么、发生什么 |
72
- | `scale` | 主体之间或主体与环境的相对尺度 | 风格、身份、数量、动作结果 |
73
- | `effect` | 已接受效果的形态、范围或材质表现 | 非目标对象的消失、复制或变形 |
74
- | `start_frame` | 本镜已接受的起始构图与可见状态 | 尚未发生的动作、终态或下一镜事实 |
75
- | `end_frame` | 本镜 `end_boundary` 已接受的投影 | 新终点、未由镜头承担的动作结果 |
76
- | `style` | 色彩层级、材质处理、阴影边缘、景深倾向、画面密度 | 角色身份、固定地理、剧情状态、道具文字 |
77
-
78
- "只参考构图"是有效而且重要的边界:可以借用前景/背景占比和压迫关系,同时明确不导入图中
79
- 角色、服装、道具、文字与事件。尺度也优先写成可比较的空间关系、遮挡和画面占比;
80
- 具体比例只有被创作者或项目配置接受后才是约束,不能从案例总结成通用数字。
81
-
82
- ### 合成示例
83
-
84
- 一张剧照要用来定"谁站在画面哪一侧、占多大",但图里那个人不是本镜的角色。
85
-
86
- 这条绑定所在的文件在第一行声明它引用到的上游快照:
87
-
88
- ```json
89
- {"record_type":"sources","schema_version":"1.0.0","sources":{"keyframes":{"owner":"short-drama-storyboard","artifact":"剧集/EP001/storyboard/keyframes.jsonl"}}}
90
- ```
91
-
92
- 之后每条绑定只写快照键、记录 ID 和这一条自己的 `authority`:
93
-
94
- ```json
95
- {
96
- "slot_id": "REF-COMPOSITION-01",
97
- "order": 1,
98
- "artifact_ref": {
99
- "src": "keyframes",
100
- "record_id": "KEY-012",
101
- "authority": "candidate"
102
- },
103
- "role": "composition",
104
- "may_control": ["主体占画比例", "镜头所在一侧", "留白位置"],
105
- "must_not_control": ["角色身份", "服装", "道具文字", "故事状态"],
106
- "admission_status": "unverified",
107
- "reference_observation_ref": null,
108
- "unresolved_risks": ["尚无对该图文字/水印的检查记录"]
109
- }
110
- ```
111
-
112
- 这条绑定的意思是:**照着它排版,不要照着它选人**。 若它同时还要负责这个角色的长相,
113
- 就再写一条 `role: identity` 的绑定,而不是把 `may_control` 加长。
114
-
115
- ## 多图、联系表与首尾帧
116
-
117
- 多张图可能是三种完全不同的东西,不能因为排在一张版面里就混成一个资产:
118
-
119
- - **一组参考绑定**:各自有各自的用途;
120
- - **方便人工浏览的联系表**:只是交付包装,每格仍保留自己的 artifact、用途和文字政策;
121
- - **同一段运动的起止边界**:见下。
122
-
123
- 每条绑定使用稳定 `slot_id` 和显式 `order`。数组重排、插入新参考或联系表换版时**不得改变
124
- 已有槽位的语义**——重排不会报错,只会拍错。固定九宫格也不是叙事密度公式,格间顺序不能
125
- 替代独立镜头的起止边界。
126
-
127
- 首尾帧契约是"**默认 start,按需 end**":关键帧默认 `boundary_role: start`。执行方式确实需要
128
- 首尾帧时,storyboard owner 可以增加 `boundary_role: end` 的关键帧;它只投影同一镜头已接受的
129
- `end_boundary`,**不是第二个终点权威**,也不能从动作说明自行发明。视频提示词可按
130
- `role: end_frame` 只读绑定这条记录,终点报告仍然对照 shot 的 `end_boundary`。
131
-
132
- 动作跨度过大、或关键动作只存在于首尾插值的空隙里时,先拆镜——不能让尾帧替镜头承担动作本身。
133
-
134
- ## 审查顺序
135
-
136
- 1. 引用与 `authority` 能否解析;
137
- 2. 每条绑定的用途、可借用内容、不可照搬内容是否写清;
138
- 3. 观察记录是否存在,没有证据是否老实保持 `unverified`;
139
- 4. 最后才评价措辞与审美。
140
-
141
- 不要用引用数量、固定裁切方式、关键词清单或提示词长度代替这些判断,也不要从文字规格声称身份或特效
142
- 在真实成片里已经成功。
16
+ | 身份 | 稳定脸型、体态、识别标记 | 临时服装、姿势、场景、文字 |
17
+ | 造型状态 | 已决定的服装、伤损、湿污 | 新身份、无来源道具、背景方位 |
18
+ | 地理 | 入口、区域、固定锚点、方向关系 | 临时人物、剧情状态 |
19
+ | 构图 | 占画比例、视线布局、镜头一侧、留白 | 人物身份、服装、道具文字 |
20
+ | 尺度 | 主体之间或主体与环境的相对尺度 | 风格、身份、数量、动作结果 |
21
+ | 效果 | 已决定效果的形态、范围、材质 | 非目标对象的消失、复制或变形 |
22
+ | 起始帧 | 本镜起始构图与状态 | 尚未发生的动作和终态 |
23
+ | 结束帧 | 本镜明确终点 | 新终点或未由镜头承担的结果 |
24
+ | 风格 | 色彩层级、材质、阴影边缘、景深、密度 | 身份、固定地理、剧情、道具文字 |
25
+
26
+ ## 观察边界
27
+
28
+ 创作者或权利人给出的可核对说明可以作为文字证据;运行环境获授权看过参考图时,可以报告实际可见
29
+ 内容。两者都没有时保持“未验证”,不得声称水印、文字、裁切或身份已经通过。负面提示词不能擦掉
30
+ 参考图已有的像素。
31
+
32
+ 多张图需要稳定 ID 和明确顺序;联系表只是浏览包装,不改变每张图自己的用途。首尾帧默认只使用起点;
33
+ 确实需要终点帧时,它只能投影 `SHOT-...` 已写明的终点,不能自行发明结果。
34
+
35
+ 观众知情时机见 [观众揭示](audience-reveal.md),补拍是否能替代母版见
36
+ [补拍与替代](pickup-and-alternate.md)。
@@ -1,27 +1,21 @@
1
- # 项目定位与发布纪律
1
+ # 项目定位与安全写入
2
2
 
3
- core 只管理当前项目的目录、生命周期和交付。
3
+ ## 定位项目
4
4
 
5
- ## 1. 读取项目状态
5
+ 优先使用用户给出的项目路径;没有项目时可以直接在用户指定目录完成独立任务。需要项目配置时运行:
6
6
 
7
- 定位 `short-drama.json` 后运行:
8
-
9
- ```text
10
- python3 <core>/scripts/project_tool.py status <project>
7
+ ```bash
8
+ python3 <core>/scripts/project_tool.py init <project> --title "项目名"
11
9
  ```
12
10
 
13
- 使用 `status.layout.roots` 返回的项目目录。`mode=mixed` 表示中英文阶段目录并存,应先合并;
14
- 空项目在第一次阶段发布时固定布局。只读取本次任务需要的直接输入。
11
+ 创作文档固定写入 `剧集/<EP>/`。只读取当前任务需要的直接输入;不要扫描整个项目寻找可补造的上游。
15
12
 
16
- ## 2. 通过公开命令写入
13
+ ## 写入纪律
17
14
 
18
- - owner 用 `publish` 原子发布一项产物,并用可重复的 `--input <project-path>` 声明直接输入。
19
- - `accept` 只记录创作者对当前输出的接受或拒绝。
20
- - `review` 只记录当前输出的复核结论;reviewer 不直接改 owner 文件。
21
- - 输入或输出变化后,该产物显示 `update_needed`,重新发布即可;不递归改写下游状态。
22
- - `package` 只收录当前 `approved` 的文本/JSON,不能替代接受或复核。
23
- - 第一次发布由任意非空 owner 认领合法阶段路径,此后这条路径归该 owner。
24
- - 同一项目路径仍只能属于一个 artifact,输入、交付和机器状态目录仍受保护。
15
+ - 创作正文直接写五份 Markdown,修改时保留未受影响内容与稳定可见 ID。
16
+ - 输入目录、隐藏运行目录、制作成果和凭据不是创作正文;不要把它们复制进提示词。
17
+ - 文本写入使用临时文件加原子替换;外部编辑发生时先重新读取,不静默覆盖。
18
+ - Dashboard 只展示和编辑项目文件,不承担创作路由或生产授权。
19
+ - 外部生产仍由 `$short-drama-produce` 预览精确任务、取得显式确认后执行。
25
20
 
26
- 完整参数见 [lifecycle-commands.md](lifecycle-commands.md),权威边界见
27
- [contract-and-ownership.md](contract-and-ownership.md)。
21
+ 输出语言、稳定 ID 与信任边界见 [契约与所有权](contract-and-ownership.md)。
@@ -1,187 +1,66 @@
1
1
  ---
2
2
  name: short-drama-assets
3
- description: "从短剧剧本拆解并统筹角色/造型、场景/视图、道具/状态、可选的角色声音方向和跨场连续性。用户说‘拆角色/场景/道具’、‘做资产表/角色表/场景表/道具表’、‘判断复用还是新变体’、‘更新造型/道具状态’、‘给角色定声音/音色/绑定参考音频/做配音选角表’,或拿现成剧本直接做视觉资产准备时使用;本 skill 不写资产图提示词,不生成图片或视频,也不合成音频、不调用任何语音服务。"
3
+ description: 从短剧剧本拆出人物/造型、地点/视图、道具/状态和跨场连续性,写成创作者可读的视觉设定。用户说“拆角色/场景/道具”“做资产设定”“判断复用还是新变体”“更新造型/道具状态”,或拿现成剧本直接做视觉资产准备时使用;不写图片提示词,不生成媒体。
4
4
  license: MIT
5
5
  ---
6
6
 
7
7
  # 短剧资产拆解
8
8
 
9
- 把剧本文字变成**可追溯、可复用、能接续状态**的生产资产。重点不是数出
10
- 多少人名和名词,而是回答:屏幕上具体需要什么、它与已有资产是不是同一个、
11
- 此刻是哪种造型/视图/状态,以及变化怎样传到下一场和下一集。
12
-
13
- ## 开始前
14
-
15
- 本技能可独立安装和执行。先读取用户明确提供的剧本、既有资产与本任务直接输入;若当前目录
16
- 是 `short-drama` 项目且项目工具可用,可以读取 `status` 并使用其发布生命周期,但缺少 core
17
- 或任何其他技能都不是资产拆解的阻断条件。[阶段契约](references/stage-contract.md) 给出
18
- 本阶段边界、制作形态输入与规则表,无需读取其他技能的文件。
9
+ 把剧本文字变成可复用、可持续的视觉事实,统一写入 `剧集/<EP>/视觉设定.md`。不要把每次出场都
10
+ 变成新资产,也不要抢写剧本语义、镜头走位或生成提示词。
19
11
 
20
12
  ## Quick Start
21
13
 
22
- 先复制 `examples/minimal/` 的原生 Character/Look JSONL,再修改为当前资产。发布前运行:
23
-
24
14
  ```text
25
- python3 {技能目录}/scripts/asset_check.py \
26
- --characters examples/minimal/characters.jsonl \
27
- --looks examples/minimal/looks.jsonl
28
- python3 {技能目录}/scripts/selftest.py
15
+ 用 $short-drama-assets 从 EP001 剧本拆完人物、造型、地点、道具和本集状态
29
16
  ```
30
17
 
31
- 校验器只检查稳定 ID、引用能否解析到本文件首行 `sources` 声明的快照、创作者接受状态与
32
- Look → Character 绑定;身份是否可信、差异是否有戏剧依据仍由创作者和 reviewer 判断。
33
- 输入路径不存在于当前目录时,会相对本技能目录解析。
34
-
35
- ## 边界
36
-
37
- - 资产事实只来自已接受剧本、已有 设定集、连续性和创作者补充;不擅改剧情。
38
- - 项目存在时读取 `short-drama.json#/creator_authority/{visual_direction,production_profile}`
39
- 中状态为 `accepted` 的视觉方向与制作形态;独立运行时使用创作者直接提供的等价约束,未提供
40
- 就保持 `unset`。形态决定哪些身份锚点在本项目里根本可被表达——以剪影为
41
- 识别通道的形态与以面部结构为识别通道的形态需要不同的锚点集合;若状态为 `unset`,就向
42
- 创作者给出选择,不从对话记忆补造。形态可以改变锚点的表达通道与颗粒度,不得反过来改写
43
- 已接受的身份、地理、持物归属、可读文字政策或故事状态。
44
- - 只拥有 Character/Look、Location/View、Prop/State、occurrence reconciliation
45
- 和资产状态 delta。知识/信念/目标/关系/情绪等 story-state 可以在连续性
46
- ledger 中被追踪,但只是带 write/develop source pointer 的投影,不是 assets
47
- 的第二份真相。剧本语义归 `short-drama-write`,镜头手位/走位归
48
- `short-drama-storyboard`,图片提示词归 `short-drama-image-prompts`。
49
- - 可直接接收现成剧本,不强迫补创意开发、故事引擎或集纲。
50
- - 只产出文本/JSONL;不调用图片、视频、音频模型或 provider API。
51
- - 创作者可读的产物在项目内跟随 `short-drama.json#/language`,独立运行时跟随用户使用的
52
- 语言。本阶段不产生送给生成器的
53
- 提示词正文,与 `#/format/prompt_language` 无关;角色实际说什么语言来自
54
- `voice_direction.language`,与两者都无关。
55
-
56
- 所有权边界见 [阶段契约](references/stage-contract.md);只在需要时加载
57
- 下列专项参考,不要一次读完所有文件。
58
-
59
- ## 入口判断
60
-
61
- 1. **已有已接受的 `screenplay.md` 与 index**:直接拆解。
62
- 2. **已有资产 设定集,只需补集内出现与状态**:读取旧 ID,先判复用,再提新项。
63
- 3. **只有非 canonical 的中文剧本**:保留原字节到 `输入/`;调用 write owner
64
- 产生最小规范化预览、语义 diff 和未映射片段。创作者接受前不发布
65
- `screenplay.md`,拒绝也不改变原稿。接受后直接回来拆资产,不虚构 development。
66
- 4. **用户只要局部结果**(如“拆本场道具”):仍执行 occurrence → decision,
67
- 但只呈现所问范围及它依赖的连续性,不用强迫走完整项目流程。
68
-
69
- 缺少 index 时,不凭行号冒充稳定来源;先请 write owner 对剧本建立 block ID。
70
-
71
- ## 每轮的工作单元
72
-
73
- 一轮处理一个明确的来源场次/块范围。整集请求按来源边界拆成若干轮,每轮:
74
-
75
- 1. 只读这个范围的直接输入,拆出它的资产事实,跑本地结构检查;
76
- 2. 落盘这个范围,其余范围保持原样;
77
- 3. 报告已覆盖范围、剩余范围、未决 occurrence 和下一个值得做的范围;
78
- 4. 交还控制权,等创作者的下一次请求。
79
-
80
- 图片提示词、分镜和审查各自是独立的工作单元,由创作者明确请求时开始。
81
-
82
- ## 工作流
83
-
84
- ### 1. 先读事实边界
85
-
86
- 读取本集剧本/index、已有 设定集、上集 outgoing、创作者参考与文本政策,以及已接受的
87
- 视觉方向与制作形态。标记哪个版本已被接受。不要把旧 prompt、旧分镜或文件名当成资产真相。
88
-
89
- ### 2. 逐块提 occurrence,暂不创建资产
90
-
91
- 按 source block 收集出镜或生产必需的角色、地点、道具及其显式状态:造型、伤污、
92
- 所有者、持物手、位置、损坏、内容物、开闭、可读文字、时段、天气、光态和剧情作用。
93
- 每条 occurrence 先保持“剧本怎样写”的颗粒度,再与资产表对齐。
94
-
95
- - 不猜“她”“那个人”“另一把钥匙”指谁;保留原称谓和证据,状态设为 unresolved。
96
- - 区分出镜、画外声、屏幕/照片呈现、仅被提及;被提及不等于要做视觉资产。
97
- - 不把每个名词都建档。只保留影响识别、复用、提示词、镜头或连续性的事实。
98
- - 未来的 decisions 先用 locator 指位;decision 建立后由它单向引用 occurrence 的
99
- exact snapshot。
100
-
101
- 方法与反例见 `references/occurrence-extraction.md`,记录形状见
102
- `assets/occurrences.example.jsonl`。
18
+ ## 入口与边界
103
19
 
104
- ### 3. 再做身份判断
20
+ 现成剧本可以直接拆资产。先区分:
105
21
 
106
- 把 occurrence 与已有 设定集 逐项比对,只给四种提案:
22
+ - **身份**:换一个就不再是同一个人、地或物;
23
+ - **变体**:身份不变,但服装、伤势、时段、天气、开合或持有状态改变;
24
+ - **镜头瞬态**:姿势、视线、左右手、站位和相机角度,由分镜拥有;
25
+ - **故事语义**:知识、目标、关系和情绪由写作/开发拥有,只引用可见后果。
107
26
 
108
- - `reuse`:持续身份和本次所需变体均已存在;
109
- - `new_variant`:同一身份,新增 Look/View/State;
110
- - `new_asset`:持续身份、空间地理或物体功能/形制确实不同;
111
- - `unresolved`:证据不足或多个候选都成立,等待创作者选择。
112
-
113
- 先问“同一个东西什么没变”,再问“这次什么变了、为何变、何时有效”。服装、伤势、
114
- 湿污、灯光、道具开合通常不是新身份;相机角度和瞬时姿势通常连新变体都不是。
115
- 不要为了少建记录而合并真正不同的资产。详见
116
- `references/identity-vs-variant.md` 与 `assets/decisions.example.jsonl`。
117
-
118
- ### 4. 写最小可识别 设定集
119
-
120
- 按类别沉淀,身份锚点与临时状态绝不混写:
121
-
122
- - Character / Look:`references/character-and-look.md`;例见
123
- `assets/character-look.example.jsonl`
124
- - 声音方向(可选,项目需要跨集保持声音时):`references/voice-direction.md`;
125
- 音色载体是参考音频;该文件同时说明 `设定集/voice-casting.md` 怎么渲染。只在处理声音时加载
126
- - Location / View:`references/location-and-view.md`;例见
127
- `assets/location-view.example.jsonl`
128
- - Prop / State:`references/prop-and-state.md`;例见
129
- `assets/prop-state.example.jsonl`
130
-
131
- 每个新变体记录 base、变化、原因与有效范围。只写能帮助再次认出、复用、提示词
132
- 编写或连续性检查的事实;不堆砌“高级、精致、电影感”等泛化修饰。
133
-
134
- ### 5. 写变化,不复制整本 设定集
135
-
136
- 为交接所需的资产状态变化记录 before、after、剧本原因、开始/结束边界和受影响 binding。
137
- 重点检查造型/伤势、持物/所有权、道具状态、地点时段/天气/光态以及跨集 outgoing。
138
- 若为审查需要把知识或关系状态放进 ledger,只保存指向权威字段的引用(`src` 加
139
- `record_id`、`field`)及必要投影;修订仍路由到 develop/write owner。
140
- 镜头内部姿势、视线、左右手和站位由 storyboard 边界拥有;资产记录只引用,不抢写。
141
-
142
- 详见 `references/continuity-delta.md` 与 `assets/continuity.example.jsonl`。
143
-
144
- ### 6. 给创作者看“决定”,而非只给清单
27
+ ## 工作流
145
28
 
146
- 提交接受预览,按以下顺序呈现:
29
+ 1. 只读当前范围的剧本和已决定的视觉方向。
30
+ 2. 逐场找实体、可见描述、状态变化和含混指代,先不创建资产。
31
+ 3. 对每项决定新建、复用、增加变体或标记未决;含混指代不猜。
32
+ 4. 写最小可识别设定:统一使用 `识别锚点`、本集状态和变化原因。
33
+ 5. 检查造型/伤势、持物/所有权、道具状态、地点时段/天气/光态与跨集 outgoing。
34
+ 6. 整集请求自动处理完整集,末端一次回报关键身份决定和未决指代。
147
35
 
148
- 1. 建议复用(为什么是同一个);
149
- 2. 建议新增变体(没变什么、变了什么、原因与有效期);
150
- 3. 建议新增身份(区分它的持久证据);
151
- 4. 未决项(原文证据、候选、每个选择的下游影响);
152
- 5. 连续性变化与需带入下一集的 outgoing。
36
+ ## 内容要求
153
37
 
154
- 创作者可逐项接受、改名、合并、拆分或暂缓。**creator acceptance 是独立事实**:
155
- 抽取完成、结构校验通过、review 通过都不能替代创作者接受。只发布被接受的身份和
156
- 变体;任何 unresolved 都不得编译到图片提示词或分镜 binding。
157
- 若用户要求一次查看全链而中间没有接受回合,可生成待确认的候选预览;不得伪造创作者决定,且不得交付。
38
+ - 每项先写什么不变使它仍是同一资产,再写本集变化。
39
+ - 识别锚点必须可见、可生成、可比较,不用空泛质量词替代事实。
40
+ - 服装、伤势、湿污、道具开合和光态通常是变体,不是新身份。
41
+ - 不复制剧情摘要,只保留下游生成、分镜或连续性真正需要的事实。
42
+ - 文字、标识和敏感信息遵守项目政策,不擅自补造品牌或私密信息。
43
+ - 多集状态写清生效与持续范围;镜头内瞬态留给分镜。
158
44
 
159
- ### 7. 发布与修订
45
+ ## 按需知识
160
46
 
161
- 发布至 `设定集/*.jsonl` 及 `剧集/<EP>/assets/{occurrences,decisions,continuity}.jsonl`。
162
- 项目记录了 `voice_direction` 时,`设定集/voice-casting.md` 由已接受记录重新渲染——
163
- 它是派生文本,手改不会改变任何身份,下一次渲染就会被覆盖。参考音频本身留在 `输入/`。
164
- 每个文件在首行 `sources` 里声明一次它引用到的上游快照,引用本身写 `src` 加稳定 ID/field,
165
- 形状见[阶段契约](references/stage-contract.md#跨产物引用)。资产修改后只列出直接读取该
166
- ID/variant 的提示词、镜头和 review,由相应 owner 按需刷新;不要重写无关资产或 screenplay。
47
+ 默认只读本 SKILL、当前剧本和视觉方向。遇到对应问题时只打开一份:
167
48
 
168
- ## 规则分类与阻断
49
+ - 阶段边界与规则分级:[阶段契约](references/stage-contract.md)
50
+ - 从剧本找真正的资产出现证据:[出现提取](references/occurrence-extraction.md)
51
+ - 新身份、复用、变体或未决:[身份与变体](references/identity-vs-variant.md)
52
+ - 人物识别与造型层次:[人物与造型](references/character-and-look.md)
53
+ - 地点地理、视图和固定锚点:[地点与视图](references/location-and-view.md)
54
+ - 功能道具、所有权和状态变化:[道具与状态](references/prop-and-state.md)
55
+ - 声音参考的身份与授权边界:[声音方向](references/voice-direction.md)
56
+ - 跨场、跨镜、跨集状态:[连续性变化](references/continuity-delta.md)
57
+ - 完成前做一次资产漏项检查:[资产审查清单](references/asset-review-checklist.md)
169
58
 
170
- - `structural_invariant`:occurrence 必有已声明的来源快照与 block ID;decision 必属四类;
171
- variant 有 base/cause/validity;binding 必须解析到已接受 ID。可机械阻断。
172
- - `reviewed_invariant`:不可猜含混指代;不可把临时状态混入身份;delta 的剧情原因
173
- 必须由证据支持。reviewer 引用证据判定,owner 负责修改。
174
- - `craft_default`:身份不变时优先复用/变体;只跟踪下游有用事实。创作者可说明覆盖。
175
- - `taste_option`:群演建为个体还是群组、同址空间拆分颗粒度、蒙太奇式跳变方式,
176
- 由制作策略选择,不单独阻断。
59
+ ## 完成
177
60
 
178
- ## 完成条件
61
+ 所有明确出场都已复用、新建、变体化或标为真实未决;需要保持的视觉事实与状态变化已写入唯一
62
+ 视觉设定文档,即完成。图片提示词、分镜、审查和生产不自动开始。
179
63
 
180
- 完成当前有界范围前使用 `references/asset-review-checklist.md`:来源和引用可解析;每个
181
- occurrence 有明确 decision;未决项保持未决;身份/变体边界可信;连续性能够从
182
- incoming 走到 outgoing;创作者已经接受本次变更。本 skill 只修订自己拥有的资产事实;
183
- 需要 delivery verdict 时另行请求 `short-drama-review`,不得从这里自动启动。
64
+ ## 安装维护
184
65
 
185
- 创作者要求实际合成声音时,把已接受的声音身份、参考音频和录音表交给
186
- `$short-drama-produce`。该技能会先展示精确任务预览并等待创作者明确确认;本技能不调用
187
- 语音服务,也不把资产接受状态当作生产授权。
66
+ 只有安装、升级或排障时运行 `python3 scripts/selftest.py`。