@oh-story/dsh 0.1.16 → 0.1.17

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 (264) hide show
  1. package/README.md +11 -11
  2. package/lib/client.js +26 -15
  3. package/lib/client.js.map +2 -2
  4. package/lib/drama/package.json +4 -0
  5. package/lib/index.js +42 -16
  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/index.d.ts.map +1 -1
  218. package/lib/types/native-hooks.d.ts.map +1 -1
  219. package/lib/types/skill-provider.d.ts.map +1 -1
  220. package/lib/types/workspace-route.d.ts.map +1 -1
  221. package/lib/video-recap/package.json +4 -0
  222. package/package.json +23 -23
  223. package/lib/oh-story/skills/story-import/references/format-and-structure.md +0 -168
  224. package/lib/oh-story/skills/story-import/references/state-tracking.md +0 -45
  225. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +0 -146
  226. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +0 -270
  227. package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +0 -84
  228. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +0 -133
  229. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +0 -101
  230. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +0 -92
  231. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +0 -428
  232. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +0 -503
  233. package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +0 -34
  234. package/lib/oh-story/skills/story-long-write/references/expression.md +0 -76
  235. package/lib/oh-story/skills/story-long-write/references/narrative-focus.md +0 -63
  236. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +0 -457
  237. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +0 -389
  238. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +0 -272
  239. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +0 -354
  240. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +0 -710
  241. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +0 -624
  242. package/lib/oh-story/skills/story-long-write/references/story-logic.md +0 -65
  243. package/lib/oh-story/skills/story-long-write/references/style-craft.md +0 -306
  244. package/lib/oh-story/skills/story-review/references/character-relations.md +0 -433
  245. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +0 -285
  246. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +0 -522
  247. package/lib/oh-story/skills/story-review/references/review-quality.md +0 -243
  248. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +0 -428
  249. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +0 -457
  250. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +0 -389
  251. package/lib/oh-story/skills/story-setup/references/agent-references/short-paragraph-hooks.md +0 -145
  252. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-basics.md +0 -433
  253. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-design.md +0 -426
  254. package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +0 -384
  255. package/lib/oh-story/skills/story-short-analyze/references/analysis-paragraph-hooks.md +0 -144
  256. package/lib/oh-story/skills/story-short-analyze/references/analysis-reader-profile.md +0 -238
  257. package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +0 -464
  258. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +0 -79
  259. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +0 -89
  260. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +0 -54
  261. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +0 -145
  262. package/lib/oh-story/skills/story-short-write/references/output-contract.md +0 -116
  263. package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +0 -207
  264. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +0 -50
@@ -16,11 +16,11 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
16
16
 
17
17
  ### 原则 1:扫榜看模式,别只看排名
18
18
 
19
- 提取样本中重复的题材、设定、套路、书名词和开篇卖点,判断能否支持趋势候选。
19
+ 提取样本中重复的题材、设定、套路、书名词和简介卖点,判断能否支持趋势候选。
20
20
 
21
- ### 原则 2:流量型平台和付费型平台看的东西不同
21
+ ### 原则 2:各平台的热度口径不同
22
22
 
23
- 番茄重点看在读与流量,起点看付费榜表现,晋江看收藏、营养液和积分。完读率、追读、订阅转化等后台指标需作者另行提供,当前采集脚本不产出。
23
+ 番茄看在读,起点看付费榜和总推荐,晋江看收藏、营养液和积分,七猫看热度。完读率、追读、订阅转化是作者后台的数据,采集脚本拿不到,作者没提供就不下结论。
24
24
 
25
25
  ### 原则 3:扫榜的目的是找到你能写的爆款题材
26
26
 
@@ -32,62 +32,63 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
32
32
 
33
33
  ### Phase 1:确认平台和方向
34
34
 
35
- 沿用用户已给的平台和方向;缺少时再问:**「你想看哪个平台?(起点/番茄/晋江/七猫/刺猬猫/其他)有没有关注的题材方向?」**
35
+ 沿用作者已给的条件;缺的一次问齐,给选项:
36
36
 
37
- 关键判断:
38
- - 用户已有方向 → 针对该方向做深度扫榜
39
- - 用户没有方向 → 做全榜概览 + 找趋势
40
- - 用户想跨平台比较 → 做平台对比分析
37
+ - 平台:起点 / 番茄 / 晋江 / 七猫 / 刺猬猫 / 多个平台对比
38
+ - 频道(番茄、七猫才分):男频 / 女频 / 都看
39
+ - 看什么:新书里在冒头的(多采新书样本) / 成熟大盘(只采默认榜单)
40
+ - 有没有关注的题材方向(没有就做全榜概览)
41
41
 
42
42
  ---
43
43
 
44
44
  ### Phase 2:确定数据来源
45
45
 
46
- 按当前环境选择数据来源:
47
-
48
46
  | 优先级 | 模式 | 说明 | 何时用 |
49
47
  |--------|------|------|--------|
50
- | 1 | **脚本采集** | 直接抓取平台页面/SSR 数据,产出结构化文件 | 优先;起点默认不需要 Chrome |
51
- | 2 | **用户提供** | 用户粘贴榜单截图/文字/链接 | 用户已有数据时 |
52
- | 3 | **内置知识** | 基于知识库趋势数据做分析 | 无法联网、用户无数据时 |
48
+ | 1 | **脚本采集** | 直接抓取平台页面数据,产出结构化榜单文件 | 优先;起点排行榜不需要 Chrome |
49
+ | 2 | **作者提供** | 作者粘贴榜单文字、截图,或给已有的榜单文件 | 作者已有数据,或脚本采不到时 |
50
+ | 3 | **内置知识** | 只用历史题材候选做分析 | 无法联网、作者也没有数据时 |
53
51
 
54
52
  #### 脚本采集模式
55
53
 
