@oh-story/dsh 0.1.9 → 0.1.11

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 (529) hide show
  1. package/README.md +14 -14
  2. package/lib/client.js +209 -73
  3. package/lib/client.js.map +3 -3
  4. package/lib/drama/manifest.json +248 -168
  5. package/lib/drama/skills/short-drama/SKILL.md +16 -4
  6. package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
  8. package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
  9. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +14 -0
  10. package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
  11. package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
  12. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
  13. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +10 -0
  14. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
  15. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
  16. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
  17. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
  18. package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
  19. package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
  20. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
  21. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
  22. package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
  23. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
  24. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
  25. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
  26. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
  27. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
  28. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
  29. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
  30. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
  31. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
  32. package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
  33. package/lib/drama/skills/short-drama-edit/SKILL.md +65 -44
  34. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
  35. package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
  36. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
  37. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
  38. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
  39. package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
  40. package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
  41. package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
  42. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
  43. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
  44. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
  45. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
  46. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
  47. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
  48. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
  49. package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
  50. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +6 -4
  51. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +26 -67
  52. package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +31 -56
  53. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +42 -78
  54. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +44 -92
  55. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +14 -16
  56. package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1272 -125
  57. package/lib/drama/skills/short-drama-edit/scripts/selftest.py +113 -9
  58. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
  59. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
  60. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
  61. package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
  62. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
  63. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
  64. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
  65. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
  66. package/lib/drama/skills/short-drama-produce/SKILL.md +5 -1
  67. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
  68. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
  69. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  70. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
  71. package/lib/drama/skills/short-drama-review/SKILL.md +4 -5
  72. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
  73. package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
  74. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
  75. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
  76. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +24 -35
  77. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
  78. package/lib/drama/skills/short-drama-storyboard/SKILL.md +23 -11
  79. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
  80. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  81. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
  82. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +139 -34
  83. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +5 -3
  84. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +15 -12
  85. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +29 -0
  86. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
  87. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
  88. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +52 -39
  89. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -21
  90. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +9 -23
  91. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +14 -26
  92. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
  93. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
  94. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
  95. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -2
  96. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
  97. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
  98. package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
  99. package/lib/drama/skills/short-drama-write/SKILL.md +10 -7
  100. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
  101. package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
  102. package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
  103. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
  104. package/lib/index.js +346 -98
  105. package/lib/index.js.map +4 -4
  106. package/lib/novel-to-game/README.md +299 -59
  107. package/lib/novel-to-game/README_ZH.md +299 -56
  108. package/lib/novel-to-game/VERSION +1 -1
  109. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
  110. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
  111. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
  112. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
  113. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
  114. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
  115. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
  116. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
  117. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
  118. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
  119. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
  120. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
  121. package/lib/novel-to-game/manifest.json +77 -87
  122. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
  123. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
  124. package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
  125. package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
  126. package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
  127. package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
  128. package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
  129. package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
  130. package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
  131. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
  132. package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
  133. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
  134. package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
  135. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
  136. package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
  137. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
  138. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
  139. package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
  140. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
  141. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
  142. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
  143. package/lib/oh-story/manifest.json +607 -327
  144. package/lib/oh-story/roles/chapter-extractor.md +177 -237
  145. package/lib/oh-story/roles/character-designer.md +1 -2
  146. package/lib/oh-story/roles/consistency-checker.md +15 -13
  147. package/lib/oh-story/roles/narrative-writer.md +36 -38
  148. package/lib/oh-story/roles/story-architect.md +9 -61
  149. package/lib/oh-story/roles/story-explorer.md +20 -125
  150. package/lib/oh-story/roles/story-researcher.md +0 -1
  151. package/lib/oh-story/skills/story/SKILL.md +15 -9
  152. package/lib/oh-story/skills/story/VERSION +1 -1
  153. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
  154. package/lib/oh-story/skills/story/references/author-memory.md +46 -94
  155. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
  156. package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
  157. package/lib/oh-story/skills/story-deslop/SKILL.md +59 -73
  158. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
  159. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +12 -11
  160. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
  161. package/lib/oh-story/skills/story-deslop/references/author-memory.md +46 -94
  162. package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
  163. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +22 -5
  164. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
  165. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
  166. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
  167. package/lib/oh-story/skills/story-import/SKILL.md +64 -584
  168. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
  169. package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
  170. package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
  171. package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
  172. package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
  173. package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
  174. package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
  175. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
  176. package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
  177. package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
  178. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +98 -92
  179. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
  180. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
  181. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +15 -11
  182. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
  183. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +132 -27
  184. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +478 -15
  185. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +182 -23
  186. package/lib/oh-story/skills/story-long-analyze/SKILL.md +81 -270
  187. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +252 -0
  188. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +3 -3
  189. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
  190. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
  191. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
  192. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +138 -64
  193. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
  194. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
  195. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
  196. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
  197. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
  198. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
  199. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +55 -128
  200. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +6 -6
  201. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
  202. package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
  203. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
  204. package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
  205. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
  206. package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
  207. package/lib/oh-story/skills/story-long-scan/SKILL.md +45 -194
  208. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
  209. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
  210. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
  211. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
  212. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
  213. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
  214. package/lib/oh-story/skills/story-long-write/SKILL.md +49 -81
  215. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
  216. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +12 -11
  217. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +24 -202
  218. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
  219. package/lib/oh-story/skills/story-long-write/references/author-memory.md +46 -94
  220. package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
  221. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +7 -11
  222. package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
  223. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
  224. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
  225. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +4 -0
  226. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
  227. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
  228. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
  229. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
  230. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +7 -15
  231. package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
  232. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
  233. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
  234. package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
  235. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
  236. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
  237. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
  238. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
  239. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
  240. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
  241. package/lib/oh-story/skills/story-long-write/references/project-files.md +19 -13
  242. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +13 -5
  243. package/lib/oh-story/skills/story-long-write/references/reference-index.md +5 -6
  244. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
  245. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
  246. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  247. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
  248. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
  249. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +15 -11
  250. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +81 -121
  251. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +41 -139
  252. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
  253. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +57 -67
  254. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -253
  255. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
  256. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +6 -4
  257. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +19 -65
  258. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
  259. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
  260. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +226 -25
  261. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
  262. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +132 -27
  263. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
  264. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +7 -4
  265. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +304 -46
  266. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +478 -15
  267. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +182 -23
  268. package/lib/oh-story/skills/story-review/SKILL.md +31 -302
  269. package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
  270. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +12 -11
  271. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
  272. package/lib/oh-story/skills/story-review/references/author-memory.md +46 -94
  273. package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
  274. package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
  275. package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
  276. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +4 -0
  277. package/lib/oh-story/skills/story-review/references/review-quality.md +6 -11
  278. package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
  279. package/lib/oh-story/skills/story-review/references/solo.md +52 -0
  280. package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
  281. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
  282. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +15 -11
  283. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
  284. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
  285. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +478 -15
  286. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +182 -23
  287. package/lib/oh-story/skills/story-setup/SKILL.md +71 -452
  288. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
  289. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +12 -11
  290. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
  291. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
  292. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
  293. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +22 -5
  294. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
  295. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
  296. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
  297. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
  298. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
  299. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +2 -2
  300. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
  301. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
  302. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
  303. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
  304. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
  305. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
  306. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
  307. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
  308. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
  309. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
  310. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
  311. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  312. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +4 -4
  313. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +19 -65
  314. package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
  315. package/lib/oh-story/skills/story-short-analyze/SKILL.md +56 -110
  316. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
  317. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
  318. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
  319. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
  320. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
  321. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
  322. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
  323. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +611 -0
  324. package/lib/oh-story/skills/story-short-scan/SKILL.md +35 -65
  325. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
  326. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
  327. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
  328. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
  329. package/lib/oh-story/skills/story-short-write/SKILL.md +23 -175
  330. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
  331. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
  332. package/lib/oh-story/skills/story-short-write/references/author-memory.md +46 -94
  333. package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
  334. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
  335. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +4 -0
  336. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
  337. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
  338. package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
  339. package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -47
  340. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
  341. package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
  342. package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
  343. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
  344. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
  345. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
  346. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
  347. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
  348. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +21 -13
  349. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +116 -0
  350. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +99 -0
  351. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
  352. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
  353. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
  354. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
  355. package/lib/types/client/drama-production-view.d.ts.map +1 -1
  356. package/lib/types/client/file-activity.d.ts +19 -1
  357. package/lib/types/client/file-activity.d.ts.map +1 -1
  358. package/lib/types/client/index.d.ts.map +1 -1
  359. package/lib/types/client/production-prompts.d.ts +7 -0
  360. package/lib/types/client/production-prompts.d.ts.map +1 -1
  361. package/lib/types/client/production-runtime.d.ts +16 -0
  362. package/lib/types/client/production-runtime.d.ts.map +1 -1
  363. package/lib/types/client/video-studio.d.ts.map +1 -1
  364. package/lib/types/drama-adapters.d.ts +5 -3
  365. package/lib/types/drama-adapters.d.ts.map +1 -1
  366. package/lib/types/native-hooks.d.ts +53 -1
  367. package/lib/types/native-hooks.d.ts.map +1 -1
  368. package/lib/types/role-identity.d.ts +17 -0
  369. package/lib/types/role-identity.d.ts.map +1 -0
  370. package/lib/types/role-tool.d.ts.map +1 -1
  371. package/lib/types/skill-provider.d.ts.map +1 -1
  372. package/lib/types/video-project.d.ts.map +1 -1
  373. package/lib/types/workspace-route.d.ts.map +1 -1
  374. package/lib/video-recap/CHANGELOG.md +60 -1
  375. package/lib/video-recap/README.en.md +348 -137
  376. package/lib/video-recap/README.md +340 -136
  377. package/lib/video-recap/manifest.json +406 -251
  378. package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
  379. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
  380. package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
  381. package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
  382. package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
  383. package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
  384. package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
  385. package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
  386. package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
  387. package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
  388. package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
  389. package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
  390. package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
  391. package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
  392. package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
  393. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
  394. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
  395. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
  396. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
  397. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
  398. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
  399. package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
  400. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
  401. package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
  402. package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
  403. package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
  404. package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
  405. package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
  406. package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
  407. package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
  408. package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
  409. package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
  410. package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
  411. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
  412. package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
  413. package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
  414. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
  415. package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
  416. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
  417. package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
  418. package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
  419. package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
  420. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
  421. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
  422. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
  423. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
  424. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
  425. package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
  426. package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
  427. package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
  428. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
  429. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
  430. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
  431. package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
  432. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
  433. package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
  434. package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
  435. package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
  436. package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
  437. package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
  438. package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
  439. package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
  440. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
  441. package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
  442. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
  443. package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
  444. package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
  445. package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
  446. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
  447. package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
  448. package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
  449. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
  450. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
  451. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
  452. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
  453. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
  454. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
  455. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
  456. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
  457. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
  458. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
  459. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
  460. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
  461. package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
  462. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
  463. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
  464. package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
  465. package/lib/video-recap/skills/video-script/SKILL.md +16 -13
  466. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
  467. package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
  468. package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
  469. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
  470. package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
  471. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
  472. package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
  473. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
  474. package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
  475. package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
  476. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
  477. package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
  478. package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
  479. package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
  480. package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
  481. package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
  482. package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
  483. package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
  484. package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
  485. package/lib/video-recap/skills/{video-script/scripts/agent_brief.py → video-understanding/scripts/briefing/builder.py} +38 -35
  486. package/lib/video-recap/skills/video-understanding/scripts/{brief_context.py → briefing/context.py} +4 -35
  487. package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
  488. package/lib/video-recap/skills/{video-script/scripts/brief_timeline.py → video-understanding/scripts/briefing/timeline.py} +5 -6
  489. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
  490. package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
  491. package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
  492. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
  493. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
  494. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
  495. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
  496. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
  497. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
  498. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
  499. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
  500. package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
  501. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
  502. package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
  503. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
  504. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
  505. package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
  506. package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
  507. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
  508. package/package.json +45 -45
  509. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
  510. package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
  511. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
  512. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -530
  513. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -559
  514. package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
  515. package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
  516. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +0 -678
  517. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
  518. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
  519. package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
  520. package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
  521. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
  522. package/lib/video-recap/skills/video-script/scripts/brief_context.py +0 -348
  523. package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
  524. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +0 -399
  525. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
  526. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +0 -327
  527. /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
  528. /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
  529. /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
