@oh-story/dsh 0.1.3 → 0.1.5

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 (524) hide show
  1. package/README.md +58 -12
  2. package/lib/client.js +2970 -537
  3. package/lib/client.js.map +4 -4
  4. package/lib/drama/manifest.json +218 -178
  5. package/lib/drama/skills/short-drama/SKILL.md +110 -117
  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 +26 -77
  8. package/lib/drama/skills/short-drama/references/creator-documents.md +204 -0
  9. package/lib/drama/skills/short-drama/references/creator-workflow.md +73 -63
  10. package/lib/drama/skills/short-drama/references/knowhow-index.md +5 -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 +32 -135
  15. package/lib/drama/skills/short-drama/references/runtime-preflight.md +16 -19
  16. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
  17. package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
  18. package/lib/drama/skills/short-drama-assets/SKILL.md +59 -170
  19. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
  20. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
  21. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
  22. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
  23. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +6 -12
  24. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
  25. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +21 -2
  26. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +12 -105
  27. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
  28. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
  29. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +45 -155
  30. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
  31. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +12 -13
  32. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
  33. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
  34. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
  35. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
  36. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
  37. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
  38. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
  39. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +8 -65
  40. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
  41. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
  42. package/lib/drama/skills/short-drama-produce/SKILL.md +67 -15
  43. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
  44. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
  45. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
  46. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
  47. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
  48. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
  49. package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
  50. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
  51. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
  52. package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
  53. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
  54. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
  55. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
  56. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +27 -19
  57. package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
  58. package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
  59. package/lib/drama/skills/short-drama-storyboard/SKILL.md +116 -238
  60. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
  61. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
  62. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
  63. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
  64. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +12 -7
  65. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
  66. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +27 -62
  67. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
  68. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +21 -23
  69. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
  70. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
  71. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +16 -71
  72. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
  73. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +123 -230
  74. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
  75. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
  76. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
  77. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +24 -6
  78. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
  79. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
  80. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +35 -27
  81. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
  82. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +13 -10
  83. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
  84. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
  85. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
  86. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +17 -73
  87. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
  88. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
  89. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
  90. package/lib/drama/skills/short-drama-write/SKILL.md +74 -268
  91. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
  92. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
  93. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
  94. package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
  95. package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
  96. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
  97. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
  98. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
  99. package/lib/index.js +971 -46
  100. package/lib/index.js.map +4 -4
  101. package/lib/novel-to-game/LICENSE +21 -0
  102. package/lib/novel-to-game/README.md +180 -0
  103. package/lib/novel-to-game/README_ZH.md +178 -0
  104. package/lib/novel-to-game/VERSION +1 -0
  105. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
  106. package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
  107. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
  108. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  109. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  110. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  111. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  112. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  113. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  114. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  115. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  116. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  117. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  118. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  119. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  120. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  121. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  122. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  123. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  124. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  125. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  126. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  127. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  128. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  129. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  130. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  131. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  132. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  133. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  134. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  135. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  136. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  137. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  138. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  139. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  140. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  141. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  142. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  143. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  144. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  145. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  146. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  147. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  148. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  149. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
  150. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
  151. package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
  152. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
  153. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
  154. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
  155. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
  156. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
  157. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
  158. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
  159. package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
  160. package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
  161. package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
  162. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
  163. package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
  164. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
  165. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
  166. package/lib/novel-to-game/manifest.json +508 -0
  167. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
  168. package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
  169. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
  170. package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
  171. package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
  172. package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
  173. package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
  174. package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
  175. package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
  176. package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
  177. package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
  178. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
  179. package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
  180. package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
  181. package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
  182. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
  183. package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
  184. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
  185. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
  186. package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
  187. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
  188. package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
  189. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
  190. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
  191. package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
  192. package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
  193. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
  194. package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
  195. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
  196. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
  197. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
  198. package/lib/oh-story/manifest.json +419 -309
  199. package/lib/oh-story/roles/character-designer.md +4 -4
  200. package/lib/oh-story/roles/consistency-checker.md +1 -1
  201. package/lib/oh-story/roles/narrative-writer.md +41 -42
  202. package/lib/oh-story/roles/story-architect.md +19 -23
  203. package/lib/oh-story/roles/story-explorer.md +8 -5
  204. package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
  205. package/lib/oh-story/skills/story/SKILL.md +16 -9
  206. package/lib/oh-story/skills/story/VERSION +1 -1
  207. package/lib/oh-story/skills/story/references/author-memory.md +163 -0
  208. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
  209. package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
  210. package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
  211. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
  212. package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
  213. package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
  214. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
  215. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
  216. package/lib/oh-story/skills/story-import/SKILL.md +21 -8
  217. package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
  218. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
  219. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
  220. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
  221. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
  222. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
  223. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
  224. package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
  225. package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
  226. package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
  227. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
  228. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
  229. package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
  230. package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
  231. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
  232. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
  233. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
  234. package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
  235. package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
  236. package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
  237. package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
  238. package/lib/oh-story/skills/story-long-write/references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
  239. package/lib/oh-story/skills/story-long-write/references/{reversal-toolkit.md → long-reversal.md} +18 -32
  240. package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
  241. package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
  242. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
  243. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  244. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
  245. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
  246. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +5 -4
  247. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
  248. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +17 -11
  249. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
  250. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
  251. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
  252. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
  253. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
  254. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
  255. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
  256. package/lib/oh-story/skills/story-review/SKILL.md +26 -17
  257. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
  258. package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
  259. package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
  260. package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
  261. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
  262. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
  263. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
  264. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
  265. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
  266. package/lib/oh-story/skills/story-setup/SKILL.md +85 -41
  267. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
  268. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
  269. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
  270. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
  271. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
  272. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
  273. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +1 -1
  274. package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
  275. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
  276. package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
  277. package/lib/oh-story/skills/story-setup/references/agent-references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
  278. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
  279. package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-setup/references/agent-references/long-reversal.md} +18 -32
  280. package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
  281. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
  282. package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
  283. package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
  284. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
  285. package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → short-reversal.md} +29 -23
  286. package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
  287. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  288. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +55 -55
  289. package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
  290. package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
  291. package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
  292. package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
  293. package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
  294. package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
  295. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
  296. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
  297. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
  298. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
  299. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
  300. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
  301. package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
  302. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
  303. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
  304. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
  305. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
  306. package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
  307. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
  308. package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
  309. package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
  310. package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
  311. package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
  312. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
  313. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
  314. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
  315. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
  316. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
  317. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
  318. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
  319. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
  320. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
  321. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
  322. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
  323. package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
  324. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
  325. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
  326. package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
  327. package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
  328. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
  329. package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
  330. package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
  331. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
  332. package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
  333. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
  334. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
  335. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
  336. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
  337. package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
  338. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
  339. package/lib/types/client/drama-production-view.d.ts +34 -0
  340. package/lib/types/client/drama-production-view.d.ts.map +1 -0
  341. package/lib/types/client/drama-production.d.ts +92 -0
  342. package/lib/types/client/drama-production.d.ts.map +1 -0
  343. package/lib/types/client/file-activity.d.ts +9 -2
  344. package/lib/types/client/file-activity.d.ts.map +1 -1
  345. package/lib/types/client/index.d.ts +1 -1
  346. package/lib/types/client/index.d.ts.map +1 -1
  347. package/lib/types/client/production-intents.d.ts +9 -0
  348. package/lib/types/client/production-intents.d.ts.map +1 -0
  349. package/lib/types/client/production-prompts.d.ts +9 -0
  350. package/lib/types/client/production-prompts.d.ts.map +1 -0
  351. package/lib/types/client/production-runtime.d.ts +58 -0
  352. package/lib/types/client/production-runtime.d.ts.map +1 -0
  353. package/lib/types/client/video-studio.d.ts +41 -0
  354. package/lib/types/client/video-studio.d.ts.map +1 -0
  355. package/lib/types/client/workbench-ui.d.ts +5 -0
  356. package/lib/types/client/workbench-ui.d.ts.map +1 -0
  357. package/lib/types/game-verification.d.ts +16 -0
  358. package/lib/types/game-verification.d.ts.map +1 -0
  359. package/lib/types/index.d.ts +5 -2
  360. package/lib/types/index.d.ts.map +1 -1
  361. package/lib/types/production-intent.d.ts +21 -0
  362. package/lib/types/production-intent.d.ts.map +1 -0
  363. package/lib/types/production-tool.d.ts +5 -0
  364. package/lib/types/production-tool.d.ts.map +1 -0
  365. package/lib/types/reference-tool.d.ts +6 -0
  366. package/lib/types/reference-tool.d.ts.map +1 -0
  367. package/lib/types/role-provider.d.ts.map +1 -1
  368. package/lib/types/role-tool.d.ts +3 -1
  369. package/lib/types/role-tool.d.ts.map +1 -1
  370. package/lib/types/skill-provider.d.ts +7 -0
  371. package/lib/types/skill-provider.d.ts.map +1 -1
  372. package/lib/types/video-project.d.ts +42 -0
  373. package/lib/types/video-project.d.ts.map +1 -0
  374. package/lib/types/workspace-request-trust.d.ts +6 -0
  375. package/lib/types/workspace-request-trust.d.ts.map +1 -1
  376. package/lib/types/workspace-route.d.ts +20 -0
  377. package/lib/types/workspace-route.d.ts.map +1 -1
  378. package/lib/video-recap/CHANGELOG.md +282 -0
  379. package/lib/video-recap/LICENSE +21 -0
  380. package/lib/video-recap/README.en.md +257 -0
  381. package/lib/video-recap/README.md +255 -0
  382. package/lib/video-recap/manifest.json +684 -0
  383. package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
  384. package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
  385. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
  386. package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
  387. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
  388. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
  389. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
  390. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
  391. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
  392. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
  393. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
  394. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
  395. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
  396. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
  397. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
  398. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
  399. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
  400. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
  401. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
  402. package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
  403. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
  404. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
  405. package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
  406. package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
  407. package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
  408. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
  409. package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
  410. package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
  411. package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
  412. package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
  413. package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
  414. package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
  415. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
  416. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
  417. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
  418. package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
  419. package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
  420. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
  421. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
  422. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
  423. package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
  424. package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
  425. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
  426. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
  427. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
  428. package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
  429. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
  430. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
  431. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
  432. package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
  433. package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
  434. package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
  435. package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
  436. package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
  437. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
  438. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
  439. package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
  440. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
  441. package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
  442. package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
  443. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
  444. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
  445. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
  446. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
  447. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
  448. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
  449. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
  450. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
  451. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
  452. package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
  453. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
  454. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
  455. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
  456. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
  457. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
  458. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
  459. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
  460. package/lib/video-recap/skills/video-script/SKILL.md +248 -0
  461. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
  462. package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
  463. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
  464. package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
  465. package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
  466. package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
  467. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
  468. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
  469. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
  470. package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
  471. package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
  472. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
  473. package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
  474. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
  475. package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
  476. package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
  477. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
  478. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
  479. package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
  480. package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
  481. package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
  482. package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
  483. package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
  484. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
  485. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
  486. package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
  487. package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
  488. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
  489. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
  490. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
  491. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
  492. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
  493. package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
  494. package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
  495. package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
  496. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
  497. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
  498. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
  499. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
  500. package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
  501. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
  502. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
  503. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
  504. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
  505. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
  506. package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
  507. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
  508. package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
  509. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
  510. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
  511. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
  512. package/package.json +57 -41
  513. package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
  514. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
  515. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
  516. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
  517. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
  518. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
  519. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
  520. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
  521. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
  522. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
  523. /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
  524. /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