56
- 命令中的 `scripts/` 相对本 skill 根目录;`{输出目录}` 指本次工作目录里的扫榜目录。
54
+ 命令里的 `scripts/` 相对本 skill 根目录。
55
+
56
+ 1. 每次扫榜在工作目录新建 `扫榜/{YYYYMMDD}/`(同日再扫加 `-2`),下文 `{outdir}` 指它。不往旧目录追加,聚合会混进旧榜。
57
+ 2. 只读所选平台参考:[起点](references/platform-qidian.md) / [番茄](references/platform-fanqie.md) / [七猫](references/platform-qimao.md) / [晋江](references/platform-jjwxc.md) / [刺猬猫](references/platform-ciweimao.md)。按 Phase 1 的频道和「看什么」运行默认命令;需要 Chrome 的平台先 `/browser-cdp` 启动。
58
+ 3. 聚合:`node scripts/aggregate-rank.js {outdir} --out {outdir}/扫榜聚合.md`。**主会话先只读聚合**:题材分布、去重本数、热度与字数中位、标签、书名词、多榜重合和代表作。
59
+ 4. 看聚合的「采集情况」:标了问题(书名没解出来、没采到、只有书单、详情没取到)的榜单,按平台参考的「采不到时」排查后重采;重采不了,报告里说明结论不含它。
60
+ 5. 分析新人物设定、新切入设定和新桥段时按需抽样:`node scripts/aggregate-rank.js {outdir} --sample {题材/标签/书名词} --n 5`,一次一个方向。命中条数含多榜重复,样本本数按同平台书名+作者去重。
57
61
 
58
- 1. 只读所选平台那一份:[起点](references/platform-qidian.md) / [番茄](references/platform-fanqie.md) / [七猫](references/platform-qimao.md) / [晋江](references/platform-jjwxc.md) / [刺猬猫](references/platform-ciweimao.md)。里面有榜单网址、命令、字段、默认组合、故障排查和该平台的分析维度;需要浏览器态的平台先 `/browser-cdp` 启动 Chrome。
59
- 2. 每次扫榜新建输出目录 `扫榜/{YYYYMMDD}/`(同日再扫加 `-2`),存本次榜单,不往旧目录追加(聚合会混进旧榜);文件名 `{平台}{榜单}_{YYYYMMDD}.md`。脚本已做清洗和质量标注。
60
- 3. 聚合:`node scripts/aggregate-rank.js {输出目录} --out {输出目录}/扫榜聚合.md`(小平台加 `--sparse 10`)。**主会话先只读聚合**中的题材分布、去重本数、热度与字数中位、标签、书名词、多榜重合和代表作。刺猬猫混合各榜的「榜单值」不可用于热度比较,按平台参考回查单榜。
61
- 4. 看聚合的「采集情况」:标了问题(书名没解出来、没采到、只有书单)的榜单按平台参考排查重采;重采不了就在报告里说明结论不含它。同方向不到 15 本(小平台 10 本)标「少」,等同 `[数据稀疏]`。
62
- 5. 分析开篇卖点、新人设、新桥段时按需抽样:`node scripts/aggregate-rank.js {输出目录} --sample {题材/标签/书名词} --n 5`,一次一个方向。抽样命中条数含多榜重复,样本本数按同平台书名+作者去重。
62
+ #### 作者提供
63
63
 
64
- #### 其他数据来源
64
+ 已有榜单文件就放进 `{outdir}` 聚合。作者给链接时,请他把页面内容复制过来或截图(番茄、起点有反爬,直接抓页面常拿不到)。把文字或截图整理成:首行 `# {平台} · {榜单名}`,平台名只用 起点 / 番茄 / 晋江 / 七猫 / 刺猬猫,才能和脚本数据合并;每本一段 `### #{排名} {书名}`,下一行 `*作者 · 题材 · 连载中 · 120万字 · 3.5万收藏*`(热度写「数字+口径」,有标签再加 `**标签:** a、b`)。存进 `{outdir}` 后同样聚合。
65
65
 
66
- **用户提供:** 已有扫榜结果文件 → 直接聚合;链接 → 用 WebFetch 抓取;粘贴/截图 → 整理成 `# {平台} · {榜单名}` 标题、每本一段 `### #{排名} {书名}` 加一行 `*作者 · 题材 · 连载中 · 120万字 · 3.5万收藏*`(热度写「数字+口径」;有标签再加 `**标签:** a、b`)存进输出目录,再同样聚合。
66
+ #### 内置知识
67
67
 
68
- **内置知识:** 加载 `references/genre-trends.md`,明确标注「以下分析基于历史趋势数据;未完成实时榜单校验前只能作为候选假设。」并列出需要复扫的榜单。
68
+ 读 [references/genre-trends.md](references/genre-trends.md),报告开头写明「以下分析基于历史题材候选,没有实时榜单校验,只能作为待验证的假设」,并列出需要复扫的榜单。
69
69
 
70
70
  ---
71
71
 
72
72
  ### Phase 3:数据分析
73
73
 
74
- 以聚合结果为主,按所选平台参考里的「分析维度」看,再提取通用维度:
74
+ 以聚合结果为主,先按所选平台参考的「分析维度」看,再看通用维度:
75
75
 
76
- 1. **题材分布**:题材表的本数、占比与热度中位
77
- 2. **新题材信号**:新书榜样本与多榜重合;同时采到新书榜和其他榜时,聚合才显示「新书榜」列。上次日期目录有 `扫榜聚合.md` 时,按相同平台、榜单与筛选范围对比
78
- 3. **经典题材变化**:老牌题材的走势(上升/稳定/下降),没有上期数据就只写现状
79
- 4. **字数**:字数分布与各题材字数中位
80
- 5. **书名模式**:书名常见词 + 代表作书名
81
- 6. **开头卖点**:标签热词 + 代表作简介
82
- 7. **新元素**:对候选方向抽样原始条目,标出新的人物设定、开篇切入点、桥段套路
76
+ 1. **题材分布**:本数、占比与热度中位。番茄按题材等额采样(聚合会注明),本数是采样上限,题材冷热看热度中位和平台 P75。
77
+ 2. **新题材信号**:新书榜、书库新书样本与多榜重合;同时采到新书榜和其他榜时,聚合才显示「新书榜」列。上次日期目录有 `扫榜聚合.md` 时,按相同平台、榜单与筛选范围对比。
78
+ 3. **头部老书**:月票、畅销、阅读榜上字数几百万、连载多年的书,代表这个题材的存量读者,不代表现在开新书能起来;判断新方向以新书榜、书库新书为主。
79
+ 4. **经典题材变化**:老牌题材上升、稳定还是下降;没有上期数据就只写现状。
80
+ 5. **字数**:字数分布与各题材字数中位。
81
+ 6. **书名模式**:书名常见词 + 代表作书名。
82
+ 7. **简介卖点**:标签热词 + 代表作简介。数据只有简介(聚合截到 30 字,采集截到 100 字),开篇怎么写留给拆文验证。
83
+ 8. **新元素**:对候选方向抽样原始条目,标出新的人物设定、切入设定、桥段套路。
83
84
 
