@oh-story/dsh 0.1.15 → 0.1.16

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 (530) hide show
  1. package/README.md +12 -10
  2. package/lib/drama/manifest.json +284 -364
  3. package/lib/drama/skills/short-drama/SKILL.md +13 -14
  4. package/lib/drama/skills/short-drama/agents/openai.yaml +1 -1
  5. package/lib/drama/skills/short-drama/references/audience-reveal.md +4 -4
  6. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +2 -2
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +12 -10
  8. package/lib/drama/skills/short-drama/references/creator-workflow.md +6 -5
  9. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +8 -8
  10. package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +5 -5
  11. package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +5 -6
  12. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +6 -7
  13. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +2 -3
  14. package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +6 -7
  15. package/lib/drama/skills/short-drama/references/knowhow-index.md +6 -7
  16. package/lib/drama/skills/short-drama/references/look-development.md +5 -7
  17. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +6 -3
  18. package/lib/drama/skills/short-drama/references/production-form-profiles.md +14 -16
  19. package/lib/drama/skills/short-drama/references/reference-roles.md +5 -3
  20. package/lib/drama/skills/short-drama/references/runtime-preflight.md +2 -1
  21. package/lib/drama/skills/short-drama-assets/SKILL.md +8 -8
  22. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +1 -1
  23. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +26 -27
  24. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +22 -22
  25. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +4 -4
  26. package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +4 -4
  27. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +3 -3
  28. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +5 -5
  29. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +6 -7
  30. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -9
  31. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +8 -11
  32. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +22 -22
  33. package/lib/drama/skills/short-drama-develop/SKILL.md +6 -6
  34. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +1 -1
  35. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +2 -2
  36. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +2 -2
  37. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +13 -12
  38. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +7 -7
  39. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +7 -8
  40. package/lib/drama/skills/short-drama-develop/references/episode-design.md +20 -24
  41. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +7 -7
  42. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +4 -5
  43. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +2 -2
  44. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +1 -1
  45. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +2 -2
  46. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
  47. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +1 -1
  48. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +1 -1
  49. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +1 -1
  50. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +4 -5
  51. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +1 -1
  52. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +1 -1
  53. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +1 -1
  54. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +2 -2
  55. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +4 -4
  56. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +6 -7
  57. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +19 -17
  58. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +5 -5
  59. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +6 -5
  60. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -4
  61. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +7 -9
  62. package/lib/drama/skills/short-drama-develop/references/story-craft.md +8 -10
  63. package/lib/drama/skills/short-drama-edit/SKILL.md +11 -14
  64. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +12 -19
  65. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
  66. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +5 -4
  67. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +1 -1
  68. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +6 -4
  69. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +5 -5
  70. package/lib/drama/skills/short-drama-edit/references/still-cuts.md +1 -1
  71. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +7 -2
  72. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +1 -1
  73. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +4 -5
  74. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +17 -17
  75. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +10 -9
  76. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +11 -12
  77. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +6 -5
  78. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +2 -2
  79. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +6 -6
  80. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +8 -8
  81. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +5 -4
  82. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +17 -24
  83. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +3 -4
  84. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +5 -10
  85. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +4 -6
  86. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +9 -13
  87. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +3 -7
  88. package/lib/drama/skills/short-drama-produce/SKILL.md +43 -42
  89. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +1 -1
  90. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +31 -18
  91. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +1 -1
  92. package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +11 -6
  93. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +2 -2
  94. package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +7 -5
  95. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +14 -8
  96. package/lib/drama/skills/short-drama-review/SKILL.md +9 -9
  97. package/lib/drama/skills/short-drama-review/agents/openai.yaml +1 -1
  98. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -11
  99. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +24 -23
  100. package/lib/drama/skills/short-drama-review/references/project-calibration.md +17 -16
  101. package/lib/drama/skills/short-drama-review/references/review-method.md +8 -6
  102. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +7 -6
  103. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +17 -10
  104. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +29 -25
  105. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +11 -11
  106. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -2
  107. package/lib/drama/skills/short-drama-storyboard/SKILL.md +8 -10
  108. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +1 -1
  109. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +8 -11
  110. package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +11 -12
  111. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +4 -5
  112. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +19 -24
  113. package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +1 -1
  114. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +26 -29
  115. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +6 -5
  116. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +2 -2
  117. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +4 -4
  118. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -8
  119. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +3 -3
  120. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -7
  121. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +1 -1
  122. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +63 -61
  123. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +20 -18
  124. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +12 -12
  125. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +4 -3
  126. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +38 -40
  127. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +36 -36
  128. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +17 -21
  129. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +10 -11
  130. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +1 -1
  131. package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +2 -2
  132. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +6 -12
  133. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +2 -1
  134. package/lib/drama/skills/short-drama-write/SKILL.md +15 -15
  135. package/lib/drama/skills/short-drama-write/agents/openai.yaml +1 -1
  136. package/lib/drama/skills/short-drama-write/assets/screenplay.md +3 -4
  137. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +20 -22
  138. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +20 -22
  139. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +10 -10
  140. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +11 -9
  141. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +11 -10
  142. package/lib/drama/skills/short-drama-write/references/script-craft.md +41 -47
  143. package/lib/drama/skills/short-drama-write/references/stage-contract.md +7 -5
  144. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +19 -25
  145. package/lib/index.js +80 -17
  146. package/lib/index.js.map +3 -3
  147. package/lib/novel-to-game/README.md +8 -9
  148. package/lib/novel-to-game/README_ZH.md +12 -13
  149. package/lib/novel-to-game/manifest.json +19 -19
  150. package/lib/novel-to-game/skills/game-art-direction/SKILL.md +2 -2
  151. package/lib/novel-to-game/skills/game-build/SKILL.md +2 -0
  152. package/lib/novel-to-game/skills/game-concept/SKILL.md +1 -1
  153. package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
  154. package/lib/novel-to-game/skills/game-world-design/SKILL.md +1 -1
  155. package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +1 -1
  156. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +4 -4
  157. package/lib/oh-story/manifest.json +662 -662
  158. package/lib/oh-story/roles/chapter-extractor.md +10 -10
  159. package/lib/oh-story/roles/character-designer.md +8 -24
  160. package/lib/oh-story/roles/consistency-checker.md +3 -5
  161. package/lib/oh-story/roles/narrative-writer.md +16 -16
  162. package/lib/oh-story/roles/story-architect.md +8 -11
  163. package/lib/oh-story/roles/story-explorer.md +7 -9
  164. package/lib/oh-story/roles/story-researcher.md +8 -8
  165. package/lib/oh-story/skills/browser-cdp/SKILL.md +19 -18
  166. package/lib/oh-story/skills/story/SKILL.md +14 -19
  167. package/lib/oh-story/skills/story/VERSION +1 -1
  168. package/lib/oh-story/skills/story-cover/SKILL.md +17 -26
  169. package/lib/oh-story/skills/story-cover/references/cover-styles.md +12 -10
  170. package/lib/oh-story/skills/story-deslop/SKILL.md +69 -211
  171. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +17 -3
  172. package/lib/oh-story/skills/story-deslop/references/banned-words.md +63 -151
  173. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +23 -160
  174. package/lib/oh-story/skills/story-deslop/references/expression.md +76 -0
  175. package/lib/oh-story/skills/story-deslop/references/narrative-focus.md +63 -0
  176. package/lib/oh-story/skills/story-deslop/references/story-logic.md +65 -0
  177. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +5 -5
  178. package/lib/oh-story/skills/story-import/SKILL.md +8 -13
  179. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +9 -8
  180. package/lib/oh-story/skills/story-import/references/deep-analysis.md +5 -5
  181. package/lib/oh-story/skills/story-import/references/format-and-structure.md +11 -11
  182. package/lib/oh-story/skills/story-import/references/import-report.md +5 -5
  183. package/lib/oh-story/skills/story-import/references/import-special-cases.md +4 -4
  184. package/lib/oh-story/skills/story-import/references/import-tracking.md +5 -5
  185. package/lib/oh-story/skills/story-import/references/length-routing.md +12 -20
  186. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +3 -3
  187. package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
  188. package/lib/oh-story/skills/story-import/references/state-tracking.md +5 -3
  189. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +13 -13
  190. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +10 -14
  191. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +2 -2
  192. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +2 -2
  193. package/lib/oh-story/skills/story-long-analyze/SKILL.md +8 -8
  194. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +9 -9
  195. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +22 -22
  196. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +5 -4
  197. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +9 -3
  198. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +7 -7
  199. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -9
  200. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +2 -2
  201. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +8 -8
  202. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +9 -9
  203. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +15 -15
  204. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +17 -15
  205. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +8 -6
  206. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +19 -16
  207. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +8 -8
  208. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +6 -6
  209. package/lib/oh-story/skills/story-long-scan/SKILL.md +22 -27
  210. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +30 -44
  211. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +6 -4
  212. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +5 -5
  213. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +7 -7
  214. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +9 -9
  215. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +6 -4
  216. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +16 -29
  217. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +26 -39
  218. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +10 -11
  219. package/lib/oh-story/skills/story-long-write/SKILL.md +9 -10
  220. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +2 -2
  221. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +3 -3
  222. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +9 -7
  223. package/lib/oh-story/skills/story-long-write/references/author-memory.md +6 -6
  224. package/lib/oh-story/skills/story-long-write/references/banned-words.md +63 -151
  225. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +2 -2
  226. package/lib/oh-story/skills/story-long-write/references/character-basics.md +3 -3
  227. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +4 -4
  228. package/lib/oh-story/skills/story-long-write/references/character-relations.md +4 -4
  229. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +7 -6
  230. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +1 -1
  231. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +23 -160
  232. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +19 -22
  233. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +2 -2
  234. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +3 -3
  235. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +28 -27
  236. package/lib/oh-story/skills/story-long-write/references/expression.md +76 -0
  237. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +3 -4
  238. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
  239. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
  240. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
  241. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
  242. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  243. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
  244. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
  245. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
  246. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
  247. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
  248. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  249. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  250. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
  251. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
  252. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
  253. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
  254. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
  255. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
  256. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
  257. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
  258. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
  259. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
  260. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
  261. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
  262. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
  263. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
  264. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
  265. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
  266. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
  267. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
  268. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
  269. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +7 -7
  271. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +32 -39
  272. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +1 -1
  273. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +2 -2
  274. package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -2
  275. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +13 -13
  276. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +2 -2
  277. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +3 -3
  278. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +3 -5
  279. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +63 -0
  280. package/lib/oh-story/skills/story-long-write/references/opening-design.md +4 -4
  281. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
  282. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +4 -4
  283. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +2 -2
  284. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +10 -11
  285. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +5 -5
  286. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +8 -8
  287. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +5 -6
  288. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +7 -5
  289. package/lib/oh-story/skills/story-long-write/references/project-files.md +4 -4
  290. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
  291. package/lib/oh-story/skills/story-long-write/references/reference-index.md +3 -5
  292. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +1 -1
  293. package/lib/oh-story/skills/story-long-write/references/story-logic.md +65 -0
  294. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +3 -3
  295. package/lib/oh-story/skills/story-long-write/references/style-craft.md +8 -29
  296. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -3
  297. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +5 -5
  298. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +2 -2
  299. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -2
  300. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +4 -4
  301. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +2 -2
  302. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +3 -3
  303. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +3 -3
  304. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +1 -1
  305. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +3 -3
  306. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +1 -1
  307. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +25 -24
  308. package/lib/oh-story/skills/story-review/SKILL.md +16 -31
  309. package/lib/oh-story/skills/story-review/references/agent-prompts.md +10 -12
  310. package/lib/oh-story/skills/story-review/references/banned-words.md +63 -151
  311. package/lib/oh-story/skills/story-review/references/batch-review.md +4 -4
  312. package/lib/oh-story/skills/story-review/references/character-relations.md +4 -4
  313. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +19 -22
  314. package/lib/oh-story/skills/story-review/references/expression.md +76 -0
  315. package/lib/oh-story/skills/story-review/references/narrative-focus.md +63 -0
  316. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +5 -5
  317. package/lib/oh-story/skills/story-review/references/quality-rubric.md +5 -5
  318. package/lib/oh-story/skills/story-review/references/review-quality.md +16 -19
  319. package/lib/oh-story/skills/story-review/references/review-tracking.md +5 -5
  320. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +6 -5
  321. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +6 -5
  322. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +7 -8
  323. package/lib/oh-story/skills/story-review/references/solo.md +5 -5
  324. package/lib/oh-story/skills/story-review/references/story-logic.md +65 -0
  325. package/lib/oh-story/skills/story-review/references/style-resolution.md +5 -5
  326. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +2 -2
  327. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -2
  328. package/lib/oh-story/skills/story-setup/SKILL.md +18 -18
  329. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +3 -3
  330. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +3 -4
  331. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +63 -151
  332. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +9 -9
  333. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +3 -3
  334. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +4 -4
  335. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +4 -4
  336. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +23 -160
  337. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +19 -22
  338. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +2 -2
  339. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +3 -3
  340. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +76 -0
  341. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +11 -11
  342. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +3 -3
  343. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +2 -2
  344. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +3 -3
  345. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +3 -3
  346. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +3 -3
  347. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +3 -3
  348. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +3 -3
  349. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +3 -3
  350. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +3 -3
  351. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +3 -3
  352. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +3 -3
  353. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +3 -3
  354. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +3 -3
  355. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +3 -3
  356. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +3 -3
  357. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +3 -3
  358. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +3 -3
  359. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +3 -3
  360. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +3 -3
  361. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +4 -4
  362. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +3 -3
  363. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +3 -3
  364. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +3 -3
  365. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +3 -3
  366. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +3 -3
  367. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +3 -3
  368. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +3 -3
  369. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +2 -2
  370. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +3 -3
  371. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +4 -4
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +3 -3
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +3 -3
  374. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +7 -7
  375. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +33 -41
  376. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +1 -1
  377. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +28 -27
  378. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +13 -13
  379. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +2 -2
  380. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +3 -3
  381. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +3 -3
  382. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +3 -5
  383. package/lib/oh-story/skills/story-setup/references/agent-references/narrative-focus.md +63 -0
  384. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +4 -4
  385. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
  386. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +4 -4
  387. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +2 -2
  388. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +5 -5
  389. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +14 -34
  390. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +7 -9
  391. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +8 -10
  392. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +11 -12
  393. package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +6 -4
  394. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +11 -11
  395. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +65 -0
  396. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +3 -3
  397. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -3
  398. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +5 -5
  399. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +25 -24
  400. package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
  401. package/lib/oh-story/skills/story-short-analyze/SKILL.md +5 -15
  402. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +91 -111
  403. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +85 -97
  404. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +72 -83
  405. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +7 -7
  406. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +28 -30
  407. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +59 -66
  408. package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +1 -3
  409. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +2 -2
  410. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +3 -3
  411. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +3 -3
  412. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +2 -2
  413. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +2 -2
  414. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +76 -89
  415. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +5 -5
  416. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +3 -3
  417. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +13 -24
  418. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +3 -3
  419. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +24 -25
  420. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +44 -46
  421. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +14 -12
  422. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +17 -17
  423. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +11 -11
  424. package/lib/oh-story/skills/story-short-scan/SKILL.md +22 -29
  425. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +3 -3
  426. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +2 -2
  427. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +2 -2
  428. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +24 -25
  429. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +3 -3
  430. package/lib/oh-story/skills/story-short-write/SKILL.md +20 -23
  431. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +3 -3
  432. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +9 -7
  433. package/lib/oh-story/skills/story-short-write/references/author-memory.md +6 -6
  434. package/lib/oh-story/skills/story-short-write/references/banned-words.md +63 -151
  435. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +8 -8
  436. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +11 -11
  437. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +34 -0
  438. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +19 -22
  439. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +7 -9
  440. package/lib/oh-story/skills/story-short-write/references/expression.md +76 -0
  441. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +9 -9
  442. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +15 -15
  443. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +9 -9
  444. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +14 -14
  445. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +11 -11
  446. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +9 -9
  447. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +14 -13
  448. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +12 -12
  449. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +8 -8
  450. 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 +12 -12
  451. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +8 -10
  452. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +14 -34
  453. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +11 -12
  454. package/lib/oh-story/skills/story-short-write/references/narrative-focus.md +63 -0
  455. package/lib/oh-story/skills/story-short-write/references/output-contract.md +13 -24
  456. package/lib/oh-story/skills/story-short-write/references/reference-index.md +3 -4
  457. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +8 -7
  458. package/lib/oh-story/skills/story-short-write/references/short-craft.md +16 -18
  459. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +12 -125
  460. package/lib/oh-story/skills/story-short-write/references/short-format.md +9 -13
  461. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +18 -35
  462. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +11 -11
  463. package/lib/oh-story/skills/story-short-write/references/story-logic.md +65 -0
  464. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +5 -5
  465. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +8 -8
  466. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +11 -13
  467. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +11 -9
  468. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -10
  469. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +10 -9
  470. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +4 -4
  471. package/lib/types/role-tool.d.ts +42 -2
  472. package/lib/types/role-tool.d.ts.map +1 -1
  473. package/lib/types/skill-provider.d.ts.map +1 -1
  474. package/lib/video-recap/CHANGELOG.md +8 -0
  475. package/lib/video-recap/README.en.md +8 -10
  476. package/lib/video-recap/README.md +8 -8
  477. package/lib/video-recap/manifest.json +48 -48
  478. package/lib/video-recap/skills/video-assemble/SKILL.md +5 -8
  479. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +3 -3
  480. package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +1 -2
  481. package/lib/video-recap/skills/video-assemble/references/packaging.md +1 -2
  482. package/lib/video-recap/skills/video-assemble/references/source-score.md +5 -6
  483. package/lib/video-recap/skills/video-cut/SKILL.md +3 -7
  484. package/lib/video-recap/skills/video-cut/references/shot-review.md +1 -1
  485. package/lib/video-recap/skills/video-recap/SKILL.md +7 -11
  486. package/lib/video-recap/skills/video-recap/references/audio-routing.md +1 -2
  487. package/lib/video-recap/skills/video-recap/references/config-playbook.md +5 -7
  488. package/lib/video-recap/skills/video-recap/references/data-schema.md +8 -8
  489. package/lib/video-recap/skills/video-recap/references/resource-library.md +2 -2
  490. package/lib/video-recap/skills/video-reference/SKILL.md +4 -8
  491. package/lib/video-recap/skills/video-reference/references/reference-schema.md +1 -1
  492. package/lib/video-recap/skills/video-script/SKILL.md +4 -13
  493. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +2 -2
  494. package/lib/video-recap/skills/video-understanding/SKILL.md +10 -6
  495. package/lib/video-recap/skills/video-understanding/references/data-schema.md +2 -2
  496. package/lib/video-recap/skills/video-voiceover/SKILL.md +3 -11
  497. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +1 -2
  498. package/package.json +25 -24
  499. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +0 -187
  500. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +0 -42
  501. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +0 -128
  502. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +0 -34
  503. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +0 -49
  504. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +0 -36
  505. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +0 -2
  506. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +0 -2
  507. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +0 -101
  508. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +0 -217
  509. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +0 -31
  510. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +0 -67
  511. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +0 -2
  512. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +0 -120
  513. package/lib/drama/skills/short-drama-write/assets/episode-card.json +0 -55
  514. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +0 -89
  515. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +0 -75
  516. package/lib/oh-story/skills/story/references/author-memory.md +0 -117
  517. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +0 -1638
  518. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +0 -556
  519. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +0 -75
  520. package/lib/oh-story/skills/story-deslop/references/author-memory.md +0 -117
  521. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +0 -1638
  522. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +0 -556
  523. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +0 -556
  524. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +0 -75
  525. package/lib/oh-story/skills/story-review/references/author-memory.md +0 -117
  526. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +0 -1638
  527. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +0 -556
  528. package/lib/oh-story/skills/story-setup/references/agent-references/short-suspense.md +0 -352
  529. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +0 -490
  530. package/lib/oh-story/skills/story-short-write/references/short-suspense.md +0 -352
