dsh-chapter-whale 0.0.0-stage → 0.4.3

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 (1174) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +216 -2
  3. package/RELEASE_STATUS.md +61 -0
  4. package/THIRD_PARTY_NOTICES.md +16 -0
  5. package/assets/chapter-whale-overview.png +0 -0
  6. package/assets/screenshots/01-automation.png +0 -0
  7. package/assets/screenshots/02-dashboard.png +0 -0
  8. package/assets/screenshots/03-free-channels.png +0 -0
  9. package/assets/screenshots/04-chapters.png +0 -0
  10. package/assets/screenshots/05-memory.png +0 -0
  11. package/assets/screenshots/06-creative-brief.png +0 -0
  12. package/assets/screenshots/07-model-settings.png +0 -0
  13. package/backend/fanqie_auto_publish/README.md +133 -0
  14. package/backend/fanqie_auto_publish/login.py +42 -0
  15. package/backend/fanqie_auto_publish/publication_safety.py +306 -0
  16. package/backend/fanqie_auto_publish/publish.py +1100 -0
  17. package/backend/fanqie_auto_publish/requirements.txt +2 -0
  18. package/backend/integration/README.md +72 -0
  19. package/backend/integration/__init__.py +2 -0
  20. package/backend/integration/bridge.py +1158 -0
  21. package/backend/integration/chapter_versions.py +706 -0
  22. package/backend/integration/character_state.py +435 -0
  23. package/backend/integration/context_budget.py +131 -0
  24. package/backend/integration/continuity.py +246 -0
  25. package/backend/integration/costs.py +652 -0
  26. package/backend/integration/credential_codec.py +40 -0
  27. package/backend/integration/daily_word_goal.py +92 -0
  28. package/backend/integration/editorial_recovery.py +71 -0
  29. package/backend/integration/editorial_release.py +158 -0
  30. package/backend/integration/failure_info.py +108 -0
  31. package/backend/integration/fallback_budget.py +88 -0
  32. package/backend/integration/free_channels.py +175 -0
  33. package/backend/integration/free_pool.py +179 -0
  34. package/backend/integration/length_policy.py +36 -0
  35. package/backend/integration/local_completion.py +511 -0
  36. package/backend/integration/memory_extraction.py +160 -0
  37. package/backend/integration/memory_library.py +798 -0
  38. package/backend/integration/model_roles.py +307 -0
  39. package/backend/integration/ofm_runtime.py +191 -0
  40. package/backend/integration/ofm_service.mjs +24 -0
  41. package/backend/integration/owned_service.py +44 -0
  42. package/backend/integration/planning_failover.py +102 -0
  43. package/backend/integration/planning_output.py +88 -0
  44. package/backend/integration/provider_circuit.py +33 -0
  45. package/backend/integration/provider_client.py +190 -0
  46. package/backend/integration/providers.py +221 -0
  47. package/backend/integration/quality_gate.py +249 -0
  48. package/backend/integration/quality_score.py +245 -0
  49. package/backend/integration/reasoning.py +26 -0
  50. package/backend/integration/recovery.py +237 -0
  51. package/backend/integration/resource_policy.py +81 -0
  52. package/backend/integration/retrieval_config.py +44 -0
  53. package/backend/integration/retrieval_health.py +46 -0
  54. package/backend/integration/retry_budget.py +76 -0
  55. package/backend/integration/revision_plan.py +414 -0
  56. package/backend/integration/revision_workflow.py +134 -0
  57. package/backend/integration/scene_writer.py +97 -0
  58. package/backend/integration/scenes.py +153 -0
  59. package/backend/integration/scheduler.py +917 -0
  60. package/backend/integration/secret_store.py +208 -0
  61. package/backend/integration/serial_delivery.py +363 -0
  62. package/backend/integration/serial_service.py +255 -0
  63. package/backend/integration/studio.py +383 -0
  64. package/backend/integration/style_profile.py +290 -0
  65. package/backend/integration/style_stats.py +138 -0
  66. package/backend/integration/ten_chapter_delivery.py +621 -0
  67. package/backend/integration/text_checks.py +56 -0
  68. package/backend/integration/version_history.py +231 -0
  69. package/backend/integration/watchdog.py +73 -0
  70. package/backend/integration/workflow.py +112 -0
  71. package/backend/integration/writer_runner.py +997 -0
  72. package/backend/manager/__init__.py +1 -0
  73. package/backend/manager/ai_tools.py +216 -0
  74. package/backend/manager/app.py +1338 -0
  75. package/backend/manager/audit_inventory.py +52 -0
  76. package/backend/manager/device_access.py +211 -0
  77. package/backend/manager/free_model_api.py +64 -0
  78. package/backend/manager/job_progress.py +18 -0
  79. package/backend/manager/provider_api.py +141 -0
  80. package/backend/manager/role_checks.py +126 -0
  81. package/backend/manager/runtime_health.py +48 -0
  82. package/backend/manager/static/app.js +402 -0
  83. package/backend/manager/static/costs.js +90 -0
  84. package/backend/manager/static/editorial.css +510 -0
  85. package/backend/manager/static/free-models.css +28 -0
  86. package/backend/manager/static/free-models.js +86 -0
  87. package/backend/manager/static/index.html +140 -0
  88. package/backend/manager/static/memory.js +58 -0
  89. package/backend/manager/static/ofm-channel-card.css +1 -0
  90. package/backend/manager/static/ofm-channel-card.js +17169 -0
  91. package/backend/manager/static/pair.html +27 -0
  92. package/backend/manager/static/pair.js +17 -0
  93. package/backend/manager/static/providers.css +86 -0
  94. package/backend/manager/static/providers.js +181 -0
  95. package/backend/manager/static/studio.css +243 -0
  96. package/backend/manager/static/style.css +28 -0
  97. package/backend/manager/worker.py +182 -0
  98. package/backend/vendor/ofm-source-lock.json +105 -0
  99. package/backend/vendor/our-free-model-source/LICENSE +21 -0
  100. package/backend/vendor/our-free-model-source/package.json +79 -0
  101. package/backend/vendor/our-free-model-source/packages/standalone/channels/business.mjs +69193 -0
  102. package/backend/vendor/our-free-model-source/packages/standalone/channels/contracts.mjs +37 -0
  103. package/backend/vendor/our-free-model-source/packages/standalone/channels/credentials.mjs +59 -0
  104. package/backend/vendor/our-free-model-source/packages/standalone/channels/images.mjs +44 -0
  105. package/backend/vendor/our-free-model-source/packages/standalone/channels/runtime.mjs +139 -0
  106. package/backend/vendor/our-free-model-source/packages/standalone/channels/worker.mjs +154 -0
  107. package/backend/vendor/our-free-model-source/packages/standalone/cli.mjs +56 -0
  108. package/backend/vendor/our-free-model-source/packages/standalone/eac.mjs +122 -0
  109. package/backend/vendor/our-free-model-source/packages/standalone/login-terminal.mjs +64 -0
  110. package/backend/vendor/our-free-model-source/packages/standalone/management.mjs +330 -0
  111. package/backend/vendor/our-free-model-source/packages/standalone/open-external.mjs +19 -0
  112. package/backend/vendor/our-free-model-source/packages/standalone/package.json +36 -0
  113. package/backend/vendor/our-free-model-source/packages/standalone/service.mjs +348 -0
  114. package/backend/vendor/our-free-model-source/packages/standalone/vite.config.mjs +22 -0
  115. package/backend/vendor/our-free-model-source/packages/standalone/web/_ofm-provider-list-D9WP3xjp.js +1 -0
  116. package/backend/vendor/our-free-model-source/packages/standalone/web/app.css +1 -0
  117. package/backend/vendor/our-free-model-source/packages/standalone/web/app.js +13 -0
  118. package/backend/vendor/our-free-model-source/packages/standalone/web/assets.json +12 -0
  119. package/backend/vendor/our-free-model-source/packages/standalone/web/channels-DtR2ayCL.js +414 -0
  120. package/backend/vendor/our-free-model-source/packages/standalone/web/channels-kEN3gKhj.js +1029 -0
  121. package/backend/vendor/our-free-model-source/packages/standalone/web/index.html +12 -0
  122. package/backend/vendor/our-free-model-source/packages/standalone/web/models-ishsHIe7.js +1 -0
  123. package/backend/vendor/our-free-model-source/packages/standalone/web/search-RZVy3Eoo.js +1 -0
  124. package/backend/vendor/our-free-model-source/packages/standalone/web/settings-DYjyfDI2.js +1 -0
  125. package/backend/vendor/our-free-model-source/packages/standalone/web/splash.html +324 -0
  126. package/backend/vendor/our-free-model-source/packages/standalone/web/usage-BOibUWax.js +1 -0
  127. package/backend/vendor/our-free-model-source/packages/standalone/web/visibility-data-9WWAmLOB.js +1 -0
  128. package/backend/vendor/our-free-model-source/packages/standalone/web/x-CzfajR1e.js +1 -0
  129. package/backend/vendor/our-free-model-source/src/adapter.js +829 -0
  130. package/backend/vendor/our-free-model-source/src/aggregate.js +727 -0
  131. package/backend/vendor/our-free-model-source/src/anthropic.js +834 -0
  132. package/backend/vendor/our-free-model-source/src/catalog.js +605 -0
  133. package/backend/vendor/our-free-model-source/src/chan-relay.js +193 -0
  134. package/backend/vendor/our-free-model-source/src/channel.js +40 -0
  135. package/backend/vendor/our-free-model-source/src/combos.js +179 -0
  136. package/backend/vendor/our-free-model-source/src/core/completion.js +191 -0
  137. package/backend/vendor/our-free-model-source/src/core/runtime.js +391 -0
  138. package/backend/vendor/our-free-model-source/src/core/stats.js +98 -0
  139. package/backend/vendor/our-free-model-source/src/deferred-response.js +44 -0
  140. package/backend/vendor/our-free-model-source/src/eac-login.js +115 -0
  141. package/backend/vendor/our-free-model-source/src/eac-user.js +83 -0
  142. package/backend/vendor/our-free-model-source/src/eac.js +276 -0
  143. package/backend/vendor/our-free-model-source/src/effort.js +280 -0
  144. package/backend/vendor/our-free-model-source/src/egress.js +842 -0
  145. package/backend/vendor/our-free-model-source/src/failure.js +39 -0
  146. package/backend/vendor/our-free-model-source/src/feed.js +310 -0
  147. package/backend/vendor/our-free-model-source/src/forward.js +1328 -0
  148. package/backend/vendor/our-free-model-source/src/http.js +581 -0
  149. package/backend/vendor/our-free-model-source/src/image-pricing.js +12 -0
  150. package/backend/vendor/our-free-model-source/src/kilo.js +168 -0
  151. package/backend/vendor/our-free-model-source/src/local-optimize.js +446 -0
  152. package/backend/vendor/our-free-model-source/src/messages.js +429 -0
  153. package/backend/vendor/our-free-model-source/src/open-external.js +35 -0
  154. package/backend/vendor/our-free-model-source/src/picks.js +197 -0
  155. package/backend/vendor/our-free-model-source/src/probe.js +236 -0
  156. package/backend/vendor/our-free-model-source/src/providers/index.js +215 -0
  157. package/backend/vendor/our-free-model-source/src/providers/registry.json +4927 -0
  158. package/backend/vendor/our-free-model-source/src/push.js +92 -0
  159. package/backend/vendor/our-free-model-source/src/recovery.js +131 -0
  160. package/backend/vendor/our-free-model-source/src/reload.js +307 -0
  161. package/backend/vendor/our-free-model-source/src/route/classify.js +542 -0
  162. package/backend/vendor/our-free-model-source/src/sponsor.js +209 -0
  163. package/backend/vendor/our-free-model-source/src/store.js +555 -0
  164. package/backend/vendor/our-free-model-source/src/stream.js +540 -0
  165. package/backend/vendor/our-free-model-source/src/token-saver/index.js +151 -0
  166. package/backend/vendor/our-free-model-source/src/token-saver/inject.js +434 -0
  167. package/backend/vendor/our-free-model-source/src/token-saver/prompts.js +239 -0
  168. package/backend/vendor/our-free-model-source/src/token-saver/rtk/applyFilter.js +39 -0
  169. package/backend/vendor/our-free-model-source/src/token-saver/rtk/autodetect.js +171 -0
  170. package/backend/vendor/our-free-model-source/src/token-saver/rtk/constants.js +142 -0
  171. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/buildOutput.js +142 -0
  172. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/dedupLog.js +58 -0
  173. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/find.js +64 -0
  174. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitDiff.js +123 -0
  175. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitLog.js +114 -0
  176. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitStatus.js +128 -0
  177. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/grep.js +52 -0
  178. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/ls.js +103 -0
  179. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/readNumbered.js +37 -0
  180. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/searchList.js +64 -0
  181. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/smartTruncate.js +27 -0
  182. package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/tree.js +42 -0
  183. package/backend/vendor/our-free-model-source/src/token-saver/rtk/hitLine.js +83 -0
  184. package/backend/vendor/our-free-model-source/src/token-saver/rtk/index.js +384 -0
  185. package/backend/vendor/our-free-model-source/src/token-saver/rtk/registry.js +57 -0
  186. package/backend/vendor/our-free-model-source/src/trust.js +184 -0
  187. package/backend/vendor/our-free-model-source/src/updater.js +1034 -0
  188. package/backend/vendor/our-free-model-source/src/upstream.js +591 -0
  189. package/backend/vendor/our-free-model-source/src/vault-anchor.js +2 -0
  190. package/backend/vendor/our-free-model-source/src/vault-data.js +3 -0
  191. package/backend/vendor/our-free-model-source/src/vault.js +213 -0
  192. package/backend/vendor/our-free-model-source/vendor/channel-pack/LICENSE +21 -0
  193. package/backend/vendor/our-free-model-source/vendor/channel-pack/qoder-auth-wasm.wasm +0 -0
  194. package/backend/vendor/our-free-model-source/vendor/dsh-std/LICENSE +21 -0
  195. package/backend/webnovel-writer/.claude/agents/anti-ai-detector.md +182 -0
  196. package/backend/webnovel-writer/.claude/agents/consistency-checker.md +179 -0
  197. package/backend/webnovel-writer/.claude/agents/context-agent.md +350 -0
  198. package/backend/webnovel-writer/.claude/agents/continuity-checker.md +254 -0
  199. package/backend/webnovel-writer/.claude/agents/data-agent.md +436 -0
  200. package/backend/webnovel-writer/.claude/agents/dialogue-reality-enforcer.md +357 -0
  201. package/backend/webnovel-writer/.claude/agents/high-point-checker.md +145 -0
  202. package/backend/webnovel-writer/.claude/agents/ooc-checker.md +217 -0
  203. package/backend/webnovel-writer/.claude/agents/pacing-checker.md +216 -0
  204. package/backend/webnovel-writer/.claude/genres/dark/dark-plot-patterns.md +105 -0
  205. package/backend/webnovel-writer/.claude/genres/dark/power-struggle.md +108 -0
  206. package/backend/webnovel-writer/.claude/genres/dark/survival-cost.md +98 -0
  207. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/character-archetypes.md +582 -0
  208. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/emotional-tension.md +578 -0
  209. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/plot-templates.md +213 -0
  210. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/romance-pacing.md +574 -0
  211. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/romance-tropes.md +528 -0
  212. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/sweet-moments.md +620 -0
  213. package/backend/webnovel-writer/.claude/genres/dog-blood-romance/torture-points.md +612 -0
  214. package/backend/webnovel-writer/.claude/genres/period-drama/ancient-dialogue.md +288 -0
  215. package/backend/webnovel-writer/.claude/genres/period-drama/character-design.md +268 -0
  216. package/backend/webnovel-writer/.claude/genres/period-drama/historical-setting.md +278 -0
  217. package/backend/webnovel-writer/.claude/genres/period-drama/palace-intrigue.md +268 -0
  218. package/backend/webnovel-writer/.claude/genres/period-drama/plot-patterns.md +276 -0
  219. package/backend/webnovel-writer/.claude/genres/realistic/character-depth.md +234 -0
  220. package/backend/webnovel-writer/.claude/genres/realistic/dialogue-authenticity.md +284 -0
  221. package/backend/webnovel-writer/.claude/genres/realistic/plot-logic.md +273 -0
  222. package/backend/webnovel-writer/.claude/genres/realistic/reality-anchoring.md +229 -0
  223. package/backend/webnovel-writer/.claude/genres/realistic/social-issues.md +232 -0
  224. package/backend/webnovel-writer/.claude/genres/rules-mystery/clue-design.md +524 -0
  225. package/backend/webnovel-writer/.claude/genres/rules-mystery/core-elements.md +431 -0
  226. package/backend/webnovel-writer/.claude/genres/rules-mystery/detective-design.md +560 -0
  227. package/backend/webnovel-writer/.claude/genres/rules-mystery/revelation-design.md +472 -0
  228. package/backend/webnovel-writer/.claude/genres/rules-mystery/structure-pacing.md +520 -0
  229. package/backend/webnovel-writer/.claude/genres/rules-mystery/suspect-management.md +497 -0
  230. package/backend/webnovel-writer/.claude/genres/rules-mystery/trick-design.md +507 -0
  231. package/backend/webnovel-writer/.claude/genres/xuanhuan/cultivation-levels.md +476 -0
  232. package/backend/webnovel-writer/.claude/genres/xuanhuan/power-systems.md +373 -0
  233. package/backend/webnovel-writer/.claude/genres/xuanhuan/xuanhuan-cool-points.md +672 -0
  234. package/backend/webnovel-writer/.claude/genres/xuanhuan/xuanhuan-plot-patterns.md +547 -0
  235. package/backend/webnovel-writer/.claude/genres/zhihu-short/character-quick-build.md +190 -0
  236. package/backend/webnovel-writer/.claude/genres/zhihu-short/emotional-peaks.md +236 -0
  237. package/backend/webnovel-writer/.claude/genres/zhihu-short/ending-patterns.md +217 -0
  238. package/backend/webnovel-writer/.claude/genres/zhihu-short/genre-templates.md +224 -0
  239. package/backend/webnovel-writer/.claude/genres/zhihu-short/hook-techniques.md +151 -0
  240. package/backend/webnovel-writer/.claude/genres/zhihu-short/pacing-rhythm.md +190 -0
  241. package/backend/webnovel-writer/.claude/genres/zhihu-short/plot-compression.md +207 -0
  242. package/backend/webnovel-writer/.claude/references/entity-management-spec.md +296 -0
  243. package/backend/webnovel-writer/.claude/scripts/__init__.py +19 -0
  244. package/backend/webnovel-writer/.claude/scripts/archive_manager.py +592 -0
  245. package/backend/webnovel-writer/.claude/scripts/backup_manager.py +485 -0
  246. package/backend/webnovel-writer/.claude/scripts/chapter_paths.py +84 -0
  247. package/backend/webnovel-writer/.claude/scripts/context_pack_builder.py +514 -0
  248. package/backend/webnovel-writer/.claude/scripts/data_modules/__init__.py +50 -0
  249. package/backend/webnovel-writer/.claude/scripts/data_modules/api_client.py +628 -0
  250. package/backend/webnovel-writer/.claude/scripts/data_modules/config.py +268 -0
  251. package/backend/webnovel-writer/.claude/scripts/data_modules/entity_linker.py +255 -0
  252. package/backend/webnovel-writer/.claude/scripts/data_modules/index_manager.py +1209 -0
  253. package/backend/webnovel-writer/.claude/scripts/data_modules/migrate_state_to_sqlite.py +361 -0
  254. package/backend/webnovel-writer/.claude/scripts/data_modules/rag_adapter.py +651 -0
  255. package/backend/webnovel-writer/.claude/scripts/data_modules/sql_state_manager.py +545 -0
  256. package/backend/webnovel-writer/.claude/scripts/data_modules/state_manager.py +1257 -0
  257. package/backend/webnovel-writer/.claude/scripts/data_modules/style_sampler.py +500 -0
  258. package/backend/webnovel-writer/.claude/scripts/data_modules/tests/__init__.py +1 -0
  259. package/backend/webnovel-writer/.claude/scripts/extract_chapter_context.py +227 -0
  260. package/backend/webnovel-writer/.claude/scripts/golden_three_checker.py +570 -0
  261. package/backend/webnovel-writer/.claude/scripts/init_project.py +585 -0
  262. package/backend/webnovel-writer/.claude/scripts/project_locator.py +94 -0
  263. package/backend/webnovel-writer/.claude/scripts/requirements.txt +9 -0
  264. package/backend/webnovel-writer/.claude/scripts/security_utils.py +589 -0
  265. package/backend/webnovel-writer/.claude/scripts/status_reporter.py +985 -0
  266. package/backend/webnovel-writer/.claude/scripts/token_budget_report.md +120 -0
  267. package/backend/webnovel-writer/.claude/scripts/update_state.py +691 -0
  268. package/backend/webnovel-writer/.claude/scripts/workflow_manager.py +504 -0
  269. package/backend/webnovel-writer/.claude/skills/webnovel-init/SKILL.md +178 -0
  270. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/creative-combination.md +511 -0
  271. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/inspiration-collection.md +298 -0
  272. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/market-positioning.md +421 -0
  273. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/selling-points.md +684 -0
  274. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/genre-tropes.md +183 -0
  275. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/system-data-flow.md +43 -0
  276. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/character-design.md +111 -0
  277. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/faction-systems.md +179 -0
  278. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/power-systems.md +160 -0
  279. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/setting-consistency.md +215 -0
  280. package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/world-rules.md +86 -0
  281. package/backend/webnovel-writer/.claude/skills/webnovel-plan/SKILL.md +155 -0
  282. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/cool-points-guide.md +312 -0
  283. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/chapter-planning.md +295 -0
  284. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/conflict-design.md +277 -0
  285. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/outline-structure.md +210 -0
  286. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/plot-frameworks.md +240 -0
  287. package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/strand-weave-pattern.md +106 -0
  288. package/backend/webnovel-writer/.claude/skills/webnovel-query/SKILL.md +151 -0
  289. package/backend/webnovel-writer/.claude/skills/webnovel-query/references/advanced/foreshadowing.md +120 -0
  290. package/backend/webnovel-writer/.claude/skills/webnovel-query/references/system-data-flow.md +336 -0
  291. package/backend/webnovel-writer/.claude/skills/webnovel-query/references/tag-specification.md +155 -0
  292. package/backend/webnovel-writer/.claude/skills/webnovel-resume/SKILL.md +165 -0
  293. package/backend/webnovel-writer/.claude/skills/webnovel-resume/references/system-data-flow.md +43 -0
  294. package/backend/webnovel-writer/.claude/skills/webnovel-resume/references/workflow-resume.md +139 -0
  295. package/backend/webnovel-writer/.claude/skills/webnovel-review/SKILL.md +139 -0
  296. package/backend/webnovel-writer/.claude/skills/webnovel-review/references/common-mistakes.md +96 -0
  297. package/backend/webnovel-writer/.claude/skills/webnovel-review/references/cool-points-guide.md +312 -0
  298. package/backend/webnovel-writer/.claude/skills/webnovel-review/references/core-constraints.md +75 -0
  299. package/backend/webnovel-writer/.claude/skills/webnovel-review/references/pacing-control.md +129 -0
  300. package/backend/webnovel-writer/.claude/skills/webnovel-review/references/strand-weave-pattern.md +106 -0
  301. package/backend/webnovel-writer/.claude/skills/webnovel-write/SKILL.md +524 -0
  302. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/chapter-hard-constraints.md +19 -0
  303. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/combat-scenes.md +18 -0
  304. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/continuity-summary.md +33 -0
  305. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/desire-description.md +314 -0
  306. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/dialogue-writing.md +13 -0
  307. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/emotion-psychology.md +13 -0
  308. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/examples.md +55 -0
  309. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/extract-state.md +126 -0
  310. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/genre-writer.md +179 -0
  311. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/opening-three.md +18 -0
  312. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/outline-master.md +59 -0
  313. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/outline-polish.md +39 -0
  314. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/outline-rewrite.md +70 -0
  315. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/outline-volume.md +89 -0
  316. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/polish-guide.md +349 -0
  317. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/polish.md +47 -0
  318. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/review.md +31 -0
  319. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/scene-description.md +14 -0
  320. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/substyle-writer.md +91 -0
  321. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/typesetting.md +60 -0
  322. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/writer-base.md +76 -0
  323. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//344/272/211/351/234/270/346/265/201/writing-user-prompt.md +92 -0
  324. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/chapter-hard-constraints.md +19 -0
  325. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/combat-scenes.md +18 -0
  326. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/continuity-summary.md +33 -0
  327. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/desire-description.md +314 -0
  328. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/dialogue-writing.md +13 -0
  329. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/emotion-psychology.md +13 -0
  330. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/examples.md +57 -0
  331. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/extract-state.md +126 -0
  332. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/genre-writer.md +179 -0
  333. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/opening-three.md +18 -0
  334. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/outline-master.md +59 -0
  335. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/outline-polish.md +39 -0
  336. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/outline-rewrite.md +70 -0
  337. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/outline-volume.md +89 -0
  338. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/polish-guide.md +349 -0
  339. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/polish.md +47 -0
  340. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/review.md +31 -0
  341. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/scene-description.md +14 -0
  342. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/substyle-writer.md +101 -0
  343. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/typesetting.md +60 -0
  344. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/writer-base.md +76 -0
  345. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//346/234/235/345/240/202/346/235/203/350/260/213/346/265/201/writing-user-prompt.md +92 -0
  346. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/chapter-hard-constraints.md +19 -0
  347. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/combat-scenes.md +18 -0
  348. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/continuity-summary.md +33 -0
  349. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/desire-description.md +314 -0
  350. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/dialogue-writing.md +13 -0
  351. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/emotion-psychology.md +13 -0
  352. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/examples.md +61 -0
  353. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/extract-state.md +126 -0
  354. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/genre-writer.md +179 -0
  355. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/opening-three.md +18 -0
  356. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/outline-master.md +59 -0
  357. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/outline-polish.md +39 -0
  358. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/outline-rewrite.md +70 -0
  359. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/outline-volume.md +89 -0
  360. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/polish-guide.md +349 -0
  361. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/polish.md +47 -0
  362. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/review.md +31 -0
  363. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/scene-description.md +14 -0
  364. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/substyle-writer.md +87 -0
  365. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/typesetting.md +60 -0
  366. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/writer-base.md +76 -0
  367. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/alt-history//347/247/215/347/224/260/346/265/201/writing-user-prompt.md +92 -0
  368. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/chapter-hard-constraints.md +19 -0
  369. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/combat-scenes.md +18 -0
  370. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/continuity-summary.md +33 -0
  371. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/desire-description.md +314 -0
  372. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/dialogue-writing.md +13 -0
  373. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/emotion-psychology.md +13 -0
  374. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/examples.md +57 -0
  375. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/extract-state.md +126 -0
  376. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/genre-writer.md +191 -0
  377. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/opening-three.md +18 -0
  378. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/outline-master.md +59 -0
  379. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/outline-polish.md +39 -0
  380. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/outline-rewrite.md +70 -0
  381. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/outline-volume.md +89 -0
  382. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/polish-guide.md +349 -0
  383. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/polish.md +47 -0
  384. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/review.md +31 -0
  385. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/scene-description.md +14 -0
  386. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/substyle-writer.md +110 -0
  387. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/typesetting.md +60 -0
  388. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/writer-base.md +76 -0
  389. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//344/270/247/345/260/270/346/261/202/347/224/237/346/265/201/writing-user-prompt.md +92 -0
  390. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/chapter-hard-constraints.md +19 -0
  391. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/combat-scenes.md +18 -0
  392. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/continuity-summary.md +33 -0
  393. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/desire-description.md +314 -0
  394. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/dialogue-writing.md +13 -0
  395. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/emotion-psychology.md +13 -0
  396. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/examples.md +51 -0
  397. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/extract-state.md +126 -0
  398. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/genre-writer.md +191 -0
  399. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/opening-three.md +18 -0
  400. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/outline-master.md +59 -0
  401. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/outline-polish.md +39 -0
  402. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/outline-rewrite.md +70 -0
  403. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/outline-volume.md +89 -0
  404. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/polish-guide.md +349 -0
  405. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/polish.md +47 -0
  406. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/review.md +31 -0
  407. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/scene-description.md +14 -0
  408. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/substyle-writer.md +98 -0
  409. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/typesetting.md +60 -0
  410. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/writer-base.md +76 -0
  411. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/writing-user-prompt.md +92 -0
  412. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/chapter-hard-constraints.md +19 -0
  413. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/combat-scenes.md +18 -0
  414. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/continuity-summary.md +33 -0
  415. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/desire-description.md +314 -0
  416. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/dialogue-writing.md +13 -0
  417. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/emotion-psychology.md +13 -0
  418. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/examples.md +59 -0
  419. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/extract-state.md +126 -0
  420. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/genre-writer.md +191 -0
  421. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/opening-three.md +18 -0
  422. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/outline-master.md +59 -0
  423. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/outline-polish.md +39 -0
  424. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/outline-rewrite.md +70 -0
  425. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/outline-volume.md +89 -0
  426. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/polish-guide.md +349 -0
  427. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/polish.md +47 -0
  428. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/review.md +31 -0
  429. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/scene-description.md +14 -0
  430. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/substyle-writer.md +105 -0
  431. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/typesetting.md +60 -0
  432. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/writer-base.md +76 -0
  433. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/244/251/347/201/276/346/261/202/347/224/237/346/265/201/writing-user-prompt.md +92 -0
  434. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/chapter-hard-constraints.md +19 -0
  435. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/combat-scenes.md +18 -0
  436. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/continuity-summary.md +33 -0
  437. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/desire-description.md +315 -0
  438. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/dialogue-writing.md +13 -0
  439. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/emotion-psychology.md +13 -0
  440. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/examples.md +55 -0
  441. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/extract-state.md +126 -0
  442. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/genre-writer.md +120 -0
  443. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/opening-three.md +18 -0
  444. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/outline-master.md +59 -0
  445. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/outline-polish.md +39 -0
  446. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/outline-rewrite.md +70 -0
  447. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/outline-volume.md +89 -0
  448. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/polish-guide.md +350 -0
  449. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/polish.md +47 -0
  450. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/review.md +31 -0
  451. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/scene-description.md +14 -0
  452. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/substyle-writer.md +160 -0
  453. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/typesetting.md +60 -0
  454. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/writer-base.md +76 -0
  455. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/234/253/350/267/257/346/261/202/347/224/237/writing-user-prompt.md +92 -0
  456. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/chapter-hard-constraints.md +19 -0
  457. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/combat-scenes.md +18 -0
  458. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/continuity-summary.md +33 -0
  459. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/desire-description.md +315 -0
  460. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/dialogue-writing.md +13 -0
  461. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/emotion-psychology.md +13 -0
  462. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/examples.md +55 -0
  463. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/extract-state.md +126 -0
  464. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/genre-writer.md +120 -0
  465. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/opening-three.md +18 -0
  466. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/outline-master.md +59 -0
  467. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/outline-polish.md +39 -0
  468. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/outline-rewrite.md +70 -0
  469. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/outline-volume.md +89 -0
  470. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/polish-guide.md +350 -0
  471. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/polish.md +47 -0
  472. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/review.md +31 -0
  473. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/scene-description.md +14 -0
  474. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/substyle-writer.md +163 -0
  475. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/typesetting.md +60 -0
  476. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/writer-base.md +76 -0
  477. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//346/235/203/350/260/213/345/200/276/350/275/247/writing-user-prompt.md +92 -0
  478. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/chapter-hard-constraints.md +19 -0
  479. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/combat-scenes.md +18 -0
  480. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/continuity-summary.md +33 -0
  481. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/desire-description.md +315 -0
  482. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/dialogue-writing.md +13 -0
  483. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/emotion-psychology.md +13 -0
  484. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/examples.md +51 -0
  485. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/extract-state.md +126 -0
  486. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/genre-writer.md +120 -0
  487. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/opening-three.md +18 -0
  488. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/outline-master.md +59 -0
  489. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/outline-polish.md +39 -0
  490. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/outline-rewrite.md +70 -0
  491. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/outline-volume.md +89 -0
  492. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/polish-guide.md +350 -0
  493. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/polish.md +47 -0
  494. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/review.md +31 -0
  495. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/scene-description.md +14 -0
  496. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/substyle-writer.md +144 -0
  497. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/typesetting.md +60 -0
  498. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/writer-base.md +76 -0
  499. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dark//351/273/221/346/232/227/344/277/256/344/273/231/writing-user-prompt.md +92 -0
  500. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/chapter-hard-constraints.md +19 -0
  501. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/combat-scenes.md +18 -0
  502. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/continuity-summary.md +33 -0
  503. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/desire-description.md +314 -0
  504. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/dialogue-writing.md +13 -0
  505. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/emotion-psychology.md +13 -0
  506. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/examples.md +61 -0
  507. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/extract-state.md +126 -0
  508. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/genre-writer.md +174 -0
  509. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/opening-three.md +18 -0
  510. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/outline-master.md +59 -0
  511. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/outline-polish.md +39 -0
  512. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/outline-rewrite.md +70 -0
  513. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/outline-volume.md +89 -0
  514. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/polish-guide.md +349 -0
  515. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/polish.md +47 -0
  516. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/review.md +31 -0
  517. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/scene-description.md +14 -0
  518. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/substyle-writer.md +109 -0
  519. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/typesetting.md +60 -0
  520. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/writer-base.md +76 -0
  521. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/261/252/351/227/250/344/277/256/347/275/227/345/234/272/writing-user-prompt.md +92 -0
  522. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/chapter-hard-constraints.md +19 -0
  523. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/combat-scenes.md +18 -0
  524. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/continuity-summary.md +33 -0
  525. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/desire-description.md +314 -0
  526. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/dialogue-writing.md +13 -0
  527. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/emotion-psychology.md +13 -0
  528. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/examples.md +65 -0
  529. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/extract-state.md +126 -0
  530. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/genre-writer.md +174 -0
  531. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/opening-three.md +18 -0
  532. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/outline-master.md +59 -0
  533. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/outline-polish.md +39 -0
  534. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/outline-rewrite.md +70 -0
  535. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/outline-volume.md +89 -0
  536. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/polish-guide.md +349 -0
  537. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/polish.md +47 -0
  538. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/review.md +31 -0
  539. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/scene-description.md +14 -0
  540. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/substyle-writer.md +110 -0
  541. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/typesetting.md +60 -0
  542. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/writer-base.md +76 -0
  543. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272/writing-user-prompt.md +92 -0
  544. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/chapter-hard-constraints.md +19 -0
  545. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/combat-scenes.md +18 -0
  546. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/continuity-summary.md +33 -0
  547. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/desire-description.md +314 -0
  548. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/dialogue-writing.md +13 -0
  549. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/emotion-psychology.md +13 -0
  550. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/examples.md +83 -0
  551. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/extract-state.md +126 -0
  552. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/genre-writer.md +174 -0
  553. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/opening-three.md +18 -0
  554. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/outline-master.md +59 -0
  555. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/outline-polish.md +39 -0
  556. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/outline-rewrite.md +70 -0
  557. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/outline-volume.md +89 -0
  558. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/polish-guide.md +349 -0
  559. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/polish.md +47 -0
  560. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/review.md +31 -0
  561. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/scene-description.md +14 -0
  562. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/substyle-writer.md +119 -0
  563. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/typesetting.md +60 -0
  564. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/writer-base.md +76 -0
  565. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/dog-blood-romance//351/253/230/347/224/234/346/213/211/346/211/257/writing-user-prompt.md +92 -0
  566. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/chapter-hard-constraints.md +19 -0
  567. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/combat-scenes.md +18 -0
  568. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/continuity-summary.md +33 -0
  569. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/desire-description.md +315 -0
  570. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/dialogue-writing.md +13 -0
  571. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/emotion-psychology.md +13 -0
  572. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/examples.md +53 -0
  573. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/extract-state.md +126 -0
  574. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/genre-writer.md +176 -0
  575. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/opening-three.md +18 -0
  576. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/outline-master.md +59 -0
  577. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/outline-polish.md +39 -0
  578. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/outline-rewrite.md +70 -0
  579. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/outline-volume.md +89 -0
  580. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/polish-guide.md +350 -0
  581. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/polish.md +47 -0
  582. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/review.md +31 -0
  583. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/scene-description.md +14 -0
  584. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/substyle-writer.md +82 -0
  585. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/typesetting.md +60 -0
  586. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/writer-base.md +76 -0
  587. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//344/271/241/351/207/216/347/246/201/345/277/214/346/265/201/writing-user-prompt.md +92 -0
  588. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/chapter-hard-constraints.md +19 -0
  589. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/combat-scenes.md +18 -0
  590. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/continuity-summary.md +33 -0
  591. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/desire-description.md +315 -0
  592. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/dialogue-writing.md +13 -0
  593. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/emotion-psychology.md +13 -0
  594. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/examples.md +59 -0
  595. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/extract-state.md +126 -0
  596. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/genre-writer.md +176 -0
  597. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/opening-three.md +18 -0
  598. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/outline-master.md +59 -0
  599. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/outline-polish.md +39 -0
  600. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/outline-rewrite.md +70 -0
  601. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/outline-volume.md +89 -0
  602. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/polish-guide.md +350 -0
  603. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/polish.md +47 -0
  604. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/review.md +31 -0
  605. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/scene-description.md +14 -0
  606. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/substyle-writer.md +94 -0
  607. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/typesetting.md +60 -0
  608. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/writer-base.md +76 -0
  609. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//347/231/275/344/272/213/346/211/213/350/211/272/346/265/201/writing-user-prompt.md +92 -0
  610. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/chapter-hard-constraints.md +19 -0
  611. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/combat-scenes.md +18 -0
  612. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/continuity-summary.md +33 -0
  613. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/desire-description.md +315 -0
  614. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/dialogue-writing.md +13 -0
  615. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/emotion-psychology.md +13 -0
  616. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/examples.md +57 -0
  617. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/extract-state.md +126 -0
  618. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/genre-writer.md +176 -0
  619. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/opening-three.md +18 -0
  620. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/outline-master.md +59 -0
  621. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/outline-polish.md +39 -0
  622. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/outline-rewrite.md +70 -0
  623. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/outline-volume.md +89 -0
  624. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/polish-guide.md +350 -0
  625. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/polish.md +47 -0
  626. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/review.md +31 -0
  627. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/scene-description.md +14 -0
  628. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/substyle-writer.md +95 -0
  629. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/typesetting.md +60 -0
  630. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/writer-base.md +76 -0
  631. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/folk-horror//351/251/261/351/202/252/344/270/226/345/256/266/346/265/201/writing-user-prompt.md +92 -0
  632. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/chapter-hard-constraints.md +19 -0
  633. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/combat-scenes.md +18 -0
  634. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/continuity-summary.md +33 -0
  635. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/desire-description.md +315 -0
  636. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/dialogue-writing.md +13 -0
  637. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/emotion-psychology.md +13 -0
  638. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/examples.md +51 -0
  639. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/extract-state.md +126 -0
  640. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/genre-writer.md +179 -0
  641. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/opening-three.md +18 -0
  642. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/outline-master.md +59 -0
  643. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/outline-polish.md +39 -0
  644. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/outline-rewrite.md +70 -0
  645. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/outline-volume.md +89 -0
  646. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/polish-guide.md +350 -0
  647. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/polish.md +47 -0
  648. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/review.md +31 -0
  649. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/scene-description.md +14 -0
  650. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/substyle-writer.md +94 -0
  651. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/typesetting.md +60 -0
  652. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/writer-base.md +76 -0
  653. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//345/205/213/347/263/273/347/224/237/345/255/230/346/265/201/writing-user-prompt.md +92 -0
  654. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/chapter-hard-constraints.md +19 -0
  655. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/combat-scenes.md +18 -0
  656. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/continuity-summary.md +33 -0
  657. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/desire-description.md +315 -0
  658. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/dialogue-writing.md +13 -0
  659. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/emotion-psychology.md +13 -0
  660. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/examples.md +53 -0
  661. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/extract-state.md +126 -0
  662. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/genre-writer.md +179 -0
  663. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/opening-three.md +18 -0
  664. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/outline-master.md +59 -0
  665. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/outline-polish.md +39 -0
  666. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/outline-rewrite.md +70 -0
  667. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/outline-volume.md +89 -0
  668. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/polish-guide.md +350 -0
  669. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/polish.md +47 -0
  670. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/review.md +31 -0
  671. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/scene-description.md +14 -0
  672. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/substyle-writer.md +90 -0
  673. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/typesetting.md +60 -0
  674. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/writer-base.md +76 -0
  675. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//347/245/236/347/247/230/345/255/246/350/260/203/346/237/245/346/265/201/writing-user-prompt.md +92 -0
  676. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/chapter-hard-constraints.md +19 -0
  677. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/combat-scenes.md +18 -0
  678. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/continuity-summary.md +33 -0
  679. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/desire-description.md +315 -0
  680. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/dialogue-writing.md +13 -0
  681. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/emotion-psychology.md +13 -0
  682. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/examples.md +53 -0
  683. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/extract-state.md +126 -0
  684. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/genre-writer.md +179 -0
  685. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/opening-three.md +18 -0
  686. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/outline-master.md +59 -0
  687. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/outline-polish.md +39 -0
  688. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/outline-rewrite.md +70 -0
  689. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/outline-volume.md +89 -0
  690. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/polish-guide.md +350 -0
  691. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/polish.md +47 -0
  692. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/review.md +31 -0
  693. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/scene-description.md +14 -0
  694. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/substyle-writer.md +86 -0
  695. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/typesetting.md +60 -0
  696. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/writer-base.md +76 -0
  697. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/mystic-sequence//351/200/224/345/276/204/346/231/213/345/215/207/346/265/201/writing-user-prompt.md +92 -0
  698. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/chapter-hard-constraints.md +19 -0
  699. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/combat-scenes.md +18 -0
  700. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/continuity-summary.md +33 -0
  701. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/desire-description.md +314 -0
  702. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/dialogue-writing.md +13 -0
  703. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/emotion-psychology.md +13 -0
  704. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/examples.md +61 -0
  705. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/extract-state.md +126 -0
  706. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/genre-writer.md +171 -0
  707. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/opening-three.md +18 -0
  708. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/outline-master.md +59 -0
  709. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/outline-polish.md +39 -0
  710. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/outline-rewrite.md +70 -0
  711. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/outline-volume.md +89 -0
  712. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/polish-guide.md +349 -0
  713. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/polish.md +47 -0
  714. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/review.md +31 -0
  715. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/scene-description.md +14 -0
  716. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/substyle-writer.md +80 -0
  717. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/typesetting.md +60 -0
  718. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/writer-base.md +76 -0
  719. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/205/346/226/227/351/200/206/350/242/255/writing-user-prompt.md +92 -0
  720. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/chapter-hard-constraints.md +19 -0
  721. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/combat-scenes.md +18 -0
  722. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/continuity-summary.md +33 -0
  723. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/desire-description.md +314 -0
  724. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/dialogue-writing.md +13 -0
  725. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/emotion-psychology.md +13 -0
  726. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/examples.md +63 -0
  727. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/extract-state.md +126 -0
  728. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/genre-writer.md +171 -0
  729. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/opening-three.md +18 -0
  730. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/outline-master.md +59 -0
  731. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/outline-polish.md +39 -0
  732. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/outline-rewrite.md +70 -0
  733. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/outline-volume.md +89 -0
  734. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/polish-guide.md +349 -0
  735. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/polish.md +47 -0
  736. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/review.md +31 -0
  737. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/scene-description.md +14 -0
  738. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/substyle-writer.md +110 -0
  739. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/typesetting.md +60 -0
  740. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/writer-base.md +76 -0
  741. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//345/256/253/346/226/227/346/235/203/350/260/213/writing-user-prompt.md +92 -0
  742. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/chapter-hard-constraints.md +19 -0
  743. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/combat-scenes.md +18 -0
  744. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/continuity-summary.md +33 -0
  745. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/desire-description.md +314 -0
  746. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/dialogue-writing.md +13 -0
  747. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/emotion-psychology.md +13 -0
  748. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/examples.md +67 -0
  749. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/extract-state.md +126 -0
  750. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/genre-writer.md +171 -0
  751. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/opening-three.md +18 -0
  752. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/outline-master.md +59 -0
  753. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/outline-polish.md +39 -0
  754. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/outline-rewrite.md +70 -0
  755. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/outline-volume.md +89 -0
  756. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/polish-guide.md +349 -0
  757. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/polish.md +47 -0
  758. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/review.md +31 -0
  759. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/scene-description.md +14 -0
  760. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/substyle-writer.md +83 -0
  761. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/typesetting.md +60 -0
  762. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/writer-base.md +76 -0
  763. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/period-drama//346/234/235/345/240/202/350/201/224/345/247/273/writing-user-prompt.md +92 -0
  764. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/chapter-hard-constraints.md +19 -0
  765. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/combat-scenes.md +18 -0
  766. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/continuity-summary.md +33 -0
  767. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/desire-description.md +314 -0
  768. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/dialogue-writing.md +13 -0
  769. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/emotion-psychology.md +13 -0
  770. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/examples.md +63 -0
  771. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/extract-state.md +126 -0
  772. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/genre-writer.md +145 -0
  773. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/opening-three.md +18 -0
  774. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/outline-master.md +59 -0
  775. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/outline-polish.md +39 -0
  776. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/outline-rewrite.md +70 -0
  777. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/outline-volume.md +89 -0
  778. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/polish-guide.md +349 -0
  779. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/polish.md +47 -0
  780. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/review.md +31 -0
  781. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/scene-description.md +14 -0
  782. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/substyle-writer.md +73 -0
  783. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/typesetting.md +60 -0
  784. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/writer-base.md +76 -0
  785. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//350/201/214/345/234/272/351/200/206/350/242/255/writing-user-prompt.md +92 -0
  786. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/chapter-hard-constraints.md +19 -0
  787. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/combat-scenes.md +18 -0
  788. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/continuity-summary.md +33 -0
  789. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/desire-description.md +314 -0
  790. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/dialogue-writing.md +13 -0
  791. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/emotion-psychology.md +13 -0
  792. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/examples.md +65 -0
  793. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/extract-state.md +126 -0
  794. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/genre-writer.md +145 -0
  795. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/opening-three.md +18 -0
  796. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/outline-master.md +59 -0
  797. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/outline-polish.md +39 -0
  798. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/outline-rewrite.md +70 -0
  799. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/outline-volume.md +89 -0
  800. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/polish-guide.md +349 -0
  801. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/polish.md +47 -0
  802. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/review.md +31 -0
  803. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/scene-description.md +14 -0
  804. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/substyle-writer.md +63 -0
  805. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/typesetting.md +60 -0
  806. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/writer-base.md +76 -0
  807. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/345/274/202/350/203/275/writing-user-prompt.md +92 -0
  808. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/chapter-hard-constraints.md +19 -0
  809. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/combat-scenes.md +18 -0
  810. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/continuity-summary.md +33 -0
  811. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/desire-description.md +314 -0
  812. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/dialogue-writing.md +13 -0
  813. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/emotion-psychology.md +13 -0
  814. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/examples.md +61 -0
  815. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/extract-state.md +126 -0
  816. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/genre-writer.md +145 -0
  817. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/opening-three.md +18 -0
  818. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/outline-master.md +59 -0
  819. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/outline-polish.md +39 -0
  820. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/outline-rewrite.md +70 -0
  821. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/outline-volume.md +89 -0
  822. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/polish-guide.md +349 -0
  823. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/polish.md +47 -0
  824. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/review.md +31 -0
  825. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/scene-description.md +14 -0
  826. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/substyle-writer.md +64 -0
  827. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/typesetting.md +60 -0
  828. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/writer-base.md +76 -0
  829. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/realistic//351/203/275/345/270/202/346/210/220/351/225/277/writing-user-prompt.md +92 -0
  830. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/chapter-hard-constraints.md +19 -0
  831. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/combat-scenes.md +18 -0
  832. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/continuity-summary.md +33 -0
  833. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/desire-description.md +315 -0
  834. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/dialogue-writing.md +13 -0
  835. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/emotion-psychology.md +13 -0
  836. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/examples.md +49 -0
  837. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/extract-state.md +126 -0
  838. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/genre-writer.md +143 -0
  839. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/opening-three.md +18 -0
  840. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/outline-master.md +59 -0
  841. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/outline-polish.md +39 -0
  842. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/outline-rewrite.md +70 -0
  843. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/outline-volume.md +89 -0
  844. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/polish-guide.md +350 -0
  845. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/polish.md +47 -0
  846. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/review.md +31 -0
  847. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/scene-description.md +14 -0
  848. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/substyle-writer.md +98 -0
  849. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/typesetting.md +60 -0
  850. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/writer-base.md +76 -0
  851. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//345/257/206/345/256/244/350/260/203/346/237/245/346/265/201/writing-user-prompt.md +92 -0
  852. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/chapter-hard-constraints.md +19 -0
  853. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/combat-scenes.md +18 -0
  854. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/continuity-summary.md +33 -0
  855. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/desire-description.md +315 -0
  856. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/dialogue-writing.md +13 -0
  857. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/emotion-psychology.md +13 -0
  858. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/examples.md +53 -0
  859. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/extract-state.md +126 -0
  860. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/genre-writer.md +143 -0
  861. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/opening-three.md +18 -0
  862. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/outline-master.md +59 -0
  863. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/outline-polish.md +39 -0
  864. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/outline-rewrite.md +70 -0
  865. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/outline-volume.md +89 -0
  866. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/polish-guide.md +350 -0
  867. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/polish.md +47 -0
  868. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/review.md +31 -0
  869. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/scene-description.md +14 -0
  870. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/substyle-writer.md +94 -0
  871. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/typesetting.md +60 -0
  872. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/writer-base.md +76 -0
  873. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/247/204/345/210/231/347/224/237/345/255/230/346/265/201/writing-user-prompt.md +92 -0
  874. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/chapter-hard-constraints.md +19 -0
  875. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/combat-scenes.md +18 -0
  876. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/continuity-summary.md +33 -0
  877. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/desire-description.md +315 -0
  878. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/dialogue-writing.md +13 -0
  879. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/emotion-psychology.md +13 -0
  880. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/examples.md +53 -0
  881. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/extract-state.md +126 -0
  882. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/genre-writer.md +143 -0
  883. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/opening-three.md +18 -0
  884. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/outline-master.md +59 -0
  885. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/outline-polish.md +39 -0
  886. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/outline-rewrite.md +70 -0
  887. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/outline-volume.md +89 -0
  888. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/polish-guide.md +350 -0
  889. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/polish.md +47 -0
  890. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/review.md +31 -0
  891. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/scene-description.md +14 -0
  892. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/substyle-writer.md +94 -0
  893. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/typesetting.md +60 -0
  894. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/writer-base.md +76 -0
  895. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/rules-mystery//350/257/241/345/261/200/346/216/250/346/274/224/346/265/201/writing-user-prompt.md +92 -0
  896. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/chapter-hard-constraints.md +19 -0
  897. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/combat-scenes.md +18 -0
  898. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/continuity-summary.md +33 -0
  899. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/desire-description.md +314 -0
  900. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/dialogue-writing.md +13 -0
  901. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/emotion-psychology.md +13 -0
  902. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/examples.md +59 -0
  903. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/extract-state.md +126 -0
  904. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/genre-writer.md +188 -0
  905. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/opening-three.md +18 -0
  906. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/outline-master.md +59 -0
  907. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/outline-polish.md +39 -0
  908. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/outline-rewrite.md +70 -0
  909. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/outline-volume.md +89 -0
  910. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/polish-guide.md +349 -0
  911. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/polish.md +47 -0
  912. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/review.md +31 -0
  913. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/scene-description.md +14 -0
  914. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/substyle-writer.md +96 -0
  915. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/typesetting.md +60 -0
  916. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/writer-base.md +76 -0
  917. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//345/272/237/345/234/237/346/224/271/351/200/240/346/265/201/writing-user-prompt.md +92 -0
  918. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/chapter-hard-constraints.md +19 -0
  919. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/combat-scenes.md +18 -0
  920. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/continuity-summary.md +33 -0
  921. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/desire-description.md +314 -0
  922. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/dialogue-writing.md +13 -0
  923. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/emotion-psychology.md +13 -0
  924. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/examples.md +61 -0
  925. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/extract-state.md +126 -0
  926. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/genre-writer.md +188 -0
  927. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/opening-three.md +18 -0
  928. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/outline-master.md +59 -0
  929. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/outline-polish.md +39 -0
  930. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/outline-rewrite.md +70 -0
  931. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/outline-volume.md +89 -0
  932. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/polish-guide.md +349 -0
  933. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/polish.md +47 -0
  934. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/review.md +31 -0
  935. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/scene-description.md +14 -0
  936. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/substyle-writer.md +86 -0
  937. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/typesetting.md +60 -0
  938. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/writer-base.md +76 -0
  939. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/230/237/351/231/205/346/226/207/346/230/216/346/265/201/writing-user-prompt.md +92 -0
  940. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/chapter-hard-constraints.md +19 -0
  941. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/combat-scenes.md +18 -0
  942. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/continuity-summary.md +33 -0
  943. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/desire-description.md +314 -0
  944. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/dialogue-writing.md +13 -0
  945. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/emotion-psychology.md +13 -0
  946. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/examples.md +55 -0
  947. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/extract-state.md +126 -0
  948. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/genre-writer.md +188 -0
  949. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/opening-three.md +18 -0
  950. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/outline-master.md +59 -0
  951. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/outline-polish.md +39 -0
  952. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/outline-rewrite.md +70 -0
  953. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/outline-volume.md +89 -0
  954. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/polish-guide.md +349 -0
  955. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/polish.md +47 -0
  956. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/review.md +31 -0
  957. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/scene-description.md +14 -0
  958. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/substyle-writer.md +82 -0
  959. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/typesetting.md +60 -0
  960. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/writer-base.md +76 -0
  961. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/scifi//346/234/272/347/224/262/346/210/230/344/272/211/346/265/201/writing-user-prompt.md +92 -0
  962. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/chapter-hard-constraints.md +19 -0
  963. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/combat-scenes.md +18 -0
  964. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/continuity-summary.md +34 -0
  965. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/desire-description.md +314 -0
  966. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/dialogue-writing.md +13 -0
  967. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/emotion-psychology.md +13 -0
  968. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/examples.md +53 -0
  969. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/extract-state.md +126 -0
  970. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/genre-writer.md +197 -0
  971. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/opening-three.md +18 -0
  972. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/outline-master.md +60 -0
  973. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/outline-polish.md +39 -0
  974. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/outline-rewrite.md +71 -0
  975. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/outline-volume.md +90 -0
  976. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/polish-guide.md +349 -0
  977. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/polish.md +47 -0
  978. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/review.md +31 -0
  979. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/scene-description.md +14 -0
  980. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/substyle-writer.md +92 -0
  981. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/typesetting.md +60 -0
  982. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/writer-base.md +76 -0
  983. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/writing-user-prompt.md +92 -0
  984. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/chapter-hard-constraints.md +19 -0
  985. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/combat-scenes.md +18 -0
  986. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/continuity-summary.md +33 -0
  987. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/desire-description.md +314 -0
  988. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/dialogue-writing.md +13 -0
  989. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/emotion-psychology.md +13 -0
  990. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/examples.md +57 -0
  991. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/extract-state.md +126 -0
  992. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/genre-writer.md +197 -0
  993. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/opening-three.md +18 -0
  994. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/outline-master.md +60 -0
  995. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/outline-polish.md +39 -0
  996. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/outline-rewrite.md +71 -0
  997. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/outline-volume.md +90 -0
  998. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/polish-guide.md +349 -0
  999. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/polish.md +47 -0
  1000. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/review.md +31 -0
  1001. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/scene-description.md +14 -0
  1002. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/substyle-writer.md +12 -0
  1003. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/typesetting.md +60 -0
  1004. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/writer-base.md +76 -0
  1005. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/256/227/351/227/250/346/210/220/351/225/277/346/265/201/writing-user-prompt.md +92 -0
  1006. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/chapter-hard-constraints.md +19 -0
  1007. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/combat-scenes.md +18 -0
  1008. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/continuity-summary.md +33 -0
  1009. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/desire-description.md +314 -0
  1010. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/dialogue-writing.md +13 -0
  1011. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/emotion-psychology.md +13 -0
  1012. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/examples.md +65 -0
  1013. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/extract-state.md +126 -0
  1014. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/genre-writer.md +197 -0
  1015. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/opening-three.md +18 -0
  1016. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/outline-master.md +60 -0
  1017. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/outline-polish.md +39 -0
  1018. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/outline-rewrite.md +71 -0
  1019. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/outline-volume.md +90 -0
  1020. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/polish-guide.md +349 -0
  1021. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/polish.md +47 -0
  1022. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/review.md +31 -0
  1023. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/scene-description.md +14 -0
  1024. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/substyle-writer.md +177 -0
  1025. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/typesetting.md +60 -0
  1026. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/writer-base.md +76 -0
  1027. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201/writing-user-prompt.md +92 -0
  1028. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/chapter-hard-constraints.md +19 -0
  1029. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/combat-scenes.md +18 -0
  1030. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/continuity-summary.md +34 -0
  1031. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/desire-description.md +314 -0
  1032. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/dialogue-writing.md +13 -0
  1033. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/emotion-psychology.md +13 -0
  1034. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/examples.md +53 -0
  1035. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/extract-state.md +126 -0
  1036. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/genre-writer.md +197 -0
  1037. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/opening-three.md +18 -0
  1038. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/outline-master.md +60 -0
  1039. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/outline-polish.md +39 -0
  1040. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/outline-rewrite.md +71 -0
  1041. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/outline-volume.md +90 -0
  1042. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/polish-guide.md +349 -0
  1043. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/polish.md +47 -0
  1044. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/review.md +31 -0
  1045. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/scene-description.md +14 -0
  1046. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/substyle-writer.md +103 -0
  1047. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/typesetting.md +60 -0
  1048. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/writer-base.md +76 -0
  1049. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/writing-user-prompt.md +92 -0
  1050. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/chapter-hard-constraints.md +19 -0
  1051. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/combat-scenes.md +18 -0
  1052. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/continuity-summary.md +33 -0
  1053. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/desire-description.md +314 -0
  1054. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/dialogue-writing.md +13 -0
  1055. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/emotion-psychology.md +13 -0
  1056. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/examples.md +55 -0
  1057. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/extract-state.md +126 -0
  1058. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/genre-writer.md +168 -0
  1059. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/opening-three.md +18 -0
  1060. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/outline-master.md +60 -0
  1061. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/outline-polish.md +39 -0
  1062. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/outline-rewrite.md +71 -0
  1063. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/outline-volume.md +90 -0
  1064. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/polish-guide.md +349 -0
  1065. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/polish.md +47 -0
  1066. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/review.md +31 -0
  1067. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/scene-description.md +14 -0
  1068. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/substyle-writer.md +65 -0
  1069. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/typesetting.md +60 -0
  1070. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/writer-base.md +76 -0
  1071. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/202/254/345/277/265/346/217/255/347/247/230/writing-user-prompt.md +92 -0
  1072. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/chapter-hard-constraints.md +19 -0
  1073. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/combat-scenes.md +18 -0
  1074. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/continuity-summary.md +33 -0
  1075. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/desire-description.md +314 -0
  1076. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/dialogue-writing.md +13 -0
  1077. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/emotion-psychology.md +13 -0
  1078. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/examples.md +53 -0
  1079. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/extract-state.md +126 -0
  1080. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/genre-writer.md +168 -0
  1081. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/opening-three.md +18 -0
  1082. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/outline-master.md +60 -0
  1083. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/outline-polish.md +39 -0
  1084. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/outline-rewrite.md +71 -0
  1085. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/outline-volume.md +90 -0
  1086. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/polish-guide.md +349 -0
  1087. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/polish.md +47 -0
  1088. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/review.md +31 -0
  1089. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/scene-description.md +14 -0
  1090. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/substyle-writer.md +81 -0
  1091. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/typesetting.md +60 -0
  1092. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/writer-base.md +76 -0
  1093. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//346/203/205/346/204/237/345/217/215/346/235/200/writing-user-prompt.md +92 -0
  1094. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/chapter-hard-constraints.md +19 -0
  1095. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/combat-scenes.md +18 -0
  1096. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/continuity-summary.md +33 -0
  1097. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/desire-description.md +314 -0
  1098. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/dialogue-writing.md +13 -0
  1099. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/emotion-psychology.md +13 -0
  1100. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/examples.md +51 -0
  1101. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/extract-state.md +126 -0
  1102. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/genre-writer.md +168 -0
  1103. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/opening-three.md +18 -0
  1104. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/outline-master.md +60 -0
  1105. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/outline-polish.md +39 -0
  1106. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/outline-rewrite.md +71 -0
  1107. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/outline-volume.md +90 -0
  1108. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/polish-guide.md +349 -0
  1109. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/polish.md +47 -0
  1110. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/review.md +31 -0
  1111. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/scene-description.md +14 -0
  1112. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/substyle-writer.md +81 -0
  1113. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/typesetting.md +60 -0
  1114. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/writer-base.md +76 -0
  1115. package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/zhihu-short//351/253/230/350/203/275/345/217/215/350/275/254/writing-user-prompt.md +92 -0
  1116. package/backend/webnovel-writer/.claude/skills/webnovel-write/references/core-constraints.md +115 -0
  1117. package/backend/webnovel-writer/.claude/templates/genres//344/277/256/344/273/231.md +103 -0
  1118. package/backend/webnovel-writer/.claude/templates/genres//345/217/244/350/250/200.md +253 -0
  1119. package/backend/webnovel-writer/.claude/templates/genres//345/244/232/345/255/220/345/244/232/347/246/217.md +198 -0
  1120. package/backend/webnovel-writer/.claude/templates/genres//346/233/277/350/272/253/346/226/207.md +194 -0
  1121. package/backend/webnovel-writer/.claude/templates/genres//347/213/227/350/241/200/350/250/200/346/203/205.md +187 -0
  1122. package/backend/webnovel-writer/.claude/templates/genres//347/216/260/345/256/236/351/242/230/346/235/220.md +262 -0
  1123. package/backend/webnovel-writer/.claude/templates/genres//347/237/245/344/271/216/347/237/255/347/257/207.md +239 -0
  1124. package/backend/webnovel-writer/.claude/templates/genres//347/263/273/347/273/237/346/265/201.md +93 -0
  1125. package/backend/webnovel-writer/.claude/templates/genres//350/247/204/345/210/231/346/200/252/350/260/210.md +301 -0
  1126. package/backend/webnovel-writer/.claude/templates/genres//351/203/275/345/270/202/345/274/202/350/203/275.md +95 -0
  1127. package/backend/webnovel-writer/.claude/templates/genres//351/273/221/346/232/227/351/242/230/346/235/220.md +200 -0
  1128. package/backend/webnovel-writer/.claude/templates/golden-finger-templates.md +337 -0
  1129. package/backend/webnovel-writer/LICENSE +674 -0
  1130. package/backend/webnovel-writer/README.md +529 -0
  1131. package/backend/webnovel-writer/backend/dependencies.py +88 -0
  1132. package/backend/webnovel-writer/backend/main.py +72 -0
  1133. package/backend/webnovel-writer/backend/requirements.txt +11 -0
  1134. package/backend/webnovel-writer/backend/routers/__init__.py +2 -0
  1135. package/backend/webnovel-writer/backend/routers/ai.py +505 -0
  1136. package/backend/webnovel-writer/backend/routers/chapters.py +864 -0
  1137. package/backend/webnovel-writer/backend/routers/characters.py +563 -0
  1138. package/backend/webnovel-writer/backend/routers/entities.py +219 -0
  1139. package/backend/webnovel-writer/backend/routers/fanqie.py +197 -0
  1140. package/backend/webnovel-writer/backend/routers/outlines.py +474 -0
  1141. package/backend/webnovel-writer/backend/routers/projects.py +733 -0
  1142. package/backend/webnovel-writer/backend/routers/rag.py +195 -0
  1143. package/backend/webnovel-writer/backend/services/__init__.py +2 -0
  1144. package/backend/webnovel-writer/backend/services/activity_logger.py +60 -0
  1145. package/backend/webnovel-writer/backend/services/ai_service.py +878 -0
  1146. package/backend/webnovel-writer/backend/services/creative_brief.py +110 -0
  1147. package/backend/webnovel-writer/backend/services/fanqie_publisher.py +1205 -0
  1148. package/backend/webnovel-writer/backend/services/genre_catalog.py +1405 -0
  1149. package/backend/webnovel-writer/backend/services/genre_writer_agent.py +170 -0
  1150. package/backend/webnovel-writer/backend/services/project_prompt_store.py +643 -0
  1151. package/backend/webnovel-writer/backend/services/projects_manager.py +407 -0
  1152. package/backend/webnovel-writer/backend/services/prompt_fallbacks.py +773 -0
  1153. package/backend/webnovel-writer/backend/services/reset_derived_data.py +45 -0
  1154. package/backend/webnovel-writer/backend/services/skill_executor.py +7701 -0
  1155. package/backend/webnovel-writer/backend/services/usage_meter.py +21 -0
  1156. package/backend/webnovel-writer/backend/services/writer_tools.py +324 -0
  1157. package/backend/webnovel-writer/backend/utils.py +60 -0
  1158. package/client.js +4942 -0
  1159. package/cordis.patch.yml +18 -0
  1160. package/docs/distribution.md +97 -0
  1161. package/docs/plan/PROGRESS.md +658 -0
  1162. package/docs/plan/STATE.json +374 -0
  1163. package/docs/quickstart.md +203 -0
  1164. package/docs/screenshots.md +57 -0
  1165. package/icon.svg +17 -0
  1166. package/index.js +1076 -0
  1167. package/locale/en.json +6 -0
  1168. package/locale/zh.json +6 -0
  1169. package/managed-runtime.mjs +186 -0
  1170. package/package.json +113 -4
  1171. package/runtime-download.json +6 -0
  1172. package/runtime-manifest.json +3409 -0
  1173. package/screenshots.json +10 -0
  1174. package/scripts/check-release.mjs +41 -0
