@lemoncat7/dsh-partner 2.8.0 → 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 (793) 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.1.md +11 -0
  6. package/docs/releases/2.8.2.md +7 -0
  7. package/lib/agent-runtime.d.ts +7 -0
  8. package/lib/agent-runtime.d.ts.map +1 -1
  9. package/lib/agent-runtime.js +110 -32
  10. package/lib/agent-runtime.js.map +1 -1
  11. package/lib/api.js +28 -6
  12. package/lib/api.js.map +1 -1
  13. package/lib/autonomy.d.ts.map +1 -1
  14. package/lib/autonomy.js +5 -0
  15. package/lib/autonomy.js.map +1 -1
  16. package/lib/channel-message.d.ts +2 -0
  17. package/lib/channel-message.d.ts.map +1 -1
  18. package/lib/channel-message.js.map +1 -1
  19. package/lib/channels/manager.d.ts.map +1 -1
  20. package/lib/channels/manager.js +4 -3
  21. package/lib/channels/manager.js.map +1 -1
  22. package/lib/channels/notification-delivery.d.ts.map +1 -1
  23. package/lib/channels/notification-delivery.js +10 -0
  24. package/lib/channels/notification-delivery.js.map +1 -1
  25. package/lib/channels/weixin/connect.d.ts.map +1 -1
  26. package/lib/client-api.d.ts +7 -2
  27. package/lib/client-api.d.ts.map +1 -1
  28. package/lib/client-api.js +8 -1
  29. package/lib/client-api.js.map +1 -1
  30. package/lib/client.d.ts.map +1 -1
  31. package/lib/client.js +2115 -1884
  32. package/lib/client.js.map +4 -4
  33. package/lib/collaboration/composition.js +1 -1
  34. package/lib/collaboration/composition.js.map +1 -1
  35. package/lib/concern-attention.d.ts +19 -0
  36. package/lib/concern-attention.d.ts.map +1 -0
  37. package/lib/concern-attention.js +36 -0
  38. package/lib/concern-attention.js.map +1 -0
  39. package/lib/concern-domain.d.ts +7 -1
  40. package/lib/concern-domain.d.ts.map +1 -1
  41. package/lib/concern-domain.js +4 -0
  42. package/lib/concern-domain.js.map +1 -1
  43. package/lib/concern-execution-notes.d.ts +18 -0
  44. package/lib/concern-execution-notes.d.ts.map +1 -0
  45. package/lib/concern-execution-notes.js +41 -0
  46. package/lib/concern-execution-notes.js.map +1 -0
  47. package/lib/concern-execution-receipt.d.ts +4 -0
  48. package/lib/concern-execution-receipt.d.ts.map +1 -0
  49. package/lib/concern-execution-receipt.js +28 -0
  50. package/lib/concern-execution-receipt.js.map +1 -0
  51. package/lib/concern-execution.d.ts +30 -0
  52. package/lib/concern-execution.d.ts.map +1 -0
  53. package/lib/concern-execution.js +86 -0
  54. package/lib/concern-execution.js.map +1 -0
  55. package/lib/concern-management-tool.d.ts.map +1 -1
  56. package/lib/concern-management-tool.js +21 -19
  57. package/lib/concern-management-tool.js.map +1 -1
  58. package/lib/concern-note-source.d.ts +7 -0
  59. package/lib/concern-note-source.d.ts.map +1 -0
  60. package/lib/concern-note-source.js +25 -0
  61. package/lib/concern-note-source.js.map +1 -0
  62. package/lib/concern-resources.d.ts +27 -0
  63. package/lib/concern-resources.d.ts.map +1 -0
  64. package/lib/concern-resources.js +36 -0
  65. package/lib/concern-resources.js.map +1 -0
  66. package/lib/concern-sources.d.ts +1 -1
  67. package/lib/concern-sources.d.ts.map +1 -1
  68. package/lib/concern-store.d.ts +9 -1
  69. package/lib/concern-store.d.ts.map +1 -1
  70. package/lib/concern-store.js +111 -34
  71. package/lib/concern-store.js.map +1 -1
  72. package/lib/concern-tool.d.ts +1 -0
  73. package/lib/concern-tool.d.ts.map +1 -1
  74. package/lib/concern-tool.js +8 -4
  75. package/lib/concern-tool.js.map +1 -1
  76. package/lib/decision/conversation.d.ts +11 -0
  77. package/lib/decision/conversation.d.ts.map +1 -0
  78. package/lib/decision/conversation.js +52 -0
  79. package/lib/decision/conversation.js.map +1 -0
  80. package/lib/decision/events.d.ts +16 -0
  81. package/lib/decision/events.d.ts.map +1 -0
  82. package/lib/decision/events.js +9 -0
  83. package/lib/decision/events.js.map +1 -0
  84. package/lib/domain.d.ts +2 -0
  85. package/lib/domain.d.ts.map +1 -1
  86. package/lib/domain.js.map +1 -1
  87. package/lib/heartbeat.d.ts +12 -10
  88. package/lib/heartbeat.d.ts.map +1 -1
  89. package/lib/heartbeat.js +54 -26
  90. package/lib/heartbeat.js.map +1 -1
  91. package/lib/index.d.ts.map +1 -1
  92. package/lib/index.js +3 -0
  93. package/lib/index.js.map +1 -1
  94. package/lib/memory-prompt-context.js +1 -0
  95. package/lib/memory-prompt-context.js.map +1 -1
  96. package/lib/memory-reflection.js +1 -1
  97. package/lib/observation-contract.d.ts +9 -0
  98. package/lib/observation-contract.d.ts.map +1 -0
  99. package/lib/observation-contract.js +19 -0
  100. package/lib/observation-contract.js.map +1 -0
  101. package/lib/observation-executor.d.ts +5 -0
  102. package/lib/observation-executor.d.ts.map +1 -1
  103. package/lib/observation-executor.js +17 -1
  104. package/lib/observation-executor.js.map +1 -1
  105. package/lib/observation-loop.d.ts +5 -0
  106. package/lib/observation-loop.d.ts.map +1 -1
  107. package/lib/observation-loop.js +36 -3
  108. package/lib/observation-loop.js.map +1 -1
  109. package/lib/observation-sources.d.ts +14 -0
  110. package/lib/observation-sources.d.ts.map +1 -0
  111. package/lib/observation-sources.js +12 -0
  112. package/lib/observation-sources.js.map +1 -0
  113. package/lib/requirements/service.d.ts.map +1 -1
  114. package/lib/requirements/service.js +2 -0
  115. package/lib/requirements/service.js.map +1 -1
  116. package/lib/requirements/worker.d.ts.map +1 -1
  117. package/lib/requirements/worker.js +1 -0
  118. package/lib/requirements/worker.js.map +1 -1
  119. package/lib/scheduler/continuations.d.ts.map +1 -1
  120. package/lib/scheduler/continuations.js +17 -3
  121. package/lib/scheduler/continuations.js.map +1 -1
  122. package/lib/skills/builtin.d.ts.map +1 -1
  123. package/lib/skills/builtin.js +2 -0
  124. package/lib/skills/builtin.js.map +1 -1
  125. package/lib/skills/drama-builtin.d.ts.map +1 -1
  126. package/lib/skills/drama-builtin.js +13 -1
  127. package/lib/skills/drama-builtin.js.map +1 -1
  128. package/lib/skills/story-builtins.d.ts +3 -0
  129. package/lib/skills/story-builtins.d.ts.map +1 -0
  130. package/lib/skills/story-builtins.js +72 -0
  131. package/lib/skills/story-builtins.js.map +1 -0
  132. package/lib/skills/viora-canvas-builtin.d.ts.map +1 -1
  133. package/lib/skills/viora-canvas-builtin.js +12 -1
  134. package/lib/skills/viora-canvas-builtin.js.map +1 -1
  135. package/lib/snapshot-cache.d.ts +7 -0
  136. package/lib/snapshot-cache.d.ts.map +1 -0
  137. package/lib/snapshot-cache.js +26 -0
  138. package/lib/snapshot-cache.js.map +1 -0
  139. package/lib/tasks/result.js +1 -1
  140. package/lib/tasks/result.js.map +1 -1
  141. package/lib/ui/memory/concern-board.d.ts +1 -1
  142. package/lib/ui/memory/concern-board.d.ts.map +1 -1
  143. package/lib/ui/memory/concern-board.js +12 -6
  144. package/lib/ui/memory/concern-board.js.map +1 -1
  145. package/lib/ui/memory/concern-deletion.d.ts.map +1 -1
  146. package/lib/ui/memory/concern-deletion.js +2 -1
  147. package/lib/ui/memory/concern-deletion.js.map +1 -1
  148. package/lib/ui/memory/concern-editor.d.ts.map +1 -1
  149. package/lib/ui/memory/concern-editor.js +5 -3
  150. package/lib/ui/memory/concern-editor.js.map +1 -1
  151. package/lib/ui/memory/concern-execution-fields.d.ts +7 -0
  152. package/lib/ui/memory/concern-execution-fields.d.ts.map +1 -0
  153. package/lib/ui/memory/concern-execution-fields.js +8 -0
  154. package/lib/ui/memory/concern-execution-fields.js.map +1 -0
  155. package/lib/ui/memory/concern-feedback.d.ts +15 -0
  156. package/lib/ui/memory/concern-feedback.d.ts.map +1 -0
  157. package/lib/ui/memory/concern-feedback.js +13 -0
  158. package/lib/ui/memory/concern-feedback.js.map +1 -0
  159. package/lib/ui/memory/concern-panel.d.ts.map +1 -1
  160. package/lib/ui/memory/concern-panel.js +11 -3
  161. package/lib/ui/memory/concern-panel.js.map +1 -1
  162. package/package.json +6 -1
  163. package/resources/skills/novel-game-creation/manifest.json +393 -0
  164. package/resources/skills/novel-game-creation/upstream/LICENSE +21 -0
  165. package/resources/skills/novel-game-creation/upstream/README.md +420 -0
  166. package/resources/skills/novel-game-creation/upstream/README_ZH.md +421 -0
  167. package/resources/skills/novel-game-creation/upstream/VERSION +1 -0
  168. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/BUILD_BRIEF.md +219 -0
  169. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/.vercelignore +3 -0
  170. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/RUN.md +138 -0
  171. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
  172. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
  173. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
  174. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
  175. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
  176. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
  177. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
  178. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
  179. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
  180. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
  181. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
  182. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
  183. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
  184. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
  185. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
  186. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
  187. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
  188. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
  189. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
  190. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
  191. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
  192. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
  193. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
  194. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
  195. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
  196. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
  197. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
  198. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
  199. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
  200. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
  201. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
  202. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
  203. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
  204. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
  205. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
  206. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
  207. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
  208. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
  209. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
  210. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
  211. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
  212. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/new-guofeng.css +1494 -0
  213. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/css/style.css +2508 -0
  214. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/index.html +18 -0
  215. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/assets.js +147 -0
  216. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/audio.js +332 -0
  217. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/data.js +7470 -0
  218. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/engine.js +13066 -0
  219. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/main.js +3051 -0
  220. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/js/text.js +32 -0
  221. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/package.json +11 -0
  222. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/app/vercel.json +23 -0
  223. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/build/art/generated-art.json +161 -0
  224. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/example.json +12 -0
  225. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/README.md +26 -0
  226. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/playable-model.json +99 -0
  227. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verification.json +41 -0
  228. package/resources/skills/novel-game-creation/upstream/examples/jin-ping-mei/qa/verify_playable_model.mjs +152 -0
  229. package/resources/skills/novel-game-creation/upstream/manifest.json +498 -0
  230. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/SKILL.md +47 -0
  231. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/agents/openai.yaml +4 -0
  232. package/resources/skills/novel-game-creation/upstream/skills/game-art-direction/references/art-direction-method.md +40 -0
  233. package/resources/skills/novel-game-creation/upstream/skills/game-build/SKILL.md +66 -0
  234. package/resources/skills/novel-game-creation/upstream/skills/game-build/agents/openai.yaml +4 -0
  235. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/blender-asset-workflow.md +24 -0
  236. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/build-brief-contract.md +72 -0
  237. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/generative-media-pipeline.md +25 -0
  238. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/playable-model-contract.md +46 -0
  239. package/resources/skills/novel-game-creation/upstream/skills/game-build/references/tts-production-contract.md +23 -0
  240. package/resources/skills/novel-game-creation/upstream/skills/game-concept/SKILL.md +54 -0
  241. package/resources/skills/novel-game-creation/upstream/skills/game-concept/agents/openai.yaml +4 -0
  242. package/resources/skills/novel-game-creation/upstream/skills/game-concept/references/concept-method.md +47 -0
  243. package/resources/skills/novel-game-creation/upstream/skills/game-qa/SKILL.md +39 -0
  244. package/resources/skills/novel-game-creation/upstream/skills/game-qa/agents/openai.yaml +4 -0
  245. package/resources/skills/novel-game-creation/upstream/skills/game-qa/references/qa-contract.md +66 -0
  246. package/resources/skills/novel-game-creation/upstream/skills/game-qa/references/test-design-method.md +49 -0
  247. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/SKILL.md +50 -0
  248. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/agents/openai.yaml +4 -0
  249. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/narrative-design-method.md +35 -0
  250. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/numeric-design-method.md +22 -0
  251. package/resources/skills/novel-game-creation/upstream/skills/game-world-design/references/world-design-method.md +57 -0
  252. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/SKILL.md +68 -0
  253. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/agents/openai.yaml +4 -0
  254. package/resources/skills/novel-game-creation/upstream/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
  255. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/SKILL.md +54 -0
  256. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/agents/openai.yaml +4 -0
  257. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/references/intake-method.md +50 -0
  258. package/resources/skills/novel-game-creation/upstream/skills/novel-to-game/references/pipeline-contract.md +60 -0
  259. package/resources/skills/story-creation/manifest.json +1477 -0
  260. package/resources/skills/story-creation/upstream/LICENSE.upstream +21 -0
  261. package/resources/skills/story-creation/upstream/manifest.json +1861 -0
  262. package/resources/skills/story-creation/upstream/roles/chapter-extractor.md +254 -0
  263. package/resources/skills/story-creation/upstream/roles/character-designer.md +168 -0
  264. package/resources/skills/story-creation/upstream/roles/consistency-checker.md +192 -0
  265. package/resources/skills/story-creation/upstream/roles/narrative-writer.md +105 -0
  266. package/resources/skills/story-creation/upstream/roles/story-architect.md +139 -0
  267. package/resources/skills/story-creation/upstream/roles/story-explorer.md +262 -0
  268. package/resources/skills/story-creation/upstream/roles/story-researcher.md +303 -0
  269. package/resources/skills/story-creation/upstream/skills/browser-cdp/SKILL.md +175 -0
  270. package/resources/skills/story-creation/upstream/skills/story/SKILL.md +129 -0
  271. package/resources/skills/story-creation/upstream/skills/story/VERSION +1 -0
  272. package/resources/skills/story-creation/upstream/skills/story/references/author-memory-maintenance.md +75 -0
  273. package/resources/skills/story-creation/upstream/skills/story/references/author-memory.md +117 -0
  274. package/resources/skills/story-creation/upstream/skills/story/scripts/author_memory_commit.py +1635 -0
  275. package/resources/skills/story-creation/upstream/skills/story-cover/SKILL.md +336 -0
  276. package/resources/skills/story-creation/upstream/skills/story-cover/references/cover-styles.md +210 -0
  277. package/resources/skills/story-creation/upstream/skills/story-deslop/SKILL.md +274 -0
  278. package/resources/skills/story-creation/upstream/skills/story-deslop/references/agent-calls.md +5 -0
  279. package/resources/skills/story-creation/upstream/skills/story-deslop/references/anti-ai-writing.md +556 -0
  280. package/resources/skills/story-creation/upstream/skills/story-deslop/references/author-memory-maintenance.md +75 -0
  281. package/resources/skills/story-creation/upstream/skills/story-deslop/references/author-memory.md +117 -0
  282. package/resources/skills/story-creation/upstream/skills/story-deslop/references/banned-words.md +151 -0
  283. package/resources/skills/story-creation/upstream/skills/story-deslop/references/deslop-gates.md +171 -0
  284. package/resources/skills/story-creation/upstream/skills/story-deslop/references/style-resolution.md +27 -0
  285. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/author_memory_commit.py +1635 -0
  286. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/check-ai-patterns.js +1586 -0
  287. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/check-degeneration.js +349 -0
  288. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/normalize-punctuation.js +415 -0
  289. package/resources/skills/story-creation/upstream/skills/story-deslop/scripts/style-whitelist.js +39 -0
  290. package/resources/skills/story-creation/upstream/skills/story-import/SKILL.md +127 -0
  291. package/resources/skills/story-creation/upstream/skills/story-import/references/character-state-reverse.md +82 -0
  292. package/resources/skills/story-creation/upstream/skills/story-import/references/deep-analysis.md +47 -0
  293. package/resources/skills/story-creation/upstream/skills/story-import/references/format-and-structure.md +168 -0
  294. package/resources/skills/story-creation/upstream/skills/story-import/references/import-report.md +64 -0
  295. package/resources/skills/story-creation/upstream/skills/story-import/references/import-special-cases.md +34 -0
  296. package/resources/skills/story-creation/upstream/skills/story-import/references/import-tracking.md +95 -0
  297. package/resources/skills/story-creation/upstream/skills/story-import/references/length-routing.md +134 -0
  298. package/resources/skills/story-creation/upstream/skills/story-import/references/outline-reverse-rules.md +79 -0
  299. package/resources/skills/story-creation/upstream/skills/story-import/references/outline-reverse.md +24 -0
  300. package/resources/skills/story-creation/upstream/skills/story-import/references/state-tracking.md +43 -0
  301. package/resources/skills/story-creation/upstream/skills/story-import/references/structure-mapping-long.md +448 -0
  302. package/resources/skills/story-creation/upstream/skills/story-import/references/structure-mapping-short.md +187 -0
  303. package/resources/skills/story-creation/upstream/skills/story-import/references/tracking-initialization.md +31 -0
  304. package/resources/skills/story-creation/upstream/skills/story-import/references/tracking-transaction.md +146 -0
  305. package/resources/skills/story-creation/upstream/skills/story-import/scripts/build_outline_brief.py +332 -0
  306. package/resources/skills/story-creation/upstream/skills/story-import/scripts/check-outline-contract.js +520 -0
  307. package/resources/skills/story-creation/upstream/skills/story-import/scripts/tracking_commit.py +1691 -0
  308. package/resources/skills/story-creation/upstream/skills/story-import/scripts/wordcount_core.py +405 -0
  309. package/resources/skills/story-creation/upstream/skills/story-long-analyze/SKILL.md +140 -0
  310. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/author-facing.md +252 -0
  311. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
  312. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/final-checks.md +19 -0
  313. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/index-rebuild.md +11 -0
  314. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/inspiration-library.md +105 -0
  315. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/pipeline-ops.md +154 -0
  316. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
  317. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
  318. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage2-extraction.md +229 -0
  319. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
  320. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
  321. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/stage5-report.md +33 -0
  322. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/style-profile-generator.md +76 -0
  323. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
  324. package/resources/skills/story-creation/upstream/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
  325. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
  326. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
  327. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
  328. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
  329. package/resources/skills/story-creation/upstream/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
  330. package/resources/skills/story-creation/upstream/skills/story-long-scan/SKILL.md +193 -0
  331. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/genre-trends.md +197 -0
  332. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-ciweimao.md +19 -0
  333. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-fanqie.md +45 -0
  334. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-jjwxc.md +28 -0
  335. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-qidian.md +35 -0
  336. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/platform-qimao.md +27 -0
  337. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/publishing-guide.md +114 -0
  338. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/reader-profiling.md +105 -0
  339. package/resources/skills/story-creation/upstream/skills/story-long-scan/references/topic-decision.md +82 -0
  340. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/aggregate-rank.js +682 -0
  341. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/cdp-utils.js +242 -0
  342. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/ciweimao-rank-scraper.js +240 -0
  343. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/fanqie-rank-scraper.js +658 -0
  344. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/jjwxc-rank-scraper.js +400 -0
  345. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/qidian-rank-scraper.js +592 -0
  346. package/resources/skills/story-creation/upstream/skills/story-long-scan/scripts/qimao-rank-scraper.js +435 -0
  347. package/resources/skills/story-creation/upstream/skills/story-long-write/SKILL.md +136 -0
  348. package/resources/skills/story-creation/upstream/skills/story-long-write/references/agent-calls.md +47 -0
  349. package/resources/skills/story-creation/upstream/skills/story-long-write/references/anti-ai-writing.md +556 -0
  350. package/resources/skills/story-creation/upstream/skills/story-long-write/references/artifact-protocols.md +183 -0
  351. package/resources/skills/story-creation/upstream/skills/story-long-write/references/author-memory-maintenance.md +75 -0
  352. package/resources/skills/story-creation/upstream/skills/story-long-write/references/author-memory.md +117 -0
  353. package/resources/skills/story-creation/upstream/skills/story-long-write/references/banned-words.md +151 -0
  354. package/resources/skills/story-creation/upstream/skills/story-long-write/references/benchmark-recall.md +16 -0
  355. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-basics.md +445 -0
  356. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-design-methods.md +428 -0
  357. package/resources/skills/story-creation/upstream/skills/story-long-write/references/character-relations.md +433 -0
  358. package/resources/skills/story-creation/upstream/skills/story-long-write/references/commercial-core-methods.md +502 -0
  359. package/resources/skills/story-creation/upstream/skills/story-long-write/references/cross-book-recall.md +88 -0
  360. package/resources/skills/story-creation/upstream/skills/story-long-write/references/deslop-gates.md +171 -0
  361. package/resources/skills/story-creation/upstream/skills/story-long-write/references/dialogue-mastery.md +288 -0
  362. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotion-on-page.md +116 -0
  363. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotional-arc-design.md +313 -0
  364. package/resources/skills/story-creation/upstream/skills/story-long-write/references/emotional-methods.md +209 -0
  365. package/resources/skills/story-creation/upstream/skills/story-long-write/references/female-audience-writing.md +188 -0
  366. 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
  367. 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
  368. 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
  369. 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
  370. 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
  371. 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
  372. 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
  373. 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
  374. 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
  375. 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
  376. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  377. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  378. 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
  379. 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
  380. 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
  381. 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
  382. 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
  383. 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
  384. 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
  385. 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
  386. 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
  387. 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
  388. 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
  389. 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
  390. 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
  391. 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
  392. 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
  393. 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
  394. 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
  395. 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
  396. 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
  397. 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
  398. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-prose-cards.md +91 -0
  399. package/resources/skills/story-creation/upstream/skills/story-long-write/references/genre-readers.md +235 -0
  400. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-chapter-hooks.md +225 -0
  401. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-chapter-quality.md +177 -0
  402. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-format.md +36 -0
  403. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-genre-catalog.md +394 -0
  404. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-genre-mechanics.md +415 -0
  405. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-reversal.md +335 -0
  406. package/resources/skills/story-creation/upstream/skills/story-long-write/references/long-suspense.md +352 -0
  407. package/resources/skills/story-creation/upstream/skills/story-long-write/references/opening-design.md +349 -0
  408. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-conflict.md +457 -0
  409. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-methods.md +287 -0
  410. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-rhythm.md +389 -0
  411. package/resources/skills/story-creation/upstream/skills/story-long-write/references/outline-structure-theory.md +273 -0
  412. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-core-methods.md +522 -0
  413. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-emotion-system.md +354 -0
  414. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-frameworks.md +711 -0
  415. package/resources/skills/story-creation/upstream/skills/story-long-write/references/plot-special-topics.md +622 -0
  416. package/resources/skills/story-creation/upstream/skills/story-long-write/references/project-files.md +114 -0
  417. package/resources/skills/story-creation/upstream/skills/story-long-write/references/reader-contract-and-progression.md +117 -0
  418. package/resources/skills/story-creation/upstream/skills/story-long-write/references/reference-index.md +86 -0
  419. package/resources/skills/story-creation/upstream/skills/story-long-write/references/stop-and-fix.md +9 -0
  420. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-combat-face.md +352 -0
  421. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-craft.md +327 -0
  422. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-genre-modules.md +510 -0
  423. package/resources/skills/story-creation/upstream/skills/story-long-write/references/style-resolution.md +27 -0
  424. package/resources/skills/story-creation/upstream/skills/story-long-write/references/tracking-initialization.md +31 -0
  425. package/resources/skills/story-creation/upstream/skills/story-long-write/references/tracking-transaction.md +146 -0
  426. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-chapter.md +104 -0
  427. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-daily.md +75 -0
  428. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-outline.md +157 -0
  429. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-revision.md +89 -0
  430. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-setup.md +170 -0
  431. package/resources/skills/story-creation/upstream/skills/story-long-write/references/workflow-volume.md +142 -0
  432. package/resources/skills/story-creation/upstream/skills/story-long-write/references/writer-prompt-fallback.md +24 -0
  433. package/resources/skills/story-creation/upstream/skills/story-long-write/references/writing-craft.md +442 -0
  434. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/author_memory_commit.py +1635 -0
  435. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/build_architect_brief.py +260 -0
  436. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/build_writer_prompt.py +611 -0
  437. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-ai-patterns.js +1586 -0
  438. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-degeneration.js +349 -0
  439. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-outline-contract.js +520 -0
  440. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/check-outline-copy.js +313 -0
  441. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/normalize-punctuation.js +415 -0
  442. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/outline_view.py +286 -0
  443. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/storyctl.py +561 -0
  444. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/style-whitelist.js +39 -0
  445. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/tracking_commit.py +1691 -0
  446. package/resources/skills/story-creation/upstream/skills/story-long-write/scripts/wordcount_core.py +405 -0
  447. package/resources/skills/story-creation/upstream/skills/story-review/SKILL.md +231 -0
  448. package/resources/skills/story-creation/upstream/skills/story-review/references/agent-prompts.md +184 -0
  449. package/resources/skills/story-creation/upstream/skills/story-review/references/anti-ai-writing.md +556 -0
  450. package/resources/skills/story-creation/upstream/skills/story-review/references/author-memory-maintenance.md +75 -0
  451. package/resources/skills/story-creation/upstream/skills/story-review/references/author-memory.md +117 -0
  452. package/resources/skills/story-creation/upstream/skills/story-review/references/banned-words.md +151 -0
  453. package/resources/skills/story-creation/upstream/skills/story-review/references/batch-review.md +19 -0
  454. package/resources/skills/story-creation/upstream/skills/story-review/references/character-relations.md +433 -0
  455. package/resources/skills/story-creation/upstream/skills/story-review/references/dialogue-mastery.md +288 -0
  456. package/resources/skills/story-creation/upstream/skills/story-review/references/plot-core-methods.md +522 -0
  457. package/resources/skills/story-creation/upstream/skills/story-review/references/quality-rubric.md +55 -0
  458. package/resources/skills/story-creation/upstream/skills/story-review/references/review-quality.md +246 -0
  459. package/resources/skills/story-creation/upstream/skills/story-review/references/review-tracking.md +10 -0
  460. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/fanqie.md +18 -0
  461. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/qidian.md +19 -0
  462. package/resources/skills/story-creation/upstream/skills/story-review/references/rubrics/zhihu.md +20 -0
  463. package/resources/skills/story-creation/upstream/skills/story-review/references/solo.md +52 -0
  464. package/resources/skills/story-creation/upstream/skills/story-review/references/style-resolution.md +27 -0
  465. package/resources/skills/story-creation/upstream/skills/story-review/references/tracking-initialization.md +31 -0
  466. package/resources/skills/story-creation/upstream/skills/story-review/references/tracking-transaction.md +146 -0
  467. package/resources/skills/story-creation/upstream/skills/story-review/scripts/author_memory_commit.py +1635 -0
  468. package/resources/skills/story-creation/upstream/skills/story-review/scripts/check-ai-patterns.js +1586 -0
  469. package/resources/skills/story-creation/upstream/skills/story-review/scripts/check-degeneration.js +349 -0
  470. package/resources/skills/story-creation/upstream/skills/story-review/scripts/normalize-punctuation.js +415 -0
  471. package/resources/skills/story-creation/upstream/skills/story-review/scripts/style-whitelist.js +39 -0
  472. package/resources/skills/story-creation/upstream/skills/story-review/scripts/tracking_commit.py +1691 -0
  473. package/resources/skills/story-creation/upstream/skills/story-review/scripts/wordcount_core.py +405 -0
  474. package/resources/skills/story-creation/upstream/skills/story-setup/SKILL.md +165 -0
  475. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/agent-quality.md +72 -0
  476. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
  477. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/anti-ai-writing.md +556 -0
  478. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/banned-words.md +151 -0
  479. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
  480. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-basics.md +445 -0
  481. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
  482. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/character-relations.md +433 -0
  483. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/deslop-gates.md +171 -0
  484. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/dialogue-mastery.md +288 -0
  485. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
  486. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/emotional-arc-design.md +313 -0
  487. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/format-and-structure.md +168 -0
  488. 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
  489. 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
  490. 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
  491. 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
  492. 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
  493. 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
  494. 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
  495. 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
  496. 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
  497. 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
  498. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  499. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  500. 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
  501. 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
  502. 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
  503. 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
  504. 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
  505. 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
  506. 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
  507. 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
  508. 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
  509. 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
  510. 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
  511. 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
  512. 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
  513. 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
  514. 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
  515. 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
  516. 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
  517. 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
  518. 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
  519. 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
  520. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
  521. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/genre-readers.md +235 -0
  522. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-chapter-hooks.md +225 -0
  523. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
  524. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-genre-catalog.md +394 -0
  525. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-genre-mechanics.md +415 -0
  526. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-quality.md +42 -0
  527. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-reversal.md +335 -0
  528. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/long-suspense.md +352 -0
  529. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/opening-design.md +349 -0
  530. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
  531. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-methods.md +287 -0
  532. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
  533. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
  534. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-chapter-hooks.md +225 -0
  535. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-emotional-methods.md +179 -0
  536. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-genre-formulas.md +417 -0
  537. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-paragraph-hooks.md +146 -0
  538. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-quality.md +39 -0
  539. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-reversal.md +355 -0
  540. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/short-suspense.md +352 -0
  541. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-combat-face.md +352 -0
  542. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
  543. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/style-resolution.md +27 -0
  544. package/resources/skills/story-creation/upstream/skills/story-setup/references/agent-references/writing-craft.md +442 -0
  545. package/resources/skills/story-creation/upstream/skills/story-setup/references/diagnostics.md +38 -0
  546. package/resources/skills/story-creation/upstream/skills/story-short-analyze/SKILL.md +224 -0
  547. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-basics.md +453 -0
  548. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-design.md +438 -0
  549. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-character-relations.md +395 -0
  550. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-method.md +42 -0
  551. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-paragraph-hooks.md +146 -0
  552. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-reader-profile.md +245 -0
  553. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-report-style.md +45 -0
  554. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
  555. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
  556. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
  557. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
  558. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
  559. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/analysis-writing-techniques.md +477 -0
  560. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
  561. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/optional-modules.md +97 -0
  562. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/output-contract.md +127 -0
  563. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/quality-checklist.md +80 -0
  564. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/real-market-data.md +90 -0
  565. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/source-story-quality.md +221 -0
  566. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
  567. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/stage4-6-reversal-summary.md +611 -0
  568. package/resources/skills/story-creation/upstream/skills/story-short-analyze/references/zhihu-style.md +54 -0
  569. package/resources/skills/story-creation/upstream/skills/story-short-scan/SKILL.md +182 -0
  570. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/manual-rank-input.md +36 -0
  571. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/platform-dianzhong.md +24 -0
  572. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/platform-heiyan.md +21 -0
  573. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/real-market-data.md +90 -0
  574. package/resources/skills/story-creation/upstream/skills/story-short-scan/references/topic-match.md +38 -0
  575. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/aggregate-rank.js +682 -0
  576. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/cdp-utils.js +242 -0
  577. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/dz-browse-scraper.js +232 -0
  578. package/resources/skills/story-creation/upstream/skills/story-short-scan/scripts/heiyan-booklist-scraper.js +345 -0
  579. package/resources/skills/story-creation/upstream/skills/story-short-write/SKILL.md +136 -0
  580. package/resources/skills/story-creation/upstream/skills/story-short-write/references/agent-calls.md +13 -0
  581. package/resources/skills/story-creation/upstream/skills/story-short-write/references/author-memory-maintenance.md +75 -0
  582. package/resources/skills/story-creation/upstream/skills/story-short-write/references/author-memory.md +117 -0
  583. package/resources/skills/story-creation/upstream/skills/story-short-write/references/banned-words.md +151 -0
  584. package/resources/skills/story-creation/upstream/skills/story-short-write/references/benchmark-recall.md +40 -0
  585. package/resources/skills/story-creation/upstream/skills/story-short-write/references/cross-book-recall.md +62 -0
  586. package/resources/skills/story-creation/upstream/skills/story-short-write/references/dialogue-mastery.md +288 -0
  587. package/resources/skills/story-creation/upstream/skills/story-short-write/references/emotional-methods.md +179 -0
  588. 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
  589. 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
  590. 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
  591. 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
  592. 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
  593. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
  594. 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
  595. 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
  596. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
  597. 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
  598. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-writing-formulas.md +417 -0
  599. package/resources/skills/story-creation/upstream/skills/story-short-write/references/genre-writing-techniques.md +490 -0
  600. package/resources/skills/story-creation/upstream/skills/story-short-write/references/hooks-chapter.md +225 -0
  601. package/resources/skills/story-creation/upstream/skills/story-short-write/references/hooks-paragraph.md +146 -0
  602. package/resources/skills/story-creation/upstream/skills/story-short-write/references/output-contract.md +127 -0
  603. package/resources/skills/story-creation/upstream/skills/story-short-write/references/reference-index.md +23 -0
  604. package/resources/skills/story-creation/upstream/skills/story-short-write/references/scene-craft.md +40 -0
  605. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-craft.md +147 -0
  606. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-deslop.md +133 -0
  607. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-format.md +199 -0
  608. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-prose-quality.md +224 -0
  609. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-reversal.md +355 -0
  610. package/resources/skills/story-creation/upstream/skills/story-short-write/references/short-suspense.md +352 -0
  611. package/resources/skills/story-creation/upstream/skills/story-short-write/references/style-resolution.md +27 -0
  612. package/resources/skills/story-creation/upstream/skills/story-short-write/references/submission-craft.md +35 -0
  613. package/resources/skills/story-creation/upstream/skills/story-short-write/references/villain-and-reveal.md +153 -0
  614. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-design.md +85 -0
  615. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-draft.md +116 -0
  616. package/resources/skills/story-creation/upstream/skills/story-short-write/references/workflow-revision.md +99 -0
  617. package/resources/skills/story-creation/upstream/skills/story-short-write/references/writing-workflow.md +50 -0
  618. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/author_memory_commit.py +1635 -0
  619. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-ai-patterns.js +1586 -0
  620. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-degeneration.js +349 -0
  621. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-delivery-contract.js +241 -0
  622. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-outline-copy.js +313 -0
  623. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
  624. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/normalize-punctuation.js +415 -0
  625. package/resources/skills/story-creation/upstream/skills/story-short-write/scripts/style-whitelist.js +39 -0
  626. package/resources/skills/video-recap-production/manifest.json +673 -0
  627. package/resources/skills/video-recap-production/upstream/CHANGELOG.md +371 -0
  628. package/resources/skills/video-recap-production/upstream/LICENSE +21 -0
  629. package/resources/skills/video-recap-production/upstream/README.en.md +468 -0
  630. package/resources/skills/video-recap-production/upstream/README.md +459 -0
  631. package/resources/skills/video-recap-production/upstream/manifest.json +839 -0
  632. package/resources/skills/video-recap-production/upstream/skills/video-assemble/SKILL.md +112 -0
  633. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/audio-modes.md +63 -0
  634. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/explicit-audio-mix.md +75 -0
  635. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/foreground-compose.md +118 -0
  636. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
  637. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/SOURCE.md +15 -0
  638. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
  639. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
  640. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
  641. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
  642. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
  643. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
  644. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
  645. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
  646. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
  647. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
  648. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
  649. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/narration-adoption.md +103 -0
  650. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/packaging.md +45 -0
  651. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/pair-media.md +74 -0
  652. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/source-score.md +147 -0
  653. package/resources/skills/video-recap-production/upstream/skills/video-assemble/references/subtitle-track.md +202 -0
  654. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/__init__.py +1 -0
  655. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
  656. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
  657. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
  658. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
  659. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
  660. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/artifacts.py +47 -0
  661. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assemble.py +591 -0
  662. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assemble_constants.py +51 -0
  663. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assembly_contract.py +318 -0
  664. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/assembly_settings.py +138 -0
  665. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/audio_automation.py +195 -0
  666. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/audio_mix.py +465 -0
  667. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/compose_foreground.py +293 -0
  668. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/export_jianying.py +254 -0
  669. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/__init__.py +1 -0
  670. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/builders.py +718 -0
  671. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/model.py +105 -0
  672. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/optional.py +23 -0
  673. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/schema.py +53 -0
  674. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/templates.py +37 -0
  675. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/timeline_contract.py +223 -0
  676. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/tracks.py +72 -0
  677. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/jianying/writer.py +383 -0
  678. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/lib.py +218 -0
  679. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/media.py +190 -0
  680. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/narration_audio.py +413 -0
  681. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/packaging.py +122 -0
  682. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/pair_media.py +216 -0
  683. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/render_preflight.py +33 -0
  684. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/source_score.py +469 -0
  685. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/source_subtitles.py +423 -0
  686. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
  687. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/core.py +330 -0
  688. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/render.py +82 -0
  689. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/track.py +324 -0
  690. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
  691. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/timeline.py +217 -0
  692. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/timeline_emit.py +167 -0
  693. package/resources/skills/video-recap-production/upstream/skills/video-assemble/scripts/visual_render.py +448 -0
  694. package/resources/skills/video-recap-production/upstream/skills/video-cut/SKILL.md +108 -0
  695. package/resources/skills/video-recap-production/upstream/skills/video-cut/references/shot-review.md +50 -0
  696. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut.py +41 -0
  697. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_cli.py +308 -0
  698. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_contract.py +424 -0
  699. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/cut_render.py +304 -0
  700. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/lib.py +114 -0
  701. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/media_geometry.py +238 -0
  702. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/narration_mapping.py +71 -0
  703. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/narrative_selection.py +244 -0
  704. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/sentence_boundaries.py +585 -0
  705. package/resources/skills/video-recap-production/upstream/skills/video-cut/scripts/shot_review.py +357 -0
  706. package/resources/skills/video-recap-production/upstream/skills/video-recap/SKILL.md +260 -0
  707. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/audio-routing.md +126 -0
  708. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/config-playbook.md +65 -0
  709. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/data-schema.md +545 -0
  710. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/resource-library.md +151 -0
  711. package/resources/skills/video-recap-production/upstream/skills/video-recap/references/shift-left-qc-schema.md +23 -0
  712. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/doctor.py +556 -0
  713. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/final_qc.py +527 -0
  714. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/lib.py +220 -0
  715. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/library.py +509 -0
  716. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/materials.py +406 -0
  717. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/mimo_qc.py +33 -0
  718. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/project_binding.py +286 -0
  719. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/__init__.py +1 -0
  720. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_client.py +13 -0
  721. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_contract.py +9 -0
  722. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_evidence.py +287 -0
  723. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_observations.py +175 -0
  724. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_payload.py +206 -0
  725. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_report.py +318 -0
  726. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc/mimo_runner.py +130 -0
  727. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/qc_contract.py +320 -0
  728. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap.py +9 -0
  729. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_cli.py +209 -0
  730. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_inspect.py +452 -0
  731. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_review.py +70 -0
  732. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_runner.py +696 -0
  733. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_runtime.py +260 -0
  734. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_source.py +278 -0
  735. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_stage_qc.py +160 -0
  736. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/recap_timeline.py +621 -0
  737. package/resources/skills/video-recap-production/upstream/skills/video-recap/scripts/resource_lock.py +162 -0
  738. package/resources/skills/video-recap-production/upstream/skills/video-script/SKILL.md +251 -0
  739. package/resources/skills/video-recap-production/upstream/skills/video-script/references/creative-editing-playbook.md +229 -0
  740. package/resources/skills/video-recap-production/upstream/skills/video-script/references/promotional-copy.md +68 -0
  741. package/resources/skills/video-recap-production/upstream/skills/video-script/references/research-guide.md +75 -0
  742. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/agent_text.py +301 -0
  743. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/deslop_qc.py +211 -0
  744. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/evidence_bundle.py +440 -0
  745. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/lib.py +254 -0
  746. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/narration_lint.py +707 -0
  747. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review.py +40 -0
  748. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_grounding.py +238 -0
  749. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_response.py +669 -0
  750. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/review_runner.py +186 -0
  751. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/speech_ownership.py +143 -0
  752. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/timeline_fusion.py +108 -0
  753. package/resources/skills/video-recap-production/upstream/skills/video-script/scripts/validate.py +175 -0
  754. package/resources/skills/video-recap-production/upstream/skills/video-understanding/SKILL.md +77 -0
  755. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/data-schema.md +193 -0
  756. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/prompt-templates.md +37 -0
  757. package/resources/skills/video-recap-production/upstream/skills/video-understanding/references/research-guide.md +74 -0
  758. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/agent_text.py +301 -0
  759. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/asr.py +279 -0
  760. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
  761. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/brief.py +9 -0
  762. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/__init__.py +1 -0
  763. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/builder.py +402 -0
  764. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/context.py +317 -0
  765. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/inputs.py +268 -0
  766. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/briefing/timeline.py +326 -0
  767. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/consolidate.py +596 -0
  768. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/deslop_qc.py +211 -0
  769. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/detect.py +504 -0
  770. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/extract.py +62 -0
  771. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/lib.py +419 -0
  772. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/narration_lint.py +707 -0
  773. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/speech_ownership.py +143 -0
  774. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/storyboard.py +445 -0
  775. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/timeline_fusion.py +108 -0
  776. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understand.py +9 -0
  777. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_brief.py +190 -0
  778. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_cache.py +345 -0
  779. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_runner.py +387 -0
  780. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/understanding_storyboard.py +167 -0
  781. package/resources/skills/video-recap-production/upstream/skills/video-understanding/scripts/vlm.py +674 -0
  782. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/SKILL.md +91 -0
  783. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/references/index-tts.md +31 -0
  784. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
  785. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/dub.py +623 -0
  786. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/lib.py +352 -0
  787. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/__init__.py +1 -0
  788. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/fish_audio.py +91 -0
  789. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
  790. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/tts_audio.py +102 -0
  791. package/resources/skills/video-recap-production/upstream/skills/video-voiceover/scripts/voiceover.py +771 -0
  792. package/resources/skills/viora-canvas-production/manifest.json +5 -1
  793. package/resources/skills/viora-canvas-production/references/story-handoff.md +49 -0
