@oh-story/dsh 0.1.10 → 0.1.12

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 (444) hide show
  1. package/README.md +11 -11
  2. package/lib/client.js +7 -3
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/manifest.json +212 -142
  5. package/lib/drama/skills/short-drama/SKILL.md +14 -2
  6. package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
  7. package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
  8. package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
  9. package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
  10. package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
  11. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
  12. package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
  13. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
  14. package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
  15. package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
  16. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
  17. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
  18. package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
  19. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
  20. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
  21. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
  22. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
  23. package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
  24. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
  25. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
  26. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
  27. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
  28. package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
  29. package/lib/drama/skills/short-drama-edit/SKILL.md +43 -20
  30. package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
  31. package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
  32. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
  33. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
  34. package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
  35. package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
  36. package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
  37. package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
  38. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
  39. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
  40. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
  41. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
  42. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
  43. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
  44. package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
  45. package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
  46. package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +4 -2
  47. package/lib/drama/skills/short-drama-edit/references/cut-craft.md +3 -1
  48. package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +6 -2
  49. package/lib/drama/skills/short-drama-edit/references/generated-footage.md +12 -6
  50. package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +13 -8
  51. package/lib/drama/skills/short-drama-edit/references/stage-contract.md +2 -0
  52. package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1153 -121
  53. package/lib/drama/skills/short-drama-edit/scripts/selftest.py +49 -9
  54. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
  55. package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
  56. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
  57. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
  58. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
  59. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
  60. package/lib/drama/skills/short-drama-review/SKILL.md +2 -2
  61. package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
  62. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
  63. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
  64. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -0
  65. package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
  66. package/lib/drama/skills/short-drama-storyboard/SKILL.md +13 -5
  67. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
  68. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
  69. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +82 -14
  70. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +4 -2
  71. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +5 -3
  72. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +12 -0
  73. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
  74. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
  75. package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +40 -1
  76. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +20 -14
  77. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +1 -1
  78. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +8 -7
  79. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
  80. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -0
  81. package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
  82. package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
  83. package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
  84. package/lib/drama/skills/short-drama-write/SKILL.md +8 -3
  85. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
  86. package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
  87. package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
  88. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
  89. package/lib/index.js +71 -21
  90. package/lib/index.js.map +3 -3
  91. package/lib/oh-story/manifest.json +545 -310
  92. package/lib/oh-story/roles/chapter-extractor.md +11 -11
  93. package/lib/oh-story/roles/character-designer.md +1 -2
  94. package/lib/oh-story/roles/consistency-checker.md +11 -9
  95. package/lib/oh-story/roles/narrative-writer.md +24 -25
  96. package/lib/oh-story/roles/story-architect.md +9 -61
  97. package/lib/oh-story/roles/story-explorer.md +20 -125
  98. package/lib/oh-story/roles/story-researcher.md +0 -1
  99. package/lib/oh-story/skills/story/SKILL.md +6 -6
  100. package/lib/oh-story/skills/story/VERSION +1 -1
  101. package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
  102. package/lib/oh-story/skills/story/references/author-memory.md +40 -118
  103. package/lib/oh-story/skills/story/scripts/author_memory_commit.py +3 -3
  104. package/lib/oh-story/skills/story-deslop/SKILL.md +24 -25
  105. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
  106. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +1 -1
  107. package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
  108. package/lib/oh-story/skills/story-deslop/references/author-memory.md +40 -118
  109. package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
  110. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +21 -4
  111. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
  112. package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +3 -3
  113. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
  114. package/lib/oh-story/skills/story-import/SKILL.md +63 -579
  115. package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
  116. package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
  117. package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
  118. package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
  119. package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
  120. package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
  121. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
  122. package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
  123. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +95 -91
  124. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
  125. package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
  126. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +11 -9
  127. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
  128. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +101 -14
  129. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +278 -23
  130. package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +179 -23
  131. package/lib/oh-story/skills/story-long-analyze/SKILL.md +28 -50
  132. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +12 -5
  133. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +1 -1
  134. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
  135. package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
  136. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +21 -55
  137. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
  138. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
  139. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
  140. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
  141. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
  142. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +17 -0
  143. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +1 -1
  144. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
  145. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +47 -8
  146. package/lib/oh-story/skills/story-long-scan/SKILL.md +41 -193
  147. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
  148. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
  149. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
  150. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
  151. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
  152. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
  153. package/lib/oh-story/skills/story-long-write/SKILL.md +32 -73
  154. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
  155. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +1 -1
  156. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +18 -201
  157. package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
  158. package/lib/oh-story/skills/story-long-write/references/author-memory.md +40 -118
  159. package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
  160. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +6 -10
  161. package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
  162. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
  163. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
  164. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
  165. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
  166. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +3 -2
  167. package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
  168. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
  169. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
  170. package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
  171. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
  172. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
  173. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
  174. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
  175. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
  176. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
  177. package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -6
  178. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
  179. package/lib/oh-story/skills/story-long-write/references/reference-index.md +4 -4
  180. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
  181. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
  182. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
  183. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
  184. package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
  185. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +11 -9
  186. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +33 -44
  187. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +18 -51
  188. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
  189. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +53 -67
  190. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -251
  191. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
  192. package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +5 -3
  193. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +18 -56
  194. package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +3 -3
  195. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
  196. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +96 -16
  197. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
  198. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +101 -14
  199. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
  200. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +2 -1
  201. package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +250 -50
  202. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +278 -23
  203. package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +179 -23
  204. package/lib/oh-story/skills/story-review/SKILL.md +19 -273
  205. package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
  206. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +1 -1
  207. package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
  208. package/lib/oh-story/skills/story-review/references/author-memory.md +40 -118
  209. package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
  210. package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
  211. package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
  212. package/lib/oh-story/skills/story-review/references/review-quality.md +2 -1
  213. package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
  214. package/lib/oh-story/skills/story-review/references/solo.md +52 -0
  215. package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
  216. package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
  217. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +11 -9
  218. package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +3 -3
  219. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
  220. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +278 -23
  221. package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +179 -23
  222. package/lib/oh-story/skills/story-setup/SKILL.md +69 -458
  223. package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
  224. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +1 -1
  225. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
  226. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
  227. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
  228. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +21 -4
  229. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
  230. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
  231. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
  232. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
  233. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
  234. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
  235. package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
  236. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
  237. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
  238. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
  239. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
  240. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
  241. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
  242. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
  243. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
  244. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
  245. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +4 -4
  246. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +18 -56
  247. package/lib/oh-story/skills/story-setup/references/diagnostics.md +3 -3
  248. package/lib/oh-story/skills/story-short-analyze/SKILL.md +37 -110
  249. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
  250. package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
  251. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
  252. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
  253. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
  254. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
  255. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
  256. package/lib/oh-story/skills/story-short-analyze/references/{material-decomposition.md → stage4-6-reversal-summary.md} +303 -374
  257. package/lib/oh-story/skills/story-short-scan/SKILL.md +30 -64
  258. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
  259. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
  260. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
  261. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
  262. package/lib/oh-story/skills/story-short-write/SKILL.md +23 -34
  263. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
  264. package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
  265. package/lib/oh-story/skills/story-short-write/references/author-memory.md +40 -118
  266. package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
  267. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
  268. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
  269. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
  270. package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
  271. package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -49
  272. package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
  273. package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
  274. package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
  275. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
  276. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
  277. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
  278. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
  279. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
  280. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +19 -12
  281. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +22 -32
  282. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +84 -17
  283. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
  284. package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +3 -3
  285. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
  286. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
  287. package/lib/types/client/video-studio.d.ts.map +1 -1
  288. package/lib/types/native-hooks.d.ts +2 -2
  289. package/lib/types/native-hooks.d.ts.map +1 -1
  290. package/lib/types/role-tool.d.ts.map +1 -1
  291. package/lib/types/skill-provider.d.ts.map +1 -1
  292. package/lib/types/video-project.d.ts.map +1 -1
  293. package/lib/types/workspace-route.d.ts.map +1 -1
  294. package/lib/video-recap/CHANGELOG.md +60 -1
  295. package/lib/video-recap/README.en.md +348 -137
  296. package/lib/video-recap/README.md +340 -136
  297. package/lib/video-recap/manifest.json +406 -251
  298. package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
  299. package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
  300. package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
  301. package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
  302. package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
  303. package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
  304. package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
  305. package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
  306. package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
  307. package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
  308. package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
  309. package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
  310. package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
  311. package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
  312. package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
  313. package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
  314. package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
  315. package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
  316. package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
  317. package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
  318. package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
  319. package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
  320. package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
  321. package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
  322. package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
  323. package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
  324. package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
  325. package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
  326. package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
  327. package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
  328. package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
  329. package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
  330. package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
  331. package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
  332. package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
  333. package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
  334. package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
  335. package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
  336. package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
  337. package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
  338. package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
  339. package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
  340. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
  341. package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
  342. package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
  343. package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
  344. package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
  345. package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
  346. package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
  347. package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
  348. package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
  349. package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
  350. package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
  351. package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
  352. package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
  353. package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
  354. package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
  355. package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
  356. package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
  357. package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
  358. package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
  359. package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
  360. package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
  361. package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
  362. package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
  363. package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
  364. package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
  365. package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
  366. package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
  367. package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
  368. package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
  369. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
  370. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
  371. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
  372. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
  373. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
  374. package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
  375. package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
  376. package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
  377. package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
  378. package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
  379. package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
  380. package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
  381. package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
  382. package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
  383. package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
  384. package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
  385. package/lib/video-recap/skills/video-script/SKILL.md +16 -13
  386. package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
  387. package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
  388. package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
  389. package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
  390. package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
  391. package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
  392. package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
  393. package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
  394. package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
  395. package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
  396. package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
  397. package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
  398. package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
  399. package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
  400. package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
  401. package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
  402. package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
  403. package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
  404. package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
  405. package/lib/video-recap/skills/video-understanding/scripts/{agent_brief.py → briefing/builder.py} +38 -35
  406. package/lib/video-recap/skills/{video-script/scripts/brief_context.py → video-understanding/scripts/briefing/context.py} +4 -35
  407. package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
  408. package/lib/video-recap/skills/video-understanding/scripts/{brief_timeline.py → briefing/timeline.py} +5 -6
  409. package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
  410. package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
  411. package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
  412. package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
  413. package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
  414. package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
  415. package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
  416. package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
  417. package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
  418. package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
  419. package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
  420. package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
  421. package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
  422. package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
  423. package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
  424. package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
  425. package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
  426. package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
  427. package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
  428. package/package.json +41 -41
  429. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -538
  430. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -603
  431. package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
  432. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
  433. package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
  434. package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
  435. package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
  436. package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
  437. package/lib/video-recap/skills/video-script/scripts/agent_brief.py +0 -399
  438. package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +0 -327
  439. package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
  440. package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +0 -348
  441. package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
  442. /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
  443. /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
  444. /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