@@ -0,0 +1,204 @@
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
+ - 画面代称:Jiangchen
23
+ - 连续性锁:LOCK-JIANGCHEN-SUIT《江辰深灰旧西装》(镜头:全集;图片提示词项:IMG-JIANGCHEN-SHEET)· 锁面:dark-grey worn wool suit
24
+ ```
25
+
26
+ 二级标题固定写成 `## <人物|造型|地点|道具> · <名称>`;分镜的「视觉依据」按这个标题定位条目。
27
+
28
+ **画面代称**是提示词正文里直接叫到这一条的名字,按项目提示词语言写;多个写法用 `、` 分隔,
29
+ 大小写必须与正文一致。条目自身的中文名称始终算一个代称,所以中文项目通常不必写这一行。
30
+ `creator_markdown_check.py` 用它机械核对「冻结关键帧里出现的名字,视觉依据必须覆盖」。
31
+
32
+ 提示词正文语言不是中文时,被某镜「视觉依据」引用过的**人物**条目必须给出结论:写
33
+ `画面代称:<正文里的拼写>`,或在正文从不点名它时写 `画面代称:无`。少了这一行,中文条目名在英文正文里
34
+ 永远匹配不上,这条核对就静默失效——那正是 #94 报告的形状。地点和道具通常在正文里只被描述、不被点名,
35
+ 不作强制。
36
+
37
+ 识别锚点写给创作者读;**连续性锁**写给执行端逐字带走。跨镜出现、观众看得出不一致、又不随剧情
38
+ 改变的可见事实(服装主色与形制、道具颜色材质、发型长度、伤口位置)才上锁,会变的部分留在
39
+ `状态变化`。一行一把锁:
40
+
41
+ - `LOCK-...` 在本集唯一,与 `IMG-...`、`REF-...`、`SHOT-...` 互不混用;
42
+ - `镜头:` 写 `全集` 或 `、` 分隔的 `SHOT-...` 列表,两者不能混写;
43
+ - `;图片提示词项:` 可选,写 `、` 分隔的 `IMG-...` 列表;
44
+ - `· 锁面:` 之后是被逐字带走的最小名词短语,用项目提示词语言写,不含标点、动作和剧情。
45
+
46
+ 生效范围内的冻结关键帧、`MOTION-...` 正文和被点名的 `IMG-...` 正文都必须含有这段锁面(忽略
47
+ 大小写);`creator_markdown_check.py` 会机械核对。没有锁的项目不受影响。
48
+
49
+ ## `分镜.md`
50
+
51
+ 每镜一个二级标题。镜头 ID 在本集内唯一并保持稳定;修订镜头内容时不要无故换 ID。
52
+
53
+ ```markdown
54
+ ## SHOT-EP001-001 · 门外停步
55
+ - 来源:EP001-SC001
56
+ - 时长:4s
57
+ - 目的:先让观众看见他不敢进门,再揭示门内争吵。
58
+ - 景别/机位:中近景,门框外侧,轻微低机位。
59
+ - 起点:江辰右手悬在门把上方。
60
+ - 唯一动作:门内玻璃落地声触发江辰收回右手,视线从门把转向门缝。
61
+ - 终点:江辰右手垂回身侧,视线落在门缝。
62
+ - 图片提示词项:IMG-JIANGCHEN-SHEET《江辰角色板》(控制:身份、体态、本集造型);IMG-CORRIDOR-NIGHT《夜间走廊场景板》(控制:空间地理、门位、光向)。
63
+ - 输入参考图:无(待补参考图:江辰本集造型、夜间走廊地理、本镜起始帧)。
64
+ - 视觉依据:《视觉设定.md》·人物「江辰」(控制:身份、体态、本集造型);地点「旧走廊」(控制:空间地理、出入口、光向)。
65
+
66
+ ### 冻结关键帧提示词
67
+ > 按项目提示词语言编写的冻结瞬间正文……
68
+ ```
69
+
70
+ 只写有镜头职责的镜头。关键帧提示词必须与该镜“起点”一致;终点才出现的文字、动作或状态不得
71
+ 提前进入静帧,也不要把整段动作塞进静帧。
72
+
73
+ 三类依据不得混用:
74
+
75
+ - **图片提示词项**:《图片提示词.md》中可见二级标题的 `IMG-...` 条目,只证明提示词存在;
76
+ - **输入参考图**:创作者已提供,或经确认生产且当前可读的真实图片;每张图用稳定 `REF-...` 槽位绑定显式顺序、可见项目相对路径、中文名称、用途、控制与不得控制范围;
77
+ - **视觉依据**:《视觉设定.md》中的文字事实,不冒充图片。
78
+
79
+ **「视觉依据」是每镜必写字段,也是这一格画面的人物、地点与道具清单。** 冻结关键帧写完之后,
80
+ 按成稿画面逐项回填,语法固定:
81
+
82
+ ```markdown
83
+ - 视觉依据:《视觉设定.md》·人物「江辰」(控制:身份、造型);地点「旧走廊」(控制:空间地理、出入口、光向)。
84
+ ```
85
+
86
+ - `《视觉设定.md》·` 只写一次,条目之间用 `;` 连接,条目名称必须能在《视觉设定.md》里找到同名标题;
87
+ - 画面里需要认出身份、造型或地理的人物、地点和道具都要在列,小比例或背景人物只要需要认出身份仍在范围内;
88
+ - 画外的人声、不可识别的局部和不需要保持一致的临时物件不在列,也不要为凑齐而写进来;
89
+ - 「控制」写这一条在本镜真正决定什么,只写这一格画面承担得起的范围——手部特写不写「本集造型」;
90
+ - 本镜确实没有需要保持一致的可见条目时写 `无`,这不是省略的借口:关键帧里点名的条目仍会被机械核对。
91
+
92
+ 关键帧正文提到某个条目的名字、但它本镜确实不在画面里时(物主已离场、名字只出现在屏幕文字上),
93
+ 在同一字段末尾追加画外清单,如实说明它被提到而不在场:
94
+
95
+ ```markdown
96
+ - 视觉依据:《视觉设定.md》·地点「教室」(控制:课桌排列、窗位);道具「旧书包」(控制:磨损、颜色);画外:人物「小明」。
97
+ ```
98
+
99
+ 某个条目的名字在正文里根本不可靠时——`道具「手机」` 会撞上「手机店」,`人物「小雨」` 会撞上「下着小雨」——
100
+ 在《视觉设定.md》该条目写 `画面代称:无`,机械核对不再按名字找它;这一镜是否画到它,仍由「视觉依据」如实回答。
101
+
102
+ 每个 `REF-...` 槽位的语法是:
103
+
104
+ ```markdown
105
+ REF-<slot>(顺序:<n>)· <项目相对路径>《<中文名称>》(用途:<用途>;控制:<范围>;不得控制:<范围>)
106
+ ```
107
+
108
+ `用途` 回答「这一张在本镜决定什么」,取值只能是
109
+ `身份`、`造型状态`、`地理`、`构图`、`尺度`、`效果`、`起始帧`、`结束帧`、`风格` 之一,逐条含义见
110
+ [参考角色](reference-roles.md)。一张图承担两件事时拆成两个槽位,不写「全参考」。一镜最多一张
111
+ `起始帧`、一张 `结束帧`,且写 `结束帧` 时必须同时有 `起始帧`。有了 `用途`,视频提示词就能直接回答
112
+ 「本镜要送哪一张分镜起始帧、哪些人物/道具/场景图」,生产端也不必再猜每张图的职责。
113
+
114
+ 「输入参考图」有三种准备结果,不能把后两种混在一起:
115
+
116
+ - 已绑定 `REF-...`:图片真实存在,可进入图生/参考生视频;
117
+ - 待补:一张都没有时写 `无(待补参考图:……)`;只缺一部分时保留已有 `REF-...`,末尾追加 `;待补参考图:……`。视频提示词尚未就绪;
118
+ - `无(创作者已明确选择文生视频)`:创作者在了解一致性影响后明确不用图,可进入文生视频。
119
+
120
+ `IMG-...` 只用于查找,不靠英文 slug 向创作者解释含义。每个引用都同时写简短中文名称和
121
+ 控制范围,且 ID 必须在当前《图片提示词.md》标题中存在。中文名称帮助阅读,不取代 ID 定义条目身份。没有该文档或没有合适条目时,分镜仍可
122
+ 直接从剧本和视觉设定进入,使用下列回退格式,不编造 ID 也不补造提示词阶段:
123
+
124
+ ```markdown
125
+ - 图片提示词项:无
126
+ - 输入参考图:无(待补参考图:江辰身份、旧走廊地理、本镜起始帧)
127
+ - 视觉依据:《视觉设定.md》·人物「江辰」(控制:身份、造型);地点「旧走廊」(控制:空间地理、出入口、光向)。
128
+ ```
129
+
130
+ 提示词条目和真实图片是独立的:有 `IMG-...` 条目时,「输入参考图」可以仍为「无」;创作者给了
131
+ 真实图片时,也不需要为它编造提示词条目:
132
+
133
+ ```markdown
134
+ - 图片提示词项:无
135
+ - 输入参考图:REF-JIANGCHEN-LOOK(顺序:1)· 输入/参考图/江辰定妆.jpg《江辰定妆照》(用途:造型状态;控制:本集造型、面料质感;不得控制:镜头构图、动作、表情)
136
+ - 视觉依据:《视觉设定.md》·人物「江辰」(控制:身份、体态)。
137
+ ```
138
+
139
+ 只准备了一部分时,已核对的图不丢弃,但必须把缺口留在同一字段中:
140
+
141
+ ```markdown
142
+ - 输入参考图:REF-JIANGCHEN-LOOK(顺序:1)· 输入/参考图/江辰定妆.jpg《江辰定妆照》(用途:身份;控制:脸型、体态、本集造型;不得控制:场景地理、构图、动作);待补参考图:夜间走廊地理、本镜起始帧
143
+ ```
144
+
145
+ 两者也可同时存在,但各用各的定位符:
146
+
147
+ ```markdown
148
+ - 图片提示词项:IMG-JIANGCHEN-SHEET《江辰角色板》(控制:身份、体态)
149
+ - 输入参考图:REF-CORRIDOR-COMPOSITION(顺序:1)· 输入/参考图/走廊构图.jpg《走廊构图参考》(用途:构图;控制:占画比例、留白;不得控制:人物身份、动作、剧情事件)
150
+ - 视觉依据:《视觉设定.md》·人物「江辰」(控制:身份、体态);地点「旧走廊」(控制:空间地理、出入口)。
151
+ ```
152
+
153
+ ## `图片提示词.md`
154
+
155
+ 每项一个可投产的角色板、场景板、道具板或状态图。标题使用 `IMG-...` ID;正文放在
156
+ `### 可复制提示词` 的引用块里,前面只保留用途和参考约束。
157
+ 这里的 `IMG-...` 是提示词条目 ID,不是已生成图片的记录。
158
+
159
+ ```markdown
160
+ ## IMG-JIANGCHEN-SHEET · 江辰角色板
161
+ - 用途:锁定身份、体态和本集造型。
162
+ - 参考:无;若有真实参考图,使用与分镜相同的完整 `REF-...` 格式,说明顺序、项目相对路径、中文名称、用途、控制与不得控制范围。
163
+
164
+ ### 可复制提示词
165
+ > 按项目提示词语言编写的正文……
166
+ ```
167
+
168
+ ## `视频提示词.md`
169
+
170
+ 与分镜一一对应时沿用镜头号并使用 `MOTION-...` ID。若「输入参考图」中的 `REF-...` 已全部就绪,使用图生视频,正文
171
+ 只需重述运动所需的局部起点和防漂移事实;只有「输入参考图:无(创作者已明确选择文生视频)」才使用文生视频,正文必须自足地
172
+ 包含人物、造型、地点、构图、光线等本镜需要的静态视觉锚点,不能用 `preserve/保持已有外观`
173
+ 代替模型并未收到的图片。「待补参考图」会阻止最终视频提示词;视频文档中的「输入参考图」必须与对应分镜逐字一致。
174
+
175
+ 除非剧本或创作者明确要求,视频正文用项目提示词语言直接声明全镜任何时刻都不生成非画内字幕、
176
+ caption 和对白文字叠加,不能只写抽象的“文字层为空”,让对白只通过声音与口型发生。旗帜、标牌、
177
+ 屏幕等画内文字另走已接受的文字政策:`exact_readable` 逐字携带准确
178
+ 字符、语言、承载面和位置;关闭字幕不能写成会同时抹掉这些画内文字的全局 `no-text`。
179
+
180
+ ```markdown
181
+ ## MOTION-EP001-001 · 门外停步
182
+ - 分镜:SHOT-EP001-001
183
+ - 时长:4s
184
+ - 生成方式:文生视频
185
+ - 输入参考图:无(创作者已明确选择文生视频)。
186
+ - 静态视觉锚点:A lean young East Asian man in a dark-grey worn suit stands outside an old corridor door under cold overhead light.
187
+ - 起始帧:SHOT-EP001-001 的冻结关键帧
188
+ - 状态链:右手悬在门把上方 → 门内玻璃落地触发他收回右手并转移视线 → 右手收回,视线落到门缝
189
+ - 终点:右手收回;门内玻璃落地;人物视线转向门缝。
190
+
191
+ ### 可复制提示词
192
+ > A lean young East Asian man in a dark-grey worn suit stands outside an old corridor door under cold overhead light. His right hand starts suspended above the handle, then withdraws……
193
+ ```
194
+
195
+ 有真实输入图时改用「生成方式:图生视频」,并原样携带分镜的完整 REF 声明;静态视觉锚点只写
196
+ 执行动作所需、且不能仅靠参考图用途推断的可见起点,不把路径或 REF ID 放进可复制正文。
197
+
198
+ ## 共通规则
199
+
200
+ - 提示词正文必须可直接复制,不放占位符、流程备注或 QA 结论。
201
+ - `### 可复制提示词` 下的引用块是**一条**提示词:从第一行到最后一行整段复制进那一次生成。方言把它分成 `subject_definitions` / `overall_soundscape` 这类段落时,段落仍属于同一条正文,不是分几次提交,也不是只交第一段。
202
+ - 引用使用文档里看得见的场景/镜头/提示词 ID;不写文件哈希和内部路径。
203
+ - 用户没要求的字段不为“完整”而补造。
204
+ - 完成或修订五份文档后运行 `python3 {技能目录}/scripts/creator_markdown_check.py 剧集/<EP> --project-root .`,校验可执行的跨文档结构;内容质量仍由创作者审查。
@@ -1,82 +1,92 @@
1
- # Creator Workflow
1
+ # Creator-first 工作流
2
2
 