@@ -1,109 +1,72 @@
1
1
  # 构建说明契约
2
2
 
3
- 构建说明只约束产品边界、实际运行方式和证明方式;不要规定实现模型能从环境正确决定的类、着色器、
4
- 框架或文件拆分。
3
+ 只压缩产品边界、必须保真的体验、实际运行方式与证据;不规定实现模型能自行决定的技术结构。
4
+ 以下是交接骨架,按项目填相关内容,不为空白补造系统。
5
5
 
6
6
  ```text
7
- # 成品目标
8
- targetFinish: [逐字继承 PRODUCT_BRIEF]
7
+ # 目标与设计
8
+ targetFinish: [继承 PRODUCT_BRIEF]
9
9
  buildStage: [whitebox | production]
10
10
  buildPath: [template | custom]
11
- [目标平台、目标交付物、受众、切片时长、视口/朝向/输入、分级、联网边界]
12
-
13
- # 必读设计
14
- - whitebox: [GAME_DESIGN.md]
15
- - production: [GAME_DESIGN.md, ART_DIRECTION.md]
11
+ [平台、交付物、受众、范围、视口/输入、分级、联网边界]
12
+ [whitebox 读取 GAME_DESIGN;production 追加 ART_DIRECTION]
16
13
 
17
14
  # 必须保真
18
- - 玩家承诺与核心幻想
19
- - experienceProfile: [逐字继承 GAME_DESIGN]
20
- - 3–5 个核心动词及各自输入、可观察状态变化
21
- - 会改变结果的规则、三段弧结束标记
22
- - 界面语言、人物声口和禁用句式
23
- - 叙事项目追加主要路径、结局条件、持久旗标读取点和人物知识边界
24
- - production 追加:每个界面/模式的招牌时刻、HUD 层级、主游玩面板的单焦点阅读边界与美术禁区
25
-
26
- # 可执行模型(两阶段都需要)
27
- - 最大风险与原型形态;采用 template 时列语法与脱离条件,custom 时列不可被模板替代的核心动词
28
- - 运行时真正消费的最小状态、动作、前置、效果、观察者/知识更新、事件和不变量
29
- - signature_command: [N/A,或 id / label / intents / slots / validators / commit;具体数量服从项目]
30
- - 到期事项与谈话回灌(实际采用时):来源、due/trigger、携带事实、重新上桌、结清;谈话只提交已验证结构
31
- - contentRevision / rulesRevision / saveSchemaVersion / seed
32
- - snapshot 用于载入,event log 用于定位与重放;两者不能互相冒充
33
- - 固定验证路径:初态摘要、输入序列、预期终态/反馈、相邻反例
34
- - 反馈 patch:issue id、owner、目标节点、兼容性、受影响路径与重放结果
35
-
36
- # 范围
37
- [必须包含;明确排除;最终范围差异]
38
-
39
- # 运行与验证
15
+ experienceProfile: [继承 GAME_DESIGN]
16
+ [玩家承诺、核心动作及可观察变化、会改变结果的规则和结束标记]
17
+ [产物语言与原作身份;叙事实际采用时记录路径、历史读取点和知识边界]
18
+ [production 继承关键游戏时刻、视觉约束与批准目标图]
19
+
20
+ # 最小实现与复现
21
+ [最大风险、原型形态、复用语法及脱离条件]
22
+ [运行时消费的状态、动作、前置、效果与不变量]
23
+ [初态、输入路径、预期结果;随机性相关时固定 seed]
24
+ [仅在采用生成式输入、知识权限、事件回放、存档迁移或专属命令时追加对应可执行模型合同]
25
+ signature_command: [N/A,或继承 id / label / intents / slots / validators / commit]
26
+
27
+ # 运行
40
28
  toolchain:
41
29
  targetPlatform: [批准平台]
42
- targetRuntime: [计划交付的运行环境]
43
- testedRuntime: [本次实际启动的运行环境]
30
+ targetRuntime: [计划交付环境]
31
+ testedRuntime: [本次实际启动环境]
44
32
  engine: [实际引擎/框架]
45
- engineVersion: [实际版本或 NOT_AVAILABLE: 原因]
46
- runtimeVersion: [实际版本或 NOT_AVAILABLE: 原因]
33
+ engineVersion: [版本或 NOT_AVAILABLE: 原因]
34
+ runtimeVersion: [版本或 NOT_AVAILABLE: 原因]
47
35
  packageManager: [name@version;无则 none]
48
36
  commands:
49
37
  install: [命令;无需安装写 NONE]
50
38
  buildOrExport: [命令;无需单独构建写 NONE]
51
39
  start: [命令]
52
- modelCheck: [whitebox 的最窄模型/回放检查;production 可写 NONE]
53
- verify: [production 的一条权威验证命令;whitebox 写 NOT_APPLICABLE]
40
+ modelCheck: [whitebox 的最窄风险检查;production 可写 NONE]
41
+ verify: [production 权威命令;whitebox 写 NOT_APPLICABLE]
54
42
  verification:
55
43
  owner: [whitebox 为 design owner;production 为 game-qa]
56
- evidence: [whitebox 的结构化观察,或 production 完整运行生成的工作区相对路径]
44
+ evidence: [工作区相对路径]
57
45
 
58
- # 当前限制
59
- [scope / reason;testedRuntime 与 targetRuntime 不同时列目标独有未测试项]
46
+ # 限制
47
+ [实际范围差异、未测试项与原因;替代运行时不证明目标平台]
60
48
  ```