@@ -1,54 +1,39 @@
1
1
  ---
2
2
  name: story-long-write
3
3
  version: 1.0.0
4
- description: "长篇网文规划与写作。支持只讨论结构、只写大纲或指定细纲,明确要求正文后再写章节。触发方式:/story-long-write、/写长篇、「帮我开书」「规划剧情」「写大纲」「补细纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。"
4
+ description: "长篇网文规划与写作。支持只讨论结构、只写大纲或指定细纲,明确要求正文后再写章节。触发方式:/story-long-write、/写长篇、「帮我开书」「定设定」「出卷纲」「规划剧情」「写大纲」「补细纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。"
5
5
  metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
6
6
  ---
7
7
  # story-long-write:长篇网文写作
8
8
 
9
- 你是网络小说创作教练。你的任务是帮用户从零开始写一本长篇网络小说,从选题确认到大纲搭建再到正文输出。
9
+ 你是网络小说创作教练,帮用户从选题、大纲到正文写完一本长篇网络小说。
10
10
 
11
- ## 章节 Reference Gate(强制,先读后写)
11
+ ## 写前必读(强制,先读后写)
12
12
 
13
- 任何创建或修改长篇故事文件的动作前,先判断场景并完成本轮门禁。**只读本 SKILL.md 不算完成;`rg` 检索或局部摘读也不算完整读取。**
13
+ 任何创建或修改长篇故事文件的动作前,先判断场景并读完下列文件。**只读本 SKILL.md 不算完成;`rg` 检索或局部摘读也不算完整读取。**
14
14
 
15
15
  必须分块读到 EOF:
16
16
 
17
- 1. 规划/开书/补纲先完整读取 `references/workflow-setup.md`;写指定章读取 `references/workflow-chapter.md`;日更/大修先读取 `references/workflow-daily.md` 或 `references/workflow-revision.md`,进入正文前再完整读取 `workflow-chapter.md`。
18
- 2. 主会话直接写正文时,首次落笔前完整读取 `references/long-format.md`、`references/writing-craft.md`、`references/long-chapter-quality.md`、`references/long-chapter-hooks.md`;交给 narrative-writer 时,由该 agent 按自己的 reference 表完成同等写前读取,主会话不得用未读 reference 的临时 prompt 替代。
19
- 3. 悬疑、惊悚、异常线索章加读 `references/long-suspense.md`;身份/认知/立场反转章加读 `references/long-reversal.md`。
20
- 4. 正文写前,references 读完后立即重读当前用户请求、本章细纲和卷纲,先在上下文里**记下本轮约束**:原样记录用户明确字数范围、必发生、禁止发生、精确时间锚与本章停笔点、章尾新债。references 只提供技法,不得覆盖这些项目事实;用户明确范围优先于自动 ± 比例带。交付前逐项复核:字数带外按 `workflow-chapter.md` 的收口流程交用户处置,不自动补字;其余项越界不算完成。
17
+ 1. 规划按时刻读:定方向、定设定读 `references/workflow-setup.md`,出卷纲读 `references/workflow-volume.md`,出细纲或补纲读 `references/workflow-outline.md`,只读当前时刻的;写指定章读取 `references/workflow-chapter.md`;日更先读取 `references/workflow-daily.md`,进入正文前再完整读取 `workflow-chapter.md`;大修先读 `references/workflow-revision.md`,改稿时还要读什么由它写明。
18
+ 2. 主会话直接写正文时,首次落笔前完整读取 `references/long-format.md` 与 `references/writing-craft.md`(和写手同一套技法);`references/long-chapter-quality.md`、`references/long-chapter-hooks.md` 只在排查具体问题时读,去味走检测器,不预读。交给 narrative-writer 时,由该 agent 按自己的 reference 表完成写前读取,主会话不得用未读 reference 的临时 prompt 替代。
19
+ 3. 本章技法按下方「本章技法」一段选,至多一份;主会话自己写时按那段只读指定小节,这是本条唯一允许的按节读。
20
+ 4. 正文写前,references 读完后立即重读当前用户请求、本章细纲和卷纲,先在上下文里**记下本轮约束**:原样记录用户明确字数范围、必发生、禁止发生、精确时间锚与本章停笔点、章尾新债。references 只提供技法,不得覆盖这些项目事实;作者给的字数范围写在细纲「字数范围」行(命令参数只作临时覆盖),有它就不用默认 ±15%。交付前逐项复核:字数带外按 `workflow-chapter.md` 的收口流程交用户处置,不自动补字;其余项越界不算完成。
21
21
 
22
- 任一必需路径不存在、不可读或未读完时立即停止,报告准确路径,**不得先写正文再补读**。门禁按当前任务、当前会话重新执行;旧会话的“读过”不能沿用。
22
+ 任一必需路径不存在、不可读或未读完时立即停止,报告准确路径,**不得先写正文再补读**。写前必读按当前任务、当前会话重新执行;旧会话的“读过”不能沿用。
23
23
 
24
24
  ---
25
25
 
26
26
  > 内置适配 Claude Code / OpenCode / Codex / Antigravity / ZCode / OpenClaw。专业 agent 只查当前端 canonical 目录(`.claude/agents`、`.opencode/agents`、`.codex/agents` TOML、`.agents/agents`);Antigravity 用 `invoke_subagent` + 同名 `TypeName`。文件或运行时能力缺失、返回 unknown agent,或当前为不执行 custom agents 的 ZCode 3.3.4 时,报告 fallback 并 solo/direct 执行。
27
27
  >