3
- ## Creator authority
3
+ ## 唯一落盘
4
4
 
5
- `short-drama.json#/creator_authority` stores accepted creator constraints, visual direction and production
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
- Use project-relative paths and stable record IDs when one artifact points to another. Human-facing records do not
11
- need lifecycle digests. Deterministic source indexes may still carry byte spans because their job
12
- is exact source extraction, not workflow state.
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
- ## Entry points
15
+ 没有内容时不预建空文件。一个请求只创建它实际需要的文档;从剧本、视觉设定、分镜或提示词任一
16
+ 阶段直接进入都合法,不为补齐名义流水线伪造上游。
15
17
 
16
- | Creator asks for | Owner | Minimum input |
17
- |---|---|---|
18
- | Develop an idea or episode map | `short-drama-develop` | brief or conversation |
19
- | Analyze a long source | `short-drama-novel-analyze` | preserved source file |
20
- | Write or revise an episode | `short-drama-write` | idea, episode card, outline or script |
21
- | Extract assets | `short-drama-assets` | current script |
22
- | Create image prompt specs | `short-drama-image-prompts` | current asset facts |
23
- | Design shots/keyframes | `short-drama-storyboard` | current script and asset facts |
24
- | Create video prompt specs | `short-drama-video-prompts` | current shots/keyframes |
25
- | Produce images, video or TTS | `short-drama-produce` | current bounded job plus explicit confirmation after preview |
26
- | Review | `short-drama-review` | bounded artifact set |
27
- | Initialize, continue, show or deliver | `short-drama` | project path or target path |
18
+ 单集创作主链不落盘 JSON/JSONL、索引、指纹、覆盖表、QA 报告、审核表、交接胶囊或恢复状态。
19
+ 需要 ID 时写进 Markdown 标题;结构检查和批次状态留在本轮上下文,不成为第六份创作文档。建议
20
+ 写法见 [五份创作文档](creator-documents.md)。
28
21
 
