@oh-story/dsh 0.1.8 → 0.1.10

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 (360) hide show
  1. package/README.md +14 -14
  2. package/lib/client.js +237 -84
  3. package/lib/client.js.map +3 -3
  4. package/lib/drama/manifest.json +183 -77
  5. package/lib/drama/skills/short-drama/SKILL.md +5 -1
  6. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +140 -9
  7. package/lib/drama/skills/short-drama/scripts/project_tool.py +11 -0
  8. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +28 -0
  9. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +8 -2
  10. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
  11. package/lib/drama/skills/short-drama-edit/SKILL.md +146 -0
  12. package/lib/drama/skills/short-drama-edit/agents/openai.yaml +4 -0
  13. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +60 -0
  14. package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +15 -0
  15. package/lib/drama/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
  16. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
  17. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
  18. package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
  19. package/lib/drama/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
  20. package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
  21. package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
  22. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
  23. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +38 -0
  24. package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +29 -0
  25. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +54 -0
  26. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
  27. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +51 -0
  28. package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
  29. package/lib/drama/skills/short-drama-edit/scripts/selftest.py +520 -0
  30. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
  31. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +5 -0
  32. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +3 -0
  33. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
  34. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +2 -2
  35. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +4 -1
  36. package/lib/drama/skills/short-drama-produce/SKILL.md +29 -4
  37. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +22 -0
  38. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +13 -12
  39. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
  40. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +7 -0
  41. package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +18 -1
  42. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +181 -2
  43. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +199 -3
  44. package/lib/drama/skills/short-drama-review/SKILL.md +2 -0
  45. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +7 -0
  46. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +10 -0
  47. package/lib/drama/skills/short-drama-storyboard/SKILL.md +12 -1
  48. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +4 -0
  49. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
  50. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +78 -2
  51. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -0
  52. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +12 -5
  53. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +17 -0
  54. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +76 -7
  55. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +5 -2
  56. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +21 -0
  57. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +6 -17
  58. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +12 -3
  59. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +61 -5
  60. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -3
  61. package/lib/drama/skills/short-drama-write/SKILL.md +11 -2
  62. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +6 -0
  63. package/lib/drama/skills/short-drama-write/references/stage-contract.md +1 -0
  64. package/lib/index.js +290 -90
  65. package/lib/index.js.map +4 -4
  66. package/lib/novel-to-game/README.md +299 -59
  67. package/lib/novel-to-game/README_ZH.md +299 -56
  68. package/lib/novel-to-game/VERSION +1 -1
  69. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
  70. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
  71. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
  72. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
  73. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
  74. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
  75. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
  76. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
  77. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
  78. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
  79. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
  80. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
  81. package/lib/novel-to-game/manifest.json +77 -87
  82. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +9 -35
  83. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
  84. package/lib/novel-to-game/skills/game-build/SKILL.md +17 -35
  85. package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
  86. package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
  87. package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
  88. package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
  89. package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
  90. package/lib/novel-to-game/skills/game-concept/SKILL.md +16 -34
  91. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
  92. package/lib/novel-to-game/skills/game-qa/SKILL.md +9 -20
  93. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +10 -6
  94. package/lib/novel-to-game/skills/game-world-design/SKILL.md +19 -32
  95. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
  96. package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
  97. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
  98. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +9 -18
  99. package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
  100. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +10 -27
  101. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -6
  102. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +6 -11
  103. package/lib/oh-story/manifest.json +419 -254
  104. package/lib/oh-story/roles/chapter-extractor.md +177 -237
  105. package/lib/oh-story/roles/character-designer.md +1 -1
  106. package/lib/oh-story/roles/consistency-checker.md +4 -4
  107. package/lib/oh-story/roles/narrative-writer.md +56 -243
  108. package/lib/oh-story/roles/story-architect.md +6 -6
  109. package/lib/oh-story/roles/story-explorer.md +11 -11
  110. package/lib/oh-story/skills/story/SKILL.md +13 -7
  111. package/lib/oh-story/skills/story/VERSION +1 -1
  112. package/lib/oh-story/skills/story/references/author-memory.md +61 -29
  113. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
  114. package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
  115. package/lib/oh-story/skills/story-deslop/SKILL.md +54 -229
  116. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +29 -56
  117. package/lib/oh-story/skills/story-deslop/references/author-memory.md +61 -29
  118. package/lib/oh-story/skills/story-deslop/references/banned-words.md +3 -1
  119. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +154 -0
  120. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +27 -0
  121. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
  122. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +6 -1
  123. package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +39 -20
  124. package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +10 -5
  125. package/lib/oh-story/skills/story-deslop/scripts/style-whitelist.js +39 -0
  126. package/lib/oh-story/skills/story-import/SKILL.md +78 -82
  127. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
  128. package/lib/oh-story/skills/story-import/references/format-and-structure.md +2 -2
  129. package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
  130. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +10 -8
  131. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +31 -0
  132. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +9 -34
  133. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +197 -15
  134. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +210 -2
  135. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +3 -0
  136. package/lib/oh-story/skills/story-long-analyze/SKILL.md +91 -258
  137. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +245 -0
  138. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +2 -2
  139. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
  140. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +113 -105
  141. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +169 -125
  142. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +172 -64
  143. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
  144. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +42 -132
  145. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +5 -5
  146. package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
  147. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
  148. package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
  149. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1106 -0
  150. package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
  151. package/lib/oh-story/skills/story-long-scan/SKILL.md +4 -1
  152. package/lib/oh-story/skills/story-long-write/SKILL.md +52 -216
  153. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +29 -56
  154. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +72 -12
  155. package/lib/oh-story/skills/story-long-write/references/author-memory.md +61 -29
  156. package/lib/oh-story/skills/story-long-write/references/banned-words.md +3 -1
  157. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +20 -0
  158. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
  159. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +10 -4
  160. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
  161. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +6 -15
  162. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -0
  163. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +2 -0
  164. package/lib/oh-story/skills/story-long-write/references/project-files.md +110 -0
  165. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +12 -4
  166. package/lib/oh-story/skills/story-long-write/references/reference-index.md +86 -0
  167. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -1
  168. package/lib/oh-story/skills/story-long-write/references/style-craft.md +9 -29
  169. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  170. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +27 -0
  171. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +31 -0
  172. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +9 -34
  173. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +88 -118
  174. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +55 -119
  175. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +15 -11
  176. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +73 -54
  177. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +22 -0
  178. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +63 -4
  179. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
  180. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +531 -0
  181. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +6 -1
  182. package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +39 -20
  183. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +197 -15
  184. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +90 -23
  185. package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +10 -5
  186. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +285 -0
  187. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +58 -0
  188. package/lib/oh-story/skills/story-long-write/scripts/style-whitelist.js +39 -0
  189. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +210 -2
  190. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +3 -0
  191. package/lib/oh-story/skills/story-review/SKILL.md +80 -87
  192. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +29 -56
  193. package/lib/oh-story/skills/story-review/references/author-memory.md +61 -29
  194. package/lib/oh-story/skills/story-review/references/banned-words.md +3 -1
  195. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +10 -4
  196. package/lib/oh-story/skills/story-review/references/review-quality.md +6 -12
  197. package/lib/oh-story/skills/story-review/references/style-resolution.md +27 -0
  198. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +31 -0
  199. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +9 -34
  200. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
  201. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +6 -1
  202. package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +39 -20
  203. package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +10 -5
  204. package/lib/oh-story/skills/story-review/scripts/style-whitelist.js +39 -0
  205. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +210 -2
  206. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +3 -0
  207. package/lib/oh-story/skills/story-setup/SKILL.md +58 -43
  208. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +29 -56
  209. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +3 -1
  210. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +154 -0
  211. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +10 -4
  212. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +2 -2
  213. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +2 -2
  214. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +1 -1
  215. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +1 -1
  216. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -1
  217. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  218. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +27 -0
  219. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +63 -4
  220. package/lib/oh-story/skills/story-setup/references/diagnostics.md +38 -0
  221. package/lib/oh-story/skills/story-short-analyze/SKILL.md +22 -3
  222. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +1 -1
  223. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +5 -1
  224. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +2 -2
  225. package/lib/oh-story/skills/story-short-scan/SKILL.md +5 -1
  226. package/lib/oh-story/skills/story-short-write/SKILL.md +15 -324
  227. package/lib/oh-story/skills/story-short-write/references/author-memory.md +61 -29
  228. package/lib/oh-story/skills/story-short-write/references/banned-words.md +3 -1
  229. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +60 -0
  230. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +10 -4
  231. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +2 -2
  232. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +1 -1
  233. 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
  234. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +3 -3
  235. 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
  236. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +5 -5
  237. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +4 -4
  238. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +5 -5
  239. 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
  240. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +1 -1
  241. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +1 -1
  242. package/lib/oh-story/skills/story-short-write/references/reference-index.md +55 -0
  243. package/lib/oh-story/skills/story-short-write/references/short-craft.md +12 -14
  244. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +10 -10
  245. package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -1
  246. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -2
  247. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +27 -0
  248. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +78 -0
  249. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +126 -0
  250. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +32 -0
  251. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +5 -5
  252. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
  253. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +6 -1
  254. package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +39 -20
  255. package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +34 -5
  256. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +90 -23
  257. package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +10 -5
  258. package/lib/oh-story/skills/story-short-write/scripts/style-whitelist.js +39 -0
  259. package/lib/types/client/drama-production-view.d.ts.map +1 -1
  260. package/lib/types/client/file-activity.d.ts +19 -1
  261. package/lib/types/client/file-activity.d.ts.map +1 -1
  262. package/lib/types/client/index.d.ts.map +1 -1
  263. package/lib/types/client/production-prompts.d.ts +7 -0
  264. package/lib/types/client/production-prompts.d.ts.map +1 -1
  265. package/lib/types/client/production-runtime.d.ts +33 -0
  266. package/lib/types/client/production-runtime.d.ts.map +1 -1
  267. package/lib/types/drama-adapters.d.ts +5 -3
  268. package/lib/types/drama-adapters.d.ts.map +1 -1
  269. package/lib/types/native-hooks.d.ts +52 -0
  270. package/lib/types/native-hooks.d.ts.map +1 -1
  271. package/lib/types/role-identity.d.ts +17 -0
  272. package/lib/types/role-identity.d.ts.map +1 -0
  273. package/lib/types/role-tool.d.ts.map +1 -1
  274. package/lib/types/skill-provider.d.ts.map +1 -1
  275. package/lib/video-recap/CHANGELOG.md +31 -1
  276. package/lib/video-recap/manifest.json +162 -162
  277. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +4 -9
  278. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +47 -60
  279. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +77 -115
  280. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +41 -40
  281. package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +22 -32
  282. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +102 -192
  283. package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +14 -35
  284. package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +14 -12
  285. package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +8 -9
  286. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +3 -14
  287. package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +23 -12
  288. package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +1 -4
  289. package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +24 -25
  290. package/lib/video-recap/skills/video-assemble/scripts/lib.py +31 -85
  291. package/lib/video-recap/skills/video-assemble/scripts/media.py +100 -144
  292. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +101 -195
  293. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +10 -21
  294. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +90 -169
  295. package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +69 -122
  296. package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +10 -17
  297. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +33 -48
  298. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +14 -20
  299. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +135 -213
  300. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +49 -57
  301. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +38 -74
  302. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +46 -95
  303. package/lib/video-recap/skills/video-cut/scripts/lib.py +23 -25
  304. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +70 -173
  305. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +28 -53
  306. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +162 -322
  307. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +6 -7
  308. package/lib/video-recap/skills/video-recap/scripts/doctor.py +104 -124
  309. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +255 -412
  310. package/lib/video-recap/skills/video-recap/scripts/lib.py +30 -52
  311. package/lib/video-recap/skills/video-recap/scripts/materials.py +97 -120
  312. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +7 -12
  313. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +46 -97
  314. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +18 -36
  315. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +29 -47
  316. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +43 -76
  317. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +2 -1
  318. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +2 -1
  319. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +2 -2
  320. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +129 -145
  321. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +27 -20
  322. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +20 -31
  323. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +31 -106
  324. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +43 -113
  325. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +196 -377
  326. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +1 -1
  327. package/lib/video-recap/skills/video-script/scripts/agent_text.py +63 -172
  328. package/lib/video-recap/skills/video-script/scripts/brief_context.py +80 -135
  329. package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +125 -167
  330. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +93 -208
  331. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +20 -46
  332. package/lib/video-recap/skills/video-script/scripts/lib.py +30 -26
  333. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +145 -140
  334. package/lib/video-recap/skills/video-script/scripts/review_response.py +12 -42
  335. package/lib/video-recap/skills/video-script/scripts/review_runner.py +0 -6
  336. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +39 -100
  337. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +33 -124
  338. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +1 -1
  339. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +63 -172
  340. package/lib/video-recap/skills/video-understanding/scripts/asr.py +1 -2
  341. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +80 -135
  342. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +125 -167
  343. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +93 -208
  344. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +1 -1
  345. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +20 -46
  346. package/lib/video-recap/skills/video-understanding/scripts/lib.py +31 -26
  347. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +145 -140
  348. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +39 -100
  349. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +33 -124
  350. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +1 -4
  351. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +7 -13
  352. package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +12 -30
  353. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +98 -131
  354. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +17 -28
  355. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +151 -240
  356. package/package.json +45 -45
  357. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -59
  358. package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
  359. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -42
  360. package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