84
85
  ---
85
86
 
86
87
  ### Phase 4:输出扫榜报告
87
88
 
88
- 报告讲本次样本支持的结论和作者能写的方向;无可比上期时,趋势栏写「未比较」,不填涨跌。脚本名、命令和采集状态码不进报告;缺榜时说「XX 榜这次没拿到(原因),结论不含它」。
89
+ 报告讲本次样本支持的结论和作者能写的方向;无可比上期时,趋势栏写「未比较」,不填涨跌。脚本名、命令和采集状态不进报告;缺榜时说「XX 榜这次没拿到(原因),结论不含它」。题材热度排行按热度中位从高到低排,没有热度数字的平台按本数排;与全平台比较用白话,如「比全平台四分之三的书都热」,不写 P75。
89
90
 
90
- 报告展示给作者,同时写进输出目录的 `选题决策.md`:文件不存在就先按 [references/topic-decision.md](references/topic-decision.md) 的模板写文件头,再把报告作为「扫榜结论」一节写入(已存在同名一节就整节替换)。作者只扫榜不选题,结论也已落盘。
91
+ 报告展示给作者,同时写进 `{outdir}/选题决策.md`:文件不存在就先按 [references/topic-decision.md](references/topic-decision.md) 的模板写文件头,再把报告作为「扫榜结论」一节写入(已有同名一节就整节替换)。作者只扫榜不选题,结论也已落盘。
91
92
 
92
93
  <!-- author-report -->
93
94
  ```md
@@ -98,9 +99,9 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
98
99
  - 核心发现:{一句话总结}
99
100
 
100
101
  ### 题材热度排行
101
- | 排名 | 题材 | 榜上数量 | 趋势 | 代表作 |
102
- |------|------|----------|------|--------|
103
- | 1 | {题材} | {N本} | ↑/→/↓ | {书名} |
102
+ | 排名 | 题材 | 本数 | 热度中位 | 趋势 | 代表作 |
103
+ |------|------|------|----------|------|--------|
104
+ | 1 | {题材} | {N本} | {数字+口径} | ↑/→/↓/未比较 | {书名} |
104
105
 
105
106
  ### 新题材信号
106
107
  - {新出现或正在上升的题材,附依据}
@@ -110,7 +111,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
110
111
 
111
112
  ### 新元素提取
112
113
  - 新人物设定:{新模式描述 + 代表作}
113
- - 新开篇切入点:{新切入点描述 + 代表作}
114
+ - 新切入设定:{从简介看到的切入点 + 代表作}
114
115
  - 新桥段/套路:{新桥段描述 + 代表作}
115
116
 
116
117
  ### 关键数据洞察
@@ -119,41 +120,23 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
119
120
  - 标签热词:{高频标签词}
120
121
 
121
122
  ### 值得关注的方向
122
- 1. {方向 + 为什么值得关注 + 可行性评估}
123
- 2. {方向 + 为什么值得关注 + 可行性评估}
124
- 3. {方向 + 为什么值得关注 + 可行性评估}
123
+ 1. {方向 + 为什么值得关注 + 同方向几本、新书里有没有}
124
+ 2. {方向 + 为什么值得关注 + 同方向几本、新书里有没有}
125
+ 3. {方向 + 为什么值得关注 + 同方向几本、新书里有没有}
125
126
 
126
127
  ### 一句话
127
- {犀利的总结}
128
+ {一句话结论}
128
129
  ```
129
130
 
130
131
  ---
131
132
 
132
133
  ### Phase 5:选题决策
133
134
 
134
- 按 [references/topic-decision.md](references/topic-decision.md) 的选题四步、可行性规则与模板补全 `选题决策.md`。
135
+ 按 [references/topic-decision.md](references/topic-decision.md) 的选题四步、可行性规则与模板,在 `{outdir}/选题决策.md` 写 2-3 个推荐选题。
135
136
 
136
137
  **从文件接上:** 先读 `{outdir}/选题决策.md` 的「扫榜结论」和 `扫榜聚合.md`,不靠对话记忆;两者都没有就回 Phase 2。
137
138
 
138
- **如信息不足,向用户补齐项目条件:**「目标平台、已有素材、擅长题材/写作约束、计划篇幅是什么?」
139
-
140
- 按 `topic-decision.md` 的选题四步产出 2-3 个推荐选题(能爆的原因 → 市场验证 → 差异化定位 → 可行性+失败风险+验证动作),写入**本次扫榜输出目录** `{outdir}/选题决策.md` 的「推荐选题」一节,保留「扫榜结论」。
141
-
142
- **硬规则:**
143
- - 可行性上限:榜单标了 `[数据稀疏]`、聚合表标「少」或同方向样本 <15(小平台<10)时,最高给"中"并写明先验证;内置知识同样最高给"中"。素材、平台等条件不符时仍给"低"。
144
- - 选题须由项目素材支撑,写清可行性与失败风险,并符合目标平台调性。
145
-
146
- ---
147
-
148
- ## 平台特性速查
149
-
150
- | 平台 | 调性 | 核心指标 | 主力读者 | 适合类型 |
151
- |------|------|----------|----------|----------|
152
- | 起点中文网 | 男频为主,硬核爽文 | 月票/畅销榜名次 | 升级、成长与长线追读受众 | 玄幻、都市、科幻、游戏 |
153
- | 番茄小说 | 下沉市场,免费阅读 | 在读数、阅读榜排名 | 大众读者 | 脑洞、快节奏、强爽感 |
154
- | 晋江文学城 | 女频为主 | 收藏、营养液、积分 | 言情、纯爱与衍生受众 | 言情、纯爱、衍生 |
155
- | 七猫小说 | 下沉市场,免费阅读 | 热度、大热榜排名 | 大众读者 | 快节奏爽文 |
156
- | 刺猬猫 | 二次元、轻小说 | 各榜单值 | ACG 受众 | 同人、二次元、轻小说 |
139
+ **信息不足时,向作者补齐项目条件:**「目标平台、已有素材、擅长题材或写作限制、计划篇幅是什么?」
157
140
 
