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.
- package/LICENSE +21 -0
- package/README.md +216 -2
- package/RELEASE_STATUS.md +61 -0
- package/THIRD_PARTY_NOTICES.md +16 -0
- package/assets/chapter-whale-overview.png +0 -0
- package/assets/screenshots/01-automation.png +0 -0
- package/assets/screenshots/02-dashboard.png +0 -0
- package/assets/screenshots/03-free-channels.png +0 -0
- package/assets/screenshots/04-chapters.png +0 -0
- package/assets/screenshots/05-memory.png +0 -0
- package/assets/screenshots/06-creative-brief.png +0 -0
- package/assets/screenshots/07-model-settings.png +0 -0
- package/backend/fanqie_auto_publish/README.md +133 -0
- package/backend/fanqie_auto_publish/login.py +42 -0
- package/backend/fanqie_auto_publish/publication_safety.py +306 -0
- package/backend/fanqie_auto_publish/publish.py +1100 -0
- package/backend/fanqie_auto_publish/requirements.txt +2 -0
- package/backend/integration/README.md +72 -0
- package/backend/integration/__init__.py +2 -0
- package/backend/integration/bridge.py +1158 -0
- package/backend/integration/chapter_versions.py +706 -0
- package/backend/integration/character_state.py +435 -0
- package/backend/integration/context_budget.py +131 -0
- package/backend/integration/continuity.py +246 -0
- package/backend/integration/costs.py +652 -0
- package/backend/integration/credential_codec.py +40 -0
- package/backend/integration/daily_word_goal.py +92 -0
- package/backend/integration/editorial_recovery.py +71 -0
- package/backend/integration/editorial_release.py +158 -0
- package/backend/integration/failure_info.py +108 -0
- package/backend/integration/fallback_budget.py +88 -0
- package/backend/integration/free_channels.py +175 -0
- package/backend/integration/free_pool.py +179 -0
- package/backend/integration/length_policy.py +36 -0
- package/backend/integration/local_completion.py +511 -0
- package/backend/integration/memory_extraction.py +160 -0
- package/backend/integration/memory_library.py +798 -0
- package/backend/integration/model_roles.py +307 -0
- package/backend/integration/ofm_runtime.py +191 -0
- package/backend/integration/ofm_service.mjs +24 -0
- package/backend/integration/owned_service.py +44 -0
- package/backend/integration/planning_failover.py +102 -0
- package/backend/integration/planning_output.py +88 -0
- package/backend/integration/provider_circuit.py +33 -0
- package/backend/integration/provider_client.py +190 -0
- package/backend/integration/providers.py +221 -0
- package/backend/integration/quality_gate.py +249 -0
- package/backend/integration/quality_score.py +245 -0
- package/backend/integration/reasoning.py +26 -0
- package/backend/integration/recovery.py +237 -0
- package/backend/integration/resource_policy.py +81 -0
- package/backend/integration/retrieval_config.py +44 -0
- package/backend/integration/retrieval_health.py +46 -0
- package/backend/integration/retry_budget.py +76 -0
- package/backend/integration/revision_plan.py +414 -0
- package/backend/integration/revision_workflow.py +134 -0
- package/backend/integration/scene_writer.py +97 -0
- package/backend/integration/scenes.py +153 -0
- package/backend/integration/scheduler.py +917 -0
- package/backend/integration/secret_store.py +208 -0
- package/backend/integration/serial_delivery.py +363 -0
- package/backend/integration/serial_service.py +255 -0
- package/backend/integration/studio.py +383 -0
- package/backend/integration/style_profile.py +290 -0
- package/backend/integration/style_stats.py +138 -0
- package/backend/integration/ten_chapter_delivery.py +621 -0
- package/backend/integration/text_checks.py +56 -0
- package/backend/integration/version_history.py +231 -0
- package/backend/integration/watchdog.py +73 -0
- package/backend/integration/workflow.py +112 -0
- package/backend/integration/writer_runner.py +997 -0
- package/backend/manager/__init__.py +1 -0
- package/backend/manager/ai_tools.py +216 -0
- package/backend/manager/app.py +1338 -0
- package/backend/manager/audit_inventory.py +52 -0
- package/backend/manager/device_access.py +211 -0
- package/backend/manager/free_model_api.py +64 -0
- package/backend/manager/job_progress.py +18 -0
- package/backend/manager/provider_api.py +141 -0
- package/backend/manager/role_checks.py +126 -0
- package/backend/manager/runtime_health.py +48 -0
- package/backend/manager/static/app.js +402 -0
- package/backend/manager/static/costs.js +90 -0
- package/backend/manager/static/editorial.css +510 -0
- package/backend/manager/static/free-models.css +28 -0
- package/backend/manager/static/free-models.js +86 -0
- package/backend/manager/static/index.html +140 -0
- package/backend/manager/static/memory.js +58 -0
- package/backend/manager/static/ofm-channel-card.css +1 -0
- package/backend/manager/static/ofm-channel-card.js +17169 -0
- package/backend/manager/static/pair.html +27 -0
- package/backend/manager/static/pair.js +17 -0
- package/backend/manager/static/providers.css +86 -0
- package/backend/manager/static/providers.js +181 -0
- package/backend/manager/static/studio.css +243 -0
- package/backend/manager/static/style.css +28 -0
- package/backend/manager/worker.py +182 -0
- package/backend/vendor/ofm-source-lock.json +105 -0
- package/backend/vendor/our-free-model-source/LICENSE +21 -0
- package/backend/vendor/our-free-model-source/package.json +79 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/business.mjs +69193 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/contracts.mjs +37 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/credentials.mjs +59 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/images.mjs +44 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/runtime.mjs +139 -0
- package/backend/vendor/our-free-model-source/packages/standalone/channels/worker.mjs +154 -0
- package/backend/vendor/our-free-model-source/packages/standalone/cli.mjs +56 -0
- package/backend/vendor/our-free-model-source/packages/standalone/eac.mjs +122 -0
- package/backend/vendor/our-free-model-source/packages/standalone/login-terminal.mjs +64 -0
- package/backend/vendor/our-free-model-source/packages/standalone/management.mjs +330 -0
- package/backend/vendor/our-free-model-source/packages/standalone/open-external.mjs +19 -0
- package/backend/vendor/our-free-model-source/packages/standalone/package.json +36 -0
- package/backend/vendor/our-free-model-source/packages/standalone/service.mjs +348 -0
- package/backend/vendor/our-free-model-source/packages/standalone/vite.config.mjs +22 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/_ofm-provider-list-D9WP3xjp.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/app.css +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/app.js +13 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/assets.json +12 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/channels-DtR2ayCL.js +414 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/channels-kEN3gKhj.js +1029 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/index.html +12 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/models-ishsHIe7.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/search-RZVy3Eoo.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/settings-DYjyfDI2.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/splash.html +324 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/usage-BOibUWax.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/visibility-data-9WWAmLOB.js +1 -0
- package/backend/vendor/our-free-model-source/packages/standalone/web/x-CzfajR1e.js +1 -0
- package/backend/vendor/our-free-model-source/src/adapter.js +829 -0
- package/backend/vendor/our-free-model-source/src/aggregate.js +727 -0
- package/backend/vendor/our-free-model-source/src/anthropic.js +834 -0
- package/backend/vendor/our-free-model-source/src/catalog.js +605 -0
- package/backend/vendor/our-free-model-source/src/chan-relay.js +193 -0
- package/backend/vendor/our-free-model-source/src/channel.js +40 -0
- package/backend/vendor/our-free-model-source/src/combos.js +179 -0
- package/backend/vendor/our-free-model-source/src/core/completion.js +191 -0
- package/backend/vendor/our-free-model-source/src/core/runtime.js +391 -0
- package/backend/vendor/our-free-model-source/src/core/stats.js +98 -0
- package/backend/vendor/our-free-model-source/src/deferred-response.js +44 -0
- package/backend/vendor/our-free-model-source/src/eac-login.js +115 -0
- package/backend/vendor/our-free-model-source/src/eac-user.js +83 -0
- package/backend/vendor/our-free-model-source/src/eac.js +276 -0
- package/backend/vendor/our-free-model-source/src/effort.js +280 -0
- package/backend/vendor/our-free-model-source/src/egress.js +842 -0
- package/backend/vendor/our-free-model-source/src/failure.js +39 -0
- package/backend/vendor/our-free-model-source/src/feed.js +310 -0
- package/backend/vendor/our-free-model-source/src/forward.js +1328 -0
- package/backend/vendor/our-free-model-source/src/http.js +581 -0
- package/backend/vendor/our-free-model-source/src/image-pricing.js +12 -0
- package/backend/vendor/our-free-model-source/src/kilo.js +168 -0
- package/backend/vendor/our-free-model-source/src/local-optimize.js +446 -0
- package/backend/vendor/our-free-model-source/src/messages.js +429 -0
- package/backend/vendor/our-free-model-source/src/open-external.js +35 -0
- package/backend/vendor/our-free-model-source/src/picks.js +197 -0
- package/backend/vendor/our-free-model-source/src/probe.js +236 -0
- package/backend/vendor/our-free-model-source/src/providers/index.js +215 -0
- package/backend/vendor/our-free-model-source/src/providers/registry.json +4927 -0
- package/backend/vendor/our-free-model-source/src/push.js +92 -0
- package/backend/vendor/our-free-model-source/src/recovery.js +131 -0
- package/backend/vendor/our-free-model-source/src/reload.js +307 -0
- package/backend/vendor/our-free-model-source/src/route/classify.js +542 -0
- package/backend/vendor/our-free-model-source/src/sponsor.js +209 -0
- package/backend/vendor/our-free-model-source/src/store.js +555 -0
- package/backend/vendor/our-free-model-source/src/stream.js +540 -0
- package/backend/vendor/our-free-model-source/src/token-saver/index.js +151 -0
- package/backend/vendor/our-free-model-source/src/token-saver/inject.js +434 -0
- package/backend/vendor/our-free-model-source/src/token-saver/prompts.js +239 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/applyFilter.js +39 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/autodetect.js +171 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/constants.js +142 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/buildOutput.js +142 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/dedupLog.js +58 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/find.js +64 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitDiff.js +123 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitLog.js +114 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/gitStatus.js +128 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/grep.js +52 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/ls.js +103 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/readNumbered.js +37 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/searchList.js +64 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/smartTruncate.js +27 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/filters/tree.js +42 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/hitLine.js +83 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/index.js +384 -0
- package/backend/vendor/our-free-model-source/src/token-saver/rtk/registry.js +57 -0
- package/backend/vendor/our-free-model-source/src/trust.js +184 -0
- package/backend/vendor/our-free-model-source/src/updater.js +1034 -0
- package/backend/vendor/our-free-model-source/src/upstream.js +591 -0
- package/backend/vendor/our-free-model-source/src/vault-anchor.js +2 -0
- package/backend/vendor/our-free-model-source/src/vault-data.js +3 -0
- package/backend/vendor/our-free-model-source/src/vault.js +213 -0
- package/backend/vendor/our-free-model-source/vendor/channel-pack/LICENSE +21 -0
- package/backend/vendor/our-free-model-source/vendor/channel-pack/qoder-auth-wasm.wasm +0 -0
- package/backend/vendor/our-free-model-source/vendor/dsh-std/LICENSE +21 -0
- package/backend/webnovel-writer/.claude/agents/anti-ai-detector.md +182 -0
- package/backend/webnovel-writer/.claude/agents/consistency-checker.md +179 -0
- package/backend/webnovel-writer/.claude/agents/context-agent.md +350 -0
- package/backend/webnovel-writer/.claude/agents/continuity-checker.md +254 -0
- package/backend/webnovel-writer/.claude/agents/data-agent.md +436 -0
- package/backend/webnovel-writer/.claude/agents/dialogue-reality-enforcer.md +357 -0
- package/backend/webnovel-writer/.claude/agents/high-point-checker.md +145 -0
- package/backend/webnovel-writer/.claude/agents/ooc-checker.md +217 -0
- package/backend/webnovel-writer/.claude/agents/pacing-checker.md +216 -0
- package/backend/webnovel-writer/.claude/genres/dark/dark-plot-patterns.md +105 -0
- package/backend/webnovel-writer/.claude/genres/dark/power-struggle.md +108 -0
- package/backend/webnovel-writer/.claude/genres/dark/survival-cost.md +98 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/character-archetypes.md +582 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/emotional-tension.md +578 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/plot-templates.md +213 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/romance-pacing.md +574 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/romance-tropes.md +528 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/sweet-moments.md +620 -0
- package/backend/webnovel-writer/.claude/genres/dog-blood-romance/torture-points.md +612 -0
- package/backend/webnovel-writer/.claude/genres/period-drama/ancient-dialogue.md +288 -0
- package/backend/webnovel-writer/.claude/genres/period-drama/character-design.md +268 -0
- package/backend/webnovel-writer/.claude/genres/period-drama/historical-setting.md +278 -0
- package/backend/webnovel-writer/.claude/genres/period-drama/palace-intrigue.md +268 -0
- package/backend/webnovel-writer/.claude/genres/period-drama/plot-patterns.md +276 -0
- package/backend/webnovel-writer/.claude/genres/realistic/character-depth.md +234 -0
- package/backend/webnovel-writer/.claude/genres/realistic/dialogue-authenticity.md +284 -0
- package/backend/webnovel-writer/.claude/genres/realistic/plot-logic.md +273 -0
- package/backend/webnovel-writer/.claude/genres/realistic/reality-anchoring.md +229 -0
- package/backend/webnovel-writer/.claude/genres/realistic/social-issues.md +232 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/clue-design.md +524 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/core-elements.md +431 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/detective-design.md +560 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/revelation-design.md +472 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/structure-pacing.md +520 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/suspect-management.md +497 -0
- package/backend/webnovel-writer/.claude/genres/rules-mystery/trick-design.md +507 -0
- package/backend/webnovel-writer/.claude/genres/xuanhuan/cultivation-levels.md +476 -0
- package/backend/webnovel-writer/.claude/genres/xuanhuan/power-systems.md +373 -0
- package/backend/webnovel-writer/.claude/genres/xuanhuan/xuanhuan-cool-points.md +672 -0
- package/backend/webnovel-writer/.claude/genres/xuanhuan/xuanhuan-plot-patterns.md +547 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/character-quick-build.md +190 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/emotional-peaks.md +236 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/ending-patterns.md +217 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/genre-templates.md +224 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/hook-techniques.md +151 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/pacing-rhythm.md +190 -0
- package/backend/webnovel-writer/.claude/genres/zhihu-short/plot-compression.md +207 -0
- package/backend/webnovel-writer/.claude/references/entity-management-spec.md +296 -0
- package/backend/webnovel-writer/.claude/scripts/__init__.py +19 -0
- package/backend/webnovel-writer/.claude/scripts/archive_manager.py +592 -0
- package/backend/webnovel-writer/.claude/scripts/backup_manager.py +485 -0
- package/backend/webnovel-writer/.claude/scripts/chapter_paths.py +84 -0
- package/backend/webnovel-writer/.claude/scripts/context_pack_builder.py +514 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/__init__.py +50 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/api_client.py +628 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/config.py +268 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/entity_linker.py +255 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/index_manager.py +1209 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/migrate_state_to_sqlite.py +361 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/rag_adapter.py +651 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/sql_state_manager.py +545 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/state_manager.py +1257 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/style_sampler.py +500 -0
- package/backend/webnovel-writer/.claude/scripts/data_modules/tests/__init__.py +1 -0
- package/backend/webnovel-writer/.claude/scripts/extract_chapter_context.py +227 -0
- package/backend/webnovel-writer/.claude/scripts/golden_three_checker.py +570 -0
- package/backend/webnovel-writer/.claude/scripts/init_project.py +585 -0
- package/backend/webnovel-writer/.claude/scripts/project_locator.py +94 -0
- package/backend/webnovel-writer/.claude/scripts/requirements.txt +9 -0
- package/backend/webnovel-writer/.claude/scripts/security_utils.py +589 -0
- package/backend/webnovel-writer/.claude/scripts/status_reporter.py +985 -0
- package/backend/webnovel-writer/.claude/scripts/token_budget_report.md +120 -0
- package/backend/webnovel-writer/.claude/scripts/update_state.py +691 -0
- package/backend/webnovel-writer/.claude/scripts/workflow_manager.py +504 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/SKILL.md +178 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/creative-combination.md +511 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/inspiration-collection.md +298 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/market-positioning.md +421 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/creativity/selling-points.md +684 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/genre-tropes.md +183 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/system-data-flow.md +43 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/character-design.md +111 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/faction-systems.md +179 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/power-systems.md +160 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/setting-consistency.md +215 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-init/references/worldbuilding/world-rules.md +86 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/SKILL.md +155 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/cool-points-guide.md +312 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/chapter-planning.md +295 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/conflict-design.md +277 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/outline-structure.md +210 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/outlining/plot-frameworks.md +240 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-plan/references/strand-weave-pattern.md +106 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-query/SKILL.md +151 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-query/references/advanced/foreshadowing.md +120 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-query/references/system-data-flow.md +336 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-query/references/tag-specification.md +155 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-resume/SKILL.md +165 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-resume/references/system-data-flow.md +43 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-resume/references/workflow-resume.md +139 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/SKILL.md +139 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/references/common-mistakes.md +96 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/references/cool-points-guide.md +312 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/references/core-constraints.md +75 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/references/pacing-control.md +129 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-review/references/strand-weave-pattern.md +106 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-write/SKILL.md +524 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/examples.md +51 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/polish.md +47 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/review.md +31 -0
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/apocalypse//345/233/244/350/264/247/346/265/201/typesetting.md +60 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/examples.md +53 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/polish.md +47 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/review.md +31 -0
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//345/207/241/344/272/272/346/265/201/typesetting.md +60 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/examples.md +53 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/polish.md +47 -0
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/review.md +31 -0
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/prompts/genres/xuanhuan//350/213/237/351/201/223/346/265/201/typesetting.md +60 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/backend/webnovel-writer/.claude/skills/webnovel-write/references/core-constraints.md +115 -0
- package/backend/webnovel-writer/.claude/templates/genres//344/277/256/344/273/231.md +103 -0
- package/backend/webnovel-writer/.claude/templates/genres//345/217/244/350/250/200.md +253 -0
- package/backend/webnovel-writer/.claude/templates/genres//345/244/232/345/255/220/345/244/232/347/246/217.md +198 -0
- package/backend/webnovel-writer/.claude/templates/genres//346/233/277/350/272/253/346/226/207.md +194 -0
- package/backend/webnovel-writer/.claude/templates/genres//347/213/227/350/241/200/350/250/200/346/203/205.md +187 -0
- package/backend/webnovel-writer/.claude/templates/genres//347/216/260/345/256/236/351/242/230/346/235/220.md +262 -0
- package/backend/webnovel-writer/.claude/templates/genres//347/237/245/344/271/216/347/237/255/347/257/207.md +239 -0
- package/backend/webnovel-writer/.claude/templates/genres//347/263/273/347/273/237/346/265/201.md +93 -0
- package/backend/webnovel-writer/.claude/templates/genres//350/247/204/345/210/231/346/200/252/350/260/210.md +301 -0
- package/backend/webnovel-writer/.claude/templates/genres//351/203/275/345/270/202/345/274/202/350/203/275.md +95 -0
- package/backend/webnovel-writer/.claude/templates/genres//351/273/221/346/232/227/351/242/230/346/235/220.md +200 -0
- package/backend/webnovel-writer/.claude/templates/golden-finger-templates.md +337 -0
- package/backend/webnovel-writer/LICENSE +674 -0
- package/backend/webnovel-writer/README.md +529 -0
- package/backend/webnovel-writer/backend/dependencies.py +88 -0
- package/backend/webnovel-writer/backend/main.py +72 -0
- package/backend/webnovel-writer/backend/requirements.txt +11 -0
- package/backend/webnovel-writer/backend/routers/__init__.py +2 -0
- package/backend/webnovel-writer/backend/routers/ai.py +505 -0
- package/backend/webnovel-writer/backend/routers/chapters.py +864 -0
- package/backend/webnovel-writer/backend/routers/characters.py +563 -0
- package/backend/webnovel-writer/backend/routers/entities.py +219 -0
- package/backend/webnovel-writer/backend/routers/fanqie.py +197 -0
- package/backend/webnovel-writer/backend/routers/outlines.py +474 -0
- package/backend/webnovel-writer/backend/routers/projects.py +733 -0
- package/backend/webnovel-writer/backend/routers/rag.py +195 -0
- package/backend/webnovel-writer/backend/services/__init__.py +2 -0
- package/backend/webnovel-writer/backend/services/activity_logger.py +60 -0
- package/backend/webnovel-writer/backend/services/ai_service.py +878 -0
- package/backend/webnovel-writer/backend/services/creative_brief.py +110 -0
- package/backend/webnovel-writer/backend/services/fanqie_publisher.py +1205 -0
- package/backend/webnovel-writer/backend/services/genre_catalog.py +1405 -0
- package/backend/webnovel-writer/backend/services/genre_writer_agent.py +170 -0
- package/backend/webnovel-writer/backend/services/project_prompt_store.py +643 -0
- package/backend/webnovel-writer/backend/services/projects_manager.py +407 -0
- package/backend/webnovel-writer/backend/services/prompt_fallbacks.py +773 -0
- package/backend/webnovel-writer/backend/services/reset_derived_data.py +45 -0
- package/backend/webnovel-writer/backend/services/skill_executor.py +7701 -0
- package/backend/webnovel-writer/backend/services/usage_meter.py +21 -0
- package/backend/webnovel-writer/backend/services/writer_tools.py +324 -0
- package/backend/webnovel-writer/backend/utils.py +60 -0
- package/client.js +4942 -0
- package/cordis.patch.yml +18 -0
- package/docs/distribution.md +97 -0
- package/docs/plan/PROGRESS.md +658 -0
- package/docs/plan/STATE.json +374 -0
- package/docs/quickstart.md +203 -0
- package/docs/screenshots.md +57 -0
- package/icon.svg +17 -0
- package/index.js +1076 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/managed-runtime.mjs +186 -0
- package/package.json +113 -4
- package/runtime-download.json +6 -0
- package/runtime-manifest.json +3409 -0
- package/screenshots.json +10 -0
- 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
|