@oh-story/dsh 0.1.16 → 0.1.18

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 (271) hide show
  1. package/README.md +13 -13
  2. package/lib/client.js +173 -111
  3. package/lib/client.js.map +3 -3
  4. package/lib/drama/package.json +4 -0
  5. package/lib/index.js +58 -28
  6. package/lib/index.js.map +2 -2
  7. package/lib/novel-to-game/README.md +3 -3
  8. package/lib/novel-to-game/README_ZH.md +4 -4
  9. package/lib/novel-to-game/VERSION +1 -1
  10. package/lib/novel-to-game/manifest.json +25 -20
  11. package/lib/novel-to-game/package.json +4 -0
  12. package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +4 -0
  13. package/lib/novel-to-game/skills/game-build/SKILL.md +7 -1
  14. package/lib/novel-to-game/skills/game-build/references/baked-sprite-workflow.md +19 -0
  15. package/lib/novel-to-game/skills/game-concept/references/concept-method.md +4 -1
  16. package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -3
  17. package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +1 -0
  18. package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +13 -2
  19. package/lib/oh-story/manifest.json +417 -592
  20. package/lib/oh-story/package.json +4 -0
  21. package/lib/oh-story/roles/chapter-extractor.md +4 -3
  22. package/lib/oh-story/roles/character-designer.md +20 -85
  23. package/lib/oh-story/roles/consistency-checker.md +5 -5
  24. package/lib/oh-story/roles/narrative-writer.md +9 -9
  25. package/lib/oh-story/roles/story-architect.md +19 -26
  26. package/lib/oh-story/roles/story-explorer.md +4 -5
  27. package/lib/oh-story/roles/story-researcher.md +6 -7
  28. package/lib/oh-story/skills/browser-cdp/SKILL.md +26 -15
  29. package/lib/oh-story/skills/story/SKILL.md +94 -54
  30. package/lib/oh-story/skills/story/VERSION +1 -1
  31. package/lib/oh-story/skills/story-cover/SKILL.md +41 -220
  32. package/lib/oh-story/skills/story-cover/references/api-fallback.md +128 -0
  33. package/lib/oh-story/skills/story-cover/references/cover-styles.md +61 -95
  34. package/lib/oh-story/skills/story-deslop/SKILL.md +32 -27
  35. package/lib/oh-story/skills/story-deslop/references/agent-calls.md +4 -4
  36. package/lib/oh-story/skills/story-deslop/references/banned-words.md +7 -9
  37. package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +12 -12
  38. package/lib/oh-story/skills/story-deslop/references/expression.md +10 -3
  39. package/lib/oh-story/skills/story-deslop/references/story-logic.md +1 -1
  40. package/lib/oh-story/skills/story-deslop/references/style-resolution.md +1 -1
  41. package/lib/oh-story/skills/story-import/SKILL.md +12 -11
  42. package/lib/oh-story/skills/story-import/references/benchmark-sync.md +50 -0
  43. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +3 -4
  44. package/lib/oh-story/skills/story-import/references/deep-analysis.md +2 -3
  45. package/lib/oh-story/skills/story-import/references/import-report.md +5 -4
  46. package/lib/oh-story/skills/story-import/references/import-special-cases.md +6 -16
  47. package/lib/oh-story/skills/story-import/references/import-tracking.md +2 -2
  48. package/lib/oh-story/skills/story-import/references/length-routing.md +1 -43
  49. package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +8 -8
  50. package/lib/oh-story/skills/story-import/references/outline-reverse.md +2 -2
  51. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +113 -125
  52. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +77 -88
  53. package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +36 -59
  54. package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +5 -1
  55. package/lib/oh-story/skills/story-import/scripts/outline_view.py +286 -0
  56. package/lib/oh-story/skills/story-long-analyze/SKILL.md +38 -75
  57. package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +21 -23
  58. package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +8 -17
  59. package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +18 -5
  60. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +8 -14
  61. package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +26 -27
  62. package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +74 -162
  63. package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +124 -309
  64. package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +49 -166
  65. package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +12 -15
  66. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +110 -34
  67. package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +12 -2
  68. package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +3 -1
  69. package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +5 -1
  70. package/lib/oh-story/skills/story-long-scan/SKILL.md +49 -72
  71. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +47 -167
  72. package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +23 -8
  73. package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +24 -22
  74. package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +25 -13
  75. package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +41 -27
  76. package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +24 -16
  77. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +31 -33
  78. package/lib/oh-story/skills/story-long-write/SKILL.md +5 -5
  79. package/lib/oh-story/skills/story-long-write/references/agent-calls.md +1 -1
  80. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +51 -24
  81. package/lib/oh-story/skills/story-long-write/references/banned-words.md +7 -9
  82. package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +3 -3
  83. package/lib/oh-story/skills/story-long-write/references/character-basics.md +57 -95
  84. package/lib/oh-story/skills/story-long-write/references/character-relations.md +119 -269
  85. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +2 -2
  86. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +8 -8
  87. package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +7 -7
  88. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +38 -298
  89. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +12 -53
  90. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +39 -85
  91. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +97 -163
  92. package/lib/oh-story/skills/story-long-write/references/long-chapter-hooks.md +39 -119
  93. package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +39 -91
  94. package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +81 -310
  95. package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +115 -326
  96. package/lib/oh-story/skills/story-long-write/references/long-reversal.md +1 -1
  97. package/lib/oh-story/skills/story-long-write/references/long-suspense.md +8 -8
  98. package/lib/oh-story/skills/story-long-write/references/opening-design.md +38 -334
  99. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +128 -281
  100. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +58 -499
  101. package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -14
  102. package/lib/oh-story/skills/story-long-write/references/reference-index.md +29 -82
  103. package/lib/oh-story/skills/story-long-write/references/revision-diagnosis.md +31 -0
  104. package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +2 -2
  105. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +12 -19
  106. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +3 -171
  107. package/lib/oh-story/skills/story-long-write/references/style-resolution.md +1 -1
  108. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +8 -6
  109. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +2 -2
  110. package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +47 -47
  111. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +7 -7
  112. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +4 -9
  113. package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +72 -98
  114. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +59 -115
  115. package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +38 -18
  116. package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +23 -11
  117. package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +5 -1
  118. package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +1 -1
  119. package/lib/oh-story/skills/story-review/SKILL.md +26 -24
  120. package/lib/oh-story/skills/story-review/references/agent-prompts.md +13 -9
  121. package/lib/oh-story/skills/story-review/references/banned-words.md +7 -9
  122. package/lib/oh-story/skills/story-review/references/expression.md +10 -3
  123. package/lib/oh-story/skills/story-review/references/quality-rubric.md +7 -7
  124. package/lib/oh-story/skills/story-review/references/review-tracking.md +2 -1
  125. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +8 -9
  126. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +9 -11
  127. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +9 -8
  128. package/lib/oh-story/skills/story-review/references/solo.md +6 -5
  129. package/lib/oh-story/skills/story-review/references/story-logic.md +1 -1
  130. package/lib/oh-story/skills/story-review/references/style-resolution.md +1 -1
  131. package/lib/oh-story/skills/story-setup/SKILL.md +24 -31
  132. package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +12 -13
  133. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +7 -9
  134. package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +1 -1
  135. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +57 -95
  136. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +119 -269
  137. package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +12 -12
  138. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +8 -8
  139. package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +7 -7
  140. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +38 -298
  141. package/lib/oh-story/skills/story-setup/references/agent-references/expression.md +10 -3
  142. package/lib/oh-story/skills/story-setup/references/agent-references/female-audience-writing.md +141 -0
  143. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +96 -161
  144. package/lib/oh-story/skills/story-setup/references/agent-references/long-chapter-hooks.md +39 -119
  145. package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +13 -54
  146. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +81 -310
  147. package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +115 -326
  148. package/lib/oh-story/skills/story-setup/references/agent-references/long-reversal.md +1 -1
  149. package/lib/oh-story/skills/story-setup/references/agent-references/long-suspense.md +8 -8
  150. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +38 -334
  151. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +128 -281
  152. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +58 -499
  153. package/lib/oh-story/skills/story-setup/references/agent-references/short-chapter-hooks.md +63 -171
  154. package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +11 -63
  155. package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +40 -50
  156. package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +14 -39
  157. package/lib/oh-story/skills/story-setup/references/agent-references/story-logic.md +1 -1
  158. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +12 -19
  159. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +3 -171
  160. package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +1 -1
  161. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +59 -115
  162. package/lib/oh-story/skills/story-short-analyze/SKILL.md +41 -90
  163. package/lib/oh-story/skills/story-short-analyze/references/analysis-characters.md +66 -0
  164. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +21 -20
  165. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +4 -3
  166. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +4 -4
  167. package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +5 -5
  168. package/lib/oh-story/skills/story-short-analyze/references/analysis-submission.md +52 -0
  169. package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +23 -73
  170. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +25 -26
  171. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +20 -38
  172. package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +9 -158
  173. package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +39 -26
  174. package/lib/oh-story/skills/story-short-analyze/references/stage4-6-reversal-summary.md +42 -71
  175. package/lib/oh-story/skills/story-short-scan/SKILL.md +52 -62
  176. package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +16 -12
  177. package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +10 -4
  178. package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +15 -6
  179. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +34 -72
  180. package/lib/oh-story/skills/story-short-scan/references/topic-match.md +33 -13
  181. package/lib/oh-story/skills/story-short-write/SKILL.md +5 -5
  182. package/lib/oh-story/skills/story-short-write/references/agent-calls.md +3 -3
  183. package/lib/oh-story/skills/story-short-write/references/banned-words.md +7 -9
  184. package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +17 -22
  185. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +22 -37
  186. package/lib/oh-story/skills/story-short-write/references/deslop-gates.md +12 -12
  187. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +8 -8
  188. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +11 -63
  189. package/lib/oh-story/skills/story-short-write/references/expression.md +10 -3
  190. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
  191. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +6 -6
  192. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +8 -8
  193. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +4 -4
  194. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +9 -9
  195. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +10 -10
  196. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
  197. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +6 -6
  198. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +6 -6
  199. package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +12 -12
  200. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +40 -50
  201. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +63 -171
  202. package/lib/oh-story/skills/story-short-write/references/reference-index.md +13 -14
  203. package/lib/oh-story/skills/story-short-write/references/short-craft.md +10 -29
  204. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +2 -2
  205. package/lib/oh-story/skills/story-short-write/references/short-format.md +12 -32
  206. package/lib/oh-story/skills/story-short-write/references/short-reversal.md +14 -39
  207. package/lib/oh-story/skills/story-short-write/references/story-logic.md +1 -1
  208. package/lib/oh-story/skills/story-short-write/references/style-resolution.md +1 -1
  209. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +29 -19
  210. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +14 -19
  211. package/lib/oh-story/skills/story-short-write/references/workflow-design.md +67 -26
  212. package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +10 -11
  213. package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +50 -69
  214. package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +21 -16
  215. package/lib/types/client/file-activity.d.ts +10 -0
  216. package/lib/types/client/file-activity.d.ts.map +1 -1
  217. package/lib/types/client/game-preview-state.d.ts +34 -0
  218. package/lib/types/client/game-preview-state.d.ts.map +1 -0
  219. package/lib/types/client/index.d.ts.map +1 -1
  220. package/lib/types/client/video-studio.d.ts +24 -0
  221. package/lib/types/client/video-studio.d.ts.map +1 -1
  222. package/lib/types/host-python.d.ts +10 -3
  223. package/lib/types/host-python.d.ts.map +1 -1
  224. package/lib/types/native-hooks.d.ts.map +1 -1
  225. package/lib/types/skill-provider.d.ts.map +1 -1
  226. package/lib/types/workspace-route.d.ts +6 -0
  227. package/lib/types/workspace-route.d.ts.map +1 -1
  228. package/lib/video-recap/package.json +4 -0
  229. package/package.json +23 -23
  230. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  231. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -45
  232. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  233. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  234. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  235. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  236. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -101
  237. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -92
  238. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  239. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -503
  240. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -34
  241. package/lib/oh-story/skills/story-long-write/references/expression.md +0 -76
  242. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +0 -63
  243. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  244. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  245. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -272
  246. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  247. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -710
  248. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -624
  249. package/lib/oh-story/skills/story-long-write/references/story-logic.md +0 -65
  250. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -306
  251. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  252. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -285
  253. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  254. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -243
  255. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  256. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  257. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  258. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -145
  259. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -433
  260. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -426
  261. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -384
  262. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -144
  263. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -238
  264. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -464
  265. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  266. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -89
  267. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  268. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -145
  269. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -116
  270. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -207
  271. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -1,45 +1,59 @@