158
141
  ---
159
142
 
@@ -164,20 +147,14 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
164
147
 
165
148
  | 时机 | 跳转到 | 命令 |
166
149
  |---|---|---|
167
- | 找到方向 | story-long-analyze | `/story-long-analyze` |
150
+ | 找到方向,想先拆对标书 | story-long-analyze | `/story-long-analyze` |
168
151
  | 直接开写 | story-long-write | `/story-long-write` |
169
152
  | 更适合短篇 | story-short-scan | `/story-short-scan` |
170
153
 
171
154
  ## 参考资料
172
155
 
173
- 按需加载以下文件:
174
-
175
- | 文件 | 何时加载 |
176
- |------|----------|
177
- | [references/topic-decision.md](references/topic-decision.md) | 「选题决策」:选题四步 + 可行性判断 + 选题决策.md 模板 |
178
- | [references/reader-profiling.md](references/reader-profiling.md) | 需要分析目标读者画像时 |
179
- | [references/genre-trends.md](references/genre-trends.md) | 查看题材趋势候选、切入约束和样本校验规则时 |
180
- | [references/publishing-guide.md](references/publishing-guide.md) | 平台适配+推荐机制校验+数据指标+简介设计 |
181
- | 五份平台参考(链接见「脚本采集模式」第 1 步) | 「确定数据来源」:只读所选平台那份——榜单网址、命令、字段、故障排查、平台分析维度 |
182
- | [scripts/aggregate-rank.js](scripts/aggregate-rank.js) | 把输出目录里的原始榜单聚合成短表(`--out` 落盘,`--sample` 抽原始条目,`--json` 机读),主会话先读聚合表 |
183
- | [scripts/cdp-utils.js](scripts/cdp-utils.js) 与各平台采集脚本 | CDP 公共工具与各平台采集脚本(`{平台}-rank-scraper.js`),命令见所选平台参考 |
156
+ | 文件 | 何时读 |
157
+ |------|--------|
158
+ | 五份平台参考(链接见「脚本采集模式」第 2 步) | Phase 2–3:只读所选平台那份——默认命令、可选榜单、字段与热度口径、采不到时、分析维度、本平台读者 |
159
+ | [references/topic-decision.md](references/topic-decision.md) | Phase 4 建文件、Phase 5 选题 |
160
+ | [references/genre-trends.md](references/genre-trends.md) | 只在内置知识模式读 |
@@ -1,183 +1,63 @@
1
- # 网文题材趋势与流派参考
2
- 流派、书名示例作候选,趋势看本次榜单。
1
+ # 内置题材候选
3
2
 
4
- ---
3
+ 无实时榜单时使用。这里的题材、流派和书名来自历史样本,只能当候选假设;可行性最高给"中",并列出要复扫的榜单。
5
4
 
6
- ## 脑洞文创作
5
+ ## 新元素分三级
7
6
 
8
- ### 从灵感到成书
7
+ | 级别 | 频率 | 怎么对待 |
8
+ |------|------|----------|
9
+ | 新题材 | 极少 | 跨榜单、跨作者都出现重复样本才算趋势,否则只当观察项 |
10
+ | 新金手指 | 较少,多是翻新 | 适合低成本验证,但题材外壳和情绪触发都要变化 |
11
+ | 新噱头 | 常见 | 同质化风险高;没有差异化机制就降低优先级 |
9
12
 
10
- 1. 得到点子(金手指雏形/画面/切入点)
11
- 2. 评估潜力(纯原创?有市场铺垫?)
12
- 3. 匹配题材(放进熟悉题材看效果)
13
- 4. 提炼核心卖点(能否转化为情绪缺口/期待感)
14
- 5. 检验故事雏形能否持续推进
15
- 6. 动笔验证
13
+ ## 男频题材候选
16
14
 
17
- ### 金手指创新
18
-
19
- 金手指以“满足条件→得到反馈”为基础,可用多条件触发、阶段反馈、概率反馈或反馈叠加。
20
-
21
- ### 写长方法
22
-
23
- 1. 从核心卖点推演不同矛盾,每套可展开1-2卷
24
- 2. 让各卷目标、代价与关系相互影响,持续推进主线
25
- 3. 将大目标拆成中目标、小目标与细纲,检验每轮剧情的新变化
26
-
27
- ### 跟风与换皮
28
-
29
- 只换题材外壳属于换皮。跟风保留已验证的情绪期待,让金手指机制、人物选择或切入角度随题材变化。
30
-
31
- ---
32
-
33
- ## 题材选择
34
-
35
- 用熟悉题材建立预期,以新元素制造惊喜;方向有样本,素材能撑主线。
36
-
37
- ---
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
- ### 起点题材候选
67
-
68
- | 题材 | 要点 |
69
- |------|------|
70
- | 都市 | 重生/种田/娱乐;重生可与任何元素融合 |
71
- | 玄幻 | 极道流、加点横推等强反馈样本优先;传统玄幻若近期样本稀疏,标记为高风险 |
72
- | 仙侠 | 优先检查脑洞融合路线的近期样本;纯传统路线需额外验证受众 |
73
- | 历史 | 秦/唐/明/宋/三国;类同人写法 |
74
- | 诸天无限 | 比较同人与原创副本样本,看世界规则能否持续兑现核心期待 |
75
- | 科幻 | 末世类(含脑洞/种田/游戏设定) |
76
-
77
- ---
78
-
79
- ## 流派写作要点
80
-
81
- | 流派 | 核心要点 |
15
+ | 题材 | 候选方向 |
82
16
  |------|----------|