28
- > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 32` 不一致时(标记缺失、字段缺失/非整数、小于或大于 32)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 32)` 并提示重新运行 `/story-setup` 后新开会话;大于 32 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。
28
+ > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 34` 不一致时(标记缺失、字段缺失/非整数、小于或大于 34)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时用一句白话提示作者「写作助手是旧版,运行 /story-setup 后新开对话」,`Notice: agents bundle 版本不匹配(项目 {N},本版 34)` 原文写进技术备注行;大于 34 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,`Fallback: ... -> solo` 同样只进技术备注行。
29
29
 
30
30
  **文风裁决**:正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md),加载本书文风并形成 `style_resolution`;无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references;同一裁决交给后续执行者。
31
31
 
32
32
  ## 核心方法
33
33
 
34
- 我们写网文先抓情绪,再用验证过的方法可靠地交付这个情绪,灵感只做素材来源。
34
+ 先抓情绪,再用验证过的模式可靠交付,灵感只做素材:每个场景服务一个说得清的目标情绪;从对标里找验证过的剧情模式,把对标角色当功能位,用本书的角色和素材填;写每章只读「不知道就会写错」的状态、伏笔与设定。契约与推进决策先过 `references/reader-contract-and-progression.md`「契约四问」。作者记忆:写正文时组装脚本已代查注入;其他任务直接跑 `{PYTHON} {skill 根}/scripts/author_memory_commit.py query --workspace {放 .active-book 的那层} --book-root {书目录} --kind …`(规划查 story_design、workflow、interaction,改稿查 prose_style、story_design;≤2KB,无记忆返回空),结果只给主会话或执行者,当前请求与本书文风优先;作者说出要长期记住的偏好时才读 [references/author-memory.md](references/author-memory.md) 按它 `record` 写入、回传回执。
35
35
 
36
- 1. **先定情绪,再定故事**。每个场景都必须服务于一个明确的情绪目标。说不清交付什么情绪的场景不该存在。
37
- 2. **从验证过的模式出发**。先问"什么被验证过有效,我如何重新交付",少从"我想写什么"直接起步。扫榜找方向,拆文找模块,对标找节奏。
38
- 3. **用模块组装,不要重新发明**。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块,把对标书的具体角色看成功能位(对手/盟友/催化剂),再映射到你的角色。用你自己的素材填充这些功能位。
39
- 4. **只加载必需信息**。写每章只读“不知道就会写错”的角色状态、待收伏笔、相关设定。其余留在文件系统里。
40
- 5. **契约与推进决策走权威参考文件**。涉及读者契约、主角代理权、利益安全、终局底牌与升级台阶、机构/势力边界和契约风险判定时,先按 `references/reader-contract-and-progression.md`「契约四问」校准,不在 SKILL.md 内复制长规则。
41
- 6. **作者记忆**:写正文时组装脚本已代查并注入;其他任务按 [references/author-memory.md](references/author-memory.md) 带 `--book-root` 查询 ≤2KB active 项交执行者;当前请求、本书文风优先。长期声明用 `record` 写入、回传回执。
42
-
43
- | 题材 | 核心情绪 | 重点参考 |
44
- |------|---------|---------|
45
- | 打脸/逆袭 | 爽感释放 | plot-emotion-system.md + style-combat-face.md |
46
- | 身份反转 | 震撼+痛快 | long-reversal.md |
47
- | 感情拉扯 | 意难平 | emotional-methods.md |
48
- | 悬疑/惊悚 | 紧张+好奇 | long-suspense.md |
49
- | 日常装逼 | 期待感 | long-chapter-hooks.md |
50
-
51
- > **情绪反查题材**:如果用户先说了情绪感觉但没提题材,从上表反向匹配——例如「爽感释放」指向打脸/逆袭,再从 `long-genre-catalog.md` 找该题材下的细分方向。
36
+ **本章技法(每章至多读一份)**:按细纲主功能选——打脸/逆袭(爽感释放)`style-combat-face.md`;身份/认知/立场反转(震撼+痛快)`long-reversal.md`;感情拉扯(意难平)`emotional-methods.md`,自己写时加 `emotion-on-page.md`;悬疑/惊悚/异常线索(紧张+好奇)`long-suspense.md`;日常装逼(期待感)`long-chapter-hooks.md`。都不对应就不读,按 writing-craft 写。交给写手时只在 prompt「本章技法」填类别,由写手整份读;主会话自己写正文时只读该文件的「决策路由」和它指向的那一节(先看标题定位,不整读),日更一批只读一份,按本批最需要的那章选,其余章按 writing-craft 写。作者先说情绪没说题材时按括号反查,再从 `long-genre-catalog.md` 找细分方向。
52
37
 
53
38
  ---
54
39
 
@@ -61,18 +46,17 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
61
46
  | **结构讨论** | "只讨论/推敲故事结构" | 只交付结构方案,不建工程、不自动落盘;不要求先填完设定或细纲 |
62
47
  | **大纲规划** | "写大纲/规划剧情/规划全书/规划第X卷/开新卷" | 按需取 Phase 1→3,交付所请求大纲/卷纲及必要设定;不自动展开细纲或初始化追踪 |
63
48
  | **细纲规划** | "出细纲/补纲/扩纲/补细纲/写或修改第N章细纲" | Phase 3:既有单元内只补/改点名章;需要新单元才走「中途补纲/扩纲小流程」。指定范围不扩到整单元;未指定时按剧情批建纲 |
64
- | **开书** | "帮我开书",未限定规划层级 | Phase 1→2→3:建项目、核心设定、卷纲与首批 10 章细纲;**默认停在细纲交付,不自动写正文** |
49
+ | **开书** | "帮我开书",未限定规划层级 | 按确认点逐个走:定方向→定设定→卷纲→首批 10 章细纲,每个确认点作者说继续才往下;**最远停在细纲交付,不自动写正文** |
50
+ | **定设定** | "定设定",或已有题材定位、还没有角色与关系 | 定设定时刻:`references/workflow-setup.md` Phase 2,交付设定后停 |
65
51
  | **写指定章** | "写第 N 章" / "写第1章" / "开书并写首章",对象是正文 | Phase 4→5,只写点名章后停止;缺前置时先补必要设定、卷纲和点名章细纲,不套用完整开书的 10 章默认 |
66
52
  | **日更续写** | 关键词("日更"/"续写"/"继续写")**且**项目已有正文+追踪 | 加载 `references/workflow-daily.md` |
67
53
  | **大修** | "修改第X章" / "回炉" / "重写第X章",对象是已写正文 | 加载 `references/workflow-revision.md`;只改细纲不进此流程 |
68
54
 
69
55
  **对象优先**:"写/修改第N章细纲"是规划,不因命中"写/修改第N章"而写正文;"以后再写正文"不是本轮授权。仅规划要求优先于旧日更任务,停止旧批量。对象不明或同一请求范围冲突时,只确认冲突项。
70
56
 
71
- **规划续接**:保留当前任务范围;"继续/按这个来/确认方案"不扩大范围,完成即停,不自动转细纲或正文。"继续写/接着写"指正文:下一章已有细纲时按写正文处理,但上一轮在规划就只问一句「要接着写第N章正文吗?」(默认是),不列选项表;缺细纲则问是否先补这一章细纲。新明确请求可调整规划层级/范围;不把规划模式写入追踪或作者记忆,不调用 narrative-writer,委派传同一范围和停点。
72
-
73
- **转入正文**:明确正文请求只授权进入既有写作流程,不等于可以直接落笔。创建/修改正文前,重新完成本轮全部正文 Reference Gate,并按 workflow-chapter 处理缺 state、使 `tracking_commit.py check` 通过;任一未完成则停止,不落正文。之后仍按原流程写作、质检、提交追踪,无须再问是否继续。
57
+ **规划续接**:"继续/按这个来/确认方案"不扩大范围,完成即停,不自动转细纲或正文;"继续写/接着写"指正文——下一章有细纲就写,上一轮在规划就只问一句「要接着写第N章正文吗?」(默认是),缺细纲则问是否先补。规划模式不写入追踪或作者记忆,不调用 narrative-writer。开新卷时新角色/势力/设定回 Phase 2 增量补,Phase 3 只做到请求层级。
74
58
 
75
- **开新卷**:新角色/势力/设定按需回 Phase 2 增量补充;Phase 3 只做到本次请求的层级,不自动转正文。
59
+ **转入正文**:明确的正文请求只授权进入写作流程。落正文前重新完成本轮「写前必读」,按 workflow-chapter 处理缺 state、使 `tracking_commit.py check` 通过,任一未完成就停止;之后按原流程写作、质检、提交,不再问是否继续。
76
60
 
77
61
  ### 裸调用与停靠点(防失控)
78
62
 
@@ -82,58 +66,33 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
82
66
  - 有纲无正文 → 「补细纲」「写第1章」;
83
67
  - 有正文+追踪 → 展示进度与下一章细纲状态,列「规划下一卷」「日更2章」「修改第X章」。
84
68
 
85
- **正文批量上限**:写正文必须由用户显式给出章节范围或日更意图。未给数量时,单章写作默认 1 章;日更 workflow 默认 2-3 章;用户给出 N 时按 N 执行但单轮最多 3 章,超过 3 章先拆成本轮 3 章并在进度摘要里提示后续再继续。
86
-
87
- **匹配顺序**:只规划按 结构讨论 → 细纲规划 → 大纲规划 → 开书,越窄越优先;要正文按 大修 → 写指定章 → 日更续写。日更前置不齐则提示补齐或写第1章,不直接写一批。
88
-
89
- **日更续接**:用户未改变任务时,同批"继续/续写/日更"仍走 `references/workflow-daily.md` 的完整串行流程,不直接落正文。正常批量不重复确认;阻塞或用户要求逐章确认时才暂停。切到规划后按上方「规划续接」,不恢复旧日更批量。
69
+ **正文批量上限**:写正文须用户显式给出章节范围或日更意图;单章默认 1 章,日更默认 2-3 章,单轮最多 3 章,超出的在汇报里提示下轮继续。**匹配顺序**:只规划按 结构讨论 → 细纲规划 → 大纲规划 → 开书,越窄越优先;要正文按 大修 → 写指定章 → 日更续写;日更前置不齐则提示补齐或写第1章。同批"继续/续写/日更"仍走 workflow-daily 的完整串行流程;切到规划后不恢复旧日更批量。
90
70
 
91
71
  无法判断场景时,给 2-4 个白话选项(如「只聊结构」「写大纲」「写第N章正文」)让用户选,不贴场景表,也不开放式提问。
92
72
 
93
73
  ### 面向作者的汇报
94
74
 
95
- 所有给作者看的汇报、提问和停下说明只讲三件事:写了/改了什么(章名、发生了什么);要作者定的事(一句白话问题+白话选项+推荐默认);下一步。不写脚本、字段、参数名、状态码和内部清单名(如 排纲自查、供给自查、S1-S4、字数带);编号必带故事标签,如「伏笔 F057(那封信的去处)」。检查结果一句白话带过,如「自查过设定和前文,没发现冲突」。回执、Notice、Fallback 等机器行放末尾一行。汇报照各 workflow 的模板写,不带代码块围栏;子 agent 返回的术语由主会话翻译后再说。
75
+ 所有给作者看的汇报、提问和停下说明只讲三件事:写了/改了什么(章名、发生了什么);要作者定的事(一句白话问题+白话选项+推荐默认);下一步。不写脚本、字段、参数名、状态码和内部清单名(如 排纲自查、供给自查、S1-S4、字数带);编号必带故事标签,如「伏笔 F057(那封信的去处)」。检查结果一句白话带过,如「自查过设定和前文,没发现冲突」。回执、Notice、Fallback 等机器行只放最末一行「技术备注:」,其前可有一句下一步建议(如新开对话)。汇报照各 workflow 的模板写,不带代码块围栏;子 agent 返回的术语由主会话翻译后再说。
96
76
 
97
77
  ### 路径与术语约定
98
78
 
99
- > **拆文库/对标关系**:`拆文库/` = analyze skill 的原始产出,是数据源。`对标/` = 写作项目的引用视图,存放与本项目相关的对标数据子集。首次引用对标书时,从 `拆文库/{书名}/` 复制相关子目录(章节/角色/剧情/设定)、`剧情/节奏.md`、`剧情/情绪模块.md`、`文风.md` 和 `拆文报告.md` 到 `对标/{书名}/`。
79
+ > `{PYTHON}` 依次试 `python3`、`python`、`py -3`,用第一个能跑的;`{skill 根}` 是本 skill 所在目录。
100
80
  >
101
- > **对标书路径查找**:优先 `{项目}/对标/{书名}/`,不存在则回退 `拆文库/{书名}/`。下文所有对标数据加载均使用此规则。
81
+ > **对标书路径查找**:优先 `{项目}/对标/{书名}/`,不存在则回退 `拆文库/{书名}/`(`拆文库/` 是拆文原始产出,`对标/` 是本项目引用视图,首次引用的复制规则见 workflow-setup.md「对标发现」第 3 条)。
102
82
  >
103
- > **卷纲不整读(取段器)**:任何场景要卷纲内容一律走
104
- > `{PYTHON} {skill 根}/scripts/outline_view.py --unit {单元ID} {卷纲路径}`(脚本统一输出 UTF-8),
105
- > 只要契约不要单元时用 `--contract`,先看一屏目录用 `--toc`。
106
- > 排纲期的工作底稿(供给自查、建纲追加)不写进卷纲,放 `大纲/排纲底稿_{单元ID}.md`,只在排纲/补纲时读,写正文不读;底稿里对写作有约束力的条目,建纲时写进单元卡或细纲。
107
- > 老卷纲里还留着「作用域:批次底稿」段的,排纲时加 `--stage outline` 一并取出,写正文照常不加。
108
- > 取的是**闭包不是点名段**——输出恒等于「全部卷级常任段 + 该单元的单元级段」,逐章表(情绪弧线等)按该单元章区间裁行,
109
- > 带退役标记的行默认不输出(要看历史加 `--history`)。
110
- > 找不到单元时脚本 exit 1 并报错,不静默降级——报错就去核对单元ID或先补卷纲,不要改用整读绕过。
111
- > 段头的 `> 作用域:` 声明是这套的地基,格式与 checker 见 `references/artifact-protocols.md` 卷纲模板;
112
- > 未声明作用域的段会被保守纳入并告警,跑 `outline_view.py --check {卷纲路径}` 修。
113
-
114
- ---
115
-
116
- ### Phase 1:确认选题方向
117
-
118
- 消费 `选题决策.md`、确认题材方向、做对标发现并登记主/副对标书。
119
-
120
- **执行前先读 [references/workflow-setup.md](references/workflow-setup.md) 的「Phase 1:确认选题方向」节**,按其中步骤执行。
121
-
122
- ---
123
-
124
- ### Phase 2:核心设定
125
-
126
- 产出核心设定表,并创建 `设定/关系.md`、`设定/题材定位.md`、`设定/题材正文提示卡.md`。
127
-
128
- **执行前先读 [references/workflow-setup.md](references/workflow-setup.md) 的「Phase 2:核心设定」节**。
83
+ > **卷纲不整读**:一律走 `{PYTHON} {skill 根}/scripts/outline_view.py --unit {单元ID} {卷纲路径}`(只要契约用 `--contract`,看目录用 `--toc`);找不到单元就核对单元ID或先补卷纲,不改用整读。排纲底稿放 `大纲/排纲底稿_{单元ID}.md`,只在排纲/补纲时读;取段器的作用域、历史与校验选项见 artifact-protocols.md 卷纲模板。
84
+ >
85
+ > **新增物三级**(排纲、写正文、处置共用;只看下一章需不需要知道它存在过):
86
+ > - **直接写**:微连接、路人、器物、地名细部、一次性对话、现场细节;不申报。
87
+ > - **写了要报**:具名配角、势力、复用地点属性、能力形态、规矩、刻度、新伏笔、新关系或承诺、给主角留下的东西;照写并逐条进申报表(类型/名目/落在哪/后续义务;无写 `0`;末行「本章没写成的」),主会话核对后才算续写事实。
88
+ > - **先问作者**:新主线事件或反转、金手指规则与力量档位、真相或伏笔结算、经济锚点、读者契约、提前写后续章、改变细纲已定结果或人物决定、卷纲新增编号、碰主推线或终局底牌、与既有裁定或承诺冲突;写正文时不写,排纲时挂起列候选,由主会话问作者。
89
+ > 拿不准:写时按写了要报,处置时按先问作者。
129
90
 
130
91
  ---
131
92
 
132
- ### Phase 3:大纲搭建
133
-
134
- 产出全书体量与阶段总览、卷级大纲、逐章细纲;含排纲自查、分批建纲与「中途补纲/扩纲小流程」。
93
+ ### Phase 1–3:开书与规划
135
94
 
136
- **执行前先读 [references/workflow-setup.md](references/workflow-setup.md) 的「Phase 3:大纲搭建」节**。
95
+ 按作者确认点分时刻读(见首屏写前必读第 1 条);每个时刻文件开头写了本时刻的交接规则,出卷纲、出细纲时不必再读 workflow-setup.md。
137
96
 
138
97
  ---
139
98
 
@@ -141,11 +100,11 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
141
100
 
142
101
  #### 项目文件与产物
143
102
 
144
- 创建目录、首次引用对标、定位产物或遇到文件缺失时,先完整读取 [references/project-files.md](references/project-files.md),按其中目录结构、产物映射、缺失处理和权威顺序执行;正常续写不重复加载目录表。
103
+ 要找某类产物放哪、或修复缺失文件时,完整读取 [references/project-files.md](references/project-files.md) 照做;开书建文件按各时刻文件写明的路径直接落盘,写正文时缺文件按 workflow-chapter 开头停下修,都不必先读它。
145
104
 
146
105
  #### 单章写作流程
147
106
 
148
- **执行前先读 [references/workflow-chapter.md](references/workflow-chapter.md)**,按其中的单章写作流程(步骤 1-13)、字数测量权威与质量检查执行。日更批量另加载 `references/workflow-daily.md` 控制批次。
107
+ **执行前先读 [references/workflow-chapter.md](references/workflow-chapter.md)**,按其步骤 1-13 执行。日更批量另加载 `references/workflow-daily.md`。
149
108
 
150
109
  #### 追踪
151
110
 
@@ -169,7 +128,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
169
128
 
170
129
  ## 参考资料索引
171
130
 
172
- 阶段必读项按首屏 Reference Gate 执行;其他题材、结构与写作技法按 [参考索引](references/reference-index.md) 的加载条件选用。
131
+ 阶段必读项按首屏「写前必读」执行;写正文不按索引加读;规划或作者点名问技法时按 [参考索引](references/reference-index.md) 的加载条件选用。
173
132
 
174
133
  ## 语言
175
134
 
@@ -0,0 +1,47 @@
1
+ # agent-calls.md:spawn 子代理的调用方式
2
+
3
+ 只在要 spawn 对应 agent 时读;主会话自己写正文、自己排纲时不读。何时调用由各流程文件决定,这里只放 prompt 与必须附带的内容。Antigravity 用 `invoke_subagent` + 同名 `TypeName`。
4
+
5
+ ## narrative-writer:写一章
6
+
7
+ 全章细纲交给写手统筹编排,默认同一 session 按前后两组交付:按实际叙述顺序在自然转场或因果停顿处分组,不在一句对话或同一动作中间截断,可交错情节点但不增删批准内容、不拆逐点字数配额;写手先把前组写到工作目录 `前组.md`,主会话只调用一次 `storyctl.py wordcount checkpoint --file {segment} --project {项目根} --chapter {N}`,把 `actual / remaining_user_range` 连同后组交回同一写手,两组按原文拼接,不回改前组追字数。作者明确要求一次成文时执行安排填「全章」,直接落盘,不跑 checkpoint。
8
+
9
+ 组装脚本的输出(`====` 以上)就是 prompt 骨架。**主会话填九槽**(搜 `[主会话填]`):执行安排 / 本章意图 / 作者本轮要求 / 本章技法(只填类别,写手自己读)/ 本节速记 / 涉及角色(列名字,角色卡写手自己读)/ `genre_prose_card` / 必读设定 / `style_resolution`;外加脚本标出的条件槽(降档不成立时的情绪与节奏召回;作者偏好限定范围记忆,适用时带 `--genre`/`--workflow` 跑 SKILL.md「核心方法」的 query 命令补查)。`author_preferences` 由脚本注入,只作低优先级倾向。空槽以外一字不改,整份照抄进 Agent prompt。脚本**跑不起来**时读 [writer-prompt-fallback.md](writer-prompt-fallback.md) 手动组装并报 `Fallback: build_writer_prompt -> 手动组装`。
10
+
11
+ ## story-architect:定设定、出卷纲、出一批细纲(换新上下文)
12
+
13
+ 先跑 `{PYTHON} {skill 根}/scripts/build_architect_brief.py --project {书目录} --task world`(卷纲 `--task volume --volume {N}`,细纲 `--task outline --chapters {A-B}`,一批最多 10 章),只取输出里的任务包路径,不读包的内容。交接前确认作者在对话里定下的方向、偏好和否掉的方案都已写进 `设定/`。
14
+
15
+ Prompt:`项目目录:{dir}\n任务包:{任务包路径}\n先完整读取任务包,按包里的流程与模板完成;作者已定的方向、设定和要求都在 设定/,对话内容不会传给你\n交付后只回任务包开头要求的几项`
16
+
17
+ 收回后主会话:设定提案拿给作者逐项确认,按作者意见改文件;新卷纲跑 `outline_view.py --check --strict {卷纲路径}`(往旧卷纲追加单元去掉 `--strict`),细纲每章跑 `check-outline-contract.js`;失败把报错原样交回同一 agent 修一次。按 workflow-volume.md / workflow-outline.md 的汇报模板用故事话告诉作者,不转述任务包。
18
+
19
+ ## story-architect、character-designer:题材定位与角色细化(可选)
20
+
21
+ 定方向以和作者来回讨论为主,默认主会话自己做;复杂世界观、多线结构、强反转工程或作者明确要求时才派:
22
+ - `Agent(subagent_type: "story-architect", prompt: "项目目录:{dir}\n任务类型:题材定位\n查询参数:{作者选定的方向与对标信息}")`
23
+ - `Agent(subagent_type: "character-designer", prompt: "项目目录:{dir}\n任务类型:角色设定\n查询参数:{主角设定信息}")` — 辅助角色设定和语言风格档案
24
+
25
+ ## consistency-checker:写正文后的事实核对
26
+
27
+ Prompt:`项目目录:{dir}\n检查范围:{本次写作的章节}\n检查类型:事实冲突+伏笔断线+角色属性不一致\n本章新增申报:{申报表原样粘贴,无则写 0};同时核对正文有无未申报的跨章事实,逐处列原文和细纲出处。只读与新增项和本章出场角色相关的设定、角色卡与追踪条目。冲突按 S1-S4 报出,申报项逐条给出登记/修复/先问作者的建议\n状态:last_committed_chapter={N},state_revision={R}(取自 tracking_commit.py check)`
28
+
29
+ ## narrative-writer:审查+去AI味
30
+
31
+ Prompt:`项目目录:{dir}\n任务描述:审查+去AI味\n检查分工:你负责语义去味及原定自检;最终文件扫描由主会话执行\n检查范围:{本次写作的章节}\n文风路径:{设定/文风.md 全文路径}\nstyle_resolution:{与写作一致的裁决}\n作者偏好:{本章 query 命中的 prose_style/story_design 项}\n触发本次审查的检测结果:{chapter check 里 blocking 与语义类 advisory 的行号和类别,原样粘贴}\n所选 Gate:{按检测类别选,如 B 句式、G 解释腔;类别不明写 A-G}\n删除优先:每条 AI 味项先判能否删除,删后不丢伏笔/钩子/角色/情节/必要信息的直接删,会丢才润色\n按你的 7 Gate 与对话自检执行,台词里的工整否定不因脚本豁免而跳过\n删除测试:按 deslop-gates.md「写法抽查」执行,报告列候选数/删改数/保留理由`
32
+
33
+ ## narrative-writer:超字一次净删(compress-once)
34
+
35
+ Prompt:`项目目录:{dir}\n任务描述:净删压缩\n正文:{正文路径}\n删除区间:{chapter check 给的 remove_to_internal_band}\n只删不增:优先删重复解释、装饰排比、无功能微动作;全部情节点、事实、因果、情绪兑现、钩子都保留,不改写成新句\n文风路径:{设定/文风.md 全文路径}`
36
+
37
+ ## narrative-writer:改写一章(大修)
38
+
39
+ Prompt:`项目目录:{dir}\n任务描述:改写已写章节\n正文:{正文路径}(原稿已备份)\n细纲:{细纲路径}\n改动范围:{局部:哪几段或哪个场面,要改成什么/整章:按细纲重写}\n作者本轮要求:{作者原话要点}\n不动的部分:{局部修改时其余段落一字不改}\n衔接:{前一章结尾与后一章开头各一两句}\n文风路径:{设定/文风.md 全文路径}\nstyle_resolution:{与写作一致的裁决}\n作者偏好:{prose_style 查询结果,无写「无」}\n不借改稿新增细纲外的剧情;交付后回:改了哪些段、新增申报(无写 0)`
40
+
41
+ ## story-explorer:写前对标召回
42
+
43
+ 召回降档不成立、项目已部署 story-explorer 时,可一次召回文风/模块材料(不可用就按 benchmark-recall.md 自己召回):
44
+ - 查询类型:`benchmark_style_load`;传入项目目录、章节号、目标基调/字数和爽点类型。
45
+ - 需要返回:`style_profile_path`、`style_profile_summary`、`selected_emotion_module`、`rhythm_reference`、来源路径、匹配章节、锚点片段、`gaps`。
46
+ - `gaps` 分流:`no_benchmark` → `custom_style` 为真则用 `设定/文风.md` 写、情绪/节奏取本书内部材料,否则标「无对标参考」;`missing_primary_contract` → 按 `repair_action` 修复(重跑拆文或导入)并停止生成,自定义文风不豁免;`benchmark_book_missing` → 停止核对登记名,不换书;`conflict` / `module_rhythm_conflict` → 意图里说明冲突并按情绪模块/节奏的权威执行;profile_missing → custom_style 为真则用本书文风继续,否则停止;`profile_degenerate` → 有本书文风就用,没有回默认;`tone_match_failed` → 只用整书文风。其余字段原样进 writer prompt,`gaps` 原值保留在写前准备记录里。
47
+ - 主会话另行直接读 `设定/文风.md`:含实质内容时作为本书风格基准;但不豁免情绪/节奏缺失。
@@ -285,7 +285,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
285
285
  - 剧透式点破潜台词:「那点笑她看得分明」「谁都看得出他在撒谎」-> 把藏着的挑明了。留着别点破。
286
286
  - 定性比喻/盖棺句:「像在宣判一件早已定好的事」「像看一件死物」-> 比喻在替角色下定论。非角色此刻强烈主观感受就删;要留也只能是她带偏见的瞬间感觉,不是客观断言。
287
287
 
288
- 自检:每句问一遍——这是"角色在经历",还是"作者在讲解/安排"?凡作者跳出来讲,删,或改成角色视角内的呈现。根治办法是锁定深度限知视角(见 writing-craft.md「视角姿态:深度限知」),镜头钉死在角色身体里,作者就没位置跳出来了。
288
+ 自检:每句问一遍——这是"角色在经历",还是"作者在讲解/安排"?凡作者跳出来讲,删,或改成角色视角内的呈现。根治办法是锁定深度限知视角:只写视角人物此刻看得见、听得见、想得到的,镜头钉死在角色身体里,作者就没位置跳出来了。
289
289
 
290
290
  改法优先级:先删或原位替换污染句,不在段尾另补“人味”尾巴。需要补信息时,把原来的总结/动机/评价句改成角色当下能碰到的问题、手续、回信、付款、门外动静等具体压力;已有手机/屏幕/公告/门牌/表单等信息,优先作为角色看见的场内载体保留,不要转写成叙述者解释。具体载体跟剧情走,不套固定清单。
291
291
 
@@ -1,20 +1,11 @@
1
1
  # 产物创建模板
2
2
 
3
- 各产物的标准模板与创建指引。agent 在 Phase 2-3 过渡时按需加载此文件。
3
+ 大纲与卷纲的模板,出卷纲时(workflow-volume.md)读。
4
4
 
5
- **模板列表:**
6
- - 设定/关系.md
7
- - 设定/题材定位.md(含读者契约 + 终局底牌/升级台阶 + 对标登记字段)
5
+ **模板列表:**(设定/关系、设定/题材定位的模板在 workflow-setup.md 文末;细纲模板与排纲底稿模板在 workflow-outline.md)
8
6
  - 大纲/大纲.md(全书鸟瞰 + 全书体量与阶段总览)
9
7
  - 大纲/卷纲_第X卷.md(含卷契约+终局储备+剧情单元+情绪弧线+反转规划)
10
- - 追踪/_tracking-state.json(唯一结构化权威状态)
11
- - 追踪/逐章记录/第NNN章.md(未来相关紧凑增量)
12
- - 追踪/伏笔.md
13
- - 追踪/时间线/作者真相.md + 读者已知.md(派生视图)
14
- - 追踪/角色状态/{角色名}.md
15
- - 追踪/上下文.md(续写状态卡,固定 7 栏)
16
- - 对标/{对标书名}/拆文报告.md
17
- - 对标/{对标书名}/原文/第XXX章_{章名}.md
8
+ - 追踪/(首次写正文前由脚本生成,见文末「追踪体系」)
18
9
 
19
10
  **层级关系(全书 › 卷 › 剧情单元 › 章 › 情节点;故事线横向贯穿多个剧情单元):**
20
11
  - 大纲.md = 全书鸟瞰(每卷一两句话定位)
@@ -22,151 +13,21 @@
22
13
  - 细纲_第XXX章.md = 单章蓝图(单元ID/位置 + 主角目标/关键选择 + 内容概括 + 多线情节安排 + 人物关系/出场顺序 + 情节细化 + 结尾设定/钩子)
23
14
 
24
15
  **概念对照(统一叫法,减少混淆):**
25
- - **剧情单元** = 一段完整剧情(1.5-3 万字/数章,一个矛盾从起到收)。拆书侧就是 `剧情/{剧情单元名}.md`,本书侧就是卷纲里的**剧情单元卡**;理论叫法是「一级结构」。同一粒度,统一叫剧情单元。
26
- - **故事线** = 贯穿多个剧情单元的线(主线/感情线/成长线/夺宝线…),比剧情单元大一层。拆书侧是 `剧情/故事线.md`,本书侧是卷纲的**本卷故事线**表(L 编号)。剧情单元纵向切段,故事线横向贯穿,同一卷的两个视角。
16
+ - **剧情单元** = 一段完整剧情(1.5-3 万字/数章,一个矛盾从起到收)。拆书侧就是 `剧情/{剧情单元名}.md`,本书侧就是卷纲里的**剧情单元卡**,统一叫剧情单元。outline-structure-theory.md 的「一级/二级/三级结构」指全书结构类型,不是单元名。
17
+ - **故事线** = 贯穿多个剧情单元的线(主线/感情线/成长线/夺宝线…),比剧情单元大一层。拆书侧是 `剧情/故事线.md`,本书侧是卷纲的**本卷故事线**表(L 编号)。剧情单元纵向切段,故事线横向贯穿,同一卷的两个视角。故事线编号是 `L01` 式两位数,单元ID 是 `L1-03` 式(卷号+连字符+序号),别混用。
27
18
  - 「循环」一词只在**节奏义**保留(爽点循环、升级循环、小/中/大循环等),不再指代规划单元。
28
19
 
29
20
  ---
30
21
 
31
- ## 对标/{对标书名}/拆文报告.md
32
-
33
- > **拆文库/对标关系**:`拆文库/` = analyze skill 的原始产出(数据源)。`对标/` = 写作项目的引用视图。首次引用时从 `拆文库/` 复制到 `对标/`。
34
-
35
- 此文件由 `story-long-analyze` 拆解管道输出(快速预览报告或完整拆文报告)。write skill 的职责是**读取**,不创建。
36
-
37
- 如需手动创建简版对标摘要(未使用 analyze skill 时):
38
-
39
- ```markdown
40
- # {对标书名} 对标摘要
41
-
42
- ## 基本信息
43
- - 书名:{}
44
- - 作者:{}
45
- - 题材/类型:{}
46
- - 目标平台:{}
47
- - 成绩:{均订/在读/热度}
48
-
49
- ## 核心发现
50
- - 开篇钩子:{类型 + 手法}
51
- - 爽点密度:{约 N 字/次}
52
- - 节奏模式:{描述}
53
- - 可借鉴套路:
54
- 1. {}
55
- 2. {}
56
- 3. {}
57
-
58
- ## 不建议模仿(禁止照搬)
59
- - {}(只学结构,不抄桥段)
60
- ```
61
-
62
- 创建参考:`plot-special-topics.md` (对标书选择法则)
63
-
64
- ---
65
-
66
- ## 对标/{对标书名}/原文/第XXX章_{章名}.md
67
-
68
- 对标书章节原文,由用户手动放入或拆文管道导入。
69
-
70
- ```markdown
71
- # 第{N}章 {章名}
72
-
73
- {本章完整原文内容}
74
-
75
- ---
76
- > 来源:{手动输入 / story-long-analyze 导入}
77
- > 原始字数:{约N字}
78
- ```
79
-
80
- ---
81
-
82
- ## 设定/关系.md
83
-
84
- ```markdown
85
- # 角色关系图
86
-
87
- ## 关系总览
88
-
89
- | 角色 A | 角色 B | 关系类型{亲情/爱情/友情/敌对/师生/主从/利益} | 情感倾向{正面/负面/中性/复杂} | 当前状态 | 起始章节 | 变化节点 |
90
- |--------|--------|---------------------------------------------|-----------------------------|---------|---------|---------|
91
- | {名} | {名} | {类型} | {倾向} | {描述} | 第{N}章 | {事件} |
92
-
93
- ## 关系演变
94
-
95
- {角色A}<->{角色B}:
96
- - 起点:{初始关系}
97
- - 转折:{章节·事件·变化}
98
- - 当前:{现状}
99
-
100
- ## 核心冲突关系
101
-
102
- {列出推动剧情的2-3对核心对立/合作关系}
103
- ```
104
-
105
- 创建参考:`character-relations.md` (人物关系类型 + 关系图绘制)
106
-
107
- ---
108
-
109
- ## 设定/题材定位.md
110
-
111
- ```markdown
112
- # 题材定位
113
-
114
- ## 基本信息
115
- - 题材类型:{玄幻/都市/系统/...}
116
- - 目标平台:{起点/番茄/晋江/其他;story-review 据此选平台 rubric}
117
- - 核心梗:{一句话卖点}
118
- - 微创新点:{与同类题材的差异}
119
-
120
- ## 读者契约(参 `reader-contract-and-progression.md`)
121
- - 核心读者承诺:{读者来追什么爽感/情绪/关系/事业}
122
- - 主角代理权承诺:{主角不可替代的判断、关键选择或贡献}
123
- - 利益安全线:{核心资产/卖点不得被没收、转赠、无交换暴露的边界}
124
- - 期待债:{开篇/本卷已承诺,何时以什么形式偿还}
125
- - 题材边界:{个人逆袭/群像/导师/制度合作等;高层级机构出现时先核对}
126
-
127
- ## 终局底牌与升级台阶(防写无可写;开书填一次,日更只查。参 `reader-contract-and-progression.md`「终局储备与推进节奏」)
128
- - 终局底牌(一次性资源,标最早解锁卷):头号宿敌={}·第{X}卷;终极真相/身世={}·第{X}卷;金手指上限={}·第{X}卷;身份/地位终点={}·第{X}卷;核心情感确定={无感情主线可删}·第{X}卷
129
- - 升级台阶:主体系{境界/等级/地图/势力层级}共{N}档 × 每档约{W}万字 应 ≥ 全书目标字数(不足则拉长体系/加地图层);敌人/目标成梯队逐级解锁,禁止越级秒顶级
130
- - 透支红线:① 未到解锁卷就动用终局底牌 ② 某条升级线逼近天花板、后面没台阶接
131
-
132
- ## 核心梗三分法
133
- - 表层卖点:{读者一眼看到的吸引力}
134
- - 深层爽点:{持续追读的情绪驱动力}
135
- - 长线钩子:{支撑全书的悬念/目标}
136
-
137
- ## 对标分析(概要)
138
- > 完整对标数据见 `对标/` 目录。此表仅做快速概览。
139
-
140
- | 对标书 | 相似点 | 差异点 | 可借鉴 |
141
- |--------|-------|-------|-------|
142
- | {书名} | {点} | {点} | {点} |
143
-
144
- ## 对标登记(多对标时必填;cross-book-recall 跨书召回按此排序与预算)
145
- - 主对标书:{书名;单对标可省,多对标必填}
146
- - 对标书列表:
147
-
148
- | 书名 | 题材类型 | 引用强度{辅/参考} | 用途 |
149
- |------|---------|-----------------|------|
150
- | {书名} | {类型} | {辅/参考} | {文风主对标/结构参考/…} |
151
-
152
- ## 题材框架
153
- - 八节点位置:{当前处于哪个节点}
154
- - 关键转折节点:{列出}
155
- ```
156
-
157
- 创建参考:`long-genre-mechanics.md` (核心梗解析与运用 + 微创新与差异化设计)
158
-
159
- ---
160
-
161
22
  ## 大纲/大纲.md
162
23
 
163
- 全书鸟瞰。顶部为「全书体量与阶段总览」(总章节数/目标字数/全书情绪曲线/阶段划分/各阶段节奏公式/关键节点与钩子链,结构见 [Phase 3:大纲搭建](workflow-setup.md#phase-3大纲搭建)),其后接卷级大纲一段式汇总:
24
+ 全书鸟瞰。顶部为「全书体量与阶段总览」(总章节数/目标字数/全书情绪曲线/阶段划分/各阶段节奏公式/关键节点与钩子链,结构见 [workflow-volume.md](workflow-volume.md)),其后接卷级大纲一段式汇总:
164
25
 
165
26
  ```markdown
