@lemoncat7/dsh-partner 2.8.1 → 2.8.2

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 (794) hide show
  1. package/docs/THIRD_PARTY_LICENSES.md +10 -0
  2. package/docs/blocked-delivery-recovery.md +7 -0
  3. package/docs/concern-attention.md +19 -0
  4. package/docs/observation-contract.md +11 -0
  5. package/docs/releases/2.8.2.md +7 -0
  6. package/lib/agent-runtime.d.ts +7 -0
  7. package/lib/agent-runtime.d.ts.map +1 -1
  8. package/lib/agent-runtime.js +110 -32
  9. package/lib/agent-runtime.js.map +1 -1
  10. package/lib/api.js +28 -6
  11. package/lib/api.js.map +1 -1
  12. package/lib/autonomy.d.ts.map +1 -1
  13. package/lib/autonomy.js +5 -0
  14. package/lib/autonomy.js.map +1 -1
  15. package/lib/channel-message.d.ts +2 -0
  16. package/lib/channel-message.d.ts.map +1 -1
  17. package/lib/channel-message.js.map +1 -1
  18. package/lib/channels/direct/message-format.js +127 -127
  19. package/lib/channels/direct/message-format.js.map +1 -1
  20. package/lib/channels/manager.d.ts.map +1 -1
  21. package/lib/channels/manager.js +4 -3
  22. package/lib/channels/manager.js.map +1 -1
  23. package/lib/channels/notification-delivery.d.ts.map +1 -1
  24. package/lib/channels/notification-delivery.js +10 -0
  25. package/lib/channels/notification-delivery.js.map +1 -1
  26. package/lib/channels/weixin/connect.d.ts.map +1 -1
  27. package/lib/client-api.d.ts +7 -2
  28. package/lib/client-api.d.ts.map +1 -1
  29. package/lib/client-api.js +8 -1
  30. package/lib/client-api.js.map +1 -1
  31. package/lib/client.d.ts.map +1 -1
  32. package/lib/client.js +2185 -1956
  33. package/lib/client.js.map +4 -4
  34. package/lib/collaboration/composition.js +1 -1
  35. package/lib/collaboration/composition.js.map +1 -1
  36. package/lib/concern-attention.d.ts +19 -0
  37. package/lib/concern-attention.d.ts.map +1 -0
  38. package/lib/concern-attention.js +36 -0
  39. package/lib/concern-attention.js.map +1 -0
  40. package/lib/concern-domain.d.ts +7 -1
  41. package/lib/concern-domain.d.ts.map +1 -1
  42. package/lib/concern-domain.js +4 -0
  43. package/lib/concern-domain.js.map +1 -1
  44. package/lib/concern-execution-notes.d.ts +18 -0
  45. package/lib/concern-execution-notes.d.ts.map +1 -0
  46. package/lib/concern-execution-notes.js +41 -0
  47. package/lib/concern-execution-notes.js.map +1 -0
  48. package/lib/concern-execution-receipt.d.ts +4 -0
  49. package/lib/concern-execution-receipt.d.ts.map +1 -0
  50. package/lib/concern-execution-receipt.js +28 -0
  51. package/lib/concern-execution-receipt.js.map +1 -0
  52. package/lib/concern-execution.d.ts +30 -0
  53. package/lib/concern-execution.d.ts.map +1 -0
  54. package/lib/concern-execution.js +86 -0
  55. package/lib/concern-execution.js.map +1 -0
  56. package/lib/concern-management-tool.d.ts.map +1 -1
  57. package/lib/concern-management-tool.js +21 -19
  58. package/lib/concern-management-tool.js.map +1 -1
  59. package/lib/concern-note-source.d.ts +7 -0
  60. package/lib/concern-note-source.d.ts.map +1 -0
  61. package/lib/concern-note-source.js +25 -0
  62. package/lib/concern-note-source.js.map +1 -0
  63. package/lib/concern-resources.d.ts +27 -0
  64. package/lib/concern-resources.d.ts.map +1 -0
  65. package/lib/concern-resources.js +36 -0
  66. package/lib/concern-resources.js.map +1 -0
  67. package/lib/concern-sources.d.ts +1 -1
  68. package/lib/concern-sources.d.ts.map +1 -1
  69. package/lib/concern-store.d.ts +9 -1
  70. package/lib/concern-store.d.ts.map +1 -1
  71. package/lib/concern-store.js +111 -34
  72. package/lib/concern-store.js.map +1 -1
  73. package/lib/concern-tool.d.ts +1 -0
  74. package/lib/concern-tool.d.ts.map +1 -1
  75. package/lib/concern-tool.js +8 -4
  76. package/lib/concern-tool.js.map +1 -1
  77. package/lib/decision/conversation.d.ts +11 -0
  78. package/lib/decision/conversation.d.ts.map +1 -0
  79. package/lib/decision/conversation.js +52 -0
  80. package/lib/decision/conversation.js.map +1 -0
  81. package/lib/decision/events.d.ts +16 -0
  82. package/lib/decision/events.d.ts.map +1 -0
  83. package/lib/decision/events.js +9 -0
  84. package/lib/decision/events.js.map +1 -0
  85. package/lib/domain.d.ts +2 -0
  86. package/lib/domain.d.ts.map +1 -1
  87. package/lib/domain.js.map +1 -1
  88. package/lib/heartbeat.d.ts +12 -10
  89. package/lib/heartbeat.d.ts.map +1 -1
  90. package/lib/heartbeat.js +54 -26
  91. package/lib/heartbeat.js.map +1 -1
  92. package/lib/index.d.ts.map +1 -1
  93. package/lib/index.js +3 -0
  94. package/lib/index.js.map +1 -1
  95. package/lib/memory-prompt-context.js +1 -0
  96. package/lib/memory-prompt-context.js.map +1 -1
  97. package/lib/memory-reflection.js +1 -1
  98. package/lib/observation-contract.d.ts +9 -0
  99. package/lib/observation-contract.d.ts.map +1 -0
  100. package/lib/observation-contract.js +19 -0
  101. package/lib/observation-contract.js.map +1 -0
  102. package/lib/observation-executor.d.ts +5 -0
  103. package/lib/observation-executor.d.ts.map +1 -1
  104. package/lib/observation-executor.js +17 -1
  105. package/lib/observation-executor.js.map +1 -1
  106. package/lib/observation-loop.d.ts +5 -0
  107. package/lib/observation-loop.d.ts.map +1 -1
  108. package/lib/observation-loop.js +36 -3
  109. package/lib/observation-loop.js.map +1 -1
  110. package/lib/observation-sources.d.ts +14 -0
  111. package/lib/observation-sources.d.ts.map +1 -0
  112. package/lib/observation-sources.js +12 -0
  113. package/lib/observation-sources.js.map +1 -0
  114. package/lib/requirements/service.d.ts.map +1 -1
  115. package/lib/requirements/service.js +2 -0
  116. package/lib/requirements/service.js.map +1 -1
  117. package/lib/requirements/worker.d.ts.map +1 -1
  118. package/lib/requirements/worker.js +1 -0
  119. package/lib/requirements/worker.js.map +1 -1
  120. package/lib/scheduler/continuations.d.ts.map +1 -1
  121. package/lib/scheduler/continuations.js +17 -3
  122. package/lib/scheduler/continuations.js.map +1 -1
  123. package/lib/skills/builtin.d.ts.map +1 -1
  124. package/lib/skills/builtin.js +2 -0
  125. package/lib/skills/builtin.js.map +1 -1
  126. package/lib/skills/drama-builtin.d.ts.map +1 -1
  127. package/lib/skills/drama-builtin.js +13 -1
  128. package/lib/skills/drama-builtin.js.map +1 -1
  129. package/lib/skills/story-builtins.d.ts +3 -0
  130. package/lib/skills/story-builtins.d.ts.map +1 -0
  131. package/lib/skills/story-builtins.js +72 -0
  132. package/lib/skills/story-builtins.js.map +1 -0
  133. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -1
  134. package/lib/skills/viora-canvas-builtin.js +12 -1
  135. package/lib/skills/viora-canvas-builtin.js.map +1 -1
  136. package/lib/snapshot-cache.d.ts +7 -0
  137. package/lib/snapshot-cache.d.ts.map +1 -0
  138. package/lib/snapshot-cache.js +26 -0
  139. package/lib/snapshot-cache.js.map +1 -0
  140. package/lib/tasks/result.js +1 -1
  141. package/lib/tasks/result.js.map +1 -1
  142. package/lib/ui/memory/concern-board.d.ts +1 -1
  143. package/lib/ui/memory/concern-board.d.ts.map +1 -1
  144. package/lib/ui/memory/concern-board.js +12 -6
  145. package/lib/ui/memory/concern-board.js.map +1 -1
  146. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  147. package/lib/ui/memory/concern-deletion.js +2 -1
  148. package/lib/ui/memory/concern-deletion.js.map +1 -1
  149. package/lib/ui/memory/concern-editor.d.ts.map +1 -1
  150. package/lib/ui/memory/concern-editor.js +5 -3
  151. package/lib/ui/memory/concern-editor.js.map +1 -1
  152. package/lib/ui/memory/concern-execution-fields.d.ts +7 -0
  153. package/lib/ui/memory/concern-execution-fields.d.ts.map +1 -0
  154. package/lib/ui/memory/concern-execution-fields.js +8 -0
  155. package/lib/ui/memory/concern-execution-fields.js.map +1 -0
  156. package/lib/ui/memory/concern-feedback.d.ts +15 -0
  157. package/lib/ui/memory/concern-feedback.d.ts.map +1 -0
  158. package/lib/ui/memory/concern-feedback.js +13 -0
  159. package/lib/ui/memory/concern-feedback.js.map +1 -0
  160. package/lib/ui/memory/concern-panel.d.ts.map +1 -1
  161. package/lib/ui/memory/concern-panel.js +11 -3
  162. package/lib/ui/memory/concern-panel.js.map +1 -1
  163. package/package.json +5 -1
  164. package/resources/skills/novel-game-creation/manifest.json +393 -0
  165. package/resources/skills/novel-game-creation/upstream/LICENSE +21 -0
  166. package/resources/skills/novel-game-creation/upstream/README.md +420 -0
  167. package/resources/skills/novel-game-creation/upstream/README_ZH.md +421 -0
  168. package/resources/skills/novel-game-creation/upstream/VERSION +1 -0
  169. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/BUILD_BRIEF.md +219 -0
  170. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/.vercelignore +3 -0
  171. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/RUN.md +138 -0
  172. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  173. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  174. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  175. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  176. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  177. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  178. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  179. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  180. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  181. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  182. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  183. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  184. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  185. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  186. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  187. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  188. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  189. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  190. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  191. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  192. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  193. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  194. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  195. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  196. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  197. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  198. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  199. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  200. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  201. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  202. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  203. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  204. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  205. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  206. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  207. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  208. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  209. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  210. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  211. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  212. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  213. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/new-guofeng.css +1494 -0
  214. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/style.css +2508 -0
  215. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/index.html +18 -0
  216. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/assets.js +147 -0
  217. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/audio.js +332 -0
  218. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/data.js +7470 -0
  219. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/engine.js +13066 -0
  220. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/main.js +3051 -0
  221. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/text.js +32 -0
  222. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/package.json +11 -0
  223. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/vercel.json +23 -0
  224. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/art/generated-art.json +161 -0
  225. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/example.json +12 -0
  226. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/README.md +26 -0
  227. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/playable-model.json +99 -0
  228. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verification.json +41 -0
  229. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verify_playable_model.mjs +152 -0
  230. package/resources/skills/novel-game-creation/upstream/manifest.json +498 -0
  231. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/SKILL.md +47 -0
  232. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/agents/openai.yaml +4 -0
  233. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/references/art-direction-method.md +40 -0
  234. package/resources/skills/novel-game-creation/upstream/skills/game-build/SKILL.md +66 -0
  235. package/resources/skills/novel-game-creation/upstream/skills/game-build/agents/openai.yaml +4 -0
  236. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/blender-asset-workflow.md +24 -0
  237. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/build-brief-contract.md +72 -0
  238. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/generative-media-pipeline.md +25 -0
  239. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/playable-model-contract.md +46 -0
  240. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/tts-production-contract.md +23 -0
  241. package/resources/skills/novel-game-creation/upstream/skills/game-concept/SKILL.md +54 -0
  242. package/resources/skills/novel-game-creation/upstream/skills/game-concept/agents/openai.yaml +4 -0
  243. package/resources/skills/novel-game-creation/upstream/skills/game-concept/references/concept-method.md +47 -0
  244. package/resources/skills/novel-game-creation/upstream/skills/game-qa/SKILL.md +39 -0
  245. package/resources/skills/novel-game-creation/upstream/skills/game-qa/agents/openai.yaml +4 -0
  246. package/resources/skills/novel-game-creation/upstream/skills/game-qa/references/qa-contract.md +66 -0
  247. package/resources/skills/novel-game-creation/upstream/skills/game-qa/references/test-design-method.md +49 -0
  248. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/SKILL.md +50 -0
  249. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/agents/openai.yaml +4 -0
  250. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/narrative-design-method.md +35 -0
  251. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/numeric-design-method.md +22 -0
  252. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/world-design-method.md +57 -0
  253. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/SKILL.md +68 -0
  254. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/agents/openai.yaml +4 -0
  255. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
  256. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/SKILL.md +54 -0
  257. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/agents/openai.yaml +4 -0
  258. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/references/intake-method.md +50 -0
  259. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/references/pipeline-contract.md +60 -0
  260. package/resources/skills/story-creation/manifest.json +1477 -0
  261. package/resources/skills/story-creation/upstream/LICENSE.upstream +21 -0
  262. package/resources/skills/story-creation/upstream/manifest.json +1861 -0
  263. package/resources/skills/story-creation/upstream/roles/chapter-extractor.md +254 -0
  264. package/resources/skills/story-creation/upstream/roles/character-designer.md +168 -0
  265. package/resources/skills/story-creation/upstream/roles/consistency-checker.md +192 -0
  266. package/resources/skills/story-creation/upstream/roles/narrative-writer.md +105 -0
  267. package/resources/skills/story-creation/upstream/roles/story-architect.md +139 -0
  268. package/resources/skills/story-creation/upstream/roles/story-explorer.md +262 -0
  269. package/resources/skills/story-creation/upstream/roles/story-researcher.md +303 -0
  270. package/resources/skills/story-creation/upstream/skills/browser-cdp/SKILL.md +175 -0
  271. package/resources/skills/story-creation/upstream/skills/story/SKILL.md +129 -0
  272. package/resources/skills/story-creation/upstream/skills/story/VERSION +1 -0
  273. package/resources/skills/story-creation/upstream/skills/story/references/author-memory-maintenance.md +75 -0
  274. package/resources/skills/story-creation/upstream/skills/story/references/author-memory.md +117 -0
  275. package/resources/skills/story-creation/upstream/skills/story/scripts/author_memory_commit.py +1635 -0
  276. package/resources/skills/story-creation/upstream/skills/story-cover/SKILL.md +336 -0
  277. package/resources/skills/story-creation/upstream/skills/story-cover/references/cover-styles.md +210 -0
  278. package/resources/skills/story-creation/upstream/skills/story-deslop/SKILL.md +274 -0
  279. package/resources/skills/story-creation/upstream/skills/story-deslop/references/agent-calls.md +5 -0
  280. package/resources/skills/story-creation/upstream/skills/story-deslop/references/anti-ai-writing.md +556 -0
  281. package/resources/skills/story-creation/upstream/skills/story-deslop/references/author-memory-maintenance.md +75 -0
  282. package/resources/skills/story-creation/upstream/skills/story-deslop/references/author-memory.md +117 -0
  283. package/resources/skills/story-creation/upstream/skills/story-deslop/references/banned-words.md +151 -0
  284. package/resources/skills/story-creation/upstream/skills/story-deslop/references/deslop-gates.md +171 -0
  285. package/resources/skills/story-creation/upstream/skills/story-deslop/references/style-resolution.md +27 -0
  286. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/author_memory_commit.py +1635 -0
  287. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/check-ai-patterns.js +1586 -0
  288. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/check-degeneration.js +349 -0
  289. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/normalize-punctuation.js +415 -0
  290. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/style-whitelist.js +39 -0
  291. package/resources/skills/story-creation/upstream/skills/story-import/SKILL.md +127 -0
  292. package/resources/skills/story-creation/upstream/skills/story-import/references/character-state-reverse.md +82 -0
  293. package/resources/skills/story-creation/upstream/skills/story-import/references/deep-analysis.md +47 -0
  294. package/resources/skills/story-creation/upstream/skills/story-import/references/format-and-structure.md +168 -0
  295. package/resources/skills/story-creation/upstream/skills/story-import/references/import-report.md +64 -0
  296. package/resources/skills/story-creation/upstream/skills/story-import/references/import-special-cases.md +34 -0
  297. package/resources/skills/story-creation/upstream/skills/story-import/references/import-tracking.md +95 -0
  298. package/resources/skills/story-creation/upstream/skills/story-import/references/length-routing.md +134 -0
  299. package/resources/skills/story-creation/upstream/skills/story-import/references/outline-reverse-rules.md +79 -0
  300. package/resources/skills/story-creation/upstream/skills/story-import/references/outline-reverse.md +24 -0
  301. package/resources/skills/story-creation/upstream/skills/story-import/references/state-tracking.md +43 -0
  302. package/resources/skills/story-creation/upstream/skills/story-import/references/structure-mapping-long.md +448 -0
  303. package/resources/skills/story-creation/upstream/skills/story-import/references/structure-mapping-short.md +187 -0
  304. package/resources/skills/story-creation/upstream/skills/story-import/references/tracking-initialization.md +31 -0
  305. package/resources/skills/story-creation/upstream/skills/story-import/references/tracking-transaction.md +146 -0
  306. package/resources/skills/story-creation/upstream/skills/story-import/scripts/build_outline_brief.py +332 -0
  307. package/resources/skills/story-creation/upstream/skills/story-import/scripts/check-outline-contract.js +520 -0
  308. package/resources/skills/story-creation/upstream/skills/story-import/scripts/tracking_commit.py +1691 -0
  309. package/resources/skills/story-creation/upstream/skills/story-import/scripts/wordcount_core.py +405 -0
  310. package/resources/skills/story-creation/upstream/skills/story-long-analyze/SKILL.md +140 -0
  311. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/author-facing.md +252 -0
  312. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
  313. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/final-checks.md +19 -0
  314. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/index-rebuild.md +11 -0
  315. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/inspiration-library.md +105 -0
  316. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/pipeline-ops.md +154 -0
  317. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
  318. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
  319. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage2-extraction.md +229 -0
  320. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
  321. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
  322. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage5-report.md +33 -0
  323. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/style-profile-generator.md +76 -0
  324. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
  325. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
  326. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
  327. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
  328. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
  329. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
  330. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
  331. package/resources/skills/story-creation/upstream/skills/story-long-scan/SKILL.md +193 -0
  332. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/genre-trends.md +197 -0
  333. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-ciweimao.md +19 -0
  334. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-fanqie.md +45 -0
  335. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-jjwxc.md +28 -0
  336. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-qidian.md +35 -0
  337. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-qimao.md +27 -0
  338. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/publishing-guide.md +114 -0
  339. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/reader-profiling.md +105 -0
  340. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/topic-decision.md +82 -0
  341. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/aggregate-rank.js +682 -0
  342. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/cdp-utils.js +242 -0
  343. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/ciweimao-rank-scraper.js +240 -0
  344. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/fanqie-rank-scraper.js +658 -0
  345. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/jjwxc-rank-scraper.js +400 -0
  346. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/qidian-rank-scraper.js +592 -0
  347. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/qimao-rank-scraper.js +435 -0
  348. package/resources/skills/story-creation/upstream/skills/story-long-write/SKILL.md +136 -0
  349. package/resources/skills/story-creation/upstream/skills/story-long-write/references/agent-calls.md +47 -0
  350. package/resources/skills/story-creation/upstream/skills/story-long-write/references/anti-ai-writing.md +556 -0
  351. package/resources/skills/story-creation/upstream/skills/story-long-write/references/artifact-protocols.md +183 -0
  352. package/resources/skills/story-creation/upstream/skills/story-long-write/references/author-memory-maintenance.md +75 -0
  353. package/resources/skills/story-creation/upstream/skills/story-long-write/references/author-memory.md +117 -0
  354. package/resources/skills/story-creation/upstream/skills/story-long-write/references/banned-words.md +151 -0
  355. package/resources/skills/story-creation/upstream/skills/story-long-write/references/benchmark-recall.md +16 -0
  356. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-basics.md +445 -0
  357. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-design-methods.md +428 -0
  358. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-relations.md +433 -0
  359. package/resources/skills/story-creation/upstream/skills/story-long-write/references/commercial-core-methods.md +502 -0
  360. package/resources/skills/story-creation/upstream/skills/story-long-write/references/cross-book-recall.md +88 -0
  361. package/resources/skills/story-creation/upstream/skills/story-long-write/references/deslop-gates.md +171 -0
  362. package/resources/skills/story-creation/upstream/skills/story-long-write/references/dialogue-mastery.md +288 -0
  363. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotion-on-page.md +116 -0
  364. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotional-arc-design.md +313 -0
  365. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotional-methods.md +209 -0
  366. package/resources/skills/story-creation/upstream/skills/story-long-write/references/female-audience-writing.md +188 -0
  367. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  368. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  369. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  370. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  371. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  372. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  373. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  374. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  375. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  376. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  377. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  378. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  379. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  380. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  381. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  382. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  383. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  384. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  385. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  386. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  387. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  388. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  389. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  390. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  391. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  392. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  393. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  394. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  395. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  396. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  397. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  398. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  399. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards.md +91 -0
  400. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-readers.md +235 -0
  401. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-chapter-hooks.md +225 -0
  402. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-chapter-quality.md +177 -0
  403. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-format.md +36 -0
  404. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-genre-catalog.md +394 -0
  405. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-genre-mechanics.md +415 -0
  406. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-reversal.md +335 -0
  407. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-suspense.md +352 -0
  408. package/resources/skills/story-creation/upstream/skills/story-long-write/references/opening-design.md +349 -0
  409. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-conflict.md +457 -0
  410. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-methods.md +287 -0
  411. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-rhythm.md +389 -0
  412. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-structure-theory.md +273 -0
  413. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-core-methods.md +522 -0
  414. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-emotion-system.md +354 -0
  415. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-frameworks.md +711 -0
  416. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-special-topics.md +622 -0
  417. package/resources/skills/story-creation/upstream/skills/story-long-write/references/project-files.md +114 -0
  418. package/resources/skills/story-creation/upstream/skills/story-long-write/references/reader-contract-and-progression.md +117 -0
  419. package/resources/skills/story-creation/upstream/skills/story-long-write/references/reference-index.md +86 -0
  420. package/resources/skills/story-creation/upstream/skills/story-long-write/references/stop-and-fix.md +9 -0
  421. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-combat-face.md +352 -0
  422. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-craft.md +327 -0
  423. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-genre-modules.md +510 -0
  424. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-resolution.md +27 -0
  425. package/resources/skills/story-creation/upstream/skills/story-long-write/references/tracking-initialization.md +31 -0
  426. package/resources/skills/story-creation/upstream/skills/story-long-write/references/tracking-transaction.md +146 -0
  427. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-chapter.md +104 -0
  428. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-daily.md +75 -0
  429. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-outline.md +157 -0
  430. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-revision.md +89 -0
  431. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-setup.md +170 -0
  432. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-volume.md +142 -0
  433. package/resources/skills/story-creation/upstream/skills/story-long-write/references/writer-prompt-fallback.md +24 -0
  434. package/resources/skills/story-creation/upstream/skills/story-long-write/references/writing-craft.md +442 -0
  435. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/author_memory_commit.py +1635 -0
  436. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/build_architect_brief.py +260 -0
  437. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/build_writer_prompt.py +611 -0
  438. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-ai-patterns.js +1586 -0
  439. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-degeneration.js +349 -0
  440. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-outline-contract.js +520 -0
  441. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-outline-copy.js +313 -0
  442. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/normalize-punctuation.js +415 -0
  443. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/outline_view.py +286 -0
  444. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/storyctl.py +561 -0
  445. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/style-whitelist.js +39 -0
  446. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/tracking_commit.py +1691 -0
  447. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/wordcount_core.py +405 -0
  448. package/resources/skills/story-creation/upstream/skills/story-review/SKILL.md +231 -0
  449. package/resources/skills/story-creation/upstream/skills/story-review/references/agent-prompts.md +184 -0
  450. package/resources/skills/story-creation/upstream/skills/story-review/references/anti-ai-writing.md +556 -0
  451. package/resources/skills/story-creation/upstream/skills/story-review/references/author-memory-maintenance.md +75 -0
  452. package/resources/skills/story-creation/upstream/skills/story-review/references/author-memory.md +117 -0
  453. package/resources/skills/story-creation/upstream/skills/story-review/references/banned-words.md +151 -0
  454. package/resources/skills/story-creation/upstream/skills/story-review/references/batch-review.md +19 -0
  455. package/resources/skills/story-creation/upstream/skills/story-review/references/character-relations.md +433 -0
  456. package/resources/skills/story-creation/upstream/skills/story-review/references/dialogue-mastery.md +288 -0
  457. package/resources/skills/story-creation/upstream/skills/story-review/references/plot-core-methods.md +522 -0
  458. package/resources/skills/story-creation/upstream/skills/story-review/references/quality-rubric.md +55 -0
  459. package/resources/skills/story-creation/upstream/skills/story-review/references/review-quality.md +246 -0
  460. package/resources/skills/story-creation/upstream/skills/story-review/references/review-tracking.md +10 -0
  461. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/fanqie.md +18 -0
  462. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/qidian.md +19 -0
  463. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/zhihu.md +20 -0
  464. package/resources/skills/story-creation/upstream/skills/story-review/references/solo.md +52 -0
  465. package/resources/skills/story-creation/upstream/skills/story-review/references/style-resolution.md +27 -0
  466. package/resources/skills/story-creation/upstream/skills/story-review/references/tracking-initialization.md +31 -0
  467. package/resources/skills/story-creation/upstream/skills/story-review/references/tracking-transaction.md +146 -0
  468. package/resources/skills/story-creation/upstream/skills/story-review/scripts/author_memory_commit.py +1635 -0
  469. package/resources/skills/story-creation/upstream/skills/story-review/scripts/check-ai-patterns.js +1586 -0
  470. package/resources/skills/story-creation/upstream/skills/story-review/scripts/check-degeneration.js +349 -0
  471. package/resources/skills/story-creation/upstream/skills/story-review/scripts/normalize-punctuation.js +415 -0
  472. package/resources/skills/story-creation/upstream/skills/story-review/scripts/style-whitelist.js +39 -0
  473. package/resources/skills/story-creation/upstream/skills/story-review/scripts/tracking_commit.py +1691 -0
  474. package/resources/skills/story-creation/upstream/skills/story-review/scripts/wordcount_core.py +405 -0
  475. package/resources/skills/story-creation/upstream/skills/story-setup/SKILL.md +165 -0
  476. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/agent-quality.md +72 -0
  477. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
  478. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/anti-ai-writing.md +556 -0
  479. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/banned-words.md +151 -0
  480. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
  481. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-basics.md +445 -0
  482. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
  483. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-relations.md +433 -0
  484. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/deslop-gates.md +171 -0
  485. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/dialogue-mastery.md +288 -0
  486. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
  487. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/emotional-arc-design.md +313 -0
  488. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/format-and-structure.md +168 -0
  489. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  490. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  491. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  492. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  493. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  494. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  495. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  496. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  497. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  498. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  499. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  500. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  501. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  502. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  503. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  504. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  505. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  506. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  507. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  508. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  509. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  510. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  511. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  512. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  513. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  514. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  515. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  516. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  517. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  518. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  519. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  520. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  521. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
  522. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-readers.md +235 -0
  523. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-chapter-hooks.md +225 -0
  524. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
  525. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-genre-catalog.md +394 -0
  526. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-genre-mechanics.md +415 -0
  527. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-quality.md +42 -0
  528. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-reversal.md +335 -0
  529. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-suspense.md +352 -0
  530. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/opening-design.md +349 -0
  531. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
  532. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-methods.md +287 -0
  533. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
  534. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
  535. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-chapter-hooks.md +225 -0
  536. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-emotional-methods.md +179 -0
  537. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-genre-formulas.md +417 -0
  538. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-paragraph-hooks.md +146 -0
  539. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-quality.md +39 -0
  540. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-reversal.md +355 -0
  541. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-suspense.md +352 -0
  542. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-combat-face.md +352 -0
  543. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
  544. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-resolution.md +27 -0
  545. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/writing-craft.md +442 -0
  546. package/resources/skills/story-creation/upstream/skills/story-setup/references/diagnostics.md +38 -0
  547. package/resources/skills/story-creation/upstream/skills/story-short-analyze/SKILL.md +224 -0
  548. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-basics.md +453 -0
  549. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-design.md +438 -0
  550. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-relations.md +395 -0
  551. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-method.md +42 -0
  552. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-paragraph-hooks.md +146 -0
  553. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-reader-profile.md +245 -0
  554. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-report-style.md +45 -0
  555. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
  556. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
  557. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
  558. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
  559. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
  560. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-writing-techniques.md +477 -0
  561. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
  562. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/optional-modules.md +97 -0
  563. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/output-contract.md +127 -0
  564. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/quality-checklist.md +80 -0
  565. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/real-market-data.md +90 -0
  566. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/source-story-quality.md +221 -0
  567. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
  568. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/stage4-6-reversal-summary.md +611 -0
  569. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/zhihu-style.md +54 -0
  570. package/resources/skills/story-creation/upstream/skills/story-short-scan/SKILL.md +182 -0
  571. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/manual-rank-input.md +36 -0
  572. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/platform-dianzhong.md +24 -0
  573. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/platform-heiyan.md +21 -0
  574. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/real-market-data.md +90 -0
  575. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/topic-match.md +38 -0
  576. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/aggregate-rank.js +682 -0
  577. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/cdp-utils.js +242 -0
  578. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/dz-browse-scraper.js +232 -0
  579. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/heiyan-booklist-scraper.js +345 -0
  580. package/resources/skills/story-creation/upstream/skills/story-short-write/SKILL.md +136 -0
  581. package/resources/skills/story-creation/upstream/skills/story-short-write/references/agent-calls.md +13 -0
  582. package/resources/skills/story-creation/upstream/skills/story-short-write/references/author-memory-maintenance.md +75 -0
  583. package/resources/skills/story-creation/upstream/skills/story-short-write/references/author-memory.md +117 -0
  584. package/resources/skills/story-creation/upstream/skills/story-short-write/references/banned-words.md +151 -0
  585. package/resources/skills/story-creation/upstream/skills/story-short-write/references/benchmark-recall.md +40 -0
  586. package/resources/skills/story-creation/upstream/skills/story-short-write/references/cross-book-recall.md +62 -0
  587. package/resources/skills/story-creation/upstream/skills/story-short-write/references/dialogue-mastery.md +288 -0
  588. package/resources/skills/story-creation/upstream/skills/story-short-write/references/emotional-methods.md +179 -0
  589. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +159 -0
  590. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
  591. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
  592. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
  593. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
  594. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
  595. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
  596. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
  597. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
  598. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +210 -0
  599. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-writing-formulas.md +417 -0
  600. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-writing-techniques.md +490 -0
  601. package/resources/skills/story-creation/upstream/skills/story-short-write/references/hooks-chapter.md +225 -0
  602. package/resources/skills/story-creation/upstream/skills/story-short-write/references/hooks-paragraph.md +146 -0
  603. package/resources/skills/story-creation/upstream/skills/story-short-write/references/output-contract.md +127 -0
  604. package/resources/skills/story-creation/upstream/skills/story-short-write/references/reference-index.md +23 -0
  605. package/resources/skills/story-creation/upstream/skills/story-short-write/references/scene-craft.md +40 -0
  606. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-craft.md +147 -0
  607. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-deslop.md +133 -0
  608. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-format.md +199 -0
  609. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-prose-quality.md +224 -0
  610. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-reversal.md +355 -0
  611. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-suspense.md +352 -0
  612. package/resources/skills/story-creation/upstream/skills/story-short-write/references/style-resolution.md +27 -0
  613. package/resources/skills/story-creation/upstream/skills/story-short-write/references/submission-craft.md +35 -0
  614. package/resources/skills/story-creation/upstream/skills/story-short-write/references/villain-and-reveal.md +153 -0
  615. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-design.md +85 -0
  616. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-draft.md +116 -0
  617. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-revision.md +99 -0
  618. package/resources/skills/story-creation/upstream/skills/story-short-write/references/writing-workflow.md +50 -0
  619. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/author_memory_commit.py +1635 -0
  620. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-ai-patterns.js +1586 -0
  621. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-degeneration.js +349 -0
  622. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-delivery-contract.js +241 -0
  623. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-outline-copy.js +313 -0
  624. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
  625. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/normalize-punctuation.js +415 -0
  626. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/style-whitelist.js +39 -0
  627. package/resources/skills/video-recap-production/manifest.json +673 -0
  628. package/resources/skills/video-recap-production/upstream/CHANGELOG.md +371 -0
  629. package/resources/skills/video-recap-production/upstream/LICENSE +21 -0
  630. package/resources/skills/video-recap-production/upstream/README.en.md +468 -0
  631. package/resources/skills/video-recap-production/upstream/README.md +459 -0
  632. package/resources/skills/video-recap-production/upstream/manifest.json +839 -0
  633. package/resources/skills/video-recap-production/upstream/skills/video-assemble/SKILL.md +112 -0
  634. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/audio-modes.md +63 -0
  635. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/explicit-audio-mix.md +75 -0
  636. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/foreground-compose.md +118 -0
  637. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
  638. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/SOURCE.md +15 -0
  639. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
  640. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
  641. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
  642. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
  643. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
  644. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
  645. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
  646. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
  647. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
  648. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
  649. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
  650. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/narration-adoption.md +103 -0
  651. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/packaging.md +45 -0
  652. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/pair-media.md +74 -0
  653. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/source-score.md +147 -0
  654. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/subtitle-track.md +202 -0
  655. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/__init__.py +1 -0
  656. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
  657. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
  658. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
  659. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
  660. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
  661. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/artifacts.py +47 -0
  662. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assemble.py +591 -0
  663. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assemble_constants.py +51 -0
  664. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assembly_contract.py +318 -0
  665. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assembly_settings.py +138 -0
  666. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/audio_automation.py +195 -0
  667. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/audio_mix.py +465 -0
  668. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/compose_foreground.py +293 -0
  669. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/export_jianying.py +254 -0
  670. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/__init__.py +1 -0
  671. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/builders.py +718 -0
  672. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/model.py +105 -0
  673. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/optional.py +23 -0
  674. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/schema.py +53 -0
  675. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/templates.py +37 -0
  676. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/timeline_contract.py +223 -0
  677. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/tracks.py +72 -0
  678. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/writer.py +383 -0
  679. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/lib.py +218 -0
  680. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/media.py +190 -0
  681. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/narration_audio.py +413 -0
  682. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/packaging.py +122 -0
  683. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/pair_media.py +216 -0
  684. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/render_preflight.py +33 -0
  685. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/source_score.py +469 -0
  686. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/source_subtitles.py +423 -0
  687. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
  688. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/core.py +330 -0
  689. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/render.py +82 -0
  690. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/track.py +324 -0
  691. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
  692. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/timeline.py +217 -0
  693. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/timeline_emit.py +167 -0
  694. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/visual_render.py +448 -0
  695. package/resources/skills/video-recap-production/upstream/skills/video-cut/SKILL.md +108 -0
  696. package/resources/skills/video-recap-production/upstream/skills/video-cut/references/shot-review.md +50 -0
  697. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut.py +41 -0
  698. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_cli.py +308 -0
  699. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_contract.py +424 -0
  700. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_render.py +304 -0
  701. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/lib.py +114 -0
  702. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/media_geometry.py +238 -0
  703. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/narration_mapping.py +71 -0
  704. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/narrative_selection.py +244 -0
  705. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/sentence_boundaries.py +585 -0
  706. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/shot_review.py +357 -0
  707. package/resources/skills/video-recap-production/upstream/skills/video-recap/SKILL.md +260 -0
  708. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/audio-routing.md +126 -0
  709. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/config-playbook.md +65 -0
  710. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/data-schema.md +545 -0
  711. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/resource-library.md +151 -0
  712. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/shift-left-qc-schema.md +23 -0
  713. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/doctor.py +556 -0
  714. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/final_qc.py +527 -0
  715. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/lib.py +220 -0
  716. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/library.py +509 -0
  717. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/materials.py +406 -0
  718. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/mimo_qc.py +33 -0
  719. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/project_binding.py +286 -0
  720. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/__init__.py +1 -0
  721. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_client.py +13 -0
  722. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_contract.py +9 -0
  723. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_evidence.py +287 -0
  724. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_observations.py +175 -0
  725. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_payload.py +206 -0
  726. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_report.py +318 -0
  727. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_runner.py +130 -0
  728. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc_contract.py +320 -0
  729. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap.py +9 -0
  730. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_cli.py +209 -0
  731. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_inspect.py +452 -0
  732. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_review.py +70 -0
  733. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_runner.py +696 -0
  734. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_runtime.py +260 -0
  735. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_source.py +278 -0
  736. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_stage_qc.py +160 -0
  737. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_timeline.py +621 -0
  738. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/resource_lock.py +162 -0
  739. package/resources/skills/video-recap-production/upstream/skills/video-script/SKILL.md +251 -0
  740. package/resources/skills/video-recap-production/upstream/skills/video-script/references/creative-editing-playbook.md +229 -0
  741. package/resources/skills/video-recap-production/upstream/skills/video-script/references/promotional-copy.md +68 -0
  742. package/resources/skills/video-recap-production/upstream/skills/video-script/references/research-guide.md +75 -0
  743. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/agent_text.py +301 -0
  744. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/deslop_qc.py +211 -0
  745. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/evidence_bundle.py +440 -0
  746. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/lib.py +254 -0
  747. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/narration_lint.py +707 -0
  748. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review.py +40 -0
  749. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_grounding.py +238 -0
  750. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_response.py +669 -0
  751. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_runner.py +186 -0
  752. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/speech_ownership.py +143 -0
  753. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/timeline_fusion.py +108 -0
  754. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/validate.py +175 -0
  755. package/resources/skills/video-recap-production/upstream/skills/video-understanding/SKILL.md +77 -0
  756. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/data-schema.md +193 -0
  757. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/prompt-templates.md +37 -0
  758. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/research-guide.md +74 -0
  759. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/agent_text.py +301 -0
  760. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/asr.py +279 -0
  761. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
  762. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/brief.py +9 -0
  763. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/__init__.py +1 -0
  764. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/builder.py +402 -0
  765. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/context.py +317 -0
  766. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/inputs.py +268 -0
  767. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/timeline.py +326 -0
  768. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/consolidate.py +596 -0
  769. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/deslop_qc.py +211 -0
  770. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/detect.py +504 -0
  771. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/extract.py +62 -0
  772. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/lib.py +419 -0
  773. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/narration_lint.py +707 -0
  774. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/speech_ownership.py +143 -0
  775. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/storyboard.py +445 -0
  776. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/timeline_fusion.py +108 -0
  777. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understand.py +9 -0
  778. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_brief.py +190 -0
  779. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_cache.py +345 -0
  780. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_runner.py +387 -0
  781. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_storyboard.py +167 -0
  782. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/vlm.py +674 -0
  783. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/SKILL.md +91 -0
  784. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/references/index-tts.md +31 -0
  785. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
  786. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/dub.py +623 -0
  787. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/lib.py +352 -0
  788. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/__init__.py +1 -0
  789. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/fish_audio.py +91 -0
  790. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
  791. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/tts_audio.py +102 -0
  792. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/voiceover.py +771 -0
  793. package/resources/skills/viora-canvas-production/manifest.json +5 -1
  794. package/resources/skills/viora-canvas-production/references/story-handoff.md +49 -0
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: video-assemble
3
+ user-invocable: false
4
+ description: >
5
+ 合成视频解说最终成片:把旁白音频铺到源视频上,按旁白窗口压低原声,生成 SRT / ASS 字幕并可烧录,
6
+ 最后做响度标准化。作为最终合成阶段使用。输入源视频、tts_meta.json 与旁白位置;
7
+ 输出 recap 成片和字幕。触发词:视频合成、混音、字幕、压字幕、assemble video、mux、ducking、subtitles、成片。
8
+ ---
9
+
10
+ ## 1. 定位
11
+
12
+ 本技能负责最终合成:
13
+
14
+ 1. 把各段旁白音频放到视频时间线上。
15
+ 2. 在旁白窗口内压低原声,支持 fixed / sidechain / zone 模式。
16
+ 3. 根据旁白位置生成 `subtitles.srt`;默认同时生成并烧录 `subtitles.ass`,`--no-burn-subtitles` 可关闭。
17
+ 4. 可选把最终响度标准化到目标 LUFS。
18
+
19
+ ## 2. 声音收尾契约
20
+
21
+ 合成阶段只实现创作决定,不凭空制造决定。Agent 在写旁白位置前,已在 `visual_audio_board.json` 为每个 beat 指定 `audio_owner`:
22
+
23
+ - `original_dialogue`
24
+ - `action_sound`
25
+ - `ambience` / `music`
26
+ - `silence`
27
+ - `narration`
28
+
29
+ 因此,旁白间隙是主动选择,不是必须填满的空白。不要为了“更满”而加入通用 BGM、压住必须听见的台词或消除有意义的沉默。
30
+
31
+ 当前渲染器不解析 `visual_audio_board.json`;Agent 通过旁白时间、`overlaps_speech`、原声留白与现有混音参数落实这些决定。
32
+
33
+ ## 3. 输入契约
34
+
35
+ - `<video>`:源视频;cut 模式下为 `edited_source.mp4`。
36
+ - `work_dir/tts_meta.json`:默认 `narration` 模式必需;配音阶段写出的 `{segments: [...]}`。每段包含 `audio_path`、时间、`pause_after_ms`、`overlaps_speech` 和用于混音/字幕的位置。显式 `source-mix` / `adopted-packet-copy` 模式不读取它。
37
+ - 已采用的配音使用显式 `--tts-meta` 和 `--narration-adoption`:后者由调用方独立确认文字、请求的引擎/声线和速度策略,不能从待消费元数据自动“批准”出来。完整格式与记录边界见 `references/narration-adoption.md`。
38
+ - 已采用的完整声音底轨与逐段配音可再传 `--audio-mix-adoption`;严格格式、48 kHz 声道矩阵和双 binding 事务见 `references/explicit-audio-mix.md`。
39
+
40
+ 下面的 `scripts/...` 均相对于本技能目录。若执行器从仓库根目录启动,请给脚本路径加上本技能的绝对目录。
41
+
42
+ ## 4. 运行命令
43
+
44
+ ```bash
45
+ python3 scripts/assemble.py <video> --work-dir <work_dir> \
46
+ [--audio-mode narration|source-mix|adopted-packet-copy] [--audio-stream-index <N>] \
47
+ [--tts-meta <tts_meta.json> --narration-adoption <narration_adoption.json>] \
48
+ [--audio-mix-adoption <audio_mix_adoption.json>] \
49
+ [--recap-stem <name>] [--output-dir <dir>] [--no-burn-subtitles] \
50
+ [--subtitle-y-top <inclusive-y> --subtitle-y-bot <exclusive-y>] \
51
+ [--source-video <orig.mp4>] [--export-jianying [--jianying-out <dir>]]
52
+ ```
53
+
54
+ ## 5. 输出契约
55
+
56
+ - `recap_<stem>.mp4`:稳定的最终输出别名;每次运行覆盖更新。
57
+ - `work_dir/output.mp4`:工作目录内成片。
58
+ - `subtitles.srt`:旁白字幕;烧录时另有 `subtitles.ass`。
59
+ - `timeline.json`:后端无关的多轨模型,包含视频、原声、旁白、BGM、字幕和 ducking 自动化。
60
+ - `_placed_*.wav`:实际写入主混音的完整逐段旁白 PCM;时间线与剪映只引用这些文件。
61
+ - `narration_input_binding.json`:旁白输入、转换、实际放置、旁白总轨和最终音轨的消费记录(路径、PCM 参数、packet 计数)。区分未采用与已绑定采用决定两种状态;不等于声线鉴定或听审。
62
+ - `audio_mix_binding.json`:显式完整声音分支消费的画面时钟、底轨、48 kHz 配音放置、premaster、固定 master gain、最终 PCM/AAC 事实与 narration binding 路径的记录。
63
+ - `assembly_manifest.json`:输入来源、cut 来源标识(路径、大小、mtime)、渲染设置与最终输出路径。
64
+ - `assembly_qc.json`:旁白完整性、原声句末交接、时间线素材时长与交付质量的发布门禁。
65
+ - 剪映草稿目录:仅 `--export-jianying` 时生成,包含 `draft_content.json`、`draft_info.json` 与 `draft_meta_info.json`。
66
+
67
+ ## 6. 合成规则
68
+
69
+ - 音频模式的处理与冻结语义见 `references/audio-modes.md`。默认仍为 `narration`;另外两种模式必须显式选择。
70
+ - `--audio-mix-adoption` 只与显式 `--tts-meta`、`--narration-adoption` 同时使用;它保留 `narration` 模式名,但跳过旧速度/适配、原声 handoff、环境 BGM、duck、loudnorm 和 limiter。
71
+ - 音频按轨道混合:原声、可选 BGM 与旁白各自独立。
72
+ - 旁白不做任何容差裁尾;温和加速后仍放不下即 `no_safe_fit`。每段 `_placed_*.wav`
73
+ 必须与序列化后的时间线区间等长或更短,否则 `timeline_audio_mismatch` 阻断。
74
+ - 已采用配音的 v1 合同只支持原速、禁止段内适速;不能让环境默认 1.15 倍速或旧缓存覆盖它。放不下就修订安排,不裁尾。严格运行使用新工作目录与新输出路径;输入/实际混音来源变动或 QC 失败时,不发布候选成片。没有采用文件的旧入口仍是兼容模式,不自动获得同等证据。
75
+ - 原声在旁白结束后保持压低到下一可靠句末的 `pause_start`,只在实测停顿内渐强,
76
+ 于 `source_restore_at` 回满;无后续锚点时保持压低到时间线末端,而不是放出半句。
77
+ - `--export-jianying` / `EXPORT_JIANYING=1` 可把 `timeline.json` 导出为可编辑草稿。cut 模式应传 `--source-video <orig>`,让草稿引用真实原片区间。
78
+ - 剪映导出默认把视频、音频与图片复制到 `Resources/local/{video,audio,image}`,保持草稿可搬迁;`--jianying-no-bundle-media` 只适合原路径始终可访问的情况。
79
+ - 重叠覆盖物会拆到编号轨道;非空目标目录不会覆盖,而会创建编号兄弟目录。
80
+ - 常速、倒放、变换、富文本、转场、蒙版、LUT、绿幕复合草稿及显式特效轨道通过 timeline v2 扩展表达。需要素材包的功能只接受调用方合法提供的离线资源。
81
+ - 剪映草稿引用未烧录的源视频,因此原片硬字幕仍会保留,必要时在剪映内另行遮罩。
82
+ - 字幕外观可用 `SUBTITLE_FONT_SIZE`、`SUBTITLE_MARGIN_V`、`SUBTITLE_MAX_CHARS` 等控制。
83
+ - `SUBTITLE_Y_TOP/BOT` 把 ASS 基线放到测得的原片字幕区域,坐标为半开 `[top, bot)`;显式遮罩策略下默认 `SUBTITLE_MASK_OPACITY=0.6`,`SOURCE_SUBTITLE_MASK_TIMING=narration`。
84
+ - 原声在旁白间隙回到 `IDLE_ORIG_VOLUME`,旁白下压到 `SPEECH_DUCKING_VOLUME`;`DUCK_FADE_SECONDS` 控制过渡。还可配置 `DUCKING_MODE`、`ZONE_DUCKING_VOLUME`、`FINAL_LOUDNORM` 与 `TARGET_LUFS`。
85
+ - 可通过 `BGM_PATH` 指定 BGM;它会循环到成片长度,并按 `BGM_VOLUME` / `BGM_DUCKING_VOLUME` 混音。不要在没有创作依据时设置通用 BGM。
86
+ - 烧录字幕需要带 `subtitles` / libass 的 ffmpeg;合成阶段会预检并在缺失时明确失败。
87
+ - 原声留白中的对白字幕优先读取 Agent 校对的 `original_subtitles.json`;否则保守映射 ASR。只有遮罩覆盖留白或用户字幕明确要求替换时才烧录原声对白,并用 `「」` 与旁白区分。
88
+
89
+ ### 按原片区间准备声音,而不是整体压低旧成片
90
+
91
+ 已有多段原声取舍和独立 BGM 决定时,先用 `references/source-score.md` 的独立
92
+ `source_score.py` 从原片声音流按精确帧区间重建原声轨、音乐轨及两者之和;它只输出
93
+ 声音底轨和来源回执。要与逐段已采用配音合成,再由调用方提供 `references/explicit-audio-mix.md`
94
+ 的严格 adoption;不要将底轨塞入旧入口自动 duck,也不要从含旧解说的成片取整条声音冒充干净原声。
95
+
96
+ ## 7. 字幕与可选包装
97
+
98
+ 先锁定画面、剪点、旁白和混音,再投入字幕动画或边框包装;字幕样式不能掩盖叙事、剪点或声音问题。
99
+ 普通交付优先使用现有 ASS 路径;只有用户需要逐 cue 排版、动画或透明图层时,才用项目级代码渲染器,
100
+ 并按 `references/foreground-compose.md` 把它生成的 RGBA 序列叠到锁定母版。包装顺序与样帧抽检清单见
101
+ `references/packaging.md`。
102
+
103
+ ## 8. 能力边界
104
+
105
+ - 不生成旁白文字,不合成 TTS,不重新转写视频。
106
+ - 字幕烧录默认开启;关闭时不会重编码绘制字幕区域。
107
+
108
+ 显式输出轴字幕轨的独立合同、完整替换语义和当前边界见 `references/subtitle-track.md`。
109
+
110
+ 画面回原片重建后,若需保留另一文件中的已采用完整混音,先按
111
+ `references/pair-media.md` 显式配对独立画面与音轨。配对只复制流,不补字幕或片名卡;
112
+ 后续字幕轨必须重新绑定配对后的容器与 `a:0`,不能继续沿用旧版本身份。
@@ -0,0 +1,63 @@
1
+ # Assembly audio modes
2
+
3
+ `assemble.py` keeps `narration` as its API and CLI default. Non-narration
4
+ behavior is opt-in with `--audio-mode`; `--audio-stream-index N` is the
5
+ zero-based audio ordinal used by FFmpeg's `0:a:N` selector.
6
+
7
+ ## `narration`
8
+
9
+ - Requires non-empty `tts_meta.json` segments, as before.
10
+ - Builds/places narration WAV, performs source ducking and optional BGM mix,
11
+ then applies the configured final loudness/limiter stage and AAC encoding.
12
+ - Missing source audio may use the existing synthetic-silence fallback.
13
+ - With the additional strict `--audio-mix-adoption`, narration instead consumes an
14
+ adopted prepared bed plus complete direct-to-48-kHz narration placements. This is
15
+ still narration mode, but it bypasses ambient BGM, ducking, speed/fit, loudnorm, and
16
+ limiter operations. See `explicit-audio-mix.md`.
17
+
18
+ ## `source-mix`
19
+
20
+ - Does not read or require `tts_meta.json` and never creates narration audio.
21
+ - Uses the selected input audio stream, applies `IDLE_ORIG_VOLUME`, mixes a
22
+ declared `BGM_PATH` when present, and runs the configured final
23
+ loudness/limiter stage before AAC encoding.
24
+ - A declared but missing `BGM_PATH` is an error in this new mode (the legacy
25
+ narration-mode warn-and-skip behavior remains unchanged).
26
+ - This is a processed mix, not frozen audio. `assembly_qc.json` reports the
27
+ operations that actually ran.
28
+
29
+ ## `adopted-packet-copy`
30
+
31
+ - First implementation supports a selected AAC stream from `<video>` only.
32
+ - Rejects TTS segments, explicit `--tts-meta`, any configured `BGM_PATH`, a
33
+ missing/wrong stream, unsupported codec, or audio/picture interval mismatch.
34
+ - Maps that stream with `-c:a copy`. It does not build narration, mix, duck,
35
+ normalize, limit, resample, change tempo, or add silence.
36
+ - It deliberately omits `-t` and `-shortest`, preserving AAC priming and tail
37
+ packets. After rendering, the output is probed and compared with the input:
38
+ decoder parameters, packet count, total payload bytes, the packet-clock span,
39
+ and every packet's size and PTS/DTS/duration converted to rational time must
40
+ match. Packet side data also must match, including AAC skip-sample/
41
+ discard-padding values and their reason fields.
42
+ - QC/manifest evidence records selected stream, absolute stream index, codec,
43
+ time base, sample rate, channels/layout, packet count, payload bytes, packet
44
+ details, and actual operation flags.
45
+
46
+ The adopted-copy settings payload excludes narration/mix/loudness defaults, so
47
+ irrelevant ambient settings do not invalidate a frozen-audio render. Video
48
+ filters and video re-encoding remain allowed; packet verification must still
49
+ pass afterward.
50
+
51
+ These modes do not create a commercial quality profile, automatic speech
52
+ alignment, listening approval, or release approval. An explicit subtitle track
53
+ is only a version/media-bound timing declaration; its evidence labels and
54
+ `NOT_CHECKED` acoustic/listening status remain authoritative.
55
+ Matching packets and decoder parameters show the encoded audio was copied; they
56
+ do not prove perceptual quality or that a person listened to the result.
57
+
58
+ `timeline.json` represents either non-narration mode as one complete clip from
59
+ the current input video and records the selected stream. Adopted copy uses gain
60
+ 1 with no automation. Source-mix records processed/non-frozen delivery and is
61
+ not claimed to be reconstructable by an editor. The optional JianYing exporter
62
+ currently supports only selected stream 0; requesting export with another
63
+ stream fails instead of silently substituting the default stream.
@@ -0,0 +1,75 @@
1
+ # Explicit adopted full-sound mix
2
+
3
+ Use this path only when the picture, a completed `prepared_bed_receipt`, an exact
4
+ narration adoption, narration placements/gains, and one fixed master gain have already
5
+ been independently selected. It is still `audio_mode=narration`, but it bypasses the
6
+ legacy narration timing, ducking, ambient BGM, loudness-normalization, and limiter path.
7
+
8
+ ```bash
9
+ python3 scripts/assemble.py picture.mp4 --work-dir NEW_WORK \
10
+ --tts-meta /local/tts_meta.json \
11
+ --narration-adoption /local/narration_adoption.json \
12
+ --audio-mix-adoption /local/audio_mix_adoption.json
13
+ ```
14
+
15
+ All strict output paths, including the CLI delivery alias, must be new. The CLI copies
16
+ to a hidden delivery stage and creates the alias with an exclusive atomic link, so a
17
+ concurrent or existing file is never overwritten.
18
+
19
+ ## Adoption schema v1
20
+
21
+ ```json
22
+ {
23
+ "artifact": "audio_mix_adoption",
24
+ "schema_version": 1,
25
+ "prepared_receipt": {"path": "/local/prepared_bed_receipt.json"},
26
+ "format": {"sample_rate": 48000, "channels": 2, "total_samples": 1856000},
27
+ "segments": [
28
+ {"index": 0, "output_start_sample": 366000, "gain": 0.4251421093940735}
29
+ ],
30
+ "master_gain_db": 0.75
31
+ }
32
+ ```
33
+
34
+ Unknown or missing fields fail; legacy `*_sha256` keys are ignored. The format must
35
+ equal the actual zero-origin picture frame clock at 48 kHz and the prepared receipt.
36
+ The receipt, all three float PCM beds (format, sample count, finite PCM), the picture,
37
+ the narration adoption file and the ordered segment indices are checked before
38
+ narration snapshots are written.
39
+
40
+ ## Exact audio operations
41
+
42
+ Each narration snapshot is decoded directly and completely to `pcm_f32le`, 48 kHz
43
+ stereo. Version 1 uses one fixed channel matrix, recorded per segment as
44
+ `mono_equal_power` or `stereo_identity`:
45
+
46
+ - mono is panned to left and right at `1/sqrt(2)` per channel;
47
+ - stereo preserves independent left and right channels at unit gain;
48
+ - inputs with more than two channels are rejected.
49
+
50
+ There is no intermediate 44.1 kHz mono placement, speed change, fade, trim, tail pad,
51
+ normalization, or automatic fit. Every complete converted WAV must fit its adopted
52
+ integer `output_start_sample`; placements may not overlap. Adopted per-segment gains
53
+ form a float `voice_bus.wav`. The producer's `prepared_bed.wav` and voice bus form a
54
+ float premaster, then the sole adopted `master_gain_db` forms the float master consumed
55
+ by the final AAC encode. The picture's old audio is never a mixer input.
56
+
57
+ ## Records and publication
58
+
59
+ `narration_input_binding.json` records the actual direct 48 kHz placed files and voice
60
+ bus, marking the bus `CONSUMED_BY_EXPLICIT_MIX`. `audio_mix_binding.json` records the
61
+ mix adoption path, picture path and clock, prepared receipt path and stems, converted
62
+ placements (path, channel matrix, PCM facts), voice bus, premaster, master, the
63
+ narration binding path, the final decoded PCM facts, the final AAC decoder/packet
64
+ count/payload bytes, and the actual output picture decoder/frame clock. The output
65
+ picture must preserve fps, frame count, zero start, and duration. A video-copy path
66
+ reports `packet_identity: EXACT` when decoder parameters and packet sizes/timestamps
67
+ are unchanged; an allowed visual re-encode reports `REENCODED_CLOCK_MATCH`. Timeline,
68
+ settings, QC, and manifest identify the explicit path rather than reporting ambient
69
+ ducking/BGM/loudnorm operations.
70
+
71
+ The candidate render is written to a hidden file. Both bindings are written, QC must
72
+ pass, the media is published, and a second QC runs against the published path. Any
73
+ render, binding, or QC failure removes the candidate, final-named media and the
74
+ bindings written by this run instead of overwriting an older success.
75
+ Diagnostic/staging audio may remain in the unique work directory.
@@ -0,0 +1,118 @@
1
+ # Caller-rendered foreground composition
2
+
3
+ `compose_foreground.py` performs one narrow operation: it overlays a caller-rendered,
4
+ full-canvas RGBA PNG sequence on an already locked H264/CFR/AAC base, optionally
5
+ replaces a declared tail with an explicit endcard asset, and copies `a:0` without
6
+ decoding or rewriting it. The PNG pixels are the source schema. This is not a CSS,
7
+ font, text, subtitle, logo, animation, or plugin renderer.
8
+
9
+ ## Command
10
+
11
+ ```bash
12
+ python3 scripts/compose_foreground.py foreground_plan.json \
13
+ --output-dir a-new-directory [--plan-only]
14
+ ```
15
+
16
+ The output directory must not exist. A normal run publishes `foreground.mp4` only
17
+ after the staged media's frame clock, canvas/color metadata, AAC decoder/packets/PTS/
18
+ side data, and a full audio/video decode pass verification.
19
+ A failure retains `foreground_run.json` and available logs but removes staged/final
20
+ media. `--plan-only` validates the complete plan and inputs and writes only
21
+ `foreground_run.json`; it does not render media or update any current pointer.
22
+
23
+ ## Strict plan schema v1
24
+
25
+ ```json
26
+ {
27
+ "artifact": "foreground_compose_plan",
28
+ "schema_version": 1,
29
+ "base": {"path": "/local/base.mp4"},
30
+ "video": {"fps": "30/1", "width": 1280, "height": 720, "total_frames": 300},
31
+ "foreground": {
32
+ "directory": "/local/foreground_sequence",
33
+ "pattern": "frame_%06d.png",
34
+ "start_frame": 0,
35
+ "end_frame": 270
36
+ },
37
+ "endcard": {
38
+ "kind": "sequence",
39
+ "directory": "/local/endcard_sequence",
40
+ "pattern": "frame_%06d.png",
41
+ "start_frame": 270,
42
+ "end_frame": 300
43
+ },
44
+ "producer_receipt": {"path": "/local/producer_receipt.json"}
45
+ }
46
+ ```
47
+
48
+ `endcard` is an exact tagged union. The alternative static form is:
49
+
50
+ ```json
51
+ {
52
+ "kind": "still",
53
+ "path": "/local/endcard.png",
54
+ "start_frame": 270,
55
+ "end_frame": 300
56
+ }
57
+ ```
58
+
59
+ When the foreground itself covers the entire declared frame clock, the only accepted
60
+ no-tail form is exactly:
61
+
62
+ ```json
63
+ {"kind": "none"}
64
+ ```
65
+
66
+ It accepts no additional fields. It is invalid when the foreground reserves any tail;
67
+ there is no implicit filler, repeated last frame, or generated endcard.
68
+
69
+ Use `still` only when a genuinely static full-canvas endcard is intended. A static
70
+ PNG does not reconstruct a delivered fade or other animated endcard; supply the
71
+ caller-rendered `sequence` form for that case.
72
+
73
+ Both sequences use **local zero-based filenames** regardless of their output range.
74
+ Thus the endcard example contains `frame_000000.png` through `frame_000029.png`,
75
+ mapped to output frames `[270,300)`. The foreground must start at output frame zero.
76
+ Its end must equal the endcard start, and the endcard end must equal the independently
77
+ probed base frame count. With `kind: "none"`, the foreground end must instead equal
78
+ that full base frame count. Bounds are half-open.
79
+
80
+ The only accepted filename pattern is the literal `frame_%06d.png`. The directory
81
+ must contain exactly the expected contiguous entries—no missing or extra files. Every
82
+ actual image must probe as PNG, `rgba`, and the exact declared full canvas. Repeated
83
+ files and symlinks are allowed so transparent holds need not duplicate storage. The
84
+ run report records each sequence's directory and validated `frame_count`. Legacy
85
+ `sha256` / `ordered_sha256` keys in a plan are ignored.
86
+
87
+ ## Base and output invariants
88
+
89
+ The first version accepts one selected `v:0` H264, zero-origin CFR, YUV420P,
90
+ BT.709/TV-range base and adopted AAC `a:0`. Declared fps, canvas, and frame count are
91
+ checked independently against actual decoded frame PTS. Picture and audio intervals
92
+ must satisfy the narrow `pair_media` timing contract.
93
+
94
+ Composition explicitly overlays in RGB, converts to BT.709 limited-range YUV420P,
95
+ limits the final video filter to the declared half-open frame clock, and re-encodes
96
+ only video with fixed `libx264 -preset fast -crf 18` settings. A no-tail run uses only
97
+ the base and foreground inputs; it does not synthesize or pad a tail. The filter EOF
98
+ prevents still-image input loops without imposing an output-level video frame cap that
99
+ could stop accepted trailing AAC packets from being copied. The run
100
+ report records that encoder, preset, CRF, pixel format, color contract, and audio-copy
101
+ mode explicitly. H.264 CRF encoding is lossy: preserved transparent regions are
102
+ visually checked against tolerances, not claimed pixel-identical to decoded base
103
+ pixels. The compositor does not use `-r`, `-shortest`, or `-t`. Audio is mapped from
104
+ base `a:0` with `-c:a copy`; output verification requires matching decoder
105
+ parameters, packet count, payload bytes, PTS/DTS/duration/size, and side data.
106
+
107
+ ## Provenance and review boundary
108
+
109
+ The producer receipt is a caller artifact that must exist when the plan is read.
110
+ Its declarations may
111
+ describe roles or content decisions such as title/note/brand, `dialogues=[]`, or
112
+ hidden markers. Core records those declarations as `DECLARED_NOT_CHECKED`; it does
113
+ not infer semantic truth from pixels or claim that dialogue/subtitle duplication is
114
+ absent. A separate producer/reviewer must establish that evidence.
115
+
116
+ Every run reports `direct_listening` and `normal_speed_review` as `NOT_CHECKED` and
117
+ `release_approved` as false. Pixel validation and deterministic rendering are not
118
+ commercial-quality or release approval.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 duoec
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,15 @@
1
+ # JianYing protocol templates
2
+
3
+ These JSON protocol templates are pinned to
4
+ [`duoec/duo-video`](https://github.com/duoec/duo-video) commit
5
+ `ef4eb46c823910553f901649f2f13fd7575e748f`, under its MIT license. They are
6
+ data/schema baselines, not executable upstream code. Runtime builders deep-copy
7
+ the templates and replace authored values such as IDs, paths, timings, canvas
8
+ dimensions, and resource configuration.
9
+
10
+ The required copyright and permission notice is preserved in
11
+ `LICENSE.duo-video` in this directory.
12
+
13
+ The exporter never uses duo-video's embedded example credentials. Resource-ID
14
+ features accept an offline `material` or `resource_config` payload so official
15
+ resource packages can be supplied legally by the caller.
@@ -0,0 +1,69 @@
1
+ {
2
+ "cloud_package_completed_time": "",
3
+ "draft_cloud_capcut_purchase_info": "",
4
+ "draft_cloud_last_action_download": false,
5
+ "draft_cloud_materials": [],
6
+ "draft_cloud_purchase_info": "",
7
+ "draft_cloud_template_id": "",
8
+ "draft_cloud_tutorial_info": "",
9
+ "draft_cloud_videocut_purchase_info": "",
10
+ "draft_cover": "",
11
+ "draft_deeplink_url": "",
12
+ "draft_enterprise_info": {
13
+ "draft_enterprise_extra": "",
14
+ "draft_enterprise_id": "",
15
+ "draft_enterprise_name": "",
16
+ "enterprise_material": []
17
+ },
18
+ "draft_fold_path": "",
19
+ "draft_id": "",
20
+ "draft_is_ai_packaging_used": false,
21
+ "draft_is_ai_shorts": false,
22
+ "draft_is_article_video_draft": false,
23
+ "draft_is_from_deeplink": "false",
24
+ "draft_is_invisible": false,
25
+ "draft_materials": [
26
+ {
27
+ "type": 0,
28
+ "value": []
29
+ },
30
+ {
31
+ "type": 1,
32
+ "value": []
33
+ },
34
+ {
35
+ "type": 2,
36
+ "value": []
37
+ },
38
+ {
39
+ "type": 3,
40
+ "value": []
41
+ },
42
+ {
43
+ "type": 6,
44
+ "value": []
45
+ },
46
+ {
47
+ "type": 7,
48
+ "value": []
49
+ },
50
+ {
51
+ "type": 8,
52
+ "value": []
53
+ }
54
+ ],
55
+ "draft_materials_copied_info": [],
56
+ "draft_name": "",
57
+ "draft_new_version": "",
58
+ "draft_removable_storage_device": "",
59
+ "draft_root_path": "",
60
+ "draft_segment_extra_info": [],
61
+ "draft_timeline_materials_size_": 9734196,
62
+ "draft_type": "",
63
+ "tm_draft_cloud_completed": "",
64
+ "tm_draft_cloud_modified": 0,
65
+ "tm_draft_create": 1765203775977,
66
+ "tm_draft_modified": 1765203775977,
67
+ "tm_draft_removed": 0,
68
+ "tm_duration": 249100000
69
+ }
@@ -0,0 +1,84 @@
1
+ {
2
+ "is_tone_modify": false,
3
+ "enable_adjust_mask": false,
4
+ "keyframe_refs": [],
5
+ "enable_adjust": true,
6
+ "enable_video_mask": true,
7
+ "enable_hsl": false,
8
+ "speed": 1,
9
+ "clip": {
10
+ "rotation": 0,
11
+ "transform": {
12
+ "y": 0,
13
+ "x": 0
14
+ },
15
+ "flip": {
16
+ "vertical": false,
17
+ "horizontal": false
18
+ },
19
+ "scale": {
20
+ "y": 1,
21
+ "x": 1
22
+ },
23
+ "alpha": 1
24
+ },
25
+ "intensifies_audio": false,
26
+ "uniform_scale": {
27
+ "on": true,
28
+ "value": 1
29
+ },
30
+ "responsive_layout": {
31
+ "vertical_pos_layout": 0,
32
+ "target_follow": "",
33
+ "enable": false,
34
+ "horizontal_pos_layout": 0,
35
+ "size_layout": 0
36
+ },
37
+ "enable_hsl_curves": true,
38
+ "desc": "",
39
+ "state": 0,
40
+ "enable_lut": true,
41
+ "reverse": false,
42
+ "target_timerange": {
43
+ "start": 0,
44
+ "duration": 0
45
+ },
46
+ "cartoon": false,
47
+ "enable_color_correct_adjust": false,
48
+ "last_nonzero_volume": 1,
49
+ "enable_smart_color_adjust": false,
50
+ "source": "segmentsourcenormal",
51
+ "render_timerange": {
52
+ "start": 0,
53
+ "duration": 0
54
+ },
55
+ "render_index": 0,
56
+ "group_id": "",
57
+ "enable_color_match_adjust": false,
58
+ "enable_color_curves": true,
59
+ "raw_segment_id": "",
60
+ "volume": 1,
61
+ "visible": true,
62
+ "track_render_index": 0,
63
+ "track_attribute": 0,
64
+ "is_loop": false,
65
+ "id": "",
66
+ "enable_color_wheels": true,
67
+ "extra_material_refs": [],
68
+ "template_id": "",
69
+ "template_scene": "default",
70
+ "material_id": "",
71
+ "common_keyframes": [],
72
+ "digital_human_template_group_id": "",
73
+ "color_correct_alg_result": "",
74
+ "hdr_settings": {
75
+ "mode": 1,
76
+ "intensity": 1,
77
+ "nits": 1000
78
+ },
79
+ "is_placeholder": false,
80
+ "source_timerange": {
81
+ "start": 0,
82
+ "duration": 0
83
+ }
84
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "category_name": "",
3
+ "aigc_type": "none",
4
+ "duration": 0,
5
+ "category_id": "",
6
+ "beauty_face_auto_preset_infos": [],
7
+ "beauty_body_preset_id": "",
8
+ "picture_from": "none",
9
+ "cartoon_path": "",
10
+ "intensifies_audio_path": "",
11
+ "crop_ratio": "free",
12
+ "source_platform": 0,
13
+ "local_material_from": "",
14
+ "media_path": "",
15
+ "is_unified_beauty_mode": false,
16
+ "width": 0,
17
+ "video_algorithm": {
18
+ "algorithms": [],
19
+ "path": "",
20
+ "story_video_modify_video_config": {
21
+ "is_overwrite_last_video": false,
22
+ "tracker_task_id": "",
23
+ "task_id": ""
24
+ },
25
+ "ai_background_configs": [],
26
+ "ai_in_painting_config": [],
27
+ "gameplay_configs": []
28
+ },
29
+ "type": "video",
30
+ "height": 0,
31
+ "material_id": "",
32
+ "has_audio": true,
33
+ "is_copyright": true,
34
+ "source": 0,
35
+ "intensifies_path": "",
36
+ "crop_scale": 1,
37
+ "live_photo_cover_path": "",
38
+ "reverse_path": "",
39
+ "reverse_intensifies_path": "",
40
+ "picture_set_category_id": "",
41
+ "crop": {
42
+ "upper_right_x": 1,
43
+ "lower_right_y": 1,
44
+ "upper_right_y": 0,
45
+ "upper_left_y": 0,
46
+ "lower_left_y": 1,
47
+ "lower_right_x": 1,
48
+ "lower_left_x": 0,
49
+ "upper_left_x": 0
50
+ },
51
+ "request_id": "",
52
+ "local_material_id": "",
53
+ "picture_set_category_name": "",
54
+ "path": "",
55
+ "is_text_edit_overdub": false,
56
+ "check_flag": 62978047,
57
+ "origin_material_id": "",
58
+ "material_url": "",
59
+ "beauty_face_auto_preset": {
60
+ "preset_id": "",
61
+ "scene": "",
62
+ "name": "",
63
+ "rate_map": ""
64
+ },
65
+ "is_ai_generate_content": false,
66
+ "extra_type_option": 2,
67
+ "id": "",
68
+ "aigc_item_id": "",
69
+ "material_name": "复合片段1",
70
+ "beauty_face_preset_infos": [],
71
+ "team_id": "",
72
+ "local_id": "",
73
+ "matting": {
74
+ "expansion": 0,
75
+ "feather": 0,
76
+ "flag": 0,
77
+ "reverse": false,
78
+ "strokes": [],
79
+ "custom_matting_id": "",
80
+ "has_use_quick_eraser": false,
81
+ "has_use_quick_brush": false,
82
+ "path": "",
83
+ "interactiveTime": [],
84
+ "enable_matting_stroke": false
85
+ },
86
+ "formula_id": "",
87
+ "has_sound_separated": false,
88
+ "live_photo_timestamp": -1,
89
+ "stable": {
90
+ "stable_level": 0,
91
+ "time_range": {
92
+ "start": 0,
93
+ "duration": 0
94
+ },
95
+ "matrix_path": ""
96
+ },
97
+ "aigc_history_id": ""
98
+ }