61
49
 
62
- ## 最小完成证据
63
-
64
- whitebox 只证明被选中的最大风险:规则/场景模型能启动,固定路径可运行与重放,偏差能定位回
65
- GAME_DESIGN;不要求 ART_DIRECTION、最终 HUD、完整路径或 `qa/verification.json`,也不进入六项 QA 结论。
66
-
67
- production 的权威 verify 必须能在一次完整路径中证明:启动成功、非空且变化的真实渲染、真实输入改变状态、核心
68
- 循环完成、至少一个设计结果可达、restart 回到定义初态。构建阶段只准备入口和可观察状态;由
69
- `game-qa` 实际运行一次并写结论。证据使用工作区相对路径,不能只留临时目录或逐点击截图。
70
-
71
- 可执行模型、事件日志或 patch 存在时,verify 还应在项目回归中证明同版本同 seed/输入可重放、非法
72
- 前置不提交、未选择分支不污染、未见证者不引用秘密,以及 patch 声明外的状态不变。这些诊断映射回
73
- 六项玩家效果或写 limitation,不新增顶层 QA gate。
74
-
75
- 测试环境与目标运行环境不同时,这六项只声明实际覆盖;源码身份、公网、营销、主观趣味、权利
76
- 判断和完成度声明不进入这六项机器事实。
77
-
78
- ## 条件台账
79
-
80
- ### 视觉与必需资产
81
-
82
- 只列批准的焦点资产与招牌时刻:资产键、生产状态、工作区证据和剩余问题。必需运行期资产失败必须
83
- 阻断或进入明确错误界面;可降级项须预先写 fallback,并证明核心动作、状态、结果、可读反馈和重开
84
- 仍成立。
85
-
86
- 同时继承 `ART_DIRECTION.md` 的明度边界。非低照度题材检查首屏、核心循环、夜景和结果页,禁止用
87
- 未经批准的全局黑罩、暗角、降曝光或灰色小字替代气氛设计;夜景至少能辨认人物轮廓与朝向、关键器物、
88
- 行动目标、正文/选项和结果信号。批准的暗调界面须保留约定的亮度或高对比 fallback,并在目标视口
89
- 用实际交互画面验证,而不是只验静态海报。
90
-
91
- 时代题材另列目标图批准状态和三轴合同:世界时代、表现媒介、人物理想化程度。未批准前只生产最小
92
- 样张;批准后批量资产必须引用目标图与身份母版,并继承光色、构图和文本留白。若用户否决样张,构建
93
- 立即停止同方向扩批,替换所有运行引用并从发布目录清掉旧图、试验图和未引用变体。
50
+ ## 完成证据
94
51
 
95
- ### 连续 3D
52
+ whitebox 只证明选中的最大风险,保留可复现的实际观察并定位回 GAME_DESIGN;
53
+ 不要求最终美术、完整产品路径或 `qa/verification.json`,不进入六项 QA 结论。
96
54
 
97
- 采用连续 3D 时记录输入控制权、相机/移动前向、失焦归零,以及会改变路线的可见布局与 collider
98
- 边界。不要把渲染帧率或一条成功路线当碰撞证明。
55
+ production 的权威 verify 必须在同一次完整运行中证明启动、真实渲染、真实输入、核心循环、
56
+ 至少一个设计结果与重开。证据留在工作区,不只保存在临时目录。
57
+ 构建者准备入口,不预填 PASS;game-qa 记录实际命令、退出码和结果。
99
58
 
100
- ### 动态媒体与语音
59
+ 允许定向检查、修复和复跑;最终 `qa/verification.json` 原子替换为当前完整运行结果,
60
+ 失败不得残留旧 PASS,也不能拼接不同版本或不同运行的六项成功。
61
+ 有事件、知识权限或 patch 时,将其相关回归纳入项目验证,不另设顶层通用门禁。
101
62
 
102
- 只记录游戏实际采用的媒体或语音资产、来源、运行文件、字幕/静音/缺音 fallback 和生成状态。密钥
103
- 不入库;未生成写 `NOT_RUN: 原因`。生成请求、营销旁白和可重建中间文件不作为最小 QA 证据。
63
+ ## 按需交接
104
64
 