1
1
  # 起点:采集与分析
2
2
 
3
- 选择起点时读取。脚本默认先读 `https://m.qidian.com` 页面的 SSR 内嵌数据,失败才回退 CDP/PC;文件头 `抓取方式` 标 `mobile-ssr` 或 `cdp-pc`。书库新书只走 Chrome,先说明并用 `/browser-cdp` 启动。
3
+ 排行榜默认读手机版页面,不需要 Chrome;读不到才用 Chrome 打开电脑版。书库新书只能用 Chrome,先说明并用 `/browser-cdp` 启动。脚本采的是起点主站,以男频为主;若要看起点女频,说明脚本采不到,请作者贴起点女频的榜单(见 SKILL「作者提供」)。
4
4
 
5
- ## 榜单与命令
5
+ ## 默认命令
6
6
 
7
- `node scripts/qidian-rank-scraper.js --type {榜单} --outdir {输出目录}`(`--type all` 全采;`--mode mobile|cdp` 强制方式;`--detail yes` 仅在 CDP 模式补详情)
7
+ ```bash
8
+ node scripts/qidian-rank-scraper.js --type newsign --outdir {outdir} # 新人签约新书榜
9
+ node scripts/qidian-rank-scraper.js --type yuepiao --outdir {outdir} # 月票榜
10
+ node scripts/qidian-rank-scraper.js --type hotsales --outdir {outdir} # 畅销榜
11
+ ```
8
12
 
9
- | 榜单 | --type | URL | 看什么 |
10
- |------|--------|-----|--------|
11
- | 新人签约新书榜 | newsign | qidian.com/rank/newsign/ | 新人签约作品,新风向 |
12
- | 签约作者新书榜 | signnewbook | qidian.com/rank/signnewbook/ | 已签约作者新作风向 |
13
- | 公众作者新书榜 | pubnewbook | qidian.com/rank/pubnewbook/ | 发现潜力作者 |
14
- | 新人作者新书榜 | newauthor | qidian.com/rank/newauthor/ | 新人赛道 |
15
- | 三江推荐 | sanjiang | qidian.com/sanjiang/ | 编辑精选,按周分组(非 /rank/ 路径) |
16
- | 月票榜 | yuepiao | qidian.com/rank/yuepiao/ | 付费认可度最高 |
17
- | 畅销榜 | hotsales | qidian.com/rank/hotsales/ | 真金白银投票 |
18
- | 阅读指数榜 | readindex | qidian.com/rank/readindex/ | 阅读量综合 |
19
- | 收藏榜 | collect | qidian.com/rank/collect/ | 读者关注热度 |
20
- | 原创推荐榜 | recom | qidian.com/rank/recom/ | 读者推荐票表现 |
13
+ 作者要看新书里在冒头的,再加书库新书:
21
14
 
22
- 默认组合:新人签约新书榜 + 签约作者新书榜 + 月票榜 + 畅销榜。文件名 `起点{榜单}_{YYYYMMDD}.md`。移动端两个签约榜均取 `/rank/sign/`,`collect` 取书友榜;以文件头「移动端实际榜单」为准。
15
+ ```bash
16
+ node scripts/qidian-rank-scraper.js --type library --pages 3 --outdir {outdir} # 默认 3 页,最多 10
17
+ ```
23
18
 
24
- ### 书库新书
19
+ 书库新书是「男生、连载、30 万字以下、三日内更新」按人气排的前几页,名次即人气排名,会拉低字数中位。跟作者说「起点最近三天还在更新的 30 万字以内新书,按人气取前 3 页,要开浏览器」。
25
20
 
26
- 要看「新书」「最近冒头」「什么在起量」时再加,默认组合不采。qidian.com/all/action0-size1-update1/ 筛选男生、连载、30 万字以下、三日内更新的作品,按人气排,每页 20 本,可补充已下新书榜但仍在更新的书。
21
+ ## 可选榜单
27
22
 
28
- ```bash
29
- node scripts/qidian-rank-scraper.js --type library --pages 3 --outdir {输出目录} # 默认 3 页,最多 10,不进 --type all
30
- ```
23
+ `--type` 换成下表的值;`all` 采全部排行榜(不含书库新书)。`--mode mobile|cdp` 强制读手机版或电脑版。
31
24
 
32
- 所有页合写 `起点男频书库人气新书_{YYYYMMDD}.md`,名次连续,表示人气排名。字数由字体解码,签约/收费由移动端详情补,缺值写 `[待补]`;「新书总推荐」不进聚合热度。该筛选会拉低字数中位。跟作者说「起点最近三天还在更新的 30 万字以内新书,按人气取前 3 页,要开浏览器」。
25
+ | 榜单 | --type | 看什么 |
26
+ |------|--------|--------|
27
+ | 新人签约新书榜 | newsign | 新人签约作品,新风向 |
28
+ | 签约作者新书榜 | signnewbook | 已签约作者的新作 |
29
+ | 公众作者新书榜 | pubnewbook | 潜力作者 |
30
+ | 新人作者新书榜 | newauthor | 新人赛道 |
31
+ | 三江推荐 | sanjiang | 编辑精选,平台力推方向 |
32
+ | 月票榜 | yuepiao | 付费认可度 |
33
+ | 畅销榜 | hotsales | 订阅表现 |
34
+ | 阅读指数榜 | readindex | 阅读量综合 |
35
+ | 收藏榜 | collect | 手机版没有,取书友榜代替 |
36
+ | 原创推荐榜 | recom | 推荐票表现 |
33
37
 