@@ -6,11 +6,10 @@ license: MIT
6
6
 
7
7
  # 长篇原著分析
8
8
 
9
- 把一部长材料变成**能被引用、能被反驳、能被接着用**的分析层。目标不是复述剧情,而是找出
10
- 每一段承担的戏剧功能,并说明它在竖屏短剧里值多少钱。
9
+ 从长材料中提取可追溯的戏剧功能,说明各段如何改变角色选择、信息、权力或关系,以及这些功能怎样用于竖屏短剧改编。
11
10
 
12
- 分析永远是候选。哪条线保留、哪些人合并、从哪里开篇,是创作者的决定,由
13
- `$short-drama-develop` 立成改编契约。本技能不替它决定,也不批准自己的产物。
11
+ 分析结果供创作者取舍:保留哪条线、合并哪些人、从哪里开篇,由创作者决定,再交给
12
+ `$short-drama-develop` 写成改编契约。本技能不批准自己的产物。
14
13
 
15
14
  ## Quick Start
16
15
 
@@ -40,7 +39,7 @@ python3 {技能目录}/scripts/novel_index.py index <原著.txt> --out <chapter-
40
39
  ## 先判断入口
41
40
 
42
41
  1. **只有书名,没有原文**:请创作者提供文件路径或粘贴正文。不要凭书名回忆情节——