105
- ## 权威验证
65
+ - 视觉:只列批准的焦点资产、生产状态、运行中证据和剩余问题,继承 ART_DIRECTION,不重新裁决风格。
66
+ 必需资产失败须明确报错;可降级项采用预先定义的替代,并验证玩家效果仍成立。
67
+ - 连续 3D:记录控制权、相机/移动前向、失焦归零,以及改变路线的布局与碰撞边界;
68
+ 帧率或一条成功路线不证明碰撞正确。
69
+ - 动态媒体/语音:记录实际资产、来源、运行文件、字幕/静音/缺音替代与生成状态,
70
+ 不把生成请求或营销旁白当成游戏运行证据。
106
71
 
107
- verify 可以组合现有游戏效果脚本,但最终 QA 只运行一次;由 `game-qa` 在 `qa/verification.json`
108
- 回写实际 command、exit code、完整路径、六项结果和当前限制。构建者不得预填 PASS 或另跑一套平行
109
- 验收。预算、时间或调用上限只会留下 NOT_RUN/FAIL、延期或缩小范围,不会替代证据。
72
+ 预算或工具缺口只能产生明确限制、NOT_RUN/FAIL 或经批准的范围调整,不能替代证据。
@@ -1,56 +1,25 @@
1
1
  # 动态媒体生产合同
2
2
 
3
- 仅当 `ART_DIRECTION.md` 已选择视频过场、环境循环或关键帧演出时使用。本文只规定改编连续性与
4
- 交接边界;图片、视频工具和模型由当前环境决定,使用前按其官方文档核实能力、许可、费用与输出格式。
5
-
6
- 动态媒体负责表现已批准的角色、场景和剧情状态,不重新设计人物身份、空间地理、玩法结果或镜头用途。
7
-
8
- ## 采用判断
9
-
10
- - 固定构图、无需玩家改变视角或空间关系的短演出适合预渲染媒体。
11
- - 输入会改变视角、位置、碰撞或战术信息时使用实时场景,不用视频伪装交互。
12
- - 每条动态媒体都必须有静帧或低动效表达;跳过或降级后仍保留信息、节拍、输入机会和结果。
13
- - 只有 brief 明确把该媒体列为必需玩家效果时,缺失才阻断完整路径;否则使用已登记的 fallback,
14
- 并把完成度差异写入 limitation。
3
+ 仅在 ART_DIRECTION 选择动态媒体时使用。工具和模型由环境决定,使用前核实当前能力、许可与费用。
4
+ 媒体表现批准的状态,不重新决定人物身份、地理或玩法结果;需要改变视角、位置或空间关系时不能用视频伪装交互。
15
5
 
16
6
  ## 最小台账
17
7
 
18
- 不要为每个供应商建立一套目录和审批流。在 BUILD_BRIEF 或资产台账中每条只记录:
19
-
20
- `asset_key | state_trigger | duration | references | locked_facts | allowed_motion | start_boundary | end_boundary | output | fallback | provenance | status`
21
-
22
- - `references`:已批准的角色、造型、场景或构图参考;声明各自允许控制的事实。
23
- - `locked_facts`:不得漂移的身份、服装、地理、道具状态、色板与材质。
24
- - `allowed_motion`:本镜允许发生的角色动作、状态变化和运镜,不重描外观。
25
- - `start_boundary` / `end_boundary`:镜头两端的位置、朝向、持物、服装、光线和剧情状态。
26
- - `provenance`:输入与输出的来源、权利边界和工作区路径;真实人物参考须有明确授权。
27
-
28
- ## 生产顺序
29
-
30
- 1. 先冻结持久事实与本镜临时状态,再生成关键帧或动态结果;不要用提示词临时补设计空白。
31
- 2. 已有可用参考时做受控变体,只描述本镜差量;没有参考时才从风格与事实锁生成第一张基准图。
32
- 3. 先用低成本草稿检查身份、构图、动作和边界,成立后再产最终尺寸;不要把分辨率当连续性。
33
- 4. 输出立即保存到工作区并使用稳定文件名;临时下载地址、供应商任务页和缓存不是游戏资产。
34
- 5. 密钥只留在受信环境。只在复现故障确有需要时保留去密钥请求摘要,不默认归档完整 API 往返。
35
-
36
- ## 连续性检查
8
+ 在 BUILD_BRIEF 或资产台账记录:
37
9
 
38
- 对每条媒体只检查会影响玩家理解的事实:
10
+ `asset_key | state_trigger | references | locked_facts | allowed_motion | start_boundary | end_boundary | output | fallback | provenance | status`
39
11
 
40
- - 首、中、尾代表帧中的角色身份、临时造型、场景地理、道具状态和色板没有无依据漂移;
41
- - 上一镜 `end_boundary` 能接到下一镜 `start_boundary`;
42
- - 设计规定的状态变化发生在正确镜头,未提前泄露或丢失;
43
- - 没有凭空增加人物、道具、肢体或第二个主角;
44
- - 正常速度下动作、字幕与输入窗口可读,跳过后仍进入同一合法状态。
12
+ - 参考声明允许控制的事实;锁定身份、服装、地理、道具状态与已批准风格。
13
+ - 本镜只改变允许的动作与状态;开始/结束边界需能衔接相邻镜头。
14
+ - 来源与权利可追溯,真实人物参考须有明确授权;不上传与本资产无关的原文或私人信息。
45
15
 
46
- 这是构建检查,不新增真人审片或独立 QA 门禁。审美偏好保留为主观风险;只有身份、状态、边界或
47
- 可读性破坏批准设计时才回流修复。
16
+ ## 连续性与运行验证
48
17
 
49
- ## 接入与失败
18
+ 检查代表帧中的身份、地理和道具是否漂移,状态变化是否发生在正确镜头,
19
+ 是否泄露未获知事实;已有参考时用其约束变体,不用提示词临时补设计空白。
50
20
 
51
- - 由游戏状态机触发,预载、播放、跳过、失焦、静音和资源释放行为必须明确。
52
- - 运行环境不能解码最终格式时,在构建期转成目标环境支持的格式,不在运行时临时请求供应商。
53
- - 可降级资产失败时落到台账中的 fallback;必需资产失败时显示明确错误并让对应玩家效果 FAIL。
54
- - 项目自己的媒体诊断映射回既有六项可玩结果,不生成媒体专属 PASS、报告或重复证据对象。
21
+ 在实际触发位置验证播放、跳过与降级。跳过或低动效版本仍进入同一合法状态,
22
+ 保留必要信息、输入机会和结果。最终运行文件保存在工作区,供应商任务页不是资产。
55
23
 
56
- BUILD_BRIEF 字段见 [build-brief-contract.md](build-brief-contract.md)。
24
+ 必需媒体失败时明确报错;可降级媒体采用已定义替代并记录完成度差异。
25
+ 相关诊断映射到现有六项玩家效果或 limitation,不另造媒体 QA 等级。
@@ -1,81 +1,46 @@
1
1
  # 可执行改编模型合同
2
2
 