166
27
  # 大纲
167
28
 
168
29
  ## 全书体量与阶段总览
169
- {按 Phase 3「全书体量与阶段总览」结构填写}
30
+ {按 workflow-volume.md「全书体量与阶段总览」结构填写}
170
31
 
171
32
  ## 卷级大纲
172
33
  ### 第一卷:{卷名}(约 {X} 万字,{Y} 章)
@@ -211,13 +72,13 @@
211
72
 
212
73
  ## 剧情单元卡(1–3 万字为可调经验值;存于卷纲内;不另建单独文件)
213
74
 
214
- > 剧情单元 = 卷纲里的一级结构单元(见 outline-structure-theory.md「对标节奏迁移」),与下方「对标结构坐标」是同一单元的不同视角,不重复编排。单元长度按本书题材、既有兑现节奏与对标调整,不是硬门槛。规划各关键节点时按 `reader-contract-and-progression.md`「契约四问」检查;无需主角亲自执行每个动作。高潮/兑现后可留短暂低压,以小而可见的收益/奖励承接下一轮压力。引入新地图/机构/能力/敌人/谜团时按第 4 问检查,不得借新鲜感逃避旧承诺。
75
+ > 剧情单元卡与下方「对标结构坐标」是同一单元的不同视角(见 workflow-volume.md「对标节奏迁移」),不重复编排。单元长度按本书题材、既有兑现节奏与对标调整,不是硬门槛。规划各关键节点时按 `reader-contract-and-progression.md`「契约四问」检查;无需主角亲自执行每个动作。高潮/兑现后可留短暂低压,以小而可见的收益/奖励承接下一轮压力。引入新地图/机构/能力/敌人/谜团时按第 4 问检查,不得借新鲜感逃避旧承诺。
215
76
 