83
- | 极道流 | 金手指属性加点,横推一切;用样本检验反馈是否足够直接 |
84
- | 凡人流 | 小人物攀爬+精打细算;战力数据化+寿命驱动 |
85
- | 巫师流 | 知识体系+实验探索升级,门槛较高 |
86
- | 种田流 | 以餐馆/书店/渔场的经营反馈推进,可与多界穿梭结合 |
87
- | 都市高武 | 可观察武馆+学校双线、死党对比、师姐互动、模拟考装逼;以《武圣》前三章为拆文候选 |
88
- | 同人文 | 仅在用户明确目标 IP、平台允许且近期样本有效时使用;默认只抽“已知世界+新变量+名场面改写”结构 |
89
- | 盘点文 | 盘点对象与切入点要鲜明 |
90
- | 模拟文 | 模拟制造情绪缺口→得奖励→现实满足 |
91
- | 两界穿梭 | 标准模板:金手指+震惊历史人物+改变命运 |
92
- | 历史文 | 秦/唐/明/宋/三国可作候选;用危机感、由小及大的目标与清晰主线组织剧情 |
17
+ | 都市 | 重生、种田、娱乐、都市高武;重生能和多数元素融合 |
18
+ | 玄幻 | 极道流、加点横推这类反馈直接的优先;传统玄幻近期样本少就标高风险 |
19
+ | 仙侠 | 先查脑洞融合路线的近期样本;纯传统路线要另行验证受众 |
20
+ | 历史 | 秦、唐、明、宋、三国;穿越改命、争霸 |
21
+ | 诸天无限 | 同人副本和原创副本分开看,看世界规则能不能持续兑现核心期待 |
22
+ | 科幻 | 末世为主,常混脑洞、种田、游戏设定 |
23
+ | 悬疑灵异 | 恐怖灵异、奇门秘术、侦探推理 |
93
24
 
94
- ---
25
+ 常见流派:极道流(属性加点、横推)、凡人流(小人物攀爬、精打细算)、巫师流(知识体系加实验升级)、种田流(经营反馈推进)、盘点文、模拟文、两界穿梭。同人仅在作者明确目标作品、平台允许且近期样本有效时列。
95
26
 
96
- ## 都市重生文
27
+ ## 女频题材候选
97
28
 
98
- | 维度 | 要点 |
99
- |------|------|
100
- | 事业感情配比 | 按作者擅长的事业线或感情线确定主次,检查另一条线是否促进人物选择 |
101
- | 期待感 | 没有升级线时靠人物目标持续维持期待感,反转服务当下选择 |
102
- | 短视频化 | 用人物关系与反应形成笑点;复用梗时让关系或结果有新变化 |
103
- | 同质化 | 分别检验开篇差异与中段持续兑现,不把数据低一概归因于流量 |
104
-
105
- ---
106
-
107
- ## 轻小说
108
-
109
- 核心是有戏剧性的人设(尤其美少女人设),以及令人羡慕的互动。
110
-
111
- - 事业线:美少女当前困境+她与别人的恩怨
112
- - 爱情线:有戏剧性的发展+人设搭配造成事件
113
-
114
- ---
115
-
116
- ## 喜剧/沙雕文
117
-
118
- 可组合中计掉坑、弄巧成拙、降智反派与误解错位。先让麻烦落到角色身上,再借意外变化制造笑点;读者对角色的好感会影响他们是心疼还是看笑话。
29
+ | 题材 | 候选方向 |
30
+ |------|----------|
31
+ | 现言 | 总裁豪门、追妻火葬场、先婚后爱、年代重生 |
32
+ | 古言 | 宫闱宅斗、重生复仇、种田经商、权谋 |
33
+ | 幻想言情 | 玄幻仙侠团宠、无限快穿、末世求生 |
119
34
 
120
- ---
35
+ ## 长篇书名写法
121
36
 
122
- ## 霸道总裁文(女频)
37
+ 下表是七猫书库长篇(2026 年 10 月统计,80 万字以上,男频 2072 本、女频 1643 本,多是写了很久的老书)中常见书名写法的占比。仅代表七猫存量书的起名习惯;新书起名以本次新书榜的常见词为准:
123
38
 
124
- | 维度 | 传统 | 现代 |
39
+ | 写法 | 男频 | 女频 |
125
40
  |------|------|------|
126
- | 女主 | 傻白甜 | 独立职业女性 |
127
- | 相遇逻辑 | 善良行为偶遇 | 职业交集+独特价值 |
128
- | 男主便利 | 全方位照顾 | 情绪价值+锦上添花 |
129
- | 底层逻辑 | 嫁好男人不用干 | 我很强+征服了强者的心 |
130
-
131
- 情敌反派避免传统"绿茶"模式。
132
-
133
- ---
134
-
135
- ## 书名与卖点观察样本
136
-
137
- 以下样本只用于观察命名和情绪入口;能否支撑长篇主线,仍须查本次长篇榜单与作品内容。
41
+ | 书名带「我」 | 35% | 22% |
42
+ | 冒号分前后两段(「大明:开局小县令,红温朱元璋」) | 28% | 19% |
43
+ | 带「重生」 | 7% | 9% |
44
+ | 带「开局」 | 9% | 不到 1% |
45
+ | 「从…开始」 | 6% | 不到 1% |
46
+ | 带「总裁 / 大佬 / 霸总」 | 2% | 13% |
47
+ | 带「离婚」 | 2% | 5% |
138
48
 
139
- ### 古言/宫闱宅斗
49
+ ## 长篇书名样本
140
50
 
141
- | 标题 | 一句话卖点 |
142
- |------|-----------|
143
- | 重生后公府长媳要跑路,首辅大人疯魔了 | 前世替公府操碎心还被逼腾位,重生后决定卷走一切直接跑路 |
144
- | 权臣偏宠掌上娇,重生真千金杀疯了 | 真千金重生归来,先盯上将来权倾天下的养子 |
145
- | 惨死重生,捂不热的权臣我不要了 | 为妾五年被锁枯院,重生后捂不热的权臣不要了 |
146
- | 被逼替嫁我不慌,我送全家火葬场 | 被逼替嫁我不慌,我送全家火葬场 |
51
+ 同一语料里的原书名:
147
52
 
