@oh-story/dsh 0.1.10 → 0.1.11

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 +7 -7
  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 +1 -1
  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
@@ -0,0 +1,171 @@
1
+ # 去AI味 Gate 执行细则
2
+
3
+ 本文件承接调用方选定 Gate;只执行所选范围,不扩大为全量。表达先按 [style-resolution.md](style-resolution.md) 的本书裁决,剧情和信息保护边界仍有效。写作自检与写后审查沿用下方「写手 A-G 判据」;独立去味沿用「删除优先判断」及各门禁详细步骤。模式解释、改写顺序与范例见 [anti-ai-writing.md](anti-ai-writing.md)。
4
+
5
+ #### 删除优先判断(先于各 Gate)
6
+
7
+ 每条被标记项先判能否删除,再考虑润色——很多 AI 味句是废话(解释、注水、凑数),润色后照样冗余。
8
+
9
+ 1. 删掉后是否丢失伏笔、钩子、角色特征、情节推进、必要信息或必要转折?都不丢则直接删,不进 Gate。
10
+ 2. 丢任意一项 → 保留信息进对应 Gate 改写(只删"怎么说"的 AI 味,不删"说什么")。
11
+ 3. 删除服从过度去AI味保护:不整段删、不删剧情功能;删除比例上限按 AI 味等级,轻度 ≤15%,中度 ≤25%,重度 ≤35%;若删后跌破本次字数范围的下沿,改为降AI重写,不删完再用新废话凑字。
12
+ 4. 删完通读:若整段只剩最短句、结构虚词被扫光、每个动作都带「了一下」式尾巴,就是删过头的电报体(见 anti-ai-writing.md 模式 9)——把非峰值叙述句恢复成自然白话,不是接着删。删的是废话,不是中文的自然冗余;这条只调删减的度,禁用词与套路句式的清理力度不因此降低。
13
+
14
+ 以下为各 Gate 的详细规则(删不掉的标记项按此润色;无论 agent 还是主会话执行,均须遵循):
15
+
16
+ #### 门禁 A:禁用词替换
17
+
18
+ 加载 [references/banned-words.md](banned-words.md),对照禁用词表逐项检查。
19
+
20
+ **白名单机制**:按 [references/style-resolution.md](style-resolution.md) 读取书目录的 `.deslop-whitelist`。获准字面片段由深扫、标点整理和 hook 一致豁免;无文件不创建空表,不因检测器报警自行放行,也不继承其他书的白名单。
21
+
22
+ **保护规则优先级**:保留创作意图与剧情功能 > 去AI Gate。Gate A-F 只能改变表达方式;Gate G 删的是非故事性的作者解释/旁白(不是情节)。任何 Gate 都不能删除伏笔、钩子、角色特征、人物记忆、情绪承接、因果锚点、关键信息或必要转折;遇到冲突时改为降AI重写或标注 `[需复核]`。
23
+
24
+ 替换规则:
25
+ - 禁用词 → 具体动作/细节描写
26
+ - 不能简单换成另一个形容词
27
+ - 要用"展示"替代"告诉"
28
+
29
+ 示例:
30
+ - ❌ "眼中闪过一丝不易察觉的悲伤" → ✅ "他垂下眼"
31
+ - ❌ "深吸一口气" → ✅ 直接删;若确有功能,改成角色当下动作(如把话咽回去)
32
+ - ❌ "嘴角勾起一抹冷笑" → ✅ "他冷笑了一声"
33
+
34
+ #### 门禁 B:句式去套路
35
+
36
+ 检测并替换以下AI高频句式:
37
+
38
+ | 句式 | 问题 | 替代方案 |
39
+ |------|------|----------|
40
+ | 否定铺垫后接肯定翻转 | **最毒** 中文 AI 句式之一 | 直接写后项,或改成动作/细节呈现 |
41
+ | 跨段「不是A / 也不是B / 只是C」 | 可能是工整铺排,也可能是辩解、悬念排除或情绪递进 | `formulaic-parallelism` advisory;通读语境,仅在重复提纲或拖慢画面时压缩 |
42
+ | 「至于X不X,怎么X」/同动词「不V A,不V B」 | 工整决策栏、否定清单;正常台词也可能出现 | 结合语境复核;若只是复述前文或细纲,压成一次判断或只留一项 |
43
+ | "...,带着..." | 万能状语,AI最爱 | 用独立短句或动作描写 |
44
+ | "声音不大,却带着……" | AI 最爱声音描写 | 直接写声音特征或动作 |
45
+ | 陈词滥调/万能比喻 | 公式化比喻会显 AI 腔 | 优先直接白描;确需比喻时只留少数生活化、角色化比喻 |
46
+ | "他/她知道..." | 直接告诉读者 | 用行为展示认知 |
47
+ | 对话标签密度过高/公式化标签 | 每句都标注会机械 | 普通"说"可保留;高频或公式化时用动作/上下文替代 |
48
+ | "仿佛/犹如/宛若/如同" | 文言腔过重 | 口语化表达或白描 |
49
+ | "不容置疑/显而易见" | 书面化判断词 | 用具体事实说话 |
50
+
51
+ **修饰词清扫**:检查物品/人物前面的形容词、定语、副词、指示代词、量词,多余即删。删除后阅读不影响才删;含义流失则改成简洁名词。
52
+
53
+ 示例:
54
+ - "白色的药片" → "药片"
55
+ - "飞驰的汽车" → "汽车"
56
+ - "手里那截链子" → "链子"
57
+ - "多年的衣服" → "旧衣服"(保留含义)
58
+
59
+ 形容词原则:一次只用一个形容词修饰或不修饰,不连用、不堆砌。
60
+
61
+ #### 门禁 C:情绪落地
62
+
63
+ 直接写情绪本身不是 AI 味。上下文已让情绪成立,就保留准确的直写或删掉重复说明;需要补足信息时,沿用原文的选择、台词、物件和后果,不为情绪词另配动作。
64
+
65
+ 身体细节按功能取舍:伤势、动作失败、人物习惯或情节后果可以保留;只重复标注情绪的微动作删掉,不换部位或同义动作。具体判据见 `anti-ai-writing.md` 规则 2。
66
+
67
+ **重复描写去重**:当相邻段反复表达同一信息、同一动作或同一情绪时,按 Gate C/D 处理,不另开专项流程。
68
+
69
+ 处理方法:
70
+ - 合并同一瞬间的重复描写,保留最能推动情绪或剧情的细节
71
+ - 如果原文把一个动作拆成"动作概述 → 感知细节 → 身体反应",改成同一段连续画面
72
+ - 若合并后节奏过快,恢复原文中有功能的信息,或把既有信息改成更自然的动作/对话表达;不在原动作后追加描写层,也不新增原文没有的情节
73
+
74
+ 示例:
75
+ - ❌ "他拿起笔。手在抖。笔尖又停住。"
76
+ - ✅ "他拿起笔,笔尖刚碰到纸就偏了,手腕压了两次都没压稳。"
77
+
78
+ **重复语义四类**(同一意思不重复表达,只留一个最合适且简洁的):
79
+
80
+ | 类别 | 错误例 | 修法 |
81
+ |------|--------|------|
82
+ | 形容词重复 | "兴高采烈地笑着跑过来" | "笑着跑过来" |
83
+ | 近义词重复 | "非常重要的关键问题" | "关键问题" |
84
+ | 含义重复 | "我好饿,肚子咕咕叫" | "我好饿" |
85
+ | 上下文主语/物品重复 | 上文说"把抗抑郁药扔了一地",下文不必再写"地上的抗抑郁药",只写"药片" | 模糊简洁口语化即可 |
86
+
87
+ **多余场景/人物/物品描写**:服务情节人物之外的修饰描写直接删。
88
+
89
+ 示例:
90
+ - "游惑手里握着一把短刀,刀锋冷冽" → "游惑手里握着一把短刀"
91
+ - "手铐紧紧扣住两人的手腕,中间连着一截不算长的链条" → "手铐扣住两人的手腕,中间连着链条"
92
+ - "暴雪极地的考场里,风雪没有停下的意思" → "暴雪极地的考场里"
93
+
94
+ #### 门禁 D:节奏调整
95
+
96
+ AI写作的节奏问题:句式过于整齐、段落过于匀称。
97
+
98
+ 处理方法:
99
+ - 打断连续排比句(保留1-2个,删掉其余)
100
+ - 只拆臃肿修饰、堆叠比喻、抽象总结的长句;改写后叙述仍以逗号长句为主(见 anti-ai-writing.md 规则 3),不要把正常的逗号长句拆成短句串
101
+ - 偶尔用不完整句(口语感)
102
+ - 段落长短交错(不要每段都3-5行)
103
+ - 不按硬指标排版:番茄高分样本不是 50-60 字一行,也不是逢句号必换行;按动作/信息变化自然断段,读起来不卡即可
104
+ - 标点节奏跟语气走:避免通篇句号化;保留有功能的 `?` / 少量 `!`,把 `……` / `——` 改成动作、短句、换行、逗号或句号,删除随机堆砌或刷屏符号
105
+
106
+ #### 门禁 E:对话去腔调
107
+
108
+ AI写的对话特征:每句话都信息完整、逻辑清晰、表达精准。
109
+
110
+ 处理方法:
111
+ - 加入口语化表达("嗯""哦""行吧")
112
+ - 适当打断对话(角色可以答非所问);对话被打断或拖长时用动作、换行或短句处理,不用 `——`
113
+ - 用动作穿插对话("她喝了口水。'然后呢?'")
114
+ - 删掉解释性对话(角色不会把自己的动机说清楚)
115
+ - Gate B 同样检查台词:连续工整否定、`至于X不X,怎么X`、同动词 `不V A,不V B` 不能因脚本的台词豁免而漏审;有明确人物/任务功能才保留
116
+ - 不为凑比例硬扩台词;番茄对话占比随题材波动,台词只在角色此刻真会说、必须说时增加
117
+ - 口误、停顿、粗话和重复要服务人物身份与情绪,不作为“真人感”装饰批量添加
118
+ - 不把所有对话末尾改成句号:质问保留问号,爆发峰值保留少量感叹;吞回去/没说完用动作停顿、短句或换行,不用 `……`
119
+
120
+ #### 门禁 F:结尾去升华
121
+
122
+ AI写作的结尾特征:总想总结、升华、点题。
123
+
124
+ 处理方法:
125
+ - 删掉总结性语句
126
+ - 用动作/场景收尾,不要用感慨收尾
127
+ - 如果结尾有"他知道...""这一刻..."→ 基本可以删
128
+ - 短篇(单个 正文.md)带主角主观情绪的审判句、火葬场预告、心死式章尾是卖点,保留;只删中立、与角色情绪无关的作者讲解。
129
+
130
+ #### 门禁 G:去解释腔/上帝感/安排感
131
+
132
+ 最难察觉、最"像 AI"的一类(对应 anti-ai-writing.md 模式 8)。叙述者跳出角色当下去解释、剧透、总结、定性、升华,读者闻到"作者在场/剧情被安排"。
133
+
134
+ 处理方法:
135
+ - 删解释因果:「之所以…是因为」「原来…」「这意味着」→ 删,因果让读者从动作对话里自己拼。
136
+ - 删上帝视角剧透:「她不知道的是」「殊不知」「多年以后」「仿佛预示着」→ 删。
137
+ - 删替读者定性:「演得真好」「这出戏她看过一遍」「他就是这样薄情」→ 删,证据留给读者判断。
138
+ - 删隐蔽的软评判:评判性副词(「关切得恰到好处」)、剧透点破(「那点笑她看得分明」)、定性比喻(「像在宣判一件早已定好的事」)→ 删,或改成角色此刻带偏见的瞬间感觉。
139
+ - 注意:Gate G 删的是"非故事性的作者旁白",不是删情节。删完若变薄,靠角色动作/对话补,不补叙述者解说。
140
+ - 短篇(单个 正文.md)带主角主观情绪的审判句、火葬场预告、心死式章尾是卖点,保留;只删中立、与角色情绪无关的作者讲解。
141
+
142
+ **任务卡点修法边界**:任务卡点不是固定公式,也不是通用补流程按钮。原文已有任务、证据、手续、物件缺口时,可以把解释总结压成角色当下要处理的具体卡点;原文没有缺口时,只删解释或改动作/对话,不新造剧情。所有卡点都先做“删掉试试”:删掉后不丢伏笔、钩子、信息、关系变化或必要转折,就压缩或删除。
143
+
144
+ ## 写法抽查(审查侧,只指认已有问题)
145
+
146
+ 对爽点段与检测器标记处逐问。只许指出正文里**已有**的那一处,没有就答「无」,**不许为了让某一问有答案回头补内容**。详写的关键场景里,遮住一处发生、感知或反应后读者什么也没损失,就判为可删并报告位置;套式反应按 `banned-words.md`「套式反应逐处删除测试」逐处过。审稿只报告、不改文件;去味执行者再按删除保护落改,只报告实际删改与保留理由。
147
+
148
+ | # | 自问 | 不合格的样子 |
149
+ |---|---|---|
150
+ | 1 | 本章最大的那次状态变化,读者看见了几个中间态? | 只给了"起点"和"终点";或同一状态换十种说法说十遍 |
151
+ | 2 | 有没有一组同类并列项被平均分配了笔墨? | 三样物件、四拨人马各给同样的分辨率 |
152
+ | 3 | 本章的设定/能力/威胁,是被说出来的,还是被谁付了代价试出来的? | 旁白直接给出结论,读者没有自己发现的机会 |
153
+ | 4 | "厉害/难得/要命"这些判断,是谁给出的?他有什么立场? | 叙述者自己下的判断;结论由旁白先说出来、在场的人只负责吃惊;或标价人就在场却没标价 |
154
+ | 5 | 每个给了镜头的人,此刻在为自己争取什么? | 遮住名字认不出是谁说的;所有人同向配合主角;用手部/喉部微动作代替立场;或把他的算计写成一段旁白独白 |
155
+ | 6 | 该说出口的话,是写出来了还是被概括了? | "他吼了一声""他说了句什么""三言两语解释了缘由";本该来回几轮的交锋压成一次说完 |
156
+ | 7 | 本章最重的那一句,是不是最短的那一段? | 最重的一拍写成了全章最长的段落 |
157
+ | 8 | 判为"密"的段落里,有没有量词加概括? | "一连七八下""半晌""众人纷纷"出现在密处 |
158
+
159
+ ---
160
+
161
+ ## 写手 A-G 判据
162
+
163
+ 以下为原 narrative-writer 的写作自检/审查判据,调用方给了 Gate 就只执行该范围;未给时仍 A-G。
164
+
165
+ - **A 禁用词**:命运齿轮/如潮水般/心猛地一沉类逐一替换(对照 `banned-words.md`;书级文风有裁决按其配额)。
166
+ - **B 句式**:连续排比、刻意对称打散;**禁止高置信否定铺垫后再肯定翻转**——同句「不是A,(而)是B」「没有X没有Y只是Z」直接写肯定内容或改动作承担对比;跨段「不是A / 也不是B / 只是C」、`至于X不X,怎么X`、同动词 `不V A,不V B` 只作语义复核(advisory),重复细纲或拖慢画面时改,承担辩解、悬念排除或情绪递进时可保留(书级文风另有裁定按其执行);普通名词不加引号强调(对话、逐字引用、场内载体原文除外)。
167
+ - **C 情绪**:删空泛 AI 情绪总结句;上下文已成立就删补充说明;不设「情绪词→身体动作」默认转换。
168
+ - **D 节奏**:只拆臃肿修饰、堆叠比喻、信息过载的长句;句长按书级文风带执行,长短随情绪 beat 交错——沉淀放慢、冲突骤短,忌通篇同长度。
169
+ - **E 对话去腔调**:所有角色同一语气→按语言风格档案差异化;犹豫/打断/拖长用动作、短句或换行承担。
170
+ - **F 结尾去升华**:大段抒情收尾→安静细节收尾;短篇例外见门禁 F。
171
+ - **G 去解释腔/上帝感**:先按本书叙述姿态判断,短篇例外见门禁 G;授权的有限全知、评论或旁人内心不因形式删除。删无功能的解释、未经授权的剧透、重复总结和空泛定性(之所以/原来/这意味着/她不知道的是/殊不知/多年以后);承担锚点或情绪的压成角色白话;已有场内载体(手机/公告/屏幕)优先保留为角色看到的文本。
@@ -0,0 +1,116 @@
1
+ # 情绪落到纸面:写一章时的情绪执行
2
+
3
+ > 细纲与单元卡已经定了本章的目标情绪和它在弧线上的位置;本文件只管写这一章时怎么把情绪写出来。选弧线、排节奏、管期待是排纲时的事,见 emotional-arc-design.md。
4
+
5
+ ## 情绪核心公式
6
+
7
+ 写每个场景时分离三层情绪:
8
+ 1. 角色自己的情绪(角色感受到的)
9
+ 2. 文本传递的情绪(文本要让读者感受的)
10
+ 3. 读者实际感受的情绪(读者真正的体验)
11
+
12
+ 同一场景三层可以完全不同:角色在哭,文本在撩,读者在爽。
13
+
14
+ 例:女主当众被退婚,强忍着没掉泪——角色:屈辱;文本写她嘴角还挂着笑(角色:撑);读者替她憋着、等后面打脸(读者:爽前蓄力)。
15
+
16
+ ---
17
+
18
+ ## 前反应-复现-后反应情绪结构
19
+
20
+ 用于虐/悲壮/遗憾类场景。按顺序执行三步:
21
+
22
+ 1. **前反应**:让读者提前知道坏结果,然后描写美好事物(读者预知法)
23
+ 2. **复现**:让坏结果真的发生
24
+ 3. **后反应**:主角真情流露,作出改变(愤怒/拼命/振作)
25
+
26
+ 操作示例:知道某人一天后要死 -> 让她经历美好(逛街、看烟花) -> 她真的死了 -> 主角愤怒拼命
27
+
28
+ ---
29
+
30
+ ## 以小搏大情绪结构
31
+
32
+ 用于热血/逆袭类场景。按顺序执行四步:
33
+
34
+ 1. **前反应**:铺垫弱者的苦,用对比强化(现在的弱 vs 以前的强)
35
+ 2. **复现**:强者到来,"我知道你们苦,我来了"
36
+ 3. **后反应**:弱势方被拯救
37
+ 4. **士气如虹**:整体气势转变
38
+
39
+ ---
40
+
41
+ ## 基于不该如此的情绪驱动
42
+
43
+ - "不该如此"是最根本的情绪驱动力——写诬告、不公、恃强凌弱,读者天生生出"不该如此"的念头
44
+ - 核心情绪逻辑:想要爽,必先不爽;想要公平,必先不公平;想要强大,必先不强大
45
+ - "悬而未决"也是强驱动力
46
+ - 好的题材必须具备勾起人们惋惜、渴望改变的特质
47
+
48
+ ---
49
+
50
+ ## 理念矛盾的情感爆发力
51
+
52
+ - 理念之争比利益之争更能引发读者深层共鸣
53
+ - 少量关键场景即可,不需要大量笔墨
54
+ - 理想主义与现实的冲突是塑造配角封神级人设的手法
55
+ - 理念认同 = 人设认同 = 读者情感投入
56
+ - 在主线中穿插理念型角色,用他们的追求和牺牲拔高全书情绪上限
57
+
58
+ ---
59
+
60
+ ## 情绪调动的三层方法
61
+
62
+ 三层:**长期感情投入**、**短期事件冲突**、**场景描绘**。三者可叠加,核心是前两层。
63
+
64
+ ### 长期引导三步骤
65
+
66
+ 1. **抛出共鸣炸弹**:找到角色最易引发共鸣的情感锚点(梦想、仇恨、恐惧)
67
+ 2. **让读者变见证者**:展示角色付出和挣扎,每一步伴随收获
68
+ 3. **让读者变参与者**:通过足够铺垫和细节,产生命运共同体感
69
+
70
+ ### 短期情绪引导
71
+
72
+ 短期靠独立事件冲突。**直白冲突比繁杂情节更容易引起共鸣**。
73
+
74
+ 两种事件类型:
75
+ - **推动情节发展的事件**:让读者对角色处境产生认同
76
+ - **塑造人物性格的事件**:让读者对角色思想性格产生认同
77
+
78
+ 开篇必须选择塑造人物性格的事件——先认同角色这个人才关心角色的事。
79
+
80
+ ### 情绪代入的陷阱
81
+
82
+ 读者未代入主角前:主角弱势可以引起同情,但**敌人弱势也同样引起同情**。读者还没建立认同时,不要把对手写得可怜。
83
+
84
+ ### 情绪文笔技法
85
+
86
+ - **句长跟着情绪和节奏走**:紧张、决断处用短句提速,铺垫、沉淀处用长句蓄势;短句是提速工具,不是默认底色,别通篇拆短
87
+ - **情绪词**:骤然、猛然、刺眼——制造紧迫感
88
+ - **动作词**:抽、划、留下——画面感强,情绪外化
89
+ - **修饰词**:精准克制地使用形容词,不堆砌
90
+ - **进阶规则**:优先通过角色行为暗示情绪,而非直接描写(非硬性,必要的内心可以直写,别为外化堆无功能的小动作)。**以乐写悲**:角色在最悲伤时表现开心,情绪张力更强(赴死的人很开心,往往比哭更悲)
91
+
92
+ ---
93
+
94
+ ## 情绪调动统一视角
95
+
96
+ > 写完一段觉得不到位 / 读者反馈平淡时使用。
97
+
98
+ ### 终极公式
99
+
100
+ **平静 -> 调动 -> 释放 -> 爽**
101
+
102
+ | 技法 | 调动 | 释放 | 结果 |
103
+ |------|------|------|------|
104
+ | 装逼打脸 | 反派嚣张 | 主角碾压 | 爽 |
105
+ | 拉仇恨 | 负面情绪 | 恶人受罚 | 爽 |
106
+ | 先抑后扬 | 打压 | 爆发 | 爽 |
107
+ | 期待感 | 制造鸿沟 | 弥合鸿沟 | 爽 |
108
+
109
+ ### 实操要点
110
+
111
+ - 每个场景标注:读者当前情绪在哪个阶段;下一步是调动还是释放。
112
+ - 只有调动没有释放 = 读者憋屈弃书
113
+ - 只有释放没有调动 = 爽感平淡无力
114
+ - 调动程度决定释放爽度:仇恨拉多满,打脸就多爽
115
+
116
+ ---
@@ -1,5 +1,5 @@
1
1
  # 情绪弧线操作手册