@@ -0,0 +1,146 @@
1
+ # 追踪状态协议
2
+
3
+ `追踪/` 使用“一个结构化权威状态 + 多个确定性派生视图”。模型只提交一份语义 JSON,不分别 `Write/Edit/echo >>` 多个追踪文件。
4
+
5
+ ## 权威层与派生层
6
+
7
+ | 层级 | 文件 | 语义 |
8
+ |---|---|---|
9
+ | 唯一权威 | `_tracking-state.json` | schema、最后提交章、导入截止章、状态修订号、上下文结构、角色/伏笔/时间线,以及已提交章节的简短字数记录 |
10
+ | 章节记录 | `逐章记录/第NNN章.md` | 本章对未来连续性有用的紧凑变化;目标 ≤1536 字节,硬上限 3072 字节;导入范围内修订写成覆盖记录 |
11
+ | 派生视图 | `上下文.md`、`角色状态/{角色名}.md`、`伏笔.md`、`时间线/作者真相.md`、`时间线/读者已知.md` | 完全从 `_tracking-state.json` 生成;禁止手改,不作为程序输入 |
12
+
13
+ Markdown 只负责给作者和 Agent 阅读,工具不再反向解析 Markdown。`check` 直接从 `_tracking-state.json` 重渲染并逐文件比较。未来“第几章揭示”的计划写在卷纲/细纲,不写成时间线既成事实。
14
+ 逐章记录只是便于人阅读的紧凑变化记录,不承诺单独无损重建全部当前状态;完整当前语义以 `_tracking-state.json` 为准。
15
+
16
+ ## 运行工具
17
+
18
+ 先按运行环境探测 Python 3 解释器(依次尝试 `python3`、`python`、`py -3`)。追踪事务脚本使用当前 skill 根目录;字数与章节闭环统一使用 `story-long-write` skill 根目录:
19
+
20
+ ```text
21
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py init --project {书项目根} --input {书项目根}/.story/work/init.json
22
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py check --project {书项目根}
23
+ {PYTHON} {当前 skill 根}/scripts/tracking_commit.py draft --project {书项目根} --chapter {N}
24
+ {PYTHON} {story-long-write skill 根}/scripts/storyctl.py chapter check --project {书项目根} --chapter {N} [--min-chars {下限} --max-chars {上限}]
25
+ {PYTHON} {story-long-write skill 根}/scripts/storyctl.py chapter commit --project {书项目根} --chapter {N} --input {书项目根}/.story/work/第{NNN}章/tracking.json
26
+ {PYTHON} {story-long-write skill 根}/scripts/storyctl.py chapter accept-current-length --project {书项目根} --chapter {N} --input {书项目根}/.story/work/第{NNN}章/tracking.json
27
+ ```
28
+
29
+ - `init`:只在 `_tracking-state.json` 不存在时执行,绝不覆盖已初始化项目。
30
+ - `draft`:按当前 state 把逐章事务预填到 `.story/work/第NNN章/tracking.json`(修订号、模式、章名、`context` 四项当前值),并输出各文本字段的字数上限与在场核心角色的当前快照。新章(append)调用方只填 `delta` 与有变化角色的快照;已提交章(revision)的 `delta` 与相关角色快照按该章现有逐章记录预填(伏笔、时间线取当前值),调用方在上面改成修订后的完整记录,不清空重写。
31
+ - 作者字数范围:细纲可写一行 `字数范围:2000-2600`(作者明确给了上下限时);本轮临时给的范围用 `--min-chars` / `--max-chars`(两者同给,优先于细纲)。`wordcount check` / `checkpoint` 与 `chapter check` / `commit` / `accept-current-length` 都认,给了就同时替代默认 ±12% 内部带与 ±15% 用户带,结果里 `band_source` 为 `author`,提交的字数记录多一项 `author_range`。
32
+ - `wordcount measure` / `wordcount checkpoint`:纯测量入口;不写正文、不写 tracking、不做语义判断。长篇正文只在前组写完后由主会话带 `--project` 调用一次 `checkpoint`(目标与字数范围读细纲,见 workflow-chapter 步骤 6),整章长度由 `chapter check` 收口;`remaining_user_range` 按生效区间(作者区间或默认用户带)计算。
33
+ - `chapter check`:重新读取当前正文与细纲目标,返回确定性长度状态、现有 blocking quality、`state_revision` 和当前可执行动作,不保存 approval。顶层 `status`:`ready`(可提交,exit 0)/ `needs_decision`(长度带外,按 `available_actions` 交作者,exit 0)/ `blocked`(有 blocking 正文问题,exit 1)/ `invalid`(正文为空等,exit 1)/ `tool_unavailable`(找不到 node 或检测脚本,见 `quality.tool_errors`,不是正文问题,exit 3)。参数错误或文件缺失输出 `story-chapter-error/v1`(`status: error`,exit 2)。`under` 不提供自动补写;`over` 额外返回一次净删型 `compress-once` 及回到生效区间所需的删除字数。`quality.semantic_advisories` 是语义类 advisory 条数(检测器标 `review: mechanical` 的不计)。
34
+ - `chapter commit`:再次读取当前文件、重新计数并重跑 blocking quality;只接受生效区间内的章节,把简短字数记录与逐章事务一起原子提交。新章与修订都走它。
35
+ - `chapter accept-current-length`:只接受带外但 quality pass 的章节;接受动作发生时重新读取、重新计数并立即原子提交,不保存可陈旧的历史决议。低于字数目标一半(`BELOW_ACCEPT_FLOOR`),或超长却还没做过那一次压缩(`COMPRESSION_REQUIRED`),都拒绝;作者明确拍板时加 `--force`。
36
+ - `check`:严格验证 state schema、逐章记录连续性/规范名/体积、固定 7 栏、角色快照硬上限、派生文件集合,以及所有派生视图与 state 的逐字一致性。
37
+
38
+ 每本书由 `追踪/.tracking-commit.lock` 串行写事务,`expected_state_revision` 再拒绝基于旧状态构造的 stale transaction。两个不同事务并发时至多一个修订成功。字数记录也在锁内对当前正文和目标重新验证,正文或目标变化会让预先构造的记录直接失败。
39
+
40
+ 事务 JSON 是临时输入,不是项目产物:只写在书目录 `.story/work/` 下(逐章事务放 `.story/work/第NNN章/tracking.json`),不写系统 `/tmp`、书根、`大纲/` 或 `正文/`;成功前必须保留,提交成功后即可删除(`storyctl.py chapter commit` / `accept-current-length` 成功时自动删除该章目录;直接调用 `tracking_commit.py commit` 时由调用方删除。已有字数记录的章节正文或目标改过后,`tracking_commit.py commit` 拒绝修订事务,须走 `storyctl.py chapter commit`)——之后 `check` 失败按下文提交 `mode=revision` 新事务修复,不需要原事务。若文件写入失败,`_tracking-state.json` 尚未推进;修正环境后直接重跑**同一份** `commit`。append 重跑只接受内容完全相同的既有逐章记录,不维护 `dirty/pending/repair` 状态机。
41
+
42
+ 校验失败与写入失败处理方式不同:校验失败(字段非法、退役结构、容量超限)要按报错改事务本身,重跑同一份结果不变。派生视图被手改或外部改动导致 `check` 报 `derived view differs from _tracking-state.json` 时,重新提交**该章**的 `mode=revision` 事务让工具整份重建,`expected_state_revision` 取 `追踪/_tracking-state.json` 的 `state_revision` 字段——`check` 失败时只往 stderr 打 ERROR,不输出 JSON;不手改派生文件,也不删 `_tracking-state.json` 重来。手写出的逐章记录会让同章 `append` 永久报 `chapter delta N already exists with different content`——删掉那个手写文件后重跑原事务即可。
43
+
44
+ 本工具不解析旧 `_tracking-meta.json`、`时间线/事件库.json` 或更早追踪结构,不提供语义兼容层。`init` 遇到这类旧文件时,先把它们按原样整体移入 `追踪/_旧追踪存档/`,再在原地建当前协议:旧内容留给作者查阅,不参与解析,当前状态完全以 init 输入为准。校验失败的 `init` 不移动任何文件。`commit` 与 `check` 仍直接拒绝旧结构——它们只在已建协议的项目上运行。
45
+
46
+ ## 初始化事务
47
+
48
+ 仅新书或导入初始化时,执行 `init` 前必须完整读取 [tracking-initialization.md](tracking-initialization.md),按其中原始 JSON 与导入边界构造事务。已有项目续写直接使用下方逐章事务,不重复读初始化示例。
49
+
50
+ 调用方的逐章 JSON 不写 `wordcount`;正式入口 `chapter commit` 或 `chapter accept-current-length` 在提交当下生成并注入。最终 state 只为已提交章节保留 `metric / target / actual / status / resolution / body_sha256`(生效了作者字数范围时另加 `author_range`),不保存 MEASURE/RESOLVE 事件、ID 链、policy fingerprint 或独立 chapter state。
51
+
52
+ ## 逐章事务
53
+
54
+ ```json
55
+ {
56
+ "schema_version": 1,
57
+ "mode": "append",
58
+ "chapter": 10,
59
+ "chapter_title": "专业团队拍得还不如他拍的好?",
60
+ "expected_state_revision": 9,
61
+ "delta": {
62
+ "result": "专业团队重拍的高清版在高层看片会上被判定缺了灵魂,张耀祖拍板继续采用江晨的手机原版。",
63
+ "character_changes": [
64
+ {"name": "江晨", "change": "作品价值获军内高层确认,从爆款新人升为不可替代的军宣创作者"}
65
+ ],
66
+ "foreshadow_changes": [
67
+ {
68
+ "action": "upsert",
69
+ "id": "F027",
70
+ "summary": "专业团队仍拍不出江晨原版的灵魂,继续验证其创作能力不可复制",
71
+ "planted_chapter": 10,
72
+ "planned_resolution_chapter": null,
73
+ "status": "已埋",
74
+ "importance": "中"
75
+ }
76
+ ],
77
+ "timeline_events": [
78
+ {
79
+ "action": "upsert",
80
+ "id": "E010",
81
+ "story_time": "实弹训练两天后",
82
+ "objective_fact": "文工团高层否决专业重拍版,决定沿用江晨手机拍摄的原版视频",
83
+ "reader_knowledge": "读者已看到周薄森指出专业版缺了灵魂,张耀祖当场拍板用回原版",
84
+ "reveal_status": "已揭示",
85
+ "reveal_chapter": 10,
86
+ "characters": ["江晨", "周薄森", "张耀祖"]
87
+ }
88
+ ],
89
+ "constraints": ["后续继续用作品落地效果和围观反应放大江晨的高光,不能只写系统奖励数字"],
90
+ "next_chapter_commitments": ["结算五天百万粉任务,并承接老兵主题的新任务"]
91
+ },
92
+ "context": {
93
+ "position": {
94
+ "volume": "第一卷·军宣整顿",
95
+ "volume_start_chapter": 1,
96
+ "story_time": "实弹训练两天后",
97
+ "scene": "火箭军文工团高层看片会"
98
+ },
99
+ "long_term_constraints": ["军宣爽点要用作品效果和围观反应链兑现,不能只靠系统播报"],
100
+ "active_character_names": ["江晨"],
101
+ "continuity_risks": ["钟嘉嘉说江晨只猜对一半,未公开的培养安排不能被当成读者已知事实"]
102
+ },
103
+ "character_snapshots": {
104
+ "江晨": {
105
+ "identity": "火箭军文工团宣传兵;军宣爆款创作者",
106
+ "location": "火箭军文工团高层看片会",
107
+ "goal": "完成五天百万粉任务,持续做出真正能打的军宣内容",
108
+ "state": "专业团队反向验证原版价值,军内认可继续抬升",
109
+ "abilities_resources": ["前世MCN爆款运营经验", "《中国军魂》伴奏", "大师级导演能力"],
110
+ "relationships": ["钟嘉嘉持续提供军报资源", "周薄森和张耀祖已明确认可其创作能力"],
111
+ "knowledge": ["《军报》采访稿已经过审", "原版视频将继续作为正式军宣内容"],
112
+ "open_threads": ["五天百万粉任务尚未结算", "钟嘉嘉所谓只猜对一半仍未解释"]
113
+ }
114
+ }
115
+ }
116
+ ```
117
+
118
+ 约束:
119
+
120
+ - 构造事务前运行 `check`,把当前 `state_revision` 原样写入 `expected_state_revision`;若状态已经变化,重新读取 state 并重构事务。
121
+ - `context` 的允许字段随子命令不同:`init` 收 `position`、`long_term_constraints`、`active_character_names`、`continuity_risks`、`recent_chapters`、`next_chapter_commitments` 六项;`commit` 只收前四项。`recent_chapters` 与 `next_chapter_commitments` 在 commit 时由工具从当前视图和本章 `delta` 派生,手填会在任何写入前被拒(`context contains unsupported fields: ...`,exit 2)。照 init 示例套 commit 事务是最容易踩的一处。
122
+ - `character_snapshots` 中出现的角色视为核心复用角色,必须同时出现在 `character_changes`;已经建立快照的核心角色再次变化时必须提交新快照。
123
+ - 角色快照的四个列表不限制条数,只限制单项长度和最终文件总字节:目标 ≤4096 字节,超过警告;硬上限 8192 字节,超过则在任何写入前拒绝。
124
+ - 没有快照的角色变化视为临时角色,不建立状态文件;`context.active_character_names` 最多 6 人且必须已有当前快照。
125
+ - `context.long_term_constraints` 最多 6 条:要加第 7 条先合并语义重叠项或请作者取舍,不自动删旧约束;永久生效的设定裁定进它,短期强承诺进 `next_chapter_commitments`,过程决策不进续写状态卡。
126
+ - `context.long_term_constraints` 和 `context.continuity_risks` 是整份提交的当前值。凡是上一版有、本次没有的条目,必须逐条列进 `delta.retired_context_items`,否则工具在任何写入前拒绝——漏写不会被当成删除。实际退役的条目由工具写进本章逐章记录的 `## 本章退役登记`,随后仍可回查。
127
+ - 不再复用的核心角色写进 `delta.retired_characters`:工具删除其当前快照与 `角色状态/{角色名}.md`,并在逐章记录留档。同一事务里不能既退役又提交快照,也不能退役仍列在 `context.active_character_names` 的角色。角色阵亡/退场这一章,把变化照写进 `character_changes` 即可,本章退役的角色不必再交一份马上要删的快照,逐章记录仍按核心角色标注。退役只表示不再进入热上下文,正文与逐章记录不受影响。
128
+ - 两类退役都只能在 `mode=append` 提交。退役表示「从此刻起离开当前状态」,而修订事务的逐章记录属于被改写的旧章,落在那里会谎报退役发生的章节;`mode=revision` 必须原样重交当前全部上下文条目,需要退役就放到下一次 append。
129
+ - `伏笔.md` 只呈现已经埋设过的当前状态。未来规划仍留在大纲。
130
+ - `timeline_events.action` 可为 `upsert/delete`。`未揭示` 的 `reveal_chapter` 必须为 `null`;部分/完全揭示只能填写已经发生的实际章节。
131
+ - `mode=revision` 时,逐章记录必须重算为修订后该章仍然成立的完整连续性记录(用 `draft` 预填的草稿改,漏写的项会从记录里消失,工具在 stderr 警告被清空的栏目;原有的退役登记原样保留);当前角色、伏笔、时间线和上下文则提交受影响对象截至最新已写章的当前值。
132
+ - 修订导入截止章内的正文时,会新增或覆盖该章的逐章记录;`imported_through_chapter` 不变。
133
+
134
+ ## 续写状态卡固定格式
135
+
136
+ `上下文.md` ≤12288 字节,由 state 整份生成,只含以下 7 个顶层区块:
137
+
138
+ 1. `## 当前位置`
139
+ 2. `## 长期约束`
140
+ 3. `## 核心角色状态`
141
+ 4. `## 活跃伏笔`
142
+ 5. `## 近三章速记`
143
+ 6. `## 下一章承诺`
144
+ 7. `## 连贯性风险`
145
+
146
+ 其中活跃角色最多 6 人、活跃伏笔确定性选取最多 8 条、近章只保留 3 章。这些是下一章热上下文容量,不是完整角色状态的容量限制。
@@ -0,0 +1,104 @@
1
+ # workflow-chapter.md:单章正文工作流(Phase 4-5)
2
+
3
+ 每章正文走本文件(日更批次见 `workflow-daily.md`)。**缺文件就停下修,本轮不写**:`tracking_commit.py check` 不过、缺 `_tracking-state.json`、登记了对标却缺情绪模块/节奏时,读 [stop-and-fix.md](stop-and-fix.md) 照做(作者定了不对标不算缺,组装脚本会报「召回降档:成立,无对标」,照它走);修好再从步骤 1 开始。
4
+
5
+ **工作目录**:本章临时文件(前组.md、后组.md、writer_prompt.md、tracking.json)只放书目录下 `.story/work/第NNN章/`,不写系统 `/tmp`、`正文/`、`大纲/` 或书根;提交成功后脚本自动删除。
6
+
7
+ ---
8
+
9
+ ## 单章写作流程
10
+
11
+ 新书还没有 `_tracking-state.json` 时先按 [tracking-initialization.md](tracking-initialization.md) 初始化;已有正文却缺它,按 stop-and-fix 停下修。
12
+
13
+ 1. **检查细纲**:读 `大纲/细纲_第{N}章.md` 全文,取「单元ID/位置」,跑 `outline_view.py --unit {单元ID} {卷纲路径}` 取卷契约、全卷常任裁定、当前剧情单元与终局底牌边界(日更同单元本批复用,不重跑)——**不整读卷纲**。细纲缺失或缺九个必填字段时**先补建再写**:按 workflow-outline.md 细纲模板补齐九个必填字段和四个小节,无证据的写 `[待补充]`,补完跑 `check-outline-contract.js` 验收。
14
+ 2. **读取上下文**:`tracking_commit.py check`(取 `last_committed_chapter` / `state_revision`,完整 state 不进 prompt)→ `追踪/上下文.md` 全 7 栏 → 细纲点名的 `设定/势力/`、`设定/世界观/` 相关条目(为「必读设定」槽摘句);角色卡交给写手时只在「涉及角色」列名字、由写手读,主会话自己写时才读。上一章结尾由脚本代读,承接存疑才自己读。久别角色读 `追踪/角色状态/{名}.md`;更旧的信息按 workflow-daily「旧信息查找步骤」定点查。
15
+ 3. **写前准备**:
16
+ - **先跑组装脚本**:`{PYTHON} {skill 根}/scripts/build_writer_prompt.py --project {项目根} --chapter {N} --out`。`====` 以上是 prompt、以下是核对报告;退出码 2 =数据问题,修完重跑,不手拼绕过。
17
+ - **状态筛选**:从续写状态卡取本章在场角色、要碰/要避的伏笔、必须履行的下一章承诺与相关长期约束,写成本节速记。
18
+ - **召回**:核对报告写「召回降档:成立」时直接用脚本给的情绪/节奏;不成立时才完整读取 [benchmark-recall.md](benchmark-recall.md) 执行全量召回。
19
+ - **意图确认**:一句话写清本章意图(例:「快节奏打脸——账单暴露→逼问→反证→公开代价」)。对照:细纲是唯一剧情蓝图,新增物按「新增物三级」;底牌不因章尾钩子提前泄露;细纲重复的同一要求只兑现一次;爽点前有可指认的铺垫,打脸/揭露章写在场配角的差异反应。
20
+ - **契约风险**:细纲或单元卡标了需补强,把单元卡写的补强办法(交换、铺垫或成本)写进本章意图;标了契约破坏,先按 workflow-outline 补纲流程修纲再写;标契约安全的写前不重问,写后在步骤 9 核。
21
+ 4. **资料研究**(按需):需查证外部事实时 spawn story-researcher 输出到 `参考资料/`,不可用则主会话查。
22
+ 5. **标题预检**:看核对报告的重名结论;重名或明显重复才按核心事件改名,并同步细纲标题与正文文件名。
23
+ 6. **写作准备**:交给写手时按 [agent-calls.md](agent-calls.md)「写一章」分前后两组交付;主会话自己写时也分两组:前组写到 `前组.md` 后跑一次 `storyctl.py wordcount checkpoint --file {前组} --project {项目根} --chapter {N}`,后组按 `remaining_user_range` 收、原文拼接;作者要一次成文才写全章。批准内容写完即停,不为字数加剧情;实际长度由步骤 8 收口。
24
+ 7. **正文执行**:已部署 narrative-writer 时按 [agent-calls.md](agent-calls.md)「写一章」填槽交给它,交付后核对它只消费了批准情节点。未部署则主会话自己写:不填槽,按脚本输出与本节速记直接写,新增物自列申报表。写完逐段再看一遍检测器抓不住的三类 AI 腔:用工整对仗或金句替读者点题;叙述者跳出来总结情绪、解释动机、说出细纲的结论;章尾用感悟、升华或预告收。遇到就删,或改成人物的动作、对话、物件,让读者自己看出来。
25
+ 8. **核情节点落点,再一次检测收口**:
26
+ - 细纲每个情节点**至少出现一次**,漏即退回补写批准内容。不以字数为由。
27
+ - 运行 `{PYTHON} {skill 根}/scripts/storyctl.py chapter check --project {项目根} --chapter {N} --fix-punctuation`:一次整理标点并跑 AI 句式、`check-degeneration.js` 退化、细纲照搬与字数检测(去味管线:检测器 → 选 Gate → 一次定点改写 → 复扫);文件改动后重跑,不再分别调各检测脚本。
28
+ - 按返回的 `status` 走:`ready` → 完成步骤 9-12 再提交。`blocked` / `invalid`(退出码 1)→ 就地修净再重跑。`needs_decision`(字数出带)→ 看 `available_actions`:欠字不补不重试,按字数问法请作者选;超字把删除区间随 `compress-once` 交 narrative-writer 一次净删、零新语义,复检仍带外也请作者选。`tool_unavailable`(退出码 3,见 `quality.tool_errors`)→ 不能提交、无绕过,用停下问法告诉作者要装 Node.js 18+ 才能做写后检查。退出码 2(`status: error`)按 `error_code` 修命令。
29
+ 9. **检查钩子、爽点与契约**:章尾有往下看的理由(低压/过场章留阶段目标即可);高压/推进章爽点到位;对着成稿过契约四问——主角是否靠自己的选择挣到本章结果?收益是否被配角、机构或巧合无交换地拿走?有没有提前动用后面的底牌?旧期待付利息、留新期待了吗?任一问不过就按问改:没挣到→让结果落在他的选择或判断上;收益被拿走→补交换或让他拿回控制点;提前用了底牌→换成本卷已解锁的手段;没付利息→给旧期待一个小兑现再留新钩。不达标只修批准内容,修后重跑步骤 8;需补强、契约破坏都在本章汇报里告诉作者。
30
+ 10. **元信息扫描**:标题行以外清掉第X章、上一章、本章、前文、后文、伏笔、细纲、读者这类工程词,改成角色能感知的事件锚点(「比第一章那三秒开火更疼」→「比那三秒开火更疼」);角色真实读到「第X章」或本身是作者/读者的除外。
31
+ 11. **检测结果处理**(选 Gate 与定点改写):严重度读作必须修 / 建议看 / 仅提示——检测器 blocking 与 checker 的 S1/S2 必须修,advisory 与 S3 建议看,S4 仅提示。`quality.blocking_findings` 就地改到净;`advisories` 逐条读原文判断,确属问题才改,不为归零机械改写。`formulaic-parallelism` 连同台词一起复核;细纲照搬里判定保留的补进细纲「复沓锚句」(这是登记,不算改大纲,不用暂停问作者)。禁用词表不整读,拿不准的二级词才查 `references/banned-words.md` 对应条目。改完只重跑步骤 8 复扫,不另安排全篇去味。
32
+ 12. **更新追踪**:运行 `{PYTHON} {skill 根}/scripts/tracking_commit.py draft --project {项目根} --chapter {N}`,预填工作目录 `tracking.json`,并给出在场核心角色的当前快照和每类条目的样板(`shapes`)。只填 `delta` 与留空的本章结尾时间、场景:变化的核心角色(含本章首次进场的核心角色,草稿里没有就新建一份)把快照整份改好放进 `character_snapshots`;撤下的长期约束或风险从 `context` 删掉并把原文列进 `delta.retired_context_items`。不读脚本源码或 state 找格式;出错或 `mode=revision` 时才读 [tracking-transaction.md](tracking-transaction.md)。带内执行 `{PYTHON} {skill 根}/scripts/storyctl.py chapter commit --project {项目根} --chapter {N} --input {工作目录}/tracking.json`,作者接受当前长度把 `commit` 换成 `accept-current-length`。报错按提示改完重跑同一命令;体积超目标只是提醒,逐章记录写要点即可,不必为它删改。判为「登记」的申报项在这次事务里一并登记;有「先问作者」项时暂停提交与下一章。「本章没写成的」:细纲没给的追加进本单元排纲底稿「建纲追加」,先问作者的走下方处置表。
33
+ 13. **提交后核对**:返回 `tracking_committed: true` 即本章完成。
34
+
35
+ ## 向作者汇报
36
+
37
+ 按 SKILL.md「面向作者的汇报」,下列时机照模板说;`{}` 换成故事里的话,其余内部结论不说给作者。提交成功、本章完成后(日更批量改用 workflow-daily 批末汇报):
38
+
39
+ <!-- author-report -->
40
+ ```md
41
+ 第{N}章《{章名}》写好了,约 {字数} 字。
42
+ 这章:{两三句讲发生了什么,停在哪个钩子上}。
43
+ {有需作者留意的新人物/新设定就一句话,如「加了个跑腿的小厮阿福,后面可能还会用」;没有就删掉此行}
44
+ {这章主角的功劳被别人拿走、或提前用了后面的底牌时,一句话说哪里、怎么补或要不要改纲;没有就删掉此行}
45
+ {自查结论一句话:「自查过设定和前文,没发现冲突」或「发现一处前后不一:{什么},已按前文改正」}
46
+ 下一章:第{N+1}章《{章名}》,要接着写吗?
47
+ ```
48
+
49
+ 字数一次处理后仍不在范围内时,请作者选,不自行补写:
50
+
51
+ <!-- author-report -->
52
+ ```md
53
+ 第{N}章《{章名}》写完了,比目标{少/多}了约 {差额} 字(目标约 {目标} 字,现在 {实际} 字)。{一句原因,如「细纲的事写完就到这儿了,硬凑会注水」}
54
+ 你想怎么处理?
55
+ 1. 就按现在的长度收下(推荐)
56
+ 2. 我改细纲或字数目标,再重写这章
57
+ 3. 这章不要了
58
+ ```
59
+
60
+ 不到目标一半时选项 1 不标推荐。作者选 1 → `chapter accept-current-length`;选 2 → 等作者改完细纲/目标后回步骤 8;选 3 → 删本章正文与工作目录,不提交。收下被拒时:`BELOW_ACCEPT_FLOOR` 告诉作者差多少字,问补写还是就要这个长度;`COMPRESSION_REQUIRED` 先按 `compress-once` 删一次。作者知道原因仍坚持才加 `--force`。新增内容需要作者拍板(下方处置表「先问作者」)时:
61
+
62
+ <!-- author-report -->
63
+ ```md
64
+ 第{N}章{写的时候多出了一样东西 / 写到一半想加一样东西,还没写},需要你定:{用故事话说是什么}。
65
+ 它会牵动{后面哪段剧情或哪个已定安排,如「原定第三卷才揭开的那封信」}。
66
+ 1. {留下 / 加上},我把后面的大纲一起改过来
67
+ 2. {删掉 / 不加},按原细纲写
68
+ 我建议选 {1/2}:{一句理由}。
69
+ 这章先不算写完,等你定了再往下。
70
+ ```
71
+
72
+ 写不下去、要停下时:
73
+
74
+ <!-- author-report -->
75
+ ```md
76
+ 第{N}章还没法写:{白话说缺什么,如「这一章还没有细纲」}。
77
+ 建议{一个动作,如「我先按卷纲把这章细纲补出来给你看」},可以吗?
78
+ ```
79
+
80
+ ## 质量检查
81
+
82
+ 字数范围按 SKILL.md 写前必读第 4 条。三个维度:**情绪交付**(交付了目标情绪吗)、**契约风险**(步骤 9 契约四问)、**技术质量**(一致性、格式、禁用词;排查具体问题时才读 [long-chapter-quality.md](long-chapter-quality.md))。
83
+
84
+ **写后同轮清零**:同一轮内完成步骤 8-11,blocking(含写后 hook 推回的毒句式)清零才算本章完成。**唯一豁免**:用户显式说"本章不去味/跳过检查"时,在该章标题行下加一行 `<!-- 去味:跳过 -->`(写后 hook 与下一章前的欠账拦截都认它)。退化类 blocking(复读、截断、拒绝语、工程词泄漏)只重写受影响段落,最多 2 次,仍失败按停下问法请作者定夺;故事内系统用语、弹幕、有功能的重复台词保留。
85
+
86
+ ### Agent 调用:consistency-checker
87
+
88
+ **按需调用**:写手申报表非 `0`,或核对细纲时发现未申报的跨章事实(新证词、证据、承诺、关系变化)才在本章 spawn;否则日更批末核对时整批查一次(workflow-daily Step 3),非日更的单章写作在步骤 12 提交前对本章查一次。Prompt 见 [agent-calls.md](agent-calls.md)。不可用则主会话自己核:申报项与跨章事实是否与细纲、角色卡、已登记追踪冲突;承诺与伏笔有没有被遗忘或无推进;有没有突然塞进大量新设定。
89
+
90
+ **新增物处置(主会话)**(正文定稿、追踪未提交时做)。checker 只给事实证据,归哪一栏由主会话判:
91
+
92
+ | 处置 | 判据 | 出口 |
93
+ |---|---|---|
94
+ | **登记** | 无必须修的冲突,也不属先问作者项 | 角色/势力按 workflow-outline.md「细纲后设定补全」补建静态档案、可复用设定补进 `设定/世界观/{主题}.md`,由主会话直接改设定文件(追踪事务不写设定);伏笔、关系、约束、下章承诺进步骤 12 事务的对应 delta 字段 |
95
+ | **修复** | 有必须修的冲突 | 退回写手就地改正文或删掉该新增物,最多一次 |
96
+ | **先问作者** | 先问作者项(SKILL.md「新增物三级」),或冲突要靠创作决策;「本章没写成的」里标先问作者的也走这行 | 按拍板问法问作者(已写的问留不留,没写的问「还没写,要不要加」);本章暂停提交及下一章。作者接受则按授权改卷纲/设定(没写的补写)后提交,不接受则删改后提交 |
97
+
98
+ 申报为 `0` 仍做正文与细纲的正常核对,发现漏报照本表处置。
99
+
100
+ ### Agent 调用:narrative-writer(去AI味审查)
101
+
102
+ **按需调用**:步骤 8 的 `quality.semantic_advisories`(语义类 advisory 条数)≥3,或 blocking 一次就地修改后仍未清零,才 spawn 一次;否则主会话按步骤 11 处理。Prompt 见 [agent-calls.md](agent-calls.md)。不可用(主会话自己写)时不读去味细则:逐条按检测器那条提示改,先判能否直接删(删后不丢伏笔、钩子、角色、情节和必要信息就删),会丢才改写;blocking 改到净,advisory 确属问题才改。语义提示仍多时照常收口,在汇报里建议作者之后另开对话用 `/story-deslop` 精修。
103
+
104
+ 审查在本章提交前改的连续性事实直接进步骤 12 的事务;提交后再改,按 workflow-revision:`draft --chapter {N}` 预填 → 改 → `chapter commit`。
@@ -0,0 +1,75 @@
1
+ # workflow-daily.md:日更续写工作流
2
+
3
+ SKILL.md 路由到「日更续写」后按本文件控制批次;每章正文走 [workflow-chapter.md](workflow-chapter.md),缺文件按它开头停下修,召回降档不成立才读 [benchmark-recall.md](benchmark-recall.md)。适用于已有正文与追踪、作者明确要日更/续写/写第 N-M 章的项目;裸调用、只规划或只改细纲不进本流程。
4
+
5
+ ---
6
+
7
+ ## Step 1:快速上下文加载
8
+
9
+ 运行 `tracking_commit.py check`,取 `last_committed_chapter + 1` 作本批首章 N、`state_revision` 作修订号,并核对 `追踪/上下文.md` 的当前位置;章号不一致先修,不扫描正文猜编号。每章要读的上下文按 workflow-chapter 步骤 2;`追踪/伏笔.md`、`时间线/`、`逐章记录/` 默认不整读,缺旧信息按下方「旧信息查找步骤」定点查。
10
+
11
+ `追踪/上下文.md` 是续写状态卡(7 栏,由 `tracking_commit.py` 派生,禁止手改);schema、修订与修复见 [tracking-transaction.md](tracking-transaction.md),出错时才读。
12
+
13
+ **缺 state 或视图不一致**:停下,按 [stop-and-fix.md](stop-and-fix.md) 修好再开始。
14
+
15
+ 确定范围后直接进 Step 2,不问"是否继续";K 默认 2-3 章,作者另给按作者(单轮最多 3 章)。只在章号冲突、细纲缺失、范围超出已有细纲、要改大纲/追踪时暂停确认。
16
+
17
+ ---
18
+
19
+ ## Step 2:串行批量写作
20
+
21
+ **必须在主会话内串行逐章写**,不把多章并发交给多个子代理(追踪会互相覆盖)。"继续/续写/日更"不逐章重复确认;到达本轮 K(最多 3 章)后必须进入 Step 3/4 收尾并停止,不因还有细纲续写下一批。
22
+
23
+ 1. **读取写作计划**:按 卷契约 → 当前剧情单元 → 章节细纲 确定;`outline_view.py --unit {单元ID}` 取一次卷级与单元级内容,本批复用,不整读卷纲。写前明确本批推进目标、可释放与严禁提前释放的信息、章尾钩子不能越过的边界,别动用本阶段还不该解锁的终局底牌。批写完检查是否超前、拖慢或偏离阶段节奏(细节适配不算;已改变卷契约、单元承诺、推进线或兑现归属的,修正文或重规划后续细纲):下一章要补偿的进 `next_chapter_commitments`,跨章风险进 `continuity_risks`,不靠提前泄露后期信息提速。
24
+ 2. **逐章执行**:每章按 workflow-chapter「单章写作流程」步骤 1-13 走完,叠加:
25
+ - **上一章欠账**:写本章前上一章不得有未清 blocking 毒句式(写前 hook 会拦;hook 不可用时对上一章跑一次 `chapter check`),标了 `<!-- 去味:跳过 -->` 的除外。
26
+ - **状态来源**:不把完整 `_tracking-state.json` 读进上下文,缺的信息定点查,不用来源不明的聊天记忆替代。久别核心角色读 `追踪/角色状态/{名}.md`,重新活跃后放进本章事务的 `context.active_character_names`。
27
+ - **本章技法**:主会话自己写时一批只读一份(选法见 SKILL.md「本章技法」),交给写手时每章照填类别。
28
+ - **用 story-explorer 召回时**:`gaps` 按 [agent-calls.md](agent-calls.md)「story-explorer:写前对标召回」分流。
29
+ - **写后清零不拖到批末**:hook 推回的命中当轮清零。
30
+ - **每章写完立即提交追踪**:按 workflow-chapter 步骤 12,提交成功才进下一章;只记会影响后续章节的变化,过程日志、质检计数、去味统计不进事务。narrative-writer 不写 `追踪/`。
31
+ 3. **不中断但不并发**:追踪已提交即进下一章;字数出带(欠字,或一次压缩后仍超),按 workflow-chapter 的字数问法请作者选,不静默推进。
32
+
33
+ ### 旧信息查找步骤
34
+
35
+ 续写状态卡没有、但本章确实需要的旧信息,由近到远查,查到就停:
36
+
37
+ 1. **定点读追踪**:伏笔 `grep -n "F007" 追踪/伏笔.md`;角色读 `追踪/角色状态/{名}.md`;读者认知读 `时间线/读者已知.md`,作者真相读 `时间线/作者真相.md`。
38
+ 2. **查变化原因或历史**:调 story-explorer 的 `foreshadow_status / character_status / timeline`(不可用则 `grep -R -n --include='第*.md' "F007" 追踪/逐章记录/ | tail -5`,只取最近 5 条)。
39
+ 3. **读一个原文件**:对应逐章记录或埋设章正文,只读 1 个。全量读属 `/story-review` 或作者要求的全面审计,日更不做。
40
+
41
+ 单章第 2 级超过 3 次,说明细纲没写清要消费哪些旧信息:一次性让 story-explorer 查多项,并在日更批末汇报里提示细纲需补清回收项。
42
+
43
+ ---
44
+
45
+ ## Step 3:日更批末核对
46
+
47
+ 逐章检查已在 Step 2 完成,这里只做**跨章**核对:
48
+
49
+ 1. **标题去重**:本轮新写章与既有标题同名或明显重复时,统一改细纲与正文文件名。
50
+ 2. **契约与细纲双向核对**:逐章已在 workflow-chapter 步骤 9 过契约四问,这里只看跨章:几章连起来,主角的功劳、底牌和旧期待有没有累积失衡(有问题按 workflow-chapter 步骤 9 的改法修;需补强、契约破坏写进批末汇报);正文是否消费了细纲的内容概括、情节安排、人物关系变化与收益归属;爽点前有可指认的铺垫、打脸/揭露章写了在场配角差异反应、详略按目的分配而非均匀注水。不达标回 Step 2 修批准内容。
51
+ 3. **伏笔盘点(仅本轮增量)**:本批新增/推进/回收的每个 ID 在 `追踪/伏笔.md` 恰好一行当前状态,并能在对应逐章记录找到本次变化;不做全量伏笔审计。
52
+ 4. **一致性检查(整批一次)**:各章都没单独查过时,这里查一次本批全部章节(prompt 见 agent-calls.md,申报栏写各章申报汇总;无 agent 时主会话按 workflow-chapter 同节自己核),冲突照「新增物处置」表处理。
53
+
54
+ 只对本步改过的章重跑 `chapter check --fix-punctuation`;改动影响后续事实、状态、伏笔或承诺的,进 Step 4 前按 workflow-revision 为该章提交修订(`draft` 预填 → 改 → `chapter commit`),纯措辞调整不重复提交。
55
+
56
+ ---
57
+
58
+ ## Step 4:批末收尾
59
+
60
+ **本步不再写追踪内容**,只做:
61
+
62
+ 1. `tracking_commit.py check` 通过,本批每章都有逐章记录;缺失或超限回到该章事务修正重跑,不手补文件。
63
+ 2. **「本章没写成的」汇集**:各章申报表末行只分两路——「细纲没给」追加进排纲底稿「建纲追加」,涉及既有设定的先查设定、有既定值补进下一章 prompt;「先问作者」并入 workflow-chapter「新增物处置(主会话)」表的「先问作者」一行。连同排纲底稿里「先问作者」尚未裁定的条目,一并随批末汇报给出;全部为 `0` 记「无」。
64
+
65
+ 然后按 SKILL.md「面向作者的汇报」口头汇报,不另存文件;内部核对翻成故事话再说:
66
+
67
+ <!-- author-report -->
68
+ ```md
69
+ 这次写了 {K} 章,共约 {总字数} 字:
70
+ - 第{N}章《{章名}》:{一句发生了什么}
71
+ - 第{N+1}章《{章名}》:{一句发生了什么}
72
+ {偏离原计划的就一句话说偏在哪、打算怎么接,如「阿福比计划早露面一章,后面照常」;主角功劳被人拿走、提前用了后面的底牌也在这里说;没有就删掉此行}
73
+ {要作者定的事:一句问题+白话选项+推荐,如「沈栀要不要在下一章就知道信的下落?1. 先瞒着(推荐)2. 这章就告诉她」;没有就删掉此行}
74
+ 下一批:第{M}到第{M+2}章,{细纲已备好 / 需要先补细纲}。接着写吗?{写到卷末时改问:「这一卷写完了,要开新卷吗?」}
75
+ ```
@@ -0,0 +1,157 @@
1
+ # workflow-outline.md:出细纲(按剧情批出细纲、补纲)
2
+
3
+ 作者要看一批章节怎么走、或要补/改细纲时读本文件。卷纲只用 `outline_view.py --unit {单元ID}` 取本单元闭包,设定从 `设定/` 定点读,不回翻对话;前 3 章细纲另读 [opening-design.md](opening-design.md),建角色档案时读 character-basics.md。没有子代理时先给本批走向提案、作者确认后落盘;交付汇报最后一句建议新开对话说「写第N章」,技术备注在它后面。
4
+
5
+ 所请求范围内每章必须有 `大纲/细纲_第XXX章.md`,不跳章。
6
+
7
+ 细纲按剧情批构建(见文末「按剧情批出细纲」);仅未限定范围的完整开书默认前 10 章,其他按 SKILL.md 的范围与停点交付:
8
+ 1. **批次边界**:未指定章数时,一批 ≈ 一个剧情单元(5-15 章);>10 章拆两批。开书首批前 10 章封顶、可跨单元;每单元建卡时召回一次,后续批共享结论。用户指定章数/范围时,只建范围内细纲,不因单元未完或剩余 ≤2 章而扩批;单批仍建议 ≤10 章。日更缺纲按 workflow-daily 的补建流程处理。
9
+ 2. **批次定位与阶段约束**(每批补纲前先写):当前章节区间属于哪个阶段与哪个剧情单元(单元ID)、本批推进目标、本批可释放信息、本批严禁提前释放信息、章尾钩子不能越过的边界。
10
+ 3. **供给自查**(排纲自查第 5 项):每批出细纲前检查六项:①对手戏由谁承接?具名对手间隔超过 2 章是复核提示;对手可为盟友或亲人,环境、关系章不为凑间隔新增反派。②未来 3 章出场角色的设定卡是否齐全?③能力增量与既有库存是否接得上?④本批引用的数字、制度、规矩、距离与脚程是否确实存在?引用前 grep 核对文件里的具体条目,不能只猜文件存在。⑤本批使用的地点空间属性先落档;仅提名不强补底图。是否与上一单元同场景、同对手、同胜负手连排,需要调整?⑥本批有哪些故事线推进,是否有可调存量?结果以「供给自查」小节写进 `大纲/排纲底稿_{单元ID}.md`(模板见文末,不写进卷纲):「写了要报」登记新增内容与设定路径,「先问作者」列候选及影响面交作者裁定;无缺口写「无缺口」。并检查上一批「本章没写成的」与「建纲追加」里的未解决缺口。
11
+ 4. **剧情单元消费**:建卡批读本批剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件,含结构分布/情节点索引),按单元节拍→章映射铺章、情节点换素材;同一剧情单元的后续批共享剧情单元卡固化结论,不重读剧情单元。当前卷纲缺少必需剧情单元字段时先补齐卷纲,不带缺失字段进入日更。
12
+ 5. **建纲当场缺口**:按下方三级处置——直接写的写进细纲,写了要报的先落档再引用,先问作者的挂起受影响内容,其余部分继续。建纲批末把后两级汇入同一份排纲底稿的「建纲追加」小节:章号、缺口、级别、设定路径或提案;无追加写「无」。不重复记录直接写的现场材料。
13
+ 6. **建纲批末复核**(每批建完必做):确认 `visible_chars_v1` 口径、九个必填字段、禁止提前释放和可执行情节点齐全。不得用“每个情节点固定等于多少字”预测容量或自动补事件;每章细纲落盘后必须跑 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}`:exit 1 只按 `repair_scope` 补点名字段再复验,最多两轮;advisory 项逐条人工判断,不强制归零。建纲批末另跑一次 `node scripts/check-outline-contract.js --json --supply {卷纲路径} {单元ID}` 验证本批供给自查已写进排纲底稿(含「无缺口」情形);脚本仅验供给小节存在,内容仍需人工判断。**旧章细纲缺字段是常态,不要照抄同目录既有文件的字段集**,以本节模板为准。语义仍不设 checker。
14
+
15
+ 不强行一次产出 30 章细纲;全书 ≤30 章且用户明确要全书细纲时,可分批连续交付。
16
+
17
+ #### 细纲模板与验收
18
+
19
+ 细纲是正文写作的章节蓝图,而不是只列事件和钩子的清单。模板见下(唯一权威副本:九个必填字段、四个小节、不含逐点字数的四列情节点表,阶段位置、结构公式等在末尾「可选」块)。新建、补建、回填都按权威模板补齐,未知字段写 `[待补充]`,不为补齐字段杜撰副线或人物关系。
20
+
21
+ `目标情绪` 与 `主角目标/关键选择` 要写实际内容,不能留 `[待补充]`:隔离实验里只补这两个字段就能复现补齐全部字段的正文收益,补满其余字段与只补这两个不可区分。其余字段未知时仍按上文写 `[待补充]`。
22
+
23
+ 落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}` 做结构检查:它只判字段、四个小节、五段式、情节点表结构(默认四列 `# / 情节点 / 功能标签 / 执行边界(禁+放)`;需要时可在功能标签后加「分辨率」列)和字数目标口径是否在场,不判内容好坏。exit 1 时只按 `repair_scope` 补报告点名的字段并复验,最多两轮;仍失败就报告检查 ID 停下,不改其他章。exit 2、脚本缺失或 node 不可用时如实报告验收未完成,不得声称细纲已合规。本检查只在新建/补建/回填时执行;既有项目的旧细纲不因此阻断写正文。
24
+
25
+ ```
26
+ ## 细纲(第 N 章)
27
+
28
+ ### 第 N 章:{章名}
29
+ - 核心事件:{一句话;供日更与导入统一消费}
30
+ - 字数目标:{X} 字
31
+ - 字数口径:visible_chars_v1
32
+ - 单元ID/位置:{卷纲剧情单元ID;单元内第几拍/承担功能}
33
+ - 目标情绪:{具体情绪前状态→后状态;本章推进单元情绪引擎的哪一环;不得只写“热血/悲伤”等标签}
34
+ - 主角目标/关键选择:{主角本章要什么;必须做出的判断或选择}
35
+ - 章首钩子:{从章首7式中选择} — {具体内容;低压/过场章可写“弱钩子/仅情绪钩子,功能是…”}
36
+ - 爽点:{本章爽点;低压/修炼/过场章可写“无显性爽点,功能是…”,但仍须给读者一个往下看的理由}
37
+ - 本章禁止提前释放:{**只写本章特有的三五条**;卷级常任禁忌已在卷纲「本卷禁碰的终局底牌」,不逐章复读;没有就写“无”}
38
+
39
+ #### 内容概括(五段式)
40
+ - 起因:{本章事件为什么发生}
41
+ - 发展:{冲突如何推进}
42
+ - 转折:{信息/关系/局势哪里改变}
43
+ - 高潮:{本章情绪或动作峰值}
44
+ - 结尾:{本章最后落在谁的什么动作/画面/台词上——写具体落点,不写"尘埃落定""一切结束"式状态判词}
45
+
46
+ #### 情节安排(多线)
47
+ - 主线推进:{本章对主目标的推进}
48
+ - 辅线推进:{指向卷纲「本卷故事线」的 L 编号(L01 式两位数,不是单元ID L1-03),写“L0X 从哪一步推到哪一步”;本章确无非主线在动时写“无”,不凭空制造。一批细纲不许每章都是“无”}
49
+ - 事件线 / 任务线:{外部事件链;有“办事被卡住”时写清卡出什么变化,删掉无损的卡点不进细纲}
50
+ - 感情线 / 关系线:{无显性感情线时写“无显性,但关系变化为…”}
51
+ - 逻辑线:原因 → 行动 → 结果 → 后果/新问题
52
+
53
+ #### 人物关系和出场顺序
54
+ - 出场顺序:{角色/势力/关键物件按实际出现顺序列出}
55
+ - 人物关系变化:{本章前 → 本章后}
56
+ - 视角/信息差:{谁知道什么;读者知道什么;主角误判什么。取自 `追踪/时间线/读者已知.md`,不另起一套;还没有追踪的新书按设定与卷纲写}
57
+
58
+ #### 情节细化
59
+ | # | 情节点(谁做了什么) | 功能标签 | 执行边界(禁+放) |
60
+ |---|---|---|---|
61
+ | 1 | {主角在账单上发现4800元转出} | {信息揭示} | {禁:不揭露幕后者。放:他当场算出这笔钱等于几个月房租,允许写出来} |
62
+
63
+ - 功能标签=目的词:铺垫/高潮/爽点/打脸/人物塑造/设定。点数由语义需要决定,不填写逐点字数,不用 `目标字数 / beat 数` 反推。
64
+ - **执行边界写「禁+放」两半**:禁=本点不能提前释放或新增什么;放=本点允许什么落地、到什么量级(谁可以出声、谁可以失态、允不允许当场标价)。**每章至少一个点写了「放」**;放行是解除限制,不是义务。
65
+ - 复沓锚句:{须一字不差进正文的原话(誓言、面板、旧案原话),一行一条并注明落点,如"点3:立此为凭…";没有写"无"}
66
+ - 行动成本(可无)/收益归属:{可无行动成本;收益归谁、如何可见、是否留下后续账}
67
+
68
+ #### 结尾设定和钩子
69
+ - 结尾设定:{收束落到什么具体动作或画面(不写"就这样……""他终于明白……"式状态判词);未解决问题;下一章推动力}
70
+ - 章尾钩子:{从章尾13式中选择} — {具体内容,期待度:强/中/弱;低压/过场章可弱钩子或留阶段目标;与下一章如何承接}
71
+
72
+ #### 可选:需要时再写(写了写手照样消费,不写不拦)
73
+ - 字数范围:{作者给了上下限才写,如 2000-2600}
74
+ - 阶段位置、章节定位(高压/推进/修炼试错/关系回收/低压生活/信息整理)、本章结构公式
75
+ - 本章标价(得失折算成读者已知的什么)、闭环状态(获得/使用/见效/估值走到哪一拍)
76
+ - 写手自由区(本章最值得放开、由写手发明的几处)、镜头准入(一场给谁台词位)、信息差触发点(在第几点提醒读者手里的牌)
77
+ - 情节点表加「分辨率」列(密/中/疏,同类并列递减)
78
+ - 契约风险:只在本章让单元卡「契约风险」变化时写
79
+ ```
80
+
81
+ **大纲锁定**:已进入正文写作的前 10 章细纲锁定,未经用户确认不得修改;后续滚动细纲可随正文反馈微调。已进入正文的卷的卷纲锁定规则见 workflow-volume.md。
82
+
83
+ **中途补纲/扩纲小流程**(项目已有大纲;只改细纲不进入正文大修):
84
+ 1. 定位请求范围、已写进度和所属单元:读 `大纲/大纲.md`;卷纲先用 `outline_view.py --toc {卷纲路径}` 定位,再 `--unit {单元ID}` 取闭包,尚无单元用 `--contract` 取契约,不整读。另读 `设定/题材定位.md` 和已有 `追踪/上下文.md`;有正文却缺追踪时停止补纲,提示按 workflow-daily 修复/迁移,不猜进度;无正文也无追踪时以现有纲/设定规划,不为读取状态先初始化。
85
+ 2. 请求章已属于既有单元时复用单元卡,只补/改点名细纲,不另建单元;沿用上方锁定规则。确需新单元先按 workflow-volume.md 追加单元卡(含「对标节奏迁移」选同类单元),向卷尾**追加**卡及情绪弧线、故事线、伏笔规划,已锁定内容不动。用户补纲不等于授权修改其他章;超出本卷体量时先确认扩卷或开新卷。
86
+ 3. 追加单元时答 workflow-volume.md「排纲自查」1–4(按单元内 1/4·中点·3/4 口径);进入细纲层时做本文件步骤 3 供给自查。
87
+ 4. 按本次交付层级停止:需要细纲时按上述批次边界只做请求范围,完成「细纲后设定补全」与建纲批末复核。
88
+ 5. 规划事件和未来揭示只落卷纲/细纲,不提前成为追踪事实。已有正文项目补纲不写 `追踪/`,不执行 init/commit;下一章必须履行的承诺在下一次正文事务里进入 `next_chapter_commitments`。
89
+
90
+ **细纲质量要求**:每章细纲都要按当前章节蓝图直接指导正文(核心事件、字数目标、字数口径、单元ID/位置、目标情绪、主角目标/关键选择、章首钩子、爽点、本章禁止提前释放九个必填字段齐备),但**强度按章节定位分配、不是每章顶满**:高压/推进章配齐钩子+爽点+悬念;低压/关系/修炼/信息整理章允许无显性爽点、弱钩子或仅情绪钩子,重点是把功能(喘息、关系、铺垫、转场)写到位。底线是每章都给读者一个往下看的理由、相邻章不情绪趋同(见 workflow-volume.md「章节定位与张弛」)。字段不完整时先补齐;无法从材料确定的关系或副线写 `[待补充]`,不得杜撰。
91
+
92
+ > **细纲钩子来源**:优先沿本批剧情单元卡「对标剧情参照」的单元节拍与兑现方式设计钩子链;对标登记 ≥2 本时读 `references/cross-book-recall.md`,副对标同基调 `章节/*_摘要.md` 仍可作单章钩子灵感(可选);有 `灵感库/` 时可按「适用阶段=细纲」召回 active CBA 辅助钩子设计,零命中不阻塞
93
+
94
+ **章节标题规则**:只做轻量去重;发现同名或明显重复标题时,按本章核心事件改名,并保持细纲标题与正文文件名一致。
95
+
96
+ **细纲后设定补全(每批细纲建完后执行)**:扫描本批细纲新出现的具名角色/势力/关键设定,对**会复用**的(按卷纲/细纲判断:后续多次出场或承担剧情功能)自动建档,不等用户确认:
97
+ - 角色 → 建 `设定/角色/{名}.md`(填空模板见 character-basics.md 主角卡/配角卡);核心复用角色真正进入正文后,由追踪事务建立 `追踪/角色状态/{名}.md` 动态快照;
98
+ - 势力/组织 → 建 `设定/势力/{名}.md`(名称、定位、核心目标、关键人物、与主角关系);
99
+ - 影响多章的世界观规则 → 建/补 `设定/世界观/{主题}.md`(规则、适用范围)。
100
+ - **刻度与名目** → 建/补 `设定/世界观/{主题}.md` 里的对照表。凡是正文要拿来**比大小、算价钱、报名次、定档位**的东西都算:资质/评级档位、职级与待遇、货币与物价、等级与进度格、名次与席位、赏罚名目、时限与期限。写成**可数的序列**(几档、哪一档在哪、相邻两档差多少),不要只写一个孤立的值。
101
+
102
+ **缺什么按新增物三级处置——不许硬写,也不许一律停摆。** 判据见 SKILL.md「新增物三级」(交给 story-architect 时任务包末尾已附原文)。排纲时需要一样东西(角色、能力、物价、规矩、刻度、场景)而设定里查不到时,先查再分级:
103
+
104
+ 0. **先查**:`设定/世界观/`、`设定/势力/`、`设定/题材定位.md`(升级台阶)里是不是已经有(同一件事在不同文件里可能叫不同名字,换个说法登记的也算)。查不到的按下面三级处置。
105
+ 1. **直接写**:写进细纲,不落档、不上报。
106
+ 2. **写了要报**(发明+落档):不与既有裁定冲突时直接补充。先增量落设定,再供细纲引用,并在排纲底稿的供给自查里登记。项目引用用书目录相对路径(如 `设定/角色/张三.md`);`./`、`../` 相对细纲目录,裸文件名不校验。地点只补本批用到的分区、进出口、相对位置或脚程。补纲授权下的新故事线先在卷纲故事线表分配 L 编号并写清主线对接口,再供细纲引用;日更不自动扩纲。
107
+ 3. **先问作者**(提案裁定):不自行决定。在排纲底稿的供给自查里列具体缺口、1-2 个候选及关联设定影响,建纲批末按下方汇报模板用故事话问作者;裁定先落设定再引用,不以占位或临时编数代替。设定互相冲突时列出出处供作者判断。
108
+
109
+ 已存在的设定文件按细纲新信息**增量补充、不覆盖**。一次性路人、后文无戏份的配角不建静态档案或动态快照。建档只填细纲已确定的信息,未定字段留占位符,不提前杜撰。
110
+
111
+ **规划交付后向作者汇报**(细纲、补纲、改细纲用;按 SKILL.md「面向作者的汇报」):供给自查、建纲批末复核是内部核对,只把结论翻成故事话;「先问作者」的缺口和两个设定互相冲突都作为「要你定的事」问。
112
+
113
+ <!-- author-report -->
114
+ ```md
115
+ {做了什么,如「第二卷卷纲定好了」「补好了第22-26章细纲」「按你说的改了第23章细纲」}:
116
+ - {故事层要点,一行一件:这卷/这几章主要发生什么,主角得到或失去什么,停在哪个悬念上}
117
+ - {改细纲时:原来是什么,现在改成什么,会不会牵动别的章}
118
+ {某段剧情主角的功劳被别人拿走、或提前用掉了后面的底牌时一句话说清,如「第三段剧情里功劳落到了师父身上,我先把纲改成沈栀自己拿主意」;没有就删掉此行}
119
+ {前面吊起的期待还没兑现时说清哪章兑现;没有就删掉此行}
120
+ {要你定的事:一句问题+白话选项+推荐,如「沈栀的金手指每天能用几次?1. 一次(推荐,后面好加码)2. 不限次」;没有就删掉此行}
121
+ 下一步:{如「要接着写第22章正文吗?」「要继续出第27-31章细纲吗?」}
122
+ ```
123
+
124
+ #### Agent 调用:story-architect
125
+
126
+ 已部署时,每批细纲在 story-architect 的新上下文里出,调用见 [agent-calls.md](agent-calls.md);主会话拿到后对每章跑 `check-outline-contract.js`,按建纲批末复核汇报。
127
+
128
+ ---
129
+
130
+ ## 附:按剧情批出细纲与排纲底稿模板
131
+
132
+ ### 按剧情批出细纲(细纲分批边界)
133
+
134
+ 一批细纲 = 卷纲里的一个剧情单元(约 5-15 章)。体量换算:剧情单元字数 ÷ 单章目标字数 → 章数,单章目标字数取本书既有细纲惯例,无惯例按题材节奏档取默认(快节奏/短平快约 2000,均衡约 3000);剧情单元超过 1.5 万字且单元节拍含两个以上独立高潮时拆成多个剧情单元,否则单个剧情单元。剧情单元 >10 章拆两批建纲,两批共享同一次召回;首批 = 前 10 章封顶、可跨单元(跨入的剧情单元建卡时召回一次,余章由后续滚动批共享剧情单元卡结论),停靠规则见上文批次步骤 1。
135
+
136
+ 建卡时做一次**剧情批召回**:读剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件)的「结构分布」「情节点索引」,回查该书 `剧情/节奏.md` 同章节区间的爽点循环 / 触动点与被引情绪模块卡,提炼 5-8 拍共性节拍写入剧情单元卡「单元节拍/章功能分配」,单元情绪引擎字段对照主对标 `剧情/情绪模块.md` 的可复现模块校准。若主产物存在但被引的单个情绪模块卡未命中,只跳过该卡;`剧情/情绪模块.md` 或 `剧情/节奏.md` 文件缺失按 workflow-volume.md「对标节奏迁移」的 fail-fast 先修复。换素材与修硬伤纪律同该节步骤 3/4——保留情绪链和功能位,对象、场景、事件全换,对标弱处理就地修正。结论固化进剧情单元卡后,逐章细纲只消费剧情单元卡,不重读剧情单元。
137
+
138
+ **「只消费剧情单元卡」管的是不重读对标,不冻结逐章建纲。** 排纲当场发现的缺口(某拍无对手、数值没验过、地点无底图、角色既定规矩挡场之类)按新增物三级处置(直接写/写了要报:先落档再引用/先问作者:挂起提案,见上文「缺什么按新增物三级处置」),处置完记一行,批末汇进排纲底稿的「**建纲追加**」小节(见上文批次步骤 5);下一批供给自查以该小节为固定输入(按当场缺口类别加问批前盘点项)。
139
+
140
+ 日更中途发现卷纲缺少「对标剧情参照」等当前协议必需字段时,先补齐卷纲再建细纲;锁定卷纲不得自动回写,必须停在补纲边界。单元节拍分析过程不写进追踪文件,只有最终影响未来连续性的约束或下一章承诺才进入本章追踪事务。
141
+
142
+ ## 排纲底稿模板(`大纲/排纲底稿_{单元ID}.md`)
143
+
144
+ 排纲期的工作底稿,每个剧情单元一份,只在排纲/补纲时读,写正文不读。
145
+
146
+ ```markdown
147
+ # {单元ID} 排纲底稿
148
+
149
+ ## 批次定位
150
+ {每批补纲前先写,见步骤 2:阶段与单元、本批推进目标、可释放与严禁提前释放的信息、章尾钩子的边界;多批时一批一段}
151
+
152
+ ## 供给自查
153
+ {本单元出细纲前产出,见本文件步骤 3。六行:对手供给 / 角色供给 / 能力与金手指供给 / 刻度供给 / 场景与底图供给 / 故事线供给。「写了要报」的发明各列一行「发明了什么+落在哪个设定文件」;「先问作者」的提案列候选+影响面待作者裁定;无缺口写「无缺口」。建纲批末 `check-outline-contract.js --supply {卷纲路径} {单元ID}` 验证本小节存在}
154
+
155
+ ## 建纲追加
156
+ {本批建完后回填,见步骤 5;写正文时申报表「本章没写成的」里「细纲没给」的也追加在这里。逐章落笔时才发现的缺口,一条一行,不与上面六行混写。格式:`第 N 章排到哪一步发现缺什么 / 级别 / 落在哪个设定文件或提案编号`。一条也没有写「无追加」。下一批供给自查以本小节为固定输入}
157
+ ```
@@ -0,0 +1,89 @@
1
+ # workflow-revision.md:大修工作流
2
+
3
+ 作者说「修改/回炉/重写第X章」时用本文件;只改细纲不进本流程(走 workflow-outline.md)。作者要先说清是哪一章,推断不出就问。
4
+
5
+ ---
6
+
7
+ ## Step 1:定位与改动范围
8
+
9
+ 1. 找文件:`正文/第{X}章_*.md`;作者给的是章名就按关键词找,找不到让作者确认。
10
+ 2. **先定范围再读东西**:从作者的话判断改多大——点到了段落或场面(「那场打斗」「结尾那段对话」)就是局部修改;说「重写」「回炉」就是整章重写。判断不了才问,给选项:
11
+
12
+ <!-- author-report -->
13
+ ```md
14
+ 第{X}章《{章名}》想怎么改?
15
+ 1. 只改你点到的地方,其他不动(推荐)
16
+ 2. 按原细纲整章重写
17
+ 3. 先改这章的细纲,再按新细纲重写
18
+ {你想改掉的是什么,一句话说说也行,比如「打脸不够狠」「他俩对话太客气」}
19
+ ```
20
+
21
+ 选 3 → 先按 workflow-outline.md 改细纲,改完回到本流程按整章重写。
22
+
23
+ ---
24
+
25
+ ## Step 2:按范围加载
26
+
27
+ - 都要:待改章全文、`大纲/细纲_第{X}章.md`、`tracking_commit.py check`(取 `state_revision`)与 `追踪/上下文.md`;缺 state 时停止,已有正文的项目先经 `story-import` 生成标准追踪。
28
+ - 局部修改:前一章只看最后几段(第 1 章没有就不看)、后一章只看开头几段,确认衔接;涉及的角色读 `设定/角色/{名}.md` 与 `追踪/角色状态/{名}.md`。
29
+ - 整章重写:前后两章全文,加上细纲点名的角色与设定;第 1 章没有前一章时看 `设定/题材定位.md`。
30
+
31
+ ---
32
+
33
+ ## Step 3:改写与提交前检查
34
+
35
+ 1. **备份**:原文复制为 `正文/第{X}章_章名_原稿_{YYYYMMDD}.md`;用 `{PYTHON} {skill 根}/scripts/storyctl.py wordcount measure --file {正文文件}` 记下原字数。
36
+ 2. **改写**:已部署 narrative-writer 时按 [agent-calls.md](agent-calls.md)「改写一章」交给它;否则主会话自己改,读 `references/writing-craft.md` 与 `references/long-format.md`;改的是情绪对抗、打脸这类戏时,按 SKILL.md「本章技法」只读对应那一节。局部修改只动点到的段落,其余一字不改;不借改稿新增细纲外的剧情。
37
+ 3. **检测**:`{PYTHON} {skill 根}/scripts/storyctl.py chapter check --project {项目根} --chapter {X} --fix-punctuation`,按返回的 `status` 走:
38
+
39
+ | 状态 | 处理 |
40
+ |---|---|
41
+ | `ready` | 往下走 |
42
+ | `blocked` / `invalid` | 改到净再重跑(工程词泄漏也在报告里) |
43
+ | `needs_decision`(字数出带) | 欠字不补;超字把删除区间交写手按 agent-calls「超字一次净删」删一次(自己改就同样只删不加),复检仍带外用下面的字数问法请作者选 |
44
+ | `tool_unavailable`(退出码 3) | 停下,不提交,告诉作者「要装 Node.js 18 或更新版本,才能做改后检查」 |
45
+ | 退出码 2 | 按 `error_code` 修命令重跑 |
46
+ 4. **人物与节奏**:改后的角色行为与设定、前后章一致;改动没把这章的节奏打散。
47
+ 5. **篇幅**:与原文差异超过 30% 或 800 字(取较大)时告诉作者「改后约 X 字,比原来多/少 Y 字,比目标多/少 Z 字」;字数本身不触发再改一遍。
48
+ 6. 需要查证外部事实时 spawn `story-researcher`。
49
+
50
+ ---
51
+
52
+ ## Step 4:级联更新与提交
53
+
54
+ 用一次 `mode=revision` 追踪事务更新;下面几条是修订的要点,[tracking-transaction.md](tracking-transaction.md) 只在报错时读:
55
+
56
+ 1. **重算修订章记录**:先跑 `{PYTHON} {skill 根}/scripts/tracking_commit.py draft --project {项目根} --chapter {X}`,草稿已按本章现有记录预填;对照新正文,仍有效的保留,被推翻的改写或删掉,不清空重写。工具整份重写 `追踪/逐章记录/第{X}章.md`。
57
+ 2. **伏笔当前值**:对受影响 ID 从第 X 章检查到最后已写章 M,提交修订后的**截至 M 章当前状态**。若修订删除了埋设,但后文仍引用该 ID,先列为正文冲突,不能简单删除;确定整条线不存在时才用 `action=delete`。
58
+ 3. **时间与读者认知**:为受影响事件提交客观事实、读者截至 M 章的当前认知、实际揭示状态/章节;删掉的事件用 `action=delete`。未来揭示计划仍留大纲。工具重建作者/读者视图,禁止手改。
59
+ 4. **角色当前快照**:对受影响核心角色从 X 检查到 M,按身份、位置、目标、能力资源、关系对象、已知信息、未结事项分别重算,提交一份截至 M 的完整快照;不得用最后一条单维度变化覆盖其它维度。
60
+ 5. **导入截止范围**:若 X ≤ `_tracking-state.json.imported_through_chapter`,事务为第 X 章新增覆盖记录;导入截止章不变,当前结构化状态按修订结果更新。
61
+ 6. **提交与重试**:跑 `{PYTHON} {skill 根}/scripts/storyctl.py chapter commit --project {项目根} --chapter {X} --input {项目根}/.story/work/第{XXX}章/tracking.json`,它重新计数并清理本章工作目录。带外时先问作者:
62
+
63
+ <!-- author-report -->
64
+ ```md
65
+ 第{X}章改完约 {实际} 字,比目标{少/多}了约 {差额} 字(目标约 {目标} 字)。{一句原因,如「按你说的删掉了那场追逐」}
66
+ 你想怎么处理?
67
+ 1. 就按现在的长度收下(推荐)
68
+ 2. 我再调整这章,往目标靠
69
+ 3. 退回原稿
70
+ ```
71
+
72
+ 不到目标一半时选项 1 不标推荐。选 1 → 改用 `chapter accept-current-length`,不到目标一半、或超字还没压缩过一次会被拒,把差多少字告诉作者,作者明确坚持才加 `--force`;选 2 → 回 Step 3;选 3 → 用备份原稿覆盖回去,不提交。失败时保留草稿,修正后重跑同一命令;通过 `check` 前不修下一章、不写新章。
73
+ 7. **收口**:`{PYTHON} {skill 根}/scripts/tracking_commit.py check --project {项目根}` 验证 state 与派生视图一致。改变了角色状态、关系或世界观设定的,扫一遍后续章正文,把受影响的列进汇报。
74
+
75
+ ---
76
+
77
+ ## Step 5:向作者汇报
78
+
79
+ 按 SKILL.md「面向作者的汇报」;追踪修订与各项扫描只作内部核对。
80
+
81
+ <!-- author-report -->
82
+ ```md
83
+ 第{X}章《{章名}》改好了,原稿留着,想退回随时说:
84
+ - {改了什么,用故事话:原来怎样 → 现在怎样}
85
+ - 篇幅:{差异超过步骤 3 第 5 条的阈值才写:约 X 字,比原来多/少约 Y 字;没超就删掉这行}
86
+ {后面受影响的章:「第{X+1}章《{章名}》里{谁/什么}还按旧说法写,要一起改吗?1. 一起改(推荐)2. 先不动」;没有就写「后面的章不受影响」}
87
+ ```
88
+
89
+ 连续改多章时逐章走 Step 1-5;改完发现后续不一致,列出受影响的章由作者决定是否现在改。