34
- ## 字段
38
+ 手机版的两个签约榜是同一页,`newsign` 和 `signnewbook` 只采一个;都采了,聚合会按一份计。以文件头「移动端实际榜单」为准。
35
39
 
36
- 排名、书名、作者、题材(主类·子类)、状态、签约、收费模式、字数、总推荐、标签/最新更新/简介、作品页链接;题材、字数、总推荐缺失写 `[待补]`。聚合按主类分题材、子类作标签,热度以表头口径为准;同源的两个签约榜不作独立交叉验证。
40
+ ## 字段与热度口径
41
+
42
+ 排名、书名、作者、题材(主类·子类)、状态、签约、收费模式、字数、总推荐、标签、简介、作品页链接;缺项写 `[待补]`。聚合按主类分题材、子类进标签,热度口径是总推荐。书库新书的总推荐另列为「新书总推荐」,不和老书混算。
43
+
44
+ ## 采不到时
45
+
46
+ - 手机版读取失败后改用 Chrome,若遇到验证码:脚本会停下等你在 Chrome 窗口里手动完成验证,最长 120 秒。告诉作者去 Chrome 里点验证。
47
+ - 文件头「数据质量」标了问题:看「问题摘要」。题材、字数大面积缺失多半是手机版页面改版,先 `/browser-cdp` 启动 Chrome,再加 `--mode cdp` 重采一次。
37
48
 
38
49
  ## 分析维度
39
50
 
40
51
  | 维度 | 看什么 |
41
52
  |---|---|
42
- | 月票榜/畅销榜 | 观察付费榜表现,不等同于订阅或追读原数 |
43
- | 各新书榜 | 新作者、新题材的早期信号;和月票/畅销榜的题材占比对照 |
53
+ | 月票榜/畅销榜 | 付费榜表现,不等于订阅或追读原数;头部多是连载多年的大神老书 |
54
+ | 新书榜、书库新书 | 新作者、新题材的早期信号;和月票、畅销榜的题材占比对照 |
44
55
  | 三江推荐 | 平台力推方向 |
45
- | 追读率 | 当前榜单不提供,不能由月票/畅销排名换算 |
56
+
57
+ ## 本平台读者
58
+
59
+ 付费订阅、男频为主,读者要升级、成长和长线追读,爽点偏实力碾压、智谋取胜、机缘兑现;雷区是长期憋屈、主角被动又不反击。
@@ -1,39 +1,47 @@
1
1
  # 七猫:采集与分析
2
2
 
3
- 选择七猫时读取。排行榜先用 `/browser-cdp` 启动 Chrome,脚本切换男生/女生榜并滚动加载;书库新书直接请求网页,不用 Chrome。
3
+ 排行榜先用 `/browser-cdp` 启动 Chrome;书库新书直接请求网页,不用 Chrome。
4
4
 
5
- ## 榜单与命令
5
+ ## 默认命令
6
6
 
7
- 入口 qimao.com/paihang:大热榜(日榜/月榜)、新书榜、完结榜、收藏榜、更新榜。
7
+ `--channel` 按 Phase 1 的频道取:male=男频、female=女频、all=男女都采。
8
8
 
9
9
  ```bash
10
- node scripts/qimao-rank-scraper.js --channel male --type hot --period day --outdir {输出目录} # 男生大热榜日榜
11
- node scripts/qimao-rank-scraper.js --channel all --type all --outdir {输出目录} # 全部
10
+ node scripts/qimao-rank-scraper.js --channel all --type hot --period day --outdir {outdir} # 男女频大热榜日榜
12
11
  ```
13
12
 
14
- 大热榜用 `--period day|month|all` 选日榜、月榜或两者(默认 day),周期进文件头与文件名;其他榜不分周期。默认组合:男频大热榜日榜 + 女频大热榜日榜。
15
-
16
- ### 书库新书
17
-
18
- 作者说「新书」「最近冒头」「什么在起量」时再加,不进默认组合。书库筛选页 qimao.com/shuku/a-a-a-1-1-a-0-click-{页码}/:全部频道、30 万字以下、3 天内更新、连载中,按点击量排,每页 15 本。
13
+ 作者要看新书里在冒头的,再加新书榜和书库新书:
19
14
 
20
15
  ```bash
21
- node scripts/qimao-rank-scraper.js --source library --pages 3 --outdir {输出目录} # 前 3 页(默认 3,最多 10)
16
+ node scripts/qimao-rank-scraper.js --channel all --type new --outdir {outdir} # 男女频新书榜
17
+ node scripts/qimao-rank-scraper.js --source library --pages 3 --outdir {outdir} # 书库新书,前 3 页(最多 10)
22
18
  ```
23
19
 
24
- 所有页合写 `七猫全站书库点击新书_{YYYYMMDD}.md`,名次连续,表示点击排名。该筛选会拉低字数中位,长篇篇幅另看排行榜。页面不提供热度数字,无热度属正常;仅采书库时分析题材、字数和标签。跟作者说「七猫最近三天还在更新的 30 万字以内新书,按点击取前 3 页」。
20
+ 书库新书是全部频道「30 万字以下、3 天内更新、连载中」按点击量排的前几页,每页 15 本,名次即点击排名,没有热度数字,会拉低字数中位;只看题材、字数和标签。跟作者说「七猫最近三天还在更新的 30 万字以内新书,按点击取前 3 页」。
21
+
22
+ ## 可选参数
23
+
24
+ - `--type`:hot 大热榜 / new 新书榜 / finish 完结榜 / collect 收藏榜 / update 更新榜 / all 全部。
25
+ - 大热榜用 `--period day|month|all` 选日榜、月榜或两者,默认日榜;其他榜不分周期。
25
26
 
26
- ## 字段
27
+ ## 字段与热度口径
27
28
 
28
- 书库从分类页补主类,补不到时退用子类;聚合出现细分类时先核对分类来源。
29
+ 排名、书名、作者、题材、分类标签(聚合时进标签)、状态、字数、热度(核心指标,聚合的热度口径;书库新书没有)、最新更新、作品页链接、简介。书库从分类页补主类,补不到时改用子类;聚合出现很细的题材名时先核对来源。
29
30
 
30
- 排名、书名、作者、题材、分类标签(聚合时进标签)、状态、字数(万字)、热度(核心指标,聚合的热度口径;书库新书没有)、最新更新、作品页链接、简介。文件头带 `数据质量`、`有效条目`、`问题摘要`、链接与热度命中数;热度缺失写 `[待补]`。
31
+ ## 采不到时
32
+
33
+ - 终端提示「页面实际榜单与请求不一致,已跳过」:页面没切到要的频道或榜单。在 Chrome 里手动点一次对应的男生榜/女生榜和榜单标签,再重采这一条。
34
+ - 文件头「数据质量」标了问题:看「问题摘要」,缺热度或链接的条目多时,结论只用有热度的书。
31
35
 
32
36
  ## 分析维度
33
37
 
34
38
  | 维度 | 看什么 |
35
39
  |---|---|
36
40
  | 大热榜 | 热度排名,流量集中度 |
37
- | 新书榜 | 流量风口候选,与大热榜及可比上期对照 |
41
+ | 新书榜、书库新书 | 流量风口候选,与大热榜及可比上期对照 |
38
42
  | 完结榜 | 长尾价值作品 |
39
43
  | 热度 | 平台公开指标,按同周期比较,不换算为读者人数 |
44
+
45
+ ## 本平台读者
46
+
47
+ 免费阅读,读者面广,要快节奏、强剧情、不拖沓;雷区是文艺腔、节奏慢、不爽。男频偏逆袭、打脸;女频偏强情绪、甜虐推拉。编辑收稿偏好(旧资料,以本次榜单为准):追妻火葬场、年代甜宠、多男主修罗场。
@@ -1,17 +1,6 @@
1
1
  # 选题决策:从扫榜数据到"写什么能爆"
2
2
 
3
- Phase 5 根据扫榜结果产出 `选题决策.md`:**推荐写什么、为什么可能爆、作者能否驾驭、如何验证**。"能爆的原因"先记为假设,交给 story-long-analyze 拆文验证,再供 story-long-write 开书使用。
4
-
5
- ---
6
-
7
- ## 决策路由
8
-
9
- | 你在做什么 | 看这节 |
10
- |-----------|--------|
11
- | 把扫榜结果变成选题建议 | 选题四步 |
12
- | 判断一个方向行不行 | 可行性判断 |
13
- | 没联网/没榜单数据 | 内置知识模式 |
14
- | 落盘交付 | 选题决策.md 模板 + 交付 |
3
+ Phase 5 补上「推荐选题」,产出 `选题决策.md`:**推荐写什么、为什么可能爆、作者能否驾驭、如何验证**。文件头和「扫榜结论」在 Phase 4 已写好。"能爆的原因"先记为假设,交给 story-long-analyze 拆文验证,再供 story-long-write 开书使用。
15
4
 