2
- > 写故事时选弧线、控制节奏、调动情绪的速查操作手册。
2
+ > 排卷纲、设计剧情单元时选弧线、排节奏、管期待的速查手册。写一章时怎么把情绪落到纸面见 emotion-on-page.md。
3
3
 
4
4
  ## 决策路由表
5
5
 
@@ -197,42 +197,6 @@
197
197
 
198
198
  ---
199
199
 
200
- ## 情绪核心公式
201
-
202
- 写每个场景时分离三层情绪:
203
- 1. 角色自己的情绪(角色感受到的)
204
- 2. 文本传递的情绪(文本要让读者感受的)
205
- 3. 读者实际感受的情绪(读者真正的体验)
206
-
207
- 同一场景三层可以完全不同:角色在哭,文本在撩,读者在爽。
208
-
209
- 例:女主当众被退婚,强忍着没掉泪——角色:屈辱;文本写她嘴角还挂着笑(角色:撑);读者替她憋着、等后面打脸(读者:爽前蓄力)。
210
-
211
- ---
212
-
213
- ## 前反应-复现-后反应情绪结构
214
-
215
- 用于虐/悲壮/遗憾类场景。按顺序执行三步:
216
-
217
- 1. **前反应**:让读者提前知道坏结果,然后描写美好事物(读者预知法)
218
- 2. **复现**:让坏结果真的发生
219
- 3. **后反应**:主角真情流露,作出改变(愤怒/拼命/振作)
220
-
221
- 操作示例:知道某人一天后要死 -> 让她经历美好(逛街、看烟花) -> 她真的死了 -> 主角愤怒拼命
222
-
223
- ---
224
-
225
- ## 以小搏大情绪结构
226
-
227
- 用于热血/逆袭类场景。按顺序执行四步:
228
-
229
- 1. **前反应**:铺垫弱者的苦,用对比强化(现在的弱 vs 以前的强)
230
- 2. **复现**:强者到来,"我知道你们苦,我来了"
231
- 3. **后反应**:弱势方被拯救
232
- 4. **士气如虹**:整体气势转变
233
-
234
- ---
235
-
236
200
  ## 冲突中的情绪层次与死亡赌注
