@oh-story/dsh 0.1.3 → 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 +20 -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
@@ -1,7 +1,6 @@
1
1
  # Lookdev 风格帧提示词
2
2
 
3
- `lookdev_frame` 使用 [独立结构模板](../assets/lookdev-frame-spec.jsonl.md),把项目层已经接受的
4
- 视觉方向投影成可比较的通用图片提示词。它不选择画风,
3
+ Lookdev 风格帧把 `视觉设定.md` 中项目级视觉方向投影成可比较的通用图片提示词。它不选择画风,
5
4
  不生成图片,也不从一张参考图推断整部作品的规则。
6
5
 
7
6
  ## 三类测试轴
@@ -10,23 +9,20 @@
10
9
  - `core_location`:绑定准确 LOC/VIEW,检查地理、材质、色彩层级与光源逻辑;
11
10
  - `high_pressure_scene`:绑定准确场景、人物状态与来源块,检查冲突中的注意中心、遮挡和密度。
12
11
 
13
- 不要求三类都固定生成若干张。选择本项目最能暴露方向失效的代表帧,并在规格中写清测试问题。
12
+ 不要求三类都固定生成若干张。选择本项目最能暴露方向失效的代表帧,并在条目中写清测试问题。
14
13
 
15
- ## 写规格
14
+ ## 写条目
16
15
 
17
- `purpose` 写 `lookdev_frame`,`lookdev_axis` 选择本次测试轴,`direction_ref` 用文件头 `sources` 中
18
- `short-drama.json` 的快照键,`field` 写
19
- `/creator_authority/visual_direction/choices/look_development`,并用同一个快照键的
20
- `production_profile_ref` 绑定本项目已接受制作配置。高压力场景还要用 `story_context_refs` 绑定
21
- 真实 screenplay-index `BLK-…` 场次/动作/信息权限记录,不能从提示词发明剧情状态。再写:稳定项、
16
+ 在 `图片提示词.md` 使用 `IMG-...` 标题,写明用途为 Lookdev、测试轴和对应的“项目视觉方向”章节。
17
+ 高压力场景还要绑定真实场景 ID、动作和信息权限,不能从提示词发明剧情状态。再写:稳定项、
22
18
  允许变化项、要保护的身份/地理/剧情事实,以及删除风格标签后真正改变的材质、光、色、边缘、
23
19
  景深或空间表达。
24
20
 
25
- 风格参考使用 `role: style`:
21
+ 风格参考标明用途为“风格”:
26
22
 
27
- - `may_control` 只列色彩层级、材质处理、阴影边缘、景深倾向、画面密度等本次准许内容;
28
- - `must_not_control` 保护角色身份、固定场景地理、剧情状态、人数、持物与道具文字;
29
- - 每张参考有稳定 `slot_id` 和显式 `order`,换版或数组重排不改变槽位语义。
23
+ - “允许控制”只列色彩层级、材质处理、阴影边缘、景深倾向、画面密度等本次准许内容;
24
+ - “不得控制”保护角色身份、固定场景地理、剧情状态、人数、持物与道具文字;
25
+ - 每张参考有稳定可见 ID 和显式顺序,换版或重排不改变其语义。
30
26
 
31
27
  角色、地点或压力场景的事实仍来自它们各自 owner。高压力测试帧不得为了“更有冲击力”提前
32
28
  泄露身份、发明动作结果或改变文字政策。
@@ -34,5 +30,5 @@
34
30
  ## 比较与修订
35
31
 
36
32
  比较人物、地点和压力场景是否共享可辨认语言,同时记录哪一部分允许逐场变化。没有授权生成结果
37
- 观察时,只能指出文字层风险。若收到绑定准确 prompt/spec/reference/config 的项目观察,局部修订写
38
- `changes` 与 `preserve`,一次只改诊断所需变量;不把一次结果推广为其他项目或制作配置的规律。
33
+ 观察时,只能指出文字层风险。若收到绑定准确提示词、参考、配置和结果的项目观察,局部修订写清
34
+ 变化与保持项,一次只改诊断所需变量;不把一次结果推广为其他项目或制作配置的规律。
@@ -139,7 +139,7 @@
139
139
  漂移反复发生,针对该风险补局部约束;不把“人物过大/字幕”预设为所有镜头缺陷。
140
140
 
141
141
  局部修改要同时写清**修改项与保持项**(IMG-06 的实际写法)。可以分句解释复杂区域,
142
- 但每项变化都要能指向精确 `target_ref`,未受影响的事实明确保持:
142
+ 但每项变化都要能指向精确 `IMG-...`、对象和区域,未受影响的事实明确保持:
143
143
 
144
144
  ```text
145
145
  画面中右侧的甲去掉,画面中不要出现甲,其他角色站位动作保持不变,其他内容保持不变。
@@ -54,7 +54,7 @@
54
54
  8. **保持/排除**:防止变形、错材、错状态或多出复制品。
55
55
 
56
56
  - **`craft_default`**:若尺度容易误判,加入不带身份的参照或给出功能性尺寸关系;不要用剧情角色的手当默认参照。
57
- - **`craft_default`**:对可动部件,选择一个接受状态;如确需开/关两态,分为两个 道具状态/spec。
57
+ - **`craft_default`**:对可动部件,选择一个明确状态;如确需开/关两态,分为两个道具状态条目。
58
58
  - **`taste_option`**:产品式悬浮、台面陈列、正交视图或环境内静物由复用目的决定。
59
59
 
60
60
  ## 4. 文字政策
@@ -62,8 +62,7 @@
62
62
  文字是一项资产状态和制作决策,不是随手加的装饰。
63
63
 
64
64
  不要改写 assets owner 的 `exact_readable | graphic_only | no_readable_text |