3
- 可执行模型只保存当前候选运行时必须消费的因果语义,不复制策划理由、美术方向或整份内容库。若项目
4
- 已有代码原生状态机、对话引擎、规则表或引擎场景图,可直接把它声明为模型;不要为了文件名再造一份
5
- 平行 JSON/YAML。独立数据文件只有在运行时实际加载,或作为测试合同逐项对照实现时才存在。
3
+ 仅在生成式自由输入、知识权限、事件回放、存档迁移或专属命令需要时读相关部分。
4
+ 复用已有状态机、对话引擎或场景图,不为了合同再造平行 JSON/YAML;
5
+ 独立数据只有被运行时消费或被测试逐项对照时才存在。
6
6
 
7
- ## 选择原型与构建路径
7
+ ## 生成模型与规则的边界
8
8
 
9
- 先按最大风险选白盒:
9
+ 模型可解释输入、提出动作候选、写对白或表达已确认结果;规则器唯一提交时间、资源、位置、
10
+ 物件、知识、承诺、胜负与事件。候选按适用的 schema、前置、数值范围、知识权限和原作边界验证。
10
11
 
11
- | 风险 | 最小可用形态 | 不能据此证明 |
12
- |---|---|---|
13
- | 知识、承诺、分支回响 | 文本/场景状态沙箱 | 操作手感、空间与镜头 |
14
- | 资源、门槛、策略反制 | 回合状态板或桌面沙箱 | 实时节奏与物理 |
15
- | 两层互相读写 | 场景叙事 + 最小系统 | 未实现层的完整质量 |
16
- | 走位、视线、相机、物理 | 目标引擎灰盒 | 最终美术完成度 |
12
+ 表现层只读取已提交状态。换文字、镜头、动画或三维表现不能改变因果、观察者、归属或后续回读。
13
+ 秘密、证词与误判区分世界事实、玩家知道、人物知道或相信;普通事实不维护多层知识模型。
17
14
 
18
- `template` 表示已有交互语法能直接承载核心动词;记录模板提供什么、原作改变什么、何时必须退出模板。
19
- `custom` 表示核心动作依赖模板没有的操作或世界规则。路径只决定复用方式,不决定题材或成色。
15
+ ## 身份专属命令
20
16
 
21
- ## 最小语义面
17
+ 仅实现 GAME_DESIGN 已选的 `signature_command`,继承
18
+ `id / label / intents / slots / validators / commit`,不扩展成通用聊天。
22
19
 
23
- 按项目需要定义,不要求所有字段:
20
+ 解析器输出有限候选;schema、前置、资源、执行人可用性、空间权限、人物知识、
21
+ 冲突承诺或原作边界失败时,返回澄清/拒绝且不提交。
22
+ 否定、条件和互斥表达不能按关键词猜成相反行动。
24
23
 
25
- ```text
26
- version: content / rules / save schema
27
- state: stable id / type / initial / visibility / invariant / source anchor
28
- action: id / actor / preconditions / costs / effects / observers / reveals / consumes
29
- event: action / before+after summary / witnesses / seed use / future callback
30
- knowledge: world fact / player knows / character knows or believes / open question
31
- commitment: who promised what / to whom / when it becomes irreversible / later reader
32
- validation path: initial state / seed / inputs / expected state / expected feedback
33
- ```
24
+ 规则器输出执行轨迹与实际结果,再提交资源、物件、知识、关系、证物、见证和到期事项;
25
+ 叙述器只表达已确认事实。在线解析记录解析版本、规范化候选与验证结果,
26
+ 确定性回放从候选开始,不再次请求模型。
34
27
 
35
- 只对会改变玩家决策或产生泄密风险的事实维护知识权限;普通环境事实无需多层心智模型。事件账本保留
36
- “发生过什么”,关系或资源保留“现在是什么”;只存终值无法解释回响,只存事件也不适合即时载入。
28
+ 私人谈话若能改变主线,只提出事实、承诺、权限、拒绝或见证候选,经同一规则验证;
29
+ 自由效果字段、聊天摘要或忠诚估值不能直接成为状态权威。
37
30
 
38
- ## 裁决边界
31
+ ## 延期后果
39
32
 
40
- 规则器唯一提交时间、资源、位置、物件归属、知识、承诺、胜负和事件。生成模型可解释自由输入、提出
41
- 合法动作候选、写对白或根据已确认结果组织表达,但不能直接改最终状态。输出需先通过 schema、前置、
42
- 数值范围、知识权限、原作边界和分支污染检查。
33
+ 记录来源行动、到期条件、携带事实、当前状态、重新进入决策面的方式与结清事件。
34
+ 载入或回放不得提前触发、重复触发或让已结事项复活。
43
35
 
44
- 表现层只读取已提交语义。同一个事件可渲染为文字、镜头、动画或 3D 交互,但换表现不能更改原因、
45
- 观察者、物件归属、知识披露或后续回读。
36
+ ## 回放与兼容性
46
37
 
47
- ## 身份专属命令(按需)
38
+ 需要载入时用快照,需要重演时保留事件和规范化输入;不要求每个游戏同时维护两套存储。
39
+ 同一内容/规则版本、初态、seed 与规范化动作序列应复现规则终态和事件顺序;
40
+ 在线生成表达不参与权威状态比较。
48
41
 
49
- 只有 GAME_DESIGN 选择 `signature_command` 时实现,并逐字继承其 `id / label / intents / slots /
50
- validators / commit` 六组结构;各组的具体条目数量服从项目。输入解析器把角色化表述变成有限候选,
51
- 不拥有结算权;候选按项目需要携带 intent、执行人、对象、物件、地点、可见范围、期限等槽位。schema、前置、资源、
52
- 执行人可用性、空间权限、人物知识、冲突承诺和原作边界任一失败时返回结构化澄清/拒绝,状态保持不变。
42
+ 回滚遵循已批准设计。节点标识、变量语义、行动效果或知识权限变化时迁移或明确拒绝旧存档/日志,
43
+ 不能静默重解释。局部修改声明基础版本、目标、预期差异与兼容性,重放失败路径及相邻反例,
44
+ 检查修改范围外的不变量。
53
45
 
54
- 规则器再输出执行轨迹与实际结果:每一阻力环节说明通过、拒绝或部分完成,提交资源/物件/知识/关系,
55
- 创建证物、见证与到期事项;叙述器只把这些已确认事实写成场面。否定、条件和互斥表达不得靠关键词猜成
56
- 相反动作。若使用在线模型解析,日志保存 parser version、规范化候选与验证结果;确定性回放从候选开始,
57
- 不再次请求模型。
58
-
59
- 私人谈话若会改变主线,也走同一边界:模型只提出 `facts / promises / permissions / refusals / witnesses`
60
- 候选,规则器验证后写入事件账。不得让自由 `effects`、原始聊天摘要或忠诚估值直接成为权威状态。
61
-
62
- ## 到期事项
63
-
64
- 延期后果记录 source action、due/trigger、携带的执行人/物件/见证/承诺、status、重新上桌方式和结清事件。
65
- 到期时必须形成当前可见压力、机会或再次裁决;载入/回放不得提前触发、重复触发或让已结事项复活。
66
-
67
- ## Snapshot、事件日志与回放
68
-
69
- - snapshot 服务快速载入,带内容/规则/存档版本;event log 服务定位、重演与测试。
70
- - 同一版本、初态、seed 和规范化动作输入序列必须得到同一终态与事件顺序;在线生成表达不进入裁决 hash。
71
- - 回滚模式由设计声明:自由重选、固定历史仅回看、或明确不可逆节点。渲染和 UI 回调不得偷偷改状态。
72
- - 节点 id、变量语义、行动效果、知识权限改变时提供迁移,或明确拒绝旧存档/日志;不得静默重解释。
73
-
74
- ## 反馈与局部 patch
75
-
76
- 反馈记录 `issue → observation → expected/actual → node → owner → patch → replay`。自然语言负责表达复杂
77
- 偏差,标签负责聚类,结构化修改只触及被定位节点。patch 声明基础规则版本、目标节点、预期差异、
78
- 存档兼容性和受影响路径;修改后重放原失败路径及一条相邻反例,确认声明外状态没有变化。
79
-
80
- 白盒只回答被模拟的风险是否暴露、规则是否可执行和结果为何发生。选择是否困难、角色是否吸引人、
81
- 节奏是否愿意重玩仍需真人研究,不写成确定性 PASS。
46
+ 这些检查只证明被覆盖的因果与回放,不证明角色魅力、选择重量或复玩意愿。
@@ -1,37 +1,23 @@
1
1
  # 语音资产生产合同