216
77
  ### 剧情单元 L{卷号}-{序号}
217
- - 单元ID:L{卷号}-{序号}(字母 L 开头,如 L1-03;不能写成 1-03)
78
+ - 单元ID:L{卷号}-{序号}(字母 L 开头,如 L1-03;不能写成 1-03,也别和故事线编号 L01 混)
218
79
  - 章节范围:{第A-B章}
219
- - 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}」**——单元内容形态不强制映射对标,自创单元照常过排纲自查与批末结构复核}
220
- - 单元节拍/章功能分配:{建立期待→尝试→加压/转向→决定性行动→兑现→余波;标对应章范围,可按题材删改;建卡时可按「对标剧情参照」剧情单元提炼的共性节拍填写,见 outline-structure-theory.md「按剧情批出细纲」}
80
+ - 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}」**——单元内容形态不强制映射对标,自创单元照常过排纲自查与建纲批末复核}
81
+ - 单元节拍/章功能分配:{建立期待→尝试→加压/转向→决定性行动→兑现→余波;标对应章范围,可按题材删改;建卡时可按「对标剧情参照」剧情单元提炼的共性节拍填写,见 workflow-outline.md「按剧情批出细纲」}
221
82
  - 单元承诺:{本单元向读者建立的情绪命题/期待,以及要偿还的期待债}