237
201
 
238
202
  ### 选择死亡赌注
@@ -257,59 +221,6 @@
257
221
 
258
222
  ---
259
223
 
260
- ## 基于不该如此的情绪驱动
261
-
262
- - "不该如此"是最根本的情绪驱动力——写诬告、不公、恃强凌弱,读者天生生出"不该如此"的念头
263
- - 核心情绪逻辑:想要爽,必先不爽;想要公平,必先不公平;想要强大,必先不强大
264
- - "悬而未决"也是强驱动力
265
- - 好的题材必须具备勾起人们惋惜、渴望改变的特质
266
-
267
- ---
268
-
269
- ## 理念矛盾的情感爆发力
270
-
271
- - 理念之争比利益之争更能引发读者深层共鸣
272
- - 少量关键场景即可,不需要大量笔墨
273
- - 理想主义与现实的冲突是塑造配角封神级人设的手法
274
- - 理念认同 = 人设认同 = 读者情感投入
275
- - 在主线中穿插理念型角色,用他们的追求和牺牲拔高全书情绪上限
276
-
277
- ---
278
-
279
- ## 情绪调动的三层方法
280
-
281
- 三层:**长期感情投入**、**短期事件冲突**、**场景描绘**。三者可叠加,核心是前两层。
282
-
283
- ### 长期引导三步骤
284
-
285
- 1. **抛出共鸣炸弹**:找到角色最易引发共鸣的情感锚点(梦想、仇恨、恐惧)
286
- 2. **让读者变见证者**:展示角色付出和挣扎,每一步伴随收获
287
- 3. **让读者变参与者**:通过足够铺垫和细节,产生命运共同体感
288
-
289
- ### 短期情绪引导
290
-
291
- 短期靠独立事件冲突。**直白冲突比繁杂情节更容易引起共鸣**。
292
-
293
- 两种事件类型:
294
- - **推动情节发展的事件**:让读者对角色处境产生认同
295
- - **塑造人物性格的事件**:让读者对角色思想性格产生认同
296
-
297
- 开篇必须选择塑造人物性格的事件——先认同角色这个人才关心角色的事。
298
-
299
- ### 情绪代入的陷阱
300
-
301
- 读者未代入主角前:主角弱势可以引起同情,但**敌人弱势也同样引起同情**。读者还没建立认同时,不要把对手写得可怜。
302
-
303
- ### 情绪文笔技法
304
-
305
- - **句长跟着情绪和节奏走**:紧张、决断处用短句提速,铺垫、沉淀处用长句蓄势;短句是提速工具,不是默认底色,别通篇拆短
306
- - **情绪词**:骤然、猛然、刺眼——制造紧迫感
307
- - **动作词**:抽、划、留下——画面感强,情绪外化
308
- - **修饰词**:精准克制地使用形容词,不堆砌
309
- - **进阶规则**:优先通过角色行为暗示情绪,而非直接描写(非硬性,必要的内心可以直写,别为外化堆无功能的小动作)。**以乐写悲**:角色在最悲伤时表现开心,情绪张力更强(赴死的人很开心,往往比哭更悲)
310
-
311
- ---
312
-
313
224
  ## 男频恋爱文情绪设计