148
- ### 现言/总裁豪门
149
-
150
- | 标题 | 一句话卖点 |
151
- |------|-----------|
152
- | 逼我给青梅打官司,离婚你哭什么 | 逼我给青梅打官司,离婚你哭什么 |
153
- | 真千金出狱后,全家悔哭求原谅 | 亲爹亲哥联手送进监狱为假千金顶罪 |
154
-
155
- ### 世情复仇
156
-
157
- | 标题 | 一句话卖点 |
158
- |------|-----------|
159
- | 班主任断我舞台梦,十五年后我封杀她女儿 | 年会试镜在评委席亲手刷掉班主任的女儿 |
160
- | 伤害转移100次,我妈终于杀疯了 | 病床上挨满百次剧痛后,妈妈说该你们还了 |
161
-
162
- ### 都市/年代重生
163
-
164
- | 标题 | 一句话卖点 |
165
- |------|-----------|
166
- | 高武:开局就氪命,你小子是个狠人! | 开局被亲人陷害,拿寿命换武学 |
167
- | 重生八零,我选择成全教授妻子和妹夫 | 重生回龙凤胎惨死前夜,先拍离婚书 |
168
-
169
- ### 玄幻/历史/末世
170
-
171
- | 标题 | 一句话卖点 |
172
- |------|-----------|
173
- | 剑仙:从杀敌爆经验开始无敌 | 靠杀敌爆经验从苟命少年杀成无敌剑仙 |
174
- | 全宗通魔,唯有小师弟正的发邪 | "那便恭请师尊赴死" |
175
- | 被妹妹推去喂丧尸后,我重生囤满物资 | 被推进丧尸群死过一次后,先在地下藏满十年物资 |
176
-
177
- ---
178
-
179
- ## 命名规律
180
-
181
- ### 长篇公式
182
-
183
- 观察词:快穿、系统、一见钟情、离婚后、反派、开局秒杀
53
+ | 题材 | 书名 |
54
+ |------|------|
55
+ | 都市 | 重回90:金瞳鉴宝发家,全家悔不当初 / 神话降临,我提前获得内测资格 / 重生70:开局迎娶绝美村花 |
56
+ | 玄幻 | 凡人修仙:开局救助落魄师姐 / 全民:让你信仰神明,你取而代之? / 八岁武尊:退婚流祖师爷 |
57
+ | 仙侠 | 洪荒:从满级神功系统开始无敌 / 开局替死,我不愿意,横推当世 / 西游:稳健人生,从高中进士开始 |
58
+ | 历史 | 大明:开局小县令,红温朱元璋 / 大秦血衣侯:我以杀敌夺长生 / 穿成穷书生,我连中三元杀穿朝堂 |
59
+ | 末世 | 开局成为丧尸,我锻炼就变强 / 全民微缩,从1.75厘米开始 / 末日刚降临,你怎么就成神了? |
60
+ | 悬疑灵异 | 送邪:我身披阎王衣,只手镇百鬼 / 好感度天赋弱?女鬼抢着送提示 / 7号末班车 |
61
+ | 现言 | 我提离婚后,清冷老公破戒了 / 替身退场,京圈大佬急疯了! / 离婚协议生效,前夫却发疯找我 |
62
+ | 古言 | 嫡女重生悔婚,阴鸷王爷破大防! / 哑奴带崽改嫁,清冷权臣悔疯了 / 听懂植物心声,我扶全家纨绔上青云 |
63
+ | 幻想言情 | 挖我灵根?重生后新师门待我如宝 / 快穿:满级美人攻略日常 / 转职最弱辅助?SSS级大佬跪地争宠 |
@@ -1,21 +1,36 @@
1
1
  # 刺猬猫:采集与分析
2
2
 
3
- 先用 `/browser-cdp` 启动 Chrome。脚本解析 rank-index 各榜,按去空白书名匹配作品页链接。
3
+ 先用 `/browser-cdp` 启动 Chrome。刺猬猫是小平台,每榜只有前 10 本;同方向不足 10 本,聚合标为样本少。
4
4
 
5
- ## 榜单与命令
5
+ ## 默认命令
6
6
 
7
- `node scripts/ciweimao-rank-scraper.js --type {榜单} --outdir {输出目录}`:click 点击榜 / favor 收藏榜 / recommend 推荐榜 / subscribe 订阅榜 / monthly 月票榜 / tsukkomi 吐槽榜 / newbook 新书榜 / blade 刀片榜 / update 更新榜 / all 全部(默认)。
7
+ ```bash
8
+ node scripts/ciweimao-rank-scraper.js --type monthly --outdir {outdir} # 月票榜
9
+ node scripts/ciweimao-rank-scraper.js --type subscribe --outdir {outdir} # 订阅榜
10
+ ```
8
11
 
9
- ## 字段
12
+ 作者要看新书里在冒头的,再加新书榜:`--type newbook`。
10
13
 
11
- 排名、书名、作者(仅榜首有)、题材(其余名次有)、榜单值与作品页链接。各榜值分别解读;同方向不足 10 本标稀疏,聚合加 `--sparse 10`。作者信息不齐,同书可能跨榜未合并,核对样本本数。
14
+ ## 可选参数
12
15
 
13
- 多榜聚合取同书最大「榜单值」,热度回查单榜。
16
+ `--type`:click 点击榜 / favor 收藏榜 / recommend 推荐榜 / subscribe 订阅榜 / monthly 月票榜 / tsukkomi 吐槽榜 / newbook 新书榜 / blade 刀片榜 / update 更新榜 / all 全部(不写时默认)。
17
+
18
+ ## 字段与热度口径
19
+
20
+ 排名、书名、作者(只有榜首有)、题材(榜首以外有)、榜单值、作品页链接。各榜的榜单值口径不同(点击、收藏、月票……),多榜聚合时取同书最大的榜单值,不能拿来比热度,热度回查单榜。作者信息不齐,同一本书跨榜可能没合并,核对样本本数。
21
+
22
+ ## 采不到时
23
+
24
+ 终端提示「未解析到榜单」或文件头「数据质量」标了问题:在 Chrome 里打开 `https://www.ciweimao.com/rank-index`,确认页面正常、没有跳到登录或验证页,再重采。
14
25
 
15
26
  ## 分析维度
16
27
 
17
28
  | 维度 | 看什么 |
18
29
  |---|---|
19
- | 月票/订阅榜 | 付费认可 |
30
+ | 月票榜、订阅榜 | 付费认可 |
20
31
  | 新书榜 | 二次元新梗与新设定 |
21
- | 吐槽/刀片榜 | 看互动强度;争议点需有内容证据 |
32
+ | 吐槽榜、刀片榜 | 互动强度;争议判断要有内容证据 |
33
+
34
+ ## 本平台读者
35
+
36
+ 二次元、轻小说、同人受众。开头必须有趣,笑点来自角色互动、熟悉的梗加意外变化;雷区是太严肃、太现实、没有二次元元素。
@@ -1,45 +1,47 @@
1
1
  # 番茄:采集与分析
