@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
@@ -97,8 +97,7 @@ def main() -> int:
97
97
  == "gpt-image-2",
98
98
  "GPT Image 2 profile compiled the wrong model",
99
99
  )
100
- require(
101
- compile_seedance_payload(
100
+ seedance = compile_seedance_payload(
102
101
  {
103
102
  "modality": "video",
104
103
  "prompt": "slow push in",
@@ -109,8 +108,10 @@ def main() -> int:
109
108
  model="configured-endpoint",
110
109
  allowed_ratios={"9:16"},
111
110
  duration_range=(5, 10),
112
- )["content"][0]["text"].endswith("--ratio 9:16 --dur 5"),
113
- "Seedance profile did not compile explicit prompt switches",
111
+ )
112
+ require(
113
+ seedance.get("ratio") == "9:16" and seedance.get("duration") == 5,
114
+ "Seedance profile did not compile explicit API parameters",
114
115
  )
115
116
  require(
116
117
  compile_minimax_music_payload(
@@ -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、固定镜头风格本身不阻断。
@@ -18,7 +18,7 @@
18
18
 
19
19
  ## 一、先分清什么问题必须阻断
20
20
 
21
- - `structural_invariant`:引用、哈希、明确时长、同一区间摄影机指令冲突、已声明
21
+ - `structural_invariant`:可见引用、明确时长、同一区间摄影机指令冲突、已声明
22
22
  起点/终点不一致等可以直接证明的问题;本地检查可以阻断。
23
23
  - `reviewed_invariant`:剧情意义是否丢失、人物反应是否承接后果、动作是否可执行、
24
24
  指令是否被改写;审查者引用资料给 `REVISE`。
@@ -38,7 +38,7 @@
38
38
 
39
39
  检查:
40
40
 
41
- - 原文覆盖表是否为每个制作相关段落说明去向;
41
+ - 是否能从剧本的每个制作相关段落直接追到承担它的镜头或声音;
42
42
  - 每个有明确来源的动作是否只实现一次;
43
43
  - 关键结果落地后,观众是否能看到受影响者的反应或后果;
44
44
  - 重新编组前后,原文段落、镜头目的、起点/终点与声音引用是否仍相同。
@@ -55,7 +55,7 @@
55
55
  先核对负责环节的起止边界和资产版本;若剧情确实需要变化,向对应技能
56
56
  请求状态或镜头修改,不在提示词里偷偷补故事。
57
57
 
58
- 选择性环境变换还要核对 `VID-11`:触发、准确目标范围、结束几何/状态与 `preserve_set`
58
+ 选择性环境变换还要核对 `VID-11`:触发、准确目标范围、结束几何/状态与保持项
59
59
  是否同时存在;相邻但非目标的人物、道具、文字承载面和空间锚点是否保持原位置、数量与
60
60
  状态。只写“门消失”“地面折叠”而不写留下什么及什么必须不变,属于无法确认能否执行的问题。
61
61
 
@@ -79,14 +79,14 @@
79
79
 
80
80
  ### 6. 版本和执行状态冒充内容权威
81
81
 
82
- 同一集、镜头或提示词可能保留多个历史版本。审查前先沿 `sources` 声明的 owner、artifact、
83
- 引用的 record ID 解析**当前权威版本**;文件更新时间、编号大小、默认展示项或最近一次执行状态
84
- 只能帮助定位候选,不能替代 creator acceptance。下游引用旧版本时,即使内容看似合理也要
85
- 先报告 stale binding,而不是把旧稿重新解释成现行要求。
82
+ 同一集、镜头或提示词可能保留多个历史版本。审查前先读取当前 creator-visible 文档,并按文件名、
83
+ 标题 ID 和文中明确写出的母版/替代关系判断当前版本;文件更新时间、编号大小、默认展示项或最近一次
84
+ 执行状态只能帮助定位,不能替代创作者当前决定。下游仍引用旧标题时,即使内容看似合理也要报告
85
+ 版本引用过期,而不是把旧稿重新解释成现行要求。
86
86
 
87
87
  生成或处理任务的技术状态只说明某次执行结束到哪一步,不证明语义质量。任何状态为成功的
88
- 历史记录都必须写明当时准确的提示词记录、资产/镜头 refs 与配置;审查仍比较这些文字是否
89
- 覆盖当前 accepted artifact。没有看过媒体时,不得从技术状态、重试次数或结果地址声称画面、
88
+ 历史记录都必须写明当时准确的提示词标题、资产/镜头引用与配置;审查仍比较这些文字是否
89
+ 覆盖当前创作者可见文档。没有看过媒体时,不得从技术状态、重试次数或结果地址声称画面、
90
90
  表演、文字和连续性已经正确。
91
91
 
92
92
  ## 三、指令优先级与改写回归(REV-09)
@@ -126,11 +126,10 @@
126
126
  不能证明提示词覆盖了原动作、反应、台词与已确认的项目指令。审查者必须比较
127
127
  改写前后必须保留的内容。
128
128
 
129
- 缩短修改若形成补拍或替代版,必须在 `coverage_scope` 标明 `pickup/alternate`、同一文件内
130
- 的母版或补充运动记录 ID,并把每项原文要求对应到当前运动字段或说明去向。普通母版省略
131
- `coverage_scope`,不为“没有版本关系”制造占位账目。
132
- 补拍默认不替代母版;替代版只能提出替代请求,最终决定由下游审查结论
133
- 指名替代版或母版的记录,不能回写运动规格制造循环引用。若有内容丢失,再由
129
+ 缩短修改若形成补拍或替代版,必须在 `视频提示词.md` 中标明版本类型、同一文件内的母版或补充
130
+ `MOTION-...` 标题,并把每项原文要求对应到当前版本或说明去向。普通母版不为“没有版本关系”制造
131
+ 占位账目。补拍默认不替代母版;替代版只能提出替代请求,最终由审查结论直接指名保留哪一个标题,
132
+ 不能让两个版本互相声明对方才是当前版本。若有内容丢失,再由
134
133
  分镜或视频提示词技能决定保留其他镜头、拆镜、延长、删减或请求上游修改。
135
134
 
136
135
  ## 四、各环节证据问题
@@ -155,8 +154,8 @@
155
154
  `no-text` 删除参考像素?
156
155
  - 每张参考图的 `role`、可参考内容与不可照搬内容是否明确?构图、尺度或效果参考有没有
157
156
  改写本来不该由它决定的身份、内容、文字或状态?
158
- - 像素、文字、水印或裁切检查是否有准确的观察记录;没有时是否保持 `unverified`,
159
- 而不是从 JSON 引用或负面词推断已经看过输入参考图?
157
+ - 像素、文字、水印或裁切检查是否有准确的观察记录;没有时是否明确写“未观察”,
158
+ 而不是从文件引用或负面词推断已经看过输入参考图?
160
159
  - 定点修改是否写准确目标、`changes` 与 `preserve_set`?
161
160
  - 同一地点在同一时间/天气 state 下的各观察方向板,主光来源、冷暖主次、光比方向与实际
162
161
  灯具开关是否对齐(`IMG-10`)?不一致时是否有已记录的成因与对应 delta?逐板单独看
@@ -9,15 +9,13 @@
9
9
  - `generated_result`:某个准确提示词/规格版本、参考槽位集合和制作配置下的结果观察;它可以支持
10
10
  项目内校准,但不能自动变成跨项目、跨配置或跨制作方式的定律。
11
11
 
12
- 两种记录都要写明被观察的媒体、观察方法、准确文本 refs、观察区域/时间段、限制与观察者。
13
- `generated_result` 还要绑定 `prompt_or_spec_refs`、每个稳定 `slot_id/order`、production profile
14
- 与 `valid_only_for`。模板见核心的生产观察记录;审查只读取项目提供的记录,不在公开运行时找数据。
15
- `evidence_state: active` 只表示这份有界观察仍可作为证据使用,不表示内容被接受或质量通过;
16
- 证据被撤回、被观察的媒体已经换过或来源无法复核时,不沿用该记录做校准,而是保留历史并另记失效原因。
17
- 不要给观察套用创作产物的 `candidate/accepted` 状态。
18
- 实际项目记录建议放在受保护的 `输入/production-observations.jsonl`(legacy 项目为
19
- `inputs/production-observations.jsonl`),由创作者或获授权观察者提供;它不属于任何 skill 的
20
- 可发布产物,也不进入文本交付包。公共 `assets/production-observation.example.jsonl` 只是空白示例。
12
+ 两种记录都要写明被观察的媒体、观察方法、准确的文档标题引用、观察区域/时间段、限制与观察者。
13
+ 生成结果还要写明对应提示词或镜头标题、参考图顺序、制作形态/配置和结论适用范围。审查只读取
14
+ 项目提供的记录,不在公开运行时找数据。记录仍可使用只代表这份有界观察可复核,不表示创作内容
15
+ 已接受或质量通过;证据被撤回、媒体已经换过或来源无法复核时,不沿用它做校准,并写明失效原因。
16
+
17
+ 实际项目记录可以由创作者放在受保护的 `原始资料/生产观察.md`,也可以直接在当前请求中提供;它不属于
18
+ 五份单集创作文档,也不进入文本交付包。
21
19
 
22
20
  ## 选择有内容代表性的试跑
23
21
 
@@ -19,9 +19,9 @@
19
19
 
20
20
  ## Review scope
21
21
 
22
- Start from the current artifact files and accepted creator constraints. Prefer an uninvolved reviewer or isolated
23
- context when available; otherwise perform an honest self-check. The project CLI stores only a verdict, optional
24
- reviewer label and note. It does not authenticate reviewer identity or require runtime provenance.
22
+ Start from the current creator-visible files and the constraints the creator has explicitly chosen. Prefer an
23
+ uninvolved reviewer or isolated context when available; otherwise perform an honest self-check and say so in the
24
+ review Markdown. A reviewer label is disclosure, not authenticated identity.
25
25
 
26
26
  If a target changes during review, reread that target before recording the verdict. Do not recursively invalidate
27
27
  unrelated findings.
@@ -30,11 +30,11 @@ unrelated findings.
30
30
 
31
31
  Mechanical examples:
32
32
 
33
- - invalid JSON/JSONL, missing or duplicate IDs, unresolved references;
33
+ - missing or duplicate Markdown IDs, broken links or unresolved references;
34
34
  - unknown asset variants or contradictory camera flags;
35
35
  - explicit segments not matching their declared duration;
36
36
  - readable text conflicting with the accepted text policy;
37
- - owner writing outside its authority;
37
+ - a stage document silently taking over facts owned by another document;
38
38
  - delivery containing private or unapproved material.
39
39
 
40
40
  Semantic examples:
@@ -51,7 +51,7 @@ Semantic examples:
51
51
  A useful finding contains:
52
52
 
53
53
  1. stable diagnostic/rule ID when one exists;
54
- 2. project-relative target plus record, field, block or shot when useful;
54
+ 2. project-relative file plus heading ID, line number or shot when useful;
55
55
  3. bounded quotation or conflicting facts;
56
56
  4. audience, continuity or production impact;
57
57
  5. required outcome and preserve set, not ghostwritten replacement prose;
@@ -60,9 +60,8 @@ A useful finding contains:
60
60
  “The dialogue is weak” is invalid. A finding should identify the exact exchange, say what fails to change, and tell
61
61
  the write owner what outcome must be restored.
62
62
 
63
- A findings or verdict file declares each upstream snapshot once under `sources`, and every reference names that
64
- snapshot key plus the record. Those source references are archival review metadata, not lifecycle inputs and not proof
65
- of reviewer independence.
63
+ The review Markdown cites the current file name, heading ID, line number or a necessary short quotation directly.
64
+ It does not copy upstream snapshots, invent record IDs or create another version of the source material.
66
65
 
67
66
  ## Cross-layer synthesis
68
67
 
@@ -26,32 +26,28 @@ creator-approved idealization or deliberate counter-casting remains a taste choi
26
26
 
27
27
  ### Voice direction (optional, `AST-07`–`AST-12`)
28
28
 
29
- Only reviewed when a project records `voice_direction`. Timbre is carried by a
30
- bound reference recording, not by prose: identity is the reference binding plus
31
- the accepted pronunciations, and the text alongside it exists to select or judge
32
- a candidate, never to stand in for one.
29
+ Only reviewed when `视觉设定.md` records a voice direction. Timbre is carried by a
30
+ named reference recording, not by prose: identity is the reference plus the
31
+ creator's current pronunciation choices, and the text alongside it exists to
32
+ select or judge a voice, never to stand in for one.
33
33
 
34
34
  Fail when:
35
35
 
36
36
  - a project has no reference and a paragraph of adjectives is standing in for
37
- identity — that record must read `reference: null` and 待选型 instead;
37
+ identity — the voice section must say `待选型` instead;
38
38
  - a binding omits what it controls and what it must not, or lets the take's
39
39
  emotion, the recording space (reverb, mic distance) or background noise into
40
40
  identity (`AST-08`);
41
41
  - a claim about what is audible in a reference has no creator description and no
42
- authorized listening observation, yet admission is not `unverified` (`AST-09`);
43
- - one proper noun appears with two accepted spellings anywhere in the 设定集
42
+ authorized listening observation, yet is written as established fact (`AST-09`);
43
+ - one proper noun appears with two accepted spellings anywhere in `视觉设定.md`
44
44
  (`AST-10`) — this one is structural and blocks;
45
45
  - two characters designed together are bound to confusable references and no
46
46
  distinguishing trait names the nearest neighbour (`AST-11`);
47
47
  - a selection criterion is an emotion word, carries no counter-example, or the
48
48
  list has grown past a handful (`AST-12`);
49
49
  - reference audio bytes, a provider parameter, a model name, a task field or a
50
- URL appear in the 设定集 or the delivery package.
51
-
52
- The rendered `voice-casting.md` is a cache. A finding against it is a finding
53
- against the accepted record it projects, routed to assets — never a request to
54
- hand-edit the derived text.
50
+ URL appear in `视觉设定.md` or the delivery package.
55
51
 
56
52
  ### Location / View
57
53
 
@@ -107,7 +103,7 @@ apply type-specific criteria:
107
103
  - prop has no scale or text state;
108
104
  - negative constraints contradict the required visible fact;
109
105
  - edit request says “make better” without target/change/preserve;
110
- - rendered Markdown differs from accepted structured spec;
106
+ - `图片提示词.md` contradicts the current identity, state or text policy in `视觉设定.md`;
111
107
  - private URL, source ID, provider task field, or operator complaint leaks in.
112
108
  - “use the whole reference” does not say what may or may not be copied.
113
109