@@ -19,12 +19,10 @@ description: "Deconstruct a novel for game adaptation. Compress a raw novel, dec
19
19
  本 skill 的全书管道。已有分析若只覆盖黄金三章或快速预览,只能帮助判断开篇,不能
20
20
  证明理解了全书。除非用户明确只改编某一卷或片段,否则来源未覆盖全文时不得进入概念设计。
21
21
 
22
- 不因目录看起来完整就直接信任;按协议「来源清点」清点来源与已有拆文后,再判定是否算全量。
23
-
24
22
  若存在 `PRODUCT_BRIEF.md`,先读取:分级、核心幻想与已锁类型决定取证优先级——优先为
25
23
  核心幻想涉及的动作、关系、场面取证;对已锁类型需要而原作未系统提供的体系(如属性相克、
26
24
  数值成长),在设计空白中写明「原作无系统化的对应体系,属下游发明」,供下游改编边界如实
27
- 引用。仍不在本阶段发明或评价类型。
25
+ 引用。
28
26
 
29
27
  ## 全书管道
30
28
 
@@ -37,12 +35,8 @@ gameability-protocol.md 为准,此处只列顺序,不重述。选定改编
37
35
 
38
36
  ## 提取维度
39
37
 
40
- 只保留会影响玩家动作、世界响应或视听身份的内容;字段以协议「逐章游戏化卡」的十行为准,不得
41
- 只取其中一部分,该表即并行批次共用的提取契约。另记不可改的原作事实、授权风险和原作未定义的设计空间。
42
-
43
- 若作品反复出现命令、委托或代办,同样落回既有十行:记录谁有资格下令、谁实际执行、所需权限与物件、
44
- 可能拒绝或走样的环节、谁会见证,以及什么债务或后果会延期返回。此阶段只提取身份动作的原作依据,
45
- 不预设运行时必须有自由输入,也不把一句命令直接等同于事情已经发生。
38
+ 只保留会影响玩家动作、世界响应或视听身份的内容;维度、覆盖状态与命令/委托的记录方式以协议
39
+ 「逐单元取证」「从事实得到系统候选」为准。
46
40
 