@@ -0,0 +1,500 @@
1
+ #!/usr/bin/env python3
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Style Sampler - 风格样本管理模块
5
+
6
+ 管理高质量章节片段作为风格参考:
7
+ - 风格样本存储
8
+ - 按场景类型分类
9
+ - 样本选择策略
10
+ """
11
+
12
+ import json
13
+ import sqlite3
14
+ from pathlib import Path
15
+ from typing import Dict, List, Optional, Any
16
+ from dataclasses import dataclass, asdict
17
+ from datetime import datetime
18
+ from enum import Enum
19
+ from contextlib import contextmanager
20
+
21
+ from .config import get_config
22
+
23
+
24
+ class SceneType(Enum):
25
+ """场景类型"""
26
+ BATTLE = "战斗"
27
+ DIALOGUE = "对话"
28
+ DESCRIPTION = "描写"
29
+ TRANSITION = "过渡"
30
+ EMOTION = "情感"
31
+ TENSION = "紧张"
32
+ COMEDY = "轻松"
33
+
34
+
35
+ @dataclass
36
+ class StyleSample:
37
+ """风格样本"""
38
+ id: str
39
+ chapter: int
40
+ scene_type: str
41
+ content: str
42
+ score: float
43
+ tags: List[str]
44
+ created_at: str = ""
45
+
46
+
47
+ class StyleSampler:
48
+ """风格样本管理器"""
49
+
50
+ def __init__(self, config=None):
51
+ self.config = config or get_config()
52
+ self._init_db()
53
+
54
+ def _init_db(self):
55
+ """初始化数据库"""
56
+ self.config.ensure_dirs()
57
+ with self._get_conn() as conn:
58
+ cursor = conn.cursor()
59
+
60
+ cursor.execute("""
61
+ CREATE TABLE IF NOT EXISTS samples (
62
+ id TEXT PRIMARY KEY,
63
+ chapter INTEGER,
64
+ scene_type TEXT,
65
+ content TEXT,
66
+ score REAL,
67
+ tags TEXT,
68
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
69
+ )
70
+ """)
71
+
72
+ cursor.execute("CREATE INDEX IF NOT EXISTS idx_samples_type ON samples(scene_type)")
73
+ cursor.execute("CREATE INDEX IF NOT EXISTS idx_samples_score ON samples(score DESC)")
74
+
75
+ conn.commit()
76
+
77
+ @contextmanager
78
+ def _get_conn(self):
79
+ """获取数据库连接(确保关闭,避免 Windows 下文件句柄泄漏导致无法清理临时目录)"""
80
+ db_path = self.config.webnovel_dir / "style_samples.db"
81
+ conn = sqlite3.connect(str(db_path))
82
+ try:
83
+ yield conn
84
+ finally:
85
+ conn.close()
86
+
87
+ # ==================== 样本管理 ====================
88
+
89
+ def add_sample(self, sample: StyleSample) -> bool:
90
+ """添加风格样本"""
91
+ with self._get_conn() as conn:
92
+ cursor = conn.cursor()
93
+ try:
94
+ cursor.execute("""
95
+ INSERT INTO samples
96
+ (id, chapter, scene_type, content, score, tags, created_at)
97
+ VALUES (?, ?, ?, ?, ?, ?, ?)
98
+ """, (
99
+ sample.id,
100
+ sample.chapter,
101
+ sample.scene_type,
102
+ sample.content,
103
+ sample.score,
104
+ json.dumps(sample.tags, ensure_ascii=False),
105
+ sample.created_at or datetime.now().isoformat()
106
+ ))
107
+ conn.commit()
108
+ return True
109
+ except sqlite3.IntegrityError:
110
+ return False
111
+
112
+ def get_samples_by_type(
113
+ self,
114
+ scene_type: str,
115
+ limit: int = 5,
116
+ min_score: float = 0.0
117
+ ) -> List[StyleSample]:
118
+ """按场景类型获取样本"""
119
+ with self._get_conn() as conn:
120
+ cursor = conn.cursor()
121
+ cursor.execute("""
122
+ SELECT id, chapter, scene_type, content, score, tags, created_at
123
+ FROM samples
124
+ WHERE scene_type = ? AND score >= ?
125
+ ORDER BY score DESC
126
+ LIMIT ?
127
+ """, (scene_type, min_score, limit))
128
+
129
+ return [self._row_to_sample(row) for row in cursor.fetchall()]
130
+
131
+ def get_best_samples(self, limit: int = 10) -> List[StyleSample]:
132
+ """获取最高分样本"""
133
+ with self._get_conn() as conn:
134
+ cursor = conn.cursor()
135
+ cursor.execute("""
136
+ SELECT id, chapter, scene_type, content, score, tags, created_at
137
+ FROM samples
138
+ ORDER BY score DESC
139
+ LIMIT ?
140
+ """, (limit,))
141
+
142
+ return [self._row_to_sample(row) for row in cursor.fetchall()]
143
+
144
+ def _row_to_sample(self, row) -> StyleSample:
145
+ """将数据库行转换为样本对象"""
146
+ return StyleSample(
147
+ id=row[0],
148
+ chapter=row[1],
149
+ scene_type=row[2],
150
+ content=row[3],
151
+ score=row[4],
152
+ tags=json.loads(row[5]) if row[5] else [],
153
+ created_at=row[6]
154
+ )
155
+
156
+ # ==================== 样本提取 ====================
157
+
158
+ def extract_candidates(
159
+ self,
160
+ chapter: int,
161
+ content: str,
162
+ review_score: float,
163
+ scenes: List[Dict]
164
+ ) -> List[StyleSample]:
165
+ """
166
+ 从章节中提取风格样本候选 - 多维度质量控制
167
+
168
+ 评分标准更严格:
169
+ - review_score >= 85 (提高门槛)
170
+ - 必须通过AI痕迹检测
171
+ - 必须通过对话真实性检测
172
+ """
173
+ if review_score < 85: # 提高门槛
174
+ return []
175
+
176
+ candidates = []
177
+
178
+ for scene in scenes:
179
+ # 预检测AI痕迹
180
+ ai_trace_score = self._detect_ai_traces(scene.get("content", ""))
181
+ if ai_trace_score > 30: # AI痕迹过重,跳过
182
+ continue
183
+
184
+ # 预检测对话真实性(如果包含对话)
185
+ if self._has_dialogue(scene.get("content", "")):
186
+ dialogue_score = self._check_dialogue_reality(scene.get("content", ""))
187
+ if dialogue_score < 70: # 对话不够真实,跳过
188
+ continue
189
+
190
+ scene_type = self._classify_scene_type(scene)
191
+ scene_content = scene.get("content", "")
192
+
193
+ # 跳过过短的场景
194
+ if len(scene_content) < 300: # 提高最小长度要求
195
+ continue
196
+
197
+ # 计算综合质量分数
198
+ quality_score = self._calculate_quality_score(
199
+ review_score, ai_trace_score, dialogue_score if self._has_dialogue(scene_content) else 90
200
+ )
201
+
202
+ # 创建样本
203
+ sample = StyleSample(
204
+ id=f"ch{chapter}_s{scene.get('index', 0)}",
205
+ chapter=chapter,
206
+ scene_type=scene_type,
207
+ content=scene_content[:2000], # 限制长度
208
+ score=quality_score / 100.0,
209
+ tags=self._extract_tags(scene_content)
210
+ )
211
+ candidates.append(sample)
212
+
213
+ return candidates
214
+
215
+ def _detect_ai_traces(self, content: str) -> float:
216
+ """检测AI痕迹,返回0-100分数,越高越像AI写的"""
217
+ ai_patterns = [
218
+ "眼中闪过.*情绪", "心中五味杂陈", "时间仿佛.*静止",
219
+ "空气中弥漫着", "波澜不惊", "古井无波",
220
+ "缓缓.*", "轻轻.*", "静静.*"
221
+ ]
222
+
223
+ trace_count = 0
224
+ for pattern in ai_patterns:
225
+ import re
226
+ if re.search(pattern, content):
227
+ trace_count += 1
228
+
229
+ # 简单计算:每个AI模式扣10分
230
+ return min(trace_count * 10, 100)
231
+
232
+ def _has_dialogue(self, content: str) -> bool:
233
+ """检测是否包含对话"""
234
+ dialogue_markers = ['"', '"', '"', '说道', '问道', '答道']
235
+ return any(marker in content for marker in dialogue_markers)
236
+
237
+ def _check_dialogue_reality(self, content: str) -> float:
238
+ """检测对话真实性,返回0-100分数"""
239
+ if not self._has_dialogue(content):
240
+ return 90 # 无对话默认高分
241
+
242
+ # 检测书面化程度
243
+ formal_words = ["因此", "然而", "显然", "毫无疑问", "事实上"]
244
+ formal_count = sum(1 for word in formal_words if word in content)
245
+
246
+ # 检测口语特征
247
+ oral_features = ["嗯", "啊", "哦", "呃", "那个", "就是", "算了"]
248
+ oral_count = sum(1 for feature in oral_features if feature in content)
249
+
250
+ # 简单评分:口语特征加分,书面化扣分
251
+ score = 70 + oral_count * 5 - formal_count * 10
252
+ return max(0, min(100, score))
253
+
254
+ def _calculate_quality_score(self, review_score: float, ai_trace_score: float, dialogue_score: float) -> float:
255
+ """计算综合质量分数"""
256
+ # 加权平均:审查分数50%,AI痕迹30%,对话真实性20%
257
+ return (review_score * 0.5 +
258
+ (100 - ai_trace_score) * 0.3 +
259
+ dialogue_score * 0.2)
260
+
261
+ def _classify_scene_type(self, scene: Dict) -> str:
262
+ """分类场景类型 - 基于语义和情感层次,而非机械关键词"""
263
+ summary = scene.get("summary", "").lower()
264
+ content = scene.get("content", "").lower()
265
+ text = summary + content
266
+
267
+ # 多维度权重评分,而非简单关键词匹配
268
+ scores = {
269
+ SceneType.BATTLE.value: 0,
270
+ SceneType.DIALOGUE.value: 0,
271
+ SceneType.EMOTION.value: 0,
272
+ SceneType.TENSION.value: 0,
273
+ SceneType.DESCRIPTION.value: 0
274
+ }
275
+
276
+ # 战斗场景:动作密度 + 冲突强度
277
+ battle_patterns = [
278
+ (["战斗", "攻击", "出手"], 3), # 直接动作
279
+ (["血", "伤", "痛", "死"], 2), # 后果
280
+ (["快", "猛", "狠", "准"], 1), # 动作特征
281
+ (["拳", "剑", "刀", "枪"], 1) # 武器
282
+ ]
283
+ for keywords, weight in battle_patterns:
284
+ if any(kw in text for kw in keywords):
285
+ scores[SceneType.BATTLE.value] += weight
286
+
287
+ # 对话场景:交流密度 + 语言特征
288
+ dialogue_patterns = [
289
+ (["说", "道", "问", "答"], 3),
290
+ (["声音", "语气", "口吻"], 2),
291
+ (["沉默", "停顿", "犹豫"], 1),
292
+ (["\"", """, """], 2) # 引号密度
293
+ ]
294
+ for keywords, weight in dialogue_patterns:
295
+ if any(kw in text for kw in keywords):
296
+ scores[SceneType.DIALOGUE.value] += weight
297
+
298
+ # 情感场景:内心活动 + 情绪表现
299
+ emotion_patterns = [
300
+ (["心", "想", "觉得", "感觉"], 3),
301
+ (["泪", "笑", "哭", "怒"], 2),
302
+ (["温暖", "冰冷", "颤抖"], 1),
303
+ (["回忆", "想起", "忘记"], 1)
304
+ ]
305
+ for keywords, weight in emotion_patterns:
306
+ if any(kw in text for kw in keywords):
307
+ scores[SceneType.EMOTION.value] += weight
308
+
309
+ # 紧张场景:压迫感 + 不确定性
310
+ tension_patterns = [
311
+ (["危险", "恐惧", "害怕"], 3),
312
+ (["紧张", "焦虑", "不安"], 2),
313
+ (["黑暗", "阴影", "寂静"], 1),
314
+ (["突然", "忽然", "猛地"], 1)
315
+ ]
316
+ for keywords, weight in tension_patterns:
317
+ if any(kw in text for kw in keywords):
318
+ scores[SceneType.TENSION.value] += weight
319
+
320
+ # 描写场景:环境细节 + 感官体验
321
+ description_patterns = [
322
+ (["看到", "听到", "闻到"], 2),
323
+ (["风", "雨", "阳光", "月亮"], 1),
324
+ (["房间", "街道", "山", "水"], 1),
325
+ (["颜色", "声音", "味道"], 1)
326
+ ]
327
+ for keywords, weight in description_patterns:
328
+ if any(kw in text for kw in keywords):
329
+ scores[SceneType.DESCRIPTION.value] += weight
330
+
331
+ # 返回得分最高的类型,如果都是0则默认为描写
332
+ max_type = max(scores.items(), key=lambda x: x[1])
333
+ return max_type[0] if max_type[1] > 0 else SceneType.DESCRIPTION.value
334
+
335
+ def _extract_tags(self, content: str) -> List[str]:
336
+ """提取内容标签"""
337
+ tags = []
338
+
339
+ # 简单标签提取
340
+ if "战斗" in content or "攻击" in content:
341
+ tags.append("战斗")
342
+ if "修炼" in content or "突破" in content:
343
+ tags.append("修炼")
344
+ if "对话" in content or "说道" in content:
345
+ tags.append("对话")
346
+ if "描写" in content or "景色" in content:
347
+ tags.append("描写")
348
+
349
+ return tags[:5]
350
+
351
+ # ==================== 样本选择 ====================
352
+
353
+ def select_samples_for_chapter(
354
+ self,
355
+ chapter_outline: str,
356
+ target_types: List[str] = None,
357
+ max_samples: int = 3
358
+ ) -> List[StyleSample]:
359
+ """
360
+ 为章节写作选择合适的风格样本
361
+
362
+ 基于大纲分析需要什么类型的样本
363
+ """
364
+ if target_types is None:
365
+ # 根据大纲推断需要的场景类型
366
+ target_types = self._infer_scene_types(chapter_outline)
367
+
368
+ samples = []
369
+ per_type = max(1, max_samples // len(target_types)) if target_types else max_samples
370
+
371
+ for scene_type in target_types:
372
+ type_samples = self.get_samples_by_type(scene_type, limit=per_type, min_score=0.8)
373
+ samples.extend(type_samples)
374
+
375
+ return samples[:max_samples]
376
+
377
+ def _infer_scene_types(self, outline: str) -> List[str]:
378
+ """从大纲推断需要的场景类型"""
379
+ types = []
380
+
381
+ if any(kw in outline for kw in ["战斗", "对决", "比试", "交手"]):
382
+ types.append(SceneType.BATTLE.value)
383
+
384
+ if any(kw in outline for kw in ["对话", "谈话", "商议", "讨论"]):
385
+ types.append(SceneType.DIALOGUE.value)
386
+
387
+ if any(kw in outline for kw in ["情感", "感情", "心理"]):
388
+ types.append(SceneType.EMOTION.value)
389
+
390
+ if not types:
391
+ types = [SceneType.DESCRIPTION.value]
392
+
393
+ return types
394
+
395
+ # ==================== 统计 ====================
396
+
397
+ def get_stats(self) -> Dict[str, Any]:
398
+ """获取样本统计"""
399
+ with self._get_conn() as conn:
400
+ cursor = conn.cursor()
401
+
402
+ cursor.execute("SELECT COUNT(*) FROM samples")
403
+ total = cursor.fetchone()[0]
404
+
405
+ cursor.execute("""
406
+ SELECT scene_type, COUNT(*) as count
407
+ FROM samples
408
+ GROUP BY scene_type
409
+ """)
410
+ by_type = {row[0]: row[1] for row in cursor.fetchall()}
411
+
412
+ cursor.execute("SELECT AVG(score) FROM samples")
413
+ avg_score = cursor.fetchone()[0] or 0
414
+
415
+ return {
416
+ "total": total,
417
+ "by_type": by_type,
418
+ "avg_score": round(avg_score, 3)
419
+ }
420
+
421
+
422
+ # ==================== CLI 接口 ====================
423
+
424
+ def main():
425
+ import argparse
426
+
427
+ parser = argparse.ArgumentParser(description="Style Sampler CLI")
428
+ parser.add_argument("--project-root", type=str, help="项目根目录")
429
+
430
+ subparsers = parser.add_subparsers(dest="command")
431
+
432
+ # 获取统计
433
+ subparsers.add_parser("stats")
434
+
435
+ # 列出样本
436
+ list_parser = subparsers.add_parser("list")
437
+ list_parser.add_argument("--type", help="按类型过滤")
438
+ list_parser.add_argument("--limit", type=int, default=10)
439
+
440
+ # 提取样本
441
+ extract_parser = subparsers.add_parser("extract")
442
+ extract_parser.add_argument("--chapter", type=int, required=True)
443
+ extract_parser.add_argument("--score", type=float, required=True)
444
+ extract_parser.add_argument("--scenes", required=True, help="JSON 格式的场景列表")
445
+
446
+ # 选择样本
447
+ select_parser = subparsers.add_parser("select")
448
+ select_parser.add_argument("--outline", required=True, help="章节大纲")
449
+ select_parser.add_argument("--max", type=int, default=3)
450
+
451
+ args = parser.parse_args()
452
+
453
+ # 初始化
454
+ config = None
455
+ if args.project_root:
456
+ from .config import DataModulesConfig
457
+ config = DataModulesConfig.from_project_root(args.project_root)
458
+
459
+ sampler = StyleSampler(config)
460
+
461
+ if args.command == "stats":
462
+ stats = sampler.get_stats()
463
+ print(json.dumps(stats, ensure_ascii=False, indent=2))
464
+
465
+ elif args.command == "list":
466
+ if args.type:
467
+ samples = sampler.get_samples_by_type(args.type, args.limit)
468
+ else:
469
+ samples = sampler.get_best_samples(args.limit)
470
+
471
+ for s in samples:
472
+ print(f"\n[{s.scene_type}] 第 {s.chapter} 章 (score: {s.score:.2f})")
473
+ print(f" {s.content[:100]}...")
474
+
475
+ elif args.command == "extract":
476
+ scenes = json.loads(args.scenes)
477
+ candidates = sampler.extract_candidates(
478
+ chapter=args.chapter,
479
+ content="",
480
+ review_score=args.score,
481
+ scenes=scenes
482
+ )
483
+
484
+ for c in candidates:
485
+ if sampler.add_sample(c):
486
+ print(f"✓ 添加样本: {c.id} ({c.scene_type})")
487
+ else:
488
+ print(f"✗ 样本已存在: {c.id}")
489
+
490
+ elif args.command == "select":
491
+ samples = sampler.select_samples_for_chapter(args.outline, max_samples=args.max)
492
+
493
+ print(f"选择了 {len(samples)} 个风格样本:")
494
+ for s in samples:
495
+ print(f"\n[{s.scene_type}] 第 {s.chapter} 章")
496
+ print(f" {s.content[:200]}...")
497
+
498
+
499
+ if __name__ == "__main__":
500
+ main()
@@ -0,0 +1 @@
1
+ # data_modules tests package