16
5
  ---
17
6
 
@@ -19,63 +8,72 @@ Phase 5 根据扫榜结果产出 `选题决策.md`:**推荐写什么、为什
19
8
 
20
9
  每个推荐选题都走完这四步,缺一不可:
21
10
 
22
- 1. **能爆的原因(先当假设)**:从榜上重复样本与新元素推测,哪种结构、梗或人设吸引了目标读者;标 `待拆文验证`,由拆文回填依据。
23
- 2. **市场验证**:记录同方向本数、可比上期的趋势和有来源的扑街/烂尾反例。榜单不提供失败样本;没核实反例就写未核实,无可比上期就写现状。
11
+ 1. **能爆的原因(先当假设)**:从榜上重复样本与新元素推测,哪种结构、梗或人设吸引了目标读者;标 `待拆文验证`,由拆文回填依据。同时挑 1-2 本对标书让作者拆:优先选新书榜、书库新书中字数不多的同方向书,头部老书只作参照。
12
+ 2. **市场验证**:记录同方向本数、热度和可比上期的趋势。榜单没有扑街样本,反例只认作者或编辑给的、有来源的;没有就写未核实,无可比上期就写现状。
24
13
  3. **差异化定位**:作者优势 × 市场缺口 = "你的版本和榜上现有的不同在哪"。没有差异化 = 同质化挤不进去。
25
- 4. **可行性 + 风险 + 验证动作**:给出可行性高/中/低(下节规则)、最可能的失败点、开写前怎么低成本验证(通常:"先写黄金三章测追读,不行就换")。
14
+ 4. **可行性 + 风险 + 验证动作**:按下节给出高/中/低、最可能的失败点、开写前怎么低成本验证(通常是先写黄金三章,发出去看追读,不行就换)。
26
15
 
27
16
  ---
28
17
 
29
18
  ## 可行性判断
30
19
 
31
- 按当前证据分三档。同方向样本按本平台去重作品计,细分梗不直接继承主类本数,也不把抽样命中条数当去重本数:
20
+ 同方向样本按本平台去重作品计;细分梗只数带这个梗的书,不继承主类本数,也不把抽样命中条数当本数。
32
21
 
33
- | 可行性 | 含义 | 条件 |
34
- |--------|------|------|
35
- | 高 | 当前证据较充分 | 同方向样本够(≥15,小平台≥10)+ 可比数据支持↑或→ + 作者素材能撑 + 有差异化空间 |
36
- | 中 | 可写但先验证 | 样本不足、趋势↓、差异化不清,或素材只能支撑部分情节 |
37
- | 低 | 不建议 | 同方向已饱和(扑街反例多)/ 或作者素材撑不住 / 或平台调性不符 |
22
+ | 可行性 | 条件 |
23
+ |--------|------|
24
+ | 高 | 同方向样本够(≥15 本,刺猬猫≥10)+ 和上期比在涨或持平 + 作者素材能撑 + 有差异化空间 |
25
+ | 中 | 可写但先验证:样本不足、在跌、没有上期可比、差异化不清,或素材只能撑部分情节 |
26
+ | 低 | 不建议:作者素材撑不住、平台调性不符,或有来源的反例显示同方向已挤满 |
38
27
 
39
- **硬规则**:榜单标 `[数据稀疏]`、聚合样本标「少」,或同方向不足 15 本(小平台不足 10 本)时,**最高给"中"**,写明先补样本或试水;素材撑不住、平台不符等低可行性条件仍按"低"处理。
28
+ **最高给"中"**:榜单标 `[数据稀疏]`、聚合标「少」、同方向不足 15 本(刺猬猫不足 10 本)、首次扫榜无上期可比、或内置知识模式,都最高给"中",写明先补样本或小成本试水。素材撑不住、平台不符仍给"低"。
40
29
 
41
- **内置知识模式**:无实时榜单时最高给"中",说明方向尚待扫榜或小成本试水验证;已有条件不适配时给"低"。
30
+ **番茄**:每个题材按上限等额采样,题材本数总是接近上限,不能当"样本够"。番茄的同方向样本要按细分梗或标签统计本数;题材冷热看热度中位和平台 P75,并看它在新书榜、书库新书里有没有书。
31
+
32
+ ---
33
+
34
+ ## 平台适配与目标读者
35
+
36
+ - 先匹配题材与平台读者,再比较流量;平台大不等于项目更容易成。平台的读者与调性见所选平台参考的「本平台读者」。
37
+ - 合同、保底、分成、全勤等收益问题,以平台最新官方规则或编辑说法为准,这里不判断。
38
+ - 「目标读者」只写榜单能推断的内容:频道(男频/女频);读者对这类套路的熟悉程度,新梗多解释,老梗直接上爽点;年龄段偏向须有标签、简介证据。
42
39
 
43
40
  ---
44
41
 
45
42
  ## 选题决策.md 模板
46
43
 
47
- ```
44
+ ```md
48
45
  # 选题决策:{平台/方向}
49
- - 扫榜日期:{YYYYMMDD} # 数据新鲜度;写作读取时若过期会提示复扫
46
+ - 扫榜日期:{YYYYMMDD}
50
47
  - 数据来源:{榜单文件名 / 内置知识}
51
- - 聚合表:扫榜聚合.md # 同目录;内置知识模式写「无」
48
+ - 聚合表:{扫榜聚合.md,内置知识模式写「无」}
52
49
 
53
50
  ## 扫榜结论:{平台名称}
54
- {Phase 4 报告正文,Phase 4 写入;Phase 5 只读不改}
51
+ {Phase 4 写入的报告正文;Phase 5 只读不改}
55
52
 
56
53
  ## 推荐选题
57
54
 
58
55
  ### 选题 1:{一句话方向}
59
56
  - 题材组合:{主类型 + 副类型/梗}
60
- - 目标读者:{画像}
57
+ - 目标读者:{频道 + 熟不熟这类套路}
61
58
  - 核心卖点:{读者为什么追}
62
59
  - 能爆的原因:{X 结构/梗为什么吃这波}(假设,`待拆文验证`)
63
60
  - 差异化定位:{和榜上现有的不同在哪}
64
- - 可行性:高/中/低 — {理由,写清同方向几本 + 趋势}
61
+ - 可行性:高/中/低 — {理由,写清同方向几本 + 趋势;被上限压到「中」的写明原因,如「中(没有上期可比)」}
65
62
  - 失败风险:{最可能崩在哪}
66
63
  - 验证动作:{开写前怎么低成本验证}
64
+ - 建议拆的对标书:{《书名》(平台,选它的理由)}
67
65
  - 篇幅/平台:{建议字数区间 + 目标平台}
68
66
 
69
67
  ### 选题 2 ...
70
68
  ### 选题 3 ...