65
- pending_creator_text`。本 skill 只为当前 plate 选择下列 render treatment,并在
66
- spec 中保留 source pointer 和映射理由。完整映射表见
65
+ pending_creator_text`。本 skill 只为当前道具板选择下列呈现方式,并在条目中保留资产 ID 与映射理由。完整映射表见
67
66
  [common-recipe.md](common-recipe.md)。
68
67
 
69
68
  ### `readable`
@@ -104,13 +103,11 @@ spec 中保留 source pointer 和映射理由。完整映射表见
104
103
  | 中性参照、视图数量、背景方式 | `craft_default` |
105
104
  | 产品感、写实度、陈列审美 | `taste_option` |
106
105
 
107
- 输出精确绑定的 spec 和 generic prompt;不承诺文字最终生成准确,也不生成任何媒体。
106
+ 输出一个精确绑定的 `IMG-...` 道具板条目和可复制正文;不承诺文字最终生成准确,也不生成媒体。
108
107
 
109
108
  ## 6. 制作形态投影
110
109
 
111
- 已接受的 `short-drama.json#/creator_authority/{visual_direction,production_profile}` 决定这件
112
- 道具用什么词汇被画出来,不决定它是什么东西。形态词表见
113
- 本阶段需要从制作形态取得哪些输入,见 [阶段契约](stage-contract.md) 的“制作形态需要什么”。
110
+ `视觉设定.md` 的项目视觉方向与已明确制作形态决定这件道具用什么词汇被画出来,不决定它是什么。
114
111
 
115
112
  ### 从形态取什么
116
113
 
@@ -4,45 +4,45 @@
4
4
 
5
5
  1. 审查方式
6
6
  2. 证据量表
7
- 3. 诊断目录
7
+ 3. 完成前结构检查
8
8
  4. 合成正例
9
9
  5. 合成反例
10
10
 
11
11
  ## 1. 审查方式
12
12
 
13
- 先做可确定检查,再由与作者分离的 reviewer 判断语义和 craft。Reviewer 不改 spec;它写 finding,包含产物与记录 ID、精确证据、影响、所需修复、owner、severity 与状态。不要以固定长度、词数、形容词比例或“像 AI”判质量。
13
+ 先做可确定检查,再由与作者分离的 reviewer 判断语义和 craft。Reviewer 不替 owner 修改;finding
14
+ 包含文件与 `IMG-...`、精确证据、影响、所需修订、owner、严重程度和状态。不要以固定长度、词数、
15
+ 形容词比例或“像 AI”判质量。
14
16
 
15
17
  ## 2. 证据量表
16
18
 
17
- 对每条 prompt,逐项给出 `PASS | REVISE | NOTE` 和引用:
19
+ 对每条提示词逐项给出 `PASS | REVISE | NOTE` 和引用:
18
20
 
19
21
  | 维度 | 要问的问题 | 合格证据 |
20
22
  |---|---|---|
21
- | 绑定 | 是哪个 identity + exact variant? | spec source ref 与 accepted snapshot |
22
- | 区分度 | 不看 display name,能否认出/区分? | prompt 中对应 stable anchors 与 delta |
23
- | 单一目的 | 是否把多种互斥参考需求混在一起? | purpose、构图与状态一致 |
24
- | 空间/尺度 | 关系能否同时成立并复用? | geography/scale 原字段与 prompt 句子 |
25
- | 文字 | 政策、内容、承载面、排除是否相容? | text policy 与 constraints |
23
+ | 绑定 | 是哪个身份与当前变体? | `视觉设定.md` 的可见 ID 与提示词引用 |
24
+ | 区分度 | 不看显示名,能否认出或区分? | 稳定锚点与当前变化 |
25
+ | 单一目的 | 是否把互斥参考需求混在一起? | 用途、构图与状态一致 |
26
+ | 空间/尺度 | 关系能否同时成立并复用? | 地理/尺度事实与正文句子 |
27
+ | 文字 | 政策、内容、承载面与排除是否相容? | 文字事实与呈现方法 |
26
28
  | 经济性 | 参考已承载的内容是否被无意义重复? | 可删句与未受影响事实 |
27
- | 越权 | 是否新造资产、故事或连续性事实? | source fact 与冲突句 |
28
- | 可复制 | 去掉内部元数据后正文是否自足? | generic prompt 本身 |
29
+ | 越权 | 是否新造资产、故事或连续性事实? | 来源事实与冲突句 |
30
+ | 可复制 | 去掉标题元信息后正文是否自足? | 可复制正文 |
29
31
 
30
- Finding 的“修复”必须可执行,例如“补回 View 中安全门相对检修台的位置”,不能只写“加强细节”。审美替代方案属于 NOTE,除非违反已接受约束。
32
+ Finding 的修复必须可执行,例如“补回安全门相对检修台的位置”,不能只写“加强细节”。审美替代
33
+ 方案属于 NOTE,除非违反已确认约束。
31
34
 
32
- ## 3. 诊断目录
35
+ ## 3. 完成前结构检查
33
36
 