43
- 没有字节就没有 span,没有 span 的分析无法被引用,也无法被反驳。
42
+ 取得原文后才能建立章节范围和可追溯的引用。
44
43
  2. **有原文,未建项目**:直接建立一个本技能自己的工作区,至少包含只读输入目录
45
44
  `输入/` 与输出目录 `项目开发/source-analysis/_work/`;把原文字节复制到 `输入/` 后记录
46
45
  原始文件位置,再用本技能的 `novel_index.py` 建索引。若 `$short-drama` 可用,可选用它
@@ -65,9 +64,7 @@ python3 {技能目录}/scripts/novel_index.py index <原著.txt> --out <chapter-
65
64
 
66
65
  ### S0 章节索引
67
66
 
68
- 索引是**唯一切片真源**,由 [章节索引脚本](scripts/novel_index.py) 建立。每个阶段各跑
69
- 一次正则,就会切出互相对不上的章节,第 47 章按一种边界分析、按另一种边界聚合,
70
- 而且没有人会发现。
67
+ 各阶段共用 [章节索引脚本](scripts/novel_index.py) 建立的章节边界,不各自重新切片。
71
68
 
72
69
  ```bash
73
70
  python3 {技能目录}/scripts/novel_index.py index 输入/{原文文件} \
@@ -81,6 +78,8 @@ python3 {core 技能目录}/scripts/project_tool.py publish {项目根} \
81
78
  --input 输入/{原文文件}
82
79
  ```
83
80
 
81
+ 独立运行时,将验证通过的 `_work/_index.next.json` 原子替换到正式的 `_index.json`,再进入 S1;不依赖可选的 core 发布命令。
82
+
84
83
  脚本识别阿拉伯数字与中文数字章号(含 千 / 两,覆盖千章以上连载),**只认一种编号单位**
85
84
  (章/回/节里出现最多的那个,其余记进 `ignored_heading_units`),只把**短的独立行**当标题
86
85
  (以章号开头的正文段落记进 `long_heading_lines_skipped`),剔除开头的目录块,
@@ -133,9 +132,7 @@ S1–S5 的 Agent 创作产物同样先写到 `source-analysis/_work/`,完成
133
132
  `_work/` 是候选工作区,不是权威分析层,也不进入交付包。
134
133
 
135
134
  **并发子代理写 `_work/`,主线程发布到正式路径**。子代理只落
136
- `_work/chapters/ch-<N>-extract.md`,主线程跑完机械自检后再发布到 `chapters/`。
137
- 覆盖率闸门按正式路径 `chapters/` 匹配文件名——发布之前跑,每一章都会进
138
- `unmatched_files`,那不是缺陷,只是跑早了。
135
+ `_work/chapters/ch-<N>-extract.md`,主线程机械自检后发布到 `chapters/`,再检查正式目录的覆盖率。
139
136
 
140
137
  `_progress.md` 每个阶段都会重写,而发布要求一个路径只有一个 owner,所以它用一个固定
141
138
  artifact-id:`source-analysis:progress`,owner 是 `short-drama-novel-analyze`,
@@ -155,17 +152,14 @@ python3 {技能目录}/scripts/novel_index.py coverage \
155
152
  项目开发/source-analysis/_index.json 项目开发/source-analysis/chapters