47
41
  为硬规则、关键角色目标、玩家身份依据、转折结局和标志性锚点记录章节或文件位置。
48
42
  普通候选项不必机械附带置信度对象;推断必须明确标成推断或开放设计空间。
@@ -52,10 +46,9 @@ gameability-protocol.md 为准,此处只列顺序,不重述。选定改编
52
46
  生成一份 `analysis/SOURCE_BIBLE.md`,包含来源范围、**全书覆盖**、世界身份、原作事实与
53
47
  证据、改编边界、玩家身份候选(PRODUCT_BRIEF 已锁身份时改为该身份的动作空间验证)、
54
48
  可玩动词、可下达/承接的身份动作及其执行阻力、世界模型、空间与角色能动性、文化语境、
55
- 术语表(语言条件见上)、视觉锚点、风险和设计空白。全书覆盖按连续范围列出每一阶段的关键变化、
56
- 强弱节奏、反例/回收与游戏化意义,
57
- 表头写明来源单元数与成功数,使覆盖集合与来源单元集合完全一致。短表格优先于重复文档、
58
- 结构化数据和证据索引。
49
+ 术语表(语言条件见上)、视觉锚点、风险和设计空白。全书覆盖按连续范围列出开篇、中段、结局和跨段
50
+ 回收的关键变化、强弱节奏、反例与游戏化意义;表头写明来源单元数与成功数,覆盖集合必须与来源单元
51
+ 集合一致。短表格优先于重复文档、结构化数据和证据索引。
59
52
 