34
- | code | classification | enforcer | 默认 severity | owner | 含义 |
35
- |---|---|---|---|---|---|
36
- | IMG_BINDING_UNRESOLVED | structural_invariant | validator | error | image-prompts | asset/variant 或 source ref 未解析 |
37
- | IMG_TEXT_POLICY_CONFLICT | structural_invariant | validator | error | image-prompts | readable 与 no-text 等显式冲突 |
38
- | IMG_EDIT_SCOPE_MISSING | structural_invariant | validator | error | image-prompts | edit 缺 target/change/preserve/impact |
39
- | IMG_VARIANT_INCOHERENT | reviewed_invariant | reviewer | error | image-prompts | 一个规格混入不相容 Look/State |
40
- | IMG_GEOGRAPHY_LOSS | reviewed_invariant | reviewer | error | image-prompts | 场景固定地理/方向被丢失或改写 |
41
- | IMG_PROP_UNRECOGNIZABLE | reviewed_invariant | reviewer | error | image-prompts | 尺度、形制、材料、功能不足以辨认 |
42
- | IMG_BOILERPLATE_DOMINANT | craft_default | reviewer | warning | image-prompts | 已有锚点但泛化词压过它们 |
43
- | IMG_STYLE_ALTERNATIVE | taste_option | reviewer | note | image-prompts | 可选审美方案,不单独阻断 |
37
+ - 每个 `IMG-...` 标题唯一,并引用真实视觉设定条目;
38
+ - 人物、地点或道具的当前变体与有效范围没有冲突;
39
+ - 可读文字与全局禁字没有同时出现;
40
+ - 局部编辑包含目标、变化、保持项和连续性影响;
41
+ - 每张参考写明用途、允许控制、不得控制与未验证风险;
42
+ - 可复制正文不含 ID、文件路径、占位符、流程说明或 QA 结论。
44
43
 
45
- 只有 validator 可证明的 `structural_invariant` 直接阻断。语义问题由 reviewer 引用源字段和 prompt 文句后给 `REVISE`;默认与选项可覆盖。
44
+ 只有本地可证明的结构冲突直接阻断。语义问题由 reviewer 引用来源与正文后给 `REVISE`;默认做法与
45
+ 审美选项可由创作者覆盖。
46
46
 
47
47
  ## 4. 合成正例
48
48
 
@@ -1,69 +1,10 @@
1
1
  # 图片提示词阶段契约
2
2
 
3
- ## 目录
3
+ 本阶段只拥有 `剧集/<EP>/图片提示词.md` 中的 `IMG-...` 项:用途、参考边界和可复制正文。它继承
4
+ 视觉设定与项目视觉方向,不改写资产身份、地理、剧情状态或镜头边界。
4
5
 