2
2
 
3
- 选择番茄时读取,先用 `/browser-cdp` 启动 Chrome。列表页有字体反爬,脚本从详情页内嵌 JSON 的 `bookName`/`author`/`abstract`/`categoryV2`,结合 `<title>` 和 og:meta 解析书名、作者、题材、标签与简介。
3
+ 先用 `/browser-cdp` 启动 Chrome。
4
4
 
5
- ## 榜单与命令
5
+ ## 默认命令
6
6
 
7
- URL `fanqienovel.com/rank/{channel}_{type}_{cat_id}`:channel 0=女频/1=男频,type 1=新书榜/2=阅读榜。
7
+ `--channel` 按 Phase 1 的频道取:1=男频、0=女频、all=男女都采。
8
8
 
9
9
  ```bash
10
- node scripts/fanqie-rank-scraper.js --channel 1 --type 2 --outdir {输出目录} # 男频阅读榜(默认)
11
- node scripts/fanqie-rank-scraper.js --channel all --top 15 --outdir {输出目录} # 男女频,每题材前 15 本
10
+ node scripts/fanqie-rank-scraper.js --channel all --type 2 --outdir {outdir} # 男女频阅读榜
12
11
  ```
13
12
 
14
- 脚本逐题材采集,每题材默认最多 20 本(`--top N` 可调),每 5 本一批补详情。默认组合为男、女频阅读榜;新风向另加 `--type 1` 新书榜或书库「最热」。每个频道各写一份 `番茄{频道}{榜单}_全题材_{YYYYMMDD}.md`,条目数取决于题材数与上限;主会话先读聚合。
15
-
16
- 题材由页面菜单发现,以下 cat_id 供定位,数量以本次文件头为准。男频参考 19 个:西方奇幻(1141) / 东方仙侠(1140) / 科幻末世(8) / 都市日常(261) / 都市修真(124) / 都市高武(1014) / 历史古代(273) / 战神赘婿(27) / 都市种田(263) / 传统玄幻(258) / 历史脑洞(272) / 悬疑脑洞(539) / 都市脑洞(262) / 玄幻脑洞(257) / 悬疑灵异(751) / 抗战谍战(504) / 游戏体育(746) / 动漫衍生(718) / 男频衍生(1016);女频 18 个:古风世情(1139) / 科幻末世(8) / 游戏体育(746) / 女频衍生(1015) / 玄幻言情(248) / 种田(23) / 年代(79) / 现言脑洞(267) / 宫斗宅斗(246) / 悬疑脑洞(539) / 古言脑洞(253) / 快穿(24) / 青春甜宠(749) / 星光璀璨(745) / 女频悬疑(747) / 职场婚恋(750) / 豪门总裁(748) / 民国言情(1017)。
17
-
18
- ### 书库「最热」
19
-
20
- URL `fanqienovel.com/library/{筛选}/page_{n}?sort=hottes`:筛选段 `audience1`=男生、`audience0`=女生(不写=不分男女),`stat1`=连载中、`stat0`=已完结,`count0`=30 万字以下(`count1`-`count4` 依次 30-50 万、50-100 万、100-200 万、200 万以上),全不选时是 `all`。每页 18 本,按热度排。
13
+ 作者要看新书里在冒头的,再加新书榜和书库「最热」:
21
14
 
22
15
  ```bash
23
- node scripts/fanqie-rank-scraper.js --source library --channel all --outdir {输出目录} # 男、女各一份:连载中、30 万字以下、前 3 页
24
- node scripts/fanqie-rank-scraper.js --source library --channel mix --pages 5 --outdir {输出目录} # 不分男女
16
+ node scripts/fanqie-rank-scraper.js --channel all --type 1 --outdir {outdir} # 男女频新书榜
17
+ node scripts/fanqie-rank-scraper.js --source library --channel all --outdir {outdir} # 书库:连载中、30 万字以下,男女各前 3 页
25
18
  ```
26
19
 
27
- `--stat 1|0|any`、`--count 0-4|any` 改筛选。默认筛选的连载中、30 万字以下作品用于找**起量候选**;是否起量看同口径前后变化。仅默认筛选在列表名中加「新书」,按新书样本计;混有其他榜时聚合才显示「新书榜」列。脚本按列表顺序取 bookId,再由详情页解析书名、题材、在读与字数。
20
+ ## 可选参数
21
+
22
+ - 排行榜:`--type 2` 阅读榜、`--type 1` 新书榜、`--type all` 两个都采。脚本按题材采集,每类取前 20 本(`--top N` 可调),每个频道写一份 `番茄{频道}{榜单}_全题材_{日期}.md`。
23
+ - 书库「最热」:每页 18 本,按热度排。`--channel mix` 不分男女,`--pages N` 改页数,`--stat 1|0|any`(连载中/已完结/不限)、`--count 0-4|any`(30 万字以下、30-50 万、50-100 万、100-200 万、200 万以上/不限)改筛选。只有默认筛选(连载中、30 万字以下)在列表名里带「新书」,按新书样本计。
28
24
 
29
- ## 字段
25
+ ## 字段与热度口径
30
26
 
31
- 排名、书名、作者、题材(详情页 categoryV2)、状态、在读(核心指标,聚合的热度口径)、字数、标签(简介开头 `【种田+慢热+西幻】`,题材细分的真实信号)、最新更新、bookId、作品页链接、简介。详情页没有数字评分,不输出评分。解码失败的书名显示 `(标题待解析)`,bookId 与链接保留供回查。
27
+ 排名、书名、作者、题材、状态、在读(核心指标,聚合的热度口径)、字数、标签(简介开头的 `【种田+慢热+西幻】`,题材细分的真实信号)、最新更新、作品页链接、简介。页面没有评分。
32
28
 
33
- ## 故障排查
29
+ **每题材等额采样**:排行榜每个题材都取前 20 本,题材本数和占比受采样上限影响,不代表题材大小;聚合会注明。题材冷热看热度中位和平台 P75,新风向看新书榜和书库新书。
34
30
 