2
2
 
3
- 只在 `ART_DIRECTION.md` 已选择角色语音、旁白或朗读时启用。语音表现已批准的台词和角色方向,
4
- 不创造新剧情,也不成为规则、目标、选择或结果的唯一载体。
3
+ 只在 ART_DIRECTION 已选择语音时启用,表现已批准台词,不创造剧情或成为必要信息的唯一载体。
5
4
 
6
- ## 产品边界
5
+ ## 授权与数据边界
7
6
 
8
- - 默认在构建期生成或录制成本地资产,游戏运行不依赖网络、供应商或密钥。
9
- - 运行时动态语音只有在 PRODUCT_BRIEF 已批准联网、外部文本处理、成本、隐私和服务失效行为时采用;
10
- 客户端不持有服务密钥。
11
- - 只发送逐句台词与必要读音,不上传小说、SOURCE_BIBLE、设计文档、未公开手稿或无关个人信息。
12
- - 营销旁白与游戏内语音分别记账;一次成功不自动扩大到全量配音。
7
+ 默认构建期生成本地资产。运行时合成须由 PRODUCT_BRIEF 批准联网、外部文本处理、成本、隐私与失效行为;
8
+ 服务密钥不进入客户端、仓库、日志或证据。只发送逐句台词与必要读音,不上传小说、设计文档或无关私人信息。
13
9
 
14
- ## 唯一台账
10
+ 音色来源须有使用权,真实人物克隆须明确许可。营销旁白不等于游戏语音,一次成功不自动扩大到全量配音。
11
+ 工具按当前能力与许可选择,不固定供应商或模型。
15
12
 
16
- 每条采用语音只记录一行:
13
+ ## 台账与验证
17
14
 
18
- `line_id | speaker | trigger | exact_text | language/pronunciation | voice_direction | subtitle_key | provenance/rights | output | fallback | status`
19
-
20
- - 字幕和语音输入由同一 `exact_text` 派生;台词变化时旧音频失效。
21
- - `speaker` 继承美术方向的年龄感、节奏、文化依据和可听辨差异,不按语言给所有角色共用一个声线。
22
- - 音色只使用自录、获授权真人、获授权公共音色或合成设计音色;真实人物克隆需要明确许可。
23
- - `fallback` 至少保证静音、缺文件和自动播放受限时仍能读懂并完成游戏。
15
+ 每条采用语音记录:
24
16
 
25
- ## 生产与检查
26
-
27
- 1. 使用当前环境中合适的工具,按官方文档核实许可、输入处理和输出格式;仓库不固定供应商或模型。
28
- 2. 密钥只从受信环境读取,不进入仓库、客户端、日志正文或证据文件;失败重试有明确上限。
29
- 3. 把最终音频保存到工作区稳定路径;临时 URL、供应商任务页和缓存不是游戏资产。
30
- 4. 确认文件非空、可被目标运行时解码,时长/声道/响度合理,并在实际触发位置播放一次。
31
- 5. 检查字幕同步、说话者标识、专名读音、重复频率、跳过、静音、损坏文件和重开路径。
17
+ `line_id | speaker | trigger | exact_text | language/pronunciation | voice_direction | subtitle_key | provenance/rights | output | fallback | status`
32
18
 
33
- 自然度、魅力和音色偏好不写成机器 PASS,也不新增强制真人听审。可降级语音失败时保留字幕或普通
34
- 音效并记 limitation;brief 明确列为必需的语音失败时,对应玩家效果 FAIL。
19
+ 字幕与语音来自同一台词,台词变化使旧音频失效;说话者继承批准的声口、文化身份和可辨差异。
20
+ 最终文件保存到工作区,在实际触发位置检查说话者、专名读音、字幕、跳过、静音、缺音和重开。
21
+ 降级后仍能理解并完成游戏;必需语音失败映射到对应玩家效果,否则保留替代并记 limitation。
35
22
 
36
- 构建完成后只回写上述台账的本地输出、来源/权利、基本媒体信息和结果,不归档完整 API 往返、供应商
37
- 页面截图或重复报告。
23
+ 不归档完整服务往返或重复报告。自然度、魅力和音色偏好不写成机器 PASS,也不新增强制真人听审。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: game-concept
3
- description: "Design game concepts from a novel. From SOURCE_BIBLE and PRODUCT_BRIEF, generate three genuinely different directions on the dimensions still unlocked, then pick the most worthwhile playable prototype using hard vetoes and explicit trade-offs. Use for what game should this novel become, compare game concepts, choose a game direction for this book, decide whether this novel should become an interactive story. 小说游戏概念设计。根据 SOURCE_BIBLE 与 PRODUCT_BRIEF 在未锁定维度上生成三个真正不同的方案,用硬否决和关键取舍选择最值得做的可玩原型。用于判断小说适合做成什么游戏、该不该做成互动叙事、比较游戏方案等需求。"
3
+ description: "Design game concepts from a novel. From SOURCE_BIBLE and PRODUCT_BRIEF, compare meaningful alternatives on the dimensions still unlocked, then select a playable direction using hard vetoes and explicit trade-offs. Use for what game should this novel become, compare game concepts, choose a game direction for this book, decide whether this novel should become an interactive story. 小说游戏概念设计。根据 SOURCE_BIBLE 与 PRODUCT_BRIEF 比较未锁定维度上的有效替代方案,用硬否决和关键取舍选择可玩方向。用于判断小说适合做成什么游戏、该不该做成互动叙事、比较游戏方案等需求。"
4
4
  ---
5
5
  # 游戏概念设计
6
6
 
@@ -18,38 +18,36 @@ description: "Design game concepts from a novel. From SOURCE_BIBLE and PRODUCT_B
18
18
  其中一个自动推出另一个。
19
19
 
20
20
  互动叙事是成熟玩法,不因以阅读和对白承载就降低标准;它的动词可以是读局面、追问、比对信息、
21
- 表态、隐瞒、交出与承担回响。先例提供语法,原作规则负责改变动作对象、顺序、代价和世界回应,
22
- 不能只做 IP 换皮。
21
+ 表态、隐瞒、交出与承担回响。
23
22
 
24
23
  概念还要判断验证形态:可用成熟交互语法表达时说明“已有语法 + 原作如何改变它”;核心依赖实时手感、
