@oh-story/dsh 0.1.0

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 (488) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +38 -0
  3. package/cordis.patch.yml +3 -0
  4. package/lib/client.js +1201 -0
  5. package/lib/client.js.map +7 -0
  6. package/lib/drama/LICENSE.upstream +21 -0
  7. package/lib/drama/manifest.json +1012 -0
  8. package/lib/drama/skills/short-drama/SKILL.md +153 -0
  9. package/lib/drama/skills/short-drama/agents/openai.yaml +4 -0
  10. package/lib/drama/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
  11. package/lib/drama/skills/short-drama/assets/production-observation.example.jsonl +2 -0
  12. package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +36 -0
  13. package/lib/drama/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
  14. package/lib/drama/skills/short-drama/references/audience-reveal.md +74 -0
  15. package/lib/drama/skills/short-drama/references/contract-and-ownership.md +94 -0
  16. package/lib/drama/skills/short-drama/references/creator-workflow.md +82 -0
  17. package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
  18. package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
  19. package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
  20. package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
  21. package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
  22. package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
  23. package/lib/drama/skills/short-drama/references/knowhow-index.md +80 -0
  24. package/lib/drama/skills/short-drama/references/lifecycle-commands.md +130 -0
  25. package/lib/drama/skills/short-drama/references/look-development.md +52 -0
  26. package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +58 -0
  27. package/lib/drama/skills/short-drama/references/production-form-profiles.md +126 -0
  28. package/lib/drama/skills/short-drama/references/reference-roles.md +142 -0
  29. package/lib/drama/skills/short-drama/references/runtime-preflight.md +27 -0
  30. package/lib/drama/skills/short-drama/scripts/project_tool.py +1963 -0
  31. package/lib/drama/skills/short-drama/scripts/selftest.py +287 -0
  32. package/lib/drama/skills/short-drama-assets/SKILL.md +187 -0
  33. package/lib/drama/skills/short-drama-assets/agents/openai.yaml +4 -0
  34. package/lib/drama/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
  35. package/lib/drama/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
  36. package/lib/drama/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
  37. package/lib/drama/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
  38. package/lib/drama/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
  39. package/lib/drama/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
  40. package/lib/drama/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
  41. package/lib/drama/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
  42. package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +89 -0
  43. package/lib/drama/skills/short-drama-assets/references/character-and-look.md +164 -0
  44. package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +123 -0
  45. package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +146 -0
  46. package/lib/drama/skills/short-drama-assets/references/location-and-view.md +84 -0
  47. package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +111 -0
  48. package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +107 -0
  49. package/lib/drama/skills/short-drama-assets/references/stage-contract.md +136 -0
  50. package/lib/drama/skills/short-drama-assets/references/voice-direction.md +171 -0
  51. package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +267 -0
  52. package/lib/drama/skills/short-drama-assets/scripts/selftest.py +89 -0
  53. package/lib/drama/skills/short-drama-develop/SKILL.md +157 -0
  54. package/lib/drama/skills/short-drama-develop/agents/openai.yaml +4 -0
  55. package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
  56. package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +120 -0
  57. package/lib/drama/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
  58. package/lib/drama/skills/short-drama-develop/assets/story-engine.md +181 -0
  59. package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +219 -0
  60. package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
  61. package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +113 -0
  62. package/lib/drama/skills/short-drama-develop/references/episode-design.md +509 -0
  63. package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
  64. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
  65. package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
  66. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
  67. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
  68. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
  69. package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
  70. package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
  71. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
  72. package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
  73. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
  74. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
  75. package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
  76. package/lib/drama/skills/short-drama-develop/references/genre-cards.md +92 -0
  77. package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +282 -0
  78. package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
  79. package/lib/drama/skills/short-drama-develop/references/premise-devices.md +211 -0
  80. package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
  81. package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
  82. package/lib/drama/skills/short-drama-develop/references/stage-contract.md +88 -0
  83. package/lib/drama/skills/short-drama-develop/references/story-craft.md +359 -0
  84. package/lib/drama/skills/short-drama-develop/scripts/episode_intake.py +699 -0
  85. package/lib/drama/skills/short-drama-develop/scripts/selftest.py +47 -0
  86. package/lib/drama/skills/short-drama-image-prompts/SKILL.md +181 -0
  87. package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
  88. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
  89. package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +37 -0
  90. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
  91. package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +31 -0
  92. package/lib/drama/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
  93. package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +154 -0
  94. package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +231 -0
  95. package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +122 -0
  96. package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +152 -0
  97. package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +96 -0
  98. package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +38 -0
  99. package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
  100. package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +140 -0
  101. package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
  102. package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +89 -0
  103. package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
  104. package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +93 -0
  105. package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +245 -0
  106. package/lib/drama/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
  107. package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
  108. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
  109. package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
  110. package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
  111. package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +141 -0
  112. package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
  113. package/lib/drama/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
  114. package/lib/drama/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
  115. package/lib/drama/skills/short-drama-produce/SKILL.md +103 -0
  116. package/lib/drama/skills/short-drama-produce/agents/openai.yaml +4 -0
  117. package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +140 -0
  118. package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
  119. package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
  120. package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +40 -0
  121. package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +60 -0
  122. package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +1635 -0
  123. package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +964 -0
  124. package/lib/drama/skills/short-drama-produce/scripts/selftest.py +134 -0
  125. package/lib/drama/skills/short-drama-review/SKILL.md +178 -0
  126. package/lib/drama/skills/short-drama-review/agents/openai.yaml +4 -0
  127. package/lib/drama/skills/short-drama-review/assets/finding-template.jsonl +2 -0
  128. package/lib/drama/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
  129. package/lib/drama/skills/short-drama-review/assets/verdict-template.json +32 -0
  130. package/lib/drama/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
  131. package/lib/drama/skills/short-drama-review/examples/minimal-verdict.json +34 -0
  132. package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +114 -0
  133. package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +270 -0
  134. package/lib/drama/skills/short-drama-review/references/project-calibration.md +85 -0
  135. package/lib/drama/skills/short-drama-review/references/review-method.md +82 -0
  136. package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +115 -0
  137. package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
  138. package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +164 -0
  139. package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +166 -0
  140. package/lib/drama/skills/short-drama-review/references/stage-contract.md +87 -0
  141. package/lib/drama/skills/short-drama-review/scripts/review_check.py +325 -0
  142. package/lib/drama/skills/short-drama-review/scripts/selftest.py +87 -0
  143. package/lib/drama/skills/short-drama-storyboard/SKILL.md +264 -0
  144. package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +4 -0
  145. package/lib/drama/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
  146. package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
  147. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +32 -0
  148. package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
  149. package/lib/drama/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
  150. package/lib/drama/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
  151. package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
  152. package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +241 -0
  153. package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +39 -0
  154. package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +169 -0
  155. package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +264 -0
  156. package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +70 -0
  157. package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +39 -0
  158. package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +157 -0
  159. package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +192 -0
  160. package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +29 -0
  161. package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +110 -0
  162. package/lib/drama/skills/short-drama-storyboard/scripts/selftest.py +191 -0
  163. package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
  164. package/lib/drama/skills/short-drama-video-prompts/SKILL.md +245 -0
  165. package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
  166. package/lib/drama/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
  167. package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
  168. package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +212 -0
  169. package/lib/drama/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
  170. package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
  171. package/lib/drama/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
  172. package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +46 -0
  173. package/lib/drama/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
  174. package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +240 -0
  175. package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +255 -0
  176. package/lib/drama/skills/short-drama-video-prompts/references/generability.md +93 -0
  177. package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +304 -0
  178. package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +191 -0
  179. package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +312 -0
  180. package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +168 -0
  181. package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +110 -0
  182. package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
  183. package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
  184. package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
  185. package/lib/drama/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
  186. package/lib/drama/skills/short-drama-write/SKILL.md +284 -0
  187. package/lib/drama/skills/short-drama-write/agents/openai.yaml +4 -0
  188. package/lib/drama/skills/short-drama-write/assets/beats.jsonl +2 -0
  189. package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
  190. package/lib/drama/skills/short-drama-write/assets/episode-card.json +55 -0
  191. package/lib/drama/skills/short-drama-write/assets/screenplay.md +36 -0
  192. package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
  193. package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +519 -0
  194. package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +273 -0
  195. package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +51 -0
  196. package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
  197. package/lib/drama/skills/short-drama-write/references/screenplay-format.md +260 -0
  198. package/lib/drama/skills/short-drama-write/references/script-craft.md +558 -0
  199. package/lib/drama/skills/short-drama-write/references/stage-contract.md +94 -0
  200. package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +107 -0
  201. package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +309 -0
  202. package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
  203. package/lib/drama/skills/short-drama-write/scripts/selftest.py +229 -0
  204. package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
  205. package/lib/index.js +756 -0
  206. package/lib/index.js.map +7 -0
  207. package/lib/oh-story/LICENSE.upstream +21 -0
  208. package/lib/oh-story/manifest.json +1351 -0
  209. package/lib/oh-story/roles/chapter-extractor.md +314 -0
  210. package/lib/oh-story/roles/character-designer.md +169 -0
  211. package/lib/oh-story/roles/consistency-checker.md +190 -0
  212. package/lib/oh-story/roles/narrative-writer.md +294 -0
  213. package/lib/oh-story/roles/story-architect.md +195 -0
  214. package/lib/oh-story/roles/story-explorer.md +364 -0
  215. package/lib/oh-story/roles/story-researcher.md +304 -0
  216. package/lib/oh-story/skills/browser-cdp/SKILL.md +175 -0
  217. package/lib/oh-story/skills/story/SKILL.md +116 -0
  218. package/lib/oh-story/skills/story/VERSION +1 -0
  219. package/lib/oh-story/skills/story-cover/SKILL.md +327 -0
  220. package/lib/oh-story/skills/story-cover/references/cover-styles.md +210 -0
  221. package/lib/oh-story/skills/story-deslop/SKILL.md +445 -0
  222. package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +582 -0
  223. package/lib/oh-story/skills/story-deslop/references/banned-words.md +147 -0
  224. package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +1371 -0
  225. package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +330 -0
  226. package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +241 -0
  227. package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +410 -0
  228. package/lib/oh-story/skills/story-import/SKILL.md +634 -0
  229. package/lib/oh-story/skills/story-import/references/character-state-reverse.md +82 -0
  230. package/lib/oh-story/skills/story-import/references/format-and-structure.md +169 -0
  231. package/lib/oh-story/skills/story-import/references/length-routing.md +134 -0
  232. package/lib/oh-story/skills/story-import/references/state-tracking.md +108 -0
  233. package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +442 -0
  234. package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +175 -0
  235. package/lib/oh-story/skills/story-import/references/tracking-transaction.md +161 -0
  236. package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +1139 -0
  237. package/lib/oh-story/skills/story-long-analyze/SKILL.md +329 -0
  238. package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
  239. package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +530 -0
  240. package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +559 -0
  241. package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +80 -0
  242. package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +149 -0
  243. package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
  244. package/lib/oh-story/skills/story-long-scan/SKILL.md +342 -0
  245. package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +197 -0
  246. package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +114 -0
  247. package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +105 -0
  248. package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +207 -0
  249. package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +78 -0
  250. package/lib/oh-story/skills/story-long-write/SKILL.md +327 -0
  251. package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +582 -0
  252. package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +302 -0
  253. package/lib/oh-story/skills/story-long-write/references/banned-words.md +147 -0
  254. package/lib/oh-story/skills/story-long-write/references/character-basics.md +445 -0
  255. package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +428 -0
  256. package/lib/oh-story/skills/story-long-write/references/character-relations.md +385 -0
  257. package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +502 -0
  258. package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +62 -0
  259. package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +282 -0
  260. package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +426 -0
  261. package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +209 -0
  262. package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +188 -0
  263. package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +169 -0
  264. package/lib/oh-story/skills/story-long-write/references/genre-catalog.md +480 -0
  265. package/lib/oh-story/skills/story-long-write/references/genre-core-mechanics.md +415 -0
  266. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  267. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  268. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  269. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  270. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  271. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  272. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  273. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  274. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  275. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  276. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  277. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  278. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  279. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  280. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  281. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  282. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  283. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  284. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  285. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  286. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  287. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  288. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  289. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  290. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  291. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  292. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  293. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  294. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  295. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  296. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  297. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  298. package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +91 -0
  299. package/lib/oh-story/skills/story-long-write/references/genre-readers.md +235 -0
  300. package/lib/oh-story/skills/story-long-write/references/genre-writing-formulas.md +444 -0
  301. package/lib/oh-story/skills/story-long-write/references/hooks-chapter.md +225 -0
  302. package/lib/oh-story/skills/story-long-write/references/hooks-paragraph.md +146 -0
  303. package/lib/oh-story/skills/story-long-write/references/hooks-suspense.md +352 -0
  304. package/lib/oh-story/skills/story-long-write/references/opening-design.md +349 -0
  305. package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +457 -0
  306. package/lib/oh-story/skills/story-long-write/references/outline-methods.md +287 -0
  307. package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +389 -0
  308. package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +326 -0
  309. package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +522 -0
  310. package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +354 -0
  311. package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +711 -0
  312. package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +622 -0
  313. package/lib/oh-story/skills/story-long-write/references/quality-checklist.md +184 -0
  314. package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +109 -0
  315. package/lib/oh-story/skills/story-long-write/references/reversal-toolkit.md +349 -0
  316. package/lib/oh-story/skills/story-long-write/references/state-tracking.md +108 -0
  317. package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +409 -0
  318. package/lib/oh-story/skills/story-long-write/references/style-craft.md +347 -0
  319. package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +510 -0
  320. package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +161 -0
  321. package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +140 -0
  322. package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +171 -0
  323. package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +99 -0
  324. package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +284 -0
  325. package/lib/oh-story/skills/story-long-write/references/writing-craft.md +421 -0
  326. package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +1371 -0
  327. package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +330 -0
  328. package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +241 -0
  329. package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +410 -0
  330. package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +1139 -0
  331. package/lib/oh-story/skills/story-review/SKILL.md +483 -0
  332. package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +582 -0
  333. package/lib/oh-story/skills/story-review/references/banned-words.md +147 -0
  334. package/lib/oh-story/skills/story-review/references/character-relations.md +385 -0
  335. package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +282 -0
  336. package/lib/oh-story/skills/story-review/references/plot-core-methods.md +522 -0
  337. package/lib/oh-story/skills/story-review/references/quality-checklist.md +250 -0
  338. package/lib/oh-story/skills/story-review/references/quality-rubric.md +55 -0
  339. package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +18 -0
  340. package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +19 -0
  341. package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +20 -0
  342. package/lib/oh-story/skills/story-review/references/tracking-transaction.md +161 -0
  343. package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +1371 -0
  344. package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +330 -0
  345. package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +410 -0
  346. package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +1139 -0
  347. package/lib/oh-story/skills/story-setup/SKILL.md +495 -0
  348. package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +582 -0
  349. package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +147 -0
  350. package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +445 -0
  351. package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
  352. package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +385 -0
  353. package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +282 -0
  354. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +426 -0
  355. package/lib/oh-story/skills/story-setup/references/agent-references/emotional-methods.md +179 -0
  356. package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +169 -0
  357. package/lib/oh-story/skills/story-setup/references/agent-references/genre-catalog.md +480 -0
  358. package/lib/oh-story/skills/story-setup/references/agent-references/genre-core-mechanics.md +415 -0
  359. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
  360. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
  361. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
  362. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
  363. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
  364. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
  365. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
  366. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
  367. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
  368. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
  369. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
  370. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
  371. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
  372. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
  373. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
  374. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
  375. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
  376. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
  377. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
  378. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
  379. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
  380. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
  381. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
  382. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
  383. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
  384. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
  385. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
  386. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
  387. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
  388. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
  389. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
  390. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
  391. package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
  392. package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +235 -0
  393. package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +444 -0
  394. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-chapter.md +225 -0
  395. package/lib/oh-story/skills/story-setup/references/agent-references/hooks-suspense.md +352 -0
  396. package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +349 -0
  397. package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
  398. package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +287 -0
  399. package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
  400. package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
  401. package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +247 -0
  402. package/lib/oh-story/skills/story-setup/references/agent-references/reversal-toolkit.md +349 -0
  403. package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +409 -0
  404. package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
  405. package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +421 -0
  406. package/lib/oh-story/skills/story-short-analyze/SKILL.md +278 -0
  407. package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +582 -0
  408. package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +147 -0
  409. package/lib/oh-story/skills/story-short-analyze/references/character-basics.md +453 -0
  410. package/lib/oh-story/skills/story-short-analyze/references/character-design-methods.md +438 -0
  411. package/lib/oh-story/skills/story-short-analyze/references/character-relations.md +395 -0
  412. package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
  413. package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +490 -0
  414. package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +425 -0
  415. package/lib/oh-story/skills/story-short-analyze/references/genre-readers.md +245 -0
  416. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +453 -0
  417. package/lib/oh-story/skills/story-short-analyze/references/genre-writing-techniques.md +475 -0
  418. package/lib/oh-story/skills/story-short-analyze/references/hooks-chapter.md +225 -0
  419. package/lib/oh-story/skills/story-short-analyze/references/hooks-paragraph.md +146 -0
  420. package/lib/oh-story/skills/story-short-analyze/references/hooks-suspense.md +352 -0
  421. package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +685 -0
  422. package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +165 -0
  423. package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +561 -0
  424. package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +242 -0
  425. package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +90 -0
  426. package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +54 -0
  427. package/lib/oh-story/skills/story-short-scan/SKILL.md +212 -0
  428. package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +90 -0
  429. package/lib/oh-story/skills/story-short-write/SKILL.md +433 -0
  430. package/lib/oh-story/skills/story-short-write/references/banned-words.md +147 -0
  431. package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +62 -0
  432. package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +282 -0
  433. package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +179 -0
  434. package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +159 -0
  435. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
  436. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
  437. package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
  438. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
  439. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
  440. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
  441. package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
  442. package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
  443. 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 +210 -0
  444. package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +444 -0
  445. package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +488 -0
  446. package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +225 -0
  447. package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +146 -0
  448. package/lib/oh-story/skills/story-short-write/references/hooks-suspense.md +352 -0
  449. package/lib/oh-story/skills/story-short-write/references/output-contract.md +165 -0
  450. package/lib/oh-story/skills/story-short-write/references/quality-checklist.md +222 -0
  451. package/lib/oh-story/skills/story-short-write/references/reversal-toolkit.md +349 -0
  452. package/lib/oh-story/skills/story-short-write/references/short-craft.md +185 -0
  453. package/lib/oh-story/skills/story-short-write/references/short-deslop.md +133 -0
  454. package/lib/oh-story/skills/story-short-write/references/short-format.md +167 -0
  455. package/lib/oh-story/skills/story-short-write/references/submission-craft.md +35 -0
  456. package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +158 -0
  457. package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +153 -0
  458. package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +1371 -0
  459. package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +330 -0
  460. package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +241 -0
  461. package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +410 -0
  462. package/lib/types/client/file-activity.d.ts +30 -0
  463. package/lib/types/client/file-activity.d.ts.map +1 -0
  464. package/lib/types/client/file-tree.d.ts +20 -0
  465. package/lib/types/client/file-tree.d.ts.map +1 -0
  466. package/lib/types/client/index.d.ts +12 -0
  467. package/lib/types/client/index.d.ts.map +1 -0
  468. package/lib/types/client/jsonl-preview.d.ts +15 -0
  469. package/lib/types/client/jsonl-preview.d.ts.map +1 -0
  470. package/lib/types/client/markdown-preview.d.ts +38 -0
  471. package/lib/types/client/markdown-preview.d.ts.map +1 -0
  472. package/lib/types/index.d.ts +25 -0
  473. package/lib/types/index.d.ts.map +1 -0
  474. package/lib/types/native-hooks.d.ts +16 -0
  475. package/lib/types/native-hooks.d.ts.map +1 -0
  476. package/lib/types/role-provider.d.ts +6 -0
  477. package/lib/types/role-provider.d.ts.map +1 -0
  478. package/lib/types/role-tool.d.ts +10 -0
  479. package/lib/types/role-tool.d.ts.map +1 -0
  480. package/lib/types/skill-provider.d.ts +15 -0
  481. package/lib/types/skill-provider.d.ts.map +1 -0
  482. package/lib/types/workspace-request-trust.d.ts +13 -0
  483. package/lib/types/workspace-request-trust.d.ts.map +1 -0
  484. package/lib/types/workspace-route.d.ts +10 -0
  485. package/lib/types/workspace-route.d.ts.map +1 -0
  486. package/lib/types/workspace-security.d.ts +9 -0
  487. package/lib/types/workspace-security.d.ts.map +1 -0
  488. package/package.json +107 -0