314
225
 
315
226
  ### 两大核心需求
@@ -339,30 +250,6 @@
339
250
 
340
251
  ---
341
252
 
342
- ## 情绪调动统一视角
343
-
344
- > 写完一段觉得不到位 / 读者反馈平淡时使用。
345
-
346
- ### 终极公式
347
-
348
- **平静 -> 调动 -> 释放 -> 爽**
349
-
350
- | 技法 | 调动 | 释放 | 结果 |
351
- |------|------|------|------|
352
- | 装逼打脸 | 反派嚣张 | 主角碾压 | 爽 |
353
- | 拉仇恨 | 负面情绪 | 恶人受罚 | 爽 |
354
- | 先抑后扬 | 打压 | 爆发 | 爽 |
355
- | 期待感 | 制造鸿沟 | 弥合鸿沟 | 爽 |
356
-
357
- ### 实操要点
358
-
359
- - 每个场景标注:读者当前情绪在哪个阶段;下一步是调动还是释放。
360
- - 只有调动没有释放 = 读者憋屈弃书
361
- - 只有释放没有调动 = 爽感平淡无力
362
- - 调动程度决定释放爽度:仇恨拉多满,打脸就多爽
363
-
364
- ---
365
-
366
253
  ## 期待感维持的底层机制
367
254
 