29
- Direct entry is valid. Do not fabricate upstream files merely to make a nominal pipeline complete.
22
+ 长篇原著拆解或多集材料识别可以在 `项目开发/` 使用机器索引;它们是用户点名时才建立的可选分析
23
+ 工作区,不是单集创作真相。其存在不会改变 `剧集/<EP>/` 的五文档布局,也不能要求单集 owner
24
+ 补造并行结构化产物。
30
25
 
31
- ## Branches
26
+ 创作者说明跟随项目语言。图片和关键帧正文跟随 `prompt_language`;视频正文优先跟随目标视频模型
27
+ 档案的 `video_prompt_language` 和 `video_prompt_dialect`,未声明时回退 `prompt_language` 与通用自然语言。
28
+ `native_duration_seconds` 在分镜规划时生效,不能等生产提交才发现镜头不合法。没有 `short-drama.json` 时,图片与
29
+ 关键帧正文默认使用 `en`;视频正文根据目标模型确认,目标也未声明时沿用用户当前语言。描述语言、
30
+ 对白口语语言和画内文字互相独立,不能用一个推断另一个。
32
31
 
33
- ```text
34
- direction / story development (when needed)
35
- |
36
- screenplay
37
- |
38
- assets
39
- / \
40
- image prompts storyboard -> video prompts
41
- \ /
42
- confirmed production
43
- |
44
- review -> delivery
45
- ```
32
+ 用户在 Brief 或当前请求中已经给出的项目级事实要在初始化时同步到 `short-drama.json`:至少包括已确认的
33
+ 集数、单集目标时长、画幅和目标生产档案。生产档案只有 `unset` 与 `accepted` 两种项目级状态;下游只读取
34
+ 已接受档案,不用临时状态代替创作者决定。
35
+ 同一场次连续生产且目标模型支持续接时,生产档案把连续性路由声明为“上一段实际视频 + 实际尾帧接力”;
36
+ `one-shot-per-generation`、单镜容器或多镜容器只描述打包粒度,不能用来取消这条连续性路由。
37
+
38
+ ## 请求范围
46
39
 