35
- 文件头 `数据质量` 标 `[标题解析异常]`(书名多为 `(标题待解析)`):多为详情页结构变动或被登录/验证页拦截。在已登录的 Chrome 里手动打开任一 `https://fanqienovel.com/page/{bookId}`,确认页面正常、不是验证页;控制台报 `CDP 无响应` 就按 browser-cdp 重新启动 Chrome。确认正常后重采。
31
+ ## 采不到时
32
+
33
+ 文件头「数据质量」标 `[标题解析异常]`(书名多为 `(标题待解析)`):多半是被登录或验证页拦住,或页面改版。在已登录的 Chrome 里手动打开任一 `https://fanqienovel.com/page/{bookId}`,确认页面正常、不是验证页;报 `CDP 无响应` 就按 browser-cdp 重新启动 Chrome。确认正常后重采。
36
34
 
37
35
  ## 分析维度
38
36
 
39
37
  | 维度 | 看什么 |
40
38
  |---|---|
41
39
  | 阅读榜 | 流量与读者规模,在读数为核心指标 |
42
- | 新书榜 | 观察新题材样本,与阅读榜对照;单次上榜不等于正在上升 |
43
- | 题材分布 | 各品类在读数集中度(热度中位对照本数) |
44
- | 在读数差距 | 同题材头部与腰部的流量差 |
40
+ | 新书榜、书库最热 | 新题材样本,与阅读榜对照;同口径前后两次对比才能说在起量 |
41
+ | 题材冷热 | 各题材热度中位跟平台 P75 比,不看本数 |
42
+ | 在读差距 | 同题材头部与腰部的流量差 |
45
43
  | 标签热词 | 【】内标签组合揭示细分卖点 |
44
+
45
+ ## 本平台读者
46
+
47
+ 免费阅读,读者面广。要快节奏、强爽感、目标与因果清楚,爽点偏打脸、装逼、获得机缘;雷区是目标迟迟不明、长期虐主、解释压过剧情。脑洞和强情绪题材多,同质化也重,选题要写清差异化。
@@ -1,28 +1,40 @@
1
1
  # 晋江:采集与分析
2
2
 
3
- 选择晋江时读取,先用 `/browser-cdp` 启动 Chrome。脚本从 `topten.php` 取频道、书名、作者与链接中的 `novelid`,排除「X 向《书名》投了 Y」霸王票记录,再请求 `onebook.php?novelid=` 补详情;详情 HTML 按 gb18030 解码。
3
+ 先用 `/browser-cdp` 启动 Chrome。脚本只采全站榜;榜单按频道分组(言情、纯爱、衍生等),聚合时频道视为题材。
4
4
 
5
- ## 榜单与命令
6
-
7
- URL `jjwxc.net/topten.php?orderstr={榜单ID}&t={频道ID}`(t=0 全站)。orderstr:收入金榜 12 / 月榜 7 / 季度榜 8 / 完结金榜 14 / 新手金榜 15 / 千字金榜 17。
5
+ ## 默认命令
8
6
 
9
7
  ```bash
10
- node scripts/jjwxc-rank-scraper.js --type 12 --outdir {输出目录} # 列表全保留;每频道前 10 补详情,总上限 100
11
- node scripts/jjwxc-rank-scraper.js --type 12 --top 15 --detail-limit 60 # 调整每频道补详情本数/详情总量
12
- node scripts/jjwxc-rank-scraper.js --type 12 --list-only # 只采列表(快,无核心指标)
8
+ node scripts/jjwxc-rank-scraper.js --type 12 --outdir {outdir} # 收入金榜
9
+ node scripts/jjwxc-rank-scraper.js --type 7 --outdir {outdir} # 月榜
13
10
  ```
14
11
 
15
- 默认收入金榜 + 月榜。本数含全列表,热度只含详情样本;覆盖见本次榜单文件头的「详情采集」。
12
+ 作者要看新书里在冒头的,再加新手金榜:`--type 15`。
13
+
14
+ ## 可选参数
15
+
16
+ - `--type`:收入金榜 12 / 月榜 7 / 季度榜 8 / 完结金榜 14 / 新手金榜 15 / 千字金榜 17 / all 全部。
17
+ - 列表全保留,每频道前 10 本补详情、总共最多 100 本:`--top N` 改每频道补详情的本数,`--detail-limit N` 改总量。
18
+ - `--list-only` 只采书目,快,但没有收藏等核心指标,只能看书目、不能做指标分析。
19
+
20
+ ## 字段与热度口径
16
21
 
17
- ## 字段与硬性要求
22
+ 频道、排名、书名、作者、收藏数(核心指标,聚合的热度口径)、营养液、积分、字数、状态、作品页链接。本数含全列表,热度只含补了详情的书;覆盖量见文件头「详情采集」。
18
23
 
19
- 频道(聚合时当题材)、排名、书名、作者、novelid、收藏数(核心,聚合的热度口径)、营养液、积分、字数、状态、作品页链接。指标分析须有收藏、营养液或积分、字数;`--list-only` 或 `[仅列表-无核心指标]` 只支持看书目,指标分析前要重采详情。
24
+ ## 采不到时
25
+
26
+ - 聚合「采集情况」说详情大多没取到、可能没登录:在 Chrome 里登录晋江,再重采。
27
+ - 说部分详情没取到:结论只用有收藏数的书,报告里说明覆盖了多少本。
20
28
 
21
29
  ## 分析维度
22
30
 
23
31
  | 维度 | 看什么 |
24
32
  |---|---|
25
- | 金榜 | 观察上榜作品构成,不把名次还原为收入 |
33
+ | 收入金榜、月榜 | 上榜作品构成,不把名次还原为收入 |
26
34
  | 季度榜 | 中期趋势 |
27
- | 红字/黑字 | 当前脚本不采页面颜色,不能据此判断负面评价 |
28
- | 收藏/营养液 | 女频市场的核心指标 |
35
+ | 新手金榜 | 新人新书的题材信号 |
36
+ | 收藏、营养液 | 女频市场的核心指标 |
37
+
38
+ ## 本平台读者
39
+
40
+ 女频、言情、纯爱、衍生为主。读者要情感细腻、人设立得住,开头可以慢,但人设必须先立住;爽点偏虐后的甜、反转打脸、身份翻盘;雷区是女主傻白甜、男主渣且不追妻、三观不正。文案要给读者安全感。