368
255
  > 写了目标但读者不关心 / 六法则用了但效果不好时使用。
@@ -18,7 +18,7 @@
18
18
  1. 先读 `设定/题材定位.md`,确认主题材、目标平台、性向频道、主对标书和核心梗。
19
19
  2. 先查本索引匹配题材,再只读取同目录的 `genre-prose-cards/{题材}.md` 这一张卡;不要把整套题材卡全部加载进 prompt。
20
20
  3. 跨题材时,主题材读取 1 张完整卡,辅题材读取 1 张并只摘 1-2 条“常见场面/禁止漂移”;不要把两套节奏并行堆满。
21
- 4. 高置信卡可直接用于 Phase 2 `设定/题材正文提示卡.md`;中置信卡需结合本书对标/细纲对照;低置信卡只能兜底,必须标注低置信并优先补同题材对标。
21
+ 4. 高置信卡可直接用于写第 1 章前生成的 `设定/题材正文提示卡.md`;中置信卡需结合本书对标/细纲对照;低置信卡只能兜底,必须标注低置信并优先补同题材对标。
22
22
  5. 每章传给 narrative-writer 的 `genre_prose_card` 只保留本章相关条目,推荐 120-300 字;包含:题材限制、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、场景颗粒、禁止漂移、本章取舍、卡片置信度。