156
153
  ```
157
154
 
158
- `missing` 非空就补跑缺的章;`unmatched_files` 非空说明有文件名写歪了——它既不算覆盖,
159
- 也不会被当成缺章,必须改名而不是重跑。**不要在覆盖率不足时进入 S3**——聚合会照样产出
160
- 一份读起来完整的结果,而缺掉的章不会在任何地方留下痕迹。
155
+ 先检查 `unmatched_files`:命名错误的提取文件不计入覆盖,对应章仍会列入 `missing`;先更正文件名,再补跑真正缺失的章。
156
+ **覆盖率不足时不进入 S3**。
161
157
 
162
- 单章连续失败两次就标记跳过,写进 `_progress.md` 的失败记录,并在后续每一份聚合产物里
163
- 注明该章缺失。失败可以接受,失败被藏起来不行。
158
+ 单章连续失败两次,先记录到 `_progress.md`,继续提取其他章。S2 结束后补齐失败章;仍有缺章时停在 S2,报告缺失范围,不进入全量聚合。
164
159
 
165
160
  ### S3 剧情单元与节奏
166
161
 
167
- 从逐章提取聚合,不回头重读原文——原文已经在 S2 被读过一次,再读一次只会得到第二份互相
168
- 矛盾的事实。按 [聚合与实体](references/aggregation-and-entities.md) 先识别故事框架
162
+ 从逐章提取聚合;事实或指代不清时按定位定点回查原文,不重新通读全书。按 [聚合与实体](references/aggregation-and-entities.md) 先识别故事框架
169
163
  (框架决定按什么切单元),再产出:
170
164
 
171
165
  - `story-units.md`:把情节点归成有始有终的单元,每个单元记录进入状态、冲突、代价与出去状态;
@@ -173,13 +167,13 @@ python3 {技能目录}/scripts/novel_index.py coverage \
173
167
  跨章伏笔与兑现,以及按观众收益排名的爽点表。
174
168
 
175
169
  聚合完成后跑同一文件里的三条阈值自检(归属置信、覆盖率、重叠率)与散落情节兜底。
176
- 阈值不是评分,是**边界模糊的信号**:重叠率过高说明两个单元其实是一个。
170
+ 阈值是边界复核信号;重叠率偏高时,先区分多线交叉与边界重叠,再判断是否合并。
177
171
 
178
172
  ### S4 人物与设定
179
173
 
180
174
  按 [聚合与实体](references/aggregation-and-entities.md) 归并人物(跨章去重、别名归一、
181
- 分级),并从提及数据归纳世界规则、力量体系与势力。别名只有专名与有同指证据的绰号能合并,
182
- 描述性称谓与头衔**永远不触发合并**。
175
+ 分级),并从提及数据归纳世界规则、力量体系与势力。专名、绰号及“姓氏+头衔”只有在同指证据充分时才能合并;
176
+ 泛指的外貌称谓或职务不触发合并。
183
177
 
184
178
  **人物归并是候选,不是资产**。 这里的人物条目带 `unresolved` 与来源引用,
185
179
  交给 `$short-drama-develop` 定改编决定、`$short-drama-write` 写进剧本之后,
@@ -195,14 +189,13 @@ python3 {技能目录}/scripts/novel_index.py coverage \
195
189
  - `episode-candidates.jsonl`:按**爽点分布、局部戏剧结果与精确交接**切出的候选集,不按章号
196
190
  或字数平均切。每条带来源 span、承担的功能、承接的爽点以及未决项。
197
191
 
198
- 同时**回填快评**:S1 的哪几条判断被全量结果推翻了,写进 `adaptation-value.md` 的开头。
199
- 一个抽样结论被证伪,比它被悄悄忘掉有用得多——下一本书的快评会因此更准。
192
+ 同时**回填快评**:把 S1 中被全量结果推翻的判断及原因写进 `adaptation-value.md` 开头。
200
193
 
201
194
  样例见 [分集候选样例](assets/episode-candidate.example.jsonl)。
202
195
 
203
196
  ### 交接
204
197
 
205
- S5 完成后展示创作者可读的摘要,说明:拆了多少章、跳过哪些、分了多少个候选集、
198
+ S5 完成后向创作者说明:拆了多少章、跳过哪些、分了多少个候选集、
206
199
  最大的三处改编风险、以及快评里被推翻的判断。然后交给 `$short-drama-develop`——
207
200
  由它把候选变成 `项目开发/adaptation-map.jsonl` 与改编契约。
208
201
 
@@ -13,8 +13,7 @@
13
13
 
14
14
  一份 `triage.md`,回答**这本书值不值得花全量拆解的成本**。
15
15
 
16
- 它是一份可以被后面推翻的假设:S5 拿全量结果回来对照它,被推翻的判断写进
17
- `adaptation-value.md` 开头。
16
+ S5 用全量结果核对这份快评,并把被推翻的判断写进 `adaptation-value.md` 开头。
18
17
 
19
18
  ## 抽样怎么取
20
19
 
@@ -25,7 +24,7 @@ python3 {技能目录}/scripts/novel_index.py sample \
25
24
  项目开发/source-analysis/_index.json --count 12
26
25
  ```
27
26
 
28
- 抽样等距、首尾必取、结果确定。跑第二次引用的是同一批章,S5 回填对照才说得清哪条判断错了。
27
+ 默认抽样等距、首尾必取、结果确定,S5 可据此回填对照;自定 `--count 1` 时只取首章。
29
28
 
30
29
  默认 12 章。书特别长或框架复杂时调大 `--count`,调大要写进快评。抽到的章正文极少
31
30
  (索引里 `char_count` 很小)时往后顺延一章并记录——那多半是卷首页,不是内容。
@@ -55,7 +54,7 @@ python3 {技能目录}/scripts/novel_index.py sample \
55
54
  | `needs_carrier` | 功能成立,但当前载体是文字专属 |
56
55
  | `prose_only` | 功能依赖读者与叙述者的关系,屏幕上无法兑现 |
57
56
 
58
- 写出三类各占抽样里的多少章。这是快评里唯一给数字的一段,其余用文字判断。
57
+ 写出三类各占抽样里的多少章,分母统一为实际阅读的抽样章数。
59
58
  `prose_only` 过半时直接说明:全量拆解大概率只会把同一个结论算得更精确。
60
59
 
61
60
  ### 3. 开篇替换点
@@ -13,8 +13,7 @@
13
13
 
14
14
  ## 这一步在回答什么
15
15
 
16
- 前面几步产出的是「这本书是怎么运转的」。这一步回答的是**「这本书里有多少东西能在竖屏
17
- 短剧里成立」**——这是拆书和改编分析的分水岭,也是本技能存在的理由。
16
+ 本阶段根据前面的功能提取,判断哪些剧情单元能直接用于竖屏短剧,哪些需要换载体,哪些应舍弃。
18
17
 
19
18
  判定对象是**剧情单元**,不是章,也不是情节点。判定的原始依据是 S2 每章写下的