71
69
  ```
72
70
 
73
- 2-3 个选题为宜,按可行性排序(高的在前)。
71
+ 2-3 个选题为宜,按可行性排序(高的在前);同级时同方向新书样本多的在前,再比作者素材贴不贴,并在选题 1 的可行性理由里说一句它为什么排第一。
74
72
 
75
73
  ---
76
74
 
77
75
  ## 交付
78
76
 
79
- 1. 写入本次输出目录 `扫榜/{YYYYMMDD}/` 的 `{outdir}/选题决策.md`,与榜单、`扫榜聚合.md` 同目录。Phase 4 写文件头和「扫榜结论」,Phase 5 写「推荐选题」;重跑只替换对应整节。
80
- 2. 告知用户路径,并说明下一步:「开书时如果小说项目就建在扫榜时所在的文件夹里、或和它同级,`/story-long-write` 会自动找到并让你确认;隔得更远就把 `选题决策.md` 复制到小说项目根目录,或开书时把路径粘给它。想确认"能爆的原因"就先 `/story-long-analyze` 拆对标书,拆完会回填。」
81
- 3. 拆文报告产出后只回填题材匹配且仍标 `待拆文验证` 的选题;写作 Phase 1 在作者尚未给方向时读取 `选题决策.md` 作为开书候选。
77
+ 1. 写入本次扫榜目录 `扫榜/{YYYYMMDD}/` 的 `选题决策.md`,与榜单、`扫榜聚合.md` 同目录。重跑只替换对应整节。
78
+ 2. 告诉作者路径和下一步:「开书时如果小说项目就建在扫榜时所在的文件夹里、或和它同级,`/story-long-write` 会自动找到并让你确认;隔得更远就把 `选题决策.md` 复制到小说项目根目录,或开书时把路径粘给它。想先确认"能爆的原因",就准备好对标书的原文(txt),用 `/story-long-analyze` 拆,拆完会回填。」
79
+ 3. 拆文报告落盘后,拆文时只回填题材匹配且仍标 `待拆文验证` 的选题;写作时在作者没给方向时读 `选题决策.md` 作为开书候选。
@@ -15,7 +15,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
15
15
  必须分块读到 EOF:
16
16
 
17
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 替代。
18
+ 2. 主会话直接写正文时,首次落笔前完整读取 `references/long-format.md` 与 `references/writing-craft.md`,与写手用同一套技法;`references/long-chapter-quality.md` 只在排查具体问题时读,去味走检测器,不预读。交给 narrative-writer 时,由该 agent 按自己的 reference 表完成写前读取,主会话不得用未读 reference 的临时 prompt 替代。
19
19
  3. 本章技法按下方「本章技法」一段选,至多一份;主会话自己写时按那段只读指定小节,这是本条唯一允许的按节读。
20
20
  4. 正文写前,references 读完后立即重读当前用户请求、本章细纲和卷纲,先在上下文里**记下本轮约束**:原样记录用户明确字数范围、必发生、禁止发生、精确时间锚与本章停笔点、章尾新债。references 只提供技法,不得覆盖这些项目事实;作者给的字数范围写在细纲「字数范围」行(命令参数只作临时覆盖),有它就不用默认 ±15%。交付前逐项复核:字数带外按 `workflow-chapter.md` 的收口流程交用户处置,不自动补字;其余项越界不算完成。
21
21
 
@@ -23,9 +23,9 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
23
23
 
24
24
  ---
25
25
 
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 执行。
26
+ > 内置适配 Claude Code / OpenCode / Codex / Antigravity / ZCode / OpenClaw / Reasonix。专业 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: 35` 不一致时(标记缺失、字段缺失/非整数、小于或大于 35)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时用一句白话提示作者「写作助手是旧版,运行 /story-setup 后新开对话」,`Notice: agents bundle 版本不匹配(项目 {N},本版 35)` 原文写进技术备注行;大于 35 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,`Fallback: ... -> solo` 同样只进技术备注行。
28
+ > Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 36` 不一致时(标记缺失、字段缺失/非整数、小于或大于 36)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时用一句白话提示作者「写作助手是旧版,运行 /story-setup 后新开会话」,`Notice: agents bundle 版本不匹配(项目 {N},本版 36)` 原文写进技术备注行;大于 36 时额外提示先更新 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
 
@@ -35,9 +35,9 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
35
35
 
36
36
  ## 核心方法
37
37
 
38
- 先明确每个场景的主导情绪,从对标中找有依据的剧情模式,把角色当功能位,用本书的角色和素材实现;写每章只读「不知道就会写错」的状态、伏笔与设定。契约与推进决策先过 `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;无记忆返回空),执行者只拿输出的 `lines`,当前请求与本书文风优先。
38
+ 先明确每个场景的主导情绪,从对标中找有依据的剧情模式,把角色当功能位,用本书的角色和素材实现;写每章只读「不知道就会写错」的状态、伏笔与设定。契约与推进决策先过 `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;无记忆返回空),执行者只拿输出的 `lines`,当前请求与本书文风优先。
39
39
 
40
- **本章技法(每章至多读一份)**:按细纲主功能选——打脸/逆袭(爽感释放)`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` 找细分方向。
40
+ **本章技法(每章至多读一份)**:按细纲主功能选——打脸/逆袭(爽感释放)`style-combat-face.md`;身份/认知/立场反转(震撼+痛快)`long-reversal.md`;感情拉扯(意难平)`emotional-methods.md`,自己写时加 `emotion-on-page.md`;悬疑/惊悚/异常线索(紧张+好奇)`long-suspense.md`;日常装逼(期待感)`long-chapter-hooks.md`。都不对应就不读,按 writing-craft 写。第 1-3 章另读 `opening-design.md`「开篇落笔」。交给写手时只在 prompt「本章技法」填类别,由写手整份读;主会话自己写正文时只读该文件的「决策路由」和它指向的那一节(先看标题定位,不整读),日更一批只读一份,按本批最需要的那章选,其余章按 writing-craft 写。作者先说情绪没说题材时按括号反查,再从 `long-genre-catalog.md` 找细分方向。
41
41
 
42
42
  ---
43
43
 
@@ -28,7 +28,7 @@ Prompt:`项目目录:{dir}\n检查范围:{本次写作的章节}\n检查
28
28
 
29
29
  ## narrative-writer:审查+去AI味
30
30
 
31
- Prompt:`项目目录:{dir}\n任务描述:审查+去AI味\n检查分工:你负责本次检测触发的定点语义修复及原定自检;最终文件扫描由主会话执行\n检查范围:{本次写作的章节}\n文风路径:{设定/文风.md 全文路径}\nstyle_resolution:{与写作一致的裁决}\n作者偏好:{本章 query 输出的 lines,无写「无」}\n触发本次审查的检测结果:{chapter check 里 blocking 与语义类 advisory 的行号和类别,照录}\n所选 Gate:{按检测类别选,如 B 句式、G 解释腔;类别不明写 A-G,仍限本次检测触发的问题}\n执行边界:按 deslop-gates.md 的范围映射与三层方法修复;不扩大为完整故事诊断或新增剧情设计;原文有依据的承接与详略可改,无依据的设计缺口只报告\n验收:在完整场景中复读改动,说明原文问题、具体修法和有功能写法的保留理由,不用固定删减率`
31
+ Prompt:`项目目录:{dir}\n任务描述:审查+去AI味\n检查分工:你负责本次检测触发的定点语义修复及原定自检;最终文件扫描由主会话执行\n检查范围:{本次写作的章节}\n文风路径:{设定/文风.md 全文路径}\nstyle_resolution:{与写作一致的裁决}\n作者偏好:{本章 query 输出的 lines,无写「无」}\n触发本次审查的检测结果:{chapter check 里 blocking 与语义类 advisory 的行号和类别,照录}\n执行边界:按写手资料 deslop-gates「按检测类别或问题限定范围」与三层方法修复;不扩大为完整故事诊断或新增剧情设计;原文有依据的承接与详略可改,无依据的设计缺口只报告\n验收:在完整场景中复读改动,说明原文问题、具体修法和有功能写法的保留理由,不用固定删减率`
32
32
 
33
33
  ## narrative-writer:超字一次净删(compress-once)
34
34
 
@@ -3,36 +3,38 @@
3
3
  大纲与卷纲的模板,出卷纲时(workflow-volume.md)读。
4
4
 
5
5
  **模板位置:**本文件含全书大纲与卷纲;设定/关系、设定/题材定位见 workflow-setup.md,细纲与排纲底稿见 workflow-outline.md。
6
- - 大纲/大纲.md(全书鸟瞰 + 全书体量与阶段总览)
6
+ - 大纲/大纲.md(全书概况 + 分卷表)
7
7
  - 大纲/卷纲_第X卷.md(含卷契约+终局储备+剧情单元+情绪弧线+反转规划)
8
8
  - 追踪/(首次写正文前由脚本生成,见文末「追踪体系」)
9
9
 
10
10
  **层级关系(全书 › 卷 › 剧情单元 › 章 › 情节点;故事线横向贯穿多个剧情单元):**
11
- - 大纲.md = 全书鸟瞰(每卷一两句话定位)
11
+ - 大纲.md = 全书鸟瞰(分卷表每卷一行)
12
12
  - 卷纲_第X卷.md = 单卷规划(故事线+剧情单元+情绪+人物+伏笔+反转)
13
13
  - 细纲_第XXX章.md = 单章蓝图(单元ID/位置 + 主角目标/关键选择 + 内容概括 + 多线情节安排 + 人物关系/出场顺序 + 情节细化 + 结尾设定/钩子)
14
14
 
15
15
  **概念对照(统一叫法,减少混淆):**
16
- - **剧情单元** = 一段完整剧情(1.5-3 万字/数章,一个矛盾从起到收)。拆书侧就是 `剧情/{剧情单元名}.md`,本书侧就是卷纲里的**剧情单元卡**,统一叫剧情单元。outline-structure-theory.md 的「一级/二级/三级结构」指全书结构类型,不是单元名。
16
+ - **剧情单元** = 一段完整剧情(一个矛盾从起到收,体量见 workflow-volume.md「排纲刻度」)。拆书侧对应 `剧情/{剧情单元名}.md`,本书侧对应卷纲里的**剧情单元卡**,统一叫剧情单元。
17
17
  - **故事线** = 贯穿多个剧情单元的线(主线/感情线/成长线/夺宝线…),比剧情单元大一层。拆书侧是 `剧情/故事线.md`,本书侧是卷纲的**本卷故事线**表(L 编号)。剧情单元纵向切段,故事线横向贯穿,同一卷的两个视角。故事线编号是 `L01` 式两位数,单元ID 是 `L1-03` 式(卷号+连字符+序号),别混用。
