@oh-story/dsh 0.1.3 → 0.1.5
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/README.md +58 -12
- package/lib/client.js +2970 -537
- package/lib/client.js.map +4 -4
- package/lib/drama/manifest.json +218 -178
- package/lib/drama/skills/short-drama/SKILL.md +110 -117
- package/lib/drama/skills/short-drama/references/audience-reveal.md +14 -67
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +26 -77
- package/lib/drama/skills/short-drama/references/creator-documents.md +204 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +73 -63
- package/lib/drama/skills/short-drama/references/knowhow-index.md +5 -0
- package/lib/drama/skills/short-drama/references/look-development.md +2 -3
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +14 -48
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +1 -1
- package/lib/drama/skills/short-drama/references/reference-roles.md +32 -135
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +16 -19
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +1002 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +485 -5
- package/lib/drama/skills/short-drama-assets/SKILL.md +59 -170
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +18 -25
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +13 -15
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +11 -14
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +116 -0
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +6 -12
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +8 -11
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +21 -2
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +12 -105
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +12 -32
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +45 -155
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +12 -13
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +39 -51
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +3 -4
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +15 -14
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +11 -15
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +4 -7
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +23 -23
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +8 -65
- package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +8 -8
- package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +4 -2
- package/lib/drama/skills/short-drama-produce/SKILL.md +67 -15
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +65 -8
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +85 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +27 -10
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +362 -3
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +627 -40
- package/lib/drama/skills/short-drama-produce/scripts/selftest.py +5 -4
- package/lib/drama/skills/short-drama-review/SKILL.md +61 -123
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +10 -15
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +15 -16
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +7 -9
- package/lib/drama/skills/short-drama-review/references/review-method.md +8 -9
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +9 -13
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +104 -4
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +27 -19
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +4 -63
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +116 -238
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +9 -34
- package/lib/drama/skills/short-drama-storyboard/references/comic-keyframe-lexicon.md +156 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +5 -10
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +12 -7
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +19 -4
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +27 -62
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +16 -25
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +21 -23
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +8 -10
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +9 -13
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +16 -71
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +123 -230
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +6 -1
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +17 -1
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +10 -8
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +24 -6
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +2 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +154 -0
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +35 -27
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -11
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +13 -10
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +34 -63
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +41 -0
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +66 -0
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +17 -73
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +115 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +1 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +74 -268
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +7 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +17 -43
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +15 -15
- package/lib/drama/skills/short-drama-write/references/script-craft.md +208 -21
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +11 -70
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +1 -1
- package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +2 -2
- package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +1 -1
- package/lib/index.js +971 -46
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/LICENSE +21 -0
- package/lib/novel-to-game/README.md +180 -0
- package/lib/novel-to-game/README_ZH.md +178 -0
- package/lib/novel-to-game/VERSION +1 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +217 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/.vercelignore +3 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +130 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/bg/compound_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/fate_coda.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/finale/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_accord_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_afterglow_five.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/inner_court_alliance.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day10.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day15.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/public_day5.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/group/title_new_guofeng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/pan_xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/joint/yue_pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/meng/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/meng.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pan.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/pinger.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/xuee.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/milestone/yue.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pan/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/pinger/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/xuee/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/explicit.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/cg/yue/prelude.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/meng/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pan/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/pinger/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/xuee/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/heroine/yue/night.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/household/li_jiaoer.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/assets/scene/gate_collector.webp +0 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +1105 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +2539 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/index.html +18 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/assets.js +147 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/audio.js +332 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +7472 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +13077 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +3028 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +32 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +10 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/vercel.json +23 -0
- package/lib/novel-to-game/examples/jin-ping-mei/build/art/generated-art.json +161 -0
- package/lib/novel-to-game/examples/jin-ping-mei/example.json +12 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +31 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/playable-model.json +99 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +41 -0
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +129 -0
- package/lib/novel-to-game/manifest.json +508 -0
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +73 -0
- package/lib/novel-to-game/skills/game-art-direction/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +119 -0
- package/lib/novel-to-game/skills/game-build/SKILL.md +84 -0
- package/lib/novel-to-game/skills/game-build/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +109 -0
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +56 -0
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +81 -0
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +37 -0
- package/lib/novel-to-game/skills/game-concept/SKILL.md +72 -0
- package/lib/novel-to-game/skills/game-concept/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +94 -0
- package/lib/novel-to-game/skills/game-qa/SKILL.md +50 -0
- package/lib/novel-to-game/skills/game-qa/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-qa/references/qa-contract.md +66 -0
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +45 -0
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +63 -0
- package/lib/novel-to-game/skills/game-world-design/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +59 -0
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +53 -0
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +84 -0
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +56 -0
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +124 -0
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +77 -0
- package/lib/novel-to-game/skills/novel-game-analyze/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +65 -0
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +71 -0
- package/lib/novel-to-game/skills/novel-to-game/agents/openai.yaml +4 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +42 -0
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +51 -0
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +65 -0
- package/lib/oh-story/manifest.json +419 -309
- package/lib/oh-story/roles/character-designer.md +4 -4
- package/lib/oh-story/roles/consistency-checker.md +1 -1
- package/lib/oh-story/roles/narrative-writer.md +41 -42
- package/lib/oh-story/roles/story-architect.md +19 -23
- package/lib/oh-story/roles/story-explorer.md +8 -5
- package/lib/oh-story/skills/browser-cdp/SKILL.md +1 -1
- package/lib/oh-story/skills/story/SKILL.md +16 -9
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-cover/SKILL.md +1 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +10 -5
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-import/SKILL.md +21 -8
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +9 -10
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +2 -2
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +4 -4
- package/lib/oh-story/skills/story-long-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +35 -21
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +7 -3
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +6 -6
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-setup/references/agent-references/hooks-chapter.md → story-long-write/references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-long-write/references/{quality-checklist.md → long-chapter-quality.md} +2 -1
- package/lib/oh-story/skills/story-long-write/references/long-format.md +42 -0
- package/lib/oh-story/skills/{story-setup/references/agent-references/genre-catalog.md → story-long-write/references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-long-write/references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-long-write/references/{reversal-toolkit.md → long-reversal.md} +18 -32
- package/lib/oh-story/skills/story-long-write/references/{hooks-suspense.md → long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +32 -27
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +5 -4
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +17 -11
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +54 -54
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +251 -0
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +303 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-review/SKILL.md +26 -17
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-review/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-review/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-review/references/{quality-checklist.md → review-quality.md} +22 -21
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +14 -6
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +98 -9
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +246 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +85 -41
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +72 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-reference-profiles.md +55 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +2 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +9 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +1 -1
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-chapter.md → story-setup/references/agent-references/long-chapter-hooks.md} +5 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/long-emotional-methods.md +209 -0
- package/lib/oh-story/skills/{story-long-write/references/genre-catalog.md → story-setup/references/agent-references/long-genre-catalog.md} +11 -97
- package/lib/oh-story/skills/story-setup/references/agent-references/{genre-core-mechanics.md → long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +40 -0
- package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-setup/references/agent-references/long-reversal.md} +18 -32
- package/lib/oh-story/skills/{story-short-write/references/hooks-suspense.md → story-setup/references/agent-references/long-suspense.md} +6 -6
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/{emotional-methods.md → short-emotional-methods.md} +4 -4
- package/lib/oh-story/skills/{story-long-write/references/genre-writing-formulas.md → story-setup/references/agent-references/short-genre-formulas.md} +32 -44
- package/lib/oh-story/skills/story-setup/references/agent-references/short-quality.md +39 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/{reversal-toolkit.md → short-reversal.md} +29 -23
- package/lib/oh-story/skills/story-setup/references/agent-references/{hooks-suspense.md → short-suspense.md} +31 -31
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +55 -55
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +28 -28
- package/lib/oh-story/skills/story-short-analyze/references/{character-basics.md → analysis-character-basics.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-design-methods.md → analysis-character-design.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{character-relations.md → analysis-character-relations.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{hooks-paragraph.md → analysis-paragraph-hooks.md} +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/{genre-readers.md → analysis-reader-profile.md} +2 -2
- package/lib/oh-story/skills/story-short-analyze/references/analysis-report-style.md +45 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-genres.md +65 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-hooks.md +77 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-mechanics.md +82 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-patterns.md +50 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-short-suspense.md +98 -0
- package/lib/oh-story/skills/story-short-analyze/references/{genre-writing-techniques.md → analysis-writing-techniques.md} +21 -19
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +21 -28
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +17 -17
- package/lib/oh-story/skills/story-short-analyze/references/{quality-checklist.md → source-story-quality.md} +28 -49
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +2 -2
- package/lib/oh-story/skills/story-short-scan/SKILL.md +1 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +78 -55
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +163 -0
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +6 -4
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +6 -6
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +7 -7
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +32 -44
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +20 -18
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +18 -18
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/short-format.md +38 -8
- package/lib/oh-story/skills/story-short-write/references/{quality-checklist.md → short-prose-quality.md} +22 -21
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +355 -0
- package/lib/oh-story/skills/{story-short-analyze/references/hooks-suspense.md → story-short-write/references/short-suspense.md} +31 -31
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +31 -22
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +871 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +64 -1
- package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +212 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-phase2-contract.js +363 -0
- package/lib/types/client/drama-production-view.d.ts +34 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -0
- package/lib/types/client/drama-production.d.ts +92 -0
- package/lib/types/client/drama-production.d.ts.map +1 -0
- package/lib/types/client/file-activity.d.ts +9 -2
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-intents.d.ts +9 -0
- package/lib/types/client/production-intents.d.ts.map +1 -0
- package/lib/types/client/production-prompts.d.ts +9 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -0
- package/lib/types/client/production-runtime.d.ts +58 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -0
- package/lib/types/client/video-studio.d.ts +41 -0
- package/lib/types/client/video-studio.d.ts.map +1 -0
- package/lib/types/client/workbench-ui.d.ts +5 -0
- package/lib/types/client/workbench-ui.d.ts.map +1 -0
- package/lib/types/game-verification.d.ts +16 -0
- package/lib/types/game-verification.d.ts.map +1 -0
- package/lib/types/index.d.ts +5 -2
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/production-intent.d.ts +21 -0
- package/lib/types/production-intent.d.ts.map +1 -0
- package/lib/types/production-tool.d.ts +5 -0
- package/lib/types/production-tool.d.ts.map +1 -0
- package/lib/types/reference-tool.d.ts +6 -0
- package/lib/types/reference-tool.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts +3 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts +7 -0
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts +42 -0
- package/lib/types/video-project.d.ts.map +1 -0
- package/lib/types/workspace-request-trust.d.ts +6 -0
- package/lib/types/workspace-request-trust.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts +20 -0
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +282 -0
- package/lib/video-recap/LICENSE +21 -0
- package/lib/video-recap/README.en.md +257 -0
- package/lib/video-recap/README.md +255 -0
- package/lib/video-recap/manifest.json +684 -0
- package/lib/video-recap/skills/video-assemble/SKILL.md +97 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/LICENSE.duo-video +21 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/SOURCE.md +15 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_draft_meta_info.json +69 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_segment.json +84 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_combination_video_material.json +98 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_draft.json +204 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_material_video.json +83 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_meta_material_value.json +23 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_project_info.json +133 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_segment.json +70 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_jy_text_styles.json +30 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_audio.json +41 -0
- package/lib/video-recap/skills/video-assemble/references/jianying/empty_yj_material_text.json +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +345 -0
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +34 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +305 -0
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +94 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +205 -0
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +555 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +261 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +767 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +111 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +24 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_templates.py +37 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +191 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +75 -0
- package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +394 -0
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +239 -0
- package/lib/video-recap/skills/video-assemble/scripts/media.py +243 -0
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +477 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +46 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +486 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +376 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +88 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +248 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +89 -0
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +512 -0
- package/lib/video-recap/skills/video-cut/SKILL.md +90 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +67 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +320 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +545 -0
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +348 -0
- package/lib/video-recap/skills/video-cut/scripts/lib.py +77 -0
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +341 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +249 -0
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +745 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +216 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +61 -0
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-recap/references/data-schema.md +534 -0
- package/lib/video-recap/skills/video-recap/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +23 -0
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +251 -0
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +483 -0
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +737 -0
- package/lib/video-recap/skills/video-recap/scripts/lib.py +242 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +457 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +95 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +18 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_contract.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +371 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +201 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +227 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +362 -0
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +129 -0
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +338 -0
- package/lib/video-recap/skills/video-recap/scripts/recap.py +9 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +140 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +550 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +77 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +654 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +335 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +217 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +795 -0
- package/lib/video-recap/skills/video-script/SKILL.md +248 -0
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +225 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +75 -0
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +492 -0
- package/lib/video-recap/skills/video-script/scripts/lib.py +327 -0
- package/lib/video-recap/skills/video-script/scripts/narration.py +12 -0
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-script/scripts/review.py +42 -0
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +262 -0
- package/lib/video-recap/skills/video-script/scripts/review_response.py +761 -0
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +200 -0
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-script/scripts/validate.py +164 -0
- package/lib/video-recap/skills/video-understanding/SKILL.md +75 -0
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +299 -0
- package/lib/video-recap/skills/video-understanding/references/prompt-templates.md +37 -0
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +74 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +399 -0
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +410 -0
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +260 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +12 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +403 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +332 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +442 -0
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +647 -0
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +237 -0
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +513 -0
- package/lib/video-recap/skills/video-understanding/scripts/extract.py +62 -0
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +470 -0
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +678 -0
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +204 -0
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +507 -0
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +199 -0
- package/lib/video-recap/skills/video-understanding/scripts/understand.py +9 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +216 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +327 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +367 -0
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +162 -0
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +705 -0
- package/lib/video-recap/skills/video-voiceover/SKILL.md +81 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +637 -0
- package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +109 -0
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +421 -0
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +113 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +782 -0
- package/package.json +57 -41
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +0 -130
- package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +0 -241
- package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +0 -169
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +0 -444
- package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +0 -247
- package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +0 -582
- package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +0 -147
- package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +0 -490
- package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +0 -425
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +0 -453
- /package/lib/oh-story/skills/{story-long-write/references/hooks-chapter.md → story-setup/references/agent-references/short-chapter-hooks.md} +0 -0
- /package/lib/oh-story/skills/{story-long-write/references/hooks-paragraph.md → story-setup/references/agent-references/short-paragraph-hooks.md} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 长篇章级钩子:章首/章尾选择与跨章期待
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 写长篇章首或章尾时加载。先按章节功能和跨章期待选类型,再决定落点与篇幅。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -210,7 +210,7 @@
|
|
|
210
210
|
- 前置小无敌:打脸前必须把道具/人物/实力准备好,没有则读者担惊受怕,嘲讽变虐主
|
|
211
211
|
- 铺垫比打脸重要:铺垫到位后主角站着不说话都能装逼
|
|
212
212
|
- 打脸对象层级决定爽感层级:路人甲震惊不叫爽,有分量的人震惊才叫爽
|
|
213
|
-
-
|
|
213
|
+
- 章末钩子只写到期待成立为止;篇幅服从信息复杂度,不设固定百字配额
|
|
214
214
|
|
|
215
215
|
---
|
|
216
216
|
|
|
@@ -218,8 +218,8 @@
|
|
|
218
218
|
|
|
219
219
|
写完章首/章尾后对照:
|
|
220
220
|
|
|
221
|
-
- [ ]
|
|
221
|
+
- [ ] 章首尽早出现可识别的行动、异常或未闭合期待;不按固定百字位置机械卡点
|
|
222
222
|
- [ ] 章尾有让读者想翻下一页的东西
|
|
223
223
|
- [ ] 钩子强度与章节阶段匹配(日常章不必强钩子)
|
|
224
224
|
- [ ] 连续两章不用同一种钩子
|
|
225
|
-
- [ ]
|
|
225
|
+
- [ ] 钩子没有为凑长度重复解释,落点与本章功能、下一章承接一致
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# 长篇情感设计:单元情绪引擎 + 三板斧 + 失败模式
|
|
2
|
+
|
|
3
|
+
> 设计情感桥段时加载。先用下方通用长篇单元情绪引擎规划因果链;三板斧只在适用场景中作为可选技法。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 长篇单元情绪引擎(通用正向框架)
|
|
8
|
+
|
|
9
|
+
每个剧情单元先设计能制造情绪与兑现的**正向发动机**,再做安全审查:
|
|
10
|
+
|
|
11
|
+
> **核心情绪命题 → 承载对象/情绪缺口 → 受阻或缺口维持原因 → 本轮触发 → 主角不可替代的点火/转化动作 → 意义变化或可见兑现 → 题材/契约兑现**
|
|
12
|
+
|
|
13
|
+
这条因果链适用于爽、燃、甜、虐、恐、治愈等不同核心情绪。承载对象可以是人物、关系、目标、规则或场景;不适用的环节可写“无/即时”,但必须保持因果闭合。它不要求每个题材都有长期受阻、最终画面或克制反应,也不规定单一机制:误解、物件、反转、死亡等都不是必备项。下文“情感虐心三板斧”是适合部分情感题材的**可选技法**,不是通用引擎的硬模板。
|
|
14
|
+
|
|
15
|
+
### 正向发动机与负向护栏的顺序
|
|
16
|
+
|
|
17
|
+
1. **先设计正向发动机**:明确读者会为什么投入,本轮如何让这份投入改变意义并得到可见兑现。
|
|
18
|
+
2. **后用项目读者契约做负向护栏诊断**:检查因果权 + 结算权、期待所有权与终局储备,排查契约/推进失败。“安全”只代表没踩红线,不代表好看;护栏不能代替情绪发动机。
|
|
19
|
+
|
|
20
|
+
### 合理性五问
|
|
21
|
+
|
|
22
|
+
1. 为何是该承载对象?
|
|
23
|
+
2. 为何是现在?
|
|
24
|
+
3. 为什么没有被直接解决 / 为何此前仍悬置?
|
|
25
|
+
4. 主角凭什么介入/转化?
|
|
26
|
+
5. 现实/设定边界如何约束?
|
|
27
|
+
|
|
28
|
+
五问用来截住巧合式工具人、为推情节而突然变蠢的机构,以及事后补一段说明的解释补丁。
|
|
29
|
+
|
|
30
|
+
### 强度原则
|
|
31
|
+
|
|
32
|
+
强情绪来自**具体投入、受阻/延迟、意义变化、可信反应等机制按题材组合**,不要求全部出现,也不来自堆叠死亡、疾病和哭喊。克制反应只是部分情绪的可选放大器。物件、对话、动作、身份、规则、关系都可作为可选锚点;锚点频率随篇幅和读者记忆需求调整,从不强制重复三次。集体或价值抬升也是可选的;只在题材需要时,才由个体兑现扩展到题材核心情绪。
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 决策路由
|
|
37
|
+
|
|
38
|
+
| 你的情感设计场景是 | 用这个策略 | 跳转到 |
|
|
39
|
+
|---------------|-----------|----------|
|
|
40
|
+
| 规划长篇剧情单元的情绪引擎 | 通用长篇单元情绪引擎 | 长篇单元情绪引擎 |
|
|
41
|
+
| 建立角色羁绊(让读者相信关系) | 羁绊铺设(第一斧) | 三板斧 §1 |
|
|
42
|
+
| 制造情感撕裂(反差/错位/背叛) | 情感撕裂(第二斧) | 三板斧 §2 |
|
|
43
|
+
| 写结尾余韵(安静细节击穿读者) | 余韵钝痛(第三斧) | 三板斧 §3 |
|
|
44
|
+
| 规划整体情感节奏曲线 | 拉扯节奏设计 | 拉扯节奏 |
|
|
45
|
+
| 不同题材的情感策略选择 | 题材策略差异 | 按题材 |
|
|
46
|
+
| 检查情感设计是否有效 | 失败模式排查 + 快速自查 | 底部清单 |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
50
|
+
## 情感虐心三板斧
|
|
51
|
+
|
|
52
|
+
### 第一斧:羁绊铺设(前 1/3)
|
|
53
|
+
|
|
54
|
+
**目标**:用具体物件/数字/细节建立关系质感,让读者相信这段关系是真实的。
|
|
55
|
+
|
|
56
|
+
**方法**:
|
|
57
|
+
- 用具体数字建立时间感:「相恋八年」「昏迷五年」「七年光景」
|
|
58
|
+
- 用具体物件承载感情:金锁(姐姐的生日礼物)、账本数字(还债记录)、木头小马(父王磨的)
|
|
59
|
+
- 用重复动作建立习惯:每天一碗粥、每两周来看一次、每年冬天冻得睡不着
|
|
60
|
+
|
|
61
|
+
**案例**:
|
|
62
|
+
- 《迟来二十年》:用二十年的账本数字(八万块)建立母女关系的重量
|
|
63
|
+
- 《我在佛前求你》:昏迷五年、求神拜佛的细节、从初中开始的暗恋
|
|
64
|
+
- 《皇弟欺负幼子》:七年质子生涯的具体苦难(跪雪地、挨巴掌、吃馊饭)
|
|
65
|
+
|
|
66
|
+
**核心**:羁绊越具体,后面的撕裂越痛。不要用「他们很相爱」这种抽象描述。
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### 第二斧:情感撕裂(中后段)
|
|
71
|
+
|
|
72
|
+
**目标**:制造反差,让读者以为恨对了 → 发现恨错了(或反过来)。
|
|
73
|
+
|
|
74
|
+
**方法**:
|
|
75
|
+
- **反差法**:先展示温暖一面,再用残酷真相击碎
|
|
76
|
+
- **错位法**:角色 A 以为在保护角色 B,实际上在伤害
|
|
77
|
+
- **延迟真相法**:关键信息在读者最不期待的时候揭示
|
|
78
|
+
|
|
79
|
+
**案例**:
|
|
80
|
+
- 《姐夫捎路要奶粉钱》:妈妈表面软弱可怜,实际一直操控姐姐索取钱财 → 金锁是假的(金包铜)→ 反差撕裂
|
|
81
|
+
- 《皇弟欺负幼子》:王氏表面温柔(送手炉、煎汤药)→ 实际下药逼疯先皇后 → 用诛心话逼死
|
|
82
|
+
- 《重生弟弟》:弟弟深爱女友 → 女友是诈骗犯 → 怀孕是假的 → 被骗到电诈园区
|
|
83
|
+
|
|
84
|
+
**核心**:撕裂的力度取决于铺垫的厚度。没有好的羁绊铺设,撕裂就是无根之木。
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
### 第三斧:余韵钝痛(结尾)
|
|
89
|
+
|
|
90
|
+
**目标**:不用大哭大闹,用安静细节击穿读者防线。
|
|
91
|
+
|
|
92
|
+
**方法**:
|
|
93
|
+
- 用日常动作承载巨大情感:继续喂粥、把衣服叠好、不回头
|
|
94
|
+
- 用物件细节制造余韵:坏掉的金锁、木头小马、沾血的戒指
|
|
95
|
+
- 用「不」制造留白:不解释、不回头、不流泪
|
|
96
|
+
|
|
97
|
+
**案例**:
|
|
98
|
+
- 《皇弟欺负幼子》:「他拿着那匹被我磨得很光滑的木头小马……他握着正好。」
|
|
99
|
+
- 《姐夫捎路要奶粉钱》:「我的手机清净了不少。那些困扰我很久的麻烦,在一瞬间变得很小很小。」
|
|
100
|
+
- 《准儿媳打分》:「办了收养手续后,她第一次踏进这个陌生的家……我知道,这一次我没选错。」
|
|
101
|
+
|
|
102
|
+
**核心**:最好的余韵不靠大哭,靠「看完之后很久都忘不掉」。
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
## 情感拉扯节奏设计
|
|
107
|
+
|
|
108
|
+
### 基本节奏曲线
|
|
109
|
+
|
|
110
|
+
```
|
|
111
|
+
温暖 → 残忍 → 善意 → 真相 → 原谅 → 来不及 → 释然 → 细节暴击
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
不是所有故事都走完整曲线。按题材选择子集:
|
|
115
|
+
|
|
116
|
+
| 题材 | 典型节奏 | 核心拉扯 |
|
|
117
|
+
|------|----------|----------|
|
|
118
|
+
| 世情/爽文 | 欺压 → 忍耐 → 爆发 → 打脸 | 情绪反弹快、打脸密度高 |
|
|
119
|
+
| 情感/虐心 | 甜蜜 → 破碎 → 挽回 → 错过 | 慢铺垫、后劲大 |
|
|
120
|
+
| 古言/复仇 | 隐忍 → 布局 → 揭穿 → 报应 | 设定简洁、暴力美学 |
|
|
121
|
+
| 悬疑/推理 | 平静 → 不安 → 真相 → 震惊 | 信息差制造不安 |
|
|
122
|
+
| 年代/亲情 | 误解 → 冲突 → 真相 → 和解 | 代际冲突、时代质感 |
|
|
123
|
+
|
|
124
|
+
### 拉扯原则
|
|
125
|
+
|
|
126
|
+
1. **情绪转向频率是题材与篇幅经验法则**:结合题材、篇幅和既有兑现节奏调整,不固定要求每 3-5 个小节转向
|
|
127
|
+
2. **每次转向都要有触发事件**(不能无理由地改变情绪)
|
|
128
|
+
3. **最后一次转向决定结尾余韵的基调**
|
|
129
|
+
4. **爽文允许快速反弹,虐文需要更长铺垫**
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## 按题材的情感策略差异
|
|
134
|
+
|
|
135
|
+
### 世情/爽文
|
|
136
|
+
|
|
137
|
+
- 情绪反弹速度:快(受辱后 2-3 节内打脸)
|
|
138
|
+
- 打脸密度:每 3-5 节一次
|
|
139
|
+
- 反派嚣张度:递增(第一次小嚣张,最后一次大嚣张)
|
|
140
|
+
- 结尾基调:痛快、解气
|
|
141
|
+
- 案例:《准儿媳打分》— 打分制反制、铁盒零分、断绝关系
|
|
142
|
+
|
|
143
|
+
### 情感/虐心
|
|
144
|
+
|
|
145
|
+
- 羁绊细节密度:高(前 1/3 必须建立深厚羁绊)
|
|
146
|
+
- 反差设计:先暖后冷,先甜后苦
|
|
147
|
+
- 余韵技法:安静结尾 + 物件细节
|
|
148
|
+
- 结尾基调:意难平、释然
|
|
149
|
+
- 案例:《姐夫捎路要奶粉钱》— 金锁真相 → 假爱 → 独立
|
|
150
|
+
|
|
151
|
+
### 古言/复仇
|
|
152
|
+
|
|
153
|
+
- 设定简洁原则:人物关系清晰,不搞复杂世界观
|
|
154
|
+
- 暴力美学写法:打脸要直接,不拖泥带水
|
|
155
|
+
- 底牌时机:最后 1/4 揭示最大底牌
|
|
156
|
+
- 结尾基调:大快人心、因果报应
|
|
157
|
+
- 案例:《皇弟欺负幼子》— 一声令下打二十棍 → 查出真相 → 废后
|
|
158
|
+
|
|
159
|
+
### 悬疑/推理
|
|
160
|
+
|
|
161
|
+
- 信息差布局:读者知道角色不知道,或反过来
|
|
162
|
+
- 排除法结构:逐步排除可能性,最后只剩真相
|
|
163
|
+
- 动机揭示节奏:先揭示做了什么,再揭示为什么做
|
|
164
|
+
- 结尾基调:细思极恐、原来如此
|
|
165
|
+
- 案例:《重生弟弟》— 重生设定 + 诈骗犯身份 + 电诈园区
|
|
166
|
+
|
|
167
|
+
### 年代/亲情
|
|
168
|
+
|
|
169
|
+
- 代际冲突处理:不站队,展示双方的苦
|
|
170
|
+
- 时代细节质感:用时代特有的物件/习俗建立质感
|
|
171
|
+
- 和解节奏:不急和解,先让双方充分受伤
|
|
172
|
+
- 结尾基调:温暖中带着遗憾
|
|
173
|
+
- 案例:《姐夫捎路要奶粉钱》— 亲子关系 → 金锁真相 → 断裂
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 常见失败模式
|
|
178
|
+
|
|
179
|
+
| 失败模式 | 识别方法 | 修正方向 |
|
|
180
|
+
|----------|----------|----------|
|
|
181
|
+
| **太平** | 连续 5+ 节没有情绪转折 | 插入意外事件或新信息 |
|
|
182
|
+
| **太赶** | 重大转折缺少可辨认的铺垫 | 按转折重量与篇幅给予足够且可辨认的铺垫,不固定三节 |
|
|
183
|
+
| **假虐** | 读者不心疼,只是看着难受 | 检查羁绊铺设是否具体 |
|
|
184
|
+
| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |
|
|
185
|
+
| **烂尾** | 反转后仍长时间重复交代 | 按题材与篇幅适配的速度收束或冷却,不固定五百字 |
|
|
186
|
+
| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设,确保行为逻辑一致 |
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 快速自查
|
|
191
|
+
|
|
192
|
+
设计情感时,用这个清单:
|
|
193
|
+
|
|
194
|
+
- [ ] 前 1/3 有具体羁绊细节(不是抽象描述)?
|
|
195
|
+
- [ ] 中段有反差/撕裂(读者以为 A → 实际是 B)?
|
|
196
|
+
- [ ] 结尾有安静细节(不是大段抒情)?
|
|
197
|
+
- [ ] 情绪转向频率是否按题材、篇幅和既有兑现节奏调整,而非固定密度?
|
|
198
|
+
- [ ] 反派行为符合其人设逻辑?
|
|
199
|
+
- [ ] 不存在上述 6 种失败模式?
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## 三板斧与 SKILL.md 五段结构映射
|
|
204
|
+
|
|
205
|
+
| 三板斧 | 对应 SKILL.md 五段 | 说明 |
|
|
206
|
+
|--------|-------------------|------|
|
|
207
|
+
| 第一斧:羁绊铺设(前 1/3) | 铺垫段(第二段,占 30-40%) | 用物件/数字/习惯建立关系质感 |
|
|
208
|
+
| 第二斧:情感撕裂(中后段) | 升级段(第三段)+ 反转段(第四段) | 反差/错位/延迟真相制造撕裂 |
|
|
209
|
+
| 第三斧:余韵钝痛(结尾) | 结尾段(第五段,占 5-10%) | 安静细节收尾,不写大段抒情 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 长篇题材框架速查
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> **用途**:长篇选题和大纲设计时对照使用。节点占比用于检查整卷/全书功能分配,不是每章硬配额;短篇结构转交 `story-short-write`。
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
|
|
32
32
|
| 还需要什么 | 加载 |
|
|
33
33
|
|-----------|------|
|
|
34
|
-
| 核心梗设计与循环机制 | `genre-
|
|
34
|
+
| 核心梗设计与循环机制 | `long-genre-mechanics.md` |
|
|
35
35
|
| 读者心理与期待管理 | `genre-readers.md` |
|
|
36
|
-
|
|
|
36
|
+
| 对应长篇题材卡 | `genre-prose-cards.md` 索引及 `genre-prose-cards/` 对应题材卡 |
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -62,18 +62,6 @@
|
|
|
62
62
|
| 7.反复拉扯 | 多次求复合被拒 | 20% | 爽(打脸) |
|
|
63
63
|
| 8.结局 | 开放/回头/悲剧 | 15% | 释放 |
|
|
64
64
|
|
|
65
|
-
### 短篇(压缩三幕)
|
|
66
|
-
|
|
67
|
-
**核心**:先虐后爽,后悔的男人+不回头的女人
|
|
68
|
-
|
|
69
|
-
| 幕 | 占比 | 内容要点 |
|
|
70
|
-
|----|------|----------|
|
|
71
|
-
| 建压 | 40% | 冷暴力/出轨(具体事件)→最后忍让→平静离开 |
|
|
72
|
-
| 爆点 | 35% | 丈夫后悔→妻子新生活→追妻被拒→信息差释放 |
|
|
73
|
-
| 落定 | 25% | 火葬场→妻子最终选择→一句话定调 |
|
|
74
|
-
|
|
75
|
-
**技法**:前期虐越狠后期越爽;妻子至少被拒绝两次;丈夫视角悔恨比妻子视角坚强更有冲击;钩子=信息差+打脸
|
|
76
|
-
|
|
77
65
|
---
|
|
78
66
|
|
|
79
67
|
## 重生复仇
|
|
@@ -101,16 +89,6 @@
|
|
|
101
89
|
| 7.反派下场 | 逐一报应 | 10% | 爽(宣泄) |
|
|
102
90
|
| 8.新生活 | 选择新方向 | 10% | 治愈/释然 |
|
|
103
91
|
|
|
104
|
-
### 短篇(压缩三幕)
|
|
105
|
-
|
|
106
|
-
| 幕 | 占比 | 内容要点 |
|
|
107
|
-
|----|------|----------|
|
|
108
|
-
| 建压 | 35% | 重生节点→前世闪回→第一个不同选择→信息差建优势 |
|
|
109
|
-
| 爆点 | 40% | 逐步拆解仇人→两个打脸名场面→仇人反击落空→前世未知真相 |
|
|
110
|
-
| 落定 | 25% | 终极复仇→弥补遗憾→新生开始 |
|
|
111
|
-
|
|
112
|
-
**技法**:不能太顺利要有变数;打脸分层递进;前世闪回有选择不倒完;钩子=信息差+暗牌+打脸
|
|
113
|
-
|
|
114
92
|
---
|
|
115
93
|
|
|
116
94
|
## 小三/婚恋
|
|
@@ -133,16 +111,6 @@
|
|
|
133
111
|
| 7.报应 | 10% | 爽(宣泄) |
|
|
134
112
|
| 8.新生活 | 10% | 治愈 |
|
|
135
113
|
|
|
136
|
-
### 短篇(压缩三幕)
|
|
137
|
-
|
|
138
|
-
| 幕 | 占比 | 要点 |
|
|
139
|
-
|----|------|------|
|
|
140
|
-
| 建压 | 40% | 暗示裂痕→蛛丝马迹→确认→冷静(不是崩溃) |
|
|
141
|
-
| 爆点 | 35% | 暗中布局→表面周旋(戏剧张力)→摊牌 |
|
|
142
|
-
| 落定 | 25% | 法律/揭露/经济独立→渣男下场→新生 |
|
|
143
|
-
|
|
144
|
-
**技法**:发现过程要有悬念;妻子要有策略不是傻白甜;钩子=信息差+暗牌+倒计时
|
|
145
|
-
|
|
146
114
|
---
|
|
147
115
|
|
|
148
116
|
## 世情
|
|
@@ -165,16 +133,6 @@
|
|
|
165
133
|
| 7.报应 | 15% | 爽(宣泄) |
|
|
166
134
|
| 8.善有善报 | 10% | 治愈 |
|
|
167
135
|
|
|
168
|
-
### 短篇(压缩三幕)
|
|
169
|
-
|
|
170
|
-
| 幕 | 占比 | 要点 |
|
|
171
|
-
|----|------|------|
|
|
172
|
-
| 建压 | 40% | 困境→暴露事件→周围人态度→忍还是争 |
|
|
173
|
-
| 爆点 | 35% | 冲突升级→背叛/落井下石→反击→反转 |
|
|
174
|
-
| 落定 | 25% | 解决→人心揭示→成长→留白 |
|
|
175
|
-
|
|
176
|
-
**技法**:靠细节不靠大事件;人物不能非黑即白;钩子=代价+弱者+反转
|
|
177
|
-
|
|
178
136
|
---
|
|
179
137
|
|
|
180
138
|
## 仙侠/玄幻
|
|
@@ -199,16 +157,6 @@
|
|
|
199
157
|
|
|
200
158
|
**关键维度**:力量体系清晰不崩 | 金手指独特有限制随成长 | 战斗有策略非纯数值 | 地图逐层展开 | 升级节奏均匀
|
|
201
159
|
|
|
202
|
-
### 短篇(压缩三幕)
|
|
203
|
-
|
|
204
|
-
| 幕 | 占比 | 要点 |
|
|
205
|
-
|----|------|------|
|
|
206
|
-
| 建压 | 35% | 世界规则+主角位置→困境→核心设定→人物出场 |
|
|
207
|
-
| 爆点 | 40% | 修炼转折→正面交锋→大阴谋→关键反转 |
|
|
208
|
-
| 落定 | 25% | 终极对决(有策略有代价)→矛盾解决→仙侠留白 |
|
|
209
|
-
|
|
210
|
-
**技法**:世界观压缩到最少用事件带出;等级/功法3-5个概念足矣;冲突落在"情"非"力";钩子=暗牌+反转+代价
|
|
211
|
-
|
|
212
160
|
---
|
|
213
161
|
|
|
214
162
|
## 死人文学
|
|
@@ -231,16 +179,6 @@
|
|
|
231
179
|
| 7.因果终结 | 10% | 释放 |
|
|
232
180
|
| 8.余韵结局 | 10% | 意难平 |
|
|
233
181
|
|
|
234
|
-
### 短篇(压缩三幕)
|
|
235
|
-
|
|
236
|
-
| 幕 | 占比 | 要点 |
|
|
237
|
-
|----|------|------|
|
|
238
|
-
| 建压 | 35% | 死亡事实→死者视角→最放不下的事→生者状态 |
|
|
239
|
-
| 爆点 | 40% | 回忆现实交叉→真相→反转→最扎心时刻 |
|
|
240
|
-
| 落定 | 25% | 放手或执念→生者继续或崩塌→安静画面→一句话/意象 |
|
|
241
|
-
|
|
242
|
-
**技法**:核心是"来不及";死者第一人称最有冲击;情绪克制越克制越扎心;钩子=代价+信息差+弱者
|
|
243
|
-
|
|
244
182
|
---
|
|
245
183
|
|
|
246
184
|
## 都市高武
|
|
@@ -263,14 +201,6 @@
|
|
|
263
201
|
|
|
264
202
|
**关键**:金钱驱动反复挂钩 | 换地图用过渡人物连接 | 10万字前数据偏弱是常态 | 前三章=底层处境→金手指→第一次展示
|
|
265
203
|
|
|
266
|
-
### 短篇(压缩三幕)
|
|
267
|
-
|
|
268
|
-
| 幕 | 占比 | 要点 |
|
|
269
|
-
|----|------|------|
|
|
270
|
-
| 建压 | 35% | 经济困境→被压制→金手指触发 |
|
|
271
|
-
| 爆点 | 40% | 实力提升→碾压→更强对手出现但不惧 |
|
|
272
|
-
| 落定 | 25% | 解决对手→阶段性胜利→暗示更大世界 |
|
|
273
|
-
|
|
274
204
|
---
|
|
275
205
|
|
|
276
206
|
## 霸总/甜宠
|
|
@@ -292,14 +222,6 @@
|
|
|
292
222
|
|
|
293
223
|
**关键**:甜的密度决定粘性 | 宠要"别人做不到的方式" | 阻力不能太强(虐就跑偏)不能太弱(没张力) | 女主要独立闪光点
|
|
294
224
|
|
|
295
|
-
### 短篇(压缩三幕)
|
|
296
|
-
|
|
297
|
-
| 幕 | 占比 | 要点 |
|
|
298
|
-
|----|------|------|
|
|
299
|
-
| 建压 | 30% | 女主困境→相遇→男主展露兴趣 |
|
|
300
|
-
| 爆点 | 40% | 宠溺(闺蜜震惊标配)→超出预期→危机轻松化解 |
|
|
301
|
-
| 落定 | 30% | 感情确认→极致甜场景→暗示幸福 |
|
|
302
|
-
|
|
303
225
|
---
|
|
304
226
|
|
|
305
227
|
## 同人流派
|
|
@@ -388,14 +310,6 @@
|
|
|
388
310
|
|
|
389
311
|
**关键**:大部分读者是"云爱好者"爽感优先于还原度 | 现代认知信息差=最大金手指 | 架空可降低门槛 | 盘点+历史共鸣感强
|
|
390
312
|
|
|
391
|
-
### 短篇(压缩三幕)
|
|
392
|
-
|
|
393
|
-
| 幕 | 占比 | 要点 |
|
|
394
|
-
|----|------|------|
|
|
395
|
-
| 建压 | 30% | 穿越到关键时刻→面临危机 |
|
|
396
|
-
| 爆点 | 45% | 利用现代知识/信息差解决→打脸质疑者 |
|
|
397
|
-
| 落定 | 25% | 历史轨迹改变→获得新地位 |
|
|
398
|
-
|
|
399
313
|
---
|
|
400
314
|
|
|
401
315
|
## 文娱/娱乐圈
|
|
@@ -449,14 +363,14 @@
|
|
|
449
363
|
|
|
450
364
|
---
|
|
451
365
|
|
|
452
|
-
##
|
|
366
|
+
## 长篇设计提醒
|
|
453
367
|
|
|
454
368
|
| 检查项 | 说明 |
|
|
455
369
|
|--------|------|
|
|
456
370
|
| 题材识别 | 属于哪个框架?有无跨框架混搭? |
|
|
457
|
-
| 节奏比例 |
|
|
458
|
-
| 反转位置 |
|
|
459
|
-
| 钩子密度 |
|
|
371
|
+
| 节奏比例 | 节点功能是否在对应卷/全书阶段出现,偏移是否有题材或人物因果支持? |
|
|
372
|
+
| 反转位置 | 是否在阶段旧认知已经支撑过行动、且揭示后仍有后果空间时出现? |
|
|
373
|
+
| 钩子密度 | 高压、推进、低压章节是否形成张弛,期待链有没有断? |
|
|
460
374
|
| 字数效率 | 有无废段落?哪些可删? |
|
|
461
375
|
| 情绪落点 | 读完最后一句是什么感觉? |
|
|
462
376
|
|
|
@@ -464,15 +378,15 @@
|
|
|
464
378
|
|
|
465
379
|
## 质量检查清单
|
|
466
380
|
|
|
467
|
-
|
|
381
|
+
每次使用本手册完成长篇定位或大纲后,逐项核对:
|
|
468
382
|
|
|
469
383
|
| # | 检查项 | 通过标准 |
|
|
470
384
|
|---|--------|----------|
|
|
471
385
|
| 1 | **题材定位正确** | 已通过路由表确认框架,无模棱两可 |
|
|
472
|
-
| 2 |
|
|
386
|
+
| 2 | **结构功能完整** | 8节点/5阶段承担的功能齐全;实际比例服从题材、卷功能与人物因果,不按固定 ±5% 判死 |
|
|
473
387
|
| 3 | **情绪节拍完整** | 压抑→爆发→释放的完整情绪弧线存在,无断层 |
|
|
474
388
|
| 4 | **人物弧线明确** | 主角有清晰的起点和终点变化;反派有独立动机不是工具人 |
|
|
475
|
-
| 5 |
|
|
389
|
+
| 5 | **期待链不断** | 章节强弱符合定位;回收旧期待前已经建立下一层期待,不按固定字数配钩子 |
|
|
476
390
|
| 6 | **金手指自洽** | 金手指规则明确,使用有限制,后期不崩 |
|
|
477
391
|
| 7 | **信息差利用到位** | 有读者知道但角色不知道、或角色知道但对手不知道的信息差设计 |
|
|
478
392
|
| 8 | **技法匹配题材** | 已对照对应题材的"技法"条目,无遗漏 |
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# 长篇质量覆盖
|
|
2
|
+
|
|
3
|
+
> 与 `agent-quality.md` 配套,仅在 `long` profile 加载。长篇按章、单元、卷和全书分层审查;短篇全文百分比、每节字数和对话密度不适用。
|
|
4
|
+
|
|
5
|
+
## 黄金三章
|
|
6
|
+
|
|
7
|
+
- [ ] 第一章建立主角处境、主动目标或不可忽略的异常,而非只展示世界观。
|
|
8
|
+
- [ ] 第二章让阻力、代价或信息复杂度升级,不重复第一章同类受挫。
|
|
9
|
+
- [ ] 第三章给出阶段追查方向、可执行目标或第一笔兑现,同时保留更高层问题。
|
|
10
|
+
- [ ] 主角在前三章作出不可替代的选择;关键因果和收益没有被导师、机构或偶然性夺走。
|
|
11
|
+
- [ ] 每章结尾有继续阅读的理由;低压章可以是阶段目标、关系变化或未完成动作,不强求强悬念。
|
|
12
|
+
- [ ] 核心机制在前三章至少立住两条可验证硬规则和一个尚未解释的例外;例外制造问题,不能推翻刚建立的规则。
|
|
13
|
+
- [ ] 第三章结束后仍保留可执行的阶段目标;若嫌疑人、入口或线索载体退出,必须留下可追查的物件、地点、见证人或权限链。
|
|
14
|
+
|
|
15
|
+
## 连载节奏
|
|
16
|
+
|
|
17
|
+
- [ ] 最近一个章节窗口有可见进展;窗口长度按当前卷和章节定位判断,不固定为短篇节数。
|
|
18
|
+
- [ ] 高压、推进、低压、关系和信息整理章形成张弛,连续章节没有同一情绪母题和同一种钩子高位运行。
|
|
19
|
+
- [ ] 短期、中期、远期期待都有人维护;回收旧期待前已建立下一层期待。
|
|
20
|
+
- [ ] 单章反转改变下一步行动,卷级反转改变对阶段机制的理解,全书真相没有被提前透支。
|
|
21
|
+
|
|
22
|
+
## 读者契约与终局储备
|
|
23
|
+
|
|
24
|
+
- [ ] 核心卖点按开篇承诺兑现,期待所有权和收益归属清楚。
|
|
25
|
+
- [ ] 主角保有因果权与结算权;配角可以执行局部动作,但不能无声夺走关键选择和结算。
|
|
26
|
+
- [ ] 延期的期待支付了利息,而不是被流程、解释或新设定吞掉。
|
|
27
|
+
- [ ] 本卷没有动用后续阶段才该解锁的宿敌、身份、真相或能力上限。
|
|
28
|
+
- [ ] 高潮后允许短暂低压和可见奖励,不机械立即追加更大危机。
|
|
29
|
+
|
|
30
|
+
## 长篇反向检查
|
|
31
|
+
|
|
32
|
+
- 删除“安全解释”后情绪是否更强、因果仍成立?
|
|
33
|
+
- 若保留风险情节,它是否换来更强期待、代价、关系变化或资源变化?
|
|
34
|
+
- 章节功能成立是否依赖固定“每章一高潮”或全文百分比?若是,改回章节定位与跨章因果。
|
|
35
|
+
|
|
36
|
+
## 审查输出合同
|
|
37
|
+
|
|
38
|
+
- 阻断项和高风险项必须同时给出:可定位证据、失败影响、最小修法;存在方向分叉时再给一个可选替代。
|
|
39
|
+
- 最小修法需保护后续容量:说明保留什么期待、推迟什么揭示、下一阶段具体追什么,而非只让当前三章更热闹。
|
|
40
|
+
- 同类症状合并到一个根因;优先指出会让阶段目标失效、机制天花板提前或主角因果权旁落的问题。
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 长篇反转设计
|
|
2
2
|
> 操作手册:反转类型、嵌套反转、误导技巧、打脸节奏。按决策路由选用,按设置/揭示步骤执行,用自检清单验收。
|
|
3
3
|
> 反转类型枚举与拆文 `_meta.json.reversal_type` 字段一致:视角/身份/动机/时间线/信息/认知/无反转。
|
|
4
4
|
|
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
**写法要点**:
|
|
176
176
|
1. 不为"显得有设计感"硬加反转
|
|
177
177
|
2. 报应型:每个报应要让读者等过、铺过,兑现时才解气
|
|
178
|
-
3.
|
|
178
|
+
3. 甜宠型:在关系阶段节点给甜点/反差点,不为每章硬塞反转
|
|
179
179
|
|
|
180
180
|
> 拆文时遇到此类,`reversal_type` 填「无反转」,`setup_clues`(反转铺垫)一项跳过阈值(见 analyze output-contract 的「structure_counts 数值校验」)。
|
|
181
181
|
|
|
@@ -183,19 +183,19 @@
|
|
|
183
183
|
|
|
184
184
|
## 嵌套反转
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
长篇可在单元、卷和全书三层安排反转,但每层只能有一个主认知变化;下位反转服务上位谜团,不能不断推翻世界规则。
|
|
187
187
|
|
|
188
188
|
### 双层嵌套
|
|
189
189
|
|
|
190
190
|
```
|
|
191
191
|
读者以为:A(铺垫阶段)
|
|
192
|
-
第一层反转:其实是 B
|
|
193
|
-
第二层反转:B
|
|
192
|
+
第一层反转:其实是 B!(阶段假答案)
|
|
193
|
+
第二层反转:B 解释了局部,但 C 才是更高层机制!(卷末认知升级)
|
|
194
194
|
```
|
|
195
195
|
|
|
196
196
|
**执行要求**:
|
|
197
197
|
- 第一层反转必须足够有说服力,让读者接受B就是真相
|
|
198
|
-
-
|
|
198
|
+
- 第一层后给至少一个行动后果或关系变化,不在同一场景立刻翻回去
|
|
199
199
|
- 第二层要能同时解释A和B,比第一层更震撼
|
|
200
200
|
|
|
201
201
|
示例:
|
|
@@ -208,36 +208,22 @@
|
|
|
208
208
|
|
|
209
209
|
### 三层嵌套(慎用)
|
|
210
210
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
**执行要求**:
|
|
214
|
-
- 间隔递减:第一层50-60%,第二层75-80%,第三层90-95%
|
|
215
|
-
- 第三层必须最短最狠——一句话就够
|
|
216
|
-
- 最后一层必须回答前面所有疑问
|
|
217
|
-
- 每层都要有情感冲击,不只是信息冲击
|
|
218
|
-
- 题材限制:只适合高智商悬疑、精心设计的复仇
|
|
211
|
+
只在“单元假答案 → 卷级机制 → 全书真相”确有不同叙事职责时使用。每层必须改变角色下一步行动,并留下可回溯证据;若只是连续换答案,砍到两层。
|
|
219
212
|
|
|
220
213
|
---
|
|
221
214
|
|
|
222
215
|
## 反转时机
|
|
223
216
|
|
|
224
|
-
###
|
|
225
|
-
|
|
226
|
-
| 反转类型 | 最佳位置 | 原因 |
|
|
227
|
-
|----------|----------|------|
|
|
228
|
-
| 身份反转 | 65-75% | 留够时间展示身份变化后的新冲突 |
|
|
229
|
-
| 视角反转 | 70-80% | 需要足够篇幅建立错误认知 |
|
|
230
|
-
| 动机反转 | 75-85% | 动机要在角色做出关键选择前揭示 |
|
|
231
|
-
| 时间线反转 | 80-90% | 时间线需要最长铺垫 |
|
|
232
|
-
| 信息反转 | 70-80% | 揭示后需要展示连锁反应 |
|
|
233
|
-
| 认知反转 | 75-90% | 感情色彩要全程积累够才翻得动 |
|
|
217
|
+
### 揭示位置按叙事层级决定
|
|
234
218
|
|
|
235
|
-
|
|
219
|
+
| 层级 | 合适时机 | 揭示后必须发生什么 |
|
|
220
|
+
|------|----------|--------------------|
|
|
221
|
+
| 场景/单章 | 当前行动获得可验证结果时 | 角色立刻调整选择或关系 |
|
|
222
|
+
| 单元 | 阶段目标看似完成、旧解释无法覆盖新证据时 | 开启下一阶段目标并支付代价 |
|
|
223
|
+
| 卷级 | 本卷承诺已兑现、读者能回看证据链时 | 改写对主线机制的理解,保留全书真相 |
|
|
224
|
+
| 全书 | 核心矛盾具备结算条件时 | 完成因果、情绪与收益归属结算 |
|
|
236
225
|
|
|
237
|
-
|
|
238
|
-
- 禁止在95%之后揭示——揭示后没有展开空间
|
|
239
|
-
- 最优区间:70-85%
|
|
240
|
-
- 双反转:第一个在55-65%,第二个在80-90%
|
|
226
|
+
不要把全书百分比当铁律。反转太早或太晚的判断标准是:旧认知是否已经支撑过真实行动、揭示后是否还有足够篇幅展示后果。
|
|
241
227
|
|
|
242
228
|
---
|
|
243
229
|
|
|
@@ -282,7 +268,7 @@
|
|
|
282
268
|
- [ ] 揭示方式自然,不靠角色大段独白解释
|
|
283
269
|
|
|
284
270
|
### 节奏
|
|
285
|
-
- [ ]
|
|
271
|
+
- [ ] 揭示场景没有被解释独白淹没;复杂机制可以分行动、证据和后果多拍展示
|
|
286
272
|
- [ ] 揭示后有足够篇幅展示反转影响
|
|
287
273
|
- [ ] 反转后结尾在反转产生的情绪上收束
|
|
288
274
|
|
|
@@ -310,7 +296,7 @@
|
|
|
310
296
|
### 超额收获反转
|
|
311
297
|
|
|
312
298
|
反转后收获超出预期,产生二次惊喜:
|
|
313
|
-
-
|
|
299
|
+
- 长篇:主角解决阶段问题,同时获得通向更高层矛盾的资源、身份或证据
|
|
314
300
|
- 网游文模式:Boss爆三样——立刻能用的 / 送人拉关系的 / 暂时用不到但一看很厉害的
|
|
315
301
|
|
|
316
302
|
### 情绪拉扯反转标准流程
|
|
@@ -338,7 +324,7 @@
|
|
|
338
324
|
|
|
339
325
|
### 打脸节奏铁律
|
|
340
326
|
|
|
341
|
-
-
|
|
327
|
+
- 压抑长度服从单元功能;连续失败必须带来信息、能力、关系或策略积累,不能只换场景重复受挫
|
|
342
328
|
- 压的同时必须给读者信心暗示(主角自信到自大:"我们还是联赛前四!")
|
|
343
329
|
- 比起主角被欺负,读者更厌恶主角自暴自弃
|
|
344
330
|
- 高潮部分要拉长,最大化利用(球迷反应、解说员、赛后跟进)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 长篇悬念编排
|
|
2
2
|
|
|
3
3
|
悬念构建、强度分级、多线周期、分层钩子、期待接力、震惊分层的完整操作指南。
|
|
4
4
|
|
|
@@ -86,11 +86,11 @@
|
|
|
86
86
|
|
|
87
87
|
### 三段钩子设计(单章内)
|
|
88
88
|
|
|
89
|
-
|
|
89
|
+
按章节功能安排,而不是把每章机械切成固定百分比:
|
|
90
90
|
|
|
91
|
-
1.
|
|
92
|
-
2.
|
|
93
|
-
3.
|
|
91
|
+
1. **种**:在本章第一个有效场景中提出异常、目标或未完成动作。
|
|
92
|
+
2. **养**:用行动受阻、新证据或关系变化加压;过渡章可以只推进一拍。
|
|
93
|
+
3. **收**:本章兑现一项状态变化,并把尚未解决的问题交给下一章。
|
|
94
94
|
|
|
95
95
|
延迟引爆 = 比引爆更强的钩子,用于拉到下一章。
|
|
96
96
|
|
|
@@ -102,7 +102,7 @@
|
|
|
102
102
|
|
|
103
103
|
- 确保读者脑中有三个好奇的东西:两长一短
|
|
104
104
|
- 长期待收回后变短期爆发,同时新的长期待已铺好
|
|
105
|
-
-
|
|
105
|
+
- 长篇中:短期、中期、远期悬念不能在同一章全部引爆;每次回收至少保留或新建一条更长的期待线。
|
|
106
106
|
|
|
107
107
|
### 持续拉期待操作框架
|
|
108
108
|
|