25
24
  空间、视线、物理或独特操作时明确走自定义灰盒。不要把文本原型当所有体验的统一前置层,也不要因有
26
25
  模板可用就让模板替原作决定玩法。
27
26
 
28
- ## 三个方向
27
+ ## 比较范围
29
28
 
30
- 先列 brief 的锁定维度和仍开放的维度。三个方向必须在至少三项开放维度上真正不同,例如玩家身份、
31
- 子类型、核心循环、压力来源、原作选段、空间/镜头、成长关系或美术方向;已锁的主玩法不可偷换,
32
- 未锁的核心循环可以正面比较。
29
+ 先列 brief 的锁定维度和仍开放的维度,只比较能揭示真实取舍的方向,不凑概念数量或差异维度。
30
+ 仅在方向仍开放时考察可信替代;用户已选定方向或不存在有效替代时说明原因,改为验证该方向的风险,
31
+ 不重开选择。
33
32
 
34
33
  ## 选择
35
34
 
36
35
  先按 concept-method 的硬否决逐个淘汰,不计算总分,再按其比较维度选择。`quick` 自动选证据最强的
37
- 方向;`director` 给出推荐后等待用户决定。
36
+ 方向;`director` 只对尚未决定的方向给出推荐并等待用户选择。
38
37
 
39
38
  ## 输出
40
39
 
41
40
  生成一个 `concepts/CONCEPT.md`,只含:
42
41
 
43
42
  1. brief 锁定值与开放维度;
44
- 2. 三条体验支柱,各配可观察现象和失败现象;
43
+ 2. 体验承诺及其可观察现象和失败现象;
45
44
  3. 紧凑先例说明;
46
- 4. 三个概念卡,每张只写主类型、`experienceProfile`、借用/拒绝的玩法先例、3–5 个核心动词、循环、
47
- 压力、失败、世界响应,以及 `player_job`、`recurring_job_loop`、`resistance_chain` 和
48
- `advancement_ladder`;仅当自然语言能体现玩家身份时写 `signature_command` 的 `id`、`label` 与候选
49
- `intents`,否则写 `N/A`;最后说明原作张力如何由玩家亲手 enact、招牌画面、最小验证切片、最大风险
50
- 和否决观察;
45
+ 4. 候选概念卡:主类型、`experienceProfile`、借用/拒绝的玩法先例、核心动作与循环、压力、失败、
46
+ 世界响应;说明玩家身份如何形成反复行动、执行阻力与可观察变化,不要求独立的固定键名。
47
+ `signature_command` 按方法「身份专属命令」写值或 `N/A`;最后说明原作张力如何由玩家亲手 enact、
48
+ 招牌画面、最小验证切片、最大风险和否决观察;
51
49
  5. 硬否决结果、关键取舍、推荐与选择状态;
52
- 6. 选定方向的玩家能动性合同、不可妥协体验承诺;上述五项交接字段必须独立成项;
50
+ 6. 选定方向的玩家能动性合同、不可妥协体验承诺;
53
51
  7. 最小验证问题与开放问题。
54
52
 
55
53
  `narrative-led` 或 `hybrid` 的叙事层还要选择一种分支结构语法并说明内容预算。交接前确认选定方向
@@ -1,94 +1,47 @@
1
1
  # 概念选择方法
2
2
 
3
- ## 类型与先例
3
+ ## 原作如何改变玩法
4
4
 
5
- 类型由玩家大部分时间用什么能力解决问题决定,不由原作表面上有多少战斗、恋爱或对白决定。范围可以
6
- 缩小,核心循环不能削到只剩一次判断或一个放行按钮。
7
-
8
- 先例按设计问题选择,不按题材相似选择。一个主要玩法先例应能说明核心动词、循环、压力与熟练度;
9
- 辅助先例只补主要先例回答不了的独立问题。记录借什么、明确不借什么和事实来源,不收集与当前决定
10
- 无关的销量或排名。
11
-
12
- 需要玩家操纵空间、视角或地形时使用实时空间;固定镜头和连续场景不必为了“更像游戏”强做三维。
13
- 平台与技术只是实现约束,不替代玩法判断。
5
+ 类型由玩家反复做什么决定,不由原作战斗、恋爱或对白的篇幅决定。先例按设计问题选择,
6
+ 记录借用与拒绝之处;原作必须改变动作对象、顺序、代价或世界回应,而不只是替换专有名词。
14
7
 
15
8
  ## 硬否决
16
9
 
17
- 出现任一情况就重做,不靠评分补偿:
10
+ 以下缺口不能靠综合评分补偿:
18
11
 
19
- - 玩家读完或点完一段只让既定剧情继续,换选择不会改变后续原因、关系、路线或结果;
20
- - 没有 3–5 个可重复参与手段,或这些动作不产生压力、取舍、状态变化与熟练度差异;
12
+ - 动作不能闭合可参与的循环,选择或操作不改变可观察状态、后续机会或结果;
21
13
  - 原作中心规则、情感或伦理张力只存在于过场和名词,核心循环与它无关;
22
- - 删除专有名词后,本作与通用模板没有动作对象、代价或世界回应上的差异;
23
- - 最小切片依赖开放世界、多人服务、生产级内容量或不可获得资产;
24
- - 依赖复制其他游戏受保护的角色、地图、UI、文本或素材;
25
- - 玩法无法用一个主要先例或清楚的循环说明,玩家也无法预判自己反复在做什么;
26
- - 切片从头到尾只有数值或文本增加,没有新的参与手段、可达空间、可问对象或局面;
27
- - 玩家介入被兑现成花资源放行既定结果,缺少因果权或结算权。
28
-
29
- ## 玩家能动性
30
-
31
- - **因果权**:玩家的选择决定事情为什么发生、朝哪里转;选什么都汇入同一原因即不成立。
32
- - **结算权**:世界会点名玩家做过的事,代价落在他在乎的对象上;只给总分或旁白总结不成立。
33
-
34
- 每个方向用一句话回答:“玩家做了什么,使这件事只能这样发展,而且结果怎样看得出是他造成的?”
35
-
36
- ## 身份专属命令
14
+ - 删除专有名词后,与通用模板没有动作对象、代价或世界回应上的差异;
15
+ - 最小切片超出 brief,依赖不可获得的工具、服务、内容量或资产;
16
+ - 依赖复制其他游戏受保护的角色、地图、界面、文本或素材;
17
+ - 声称有进展,却只有文本或读数增加,没有兑现本项目承诺的局面、能力或理解变化;
18
+ - 玩家介入只是花资源放行既定剧情,世界不回读玩家做过的具体事。
37
19
 
38
- 自然语言不是默认输入方式。只有当玩家需要以角色身份组织对象、执行人、条件、期限或知情范围,且措辞
39
- 差异本身值得保留时,才选择一项 `signature_command`;实时瞄准、移动、节奏操作或已有按钮已经完整表达
40
- 核心动词时写 `N/A`。不开放通用“你想做什么”,也不把每个 NPC 都变成聊天入口。
20
+ 不以动词数量、成长阶段或三维画面作为可玩性的替代判据。
41
21
 