18
- - 「循环」一词只在**节奏义**保留(爽点循环、升级循环、小/中/大循环等),不再指代规划单元。
19
18
 
20
19
  ---
21
20
 
22
21
  ## 大纲/大纲.md
23
22
 
24
- 全书鸟瞰。顶部为「全书体量与阶段总览」(总章节数/目标字数/全书情绪曲线/阶段划分/各阶段节奏公式/关键节点与钩子链,结构见 [workflow-volume.md](workflow-volume.md)),其后接卷级大纲一段式汇总:
23
+ 全书鸟瞰:开头写全书概况,下面一张分卷表,每卷一行。当前卷写全,后续卷只写功能、核心事件和字数区间。目标字数按卷数 × 卷字数估,不预排全书章号,不定各阶段占全书的比例。
25
24
 
26
25
  ```markdown
27
26
  # 大纲
28
27
 
29
- ## 全书体量与阶段总览
30
- {按 workflow-volume.md「全书体量与阶段总览」结构填写}
28
+ ## 全书概况
29
+ - 目标字数:约 {X} 万字,计划 {N} 卷
30
+ - 全书主线与终局:{一两句}
31
31
 
32
- ## 卷级大纲
33
- ### 第一卷:{卷名}(约 {X} 万字,{Y} 章)
34
- - 功能 / 所属阶段 / 卷契约 / 终局储备 / 阶段边界 / 核心事件 / 起始状态 → 结束状态
35
- (一段式汇总;展开见各卷 卷纲_第X卷.md)
32
+ ## 分卷表
33
+ | 卷 | 卷名 | 字数区间 | 所属阶段 | 功能 | 核心事件 | 起始状态 → 结束状态 | 卷契约 / 终局储备 / 阶段边界 |
34
+ |---|---|---|---|---|---|---|---|
35
+ | 1 | {卷名} | 约 {A}-{B} 万字 | {开篇/发展/高潮/收尾} | {本卷在全书里干什么} | {一句话} | {起} → {终} | {各一句;后续卷至少写起止状态,细节留到出该卷卷纲} |
36
+
37
+ (展开见各卷 卷纲_第X卷.md)
36
38
  ```
37
39
 
38
40
  ---
@@ -41,15 +43,25 @@
41
43
 
42
44
  卷纲是大纲的展开——大纲决定方向,卷纲决定节奏。包含本卷全部创作规划。
43
45
 
46
+ **段位契约**(取段器 `outline_view.py` 按此解析):
47
+ - 每个 `##`/`###`/`####` 标题的下一行写作用域行,二选一:`> 作用域:卷级常任`(全卷有效,取段器恒定带出)或 `> 作用域:单元级 {单元ID}`(只随该单元取出,ID 与单元卡标题、「单元ID」字段一致)。下方模板已写好,新增段也要写。
48
+ - 全卷常任规则不写在单元块里:单元块只写本单元落点和一行指针,规则正文放在 `## 全卷常任裁定`(checker 遇到「全卷常任/全卷生效/全程生效/本单元起常任/自 Lx-y 起生效」报 E4)。
49
+ - 被推翻的内容不留旧文,改成 `⊘ 已退役 → 见 {何处}` 起头的行,取段器默认不输出。
50
+ - 排纲底稿不进卷纲:供给自查、建纲追加写在 `大纲/排纲底稿_{单元ID}.md`(模板见 workflow-outline.md);底稿里有写作期约束力的条目(跨章祈使:全程不许/往后任何章/此后不再…),建纲当场写进该单元的单元级段或细纲。老卷纲里还留着「作用域:批次底稿」段的,排纲、补纲时取段加 `--stage outline` 一并取出,写正文不加。
51
+ - 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;往旧卷纲(含导入的卷纲)追加单元时去掉 `--strict`,旧段缺作用域只告警、保守纳入。取段器输出全部卷级常任段和该单元的单元级段,逐章表按单元章区间裁行,退役行默认不输出(看历史加 `--history`);读取方式见 SKILL.md「卷纲不整读」。
52
+
44
53
  ```markdown
45
54
  # {卷名} 卷纲
46
55
 
47
56
  ## 核心信息
57
+ > 作用域:卷级常任
58
+
48
59
  - 章节范围:第{X}-{Y}章
49
60
  - 字数目标:{W}万字
50
61
  - 本卷定位:{铺垫/发展/高潮/转折/收尾}
51
62
 
52
63
  ## 卷契约与终局储备(参 `reader-contract-and-progression.md`)
64
+ > 作用域:卷级常任
53
65
 
54
66
  > 单章放开密度、宏观管住终局储备。主推线之外的线按剧情自然给战果,一战多得允许;真正要守的是本卷别动用还不该解锁的终局底牌。
55
67
  - 卷契约:{本卷读者期待、主角高光、主要期待债}
@@ -61,8 +73,9 @@
61
73
  - 契约风险:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
62
74
 
63
75
  ## 本卷故事线(L 编号唯一分配处;主线之外至少 2 条)
76
+ > 作用域:卷级常任
64
77
 
65
- > 比剧情单元大一层的横向线。剧情单元卡「本单元在跑的线」按 L 编号引用本表。支线必须与主线有对接口(见 outline-conflict.md「支线 = 完成主线的手段」、outline-structure-theory.md「支线设计原则」)。
78
+ > 比剧情单元大一层的横向线。剧情单元卡「本单元在跑的线」按 L 编号引用本表。支线必须与主线有对接口(见 outline-methods.md「主线、支线与暗线」)。
66
79
 
67
80
  | 编号 | 线 | 类型 | 推进靠什么 | 与主线怎么对接 | 本卷区间 | 主线停摆时能否单独扛一章 |
68
81
  |---|---|---|---|---|---|---|
@@ -70,12 +83,15 @@
70
83
 
71
84
  末栏是主线薄时的可调存量清单。填「能」的线要有自己的对手、自己的时限、自己的可见收益,不依赖主线事件发生。全卷没有一条填「能」时补线,不靠拉长主线填章。
72
85
 
73
- ## 剧情单元卡(1–3 万字为可调经验值;存于卷纲内;不另建单独文件)
86
+ ## 剧情单元卡(存于卷纲内,不另建单独文件;体量见 workflow-volume.md「排纲刻度」)
87
+ > 作用域:卷级常任
74
88
 
75
89
  > 剧情单元卡与下方「对标结构坐标」是同一单元的不同视角(见 workflow-volume.md「对标节奏迁移」),不重复编排。单元长度按本书题材、既有兑现节奏与对标调整,不是硬门槛。规划各关键节点时按 `reader-contract-and-progression.md`「契约四问」检查;无需主角亲自执行每个动作。高潮/兑现后可留短暂低压,以小而可见的收益/奖励承接下一轮压力。引入新地图/机构/能力/敌人/谜团时按第 4 问检查,不得借新鲜感逃避旧承诺。
76
90
 
77
- ### 剧情单元 L{卷号}-{序号}
78
- - 单元ID:L{卷号}-{序号}(字母 L 开头,如 L1-03;不能写成 1-03,也别和故事线编号 L01 混)
91
+ ### 剧情单元 L1-01
92
+ > 作用域:单元级 L1-01
93
+
94
+ - 单元ID:L1-01(示例,按 L{卷号}-{序号} 编,字母 L 开头;不能写成 1-01,也别和故事线编号 L01 混)
79
95
  - 章节范围:{第A-B章}
80
96
  - 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}」**——单元内容形态不强制映射对标,自创单元照常过排纲自查与建纲批末复核}
81
97
  - 单元节拍/章功能分配:{建立期待→尝试→加压/转向→决定性行动→兑现→余波;标对应章范围,可按题材删改;建卡时可按「对标剧情参照」剧情单元提炼的共性节拍填写,见 workflow-outline.md「按剧情批出细纲」}
@@ -94,23 +110,20 @@
94
110
  - 下一单元因果钩子:{自然推入下一单元的问题、代价、线索或新目标}
95
111
  - 契约风险:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
96
112
 
97
- > **段位契约(新建卷纲必须照此写;取段器按此解析)**:每个 `##`/`###`/`####` 标题的**下一行**写一行 `> 作用域:X`,X 取二值之一——
98
- > `卷级常任`(全卷有效,取段器恒定带出)/`单元级 {单元ID}`(只在该单元的闭包里出现)。
99
- > 三条纪律:**①全卷常任规则不许写在单元块里**——单元块只写本单元落点+一行指针,规则本文放 `## 全卷常任裁定`(checker 会按「全卷/常任/全程生效」字样报 E4)。
100
- > **②被推翻的内容不留旧文**——改成 `⊘ 已退役 → 见 {何处}` 起头的行,取段器默认不输出,读到的一定是当前有效值。
101
- > **③排纲底稿不进卷纲**——供给自查、建纲追加写在 `大纲/排纲底稿_{单元ID}.md`(模板见 workflow-outline.md),底稿里凡有写作期约束力的条目(跨章祈使:全程不许/往后任何章/此后不再…),**建纲当场就写进**该单元的单元级段或细纲。老卷纲里的 `批次底稿 {单元ID}|状态:在用|已退役` 段仍可读(排纲时 `--stage outline` 取出,`--check` 的 W1 告警盯其中的跨章祈使),新卷纲不再写。
102
- > 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;读取方式见 SKILL.md「卷纲不整读」。取段器输出闭包:全部卷级常任段+该单元的单元级段,逐章表按单元章区间裁行,退役行默认不输出(看历史加 `--history`);未声明作用域的段会被保守纳入并告警。老卷纲里还留着「作用域:批次底稿」段的,排纲时加 `--stage outline` 一并取出,写正文不加。
103
-
104
113
  ## 全卷常任裁定