60
53
  改编边界必须是表格:`条目 | 边界类型 | 证据位置`,边界类型只用协议的四种标签;涉及
61
54
  名分、座次、官阶或队伍序列的作品必须附人物名册行(`姓名 | 身份/次序 | 结局 | 证据回目`),
@@ -64,14 +57,12 @@ gameability-protocol.md 为准,此处只列顺序,不重述。选定改编
64
57
  概念阶段选定改编段落后,二次进入本 skill 为该段落补一张逐事实表并追加进 SOURCE_BIBLE:
65
58
  `事实 | 证据位置 | 边界类型`,含入镜角色的外观要点(服饰、兵器、体量及位置;原文无描写
66
59
  写「原文未明确」)。此表是下游交接门的段落级比对基准;下游仍可回原文补证,发现出入时
67
- 回上游修正此表,不得各自改写。追加这类原作事实与证据是概念选定后对 SOURCE_BIBLE 的
68
- 唯一允许更新——SOURCE_BIBLE 不得包含下游发明物,游戏状态键名、回合或日程编号、
60
+ 回上游修正此表,不得各自改写。概念选定后只补充或纠正有依据的原作事实——SOURCE_BIBLE
61
+ 不得包含下游发明物,游戏状态键名、回合或日程编号、
69
62
  scene_id、Hub/界面结构、QA 与范围计划只属于 GAME_DESIGN,不得把既有事实改写成