47
- Look Development is optional. Image prompts and storyboard are sibling branches after asset facts exist.
40
+ 用户点名的范围就是本轮范围。“写完这一集”完成整集;“从剧本做到视频提示词”依次完成所点名
41
+ 阶段。场次、资产组和镜头组只是内部上下文批次,通过后自动继续,不逐批交还控制权,也不为每个
42
+ 中间文件另开接受、审查或 QA 回合。
48
43
 
49
- ## Preview, confirmation and revision
44
+ 只在三处停下:
50
45
 
51
- A request for an end-to-end preview authorizes drafting, not acceptance. Its runtime contract is **one bounded work unit per turn**:
46
+ 1. 点名范围已经完成;
47
+ 2. 缺失事实形成会显著改变剧情或视觉方向的真实创作分叉;
48
+ 3. 下一步会调用外部生产,必须先展示精确 job 并取得显式确认。
52
49
 
53
- 1. choose one owner stage; for a high-fanout stage, choose one explicit contiguous batch;
54
- 2. read only that unit's direct inputs, draft or revise it, and run its local structural checks;
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**.
50
+ ### 一句话把范围说清楚
51
+
52
+ 请求不需要固定话术,技能也不靠关键词匹配。下面几句只是把「一句话里到底要交代哪几件事」写明白,
53
+ 照抄或改写都可以:
54
+
55
+ ```text
56
+ 写 EP001 的分镜和每镜冻结关键帧。目标视频模型是 MiniMax H3,先把它写进项目档案。
57
+ ```
57
58
 
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.
59
+ ```text
60
+ EP001 分镜确认采用,按 MiniMax H3 写视频提示词。人物、场景、道具要跨镜一致,
61
+ 所以先在项目里找已有的角色图、场景图、道具图和本镜起始帧并绑成参考;缺哪张就列出来,别改成文生视频。
62
+ ```
63
+
64
+ ```text
65
+ EP001 的角色图和场景图在 输入/参考图/ 下,本镜起始帧在 剧集/EP001/制作成果/images/ 下,
66
+ 请按这些图写 MiniMax H3 的图生视频提示词,逐镜说明送哪一张起始帧、哪些人物/道具/场景图。
67
+ ```
68
+
69
+ ```text
70
+ 这一集没有也不打算做参考图,明确走文生视频,静态视觉锚点写足。
71
+ ```
62
72
 