105
114
  > 作用域:卷级常任
106
115
 
107
116
  {对本卷每个剧情单元生效的规则本文写在这里,单元卡与排纲纪律只写落点、不复读规则。编号列出,单元侧按「常任 N +本单元落点」引用}
108
117
 
109
118
  ## 核心矛盾
119
+ > 作用域:卷级常任
120
+
110
121
  {一句话:本卷要解决什么问题或达到什么目标}
111
122
 
112
123
  ## 对标结构坐标
113
- {有对标书时填;无则写"无对标,按八节点占比自排"。迁移步骤见 workflow-volume.md「对标节奏迁移」;对标关键情节优先取自被参照剧情单元的「情节点索引」}
124
+ > 作用域:卷级常任
125
+
126
+ {有对标书时填;无则写"无对标,按八节点自排"。迁移步骤见 workflow-volume.md「对标节奏迁移」;对标关键情节优先取自被参照剧情单元的「情节点索引」}
114
127
  - 主对标卷段:{对标书}第{A}-{B}章(核心矛盾对应:{一句话})
115
128
 
116
129
  | 归一化位置 | 本卷章区间 | 对标关键情节 | 本卷对应(换素材) | 类型{逆转/转折/激励} |
@@ -120,6 +133,8 @@
120
133
  | 3/4 | 第{N}章 | {对标事件} | {本卷事件} | {类型} |
121
134
 
122
135
  ## 情绪弧线
136
+ > 作用域:卷级常任
137
+
123
138
  - 模板:{V形/倒V形/W形/渐进形/延迟满足形/急转弯形}
124
139
  - 选择理由:{结合题材和本卷定位}
125
140
 
@@ -130,20 +145,28 @@
130
145
  > 章节定位可留空,留空按普通推进章处理。情绪强度是情感烈度,关系/泪目章可低压力但高情绪强度。一卷要有高低层次,低压 + 过场合计约 15% 是均衡基线,题材分档见 workflow-volume.md「章节定位与张弛」;逐行看相邻章情绪基调,别同一母题连超 2-3 章。
131
146
 
132
147
  ## 人物弧线
148
+ > 作用域:卷级常任
149
+
133
150
  | 角色 | 本卷起点 | 本卷终点 | 关键转变 |
134
151
  |------|---------|---------|---------|
135
152
  | {名} | {状态} | {状态} | {事件} |
136
153
 
137
154
  ## 本卷反转(如有)
155
+ > 作用域:卷级常任
156
+
138
157
  | 类型{身份/动机/阵营/信息/命运} | 涉及角色 | 误导路径 | 揭示章节 | 影响范围 |
139
158
  |------|---------|---------|---------|---------|
140
159
  | {类型} | {名} | {如何误导读者} | 第{N}章 | {影响哪些线} |
141
160
 
142
161
  ## 本卷伏笔(F 编号唯一分配处;表按编号排)
162
+ > 作用域:卷级常任
163
+
143
164
  | 编号 | 伏笔 | 埋设章节 | 预计回收 | 类型{短期/中期/长期} |
144
165
  |------|------|---------|---------|---------------------|
145
166
 
146
167
  ## 本卷刻度台阶
168
+ > 作用域:卷级常任
169
+
147
170
  {以下刻度台阶、打脸债、压力线轮转三表按本书需要填写;不适用时可省略或写「无」,不为填表新增剧情。}
148
171
  {读者在本卷要学会哪几把尺子,以及每一格在第几章被立起、第几章被跨过(尺子先于要度量的那件事出场)。刻度本身存在 `设定/世界观/`,本表只登记它在本卷的**呈现时机**,不重复定义}
149
172
 
@@ -152,6 +175,8 @@
152
175
  | {身份/资质/财力/实力/名次} | {甲→乙→丙→丁,共4格} | {丙} | {乙} | 第{N}章 | 第{N}章 |
153
176
 
154
177
  ## 本卷打脸债
178
+ > 作用域:卷级常任
179
+
155
180
  {有人当众看轻主角、下了绝对化断言、或立了一个会被推翻的规矩(伏笔是情节种子,打脸债是情绪欠条——可不推进情节,但必须还)。跨卷未还的挂在这里不删}
156
181
 
157
182
  | 原话或断言 | 谁说的 | 第几章说的 | 预定兑现 | 兑现形式{对称/超额/由第三方转述} |
@@ -159,6 +184,8 @@
159
184
  | {"就凭你也想…"} | {名} | 第{N}章 | 第{N}章 | {对称:他说打断双手,结果自己断了三指} |
160
185
 
161
186
  ## 压力线轮转
187
+ > 作用域:卷级常任
188
+
162
189
  {同时挂着的几条压力线,以及各线在哪些章推进、哪些章静默。**每章只推一到两条**,其余保持静默;静默的线用一句比价维持存在感("那位再横,还能横过某某吗")}
163
190
 
164
191
  | 压力线 | 类型{环境/同侪/结构} | 可否交涉 | 本卷推进章 | 静默章 | 解决方式 |
@@ -166,7 +193,7 @@
166
193
  | {名} | {结构} | {否,靠变强也解决不了} | 第{N}、{M}章 | 其余 | {本卷不解决,只加压} |