70
63
  切片说辞。
71
64
 
72
65
  来源范围只记录会影响复核的版本、覆盖范围和授权边界。下载日期、字节数、校验值和
73
66
  本地路径只有在复现契约确实需要时才写,不把获取日志当策划内容。
74
67
 
75
- 完成前确认:覆盖数与来源数一致且无未处理失败;核心规则可追溯;改编边界成表且证据位置
76
- 齐全;能回答玩家可能做什么、在哪里做、世界如何回应;理解开篇、中段、结局和跨段回收;
77
- 没有把一次性剧情冒充核心循环,也没有提前选定游戏类型。
68
+ 其余完成门禁见协议「事实保真与交付」。
@@ -11,9 +11,10 @@
11
11
  长篇可把稳定边界表写入 `analysis/_coverage.md`,用于分批、恢复和缺号检查。已有拆文产物只有在
12
12
  逐单元覆盖与原文边界一致时才可复用为全量分析;临时工作卡完成聚合后可以删除。
13
13
 
14
- ## 二、逐单元游戏化卡
14
+ ## 二、逐单元取证
15
15
 
16
- 每个单元使用同一紧凑记录;没有新信息时写“无新增”,仍计入覆盖:
16
+ 每个来源单元保留覆盖状态与证据位置,已审无相关发现也计入覆盖;未审或失败单独标记。
17
+ 以下是审阅维度,不是每章必填表。只记录有依据且影响改编的发现,不用空字段占位:
17
18
 