23
23
  6. **题材卡只在写手内部校准题材味,绝不出现在正文里**:正文不得写卡名、题材标签、置信度、条目编号或“证据摘要”数据,也不得写“已按题材卡/满足字数/零违规”一类合规自评或写作过程说明——只输出故事本身。
24
24
 
@@ -56,7 +56,7 @@
56
56
  - [ ] 没有突然塞入大量新设定
57
57
  - [ ] 伏笔有推进
58
58
  - [ ] 故事引擎还在运转
59
- - [ ] 对照本章批准细纲,没有新增会影响后续的独立事件、人物决定、关系变化、揭示或支线;闲话、即时反应和服务既有情节点的微连接不算,新的饭局、承诺、选择、结果或后续义务属于 blocking
59
+ - [ ] 对照本章批准细纲核对新增物:闲话、即时反应和服务既有情节点的微连接不算;写了要报:本章写出的新关系、承诺、后续义务要在申报表里列出,由主会话处置;只有与细纲或已登记事实冲突的才是必须修
60
60
 
61
61
  ### 水(filler)检测
62
62
  以下信号出现 = 可能水了:
@@ -95,6 +95,7 @@
95
95
  ### 五维评分标准
96
96
 
97
97
  每个维度 0-100 分,根据评分结果选择精修策略。
98
+ 严重度:critical、high=必须修;medium=建议看;low=仅提示。
98
99
 
99
100
  ### 维度 1:核心一致度
100
101
  检查:关键冲突、关键行动、人物动机是否前后一致。
@@ -122,7 +123,7 @@
122
123
  | 问题 | 严重度 | 修复 |
123
124
  |------|--------|------|
124
125
  | 机械按字数切段或主语过密 | medium | 按戏剧单元重排段落,段首点名、段中代词/省略、关键转折再点名 |
