@oh-story/dsh 0.1.4 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (479) hide show
  1. package/README.md +56 -12
  2. package/lib/client.js +2692 -268
  3. package/lib/client.js.map +4 -4
  4. package/lib/drama/manifest.json +136 -101
  5. package/lib/drama/skills/short-drama/SKILL.md +61 -1
  6. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +7 -4
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +133 -8
  8. package/lib/drama/skills/short-drama/references/creator-workflow.md +38 -2
  9. package/lib/drama/skills/short-drama/references/knowhow-index.md +3 -0
  10. package/lib/drama/skills/short-drama/references/reference-roles.md +10 -7
  11. package/lib/drama/skills/short-drama/references/runtime-preflight.md +3 -0
  12. package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
  13. package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
  14. package/lib/drama/skills/short-drama-assets/SKILL.md +13 -3
  15. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
  16. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +2 -1
  17. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +19 -0
  18. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
  19. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
  20. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +6 -2
  21. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +4 -3
  22. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +1 -1
  23. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +1 -1
  24. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +3 -1
  25. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
  26. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
  27. package/lib/drama/skills/short-drama-produce/SKILL.md +46 -10
  28. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
  29. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
  30. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
  31. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
  32. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
  33. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
  34. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +12 -0
  35. package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
  36. package/lib/drama/skills/short-drama-storyboard/SKILL.md +76 -7
  37. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
  38. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +6 -2
  39. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
  40. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +5 -2
  41. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +16 -0
  42. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +8 -3
  43. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
  44. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +81 -13
  45. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
  46. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
  47. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +21 -1
  48. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
  49. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -6
  50. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +11 -7
  51. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
  52. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
  53. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +5 -2
  54. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
  55. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
  56. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
  57. package/lib/drama/skills/short-drama-write/SKILL.md +3 -2
  58. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
  59. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
  60. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
  61. package/lib/index.js +865 -33
  62. package/lib/index.js.map +4 -4
  63. package/lib/novel-to-game/LICENSE +21 -0
  64. package/lib/novel-to-game/README.md +180 -0
  65. package/lib/novel-to-game/README_ZH.md +178 -0
  66. package/lib/novel-to-game/VERSION +1 -0
  67. package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
  68. package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
  69. package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
  70. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  71. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  72. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  73. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  74. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  75. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  76. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  77. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  78. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  79. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  80. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  81. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  82. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  83. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  84. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  85. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  86. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  87. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  88. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  89. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  90. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  91. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  92. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  93. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  94. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  95. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  96. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  97. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  98. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  99. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  100. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  101. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  102. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  103. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  104. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  105. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  106. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  107. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  108. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  109. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  110. package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  111. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
  112. package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
  113. package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
  114. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
  115. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
  116. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
  117. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
  118. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
  119. package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
  120. package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
  121. package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
  122. package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
  123. package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
  124. package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
  125. package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
  126. package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
  127. package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
  128. package/lib/novel-to-game/manifest.json +508 -0
  129. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
  130. package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
  131. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
  132. package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
  133. package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
  134. package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
  135. package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
  136. package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
  137. package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
  138. package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
  139. package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
  140. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
  141. package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
  142. package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
  143. package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
  144. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
  145. package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
  146. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
  147. package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
  148. package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
  149. package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
  150. package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
  151. package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
  152. package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
  153. package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
  154. package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
  155. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
  156. package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
  157. package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
  158. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
  159. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
  160. package/lib/oh-story/manifest.json +415 -305
  161. package/lib/oh-story/roles/consistency-checker.md +1 -1
  162. package/lib/oh-story/roles/narrative-writer.md +32 -33
  163. package/lib/oh-story/roles/story-architect.md +16 -26
  164. package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
  165. package/lib/oh-story/skills/story/SKILL.md +16 -9
  166. package/lib/oh-story/skills/story/VERSION +1 -1
  167. package/lib/oh-story/skills/story/references/author-memory.md +163 -0
  168. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
  169. package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
  170. package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
  171. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
  172. package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
  173. package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
  174. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
  175. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
  176. package/lib/oh-story/skills/story-import/SKILL.md +19 -10
  177. package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
  178. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
  179. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
  180. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
  181. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
  182. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
  183. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
  184. package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
  185. package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
  186. package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
  187. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
  188. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
  189. package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
  190. package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
  191. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
  192. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
  193. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
  194. package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
  195. package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
  196. package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
  197. package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
  198. package/lib/oh-story/skills/{story-setup/references/agent-references/genre-core-mechanics.md → story-long-write/references/long-genre-mechanics.md} +1 -1
  199. package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-long-write/references/long-reversal.md} +18 -32
  200. package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
  201. package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
  202. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
  203. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  204. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
  205. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
  206. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +4 -4
  207. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
  208. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +14 -14
  209. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
  210. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
  211. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
  212. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
  213. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
  214. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
  215. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
  216. package/lib/oh-story/skills/story-review/SKILL.md +26 -17
  217. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
  218. package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
  219. package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
  220. package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
  221. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
  222. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
  223. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
  224. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
  225. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
  226. package/lib/oh-story/skills/story-setup/SKILL.md +74 -33
  227. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
  228. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
  229. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
  230. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
  231. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
  232. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
  233. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +1 -1
  234. package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
  235. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
  236. package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
  237. package/lib/oh-story/skills/{story-long-write/references/genre-core-mechanics.md → story-setup/references/agent-references/long-genre-mechanics.md} +1 -1
  238. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
  239. package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → long-reversal.md} +18 -32
  240. package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
  241. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
  242. package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
  243. package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
  244. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
  245. package/lib/oh-story/skills/{story-long-write/references/reversal-toolkit.md → story-setup/references/agent-references/short-reversal.md} +29 -23
  246. package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
  247. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  248. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +55 -55
  249. package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
  250. package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
  251. package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
  252. package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
  253. package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
  254. package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
  255. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
  256. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
  257. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
  258. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
  259. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
  260. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
  261. package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
  262. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
  263. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
  264. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
  265. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
  266. package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
  267. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
  268. package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
  269. package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
  270. package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
  271. package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
  272. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
  273. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
  274. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
  275. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
  276. 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
  277. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
  278. 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
  279. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
  280. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
  281. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
  282. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
  283. 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
  284. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
  285. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
  286. package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
  287. package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
  288. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
  289. package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
  290. package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
  291. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
  292. package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
  293. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
  294. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
  295. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
  296. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
  297. package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
  298. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
  299. package/lib/types/client/drama-production-view.d.ts +34 -0
  300. package/lib/types/client/drama-production-view.d.ts.map +1 -0
  301. package/lib/types/client/drama-production.d.ts +92 -0
  302. package/lib/types/client/drama-production.d.ts.map +1 -0
  303. package/lib/types/client/file-activity.d.ts +4 -2
  304. package/lib/types/client/file-activity.d.ts.map +1 -1
  305. package/lib/types/client/index.d.ts +1 -1
  306. package/lib/types/client/index.d.ts.map +1 -1
  307. package/lib/types/client/production-intents.d.ts +9 -0
  308. package/lib/types/client/production-intents.d.ts.map +1 -0
  309. package/lib/types/client/production-prompts.d.ts +9 -0
  310. package/lib/types/client/production-prompts.d.ts.map +1 -0
  311. package/lib/types/client/production-runtime.d.ts +58 -0
  312. package/lib/types/client/production-runtime.d.ts.map +1 -0
  313. package/lib/types/client/video-studio.d.ts +41 -0
  314. package/lib/types/client/video-studio.d.ts.map +1 -0
  315. package/lib/types/client/workbench-ui.d.ts +5 -0
  316. package/lib/types/client/workbench-ui.d.ts.map +1 -0
  317. package/lib/types/game-verification.d.ts +16 -0
  318. package/lib/types/game-verification.d.ts.map +1 -0
  319. package/lib/types/index.d.ts +3 -1
  320. package/lib/types/index.d.ts.map +1 -1
  321. package/lib/types/production-intent.d.ts +21 -0
  322. package/lib/types/production-intent.d.ts.map +1 -0
  323. package/lib/types/production-tool.d.ts +5 -0
  324. package/lib/types/production-tool.d.ts.map +1 -0
  325. package/lib/types/role-tool.d.ts.map +1 -1
  326. package/lib/types/skill-provider.d.ts +7 -0
  327. package/lib/types/skill-provider.d.ts.map +1 -1
  328. package/lib/types/video-project.d.ts +42 -0
  329. package/lib/types/video-project.d.ts.map +1 -0
  330. package/lib/types/workspace-request-trust.d.ts +6 -0
  331. package/lib/types/workspace-request-trust.d.ts.map +1 -1
  332. package/lib/types/workspace-route.d.ts +20 -0
  333. package/lib/types/workspace-route.d.ts.map +1 -1
  334. package/lib/video-recap/CHANGELOG.md +282 -0
  335. package/lib/video-recap/LICENSE +21 -0
  336. package/lib/video-recap/README.en.md +257 -0
  337. package/lib/video-recap/README.md +255 -0
  338. package/lib/video-recap/manifest.json +684 -0
  339. package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
  340. package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
  341. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
  342. package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
  343. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
  344. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
  345. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
  346. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
  347. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
  348. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
  349. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
  350. package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
  351. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
  352. package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
  353. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
  354. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
  355. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
  356. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
  357. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
  358. package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
  359. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
  360. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
  361. package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
  362. package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
  363. package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
  364. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
  365. package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
  366. package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
  367. package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
  368. package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
  369. package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
  370. package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
  371. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
  372. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
  373. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
  374. package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
  375. package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
  376. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
  377. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
  378. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
  379. package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
  380. package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
  381. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
  382. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
  383. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
  384. package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
  385. package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
  386. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
  387. package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
  388. package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
  389. package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
  390. package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
  391. package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
  392. package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
  393. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
  394. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
  395. package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
  396. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
  397. package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
  398. package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
  399. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
  400. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
  401. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
  402. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
  403. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
  404. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
  405. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
  406. package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
  407. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
  408. package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
  409. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
  410. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
  411. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
  412. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
  413. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
  414. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
  415. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
  416. package/lib/video-recap/skills/video-script/SKILL.md +248 -0
  417. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
  418. package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
  419. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
  420. package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
  421. package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
  422. package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
  423. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
  424. package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
  425. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
  426. package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
  427. package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
  428. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
  429. package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
  430. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
  431. package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
  432. package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
  433. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
  434. package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
  435. package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
  436. package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
  437. package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
  438. package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
  439. package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
  440. package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
  441. package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
  442. package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
  443. package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
  444. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
  445. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
  446. package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
  447. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
  448. package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
  449. package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
  450. package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
  451. package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
  452. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
  453. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
  454. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
  455. package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
  456. package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
  457. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
  458. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
  459. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
  460. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
  461. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
  462. package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
  463. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
  464. package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
  465. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
  466. package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
  467. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
  468. package/package.json +55 -40
  469. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
  470. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
  471. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
  472. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
  473. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
  474. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
  475. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
  476. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
  477. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
  478. /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
  479. /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