18
19
  | 字段 | 只记录什么 |
19
20
  |---|---|
@@ -28,8 +29,7 @@
28
29
  | 视听锚点 | 有原文依据且服务识别或反馈的轮廓、材质、声音和场面 |
29
30
  | 证据与边界 | 原文位置、推断、冲突、未定义和衍生混入风险 |
30
31
 
31
- 逐单元卡不是剧情摘要。评价句应改写成可观察事实及其造成的状态变化;删除“游戏化意义”后若
32
- 只剩剧情复述,就继续压缩。
32
+ 提取结果保留可观察事实及其游戏化意义,不复述整章剧情。
33
33
 
34
34
  ## 三、从事实得到系统候选
35
35
 
@@ -13,19 +13,15 @@ description: "Turn a novel into a fully playable game on the selected target pla
13
13
  [intake-method.md](references/intake-method.md) 只处理会实质改变方向或带来权利、尺度、平台风险的
14
14
  歧义。低风险空白集中列为未确认假设,不逐项拦停。
15
15
 
16
- `targetFinish` 只表示想做到的成色:`graybox`、`playable-prototype`、
17
- `polished-vertical-slice` 或 `showcase`。所有项目使用同一最小 QA:真实启动、渲染、输入、核心循环、
18
- 至少一个设计结果和重开。连续 3D、语音、生成媒体、多语言或无障碍只在实际采用时运行项目自己的
19
- 效果回归,不形成第二套验收等级。
16
+ `targetFinish` 只表示想做到的成色:`graybox`、`playable-prototype`、`polished-vertical-slice` 或
17
+ `showcase`,不改变六项最小 QA,也不形成第二套验收等级。
20
18
 
21
- `PRODUCT_BRIEF.md` 与 `SOURCE_BIBLE.md` 是上游事实,下游不得静默改写。brief 必须锁定平台、生产
22
- 引擎、实际交付物、目标运行时和可用的实际测试运行时。工具链不可用时,只能使用 brief 已批准的
23
- 替代运行时;替代结果不证明目标平台已通过。
19
+ `PRODUCT_BRIEF.md` 与 `SOURCE_BIBLE.md` 是上游事实,下游不得静默改写。
24
20
 
25
21
  ## 模式
26
22
 
27
- - `quick`:默认;用推荐草案推进,比较三个概念后自动选择并完成全流程。
28
- - `director`:给出三个概念和推荐后停靠,等待用户选方向。
23
+ - `quick`:默认;用推荐草案推进,比较有效替代后自动选择并完成全流程。
24
+ - `director`:给出候选和推荐后停靠,等待用户选方向;已有明确选择时不重复停靠。
29
25
  - `resume`:读取 `_progress.md` 和实际产物,从最早未完成的交接继续。
30
26
 
31
27
  ## 流程
@@ -33,39 +29,26 @@ description: "Turn a novel into a fully playable game on the selected target pla
33
29
  1. 建立工作区,记录来源、模式、当前阶段和未确认假设。
34
30
  2. 生成 `PRODUCT_BRIEF.md`;高风险歧义未解决时才停靠。
35
31
  3. 调用 `novel-game-analyze` 生成有原文依据的 `SOURCE_BIBLE.md`。
36
- 4. 调用 `game-concept` 生成三个真正不同的方向并选定 `CONCEPT.md`;同时判断是否存在一项值得开放的
37
- 角色专属命令,实时/空间/精确操作不适合时明确 `N/A`;`director` 在此停靠。
32
+ 4. 调用 `game-concept` 比较仍开放的方向并选定 `CONCEPT.md`;自然语言专属命令按玩法需要选择,
33
+ 不适用时明确 `N/A`;`director` 的待决方向在此停靠。
38
34
  5. 调用 `game-world-design` 生成 `GAME_DESIGN.md`,其中锁定最大设计风险与最小可执行切片。