125
- | 章节字数偏离目标 | **high** | 写作/大纲修复时先回到细纲补足计划内情节点,再展开;去AI味已有正文时不得新增剧情 |
126
+ | 章节字数偏离目标 | medium(长篇欠字交作者定) | 先核对情节点是否都写到;都写到就不为字数加戏,超字最多净删一次;去AI味已有正文时不得新增剧情 |
126
127
  | 格式混乱(对话/描写不统一)| low | 统一格式 |
127
128
 
128
129
  ### 维度 4:可读性
@@ -34,11 +34,3 @@
34
34
  - 标题行以外,正文叙述、对话和心理描写不得出现“本章、上一章、前文、后文、伏笔、细纲、读者”等写作工程词。
35
35
  - 需要承接时改成角色可感知的事件锚点或相对时间;角色在故事世界内真实讨论章节/读者身份时例外。
36
36
  - 正文不使用加粗、斜体、分隔线或检查报告;合法章节标题除外。
37
-
38
- ## 交付检查
39
-
40
- - [ ] 段落按镜头与行动变化断开,不是固定句数模板,段间没有空行、没有缩进。
41
- - [ ] 引号、问号、感叹号和停顿方式全章一致。
42
- - [ ] 长篇字数按章级细纲和确定性口径处理,没有短篇小节阈值。
43
- - [ ] 正文没有写作工程元信息、自检或说明。
44
-
@@ -260,7 +260,7 @@
260
260
  | 逆向型 | 失去X→获得更强Y | 越惨越强、负债越有钱 |
261
261
 
262
262
  ### 写长方法
263
- 核心卖点确定后多套路交织循环;单元故事围绕一个套路展开,主线串联;一级结构循环(模式重复但对象/场景/规模升级)
263
+ 核心卖点确定后多套路交织循环;单元故事围绕一个套路展开,主线串联;剧情单元循环(模式重复但对象/场景/规模升级)
264
264
 
265
265
  ### 脑洞四类
266
266
  1. 金手指类(聊天群/系统/戒指老爷爷)
@@ -79,7 +79,7 @@
79
79
  **断期待的判断**:某章既无期待点也无爽点,前一爽点已结束,本身没拉起新期待→读者觉得书失去了"灵魂"开始弃书。
80
80
 
81
81
  **两种运转模式**:
82
- - 不断循环型:每个一级结构运行一次,变奏场景/对象/条件
82
+ - 不断循环型:每个剧情单元运行一次,变奏场景/对象/条件
83
83
  - 只运行一次型:围绕一个核心情绪分阶段推进
84
84
 
85
85
  ### 检验清单
@@ -95,7 +95,7 @@
95
95
  | 误区 | 表现 |
96
96
  |------|------|
97
97
  | 核心梗太多 | 什么都想写=没有核心梗 |
98
- | 立意不明确 | 没有情绪目标,文字干巴巴 |
98
+ | 立意不明确 | 没有目标情绪,文字干巴巴 |
99
99
  | 纯装逼打脸无主题 | 剧情没有意义 |
100
100
  | 核心梗用完不升级 | 生硬重复,审美疲劳 |
101
101
  | 挂羊头卖狗肉 | 书名暗示与实际内容不符 |
@@ -297,7 +297,7 @@
297
297
  - **关系拉扯**:推进和拉开交替,不能只拉近。扯开可用心有芥蒂/暂时冷静/误会,避免直接分手
298
298
  - **英雄救美**:男主事业线行为无意间救女主→女主倒追(非白给)
299
299
  - **误会**:制造隔阂延缓推进,也是装逼打脸工具
300
- - **窗户纸事件**:好感度质变→关系阶段变化,事业线为主的放在一级结构小高潮
300
+ - **窗户纸事件**:好感度质变→关系阶段变化,事业线为主的放在剧情单元小高潮
301
301
 
302
302
  ### 狗粮文循环
303
303
 
@@ -56,13 +56,13 @@
56
56
  | 出场 3 个以上主要角色 | 信息过载 |
57
57
  | 序章/楔子/引 | 除非以叙事为主、足够简短且与第一章逻辑紧密 |
58
58
  | 插叙/切视角/回忆梦境 | 正叙为主 |
59
- | 世界观详细解说 | 至少等到第一个一级结构结束 |
59
+ | 世界观详细解说 | 至少等到第一个剧情单元结束 |
60
60
 
61
61
  ### 冲突节奏
62
62
 
63
63
  - 背景融入冲突(如用旁人议论同时完成背景和冲突)
64
64
  - 两个紧张场景间要有缓和,但缓和 ≠ 无冲突
65
- - 背景信息分批释放(信息团排版),优先级:危机感 > 人设 > 金手指暗示 > 世界观,每次释放服务于当前情绪目标
65
+ - 背景信息分批释放(信息团排版),优先级:危机感 > 人设 > 金手指暗示 > 世界观,每次释放服务于当前目标情绪
66
66
 
67
67
  ### 开篇结构范例(鬼灭之刃)
68
68
 
@@ -150,7 +150,7 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
150
150
 
151
151
  #### 矛盾和冲突的区别
152
152
 
153
- - "矛盾"是一级结构(全书/全卷层面),"冲突"是二级结构(具体场景层面)。
153
+ - "矛盾"在全书/全卷层面,"冲突"在具体场景层面。
154
154
  - 矛盾决定主线方向,冲突是具体表现。
155
155
 
156
156
  #### 第一幕陷阱