@@ -0,0 +1,124 @@
1
+ # 游戏世界设计方法
2
+
3
+ ## 先写可被推翻的体验假设
4
+
5
+ 把每条体验支柱写成玩家动作、可见变化和失败现象,并尽早放进一段粗糙但完整的切片。先解决最危险
6
+ 的体验问题,再增加内容和包装;时间或资产冲突时,保护最能体现原作转化的玩家动作。
7
+
8
+ 验证路径只记录输入、状态、反馈、结果和重开。主观喜欢与否不是机器结论。
9
+
10
+ 原型保真度只覆盖最大风险:`narrative-led` 可用文本/场景白盒验证知识、承诺与回响;`system-led` 可用
11
+ 回合状态板验证资源、门槛与反制;`hybrid` 让两层在最短路径中互相读写;实时动作、视线、导航、物理或
12
+ 镜头风险直接进入目标引擎灰盒。不能用文字顺畅证明操作、空间或镜头成立。
13
+
14
+ ## 类型合同与因果循环
15
+
16
+ 只写影响玩家决策的类型规则。回合制关心信息、行动顺序和结算;实时动作关心输入、时机、空间与
17
+ 恢复;经营关心时间、资源流和延迟反馈;叙事关心信息权限、介入时机、不可撤回选择和人物回响。
18
+ 不要把任何一套字段固定给所有项目。
19
+
20
+ 关键规则都用同一因果句描述:
21
+
22
+ ```text
23
+ 当前状态 + 玩家选择 + 世界规则 → 新状态 + 可读反馈 + 后续选择变化
24
+ ```
25
+
26
+ 对关键动作补齐稳定 id、前置条件、确定性效果、观察者/知情者、揭示或消耗、不可突破不变量与后续回读。
27
+ 只对秘密、证词、欺骗和关系误判等高风险事实维护 `world fact / player knows / character knows or believes`;
28
+ 不要为普通事实制造多层心智模型。
29
+
30
+ 短循环闭合一次动作和即时反馈,长循环组合多个动作并带来新压力、信息或阶段结果。优秀玩家与新手
31
+ 的差异可以是操作、资源判断、空间阅读、人物判断或一次性知识;只有项目承诺复玩时才要求可再生的
32
+ 不确定性。
33
+
34
+ ## 身份专属命令、执行链与延期回响
35
+
36
+ 只有 CONCEPT 选中 `signature_command` 时才设计本节。先定义一项身份动作和最小有限意图,不从通用聊天
37
+ 框开始:
38
+
39
+ ```text
40
+ 玩家表述 → 解析候选 → 缺槽/歧义/冲突处理 → 规则验证 → 执行阻力 → 提交实际结果
41
+ → 反馈证物与知情者 → 到期后果重新进入决策面
42
+ ```
43
+
44
+ GAME_DESIGN 固定写出 `id / label / intents / slots / validators / commit` 六组最小结构;具体意图、槽位、
45
+ 验证器与提交项服从本项目,不设跨项目固定数量。候选动作可按项目包含执行人、动作、对象、物件、地点、
46
+ 可见范围、期限等;不要求所有项目共享同一字段全集。否定、条件、互斥要求或超出支持语义时澄清或拒绝,
47
+ 不靠命中关键词静默改成相反行动。
48
+ 规则器分别裁决资源、执行人在场/意愿、空间权限、人物知识、冲突承诺与原作边界,因此实际结果可以是
49
+ 完成、部分完成、拒绝、走样或泄露。反馈并列“你的安排 / 实际执行 / 留下的物与见证 / 后续到期事项”,
50
+ 不能只用一段生成叙事掩盖结算。
51
+
52
+ 延期事项至少声明来源行动、到期条件、携带的执行人/物件/见证/承诺、当前状态、重新上桌方式和结清事件;
53
+ 它必须在到期时改变当前选择或要求再次裁决,不能只追加一句装饰回声。若私人谈话也是玩法通道,谈话只
54
+ 提出事实、承诺、权限、拒绝和见证候选,经同一规则验证后进入事件账;原始聊天文本和模型数值都不是状态
55
+ 权威。
56
+
57
+ ## 决策深度与能动性
58
+
59
+ 为最重要的决策写一个代表性例子:列出可选动作和至少两种真实局面,说明为什么原本合适的动作会在
60
+ 另一局面失效。不存在跨局面永远正确的默认动作,玩家也能从界面、空间、人物或前路信息预判后果。
61
+
62
+ 不要用固定选项数、百分比阈值或跨项目数值比冒充深度。项目先声明什么现象表示取舍不存在,再用
63
+ 实际规则和代表路径去证伪。
64
+
65
+ 玩家能动性同时要求:选择改变事情的原因或方向,结果又会回读玩家做过的具体事。总分、旁白总结、
66
+ 随机救场或花资源放行既定剧情都不能代替这两项。
67
+
68
+ ## 世界必须主动回应
69
+
70
+ 作为卖点的规则不能只供玩家单向利用。对手、环境或人物至少读取一种玩家状态并改变策略:敌人根据
71
+ 站位或资源反应,环境根据工具改变路线,人物根据承诺、证词或旧账主动试探、提条件、抢先公开或
72
+ 拒绝。只会等待玩家点击、始终完整回答或按固定脚本行动的对象没有形成对抗。
73
+
74
+ 所有随时间增长的资源、等级、好感和进度,都要带来新的决策类型、可达空间、人物行为或组合方式;
75
+ 只涨读数就是空转。
76
+
77
+ ## 系统与内容预算
78
+
79
+ 第一版只保留一个核心系统、最多两个支持系统和一个标志性场面。库存、制作、技能树、天气、开放
80
+ 世界和额外关系线只有在增加核心决策时存在;自动替玩家处理后体验不变的成长系统应删除或降级。
81
+
82
+ 角色与事件按承诺分层:
83
+
84
+ | 层级 | 最小深度 |
85
+ |---|---|
86
+ | 氛围人物 | 身份、位置、可辨识反应 |
87
+ | 支持短线 | 自身诉求、一次有后果的选择、一次下游回响 |
88
+ | 核心路线 | 多阶段关系、独立筹码、高潮与结局回收 |
89
+
90
+ 短线先证明会产生后续差异;升级为核心路线是新的产品范围,不由内容数量自动决定。
91
+
92
+ ## 关卡与场景节拍
93
+
94
+ 用“教会 → 变式 → 组合 → 检验 → 命运回收”组织最短闭环:
95
+
96
+ 1. **教会**:给清楚目标,让玩家尽快做出核心动作并看到后果;
97
+ 2. **变式**:改变空间、信息、对手意图或资源,使机械重复失效;
98
+ 3. **组合**:让两个已知规则产生原作特有的场面或取舍;
99
+ 4. **检验**:减少提示,让玩家迁移所学,并显示失败原因和可改之处;
100
+ 5. **命运回收**:结果读取玩家的关系史、知识、资源与关键选择,而非只看一个总分。
101
+
102
+ 逐拍用最省事的默认打法走一遍;若忽略该拍规则仍得到近似结果,就给它一条可见的局面约束,或把
103
+ 这拍删掉。修复优先复用已教系统,不为中段另造新系统。
104
+
105
+ ## 空间、首屏与反馈
106
+
107
+ 每个空间说明镜头可见范围、主路线、可选风险路线和地标。第一帧只保留一个主要焦点;次级面板的
108
+ 折叠、隐藏或常驻都要有触发或产品理由。
109
+
110
+ 核心动词的输入、画面/声音反馈和状态变化应在同一节拍内闭合。高压后安排恢复;失败说明发生了什么
111
+ 以及玩家下次能改变什么。优先通过空间、人物反应和后果传递设定,不用百科文本替代世界响应。
112
+
113
+ 叙事承载体验时的场景、知识、分支和人物方法见
114
+ [narrative-design-method.md](narrative-design-method.md) 与
115
+ [dialogue-design-method.md](dialogue-design-method.md)。
116
+
117
+ ## 白盒试玩与局部修订
118
+
119
+ 白盒运行至少留下初始状态、内容/规则版本、seed、输入序列、事件日志与终态摘要。每次反馈定位为:
120
+ `观察位置 → 预期/实际差异 → 状态/动作/知识/回响节点 → owner → 最小修改 → 重放路径`。自然语言可表达
121
+ 问题,问题标签便于聚类,结构化字段只修改被定位的节点;不要每次重写整份设计。
122
+
123
+ 文本、标签与表现资产通常可局部替换;变量语义、节点 id、行动效果、知识权限或不可逆承诺改变时,声明
124
+ 存档/日志迁移或明确失效。修订后先重放原失败路径,再跑一条会揭露分支污染的相邻路径。
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: novel-game-analyze
3
+ description: "Deconstruct a novel for game adaptation. Compress a raw novel, deconstruction library, or writing project into a SOURCE_BIBLE with cited textual evidence, extracting world rules, player verbs, spaces, character will, systems, and visual anchors — without inventing a genre yet. Use for gameable book analysis, analyze a novel for game adaptation, extract game systems from a book. 游戏化拆书。把原始小说、拆文库或写作工程压缩成有必要原文证据的 SOURCE_BIBLE,提取世界规则、玩家动词、空间、角色意志、系统和视觉锚点,不提前发明游戏类型。用于游戏化拆书、分析小说的游戏改编基础等需求。"
4
+ ---
5
+ # 小说游戏化拆解
6
+
7
+ 建立游戏设计所需的事实层,不评价文笔,也不在此阶段选择游戏类型。
8
+
9
+ 读取 [gameability-protocol.md](references/gameability-protocol.md)。
10
+
11
+ 产物语言由 `PRODUCT_BRIEF.md` 锁定;未锁定时跟随对话语言,不默认产出中文。
12
+
13
+ 原文可以是任意语言。引用保留原文;策划语言或界面语言与原文不同时附必要译文,并建立角色名、
14
+ 地名、物件和规则的统一术语表;礼制、宗教和叙事惯例不替换成另一文化的近似类型标签。
15
+
16
+ ## 输入
17
+
18
+ 优先复用现有写作工程或**全量**拆文产物,只回原文补关键证据;只有原始小说时才执行
19
+ 本 skill 的全书管道。已有分析若只覆盖黄金三章或快速预览,只能帮助判断开篇,不能
20
+ 证明理解了全书。除非用户明确只改编某一卷或片段,否则来源未覆盖全文时不得进入概念设计。
21
+
22
+ 不因目录看起来完整就直接信任;按协议「来源清点」清点来源与已有拆文后,再判定是否算全量。
23
+
24
+ 若存在 `PRODUCT_BRIEF.md`,先读取:分级、核心幻想与已锁类型决定取证优先级——优先为
25
+ 核心幻想涉及的动作、关系、场面取证;对已锁类型需要而原作未系统提供的体系(如属性相克、
26
+ 数值成长),在设计空白中写明「原作无系统化的对应体系,属下游发明」,供下游改编边界如实
27
+ 引用。仍不在本阶段发明或评价类型。
28
+
29
+ ## 全书管道
30
+
31
+ 建立边界 → 逐单元提取 → 覆盖门禁 → 分层聚合 → 回查原文 → 压缩交付。各步做法以
32
+ gameability-protocol.md 为准,此处只列顺序,不重述。选定改编段落的核对在概念选定后二次
33
+ 进入时做,产出逐事实表(见「输出」)。工作卡只服务覆盖、恢复和复核,不把过程日志包装成策划成果。
34
+
35
+ 可以在运行时并行处理互不重叠的章节批次,但每批必须使用同一提取契约,聚合和事实回查
36
+ 保持串行。环境不支持并行时逐批串行完成,不能改成抽样。
37
+
38
+ ## 提取维度
39
+
40
+ 只保留会影响玩家动作、世界响应或视听身份的内容;字段以协议「逐章游戏化卡」的十行为准,不得
41
+ 只取其中一部分,该表即并行批次共用的提取契约。另记不可改的原作事实、授权风险和原作未定义的设计空间。
42
+
43
+ 若作品反复出现命令、委托或代办,同样落回既有十行:记录谁有资格下令、谁实际执行、所需权限与物件、
44
+ 可能拒绝或走样的环节、谁会见证,以及什么债务或后果会延期返回。此阶段只提取身份动作的原作依据,
45
+ 不预设运行时必须有自由输入,也不把一句命令直接等同于事情已经发生。
46
+
47
+ 为硬规则、关键角色目标、玩家身份依据、转折结局和标志性锚点记录章节或文件位置。
48
+ 普通候选项不必机械附带置信度对象;推断必须明确标成推断或开放设计空间。
49
+
50
+ ## 输出
51
+
52
+ 生成一份 `analysis/SOURCE_BIBLE.md`,包含来源范围、**全书覆盖**、世界身份、原作事实与
53
+ 证据、改编边界、玩家身份候选(PRODUCT_BRIEF 已锁身份时改为该身份的动作空间验证)、
54
+ 可玩动词、可下达/承接的身份动作及其执行阻力、世界模型、空间与角色能动性、文化语境、
55
+ 术语表(语言条件见上)、视觉锚点、风险和设计空白。全书覆盖按连续范围列出每一阶段的关键变化、
56
+ 强弱节奏、反例/回收与游戏化意义,
57
+ 表头写明来源单元数与成功数,使覆盖集合与来源单元集合完全一致。短表格优先于重复文档、
58
+ 结构化数据和证据索引。
59
+
60
+ 改编边界必须是表格:`条目 | 边界类型 | 证据位置`,边界类型只用协议的四种标签;涉及
61
+ 名分、座次、官阶或队伍序列的作品必须附人物名册行(`姓名 | 身份/次序 | 结局 | 证据回目`),
62
+ 作为下游各交接门逐项比对的名册基准。
63
+
64
+ 概念阶段选定改编段落后,二次进入本 skill 为该段落补一张逐事实表并追加进 SOURCE_BIBLE:
65
+ `事实 | 证据位置 | 边界类型`,含入镜角色的外观要点(服饰、兵器、体量及位置;原文无描写
66
+ 写「原文未明确」)。此表是下游交接门的段落级比对基准;下游仍可回原文补证,发现出入时
67
+ 回上游修正此表,不得各自改写。追加这类原作事实与证据是概念选定后对 SOURCE_BIBLE 的
68
+ 唯一允许更新——SOURCE_BIBLE 不得包含下游发明物,游戏状态键名、回合或日程编号、
69
+ scene_id、Hub/界面结构、QA 与范围计划只属于 GAME_DESIGN,不得把既有事实改写成
70
+ 切片说辞。
71
+
72
+ 来源范围只记录会影响复核的版本、覆盖范围和授权边界。下载日期、字节数、校验值和
73
+ 本地路径只有在复现契约确实需要时才写,不把获取日志当策划内容。
74
+
75
+ 完成前确认:覆盖数与来源数一致且无未处理失败;核心规则可追溯;改编边界成表且证据位置
76
+ 齐全;能回答玩家可能做什么、在哪里做、世界如何回应;理解开篇、中段、结局和跨段回收;
77
+ 没有把一次性剧情冒充核心循环,也没有提前选定游戏类型。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "Gameable Book Analysis"
3
+ short_description: "Extract gameable canon from a novel · 从小说中提取可玩的原作事实"
4
+ default_prompt: "Use $novel-game-analyze to extract a source bible this novel's game design can build on."
@@ -0,0 +1,65 @@
1
+ # 游戏化全书拆解方法
2
+
3
+ 长篇分析采用稳定边界、逐单元提取、分层聚合和原文回查。这里只提炼游戏设计事实,不评价文风,
4
+ 也不提前选择游戏类型。
5
+
6
+ ## 一、来源与覆盖
7
+
8
+ 记录作品版本、改编范围、单元边界、缺失部分和授权边界。除非用户明确限定范围,分析集合应与
9
+ 来源边界集合一致;无法读取的部分要标为部分分析,不能用抽样冒充全书覆盖。
10
+
11
+ 长篇可把稳定边界表写入 `analysis/_coverage.md`,用于分批、恢复和缺号检查。已有拆文产物只有在
12
+ 逐单元覆盖与原文边界一致时才可复用为全量分析;临时工作卡完成聚合后可以删除。
13
+
14
+ ## 二、逐单元游戏化卡
15
+
16
+ 每个单元使用同一紧凑记录;没有新信息时写“无新增”,仍计入覆盖:
17
+
18
+ | 字段 | 只记录什么 |
19
+ |---|---|
20
+ | 客观变化 | 谁做了什么,哪项状态、关系、资源、位置或认知因此变化 |
21
+ | 动作候选 | 可被玩家重复执行且允许选择、反馈或熟练度差异的动作;含有原作依据的命令、委托或代办 |
22
+ | 规则证据 | 触发条件、代价、例外、反制和可观察后果 |
23
+ | 行动者 | 目标、默认行动、资源、底线、可下达/承接的事及其变化 |
24
+ | 空间 | 入口、出口、门槛、地标、风险和可改变部分 |
25
+ | 物件与能力 | 输入、效果、限制、归属和是否只出现一次 |
26
+ | 知识与信息差 | 谁知道、误信、隐瞒或说谎,靠什么载体建立 |
27
+ | 节奏与感受 | 压力怎样建立、释放或反转,玩家通过何种行动感受 |
28
+ | 视听锚点 | 有原文依据且服务识别或反馈的轮廓、材质、声音和场面 |
29
+ | 证据与边界 | 原文位置、推断、冲突、未定义和衍生混入风险 |
30
+
31
+ 逐单元卡不是剧情摘要。评价句应改写成可观察事实及其造成的状态变化;删除“游戏化意义”后若
32
+ 只剩剧情复述,就继续压缩。
33
+
34
+ ## 三、从事实得到系统候选
35
+
36
+ 不要把叙事元素自动映射成类型。对反复动作、世界规则、关系、地点、信息差和情绪承诺分别问:
37
+ 玩家能做什么决定,世界如何反馈,什么状态会持续到下一步,重复后能否产生学习或不同结果。
38
+ 一次性高潮可以保留为标志性场面,不能假装成核心循环。
39
+
40
+ 对命令或代办再区分:提出者想做什么、实际执行者能做什么、经过哪些人物/空间/权限、留下什么证据与
41
+ 见证、何时重新成为问题。原文中反复成立的“下令不等于办成”可成为系统候选;单次传话不能据此推断
42
+ 通用自由输入或完整委托系统。
43
+
44
+ 原作事实只用四种边界:`immutable`、`adaptable`、`open`、`conflicted`。玩家身份未锁定时,
45
+ 比较主角、原创角色、势力或聚落、观察者能访问的动作和决策空间;已锁定时只验证该身份。
46
+
47
+ ## 四、分层聚合
48
+
49
+ 按三层压缩:
50
+
51
+ 1. **单元层**:保留局部事实、变化和证据位置;
52
+ 2. **阶段层**:按剧情目标、地点、能力阶段或规则簇整理压力、转折和可重复结构;
53
+ 3. **全书层**:找反复成立的因果、角色能动性、空间语法、情绪承诺和独有视听身份。
54
+
55
+ 全书层主动找反例和最终回收,避免把只在开篇成立的现象写成硬规则。秘密、谎言、证词或立场
56
+ 冲突驱动原作时,再整理知识权限和铺垫回收;原作没有这类结构就不为凑表格编造。
57
+
58
+ ## 五、事实保真与交付
59
+
60
+ 数值、能力边界、人物关系、死亡和结局必须回查原文。聚合结论引用最早建立、典型运作、重要
61
+ 反例和最终回收位置;冲突保留各自证据并标为 `conflicted`,未定义内容进入开放设计空间。
62
+ 角色断言不自动等于世界事实,相邻实体的属性也不能互相挪用。
63
+
64
+ `SOURCE_BIBLE.md` 只保留会影响概念选择的事实、边界和必要证据。交付时确认来源范围明确、
65
+ 覆盖集合完整、核心规则可追溯,并能回答玩家可能做什么、在哪里做、世界如何回应。
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: novel-to-game
3
+ description: "Turn a novel into a fully playable game on the selected target platform. Orchestrates the whole adaptation pipeline — requirements intake, gameable deconstruction, concept selection, world and visual design, target-runtime build, and evidence-based QA — for a novel in any language. Use for novel to game, story to game, book to game, adapt this novel into a game, turn this book into a playable prototype, make an interactive story or text adventure from this novel. NovelToGame 总入口。把任意语言的原始小说、拆文库或 oh-story 写作工程转成有原著依据、可在目标平台完整游玩的游戏,编排游戏化拆解、概念选择、游戏与视觉设计、目标运行环境构建和证据化质量验证。用于小说转游戏、把这本书做成游戏、把小说改成互动小说 / 互动叙事 / 文字冒险游戏等需求。"
4
+ ---
5
+ # NovelToGame 总入口
6
+
7
+ 你是小说游戏化总导演:守住改编判断、阶段边界和完成证据,不把普通原型包装成趣味、平衡、权利或
8
+ 发布质量结论。开始前读取 [pipeline-contract.md](references/pipeline-contract.md)。
9
+
10
+ ## 默认策略
11
+
12
+ 先速读来源并替用户起草 `PRODUCT_BRIEF.md`,再按
13
+ [intake-method.md](references/intake-method.md) 只处理会实质改变方向或带来权利、尺度、平台风险的
14
+ 歧义。低风险空白集中列为未确认假设,不逐项拦停。
15
+
16
+ `targetFinish` 只表示想做到的成色:`graybox`、`playable-prototype`、
17
+ `polished-vertical-slice` 或 `showcase`。所有项目使用同一最小 QA:真实启动、渲染、输入、核心循环、
18
+ 至少一个设计结果和重开。连续 3D、语音、生成媒体、多语言或无障碍只在实际采用时运行项目自己的
19
+ 效果回归,不形成第二套验收等级。
20
+
21
+ `PRODUCT_BRIEF.md` 与 `SOURCE_BIBLE.md` 是上游事实,下游不得静默改写。brief 必须锁定平台、生产
22
+ 引擎、实际交付物、目标运行时和可用的实际测试运行时。工具链不可用时,只能使用 brief 已批准的
23
+ 替代运行时;替代结果不证明目标平台已通过。
24
+
25
+ ## 模式
26
+
27
+ - `quick`:默认;用推荐草案推进,比较三个概念后自动选择并完成全流程。
28
+ - `director`:给出三个概念和推荐后停靠,等待用户选方向。
29
+ - `resume`:读取 `_progress.md` 和实际产物,从最早未完成的交接继续。
30
+
31
+ ## 流程
32
+
33
+ 1. 建立工作区,记录来源、模式、当前阶段和未确认假设。
34
+ 2. 生成 `PRODUCT_BRIEF.md`;高风险歧义未解决时才停靠。
35
+ 3. 调用 `novel-game-analyze` 生成有原文依据的 `SOURCE_BIBLE.md`。
36
+ 4. 调用 `game-concept` 生成三个真正不同的方向并选定 `CONCEPT.md`;同时判断是否存在一项值得开放的
37
+ 角色专属命令,实时/空间/精确操作不适合时明确 `N/A`;`director` 在此停靠。
38
+ 5. 调用 `game-world-design` 生成 `GAME_DESIGN.md`,其中锁定最大设计风险与最小可执行切片。
39
+ 6. 在完整美术生产前调用 `game-build` 做与风险匹配的白盒候选:叙事风险用状态/场景沙箱,系统风险用
40
+ 回合或桌面板,实时操作与空间风险直接用目标引擎灰盒。固定初态、seed 与输入序列试玩;把偏差定位到
41
+ 具体状态、动作、知识边界或回响,再交回 design owner 局部修订并重放受影响路径。
42
+ 7. 调用 `game-art-direction` 生成 `ART_DIRECTION.md`;只有目标成色需要时再制作视觉目标包。
43
+ 8. 再由 `game-build` 将验证后的因果语义实现为完整候选,`game-qa` 验证最小闭环;问题按
44
+ product/design/art/build 归属回流,不让实现阶段静默重做策划。
45
+
46
+ 编排器只记录两项完成结果:
47
+
48
+ - `scope`:上游范围和阶段 owner 齐全且不冲突;
49
+ - `playable`:六项最小玩家效果均有真实运行证据。
50
+
51
+ ## 语言与文化
52
+
53
+ 接受任意语言小说。产物使用用户指定语言,未指定时跟随对话语言;原文证据保留原语言,跨语言只补
54
+ 决策所需译文并维护一个术语表。原作文化语境、目标市场和界面语言分别记录,不用逐字翻译替代本地化判断。
55
+
56
+ ## 不可删除的判断
57
+
58
+ - 剧情必须转成玩家动词、选择和世界反馈,而非逐章复演。
59
+ - `experienceProfile`(`system-led` / `narrative-led` / `hybrid`)由 brief 起草、概念阶段确认,之后
60
+ 贯穿设计、美术、构建与 QA;它只改变判据表达,不降低完成要求。
61
+ - 玩家选择要拥有因果权与结算权,不能用卡牌、回合或资源条伪装能动性。
62
+ - 概念、体验/关卡设计、美术方向分别拥有自己的批准边界;构建只能实现,不能暗中重选方向。
63
+ - 低保真原型服从最大风险而非统一做成文游;它只证明被实际模拟的叙事、规则、空间或操作问题。
64
+ - 生成模型可以解释输入和写表达,状态提交、知识披露、资源结算与不可逆承诺必须由可重放规则裁决。
65
+ - 自然语言只在能体现玩家身份的专属命令上按需开放;它先编译成有限候选,再经过执行阻力、规则提交、
66
+ 证物/见证反馈与延期回响,不能退化成通用聊天或“说了就发生”。
67
+ - 验证切片必须在实际运行环境中完整走通;范围服从 brief,不默认扩成长篇全量游戏。
68
+ - 完成以运行、画面、真实输入、结果和重开证据为准;AI 不能客观证明趣味、长期平衡或商业价值。
69
+
70
+ 六项必需检查全部 PASS 才报告当前候选完成最小 QA。`NOT_RUN` 可以诚实结束本次执行,但不能满足
71
+ 完成声明;`qa/verification.json` 是唯一机器事实源。
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "NovelToGame"
3
+ short_description: "Turn a novel into a playable game · 把小说转成可玩的游戏"
4
+ default_prompt: "Use $novel-to-game to turn this novel into a fully playable game on the most suitable target platform."
@@ -0,0 +1,42 @@
1
+ # 玩法先例与平台约束参考
2
+
3
+ 本参考帮助 intake 给出可执行默认值,不维护游戏名单、销量排名或按语言划分的固定市场表。
4
+
5
+ ## 先分开四个问题
6
+
7
+ - **原作语言与文化语境**:决定术语、人物关系和文化符号如何保真。
8
+ - **目标市场与界面语言**:由用户用途、发行计划和受众决定,不从原作语言自动推出。
9
+ - **玩法先例**:证明玩家会反复做什么、循环怎样产生取舍,不要求题材相同。
10
+ - **视觉参考**:只约束构图、材质、色光或信息密度,不自动成为玩法先例。
11
+
12
+ ## 最小先例选择
13
+
14
+ 先选一个最接近核心动词与循环结构的**主要玩法先例**。只有它无法回答另一个独立风险时,才补一个
15
+ 辅助先例;不要为凑数量建立对标矩阵。
16
+
17
+ 每个被采用的先例只记录:
18
+
19
+ `作品 | 解决的问题 | 借用的动词/循环/结构 | 明确不借 | 事实来源或不确定性`
20
+
21
+ - 先例用于解释玩法可识别性,不要求提供销量、在线峰值或评论数量。
22
+ - 题材相似但玩法不同只能帮助文化或视觉判断,不能冒充玩法先例。
23
+ - 互动叙事是成熟玩法:读局面、追问/调查、比对信息、表态或行动、承受回响都可成为核心动词。
24
+ - 原作规则可以改变动作对象、顺序、代价和世界回应;先例是起点,不是禁止改编创新的模板。
25
+ - 只核实会改变当前决定的外部事实。较新、小众或版本敏感信息用当前可靠来源;常识性玩法结构不
26
+ 为了仪式感重复研究。
27
+
28
+ ## 平台只锁真实约束
29
+
30
+ | 形态 | intake 要锁的约束 |
31
+ |---|---|
32
+ | PC / 主机 | 键鼠或手柄、目标性能、窗口/全屏、打包系统 |
33
+ | 浏览器 | 首次加载、最低视口、鼠标/触控、静态托管或服务端边界 |
34
+ | 移动 App | 朝向、触控、机型性能、安装包与离线需求 |
35
+ | 小程序 / 小游戏 | 当前渠道包体、输入、联网、审核与分包限制 |
36
+
37
+ 平台能力、许可或渠道规格可能变化时查当前官方文档;仓库不保存版本号、价格或包体上限快照。
38
+
39
+ ## 交给概念阶段
40
+
41
+ PRODUCT_BRIEF 只需写明主玩法、3–5 个候选核心动词、一个主要先例、目标平台和最大未知。若玩法仍
42
+ 有多个合理方向,把差异留给三个概念比较,不在 intake 提前锁死;低风险空白继续列为未确认假设。
@@ -0,0 +1,51 @@
1
+ # 需求 intake:先给推荐,再处理高风险歧义
2
+
3
+ intake 的目的不是举行逐项审批会,而是尽早锁住会让下游返工的产品边界。先读来源,替用户写一页
4
+ 推荐草案;低风险空白列为未确认假设并继续,只有 materially branching 或安全相关决定才停靠。
5
+
6
+ ## 默认动作
7
+
8
+ 1. 速读到足以判断语言、题材、情绪内核、时代设定和内容尺度。
9
+ 2. 依据原作与用户用途给出一个完整推荐,而不是连续抛空问题。
10
+ 3. 只在平台、核心玩法、核心幻想、成人内容、真实人物、版权、资产授权、付费服务或不可逆制作投入
11
+ 存在实质分支时停下来问。
12
+ 4. 其余未定项写进 `PRODUCT_BRIEF.md` 的「未确认假设」,标注推荐依据和影响;下游若要改变,回到
13
+ brief 显式修订。
14
+
15
+ 联网只用于会影响真实决定且可能变化的事实,例如当前引擎导出能力、许可证、渠道限制和新服务规格。
16
+ 不要为了给每个常识默认值找出处而把 intake 变成研究项目。
17
+
18
+ ## 产品框架
19
+
20
+ 填表前按需读取 [intake-benchmark-reference.md](intake-benchmark-reference.md),用它选择同玩法先例、
21
+ 平台与视觉维度。引擎由目标交付物、团队现有工程、输入/显示、性能和导出约束决定;frontier 模型已知
22
+ 主流框架,不在仓库维护版本、价格或渠道规格目录。只有许可、导出能力或平台限制会实质改变决定时,
23
+ 才核实当前官方文档。
24
+
25
+ | 维度 | 最小锁定内容 |
26
+ |---|---|
27
+ | 平台与形态 | 交付物、目标/最低显示模式、输入方式、性能预算 |
28
+ | 市场与语言 | 目标市场、首发界面语言 |
29
+ | 类型与先例 | 主玩法、一个主要玩法先例、3–5 个候选核心动词、空间形态 |
30
+ | 主要承载 | `experienceProfile`:`system-led` / `narrative-led` / `hybrid` |
31
+ | 美术与完成度 | 画风、`targetFinish`、参考维度、投入边界 |
32
+ | 内容尺度 | 分级、成人内容范围与平台约束 |
33
+ | 核心幻想 | 玩家扮谁、追求什么、何时产生什么情绪 |
34
+ | 时长与结构 | 验证切片时长、单局/长线结构 |
35
+ | 发行定位 | 买断、免费、N/A;只记录会影响玩法的部分 |
36
+ | 引擎与运行时 | 生产引擎、目标运行时、可用的实际测试运行时 |
37
+ | 玩家结构 | 单人/多人/异步/实时,以及切片内真实范围 |
38
+ | 受众 | 硬核度、主要动机、上手与信息密度 |
39
+
40
+ 未适用的维度写 `N/A`,表示明确不做,不允许下游自行补默认。
41
+
42
+ ## 安全边界
43
+
44
+ - 成人内容显式锁定上限和发行边界;不涉及真实人物,不性化任何未成年角色。
45
+ - 目标与实际测试运行时分开;替代结果只证明实际覆盖层。
46
+ - 参考只借已声明维度,不顺手搬入角色、UI、世界设定或未经授权资产。
47
+
48
+ ## 输出
49
+
50
+ `PRODUCT_BRIEF.md` 一页写清十二维推荐、`targetFinish`、明确非目标、合规/权利边界、未确认假设和
51
+ 需要用户裁决的阻断项。只有阻断项为空才进入拆解;普通未确认假设不阻断 `quick`。
@@ -0,0 +1,65 @@
1
+ # 流程契约
2
+
3
+ ## 最小工作区
4
+
5
+ ```text
6
+ game-adaptations/{project}/
7
+ ├── PRODUCT_BRIEF.md
8
+ ├── analysis/SOURCE_BIBLE.md
9
+ ├── concepts/CONCEPT.md
10
+ ├── design/GAME_DESIGN.md
11
+ ├── design/ART_DIRECTION.md
12
+ ├── build/BUILD_BRIEF.md
13
+ ├── build/app/
14
+ ├── qa/verification.json
15
+ └── _progress.md
16
+ ```
17
+
18
+ 按需增加 `_coverage.md`、视觉目标、资产账本和最小证据目录。所有机器状态只取 `NOT_RUN` / `FAIL` /
19
+ `PASS`;`NOT_RUN` 表示没有证据,不能满足完成声明。
20
+
21
+ 早期白盒候选、可执行模型、事件日志、回放与 patch 只在项目实际需要时增加。可执行模型必须被当前
22
+ 候选运行时消费,或作为测试合同逐项对照实际规则;不能把整份 `GAME_DESIGN.md` 再抄成一份无人读取的
23
+ JSON/YAML。设计理由仍由 `GAME_DESIGN.md` 拥有,运行状态与动作由实现拥有,实际发生记录由事件日志拥有。
24
+
25
+ ## 阶段 owner 与完成检查
26
+
27
+ 概念、体验/关卡设计、美术方向分别由 `CONCEPT.md`、`GAME_DESIGN.md`、`ART_DIRECTION.md` 的 owner
28
+ 负责;构建不得静默改写它们。编排器只检查:
29
+
30
+ | 检查 | 成立条件 |
31
+ |---|---|
32
+ | `scope` | brief、source bible 和三份设计交接存在;范围、原作事实、目标运行形态、`targetFinish` 与 `experienceProfile` 不冲突 |
33
+ | `playable` | `qa/verification.json` 的 `launch`、`render`、`input`、`coreLoop`、`outcome`、`restart` 均有真实运行证据 |
34
+
35
+ `_progress.md` 只记录来源、模式、当前阶段、未确认假设、回流和这两项结果。详细测试状态留在
36
+ `qa/verification.json`,不要复制到多份状态表。
37
+
38
+ 早期工作区缺少 `experienceProfile` 时,`resume` 按现有 `CONCEPT.md` 补记一次并继续;不得据此重做
39
+ 已批准概念。
40
+
41
+ ## 证据角色
42
+
43
+ `qa/verification.json` 是唯一 QA 事实源。schema v3 只写整体状态、权威命令、一次 complete run、
44
+ 六项游戏效果 checks 和包含 `scope` / `reason` 的 limitations。目标运行环境与实际环境不同就如实
45
+ 记录,不能用替代运行结果冒充目标平台通过。
46
+
47
+ 构建只准备候选与 verify 入口,QA 只运行一次完整路径;不要求真人试玩、逐项人工批准、重复机器
48
+ 证据对象或第二份 QA 报告。
49
+
50
+ 白盒试玩是设计回流,不是第七道顶层 QA 门。反馈至少记录观察位置、玩家输入、预期与实际差异、受影响
51
+ 的状态/动作/知识/回响节点和 owner;修订后固定同一初态、规则版本、seed 与输入序列重放受影响路径。
52
+ 若节点 id、变量语义、动作效果或知识权限改变,必须迁移旧存档/日志或明确拒绝兼容,不能静默解释成新历史。
53
+
54
+ `targetFinish` 描述成色,不改变最小 QA。预算或工具耗尽只会留下 `NOT_RUN` / `FAIL`、缩小范围或
55
+ 延期,不会生成 PASS。主观趣味、平衡、权利合规和发布质量不由机器事实确定。
56
+
57
+ ## resume 与回流
58
+
59
+ `resume` 读取 `_progress.md` 和实际产物,从最早未成立的完成检查继续。QA 发现按 owner 回流:
60
+
61
+ - product:回 `PRODUCT_BRIEF.md`;
62
+ - design/art:修订批准文档后重建受影响范围;
63
+ - build:修实现并复跑同一验证路径。
64
+
65
+ 品类认不出、体验弧不存在、核心前提未上屏不是小缺陷;停止打磨并请求产品裁决。