39
- 6. 在完整美术生产前调用 `game-build` 做与风险匹配的白盒候选:叙事风险用状态/场景沙箱,系统风险用
40
- 回合或桌面板,实时操作与空间风险直接用目标引擎灰盒。固定初态、seed 与输入序列试玩;把偏差定位到
41
- 具体状态、动作、知识边界或回响,再交回 design owner 局部修订并重放受影响路径。
35
+ 6. 在完整美术生产前调用 `game-build` 做与最大风险匹配的白盒候选;试玩后把偏差交回 design owner
36
+ 局部修订并重放受影响路径,不能用文本模拟结果冒充空间或操作验证。
42
37
  7. 调用 `game-art-direction` 生成 `ART_DIRECTION.md`;只有目标成色需要时再制作视觉目标包。
43
38
  8. 再由 `game-build` 将验证后的因果语义实现为完整候选,`game-qa` 验证最小闭环;问题按
44
39
  product/design/art/build 归属回流,不让实现阶段静默重做策划。
45
40
 
46
- 编排器只记录两项完成结果:
47
-
48
- - `scope`:上游范围和阶段 owner 齐全且不冲突;
49
- - `playable`:六项最小玩家效果均有真实运行证据。
50
-
51
41
  ## 语言与文化
52
42
 
53
43
  接受任意语言小说。产物使用用户指定语言,未指定时跟随对话语言;原文证据保留原语言,跨语言只补
54
44
  决策所需译文并维护一个术语表。原作文化语境、目标市场和界面语言分别记录,不用逐字翻译替代本地化判断。
55
45
 
56
- ## 不可删除的判断
46
+ ## 改编判断
57
47
 
58
48
  - 剧情必须转成玩家动词、选择和世界反馈,而非逐章复演。
59
49
  - `experienceProfile`(`system-led` / `narrative-led` / `hybrid`)由 brief 起草、概念阶段确认,之后
60
50
  贯穿设计、美术、构建与 QA;它只改变判据表达,不降低完成要求。
61
51
  - 玩家选择要拥有因果权与结算权,不能用卡牌、回合或资源条伪装能动性。
62
- - 概念、体验/关卡设计、美术方向分别拥有自己的批准边界;构建只能实现,不能暗中重选方向。
63
- - 低保真原型服从最大风险而非统一做成文游;它只证明被实际模拟的叙事、规则、空间或操作问题。
64
52
  - 生成模型可以解释输入和写表达,状态提交、知识披露、资源结算与不可逆承诺必须由可重放规则裁决。
65
53
  - 自然语言只在能体现玩家身份的专属命令上按需开放;它先编译成有限候选,再经过执行阻力、规则提交、
66
54
  证物/见证反馈与延期回响,不能退化成通用聊天或“说了就发生”。
67
- - 验证切片必须在实际运行环境中完整走通;范围服从 brief,不默认扩成长篇全量游戏。
68
- - 完成以运行、画面、真实输入、结果和重开证据为准;AI 不能客观证明趣味、长期平衡或商业价值。
69
-
70
- 六项必需检查全部 PASS 才报告当前候选完成最小 QA。`NOT_RUN` 可以诚实结束本次执行,但不能满足
71
- 完成声明;`qa/verification.json` 是唯一机器事实源。
@@ -17,16 +17,15 @@ intake 的目的不是举行逐项审批会,而是尽早锁住会让下游返
17
17
 
18
18
  ## 产品框架
19
19
 
20
- 填表前按需读取 [intake-benchmark-reference.md](intake-benchmark-reference.md),用它选择同玩法先例、
21
- 平台与视觉维度。引擎由目标交付物、团队现有工程、输入/显示、性能和导出约束决定;frontier 模型已知
22
- 主流框架,不在仓库维护版本、价格或渠道规格目录。只有许可、导出能力或平台限制会实质改变决定时,
23
- 才核实当前官方文档。
20
+ 引擎由目标交付物、现有工程、输入/显示、性能和导出约束决定,不在这里重复平台常识。
21
+ 玩法先例说明借用的动作与循环,视觉参考只约束声明的表现维度,两者都不以题材相似代替依据。
22
+ 尚未选定的玩法留给概念阶段,不提前锁死。
24
23
 