167
194
  ```
168
195
 
169
- 创建参考:`outline-methods.md` (大纲三层结构法) + `outline-rhythm.md` (升级感三步设计法) + `emotional-arc-design.md` (六种弧线速查) + `long-reversal.md` (反转类型与长线层级)
196
+ 创建参考:`outline-methods.md`「卷纲排法」+ `emotional-arc-design.md`「六种弧线速查」+ `long-reversal.md`「反转类型」
170
197
 
171
198
  ---
172
199
 
@@ -1,8 +1,6 @@
1
1
  # AI 味词句信号索引
2
2
 
3
- > 保留 `banned-words.md` 文件名供调用方检索。这里列的是需回到上下文判断的信号,不是出现即错的禁词。表达服从 [style-resolution.md](style-resolution.md);不据词频判断作者身份,不以清零为目标。具体修法由调用方加载的方法文件承担。
4
-
5
- <!-- 共享副本由 scripts/shared-references.json 管理,改动后同步并跑 scripts/check-shared-files.sh -->
3
+ > 这里列的是需回到上下文判断的信号,不是出现即错的禁词。表达服从 [style-resolution.md](style-resolution.md);不据词频判断作者身份,不以清零为目标。具体修法由调用方加载的方法文件承担。
6
4
 
7
5
  ## 句式与组织信号
8
6
 
@@ -36,11 +34,11 @@
36
34
 
37
35
  “她感到”“意识到”“知道”“原来”可以准确表达感受、判断和发现;“仿佛/好像/似乎”可以限定视角置信度;“坚定/冰冷/深邃”可以是准确描述。“突然/瞬间/猛地”也可能承担真实突发或时间压缩。只凭这些词不能认定告知式心理、模板比喻或偷懒。
38
36
 
39
- ## 历史句式与复合样本
37
+ ## 复合样本
40
38
 
41
- 以下保留旧词表及完整指南中的识别语料。例句展示组合风险,不是合格与不合格的标准答案;判断及改法仍按三层方法,不能照旧示范新增动作、改变人物态度或一律拆短。
39
+ 例句展示组合风险,不是合格与不合格的标准答案;判断及改法仍按三层方法,不能照例句新增动作、改变人物态度或一律拆短。
42
40
 
43
- | 观察对象 | 旧例句或模板 | 回到语境核对 |
41
+ | 观察对象 | 例句或模板 | 回到语境核对 |
44
42
  |---|---|---|
45
43
  | 否定、状语与声线 | “他不是冷漠,而是绝望”“他笑了一下,带着一丝不易察觉的嘲讽”“他说,带着一丝无奈”“她声音不大,却带着不容置疑的力量”“好的,他说道” | 对比是否有纠错对象,状语与标签是否机械复现;普通“说”不用替换成动作 |
46
44
  | 跨段铺排与预告 | “不是嚎啕大哭。/也不是扯着嗓子喊不舍。/只是一个人走远了……”“他不知道的是,更大的风暴即将来临”“命运终于露出獠牙;属于他的反击才刚刚开始”“早已布好的棋局” | 是否反复铺垫同一意思、空泛宣告或越过揭露边界;排除猜测与题材承诺另判 |
@@ -54,10 +52,10 @@
54
52
  | 温和请求、完整解释与笼统反应 | “我觉得你这样做不太合适,能不能考虑一下我的感受?”“其实我这样做是有原因的,因为当时的情况非常复杂……”“所有人都震惊了,不敢相信自己的耳朵。”“她很害怕,不知道该怎么办,只能等着事情过去。” | 是否所有人都用同一套说法,关键交锋或选择是否被概括;不能把请求改辱骂、解释改挑衅,或凭空补锁门、录音与群体动作 |
55
53
  | 比喻的功能边界 | “像一头被抛弃的野狗”“像一把刀”“脸色惨白得像这漫天的雪”“力道大得像是要把骨头捏碎” | 生活化、物品、环境与身体感知比喻均可能有效;看是否传递角色特有信息,不按类别全删 |
56
54
  | 二修伪自然 | “手里拿着刀,他冲了上去”;连续“伸手拿起、取过、挑开、放下、转身”;强加口误、脏话、每句换行或对话占比 | 一次伴随动作前置不等于油腻;检查是否机械套用另一种句法、流程或格式 |
57
- | 旧替换的误改风险 | “美丽动人的笑容”“白色的药片”“手里那截链子”“飞驰的汽车”“他因为害怕而……”;垂下眼、目光微沉、攥拳 | 修饰、指示与原因可能承担区分、承接或动作条件;不能仅为去词删成信息残缺,也不能把每个情绪词换成同一微动作 |
55
+ | 替换的误改风险 | “美丽动人的笑容”“白色的药片”“手里那截链子”“飞驰的汽车”“他因为害怕而……”;垂下眼、目光微沉、攥拳 | 修饰、指示与原因可能承担区分、承接或动作条件;不能仅为去词删成信息残缺,也不能把每个情绪词换成同一微动作 |
58
56
 
59
- ## 提示名称索引
57
+ ## 使用边界
60
58
 
61
- 脚本提示供定位,不能替代语义结论。`formulaic-parallelism` 对应对比与并列,`quote-emphasis-tic` 对应引号强调;`cliche-density-tic`、`metaphor-density-tic` 对应套词与比喻聚集;`stock-reaction-tic`、`micro-action-tic`、`action-list-tic` 对应反应与动作;`abstract-summary-tic`、`reasoning-chain-tic` 对应总结解释;`overcompressed-prose-tic`、`low-connective-density-tic` 对应过度压缩;`system-notice-formality-tic` 对应载体语域。是否构成问题、如何修复及获准保留,由本次方法与文风裁决确定。
59
+ 脚本提示只供定位,不能替代语义结论。是否构成问题、如何修复及获准保留,由本次方法与文风裁决确定。
62
60
 
63
61
  标点、句长、段落疏密和对话占比均不在此设置统一指标。不通过同义词轮换、错误用字、英文点省略号或机械补动作规避提示。
@@ -6,10 +6,10 @@
6
6
  - **模块召回、题材卡与文风召回**:
7
7
  - **成熟项目短路径(召回降档)**:`custom_style=true`、题材卡有内容,且细纲目标情绪与单元卡情绪/节拍均有效时,**跳过 (a)(b)(e)(f)**;情绪和节奏取细纲/单元卡,(c)(d) 照常执行,(g) 输出缩减集。组装脚本判定并写入核对报告;条件不足走全量召回。降档不检查对标情绪/节奏主产物,也不触发其 fail-fast;代价是没有匹配章扩写技法与原文锚点。目标情绪敷衍时不得降档。
8
8
  - ① 本章目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 用在哪些段落?答不出 → 先回读参考再动笔
9
- - (a) **情绪模块召回**:按「对标书路径查找」规则读 `{对标书路径}/剧情/情绪模块.md`,选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`(读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
10
- - (b) **节奏召回**:读 `{对标书路径}/剧情/节奏.md`,选出 1 条 `rhythm_reference`(关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
9
+ - (a) **情绪模块召回**:按「对标书路径查找」规则读 `{对标书路径}/剧情/情绪模块.md`,选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`(读者想看什么、情绪链、戏剧单元、可替换项、不可照搬)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
10
+ - (b) **节奏召回**:读 `{对标书路径}/剧情/节奏.md`,选出 1 条 `rhythm_reference`(关键信息 → 扩写方式 → 情绪触动点 → 爆发点 → 余波/冷却)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
11
11
  - (c) **题材正文提示卡召回**:优先读 `设定/题材正文提示卡.md`;缺失时照组装脚本核对报告的「题材卡」行读它匹配到的卡(主题材整张;辅题材只摘 1-2 条「常见场面/禁止漂移」;低置信卡在意图确认标注低置信,并要求同题材对标校准),报告说没匹配到才读 `references/style-genre-modules.md`「题材正文提示卡」一节与最接近的流派一节,不整读索引与模块;生成短 `genre_prose_card` 并写入 `设定/题材正文提示卡.md`(后续章直接读,不再重做)(题材边界、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、节奏密度、场景颗粒、禁止漂移、本章取舍、卡片置信度)。题材卡只约束正文层题材味,不改细纲剧情、不覆盖 `selected_emotion_module` / `rhythm_reference` / `设定/文风.md`;只在内部校准取舍,正文里不得出现卡名/标签/置信度/条目/合规自评
12
- - (d) **文风召回**:先直接读 `设定/文风.md`(不经 explorer):有可执行表达要求即置 `custom_style=true`,不设最低字数;空白、纯标题或待补充不算。全文按 `style-resolution.md` 确定生效文风,`设定/_文风摘要.md` 仅作索引,写作与去味都传全文路径及同一 `style_resolution`。有自定义文风时对标只补未声明的维度;否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`(路径优先 `{项目}/对标/{书名}/`,回退 `拆文库/{书名}/`);多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段(字段指向本书自身或缺失时,用 `对标/` 下字典序第一本、排除本书同名目录,并提示作者补字段;排除后为空按无对标处理)。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**:「对标书 X 缺少 文风.md。请用 `/story-long-analyze` 跑 Stage 6 生成文风,再 `/story-import` 同步。」不 inline 生成(自定义文风模式则不 fail-fast;全量召回的情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞)
12
+ - (d) **文风召回**:先直接读 `设定/文风.md`(不经 explorer):有可执行表达要求即置 `custom_style=true`,不设最低字数;空白、纯标题或待补充不算。全文按 `style-resolution.md` 确定生效文风,`设定/_文风摘要.md` 仅作索引,写作与去味都传全文路径及同一 `style_resolution`。有自定义文风时对标只补未声明的维度;否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`(路径优先 `{项目}/对标/{书名}/`,回退 `拆文库/{书名}/`);多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段(字段指向本书自身或缺失时,用 `对标/` 下字典序第一本、排除本书同名目录,并提示作者补字段;排除后为空按无对标处理)。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**:「对标书《X》还没有文风分析。请用 `/story-long-analyze` 给《X》补上文风分析,再写这一章。」(补好后首次引用时同步到 `对标/`)不 inline 生成(自定义文风模式则不 fail-fast;全量召回的情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞)
13
13
  - (e) **匹配章节挑选**:从 `{对标书路径}/章节/*_摘要.md` grep `基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)`(全角冒号),按本章目标情绪挑章 K——多章同基调时选择规则:先看爽点类型是否接近,再看情节点数量/原文章节估算字数是否接近本章目标字数,最后取章节号最小者;必读 `{对标书路径}/章节/第K章_摘要.md`,若同章存在 `第K章_深度拆解.md` 则加读,否则回退黄金三章深度拆解/文风文件里的可借鉴技巧,不因非黄金三章缺少深度拆解而失败
14
14
  - (f) **结构化模块召回**:从对标的结构化子目录(角色/剧情/设定)中按本章情节检索相关模块;若与 `剧情/情绪模块.md` / `剧情/节奏.md` 冲突,权威文件优先,记录 `conflict`
15
15
  - (g) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + genre_prose_card + 文风召回指令 + 原文锚点片段引用",作为 narrative-writer 的输入。**多对标书时**(不必读跨书召回手册):主对标提供文风、原文锚点及可用的情绪/节奏值;副对标只在 (f) 按模块预算补角色/剧情/设定条目(同题材每本 ≤2、弱相关 0、总 ≤8,按 `设定/题材定位.md`「对标书列表」的引用强度排序),不读副书 `文风.md` 与原文,超预算裁条目不裁书目;输出附「副对标召回摘要」表(书名/引用强度/相关性/召回条数/使用方式)。