63
- For a revision:
73
+ 一句请求里值得交代的是四件事:**做哪一集的哪一阶段**、**目标视频模型**、**参考图在哪里或还没有**、
74
+ **没有图时是等图还是明确走文生视频**。前三件缺一件,技能会来问或按已接受档案推进;最后一件从不替
75
+ 创作者假设——没有说“明确走文生视频”,就当成还在等图。
64
76
 
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.
77
+ 结构检查服务于发现错误,不是创作门禁。能在当前文档直接修正的问题直接修正;审查、归档和媒体
78
+ 生产只有用户点名时开始。安装 selftest、全量 QA 和 demo 验证属于技能维护,不属于普通创作请求。
71
79
 
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.
80
+ ## 创作质量
74
81
 
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.
82
+ 简化文件数量不等于降低内容标准。各 owner 按具体问题读取自己的 craft references,检查剧情因果、
83
+ 人物声音、资产身份、空间连续性、镜头职责、可生成性和提示词边界。规则与路由总表见
84
+ [knowhow-index.md](knowhow-index.md)。最终回报只说明已完成范围、关键创作决定、真实未决问题和可选
85
+ 下一步,不汇报内部流水线噪音。
77
86
 
78
- ## Delivery boundary
87
+ ## 生产边界
79
88
 
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.
89
+ 图片、视频、TTS 和音乐生产仍遵守 `preview -> explicit confirm -> run`。生产工具可以在隐藏运行目录
90
+ 保存 job、确认和审计记录;这些是付费/外部副作用的必要边界,不要求模型把创作内容再抄成长期
91
+ JSON/JSONL。job 必须把拥有当前提示词的 Markdown 写入 `source`,输出写到
92
+ `剧集/<EP>/制作成果/`;任何提示词、参数、输入或输出路径变化都需要重新预览和确认。
@@ -35,21 +35,26 @@
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` | 决定复用、新变体、新身份或未决 | 相机角度通常不是资产变体 |
41
+ | 原著自带的真实品牌与现实实体 | `$short-drama-assets` | 剧本沿用了原著专名,且该专名指向现实存在的品牌、商标、机构或人物 | 不判断合规、不给禁令、不内置清单;只把选择交给创作者并留痕 |
40
42
  | 资产图片提示词 | `$short-drama-image-prompts` | 把已接受资产投影为单帧可见规格 | 不承载有先后顺序的剧情动作 |
41
43
  | 场景板光线与跨 View 一致 | `$short-drama-image-prompts` | 同一地点要拆多个观察方向、且这些板会被互相剪接 | 朝向造成的逆光/落影差异不需拉平 |
42
44
  | 图片提示词定点修改 | `$short-drama-image-prompts` | 修改局部并冻结 preserve set | 不把重写整图伪装成局部编辑 |
43
45
  | 镜头目的与覆盖 | `$short-drama-storyboard` | 从剧本建立有动机的镜头 | 不为景别多样性硬拆镜 |
44
46
  | 场次视觉计划与 Coverage Audition | `$short-drama-storyboard` | 关键场次需先比较观众立场、信息时机、空间、摄影与声音运动 | 可选中间层,不拥有剧本事实或 shot 边界,不规定宫格/镜头数 |
45
47
  | 冻结关键帧 | `$short-drama-storyboard` | 写镜头起点的可冻结瞬间 | 不写动作链或镜头终态 |
48
+ | 漫剧关键帧视觉词表 | `$short-drama-storyboard` | 视觉方向已接受为漫剧/二维漫画形态,要为关键帧稳定投影共享画风与当前可读性约束 | 全部是 `taste_option` 选项,不设质量门槛,不替代身份、地理与边界事实 |
46
49
  | 多人场面调度与交付面遮挡 | `$short-drama-storyboard` | 多人、群体、证据揭示、动态物体场面,或竖屏播放面会叠加遮挡 | 不把一个布局复用于所有题材;遮挡区来自已声明交付方案,不设通用安全框 |
47
50
  | 视频运动规格 | `$short-drama-video-prompts` | 把已接受镜头边界写成时间变化 | 不改镜头、资产或剧本权威 |
48
51
  | 交付容器与分段算术 | `$short-drama-video-prompts` | 项目声明了分段或多镜打包的交付方式 | 打包方式不改写镜头边界与可审查性 |
49
52
  | 交付路由与执行触发词 | `$short-drama-video-prompts` | 项目声明了逐镜以外的路由,或某路由要求固定字样 | 触发词与路由都由创作者档案声明,本套件不自造字样,续接不产生第二个起点权威 |
50
53
  | 表演动作与时长 | `$short-drama-video-prompts` | 动作、台词与落点可能超载 | 不用每秒动作数设通用阈值 |
51
54
  | 摄影机、声音与相连边界 | `$short-drama-video-prompts` | 写运镜、环境运动、口型或声音方向 | 不添加无来源的音乐/事件 |
55
+ | 目标执行端能力档案 | `$short-drama-video-prompts` | 执行端的时长、参考方式、声音同轨或长度上限会改变正文写法 | 能力由创作者声明不由推断;不内置模型清单,不因收敛改写已接受边界 |
52
56
  | 跨场与跨镜连续性 | `$short-drama-assets` | 状态变化会传给下一场/镜/集 | 不复制整本 设定集 到每镜 |
57
+ | 跨镜可见事实上锁 | `$short-drama-assets` | 服装、道具的颜色/材质在镜与镜之间漂移,参考图管不到 | 锁不变事实,不锁状态、姿势与镜头瞬态;锁面不替创作者选颜色 |
53
58
  | 制作形态翻译 | `$short-drama` | 把实拍、二维、三维、水墨等方向投影到各阶段 | 风格名或模型代码不是生产决策 |
54
59
  | 独立证据审查 | `$short-drama-review` | 冻结目标后写 finding 与 verdict | reviewer 不编辑 owner 来源 |
55
60
  | 项目生产观察与校准 | `$short-drama-review` | 有授权文字观察且需定位到准确 prompt/spec/reference/config | 只在当前项目和版本有效;未观察结果保持未知 |
@@ -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