25
24
  | 维度 | 最小锁定内容 |
26
25
  |---|---|
27
26
  | 平台与形态 | 交付物、目标/最低显示模式、输入方式、性能预算 |
28
27
  | 市场与语言 | 目标市场、首发界面语言 |
29
- | 类型与先例 | 主玩法、一个主要玩法先例、3–5 个候选核心动词、空间形态 |
28
+ | 类型与先例 | 已锁玩法或开放方向、相关玩法先例、候选动作、空间形态 |
30
29
  | 主要承载 | `experienceProfile`:`system-led` / `narrative-led` / `hybrid` |
31
30
  | 美术与完成度 | 画风、`targetFinish`、参考维度、投入边界 |
32
31
  | 内容尺度 | 分级、成人内容范围与平台约束 |
@@ -47,5 +46,5 @@ intake 的目的不是举行逐项审批会,而是尽早锁住会让下游返
47
46
 
48
47
  ## 输出
49
48
 
50
- `PRODUCT_BRIEF.md` 一页写清十二维推荐、`targetFinish`、明确非目标、合规/权利边界、未确认假设和
49
+ `PRODUCT_BRIEF.md` 紧凑写清上述产品边界、`targetFinish`、明确非目标、合规/权利边界、未确认假设和
51
50
  需要用户裁决的阻断项。只有阻断项为空才进入拆解;普通未确认假设不阻断 `quick`。
@@ -40,23 +40,18 @@ JSON/YAML。设计理由仍由 `GAME_DESIGN.md` 拥有,运行状态与动作
40
40
 
41
41
  ## 证据角色
42
42
 
43
- `qa/verification.json` 是唯一 QA 事实源。schema v3 只写整体状态、权威命令、一次 complete run、
44
- 六项游戏效果 checks 和包含 `scope` / `reason` 的 limitations。目标运行环境与实际环境不同就如实
45
- 记录,不能用替代运行结果冒充目标平台通过。
46
-
47
- 构建只准备候选与 verify 入口,QA 只运行一次完整路径;不要求真人试玩、逐项人工批准、重复机器
48
- 证据对象或第二份 QA 报告。
43
+ 构建准备候选与 verify 入口。QA 可诊断、修复后复跑;最终事实源原子记录当前同一次完整运行,
44
+ 不拼接旧 PASS。不要求真人试玩、逐项人工批准、重复证据对象或第二份 QA 报告。
49
45
 
50
46
  白盒试玩是设计回流,不是第七道顶层 QA 门。反馈至少记录观察位置、玩家输入、预期与实际差异、受影响
51
- 的状态/动作/知识/回响节点和 owner;修订后固定同一初态、规则版本、seed 与输入序列重放受影响路径。
52
- 若节点 id、变量语义、动作效果或知识权限改变,必须迁移旧存档/日志或明确拒绝兼容,不能静默解释成新历史。
47
+ 的状态/动作/知识/回响节点和 owner;修订后用可复现的初态与输入路径复查,随机性相关时固定 seed。
48
+ 已有存档/日志因节点标识、变量语义、动作效果或知识权限变化而失效时,迁移或明确拒绝兼容,不能静默解释成新历史。
53
49
 
54
- `targetFinish` 描述成色,不改变最小 QA。预算或工具耗尽只会留下 `NOT_RUN` / `FAIL`、缩小范围或
55
- 延期,不会生成 PASS。主观趣味、平衡、权利合规和发布质量不由机器事实确定。
50
+ 预算或工具耗尽只会留下 `NOT_RUN` / `FAIL`、缩小范围或延期,不会生成 PASS。
56
51
 
57
52
  ## resume 与回流
58
53
 
59
- `resume` 读取 `_progress.md` 和实际产物,从最早未成立的完成检查继续。QA 发现按 owner 回流:
54
+ QA 发现按 owner 回流:
60
55
 
61
56
  - product:回 `PRODUCT_BRIEF.md`;
62
57
  - design/art:修订批准文档后重建受影响范围;