@@ -0,0 +1,197 @@
1
+ # 网文题材趋势与流派参考
2
+ 题材选择、流派写作要点、扫榜技巧的速查手册。
3
+
4
+ ---
5
+
6
+ ## 脑洞文创作
7
+
8
+ ### 从灵感到成书
9
+
10
+ 1. 得到点子(金手指雏形/画面/切入点)
11
+ 2. 评估潜力(纯原创?有市场铺垫?)
12
+ 3. 匹配题材(放进熟悉题材看效果)
13
+ 4. 提炼核心卖点(能否转化为情绪缺口/期待感)
14
+ 5. 梳理故事雏形(框架/金手指/切入点)
15
+ 6. 动笔验证
16
+
17
+ ### 金手指创新
18
+
19
+ 基础=满足条件→得到反馈。变体:多条件一反馈 / 阶段性反馈 / 概率性反馈 / 反馈可叠加
20
+
21
+ ### 写长方法
22
+
23
+ 1. 从核心卖点找多角度,归纳不同矛盾套路,每套写1-2卷
24
+ 2. 叠加框架:多角度交织循环支撑几百万字
25
+ 3. 框架+小剧情循环:大目标→中目标→小目标→细纲
26
+
27
+ ### 跟风 = 换皮
28
+
29
+ 照搬核心设定换熟悉题材。金手指类兼容所有题材;同题材跟风保留底层情绪另换角度。
30
+
31
+ ---
32
+
33
+ ## 题材选择
34
+
35
+ 85%熟悉+15%惊喜。选择数据充分+可构建完整世界观的赛道。
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
+ **起点**:三江→首订图→签约新书榜前15→拆精品到万订之间的书
68
+ **番茄**:新书榜拉到底→在读30万以上为标准
69
+
70
+ ### 起点热门题材
71
+
72
+ | 题材 | 要点 |
73
+ |------|------|
74
+ | 都市 | 重生/种田/娱乐;重生可与任何元素融合 |
75
+ | 玄幻 | 极道流、加点横推等强反馈样本优先;传统玄幻若近期样本稀疏,标记为高风险 |
76
+ | 仙侠 | 优先检查脑洞融合路线的近期样本;纯传统路线需额外验证受众 |
77
+ | 历史 | 秦/唐/明/宋/三国;类同人写法 |
78
+ | 诸天无限 | 不要写原创副本,用同人 |
79
+ | 科幻 | 末世类(含脑洞/种田/游戏设定) |
80
+
81
+ ---
82
+
83
+ ## 流派写作要点
84
+
85
+ | 流派 | 核心要点 |
86
+ |------|----------|
87
+ | 极道流 | 金手指属性加点,横推一切;边界清楚、验证成本低,适合作为低复杂度候选 |
88
+ | 凡人流 | 小人物攀爬+精打细算;战力数据化+寿命驱动 |
89
+ | 巫师流 | 知识体系+实验探索升级,门槛较高 |
90
+ | 种田流 | 经营餐馆/书店/渔场等;复杂度较低,可与多界穿梭结合,但仍需样本校验 |
91
+ | 都市高武 | 高频:武馆+学校双线/死党对比/师姐诱惑/模拟考装逼;《武圣》前三章是黄金模板 |
92
+ | 同人文 | 仅在用户明确目标 IP、平台允许且近期样本有效时使用;默认只抽“已知世界+新变量+名场面改写”结构 |
93
+ | 盘点文 | 难度低,找对切入点 |
94
+ | 模拟文 | 模拟制造情绪缺口→得奖励→现实满足 |
95
+ | 两界穿梭 | 标准模板:金手指+震惊历史人物+改变命运 |
96
+ | 历史文 | 秦/唐/明/宋/三国主流;需危机感+从小到大+清晰主线;宋朝以后审核风险高 |
97
+
98
+ ---
99
+
100
+ ## 都市重生文
101
+
102
+ | 维度 | 要点 |
103
+ |------|------|
104
+ | 事业感情配比 | 五五开上限最高但要求极高;感情弱→8:2,感情行→2:8起步 |
105
+ | 期待感 | 没有升级线必须持续维持期待感;悬疑反转少用;保持两万字规划连续性 |
106
+ | 短视频化 | 每章有几个逗人一笑的点;搭建正反馈人际网循环玩梗;同一梗反复出现读者不厌倦 |
107
+ | 同质化 | 微创新开头+中正内容=足够精品;缺的是流量不是内容 |
108
+
109
+ ---
110
+
111
+ ## 轻小说
112
+
113
+ 核心=卖有戏剧性的人设(尤其美少女人设)。
114
+
115
+ - 事业线:美少女当前困境+她与别人的恩怨
116
+ - 爱情线:有戏剧性的发展+人设搭配造成事件
117
+ - 核心竞争力:人设设计+互动状态是否令人羡慕
118
+
119
+ ---
120
+
121
+ ## 喜剧/沙雕文
122
+
123
+ 套路:中计掉坑+弄巧成拙 / 降智反派 / 误解错位,可组合。
124
+ 底层原理:根据读者对角色好感度,让剧情对角色的忧惧因素产生攻击性。
125
+
126
+ ---
127
+
128
+ ## 霸道总裁文(女频)
129
+
130
+ | 维度 | 传统 | 现代 |
131
+ |------|------|------|
132
+ | 女主 | 傻白甜 | 独立职业女性 |
133
+ | 相遇逻辑 | 善良行为偶遇 | 职业交集+独特价值 |
134
+ | 男主便利 | 全方位照顾 | 情绪价值+锦上添花 |
135
+ | 底层逻辑 | 嫁好男人不用干 | 我很强+征服了强者的心 |
136
+
137
+ 情敌反派避免传统"绿茶"模式。
138
+
139
+ ---
140
+
141
+ ## 爆款灵感素材库
142
+
143
+ ### 古言/宫闱宅斗
144
+
145
+ | 标题 | 一句话卖点 |
146
+ |------|-----------|
147
+ | 重生后公府长媳要跑路,首辅大人疯魔了 | 前世替公府操碎心还被逼腾位,重生后决定卷走一切直接跑路 |
148
+ | 权臣偏宠掌上娇,重生真千金杀疯了 | 真千金重生归来,先盯上将来权倾天下的养子 |
149
+ | 惨死重生,捂不热的权臣我不要了 | 为妾五年被锁枯院,重生后捂不热的权臣不要了 |
150
+ | 被逼替嫁我不慌,我送全家火葬场 | 被逼替嫁我不慌,我送全家火葬场 |
151
+
152
+ ### 现言/总裁豪门
153
+
154
+ | 标题 | 一句话卖点 |
155
+ |------|-----------|
156
+ | 逼我给青梅打官司,离婚你哭什么 | 逼我给青梅打官司,离婚你哭什么 |
157
+ | 真千金出狱后,全家悔哭求原谅 | 亲爹亲哥联手送进监狱为假千金顶罪 |
158
+
159
+ ### 世情复仇
160
+
161
+ | 标题 | 一句话卖点 |
162
+ |------|-----------|
163
+ | 班主任断我舞台梦,十五年后我封杀她女儿 | 年会试镜在评委席亲手刷掉班主任的女儿 |
164
+ | 伤害转移100次,我妈终于杀疯了 | 病床上挨满百次剧痛后,妈妈说该你们还了 |
165
+
166
+ ### 都市/年代重生
167
+
168
+ | 标题 | 一句话卖点 |
169
+ |------|-----------|
170
+ | 高武:开局就氪命,你小子是个狠人! | 开局被亲人陷害,拿寿命换武学 |
171
+ | 重生八零,我选择成全教授妻子和妹夫 | 重生回龙凤胎惨死前夜,先拍离婚书 |
172
+
173
+ ### 玄幻/历史/末世
174
+
175
+ | 标题 | 一句话卖点 |
176
+ |------|-----------|
177
+ | 剑仙:从杀敌爆经验开始无敌 | 靠杀敌爆经验从苟命少年杀成无敌剑仙 |
178
+ | 全宗通魔,唯有小师弟正的发邪 | "那便恭请师尊赴死" |
179
+ | 被妹妹推去喂丧尸后,我重生囤满物资 | 被推进丧尸群死过一次后,先在地下藏满十年物资 |
180
+
181
+ ---
182
+
183
+ ## 命名规律
184
+
185
+ ### 短篇公式
186
+
187
+ `[极端事件] + [被逼/死亡] + [反击手段]`
188
+
189
+ 高频词:疯了/杀疯了/悔疯了(17次) | 我反手/我让他(4次) | 全家/所有人都(4次) | 清明节/愚人节/除夕夜(4次)
190
+
191
+ ### 长篇公式
192
+
193
+ 高频词:快穿、系统、一见钟情、离婚后、反派、开局秒杀
194
+
195
+ ### 知乎风格
196
+
197
+ 平均7.9字。类型:事件型 / 反差型 / 互动型
@@ -0,0 +1,114 @@
1
+ # 网文平台运营与书名简介指南
2
+
3
+ ## 目录
4
+
5
+ 1. [平台选择与定位](#平台选择与定位)
6
+ 2. [推荐机制](#推荐机制)
7
+ 3. [数据指标解读](#数据指标解读)
8
+ 4. [简介写法](#简介写法)
9
+
10
+ ---
11
+
12
+ ## 平台选择与定位
13
+
14
+ ### 主流平台对比
15
+
16
+ | 平台 | 特点 | 适配条件 |
17
+ |------|------|----------|
18
+ | 起点 | 主站标杆,订阅制,推荐机制完善 | 男频长线、追读驱动、能持续展开主线与爽点循环 |
19
+ | 番茄 | 免费阅读,流量大,强完读/强标签导向 | 吸量书名、快节奏、强情绪或强脑洞,需用当前榜单校验 AI 同质化风险 |
20
+ | 七猫 | 下沉市场,强情绪流 | 强感情线、甜虐推拉、情绪密度高;合同/收益规则必须以最新官方口径为准 |
21
+ | 晋江 | 女频/纯爱/言情主阵地 | 主体性、文案安全感、人物细节和收藏/营养液等指标可支撑时优先 |
22
+
23
+ ### 选择原则
24
+
25
+ - 先匹配题材与平台读者,再比较流量;不把平台规模直接等同于项目成功率
26
+ - 合同、保底、分成、全勤等收益相关判断必须以平台最新官方规则或编辑确认信息为准,本文件只提供适配维度
27
+ - 可同时保留主站/渠道候选,但每个平台都要列出:目标读者、题材样本、核心指标、失败风险
28
+ - 平台选择至少检查三个方向:写法节奏、题材噱头、样本匹配度
29
+
30
+ ### 女频平台收稿倾向
31
+
32
+ | 平台 | 收稿倾向 |
33
+ |------|----------|
34
+ | 七猫 | 强情绪流,甜虐交替极限推拉;爹系男主VS大美人、追妻火葬场、60-90年代甜宠+对照组、多男主修罗场 |
35
+ | 起点女频 | 候选前必须复核近期榜单与推荐位样本;若目标题材样本稀疏,标记为高流量风险 |
36
+
37
+ ---
38
+
39
+ ## 推荐机制
40
+
41
+ ### 起点推荐流程
42
+
43
+ ```
44
+ 出库 -> 试水期(7天) -> 培育期(21-42天) -> 三江推荐/上架
45
+ ```
46
+
47
+ **试水期**:同期新书在同一流量池,七天总流量恒定。
48
+
49
+ **培育期**:四个等级:放量包++ > 放量包+ > 放量包 > 扶持包(安慰奖)。每1-2天一个流量包,共21个。下一个流量包大小取决于上一个的成绩(追读+留存)。噱头强但留存差 -> 恶性循环。
50
+
51
+ **关键数据**:
52
+ - 出库时300假追可无缝衔接试水
53
+ - 冲三江至少500假追
54
+ - 1000假追以下全是扶贫包,2000以上有放量+
55
+
56
+ ### 起点新书榜规则
57
+
58
+ 上榜条件(三选一即下榜):满20万字 / 签约满30天 / 断更超3天
59
+
60
+ **多待榜单技巧**:内投通过后和编辑商量,先发到3万字左右再完成签约流程,可多待4-5天。
61
+
62
+ ### 番茄推荐机制
63
+
64
+ - 推荐节点、测试字数、流量包规则变化频繁;执行前必须用官方后台、编辑口径或最新作者公告复核
65
+ - 分析番茄样本时记录:验证期字数、在读数、完读率/追更、书名标签、简介钩子
66
+ - 若当前 scan 发现 AI 同质化样本密集,输出同质化风险和差异化检查,不直接沿用历史给量数字
67
+ - 观察数据时按项目实际字数节点和平台最新规则设置复盘点,不使用固定字数作为硬规则
68
+
69
+ ### 书名简介的重要性
70
+
71
+ 起点新推荐机制下,书名和简介是第一道筛选:
72
+ - 书名点明题材可保下限
73
+ - 书名简介吸量 >> 追读 >> 读完率/书架比
74
+ - 文艺书名在新机制下会被拉长培育期
75
+
76
+ ---
77
+
78
+ ## 数据指标解读
79
+
80
+ ### 番茄核心数据
81
+
82
+ **追更人数** = 阅读最近 7 日更新章节的有效读者数。该指标只能和同题材、同字数段、同推荐阶段样本横向比较。
83
+
84
+ | 指标 | 用法 |
85
+ |------|------|
86
+ | 追更人数 | 判断近期读者留存和更新期待,必须标注统计周期 |
87
+ | 在读数 | 判断流量规模,需结合书龄和推荐阶段 |
88
+ | 完读/读完率 | 判断章节承接是否掉点;若无法获取,报告中标记为缺失 |
89
+ | 书架/收藏 | 判断吸量后是否留下,需和书名/简介一起分析 |
90
+
91
+ 历史追更区间只能作为样本注释;不输出固定首秀量预测,除非有当前平台同阶段数据支撑。
92
+
93
+ ### 起点核心数据
94
+
95
+ - **收订比**:收藏与首订的比例,反映转化效率
96
+ - **24小时追读**:VIP读者的实时追读,上推荐看这个数据
97
+ - **首订数据参考**:上架首订不到100属中游水平
98
+
99
+ ### 通用数据逻辑
100
+
101
+ - 读完率高 = 内容质量好,追更高 = 期待感足
102
+ - 书架比好但完读差 = 中间内容出了问题
103
+ - 收益与追更/在读等指标相关,但具体收益受平台规则、合同和推荐阶段影响,必须另行核实
104
+ - 数据不好时优先检查:开头吸量、章节留存、期待感断档
105
+
106
+ ---
107
+
108
+ ## 简介写法
109
+
110
+ 核心结构:主角处境 -> 金手指能干嘛 -> 第一个爽点预览。不要写成设定说明书,要写成广告。好处要说具体。
111
+
112
+ **常见错误**:东扯一句西塞一句没有核心主题 | 创意名字但实际是普通积分类系统 | "且看主角如何如何"空话套话 | 自称用"俺"等过于出戏
113
+
114
+ **简介结构提取**:参考三江推荐(qidian.com/sanjiang/)或畅销榜同类型爆款简介结构,只提取功能位:问题、利益点、爽点预告、安全感、悬念。禁止复刻具体剧情和表达。
@@ -0,0 +1,105 @@
1
+ # 读者画像系统
2
+
3
+ ## 9 维画像
4
+
5
+ | 维度 | 包含什么 | 示例 |
6
+ |------|----------|------|
7
+ | 平台 | 起点/番茄/晋江/知乎/七猫 | 起点=付费硬核,番茄=免费下沉 |
8
+ | 标签 | 题材标签决定读者预期 | 看到「系统文」期待升级节奏 |
9
+ | 阅读量 | 低阅读量 vs 高阅读量读者,耐受度不同 | 高阅读量读者能识别套路模式,低阅读量读者对套路更敏感 |
10
+ | 性别 | 男频女频审美差异巨大 | 男频重爽,女频重情感 |
11
+ | 年龄 | 16-25 vs 25-35,代入角色不同 | 05后大学生 vs 90后打工人 |
12
+ | 地域 | 一线城市 vs 下沉市场 | 北上广深 vs 三四线城市 |
13
+ | 学历 | 影响对文笔和逻辑的要求 | 大学生 vs 初中辍学 |
14
+ | 阶层 | 底层/中产/富人 | 决定什么样的逆袭有共鸣 |
15
+ | 社会角色 | 学生/宝妈/打工者/自由职业 | 决定什么样的日常有代入感 |
16
+
17
+ 画像组合示例:「起点+古代官场+夺嫡+文抄+高阅读量+女+05后+二线城市+大学生+中产」-> 节奏快、权谋爽、感情线甜但不傻白甜、文化梗要新
18
+
19
+ ---
20
+
21
+ ## 画像关联元素法(70/20/10)
22
+
23
+ 构建读者共鸣的三层比例:
24
+
25
+ - **70% 怀旧元素**:读者有过类似经历的场景
26
+ - **20% 当前生活**:读者正在面对的压力
27
+ - **10% 热点话题**:当下流行的梗和话题
28
+
29
+ ### 70% 怀旧元素来源
30
+
31
+ | 来源 | 内容 | 适用题材 |
32
+ |------|------|----------|
33
+ | 共同代际记忆 | 90后的网吧/MP3/非主流 | 都市重生、年代文 |
34
+ | 流行文化 | 经典影视剧、游戏、音乐 | 同人、穿越 |
35
+ | 校园生活 | 高考、宿舍、社团 | 校园文 |
36
+ | 童年回忆 | 村里/小区里的事 | 乡村、都市日常 |
37
+
38
+ ### 20% 当前生活来源
39
+
40
+ | 来源 | 内容 | 适用题材 |
41
+ |------|------|----------|
42
+ | 工作压力 | 996、内卷、副业 | 都市、职场 |
43
+ | 感情状态 | 相亲、催婚、丁克 | 言情、世情 |
44
+ | 经济压力 | 房贷、消费降级 | 都市、种田 |
45
+ | 社交焦虑 | 社恐、独居、社交恐惧 | 治愈、日常 |
46
+
47
+ ### 10% 热点话题来源
48
+
49
+ | 来源 | 内容 | 适用题材 |
50
+ |------|------|----------|
51
+ | 社会热点 | 新闻事件、社会议题 | 都市、现实 |
52
+ | 网络热梗 | 梗、表情包、流行语 | 轻松向 |
53
+ | 影视联动 | 热门影视带动题材 | 蹭热度 |
54
+
55
+ ---
56
+
57
+ ## 平台读者画像速查
58
+
59
+ ### 起点男频读者
60
+
61
+ - 核心需求:爽感、升级、碾压
62
+ - 容忍度:开头慢可以,但不能超过5章
63
+ - 爽点偏好:实力碾压 > 智谋取胜 > 运气好
64
+ - 雷区:绿帽、憋屈、女主太强压过男主
65
+ - 黄金标准:三章一爽点,十章一大高潮
66
+
67
+ ### 番茄读者
68
+
69
+ - 核心需求:快节奏、强爽感、不费脑
70
+ - 容忍度:3章不爽就走
71
+ - 爽点偏好:打脸 > 装逼 > 获得机缘
72
+ - 雷区:慢热、虐主、需要思考的剧情
73
+ - 黄金标准:每章都有爽点,3000字内必须爆
74
+
75
+ ### 晋江女频读者
76
+
77
+ - 核心需求:情感细腻、人设好、有共鸣
78
+ - 容忍度:开头可以慢,但人设必须立住
79
+ - 爽点偏好:虐完后的甜 > 反转打脸 > 身份翻盘
80
+ - 雷区:女主傻白甜、男主渣且不追妻、三观不正
81
+ - 黄金标准:人物有弧光,情感有层次
82
+
83
+ ### 知乎盐言读者
84
+
85
+ - 核心需求:情绪冲击、反转、代入感
86
+ - 容忍度:前500字决定生死
87
+ - 爽点偏好:反转震撼 > 虐后治愈 > 现实共鸣
88
+ - 雷区:说教、道德绑架、结局强行HE
89
+ - 黄金标准:情绪拉扯 + 一个炸裂反转
90
+
91
+ ### 七猫读者
92
+
93
+ - 核心需求:快节奏、强剧情、不拖沓
94
+ - 容忍度:3章定生死
95
+ - 爽点偏好:逆袭 > 打脸 > 获得认可
96
+ - 雷区:文艺腔、节奏慢、不爽
97
+ - 黄金标准:开篇即冲突,绝不平淡
98
+
99
+ ### 刺猬猫读者
100
+
101
+ - 核心需求:二次元、轻小说、有趣
102
+ - 容忍度:开头必须有趣
103
+ - 爽点偏好:有趣 > 有梗 > 有梗但意想不到
104
+ - 雷区:太严肃、太现实、没有二次元元素
105
+ - 黄金标准:有梗有笑点,偶尔有深度
@@ -0,0 +1,207 @@
1
+ # 扫榜数据采集格式规范
2
+ 定义起点/番茄/七猫/晋江的采集字段、输出模板和清洗规则。
3
+
4
+ ---
5
+
6
+ ## 起点
7
+
8
+ ### 起点采集说明
9
+
10
+ 榜单清单与 URL 见 SKILL.md「起点采集目标」表。
11
+
12
+ 优先使用 `scripts/qidian-rank-scraper.js` 的默认 `--mode auto`。脚本先读取 `https://m.qidian.com` 移动端 SSR pageContext JSON,规避 PC 站风控页;移动端不可用时才回退到 CDP/PC 页面。输出头部会标注 `抓取方式:mobile-ssr` 或 `cdp-pc`。
13
+
14
+
15
+ ### 字段
16
+
17
+ 排名 | 书名 | 作者 | 题材 | 状态 | 签约 | 收费模式 | 字数(万字) | 总推荐 | 标签(详情页) | 最新更新(详情页) | 作品页链接 | 简介(详情页,截断100字)
18
+
19
+ ### 输出模板
20
+
21
+ ```markdown
22
+ # qidian · {榜单名称}
23
+ - 来源:{榜单URL}
24
+ - 抓取时间:{ISO 8601}
25
+ - 条目数:{N}
26
+
27
+ ---
28
+
29
+ ## #{排名} {书名}
30
+ *{作者} · {题材} · {状态} · {签约} · {免费/VIP} · {字数}万字 · {推荐数}总推荐*
31
+ **标签:** {标签}
32
+ **最新更新:** {YYYY-MM-DD HH:MM:SS} · {章节标题}
33
+
34
+ [作品页]({URL})
35
+
36
+ **简介**
37
+ {简介原文}
38
+ ```
39
+
40
+ ### 采集要点
41
+
42
+ 榜单页含:排名/书名/作者/题材/字数/推荐/签约/免费VIP。详情页需:标签/最新更新/简介。三江按周分组。
43
+
44
+ ---
45
+
46
+ ## 番茄小说
47
+
48
+ 榜单 URL 格式与参数说明见 SKILL.md「番茄采集目标」表。
49
+
50
+ ### 题材cat_id
51
+
52
+ 男频19个:西方奇幻(1141) / 东方仙侠(1140) / 科幻末世(8) / 都市日常(261) / 都市修真(124) / 都市高武(1014) / 历史古代(273) / 战神赘婿(27) / 都市种田(263) / 传统玄幻(258) / 历史脑洞(272) / 悬疑脑洞(539) / 都市脑洞(262) / 玄幻脑洞(257) / 悬疑灵异(751) / 抗战谍战(504) / 游戏体育(746) / 动漫衍生(718) / 男频衍生(1016)
53
+
54
+ 女频18个:古风世情(1139) / 科幻末世(8) / 游戏体育(746) / 女频衍生(1015) / 玄幻言情(248) / 种田(23) / 年代(79) / 现言脑洞(267) / 宫斗宅斗(246) / 悬疑脑洞(539) / 古言脑洞(253) / 快穿(24) / 青春甜宠(749) / 星光璀璨(745) / 女频悬疑(747) / 职场婚恋(750) / 豪门总裁(748) / 民国言情(1017)
55
+
56
+ ### 字段
57
+
58
+ 排名 | 书名(需详情页解码) | 作者(需详情页解码) | 题材(详情页 categoryV2) | 状态 | 在读(核心指标) | 字数 | 标签(简介内【】) | 最新更新 | bookId | 作品页链接 | 简介(截断100字)
59
+
60
+ > 番茄 SSR 详情页**没有数字评分**,故不输出评分。题材取详情页 `categoryV2`(转义 JSON 的首个 `Name`,如「西方奇幻」);标签取简介开头的 `【tag+tag+...】`(如「种田、慢热、西幻」),是题材细分的真实信号。
61
+
62
+ ### 输出模板
63
+
64
+ ```markdown
65
+ # 番茄 · {频道}{榜单名} · 全 {N} 题材
66
+ - 频道参数:channel={0女频/1男频},type={1新书榜/2阅读榜}
67
+ - 抓取时间:{ISO 8601}
68
+ - 标题解析:成功 {X} / 共 {Y}
69
+ - 数据质量:[OK / 标题解析异常 / 无数据]
70
+ - 每题材上限 ≈ {N}(cap≈20)
71
+
72
+ ---
73
+
74
+ ## {题材名称} — {N} 本
75
+
76
+ ### #{排名} {书名}
77
+ *{作者} · {题材} · {状态} · {在读数} 在读 · {字数}字*
78
+ **标签:** {标签1、标签2}
79
+ **最新更新:** {章节}
80
+ **bookId:** {bookId}
81
+
82
+ [作品页]({URL})
83
+
84
+ **简介**
85
+ {简介原文}
86
+ ```
87
+
88
+ > 标题/作者/题材/标签/简介均为可选字段:详情页拿到才输出。书名解码失败时书名显示 `(标题待解析)`,但 bookId 与作品页链接始终保留,便于人工回查。
89
+
90
+ ### 采集要点
91
+
92
+ 字体反爬:列表页 innerText 被自定义字体混淆,`scripts/fanqie-rank-scraper.js` 改从详情页 HTML(内嵌 JSON `bookName`/`author`/`abstract`/`categoryV2` + `<title>` + og:meta)多策略解码明文,规避字体反爬。流程:访问品类页 → 提取品类链接 → 逐品类取 `__INITIAL_STATE__` 列表 → 分批(每 5 本)请求详情页解码。单页上限约 20 本需滚动加载;`--top N` 可调每题材上限。
93
+
94
+ **故障排查(书名全是 `bookId:xxx` / `(标题待解析)`)**:
95
+ - 看文件头 `数据质量`:标 `[标题解析异常]` 说明详情页解码失败率高。
96
+ - 多为详情页结构变动或被登录/验证页拦截。在已登录的 Chrome 里手动打开任一 `https://fanqienovel.com/page/{bookId}` 确认页面正常、非验证页。
97
+ - 控制台若报 `CDP 无响应`,说明 Chrome/CDP 没起来或端口不对,按 browser-cdp skill 重新启动。确认正常后重采。
98
+
99
+ ---
100
+
101
+ ## 七猫
102
+
103
+ ### 榜单
104
+
105
+ 入口:qimao.com/paihang,男生榜/女生榜tab切换。类型:大热榜(日/月) / 新书榜 / 完结榜 / 收藏榜 / 更新榜
106
+
107
+ ### 字段
108
+
109
+ 排名 | 书名 | 作者 | 题材 | 分类标签 | 状态 | 字数(万字) | 热度(核心指标) | 最新更新 | 作品页链接 | 简介(截断100字)
110
+
111
+ ### 输出模板
112
+
113
+ ```markdown
114
+ # 七猫 · {男/女}频 · {榜单名称}
115
+ - 来源:qimao.com/paihang
116
+ - 抓取时间:{ISO 8601}
117
+ - 条目数:{N}
118
+
119
+ ---
120
+
121
+ ### #{排名} {书名}
122
+ *{作者} · {题材} · {分类标签} · {状态} · {字数}万字 · {热度}万热度*
123
+ **最新更新:** {时间} · {章节}
124
+
125
+ [作品页]({URL})
126
+
127
+ **简介**
128
+ {简介原文}
129
+ ```
130
+
131
+ ### 采集要点
132
+
133
+ 无明显反爬需滚动加载。男生榜/女生榜tab切换,大热榜有日/月切换。
134
+
135
+ ---
136
+
137
+ ## 晋江
138
+
139
+ ### 榜单URL
140
+
141
+ `jjwxc.net/topten.php?orderstr={榜单ID}&t={频道ID}`(t=0全站,各频道ID从页面获取)
142
+
143
+ | 榜单 | orderstr |
144
+ |------|----------|
145
+ | 收入金榜 | 12 |
146
+ | 月榜 | 7 |
147
+ | 季度榜 | 8 |
148
+ | 完结金榜 | 14 |
149
+ | 新手金榜 | 15 |
150
+ | 千字金榜 | 17 |
151
+
152
+ ### 字段
153
+
154
+ 频道 | 排名 | 书名 | 作者 | novelid | 收藏数(核心) | 营养液 | 积分 | 字数 | 状态 | 作品页链接
155
+
156
+ ### 输出模板
157
+
158
+ ```markdown
159
+ # 晋江 · {榜单名}
160
+ - 来源:{topten URL}
161
+ - 抓取时间:{ISO 8601}
162
+ - 频道数:{N} / 总条目数:{M}
163
+ - 详情采集:{命中收藏数} / {计划数}(每频道前 {top},上限 {limit})
164
+ - 数据质量:[OK / 详情解析异常·登录态缺失 / 仅列表-无核心指标]
165
+
166
+ ---
167
+
168
+ ## {频道名} — {N} 本
169
+
170
+ ### #{排名} {书名}
171
+ *{作者} · 收藏 {X} · 营养液 {Y} · 积分 {Z} · 字数 {W}字 · {状态}*
172
+ [作品页](https://www.jjwxc.net/onebook.php?novelid={id})
173
+ ```
174
+
175
+ ### 采集要点
176
+
177
+ 两步:① 列表页 `topten.php` 取频道分组 + 书名/作者,从书名 anchor 取 `novelid`(排除"X向《书名》投了Y"霸王票记录);② 进 `onebook.php?novelid=` 详情页补采核心指标。
178
+ - **编码**:晋江是 gb18030,详情页必须 `fetch+arrayBuffer+TextDecoder('gb18030')` 解码(同步 XHR 的 responseText 按 UTF-8 解码会乱码)。
179
+ - **字段来源**:详情页 `itemprop` 微数据——`collectedCount`(收藏)/`nutritionCount`(营养液)/`scoreCount`(积分)/`wordCount`(字数)/`updataStatus`(状态)。这些是公开指标,**无需登录**。
180
+ - **控量**:列表全量保留,仅每频道前 `--top` 本(受 `--detail-limit` 总量约束)补详情,避免对全站数百本逐一请求。
181
+
182
+ ---
183
+
184
+ ## 数据清洗
185
+
186
+ 通用:移除平台模板文本→简介超100字在句号处截断加`...`→空值标`[待补]`
187
+
188
+ | 平台 | 额外必填 |
189
+ |------|----------|
190
+ | 起点 | 题材、字数、总推荐 |
191
+ | 番茄 | 在读数 |
192
+ | 七猫 | 热度 |
193
+ | 晋江 | 收藏数、营养液(或积分)、字数 |
194
+
195
+ 最低采集量:主流平台15条,小平台10条。低于底线标`[数据稀疏]`。
196
+
197
+ ---
198
+
199
+ ## 批量采集
200
+
201
+ | 平台 | 默认组合 |
202
+ |------|----------|
203
+ | 起点 | 新人签约新书榜+签约作者新书榜前20+月票榜前20+畅销榜前20 |
204
+ | 番茄 | 男频阅读榜全题材+女频阅读榜全题材 |
205
+ | 七猫 | 男频大热榜日榜+女频大热榜日榜 |
206
+ | 晋江 | 收入金榜+月榜 |
207
+ | 全平台 | 起点+番茄+七猫默认组合 |