222
83
  - 单元情绪引擎:{核心情绪命题→承载对象/情绪缺口→受阻或缺口维持原因→本轮触发→主角不可替代的点火/转化动作→意义变化或可见兑现→题材/契约兑现;承载对象可为人物/关系/目标/规则/场景;不适用环节可写无/即时,但须保持因果闭合;机制按题材选,不强制误解/物件/反转}
223
84
  - 卷级贡献:{它如何服务本卷契约、阶段节奏或卷级目标}
@@ -231,14 +92,14 @@
231
92
  - 终局底牌边界:{本单元不得动用的未解锁宿敌/真相/身份/金手指上限;碰到就按契约四问第 3 问改纲}
232
93
  - 禁止提前释放:{本单元不能提前解决/揭露/升级的内容}
233
94
  - 下一单元因果钩子:{自然推入下一单元的问题、代价、线索或新目标}
234
- - 风险等级:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
95
+ - 契约风险:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
235
96
 
236
97
  > **段位契约(新建卷纲必须照此写;取段器按此解析)**:每个 `##`/`###`/`####` 标题的**下一行**写一行 `> 作用域:X`,X 取二值之一——
237
98
  > `卷级常任`(全卷有效,取段器恒定带出)/`单元级 {单元ID}`(只在该单元的闭包里出现)。