@@ -309,11 +309,11 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
309
309
 
310
310
  | 类型 | 运行方式 | 适用 |
311
311
  |------|----------|------|
312
- | 可重复型 | 每个一级结构中重复运行 | 升级文、系统文、文抄娱乐 |
312
+ | 可重复型 | 每个剧情单元中重复运行 | 升级文、系统文、文抄娱乐 |
313
313
  | 不可重复型 | 贯穿全文但只在最高潮爆发一次 | 追妻、掉马、禁忌之恋 |
314
314
  | 长期铺垫型 | 以期待点形式贯穿 | 悬疑、复仇、解谜 |
315
315
 
316
- 运行节奏:第一个一级结构中必须运行一次或完成首次铺垫。连续多个一级结构不运行 = 读者弃书。
316
+ 运行节奏:第一个剧情单元中必须运行一次或完成首次铺垫。连续多个剧情单元不运行 = 读者弃书。
317
317
 
318
318
  双线构思法:布两条线--一条重复运行核心梗,另一条不重复,交替推进。
319
319
 
@@ -450,7 +450,7 @@ Phase 3 设计矛盾与主线结构时加载。包含矛盾设计、主线支线
450
450
  - [ ] 感情线(如有)是否按四阶段推进,试探阶段占30-50%
451
451
  - [ ] 金手指是否通过合格五问,能力是否碎片化融入剧情
452
452
  - [ ] 显性身份/隐性身份/显性金手指/隐性金手指四点是否统一
453
- - [ ] 核心梗是否在第一个一级结构中运行一次或完成首次铺垫
453
+ - [ ] 核心梗是否在第一个剧情单元中运行一次或完成首次铺垫
454
454
  - [ ] 循环核心是否匹配题材,是否偏离核心卖点
455
455
  - [ ] 每个事件是否有至少一个价值改变,能推进主线
456
456
  - [ ] 信息传达顺序是否匹配场景类型(基础/铺垫/反转/高潮)
@@ -16,8 +16,8 @@ Phase 3 建大纲时加载。包含大纲创建法、结构分级、节点设计
16
16
 
17
17
  | 级别 | 特征 | 适用 |
18
18
  |------|------|------|
19
- | 一级 | 单元剧松散连接,靠时间串联,最后大高潮 | 入门 |
20
- | 1.5 级 | 单元剧间有逻辑线索串联,指向核心目标 | 进阶 |
19
+ | 一级 | 剧情单元松散连接,靠时间串联,最后大高潮 | 入门 |
20
+ | 1.5 级 | 剧情单元间有逻辑线索串联,指向核心目标 | 进阶 |
21
21
  | 二级 | 小高潮→意外下行→上行转折→大高潮链 | 高阶 |
22
22
 
23
23
  ## 五步大纲创建法
@@ -32,14 +32,14 @@ Phase 3 建大纲时加载。包含大纲创建法、结构分级、节点设计
32
32
  - [ ] 是否与阶段目标高度一致?
33
33
  - [ ] 读者情绪波动是否最大?
34
34
 
35
- ### 第2步:确定单元剧
35
+ ### 第2步:确定剧情单元
36
36
 
37
- 每个单元剧 = 主角用金手指优势获得爽点。同类型重复 = 剧情套路,有逻辑关系的成组出现 = 剧情套路链路。
37
+ 每个剧情单元 = 主角用金手指优势获得爽点。同类型重复 = 剧情套路,有逻辑关系的成组出现 = 剧情套路链路。
38
38
 
39
39
  操作要求:
40
- - 每个单元剧必须展示金手指不同用法
41
- - 相邻单元剧禁止使用相同金手指逻辑
42
- - 单元剧之间必须建立因果关系
40
+ - 每个剧情单元必须展示金手指不同用法
41
+ - 相邻剧情单元禁止使用相同金手指逻辑
42
+ - 剧情单元之间必须建立因果关系
43
43
 
44
44
  ### 第3步:故事线组织与信息点预埋
45
45
 
@@ -246,7 +246,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
246
246
 
247
247
  ### 开头精简法
248
248
 
249
- 1. 整理开头第一个一级结构的矛盾
249
+ 1. 整理开头第一个剧情单元的矛盾
250
250
  2. 把介绍性、抒情性文字逐条向上连——尝试与矛盾直接关联
251
251
  3. 隔了好几层逻辑才能连上的 → **无效信息,删除**
252
252
  4. 后文没戏份的配角不给名字
@@ -257,7 +257,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
257
257
  |------|------|
258
258
  | 爽点/期待点出现 | 1000字内必须看到 |
259
259
  | 打斗 | 第一章不能上来就打 |
260
- | 爱情线对象 | 第一个一级结构内必须出场 |
260
+ | 爱情线对象 | 第一个剧情单元内必须出场 |
261
261
  | 金手指展示 | 第一个冲突由金手指解决,主角主动选择使用 |
262
262
 
263
263
  ---
@@ -353,7 +353,7 @@ Phase 3-4 节奏把控时加载。包含升级感设计、情绪模块公式、
353
353
 
354
354
  1. 确定目标矛盾类型,在剧情原型库中检索
355
355
  2. 将匹配剧情拆为细纲放左边,自己的情况放右边,逐点改编
356
- 3. 验证改编后是否满足情绪目标、与主线衔接、无逻辑漏洞
356
+ 3. 验证改编后是否满足目标情绪、与主线衔接、无逻辑漏洞
357
357
 
358
358
  ### 同人衍生型大纲法
359
359