20
19
  [载体记录](chapter-extraction.md#载体记录):通道栏走可见行动或对白的,多半能直接成立;
@@ -30,8 +29,8 @@
30
29
  | `needs_carrier` | 功能成立,但当前载体是文字专属 | 必须写出新载体,否则降级 |
31
30
  | `prose_only` | 功能依赖读者与叙述者的关系,屏幕上无法兑现 | 明说放弃了什么 |
32
31
 
33
- `prose_only` 的典型:长段内心权衡、叙述性诡计(读者被叙述视角欺骗,而镜头做不到同样的
34
- 隐瞒)、靠信息密度堆出的爽感、以及需要读者记住三十章前一个细节才成立的回扣。
32
+ 长段内心权衡、叙述性诡计、信息密度带来的爽感或远距离回扣,都需要先判断能否保住其功能。
33
+ 能用行动、对白、物证或信息释放顺序承载时归 `needs_carrier`;功能确实依赖读者与叙述者的关系、且找不到可行载体时才归 `prose_only`。
35
34
 
36
35
  **不要把 `prose_only` 悄悄改写成 `needs_carrier`**。 承认放弃比假装能拍便宜得多——
37
36
  假装的代价会在分镜阶段才暴露,那时整条链都已经建在上面。
@@ -45,8 +44,7 @@
45
44
  - **保住了什么**:功能清单,逐项对上;
46
45
  - **改变或失去了什么**:不写「无」。总有东西变了,写不出来说明还没想清楚。
47
46
 
48
- 替换的检验标准只有一条:**观众不需要旁白就能知道发生了什么**。需要旁白解释的替换,
49
- 是把文字问题搬到了画面上,不是解决。
47
+ 替换后核对观众能否通过新载体感知原功能。旁白可以提供画外信息,但不能代替本应可见的行动、关系变化或兑现。
50
48
 
51
49
  ## 制作负担
52
50
 
@@ -111,10 +109,7 @@
111
109
  全量结论若是「多数单元需要换载体」,就是印证;若方向相反,写清是抽样偏了还是
112
110
  全书后段变了。其余五段仍逐条对上。
113
111
 
114
- 抽样结论被证伪不是失误,是抽样这一步在起作用。写出来才有两个用处:创作者知道
115
- 「当时那个建议是基于什么」,下一本书的快评知道该往哪个方向修正。
116
-
117
- 全部命中时也写一句,别留空——一份从不出错的快评,多半是没有被认真对照过。
112
+ 快评全部得到印证时也写明对照结果。
118
113
 
119
114
  ## 交给 develop 之前
120
115
 
@@ -11,13 +11,11 @@
11
11
  - [人物归并](#人物归并)
12
12
  - [设定归纳](#设定归纳)
13
13
 
14
- 聚合只读 S2 的逐章提取,**不回头重读原文**。原文在 S2 已经被读过一次;再读一次得到的
15
- 不是补充,是第二份互相矛盾的事实。需要核对某条硬事实时回查具体那一条白描,
16
- 而不是重新通读。
14
+ 聚合以 S2 的逐章提取为输入。核对硬事实时先回查对应白描,证据不足再按定位回读原文片段,不重新通读全书。
17
15
 
18
16
  ## 先识别故事框架
19
17
 
20
- 框架决定按什么切单元。先判框架再切,能省掉一整轮返工。
18
+ 先识别故事框架,再按相应的目标与冲突切分剧情单元。
21
19
 
22
20
  | 框架 | 特征 | 切单元的依据 | 改编提示 |
23
21
  |---|---|---|---|
@@ -70,7 +68,7 @@
70
68
  |---|---|---|---|
71
69
  | 归属置信 | ≥ 0.85 | 有明确归属的情节点 / 单元内情节点总数 | 低于线的单元标「待复核」,不删 |
72
70
  | 覆盖率 | 85%–95% | 已归类情节点 / 总情节点数 | < 85% 走散落兜底;> 95% 复核是否过度归并 |
73
- | 重叠率 | ≤ 35% | 跨单元共享的情节点 / 总情节点数 | > 35% 说明两个单元其实是一个,考虑合并 |
71
+ | 重叠率 | ≤ 35% | 跨单元共享的情节点 / 总情节点数 | > 35% 复核是多线交叉还是边界重叠,再判断是否合并 |
74
72
 
75
73
  「有明确归属」指这条情节点服务于本单元的戏剧目标或对抗力量,而不只是恰好落在本单元的
76
74
  章节范围内。按连续章节切分时,若把「落在范围内」当作归属,这个比值恒等于 1,指标失去
@@ -139,7 +137,7 @@
139
137
  合并错了的代价不对称——两个人被并成一个,之后每一条关于「他」的事实都可能属于另一个人,
140
138
  而这种错在文本里几乎看不出来。
141
139
 
142
- 别名分四类,只有前两类能触发合并:
140
+ 称谓分五类,表中标“可合并”的三类仍须有同指证据:
143
141
 
144
142
  | 类型 | 定义 | 可合并 | 例 |
145
143
  |---|---|---|---|
@@ -36,6 +36,9 @@
36
36
  P1 类型 | 白描 | 涉及:称谓、物件、地点 | 功能:这一步改变了什么
37
37
  ```
38
38
 
39
+ `P<n>` 在每章内编号;跨章引用时同时给出 `ch-<N>`,避免把不同章的同号情节点混为一条。
40
+ 文件记录原著路径及本章索引范围,每条结论附具体原文行号;情节点的定位可写在白描段中,保持四段顺序。
41
+
39
42
  - **`P<n>` 与类型之间是一个半角空格**,类型与 `|` 之间也是。下游按这个字面形状 grep,
40
43
  写成全角空格或不写空格,这一行就不算情节点——**这是最常见的一处格式漂移**。
41
44
  - **类型**取自:`行动`、`对话`、`信息`、`转折`、`铺垫`、`兑现`、`状态`。
@@ -50,8 +53,7 @@ P1 类型 | 白描 | 涉及:称谓、物件、地点 | 功能:这一步改
50
53
 
51
54
  ## 白描与叙事框架词
52
55
 
53
- 白描是这条情节点的主要证据——后面每一次事实回查都落在它上面。所以它只能写
54
- **原文写出来的可观察事实**:不写心理断言,不写作者意图,不用叙事框架词概括。
56
+ 白描供后续阶段回查事实,只写**原文已有的可观察事实**:不补心理断言、作者意图或叙事框架概括。
55
57
 
56
58
  | 禁止 | 正确 |
57
59
  |---|---|
@@ -94,8 +96,7 @@ P1 类型 | 白描 | 涉及:称谓、物件、地点 | 功能:这一步改
94
96
 
95
97
  ## 机械自检
96
98
 
97
- 落盘后由主线程直接跑,命中即判失败,不依赖子代理自报。这些检查存在的理由是
98
- 下游会按同样的字面形状 grep:格式漂一个字符,聚合阶段就会静默漏掉整章。
99
+ 落盘后由主线程按下列格式检查,不依赖子代理自报。失败项修正后再发布。
99
100
 
100
101
  ```bash
101
102
  F=项目开发/source-analysis/chapters/ch-${N}-extract.md
@@ -110,15 +111,10 @@ awk '/^## 载体记录/{f=1;next} /^## /{f=0} f&&/^\|/{n++} END{print n+0}' "$F"
110
111
  本身就占 2 行——按 2 计的话,一张空表照样过闸。**这一条也必须只数「载体记录」小节内的
111
112
  表格行**:数全文的 `|` 行会把「出场人物」表算进来,同样让空载体表蒙混过关。
112
113
  - 白描段计数少于 `$P`:有情节点缺白描,或字段顺序、分隔符不对。
113
- - 功能段计数少于 `$P`:有情节点没回答改变了什么。注意全角冒号——半角会漏。
114
- 这一条只数情节点行第四段里的 `功能:`:早先的写法数的是全文任何位置的这四个字符,
115
- 于是正文里提一句「功能」就会让计数超过 `$P`,把一份合规的提取判成失败。
114
+ - 功能段计数少于 `$P`:有情节点缺功能说明,或没使用全角冒号。只统计情节点第四段的 `功能:`。
116
115
  - 类型超出枚举:自造类型会让 S3 的归类整段落空。
117
- - 载体表行数少于 2:表头加至少一行数据。只核对表头存在,是数不出「表里一条记录都
118
- 没有」的——而 S5 判定 `needs_carrier` 要的正是那些数据行。
119
116
 
120
- 文件名由 S2 的覆盖率闸门按字面匹配,写歪一个字符会进 `unmatched_files`——
121
- 那既不算覆盖也不算缺章,改名即可,不必重跑。
117
+ S2 覆盖率检查按文件名匹配。命名不符时,文件进入 `unmatched_files`,对应章仍列入 `missing`;先更正命名再检查,避免重复提取。
122
118
 
123
119
  ## 并发与串行
124
120
 
@@ -140,5 +136,5 @@ awk '/^## 载体记录/{f=1;next} /^## /{f=0} f&&/^\|/{n++} END{print n+0}' "$F"
140
136
  | 机械自检不过 | 带上失败项重写本章 1 次 |
141
137
  | 重试仍失败 | 标记 `⚠️ 跳过`,写入 `_progress.md` 失败记录 |
142
138
 
143
- 单章失败不阻断管道。但**跳过的章必须出现在每一份继承它的聚合产物里**——
144
- 一份看起来完整、实际缺了第 47 章的分析,比一份明说缺章的分析危险得多。
139
+ 单章失败时继续提取其余章,并保留失败记录;S2 结束后补齐缺章,覆盖不足时停止,不进入 S3。
140
+ 章内个别片段跳过时,逐章提取及继承该缺口的聚合产物均须说明范围。
@@ -7,12 +7,9 @@
7
7
  - [材料授权与只读转化](#材料授权与只读转化)
8
8
  - [本阶段规则](#本阶段规则)
9
9
 
10
- 本文件是本技能的自包含契约:预检、所有权、材料边界与规则表都在这里,
11
- 不需要读取其他技能的文件。
12
-
13
10
  ## 独立运行与项目集成
14
11
 
15
- 本技能可以单独安装并运行;下面几条说明项目工具存在时怎样集成。
12
+ 本技能可独立运行;项目工具可用时按下列方式集成。
16
13
 
17
14
  1. **读取直接输入**:只读取用户明确提供或当前任务实际需要的文件,不批量加载整个项目。
18
15
  2. **可选项目集成**:若存在 `short-drama.json` 且 core 项目工具可用,可以运行
@@ -31,8 +28,7 @@
31
28
  `adaptation-map.jsonl`(`$short-drama-develop` 拥有);不建资产身份;不写场景、台词、
32
29
  分镜与提示词;不生成媒体;不批准自己的产物。
33
30
 
34
- 分析层与决策层分开的理由很直接:**分析可以被推翻,契约不能**。把两者写进同一份文件,
35
- 创作者就再也无法只推翻分析而保留已确认的改编承诺。
31
+ 分析记录证据和候选判断,改编契约记录创作者已确认的承诺。分开保存后,推翻分析不会自动撤销已确认的决定。
36
32
 
37
33
  ## 材料授权与只读转化
38
34
 
@@ -56,7 +52,7 @@
56
52
  | NVA-05 | structural_invariant | A sampled stage states its own coverage and confines every claim to the chapters it read. |
57
53
  | NVA-06 | reviewed_invariant | A function summary states what a passage does to character choice, information, power or relationship, not what happens in it. |
58
54
  | NVA-07 | reviewed_invariant | Hard facts — levels, counts, distances, who said what, which chapters a character appears in — trace back to a description line or the source; an unsupported one is written as unstated, never filled in by plausibility. |
59
- | NVA-08 | reviewed_invariant | Character merges preserve dramatic role, knowledge scope, relational position and causal bridge; only proper names and evidenced nicknames may merge, never descriptors or titles. |
55
+ | NVA-08 | reviewed_invariant | Character merges preserve dramatic role, knowledge scope, relational position and causal bridge. Proper names, nicknames and name-plus-title forms may merge with evidence of shared identity; generic descriptors or titles alone never establish identity. |
60
56
  | NVA-09 | reviewed_invariant | Adaptation value distinguishes what the screen can show from what only prose can deliver, and names the new carrier for each function it keeps. |
61
57
  | NVA-10 | reviewed_invariant | Episode candidates are cut on local dramatic result and precise handoff, not on chapter count or word budget. |
62
58
  | NVA-11 | craft_default | Triage a deterministic spread of chapters across the whole book and stop for the creator before committing to a full pass. |
@@ -6,8 +6,8 @@ license: MIT
6
6
 
7
7
  # 确认后生产
8
8
 
9
- 本技能只负责把已经写好的生产规格安全送到运行环境配置的 adapter。图片提示词仍归
10
- `$short-drama-image-prompts`,视频提示词归 `$short-drama-video-prompts`,台词与录音表归
9
+ 本技能把已经写好的生产规格送到运行环境配置的 adapter。图片提示词归
10
+ `$short-drama-image-prompts`,视频提示词归 `$short-drama-video-prompts`,台词归
11
11
  `$short-drama-write`,声音身份归 `$short-drama-assets`。
12
12
 
13
13
  ## Quick Start
@@ -21,15 +21,20 @@ license: MIT
21
21
  在自己的工具里出图再放进项目同样成立,图片始终不进项目时走分镜的 `PLAN-...`;
22
22
  产出落在 `剧集/<EP>/制作成果/images/` 后,分镜 owner 才能把它绑成 `用途:起始帧` 的 `REF-...`。存在真实参考图时,
23
23
  还必须逐张填写 `reference_bindings` 的槽位、顺序、路径、中文名、用途以及允许/禁止控制范围;
24
- 内置视频 adapter 把这里的 `用途` 字段读成供应商自己的 role,只接受它公布的取值
24
+ 建立 job 时按当前文档的 `用途` 选择供应商 role,写入 `reference_bindings[].role`;
25
+ 内置视频 adapter 读取这个 role,只接受已实现的取值
25
26
  (MiniMax 为 `first_frame`/`last_frame`/`reference_image`/`reference_video`/`reference_audio`,
26
- Seedance 为三个 `reference_*`);带参考图却没有绑定的 job 会直接失败,不替它猜一个 role。
27
+ Seedance 也接受这五种 role,具体组合依账号配置的型号而定);带参考图却没有绑定的 job 会直接失败,不猜测 role。
27
28
  本地图片由内置 adapter 按 base64 data URI 直接送出,不需要自建上传服务。
28
29
  `MOTION-*` 的「参考音频」行同样逐条进 `reference_bindings`,排在图片之后、role 固定为 `reference_audio`、`character` 照抄该行的 `角色`;
29
30
  adapter profile 没有声明接受 `reference_audio` 时 `run` 在提交前失败,见
30
31
  [adapter-contract.md](references/adapter-contract.md#adapter-config)。
31
- 条目的「输入参考图」写成 `PLAN-...` 时,那些图片在创作者自己的工具里,项目内没有文件可送:
32
- `prepare` 直接失败并说明先把真实文件放进项目、改写成 `REF-...`,不拿计划当输入,也不静默丢掉参考。
32
+ 需要把条目中的 `PLAN-...` 图片作为生成输入时,`prepare` 会要求先把真实文件放进项目、改写成
33
+ `REF-...`。直接从 `分镜.md` 绘制该 SHOT 自身首帧时,选择器可跳过 PLAN 槽位,因为本次生成
34
+ 使用冻结关键帧正文,不发送创作者在项目外准备的那些图片;已有 REF 绑定仍须逐项一致。
35
+ 这项豁免要求跳过 PLAN 后剩余 REF 的顺序仍从 1 连续;否则先交分镜 owner 调整源声明顺序,
36
+ 不能只在 job 中重编号。生产接口还要求参考路径唯一:创作上同一图片可有两个用途槽位,但同路径
37
+ 双槽目前不能提交。由负责技能与创作者决定修订参考职责或等待接口支持,不在 job 中擅自合并或漏槽。
33
38
  `references` 可以省略并由绑定顺序生成,也可以作为相同顺序的显式镜像。输出放在
34
39
  `剧集/<EP>/制作成果/`;这个 job 是生产工具的临时输入,不是第六份创作文档:
35
40
 
@@ -56,12 +61,9 @@ job、prompt、参数、输出路径或直接输入任一变化,旧确认立
56
61
  当前已确认 job 是本轮唯一工作单元;运行结束后回报结果并交还控制权,不自动准备下一批或启动审查。
57
62
 
58
63
  `分镜.md` 的「输入参考图」路径只是创作阶段的可读依据与使用意图,不是生产输入快照。进入生产时,
59
- creator-first job 必须从 `图片提示词.md` 或 `视频提示词.md` 的对应条目建立绑定;`prepare` 展示的
64
+ creator-first job 必须从拥有提示词的 `图片提示词.md`、`分镜.md` 或 `视频提示词.md` 对应条目建立绑定;`prepare` 展示的
60
65
  `reference_bindings`、`references` 与已确认 job 才是本次 adapter 实际读取哪些文件字节、各自允许
61
- 影响什么的权威。非 creator 的结构化规格可不填 `source_entry`/`reference_bindings`,继续只使用显式
62
- `references`;但新的 image/video job 只要 `source` 指向 canonical `图片提示词.md` 或
63
- `视频提示词.md` 就强制使用对应 selector,不能靠省略字段降级绕过。升级前已经 prepare 并落盘的
64
- 旧 job 仍可按原指纹读取。
66
+ 影响什么的权威。image/video job 从对应的当前创作文档建立,使用匹配的 selector,不能靠省略字段绕过。
65
67
  新生产结果不自动回填或刷新分镜;需要把它改为后续输入时,由分镜 owner 修订文档,再建立新 job
66
68
  并重新预览、确认。
67
69
 
@@ -95,15 +97,16 @@ python3 <本技能目录>/scripts/production_tool.py audit <project>
95
97
  冻结关键帧正文,加上必要参考图和明确的输出尺寸/数量;creator-first job 使用 `source_entry`
96
98
  锁定这一条。资产板走 `IMG-*`,某一镜的起始画面走 `SHOT-*`;两者不互相替代。
97
99
  - **video**:读取 `视频提示词.md` 的当前 `MOTION-*` 可复制正文,并核对 `分镜.md` 中对应镜头、
98
- 冻结关键帧、时长与画幅;creator-first job 使用 `source_entry` 锁定这一条。连续段选择从上一段
99
- 生成结果续接时,下一段 job 同时绑定上一段实际视频和从该视频取得的实际尾帧,并保留
100
- `continuity_video`、`actual_tail_frame` 的不同职责;供应商 role 由目标模型 adapter 翻译。H3 的这组
101
- 输入统一译为 `reference_video + reference_image`,不能混成 `reference_video + first_frame`;不以
102
- 计划尾帧或文字描述代替真实文件。
100
+ 冻结关键帧、时长与画幅;creator-first job 使用 `source_entry` 锁定这一条。续接方法需要上一段
101
+ 实际视频和从该视频取得的实际尾帧,分别承担动作/声音连续与新段可见起点;H3 的供应商组合为
102
+ `reference_video + reference_image`。当前 creator-first 来源选择器只解析图片与角色参考音频,
103
+ 尚不能声明续接视频,因此这条内置生产路径不能提交续接段。报告接口缺口并保留已选路线,
104
+ 不省略来源选择器、不拿计划尾帧冒充真实输入,也不擅自改为独立文生视频。
103
105
  - **tts**:从 `剧本.md` 读取原句与表演要求,声音参考由用户或现有媒体明确提供。不得在生产 job
104
- 中改词,也不为 TTS 新建第六份创作文档。表演要求来自这句台词的括注和上下文:执行端接受自然语言语气时,
105
- 写成一句语气说明放在台词前(「憋屈地压低声音,咬着牙应一声:是。」),同一角色每句挂同一段参考音色;
106
- 只接受枚举情绪时映射到最近的一档,再用强度、音调细调。只给音色、不给语气时,短剧台词会念成播音腔。
106
+ 中改词,也不为 TTS 新建第六份创作文档。表演要求来自这句台词的括注和上下文。外部执行端若把
107
+ prompt 解释为含表演指令的输入,可在台词前写一句语气说明(「憋屈地压低声音,咬着牙应一声:是。」);
108
+ 支持参考音色时,同一角色每句使用同一段已接受参考。内置 MiniMax Speech 把 prompt 逐字作为台词,
109
+ 因此只放原句,以同一已选 `voice_id` 保持角色声音,再把表演要求映射到支持的情绪、语速、音量和音调参数。
107
110
  - **music**:读取 `视频提示词.md` 中创作者已确认的时间线音乐章节;主题曲使用已确认歌词,纯配乐
108
111
  不携带歌词。供应商不能精确承诺时长时,生成源音轨后仍由 `$short-drama-edit` 按文档里的混音意图完成落点、
109
112
  循环、淡入淡出和对白 ducking。
@@ -113,7 +116,7 @@ python3 <本技能目录>/scripts/production_tool.py audit <project>
113
116
 
114
117
  ## Adapter 边界
115
118
 
116
- adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 adapter 自己从进程环境或系统凭据
119
+ adapter 配置必须在项目外,包含 argv 命令、超时和可选的 `reference_roles`;凭据由 adapter 从进程环境或系统凭据
117
120
  存储读取。项目 job、确认记录、运行记录和 Dashboard 都不得保存密钥。
118
121
 
119
122
  脚本以 JSON stdin 调用 argv 数组,不使用 shell,不拼接命令。adapter 返回本地临时文件;工具只
@@ -124,42 +127,40 @@ adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 ad
124
127
  引用语义说明(中文名、用途、允许控制与不得控制范围);不会把槽位名误当成要渲染进画面的文字。
125
128
  外部 adapter 也必须保留这组语义或明确拒绝,不能只上传文件而静默丢失控制边界。
126
129
 
127
- 本技能可选提供四个 stdlib adapter,均通过项目外 adapter config 选择,凭据只从运行环境读取:
130
+ 本技能提供五个可选的 stdlib adapter,均通过项目外 adapter config 选择,凭据只从运行环境读取:
128
131
 
129
132
  - [Seedance](references/providers/seedance.md):模型/Endpoint ID 必须由账号显式配置;compiler 支持
130
- 官方图片、视频和音频参考 role,内置 runtime 未配置可信上传时仍拒绝本地参考文件。
133
+ 图片、视频和音频参考 role,本地参考文件由内置 runtime 编码为 data URI 发送。
131
134
  - [GPT Image 2](references/providers/gpt-image-2.md):无参考图走 generation,有参考图走 edit;
132
135
  固定高保真引用并校验尺寸、格式与透明背景限制。
133
136
  - [MiniMax Music](references/providers/minimax-music.md):使用 `music-3.0` 与 hex 结果,区分主题曲
134
137
  和纯配乐,不伪造时长请求字段。
135
138
  - [MiniMax 语音](references/providers/minimax-speech.md):`tts` 模态;模型与 `voice_id` 都必须
136
- 由账号与文档显式给出,不内置音色清单。只从预置音色合成,不做声音克隆——克隆是授权问题,
137
- 创作者授权的参考录音按普通创作者输入走 `输入/`。
139
+ 由账号与文档显式给出,不内置音色清单。只从预置音色合成,不做声音克隆;创作者授权的参考录音
140
+ 按普通创作者输入放在 `输入/`,不能据此声称本适配器会读取或克隆它。
138
141
  - [MiniMax H3 视频](references/providers/minimax-h3-video.md):模型 ID、分辨率集合与时长区间必须
139
- 由账号显式配置;提示词进 `content` 的 text 项,参考图按显式 role 绑定,本地参考在没有可信上传时
140
- fail closed。该模型与画面同一次生成声音,写法影响见视频提示词技能的目标模型能力档案。
142
+ 由账号显式配置;提示词进 `content` 的 text 项,本地参考按显式 role 绑定并编码为 data URI。
143
+ 该模型与画面同一次生成声音,写法影响见 `$short-drama-video-prompts` 的目标模型能力档案。
141
144
 
142
- 这些 adapter 是已验证请求契约,不是账号可用性或生成质量保证;正式生产仍必须通过上面的本次
143
- 确认闸门,并由审查 Skill 判断产物质量。
145
+ 这些 adapter 实现本文列出的请求契约;账号可用性需由部署方核实,生成质量需另行观察和审查。
146
+ 正式生产仍须经过本次预览后的明确确认。
144
147
 
145
148
  仓库自带 `fixture_adapter.py` 只用于离线测试,不代表真实生成质量或默认生产 adapter。
146
149
 
147
150
  ## 中断不等于要重跑
148
151
 
149
- 视频任务在**提交那一刻**就已经计费,不是在拿到结果时。提交之后的一切——轮询几分钟、下载——
150
- 都可能被进程被杀、断网、机器休眠打断。内置 adapter 因此在拿到供应商任务 ID 的第一时间就把它
151
- 写进 `handle_path`(早于第一次轮询),这个路径不随本次尝试一起删除。
152
+ 异步视频任务提交后就可能产生费用;轮询和下载中断不代表供应商没有执行。内置 adapter 在拿到
153
+ 供应商任务 ID 后、第一次轮询前将其写进 `handle_path`,这个路径在本次尝试结束后保留。
152
154
 
153
- 于是中断之后有三条确定的动作,不必再花一次钱:
155
+ 中断后按以下顺序恢复:
154
156
 
155
157
  1. `audit` 会把带着任务 ID 的未完成尝试报成 `orphaned_provider_job`,
156
158
  `action` 是 `collect_before_retry`;
157
159
  2. `collect` 用那个 ID 取回结果并把这次尝试标成成功;
158
- 3. 只有在 `collect` 也确认那边确实失败之后,才走重新确认与重投的老路。
160
+ 3. 只有确认原任务已终态失败、无需继续取回时,才为重投重新预览和确认;暂时无法轮询或下载仍应先排查取回路径。
159
161
 
160
- **不要在 `audit` 报出 `orphaned_provider_job` 时直接重投**——那是在为同一个镜头付第二次钱。
161
- `collect` 不走确认闸门是有意的:闸门防的是意外花钱,而 collect 不花钱;
162
- 如果它也要求重新确认,那么中断之后最省事的路径就变成再付一次,正好是闸门要防的事。
162
+ `audit` 报出 `orphaned_provider_job` 时先 collect。它只轮询和下载既有任务,不提交新生成请求,
163
+ 因此不消费新的生产确认;重投仍需重新确认。
163
164
 
164
165
  ## 结果与复核
165
166
 
@@ -167,12 +168,12 @@ adapter 配置必须在项目外,只包含 argv 命令和超时;凭据由 ad
167
168
  多任务或重试后先运行 `audit`:终态失败按 `retryable` 路由,重试仍须新的明确确认;输出缺失或
168
169
  文件的哈希或大小不再等于运行记录时,先复核当前字节或重新生产。`repeated_content` 只是成本与诊断信号,
169
170
  不能自动判定同文重试合理或不合理;`running_attempt` 是未决运营状态,audit 必须返回 attention。
170
- 失败按三路走。超时、限流、服务端错误这类技术失败可做有上限重试。失败信息点名了被拒的是哪
171
- 一项输入——提示词文本、参考图或音频——就先改那一项再投:文本被拒改写那一句,把「一拳砸在
172
- 对方脸上,血顺着下巴滴」换成「一拳挥空,对方侧身避开,桌上的杯子被带倒」;参考图被拒换一张
173
- 构图与角色一致、画面本身合规的图;音频被拒重录那句台词。改动写进新的 job 重新 prepare,让创
174
- 作者在预览里看到改的是哪一项再确认;原样重投的那次确认不产生修复,只产生一笔费用。重复内容
175
- 缺陷回到对应 prompt/spec owner。
171
+ 技术失败先排除仍可 collect 的已提交任务,再按 `retryable` 决定是否建议有上限的重投,每次重投仍须新确认。
172
+ 失败证据若能定位被拒的提示词、参考图或音频,就把证据交给对应负责技能;证据不足时先核实,
173
+ 不猜测被拒原因。生产技能不得把「一拳砸在对方脸上,血顺着下巴滴」擅自换成
174
+ 「一拳挥空,对方侧身避开,桌上的杯子被带倒」:这已改变来源动作。文本、参考图或录音的修改
175
+ 由负责技能完成并交创作者接受,再从更新后的文档建立 job,重新 prepare、展示变化并确认。
176
+ 重复内容缺陷同样回到对应 prompt/spec 负责技能。
176
177
  生产结束后不自动进入剪辑。素材要装配成成片时由用户点名 `$short-drama-edit`;它只取舍已有帧,
177
178
  不回头改本阶段的 job,也不生成新素材。
178
179
  如需质量复核,报告可把已有结果另行交给 `$short-drama-review`;不要在生产调用中自动启动复核。
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "短剧生产"
3
- short_description: "确认后安全执行图片、视频和语音生产任务,并保留可审计运行记录"
3
+ short_description: "预览并确认后执行图片、视频、语音和音乐生产任务,保留运行记录"
4
4
  default_prompt: "Use $short-drama-produce to preview a bounded media job, request explicit confirmation, then execute it safely."
@@ -1,5 +1,10 @@
1
1
  # Adapter Contract
2
2
 
3
+ The bundled provider compilers accept video-reference roles, but the current creator-first Markdown
4
+ source selector declares only image references and character voice references. It cannot bind a previous
5
+ video for continuation. Keep that route unsubmitted until the source interface supports both actual
6
+ video and tail-frame inputs; do not omit the source selector to bypass this boundary.
7
+
3
8
  ## Job file
4
9
 
5
10
  ```json
@@ -37,12 +42,12 @@
37
42
  canonical `剧集|episodes/<EP>/` creator document, matched to that document:
38
43
  `图片提示词.md` takes `IMG-*` (image), `视频提示词.md` takes `MOTION-*` (video),
39
44
  and `分镜.md` takes `SHOT-*` (image, whose prompt is the shot's
40
- `### 冻结关键帧提示词` body rather than `### 可复制提示词`). A new image/video job pointing to either canonical filename must
45
+ `### 冻结关键帧提示词` body rather than `### 可复制提示词`). A new image/video job using one of these canonical sources must
41
46
  provide the matching selector; an arbitrary Markdown file cannot impersonate a
42
47
  creator source. `prepare` selects that section and requires `prompt` to exactly
43
48
  equal its copyable prompt after Markdown quote markers are removed.
44
49
  - `reference_bindings`: zero to sixteen ordered semantic bindings. Every entry has
45
- exactly `slot_id`, contiguous `order`, project-relative `path`, Chinese `label`,
50
+ `slot_id`, contiguous `order`, project-relative `path`, Chinese `label`,
46
51
  non-empty `role`, and non-empty `may_control` / `must_not_control` lists. When
47
52
  `source_entry` is present, these fields must exactly match that entry's
48
53
  `参考` (IMG) or `输入参考图` (SHOT/MOTION) declaration (except `role`, which is
@@ -54,9 +59,9 @@
54
59
  the creator document, not this schema, is the authority on. This schema keeps
55
60
  `role` free-form because an external adapter names its own inputs, but the
56
61
  bundled video adapters read it as the provider's own role and accept only
57
- their published vocabulary: `first_frame`, `last_frame`, `reference_image`,
58
- `reference_video`, `reference_audio` for MiniMax, and the three `reference_*`
59
- values for Seedance. A video job carrying references without bindings fails
62
+ their implemented vocabulary: `first_frame`, `last_frame`, `reference_image`,
63
+ `reference_video`, and `reference_audio` for both MiniMax and Seedance.
64
+ Supported combinations still depend on the configured model. A video job carrying references without bindings fails
60
65
  closed there rather than having a role guessed for it.
61
66
  A `MOTION-*` entry's `参考音频` line binds after the pictures: its slots follow
62
67
  the `输入参考图` bindings in audio `顺序`, continuing the job's `order`, each with
@@ -64,6 +69,17 @@
64
69
  slots may use that role. Leaving a declared voice or its character out, or swapping
65
70
  characters, fails `prepare`. Adapters must preserve this character binding; bundled
66
71
  compilers derive the voice label from `character`, not the free-form asset `label`.
72
+ For a job rendering a SHOT's own start frame, `prepare` may omit the creator-supplied
73
+ `PLAN-...` slots because those external pictures are not this job's inputs;
74
+ the declared real `REF-...` files must still match, and their remaining order must be
75
+ contiguous from 1. If skipping PLAN leaves gaps, the storyboard owner first revises
76
+ the source declaration; renumbering the job alone fails source matching.
77
+ Binding paths must also be unique. Two creative slots may describe different uses of
78
+ one picture, but this interface cannot submit both with the same path. Have the owning
79
+ skill and creator decide whether to revise the reference duties or wait for interface
80
+ support; do not silently merge or omit slots in the job.
81
+ A job that needs to send the PLAN
82
+ pictures instead must first bind actual project files as REF slots.
67
83
  - `references`: zero to sixteen current project files actually sent to production.
68
84
  It may be omitted when `reference_bindings` is present, in which case the paths
69
85
  are derived in binding order. If both are present, they must match exactly.
@@ -79,11 +95,7 @@
79
95
 
80
96
  `prepare` records internal digests of source/reference bytes and returns the exact confirmation phrase. Callers never
81
97
  calculate those digests. A changed input requires prepare and confirmation again.
82
- Jobs already prepared and stored before this contract remain readable under their
83
- original fingerprint. New non-creator structured jobs remain valid without
84
- `source_entry` and `reference_bindings`; they still receive the existing
85
- path/digest/confirmation checks. A `music` job may continue to use the timeline
86
- music section of canonical `视频提示词.md` without pretending that section is a
98
+ A `music` job uses the timeline music section of canonical `视频提示词.md` without pretending that section is a
87
99
  `MOTION-*` entry; other new image/video jobs using canonical creator paths must use
88
100
  their matching selector.
89
101
 
@@ -106,10 +118,10 @@ Keep this file outside the project:
106
118
  let the adapter read its environment or operating-system credential store.
107
119
 
108
120
  A profile may add `"reference_roles": [...]`, the roles its configured model accepts. When present,
109
- `run` refuses any binding whose role is not listed. A `reference_audio` binding always needs it:
110
- a model without an audio input can drop the voice without an error. Either way `run` stops before
111
- the confirmation is spent or the adapter starts. List `reference_audio` only for a model you know
112
- accepts reference audio.
121
+ `run` refuses any binding whose role is not listed. A `reference_audio` binding always requires
122
+ that declaration, so an unsupported model cannot silently drop a voice. A role rejection happens
123
+ before confirmation is consumed or the adapter starts. List `reference_audio` only for a model
124
+ known to accept reference audio.
113
125
 
114
126
  ## Capability sources
115
127
 
@@ -123,21 +135,22 @@ The adapter receives one UTF-8 JSON document as raw stdin bytes. Read the
123
135
  binary stream (for example `json.load(sys.stdin.buffer)`) rather than relying
124
136
  on the machine locale. The document contains the confirmed job plus:
125
137
 
126
- - `run_id`: unique attempt ID;
127
- - `project_root`: local absolute path to a private, run-scoped snapshot containing
138
+ - `run_id`: the original attempt's unique ID, also reused when collecting that attempt;
139
+ - `project_root`: on a run call, the local absolute path to a private, run-scoped snapshot containing
128
140
  the exact confirmed `source` and `references`. It is not the live creator
129
141
  project and is deleted after the attempt.
130
142
  - `output_root`: empty private, run-scoped staging directory owned by the
131
143
  production tool. Every adapter output source must be a direct regular-file
132
144
  child of this directory. The whole directory is deleted after success or
133
145
  failure.
134
- - `handle_path`: absolute path where the adapter records the provider's task id
146
+ - `handle_path`: on a run call, the absolute path where the adapter records the provider's task id
135
147
  **as soon as it has one, before it starts polling** — write
136
148
  `{"provider_job_id": "<id>"}`, atomically. Unlike `output_root` this path
137
149
  survives the attempt.
138
150
  - `collect_provider_job_id`: present only on a collect call. When it is set the
139
151
  adapter must **not submit anything**; it polls and downloads that existing
140
- task and returns its outputs as usual.
152
+ task and returns its outputs as usual. A collect call has no input snapshot or
153
+ `project_root`; it must not reopen the source or reference files.
141
154
 
142
155
  ## Recovering a submitted task
143
156
 
@@ -9,7 +9,7 @@ Adapter command:
9
9
  Required environment: `OPENAI_API_KEY`. `OPENAI_BASE_URL` optionally overrides the default
10
10
  `https://api.openai.com/v1` and must remain HTTPS.
11
11
 
12
- The job must have modality `image` and exactly one output. With no references, the adapter sends JSON to
12
+ The job must use modality `image` and have exactly one output. With no references, the adapter sends JSON to
13
13
  `POST /images/generations`. With one to sixteen references, it sends an `image[]` multipart edit to
14
14
  `POST /images/edits`. The model is always `gpt-image-2`, `n` is always one, and the single returned `b64_json` image is
15
15
  written to a private temporary file.