238
99
  > 三条纪律:**①全卷常任规则不许写在单元块里**——单元块只写本单元落点+一行指针,规则本文放 `## 全卷常任裁定`(checker 会按「全卷/常任/全程生效」字样报 E4)。
239
100
  > **②被推翻的内容不留旧文**——改成 `⊘ 已退役 → 见 {何处}` 起头的行,取段器默认不输出,读到的一定是当前有效值。
240
101
  > **③排纲底稿不进卷纲**——供给自查、建纲追加写在 `大纲/排纲底稿_{单元ID}.md`(模板见文末),底稿里凡有写作期约束力的条目(跨章祈使:全程不许/往后任何章/此后不再…),**建纲当场就写进**该单元的单元级段或细纲。老卷纲里的 `批次底稿 {单元ID}|状态:在用|已退役` 段仍可读(排纲时 `--stage outline` 取出,`--check` 的 W1 告警盯其中的跨章祈使),新卷纲不再写。
241
- > 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;读取方式见 SKILL.md「卷纲不整读(取段器)」。
102
+ > 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;读取方式见 SKILL.md「卷纲不整读」。取段器输出闭包:全部卷级常任段+该单元的单元级段,逐章表按单元章区间裁行,退役行默认不输出(看历史加 `--history`);未声明作用域的段会被保守纳入并告警。老卷纲里还留着「作用域:批次底稿」段的,排纲时加 `--stage outline` 一并取出,写正文不加。
242
103
 