5
- - [独立运行与项目集成](#独立运行与项目集成)
6
- - [所有权边界](#所有权边界)
7
- - [制作形态需要什么](#制作形态需要什么)
8
- - [参考媒体与补拍](#参考媒体与补拍)
9
- - [本阶段规则](#本阶段规则)
10
-
11
- 本文件是本技能的自包含契约:预检、所有权、形态输入与规则表都在这里,
12
- 不需要读取其他技能的文件。
13
-
14
- ## 独立运行与项目集成
15
-
16
- 本技能可以单独安装并运行;下面几条说明项目工具存在时怎样集成。
17
-
18
- 1. **读取直接输入**:只读取用户明确提供或当前任务实际需要的文件,不批量加载整个项目。
19
- 2. **可选项目集成**:若存在 `short-drama.json` 且 core 项目工具可用,可以运行
20
- `python3 <core>/scripts/project_tool.py status <project>`,使用返回的目录布局和语言设置;
21
- core 不可用时,直接基于已提供输入产出本阶段文件。
22
- 3. **可选发布生命周期**:项目工具可用时,用 `publish` 原子发布并用 `--input <path>`
23
- 声明直接输入;`accept`、`review` 与 `package` 继续承担确认、复核与交付。
24
- 4. **保持职责分离**:创作者确认、内容修订和复核是不同动作;reviewer 提修改要求,负责人改文件。
25
-
26
- ## 所有权边界
27
-
28
- - **本阶段拥有**:项目级 lookdev 风格帧、资产图片的构图与定点修改选择;渲染出的提示词文本是缓存。
29
- - **本阶段继承**:已接受的视觉方向与制作配置、资产身份与变体、当前用途、文字政策;高压力
30
- lookdev frame 还继承准确剧本 block 的场次事实与信息权限。
31
- - **本阶段不越权**:不承载有先后顺序的剧情动作,不改写资产身份、地理或故事状态,不决定
32
- 镜头边界。
33
-
34
- ## 制作形态需要什么
35
-
36
- 视觉风格不是贴在提示词前面的标签。创作者已接受的视觉方向与制作形态由项目层决定并传入,
37
- **本技能不加载形态卡,也不自行选择形态**;本节只说明本阶段需要形态回答什么、以及拿到
38
- 答案后投影成哪些字段。
39
-
40
- 形态决定属于 `craft_default`:创作者说明理由即可覆盖。形态不能创造新的
41
- `structural_invariant`,也不能改写身份、地理、持物归属与可读文字政策。审查者不得单凭
42
- 形态偏好阻断交付。
43
-
44
- 不要用“加一句风格前缀”处理形态差异。前缀只改变检索标签;形态改变的是**必须出现和
45
- 可以省略的字段**,只有后者会被执行,也只有后者能被审查。
46
-
47
- 本阶段要向形态决定问:单帧上**形、材质、层次、光色**各自怎么表达身份与状态。
48
-
49
- 身份段的载体随形态改变写法:实拍写造型状态而不是长相;二维写剪影与色块;三维写比例与
50
- 姿态边界;水墨写不可散的边缘;Q 版写头身比与放大记号;强精修画风必须**对比着写**同剧
51
- 其他角色的结构差异,否则角色会被拉平。
52
-
53
- 本阶段新增:单帧可见的形/材质/层次/光色投影。
54
-
55
- ## 参考媒体与补拍
56
-
57
- - **参考图能决定什么要逐张写明**:每张参考的用途、可以照搬什么、不可以照搬什么。身份参考
58
- 不自动决定构图;构图、尺度或效果参考不自动带入图中人物、服装、文字、道具与故事状态。
59
- - **像素主张需要证据**:关于参考图上可见内容(尤其文字、水印、标牌、界面)的断言,必须
60
- 来自创作者/参考图权利人的可核对说明,或运行环境获授权后形成的输入参考观察记录,并绑定
61
- 被检查的字节。两者都没有时保持 `unverified`,负面提示词不能代替证据。
62
- - **观众揭示时机**:某一事实何时可被观众看到,由已接受的可见性决定绑定其来源、载体、
63
- 权限、触发与保护方式。构图既不能提前泄露该事实,也不能遮掉本环节必须传达的载体。
64
- - **母版、补拍与替代**:补拍默认只补充、不替代母版。普通母版不增加版本范围字段;只有
65
- 补拍/替代版才声明 `pickup | alternate`,用同一文件内稳定的记录 ID 说明母版与补充关系,并把每项原文要求对应到当前字段或说明
66
- 去向。只有下游审查结论才能批准替代,不得回写形成循环引用。
6
+ 每项参考都写清可以控制什么、不能控制什么;没有获授权的像素观察时保持未知。局部修改直接写目标、
7
+ 变化、保持项和连续性影响,不建立 prompt spec、QA 或接受记录。
67
8
 
68
9
  ## 本阶段规则
69
10
 
@@ -71,7 +12,7 @@
71
12
 
72
13
  | ID | Class | Knowledge |
73
14
  |---|---|---|
74
- | IMG-01 | structural_invariant | Prompt specs bind exact accepted asset and variant IDs. |
15
+ | IMG-01 | structural_invariant | Each `IMG-...` item names the exact visual-setting item and current variant it depicts. |
75
16
  | IMG-02 | craft_default | Put distinguishing identity, geometry, scale, or state before generic quality language. |
76
17
  | IMG-03 | reviewed_invariant | Character sheets preserve identity while depicting one coherent Look. |
77
18
  | IMG-04 | reviewed_invariant | Location plates preserve geography, orientation, anchors, material, and light, normally without cast. |
@@ -82,7 +23,7 @@
82
23
  | IMG-09 | reviewed_invariant | Each reference states its purpose, what may be copied, and what must not be copied; a composition-, scale-, or effect-only reference cannot redefine identity, content, text, or story state. |
83
24
  | IMG-10 | reviewed_invariant | Views of one Location in the same time/weather state share key-light source, colour-temperature relation, and contrast direction; any difference cites a recorded cause and its delta. |
84
25
  | IMG-11 | reviewed_invariant | A lookdev frame binds accepted visual direction and production profile across a declared character-expression, core-location, or high-pressure test axis; a high-pressure frame also binds exact screenplay blocks for story state and information permission, while style references may control only declared surface treatment and never identity, fixed geography, story state, cast count, or prop text. |
85
- | IMG-12 | reviewed_invariant | Every multi-reference binding carries a stable `slot_id` and explicit unique `order`, so array reordering or insertion cannot silently change a reference's role; until a project validator owns this check, the reviewer cites conflicting slots/orders rather than claiming mechanical enforcement. |
26
+ | IMG-12 | reviewed_invariant | Multiple references use stable visible IDs and an explicit order, so reordering cannot silently change which reference controls which property. |
86
27
 
87
28
  规则分级由高到低:`structural_invariant`(结构缺陷,阻断)、
88
29
  `reviewed_invariant`(需证据判断)、`craft_default`(常用做法,可覆盖)、
@@ -12,13 +12,16 @@ license: MIT
12
12
 
13
13
  ## Quick Start
14
14
 
15
- 先离线验证确认闸门、fixture adapter 和供应商 payload 编译,不发起远端请求:
15
+ 只在用户明确要求实际生成后,从当前 `图片提示词.md`、`分镜.md` 或 `视频提示词.md` 中
16
+ 取出本次提示词,建立一个有边界的运行 job。creator-first job 的 `source` 必须指向拥有这条提示词的
17
+ 当前 Markdown,输出放在 `剧集/<EP>/制作成果/`;这个 job 是生产工具的临时输入,不是第六份创作文档:
16
18
 
17
19
  ```bash
18
- python3 {技能目录}/scripts/selftest.py
19
- python3 {技能目录}/scripts/provider_adapters.py --selftest
20
+ python3 {技能目录}/scripts/production_tool.py prepare <project> --job <临时-job.json>
20
21
  ```
21
22
 
23
+ 先展示 `prepare` 的完整预览;此时不会调用供应商。
24
+
22
25
  ## 硬闸门
23
26
 
24
27
  每次生产都必须经过以下四步,顺序不可合并:
@@ -36,7 +39,8 @@ job、prompt、参数、输出路径或直接输入任一变化,旧确认立
36
39
 
37
40
  ## 命令
38
41
 
39
- 先把待执行任务写成 JSON;格式和 adapter 契约见
42
+ 只在进入生产边界后把当前提示词和运行参数写成临时 JSON;不要在创作阶段为每条提示词预建 job。
43
+ 格式和 adapter 契约见
40
44
  [adapter-contract.md](references/adapter-contract.md)。命令由
41
45
  [production_tool.py](scripts/production_tool.py) 提供,然后运行:
42
46
 
@@ -55,11 +59,14 @@ python3 <本技能目录>/scripts/production_tool.py audit <project>
55
59
 
56
60
  ## 输入选择
57
61
 
58
- - **image**:读取当前图片 prompt/spec、必要参考图和明确的输出尺寸/数量。
59
- - **video**:读取当前 motion spec、对应 shot/keyframe、必要首尾帧和时长/画幅。
60
- - **tts**:读取当前录音表中的原句、说话人/声音参考和本句表演要求;不得在生产 job 中改词。
61
- - **music**:读取已接受的时间线音乐规格;主题曲使用已确认歌词,纯配乐不携带歌词。供应商不能
62
- 精确承诺时长时,生成 source track 后仍由剪辑按 `mix_intent` 完成落点、循环、淡入淡出和对白 ducking。
62
+ - **image**:读取 `图片提示词.md` 的当前可复制正文、必要参考图和明确的输出尺寸/数量。
63
+ - **video**:读取 `视频提示词.md` 的当前可复制正文,并核对 `分镜.md` 中对应镜头、冻结关键帧、
64
+ 时长与画幅。
65
+ - **tts**:从 `剧本.md` 读取原句与表演要求,声音参考由用户或现有媒体明确提供。不得在生产 job
66
+ 中改词,也不为 TTS 新建第六份创作文档。
67
+ - **music**:读取 `视频提示词.md` 中创作者已确认的时间线音乐章节;主题曲使用已确认歌词,纯配乐
68
+ 不携带歌词。供应商不能精确承诺时长时,生成源音轨后仍由剪辑按文档里的混音意图完成落点、循环、
69
+ 淡入淡出和对白 ducking。
63
70
 
64
71
  一个 job 不混合 modality。大批量工作拆成创作者能看清数量和成本边界的小 job;不为方便把整季
65
72
  隐式塞进一次确认。
@@ -70,7 +77,7 @@ adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 ad
70
77
  存储读取。项目 job、确认记录、运行记录和 Dashboard 都不得保存密钥。
71
78
 
72
79
  脚本以 JSON stdin 调用 argv 数组,不使用 shell,不拼接命令。adapter 返回本地临时文件;工具只
73
- 接受与已确认 targets 完全一致的结果,并把完整文件原子复制到项目的 `production/制作成果`
80
+ 接受与已确认 targets 完全一致的结果,并把完整文件原子复制到项目的 `剧集/<EP>/制作成果/`
74
81
  目录。项目和上游 Skill 不写死供应商、模型或即将变化的 API。
75
82
 
76
83
  本技能可选提供三个 stdlib adapter,均通过项目外 adapter config 选择,凭据只从运行环境读取:
@@ -101,3 +108,12 @@ adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 ad
101
108
  缺陷回到对应 prompt/spec owner。
102
109
  如需质量复核,报告可把已有结果另行交给 `$short-drama-review`;不要在生产调用中自动启动复核。
103
110
  Dashboard 只负责展示这些文件和运行摘要,不提供 adapter 设置或生产按钮。
111
+
112
+ ## 安装维护
113
+
114
+ 只有安装、升级或排障时运行离线自检;普通创作和生产准备不运行:
115
+
116
+ ```bash
117
+ python3 scripts/selftest.py
118
+ python3 scripts/provider_adapters.py --selftest
119
+ ```
@@ -1,45 +1,40 @@
1
1
  ---
2
2
  name: short-drama-review
3
- description: 校验与审查文件系统短剧项目中的原著分析层、故事、剧本、资产、连续性、资产图片提示词、分镜、关键帧和视频提示词,并消费有界授权生产观察做当前项目校准。用户提出“审稿/检查剧本”“检查资产或连续性”“检查图片/视频提示词”“检查原著分析或分集候选”“审查或诊断模板感”“根据生产观察做项目校准”,或判断一集能否交付文本或 JSON 时使用;只发布审查问题、审查结论和修订要求,不代替负责人修改来源文件。
3
+ description: 审查短剧项目中的原著分析、故事、剧本、视觉设定、图片提示词、分镜、冻结关键帧、视频提示词和已有媒体。用户提出“审稿/检查剧本”“检查资产或连续性”“检查图片/视频提示词”“检查原著分析”“审查模板感”“根据生产观察做项目校准”时使用;只写审查问题、结论和修订要求,不代替 owner 修改来源文件。
4
4
  license: MIT
5
5
  ---
6
6
 
7
7
  # 短剧审查
8
8
 
9
- 审查并引用产物证据。优先由未参与当前版本创作的 reviewer 执行;条件不允许时可以自检并如实标注。
10
- 只写审查问题、审查结论和按负责人分组的修订要求,不在同一次审查中替 owner 修改创作来源。
9
+ 优先由未参与当前版本创作的 reviewer 执行;条件不允许时可以自检并如实说明。审查与修改是两个工作
10
+ 单元:本技能只定位问题、影响和必须达到的修订结果,不在同一轮替 owner 改来源。
11
11
 
12
- 审查问题、影响和修订要求在项目内跟随 `short-drama.json#/language`,独立运行时跟随用户
13
- 使用的语言,不在本技能内硬编码语言。稳定的规则编号和 ID 保持原样。
14
- 本技能从不撰写提示词正文:引用被审查的提示词时按其原样引用,不译成审查语言,
15
- 也不因为提示词语言与项目语言不同就判为缺陷——`#/format/prompt_language` 是创作者的选择。
12
+ ## Quick Start
16
13
 
17
- ## 开始前
14
+ 直接读取用户点名的当前文件。单集审查需要落盘时写 `审查/EP001-审查.md`;独立文件审查使用
15
+ `审查/<主题>-审查.md`。用户只要口头结论时直接回复,不为“完整”创建审查文件。
18
16
 
19
- 本技能可独立安装和执行。先读取用户明确提供的待审产物与本任务直接输入;若当前目录是
20
- `short-drama` 项目且项目工具可用,可以读取 `status` 并使用其发布生命周期,但缺少 core
21
- 或任何其他技能都不是审查工作的阻断条件。[阶段契约](references/stage-contract.md) 给出
22
- 本阶段边界、制作形态输入与规则表,无需读取其他技能的文件。
17
+ 审查 Markdown 建议结构:
23
18
 
24
- ## Quick Start
19
+ ```markdown
20
+ # EP001 审查
25
21
 
26
- 复制最小 finding/verdict 样例,在完成一次有界审查 pass 后运行:
22
+ - 范围:剧本、分镜、视频提示词
23
+ - 结论:REVISE
24
+ - 复核方式:独立 reviewer / 自检
27
25
 
28
- ```text
29
- python3 {技能目录}/scripts/review_check.py \
30
- --findings examples/minimal-findings.jsonl \
31
- --verdict examples/minimal-verdict.json
32
- python3 {技能目录}/scripts/selftest.py
26
+ ## Blocker · REV-001 · 画面文字未被镜头承载
27
+ - 位置:剧本.md / EP001-SC002;分镜.md / SHOT-EP001-004
28
+ - 证据:……
29
+ - 影响:……
30
+ - 修订结果:由 short-drama-storyboard 补入准确文字及可读条件。
31
+ - 规则:SHT-01 · reviewed_invariant
33
32
  ```
34
33
 
35
- 校验器检查 REV-02 所需字段、证据引用(经文件的 `sources` 声明解析)、阻断项数量和 verdict
36
- 一致性;它不代替语义审查,也不要求独立 reviewer provenance。输入路径不存在于当前目录时,
37
- 会相对本技能目录解析。
34
+ 引用只使用文件名、标题 ID、行号或短引文;不建立 sources 声明、哈希、record ID 或第二套状态。
38
35
 
39
36
  ## 选择审查范围
40
37
 
41
- 声明一个或多个范围:
42
-
43
38
  - `source_analysis`
44
39
  - `story_script`
45
40
  - `assets_continuity`
@@ -51,128 +46,71 @@ python3 {技能目录}/scripts/selftest.py
51
46
  - `delivery_privacy`
52
47
  - `project_calibration`
53
48
 
54
- 只读对应的审查表。`source_analysis` 读
55
- [rubric-source-analysis.md](references/rubric-source-analysis.md)——它审的是原著分析层
56
- (索引、快评、逐章提取、剧情单元、人物候选、改编价值与分集候选),不审剧本内容,
57
- 也不替 `$short-drama-develop` 决定改编方案。完整审查先读
58
- [review-method.md](references/review-method.md),再读三份审查表;制作端常见缺陷
59
- 与各环节判据见 [production-quality-gates.md](references/production-quality-gates.md)。
60
- 有创作者提供或授权形成的生产观察,需要绑定准确版本、诊断并路由项目内校准时读
61
- [project-calibration.md](references/project-calibration.md);没有观察记录时只报文字风险。
62
- 涉及参考图权限、遮挡式揭示或补拍版与替代版关系时加读
63
- [阶段契约](references/stage-contract.md) 的参考媒体与补拍一节。
64
- 不预先加载所有创作资料。
65
- 证据来自项目产物和已接受限制,而非负责人的自我解释。
66
- 只有审查问题涉及“模板感、重复手法或 AI 味”时才读
67
- [anti-template-repair.md](references/anti-template-repair.md),用其诊断、修订示范与误报反例。
68
-
69
- ## 每轮的工作单元
70
-
71
- 一轮审查一批明确选定的产物或一段连续范围:记录 verdict 与按 owner 路由的 findings,
72
- 报告已审范围和剩余范围,然后交还控制权。产物由各自的 owner 修改;修订与之后的复审
73
- 各自是独立的工作单元,由创作者明确请求时开始。
74
-
75
- ## 工作流
76
-
77
- ### 1. 确定范围与复核方式
78
-
79
- 记录要审查的当前产物、已接受限制和范围。优先让未参与该版本创作的人或隔离上下文复核,
80
- 因为这能减少自证偏差;条件不允许时可直接自检,并在 reviewer 标签或备注中如实说明。
81
- 不要为“独立性”制造运行时证明、上下文 ID 或 provenance schema。
49
+ 只读对应资料,不预加载整个项目:
82
50
 
83
- ### 2. 先跑结构校验
51
+ - 原著分析:[原著分析审查表](references/rubric-source-analysis.md)
52
+ - 故事、场景、行动与对白:[故事剧本审查表](references/rubric-story-script.md)
53
+ - 身份、变体、连续性与图片提示词:[资产提示词审查表](references/rubric-assets-prompts.md)
54
+ - 原文落实、镜头、关键帧与视频运动:[视觉运动审查表](references/rubric-visual-motion.md)
55
+ - 完整审查方法:[审查方法](references/review-method.md)
56
+ - 制作端常见缺陷:[生产质量门](references/production-quality-gates.md)
57
+ - 授权生产观察的项目内校准:[项目校准](references/project-calibration.md)
58
+ - 模板感、重复手法或 AI 味:[反模板修订](references/anti-template-repair.md)
59
+ - 阶段边界、参考媒体与规则表:[阶段契约](references/stage-contract.md)
84
60
 
85
- 先检查可证明事实:
61
+ ## 工作流
86
62
 
87
- - 数据结构、JSONL、稳定 ID 和来源引用;
88
- - 原文落实、资产版本、时间总和与连续性;
89
- - 负责人权限、隐私边界和当前项目状态。
63
+ ### 1. 冻结范围
90
64
 
91
- 缺少必要输入时停止相关内容审查;互不依赖的问题可以一次汇总。
65
+ 写清当前要审哪些文件、章节、镜头或提示词,以及创作者已经明确的限制。目标在审查中发生变化时,
66
+ 重新读取再下结论。
92
67
 
93
- ### 3. 带证据审查内容
68
+ ### 2. 先查可证明事实
94
69
 
95
- 重新查看当前资料,不采用负责人的自我辩解。每个 finding 只需包含:
70
+ - 五文档的可见 ID、引用和时长是否一致;
71
+ - 剧本对白、动作、声音、画面文字是否都有画面/声音承载;
72
+ - 人物、地点、道具状态和镜头起止是否连续;
73
+ - 提示词是否从准确起点到准确终点;
74
+ - 私有输入、凭据、绝对路径或内部流程文字是否泄漏。
96
75
 
97
- - 可定位的文件、记录、段落、镜头或提示词;
98
- - 必要的短引文或冲突字段;
99
- - 对观众理解或制作的影响;
100
- - 必须达到的修订结果、负责技能、严重程度和状态。
76
+ 缺少必要输入时只停止依赖它的判断,其他问题可以继续汇总。
101
77
 
102
- 分类使用 `structural_invariant`、`reviewed_invariant`、`craft_default` 或 `taste_option`。
103
- 校准 finding 还要说明它观察的是输入参考还是生成结果、适用配置和观察限制。
78
+ ### 3. 带证据审内容
104
79
 
105
- ### 4. 跨层综合
80
+ 每个 finding 包含:位置、必要短引文或冲突事实、观众/制作影响、必须达到的修订结果、owner、严重
81
+ 程度和规则等级。不能只说“AI 味”“不够电影感”或给无证据分数。
106
82
 
107
- 优先守住剧本原意与连续性,而不是奖励华丽提示词:
83
+ ### 4. 跨文档综合
108
84
 
109
85
  ```text
110
- 剧本事实 -> 资产决定 -> 镜头目的与边界 -> 关键帧 -> 动作 -> 下一状态
86
+ 剧本事实 -> 视觉设定 -> 镜头职责与边界 -> 冻结关键帧 -> 视频运动 -> 下一状态
111
87
  ```
112
88
 
113
- ### 5. 给出结论并分派修订
89
+ 优先守住原意、知情时机与连续性,不奖励脱离来源的华丽提示词。
90
+
91
+ ### 5. 结论与分派
114
92
 
115
93
  - `APPROVE`:没有阻断问题;
116
94
  - `APPROVE_WITH_NOTES`:只有不阻断的改进;
117
95
  - `REVISE`:存在结构、内容或限制冲突;
118
96
  - `PROVISIONAL`:关键输入不足,暂时无法完成判断。
119
97
 
120
- 按 owner 分组;reviewer 发出修改要求,owner 在另一个有界工作单元修改来源。后续明确请求复审时,
121
- 重新读取当前版本并只复查受影响范围;本轮不自动进入修改或复审。
122
- CLI 的 `review` 记录 verdict、reviewer 标签和备注;详细 finding 文件用于创作沟通,不是批准所需的
123
- 密码学证据包。
124
-
125
- ## 审查表
126
-
127
- - 故事承诺、因果、场景、行动、对白:
128
- [rubric-story-script.md](references/rubric-story-script.md)
129
- - 资产身份/变体、连续性、资产图片提示词:
130
- [rubric-assets-prompts.md](references/rubric-assets-prompts.md)
131
- - 原文落实、镜头、关键帧、视频提示词和跨镜状态:
132
- [rubric-visual-motion.md](references/rubric-visual-motion.md)
98
+ 按 owner 分组修订要求。本轮完成后交还控制权;修改和复审只有用户明确请求时开始。
133
99
 
134
- ## 审查问题与严重程度
100
+ ## 严重程度
135
101
 
136
- 从 [finding-template.jsonl](assets/finding-template.jsonl) 建立审查问题,从
137
- [verdict-template.json](assets/verdict-template.json) 建立审查结论。问题目录提供编号、类别、
138
- 默认检查方式、严重程度和负责人;审查问题记录本次目标的证据和状态。
102
+ - `blocker`:不安全、不可交付或会让流程走错;
103
+ - `major`:明显破坏剧情理解、连续性或制作结果;
104
+ - `minor`:有具体影响但不阻断;
105
+ - `note`:创作选择或可选润色。
139
106
 
140
- ### 写上游引用
141
-
142
- 每个文件先声明本次引用到的上游快照,每条引用再指名快照和记录。
143
-
144
- findings.jsonl 首行是声明记录:
145
-
146
- ```json
147
- {"record_type":"sources","schema_version":"1.0.0","sources":{"screenplay":{"owner":"short-drama-write","artifact":"剧集/EP001/screenplay.md"}}}
148
- ```
149
-
150
- verdict.json 用顶层 `sources` 对象声明同样的内容。键取产物文件名,短、小写,
151
- 文件内唯一且稳定;同一产物的两个快照用后缀区分。
152
-
153
- 引用写成:
154
-
155
- ```json
156
- {"src": "screenplay", "record_id": "EP001-SC001"}
157
- ```
158
-
159
- 指向整个产物或产物内某个字段时只写 `{"src": "screenplay"}`,需要时加 `field`;
160
- `authority`、`role`、`value_seconds` 记在各自的引用上。
161
-
162
- - `fatal`:不安全或非公开内容被交付、交付包损坏、缺少授权;
163
- - `error`:阻断当前检查的结构或内容错误;
164
- - `warning`:有具体影响的常用做法问题;
165
- - `note`:创作选择、问题或不阻断交付的润色建议。
107
+ ## 边界
166
108
 
167
- 没有证据不要打分。不能只说“AI 味”;必须定位重复手法、用套话代替具体内容,或没有铺垫的文句模式,
168
- 并解释它伤害什么。
109
+ - 不提交图片、视频、TTS 或音乐任务,不配置 adapter,不把 Dashboard 操作当生产授权。
110
+ - 无法读取媒体时明确限制,不从文字或 adapter 状态推断脸部一致、表演、口型、混音或市场表现。
111
+ - 生产观察必须绑定准确输入、提示词、参考、配置和结果版本;不能泛化成通用规则。
112
+ - 审查文件只保留修订所需的最小证据,不复制完整私有输入。
169
113
 
170
- ## 边界
114
+ ## 安装维护
171
115
 
172
- - 不提交图片、视频或 TTS 任务,不配置 adapter,也不把 Dashboard 操作当作生产授权。
173
- - `production_outputs` 只复核项目内当前版本的已有媒体;运行环境不能读取或播放时明确记录
174
- 限制,不从文字产物或 adapter 状态推断脸部一致、表演、口型、混音、剪辑或市场表现。
175
- - 生产观察必须绑定准确的 prompt/spec/reference/config 与结果版本,并保留其范围与限制。
176
- - 不把非公开制作观察变成通用审查标准。
177
- - 审查问题只带创作者修订所需的必要证据;不泄露非公开输入、完整创作文本、
178
- 网址或机器路径。
116
+ 只有安装、升级或排障时运行 `python3 scripts/selftest.py`。
@@ -89,26 +89,21 @@ Reviewer 必须说明:重复是否是 creator choice、第二次新增了什
89
89
 
90
90
  ## 4. Finding 示例
91
91
 
92
- ~~~json
93
- {
94
- "diagnostic_code": "SCR_REPEATED_STRATEGY",
95
- "knowhow_rule_id": "SCR-04",
96
- "classification": "craft_default",
97
- "enforcer": "reviewer",
98
- "evidence": "EP002-SC003 与 EP003-SC002 均以主管主动说出隐藏事实结束,主角没有选择",
99
- "impact": "主角策略不参与揭示,连续两集回报来自对手自曝",
100
- "required_change": "保留两项事实,但让至少一项揭示由主角有代价的策略触发",
101
- "owner_skill": "short-drama-write",
102
- "severity": "warning"
103
- }
92
+ ~~~markdown
93
+ ## Major · REV-003 · 连续两集用同一种自曝完成揭示
94
+ - 位置:剧本.md / EP002-SC003;剧本.md / EP003-SC002
95
+ - 证据:两场都由主管主动说出隐藏事实,主角没有选择。
96
+ - 影响:主角策略不参与揭示,连续两集的回报来自对手自曝。
97
+ - 修订结果:保留两项事实,但让至少一项揭示由主角有代价的策略触发。
98
+ - Owner:short-drama-write
99
+ - 规则:SCR-04 · craft_default
104
100
  ~~~
105
101
 
106
- 真实 finding 还要在 `evidence_refs` 和 `target_ref` 写出上游引用:
107
- `{"src": "<sources 键>", "record_id": "<记录 ID>"}`,快照由文件的 `sources` 声明绑定。
102
+ 位置只使用文件名、标题 ID、行号或必要短引文。不要复制上游快照,也不要为审查另建记录 ID。
108
103
 
109
104
  ## 5. 分级
110
105
 
111
- - structural_invariant:finding 元数据、上游引用、owner/status 可解析。
106
+ - structural_invariant:finding 的位置、严重程度、owner 与结论明确且可复核。
112
107
  - reviewed_invariant:下游没有改写 source meaning;需证据判断。
113
108
  - craft_default:避免无意义的因果/策略/表达/镜头重复;可由创作者说明覆盖。
114
109
  - taste_option:类型惯例、仪式重复、running gag、固定镜头风格本身不阻断。