42
- 五项字段组成一条因果链:`player_job → recurring_job_loop → signature_command → resistance_chain →
43
- advancement_ladder`。`signature_command` 选中时只先锁 `id`、玩家可见 `label` 和候选 `intents`;具体
44
- 槽位、验证器与提交项由世界设计裁决。意图数量服从最小切片,不设跨项目固定数;玩家表达先编译成
45
- 有限候选动作,世界仍可拒绝、部分执行、走样、泄露或延期追责。若自由表达最后只等价于按一个现成
46
- 按钮,且没有增加身份感、组合空间或可读后果,就不采用。
22
+ ## 玩家能动性与承载类型
47
23
 
48
- ## 体验承载类型
24
+ 每个方向回答:玩家做什么改变事情的原因或方向(因果权),世界怎样具体兑现其后果(结算权)。
25
+ 短篇或命定结局可以收束结果,但不能因此抹掉玩家介入的意义。
49
26
 
50
- - `system-led`:玩家主要操作规则,熟练度来自走位、出招、分配、经营或建造。
51
- - `narrative-led`:玩家主要读局面、追问、比对信息、表态并承担回响;拿掉数值面板仍知道该争取什么。
52
- - `hybrid`:两层各自成立且双向影响;一层只是为另一层放行时,按真正承载体验的那层记录。
27
+ `experienceProfile` 是交接字段:
53
28
 
54
- 用“拿掉测试”判断:删掉系统层或场景/对白层,哪一边会让体验失去主要决策?两边都塌且彼此读写,
55
- 才是 `hybrid`。
29
+ - `system-led`:主要决策来自操作规则;
30
+ - `narrative-led`:主要决策来自理解局面、人物、信息并承担回响;
31
+ - `hybrid`:两层各自承载决策且互相影响。
56
32
 
57
- ## 互动叙事结构
33
+ 按实际决策来源判断,不按界面上是否出现数值分类。叙事层说明分支结构与内容预算,不强套统一弧线。
58
34
 
59
- 互动叙事的可重复循环可以是:读局面 → 追问/调查 → 比对证词与证据 → 表态或行动 → 承受回响。
60
- 熟练度来自知道谁掌握什么、何时施压、什么必须隐瞒,以及先前行为怎样改变当前局面。
61
-
62
- 按内容预算选择结构:
63
-
64
- | 结构 | 适用情况 | 主要成本 |
65
- |---|---|---|
66
- | 主干加瓶颈 | 关系与立场变化需要记忆,但关键事件可汇流 | 状态变体 |
67
- | 任务簇 | 调查、取证、地点顺序可交换 | 节点组合 |
68
- | 长廊 | 命定主线必须被所有玩家看到 | 分支较浅 |
69
- | 分院帽 | 前段选择分配到不同后半程 | 多套后半程 |
70
- | 树洞 | 短小、多周目、分支很少汇流 | 大量内容不可见 |
71
-
72
- 不设汇流时分支不要连续膨胀;用“节点数 × 状态变体 × 关键人物数”估算内容,而不是画一棵无限树。
73
-
74
- ## 三段弧
75
-
76
- 三段弧要求玩家能力或局面发生质变:
77
-
78
- - 探索期:认识可用动作、对象和第一层风险;
79
- - 成长期:组合动作、读取先前状态,获得新手没有的选择;
80
- - 成熟期:在较少提示下利用早先积累,完成代表性结果。
35
+ ## 身份专属命令
81
36
 
82
- 系统主导看新动词与新可达空间;叙事主导看新可问对象、质证手段、人物态度和只有知情者可达的场景。
83
- 数字变大、多一段文本或无后果选项都不算弧线。
37
+ 自然语言不是默认输入。只有玩家需要以角色身份组织对象、执行人、条件、期限或知情范围,
38
+ 且自由表达增加身份感、组合空间或可读后果时,才选择 `signature_command`,否则写 `N/A`。
84
39
 
85
- ## 比较维度
40
+ 选中时锁定 `id`、玩家可见 `label` 和候选 `intents`;槽位、验证器与提交项交给世界设计。
41
+ 说明身份、反复行动、执行阻力和后续变化如何相连。玩家表达只是有限动作候选,世界仍可拒绝、
42
+ 部分执行、走样、泄露或延期追责,不能把“说了”直接等同于“发生了”。
86
43
 
87
- 1. 原作规则是否改变动作对象、顺序、代价或世界回应;
88
- 2. 玩家是否亲手 enact 原作的情感或伦理张力;
89
- 3. 玩家能动性是否在切片内被世界回读;
90
- 4. 一张实际画面能否说明身份、动作和独特世界;
91
- 5. 表达是否尊重原作文化,并适合目标界面语言与受众;
92
- 6. 最小原型能否用现有时间、工具与资产证明最大风险。
44
+ ## 选择依据
93
45
 
94
- 相近方案不做伪精确排序。选择能以最小切片证明核心幻想、且失败条件最清楚的方向。
46
+ 先否决,再比较原作转化、玩家能动性、文化表达与最小验证成本。
47
+ 推荐能用现有时间、工具和资产证明核心幻想、且否决观察最清楚的方向;相近方案不做伪精确排名。
@@ -20,21 +20,20 @@ description: "Verify a game with evidence on its selected target runtime. Launch
20
20
 
21
21
  1. 读取 `targetRuntime`、`testedRuntime` 和权威 verify;与 PRODUCT_BRIEF/BUILD_BRIEF 冲突时先报错,
22
22
  不由 QA 猜值。
23
- 2. 只运行一次权威 verify:它在 testedRuntime 从 clean start → 核心动作 → 设计结果 → restart
23
+ 2. 运行权威 verify:它在 testedRuntime 从 clean start → 核心动作 → 设计结果 → restart
24
24
  完成整条路径,并记录 command、exit code、环境、六项结果、最小证据和实际失败。
25
- 3. 对照 GAME_DESIGN 中会改变结果的不变量和三段弧结束标记;只验证批准的设计承诺,不遍历所有
25
+ 3. 对照 GAME_DESIGN 中会改变结果的不变量和结束标记;只验证批准的设计承诺,不遍历所有
26
26
  代码路径。
27
27
  4. 若候选有可执行模型、事件日志、patch 或 `signature_command`,按 test-design-method 的对应合同把
28
- 项目回归嵌入同一权威 verify;失败映射到已有 checks 或 limitation,不另跑命令或新增门禁。
29
- 5. 记录 limitation 和问题的 product/design/art/build 归属。趣味、长期平衡、留存和商业价值只能写成
30
- 未验证风险,不给确定性 PASS。
28
+ 项目回归嵌入权威 verify;允许定向诊断、修复和复跑,最终六项证据必须来自同一次完整运行。
29
+ 失败映射到已有 checks 或 limitation,不新增通用门禁。
30
+ 5. 记录 limitation 和问题的 product/design/art/build 归属。
31
31
 
32
32
  优先使用已有可观察状态;只有无法判断结果时才增加最小测试钩子。不要为了 QA 重构游戏或强制某种
33
33
  框架、测试库或调试接口。
34
34
 
35
35
  ## 输出
36
36
 
37
- - `qa/verification.json`:唯一 QA 事实源,包含三态 status、权威命令、complete run、六项 checks、
38
- 一条证据路径和 limitations;字段与证据要求见 qa-contract.md。
37
+ - `qa/verification.json`:唯一 QA 事实源;字段与证据要求见 qa-contract.md。
39
38
 
40
39
  缺口写结构化 limitation,不发明 `PASS_WITH_GAPS`;未运行或失败的必需项不能满足整体 PASS。