243
104
  ## 全卷常任裁定
244
105
  > 作用域:卷级常任
@@ -249,7 +110,7 @@
249
110
  {一句话:本卷要解决什么问题或达到什么目标}
250
111
 
251
112
  ## 对标结构坐标
252
- {有对标书时填;无则写"无对标,按八节点占比自排"。迁移步骤见 outline-structure-theory.md「对标节奏迁移」;对标关键情节优先取自被参照剧情单元的「情节点索引」}
113
+ {有对标书时填;无则写"无对标,按八节点占比自排"。迁移步骤见 workflow-volume.md「对标节奏迁移」;对标关键情节优先取自被参照剧情单元的「情节点索引」}
253
114
  - 主对标卷段:{对标书}第{A}-{B}章(核心矛盾对应:{一句话})
254
115
 
255
116
  | 归一化位置 | 本卷章区间 | 对标关键情节 | 本卷对应(换素材) | 类型{逆转/转折/激励} |
@@ -266,7 +127,7 @@
266
127
  |------|------------|-----------------------------------------|--------------|---------|
267
128
  | 第{N}章 | {高压/推进/修炼试错/关系回收/低压生活/信息整理} | {基调} | {N} | {事件} |
268
129
 
269
- > 章节定位可留空,留空按普通推进章处理(即退化为现状)。情绪强度是情感烈度,和章节定位的爆发压力是两回事——关系/泪目章可低压力但高情绪强度。一卷要有高低层次,低压 + 过场克制(合计不超约 15%,题材分档见 outline-structure-theory.md),别全程同一力度;逐行看相邻章情绪基调,别同一母题连超 2-3 章。章节定位与底线见 outline-structure-theory.md「章节定位与张弛」。
130
+ > 章节定位可留空,留空按普通推进章处理(即退化为现状)。情绪强度是情感烈度,和章节定位的爆发压力是两回事——关系/泪目章可低压力但高情绪强度。一卷要有高低层次,低压 + 过场克制(合计不超约 15%,题材分档见 outline-structure-theory.md),别全程同一力度;逐行看相邻章情绪基调,别同一母题连超 2-3 章。章节定位与底线见 workflow-volume.md「章节定位与张弛」。
270
131
 
271
132
  ## 人物弧线
272
133
  | 角色 | 本卷起点 | 本卷终点 | 关键转变 |
@@ -311,56 +172,12 @@
311
172
 
312
173
  ## 大纲/细纲_第XXX章.md
313
174
 
314
- 细纲是正文写作的章节蓝图,而不是只列事件和钩子的清单。**模板唯一权威副本**见 [Phase 3:大纲搭建](workflow-setup.md#phase-3大纲搭建) 「排纲自查与细纲」里的细纲模板(含九个必填字段、四个小节与不含逐点字数的四列情节点表;阶段位置、结构公式等见模板末尾「可选」块);本文件不再保留模板副本。新建、补建、回填都按权威模板补齐,未知字段写 `[待补充]`,不为补齐字段杜撰副线或人物关系。
315
-
316
- `目标情绪` 与 `主角目标/关键选择` 要写实际内容,不能留 `[待补充]`:隔离实验里只补这两个字段就能复现补齐全部字段的正文收益,补满其余字段与只补这两个不可区分。其余字段未知时仍按上文写 `[待补充]`。
317
-
318
- 落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}` 做结构验收:它只判字段、四个小节、五段式、情节点表结构(默认四列 `# / 情节点 / 功能标签 / 执行边界(禁+放)`;需要时可在功能标签后加「分辨率」列)和字数目标口径是否在场,不判内容好坏。exit 1 时只按 `repair_scope` 补报告点名的字段并复验,最多两轮;仍失败就报告检查 ID 停下,不改其他章。exit 2、脚本缺失或 node 不可用时如实报告验收未完成,不得声称细纲已合规。本检查只在新建/补建/回填时执行;既有项目的旧细纲不因此阻断写正文。
175
+ 模板、字段规则与落盘验收见 [workflow-outline.md](workflow-outline.md)。
319
176
 
320
177
  ---
321
178
 
322
179
  ## 追踪体系
323
180
 
324
- 追踪产物由 `scripts/tracking_commit.py` 统一生成,完整 schema 和事务字段见 [tracking-transaction.md](tracking-transaction.md)。以下文件不得由模型各自追加或局部 Edit:
325
-
326
- ### `追踪/_tracking-state.json`
327
-
328
- 唯一结构化权威状态。记录 schema、最后提交章、导入截止章、`state_revision`、续写上下文结构,以及全部角色、伏笔和时间线当前状态。日更通过 `tracking_commit.py check` 的紧凑输出取章号和修订号,不把完整 state 加入正文 prompt。所有 Markdown 都从本文件确定性派生,程序不反向解析 Markdown。
329
-
330
- ### `追踪/逐章记录/第NNN章.md`
331
-
332
- 本章未来相关连续性记录,目标 ≤1536 字节、硬上限 3072 字节,只含:实际结果、角色变化、伏笔变化、时间/揭示、连续性约束、下一章承诺。过程日志、质检统计、参照章和提示词记录不进入。它不承诺单独无损重建全部当前状态;完整当前语义以 `_tracking-state.json` 为准。
333
-
334
- ### `追踪/伏笔.md`
181
+ 规划阶段不建 `追踪/`,首次写正文前才初始化;各文件的分工、字段与体积上限见 [tracking-transaction.md](tracking-transaction.md),全部由 `tracking_commit.py` 生成,不得各自追加或局部 Edit。
335
182
 
336
- 每个 ID 只保留一行当前状态:内容、埋设章、计划回收章、状态、重要度、最近变更章。变化历史由对应逐章增量承担。尚未实际埋设的未来伏笔规划留在大纲;当前表只接受 `已埋 / 已回收 / 已过期 / 放弃`。
337
-
338
- ### `追踪/角色状态/{角色名}.md`
339
-
340
- 只为核心、会复用角色建立动态快照,含截至章节、身份、位置、当前目标、身心状态、能力资源、关键关系、已知信息和未结事项。目标 ≤4096 字节、硬上限 8192 字节;超过目标先合并失效能力、旧关系和已结事项,不把角色履历塞进当前快照。静态原始人设仍在 `设定/角色/{角色名}.md`;路人、一次性角色不建动态文件。
341
-
342
- ### `追踪/时间线/`
343
-
344
- - `_tracking-state.json.timeline`:同一事件登记故事时间、客观事实、读者当前认知、实际揭示状态/章节。
345
- - `作者真相.md`:从 `_tracking-state.json.timeline` 派生,作者侧可见全部客观事实和认知差。
346
- - `读者已知.md`:从 `_tracking-state.json.timeline` 派生,只显示读者已经知道/相信的内容,不泄露客观真相。
347
-
348
- 未来揭示计划写卷纲/细纲,不写进既成事实登记;`未揭示` 事件的 `reveal_chapter` 必须为空。
349
-
350
- ### `追踪/上下文.md`
351
-
352
- 续写状态卡不超过 12288 字节,固定 7 栏:`当前位置 / 长期约束 / 核心角色状态 / 活跃伏笔 / 近三章速记 / 下一章承诺 / 连贯性风险`。它是当前语义检查点之一;不放文风、质量计数、普通待办、索引统计和长期概要。
353
-
354
- ## 排纲底稿模板(`大纲/排纲底稿_{单元ID}.md`)
355
-
356
- 排纲期的工作底稿,每个剧情单元一份,只在排纲/补纲时读,写正文不读。
357
-
358
- ```markdown
359
- # {单元ID} 排纲底稿
360
-
361
- ## 供给自查
362
- {本单元出细纲前产出,见 workflow-setup.md「排纲自查与细纲」步骤 3。六行:对手供给 / 角色供给 / 能力与金手指供给 / 刻度供给 / 场景与底图供给 / 故事线供给。「写了要报」的发明各列一行「发明了什么+落在哪个设定文件」;「先问作者」的提案列候选+影响面待作者裁定;无缺口写「无缺口」。批末 `check-outline-contract.js --supply {卷纲路径} {单元ID}` 验证本小节存在}
363
-
364
- ## 建纲追加
365
- {本批建完后回填,见步骤 5。逐章落笔时才发现的缺口,一条一行,不与上面六行混写。格式:`第 N 章排到哪一步发现缺什么 / 级别 / 落在哪个设定文件或提案编号`。一条也没有写「无追加」。下一批供给自查以本小节为固定输入}
366
- ```
183
+ ---