@oh-story/dsh 0.1.4 → 0.1.6
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 +56 -12
- package/lib/client.js +2707 -268
- package/lib/client.js.map +4 -4
- package/lib/drama/manifest.json +136 -101
- package/lib/drama/skills/short-drama/SKILL.md +61 -1
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +7 -4
- package/lib/drama/skills/short-drama/references/creator-documents.md +133 -8
- package/lib/drama/skills/short-drama/references/creator-workflow.md +38 -2
- package/lib/drama/skills/short-drama/references/knowhow-index.md +3 -0
- package/lib/drama/skills/short-drama/references/reference-roles.md +10 -7
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +3 -0
- 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 +13 -3
- 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 +2 -1
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +19 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +1 -1
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +6 -2
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +4 -3
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +3 -1
- 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 +46 -10
- 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/references/rubric-visual-motion.md +12 -0
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +1 -1
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +76 -7
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +6 -2
- 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 +5 -2
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +16 -0
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +8 -3
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +81 -13
- 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/delivery-profile.md +21 -1
- 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 +24 -6
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +11 -7
- 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 +5 -2
- 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 +3 -2
- 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 +865 -33
- 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 +415 -305
- package/lib/oh-story/roles/consistency-checker.md +1 -1
- package/lib/oh-story/roles/narrative-writer.md +32 -33
- package/lib/oh-story/roles/story-architect.md +16 -26
- 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 +19 -10
- 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-setup/references/agent-references/genre-core-mechanics.md → story-long-write/references/long-genre-mechanics.md} +1 -1
- package/lib/oh-story/skills/{story-short-write/references/reversal-toolkit.md → story-long-write/references/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 +4 -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 +14 -14
- 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 +74 -33
- 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-long-write/references/genre-core-mechanics.md → story-setup/references/agent-references/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-setup/references/agent-references/{reversal-toolkit.md → 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-long-write/references/reversal-toolkit.md → story-setup/references/agent-references/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 +4 -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 +3 -1
- 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/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 +55 -40
- 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
|
@@ -5,49 +5,50 @@
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
**本文件职责**(其他内容去哪看):
|
|
8
|
-
-
|
|
8
|
+
- 本文件只管「贯穿道具的三次出现编排规则」;情绪功能按任务 profile 读取 long-emotional-methods.md 或 short-emotional-methods.md
|
|
9
9
|
- 对话相关(含权力博弈的规则/模式/示例/操作指令)一律见 dialogue-mastery.md,本文件不重复
|
|
10
10
|
- 本文件只管「开头事件密度指令」,不管「开头设计」(开头设计见 opening-design.md)
|
|
11
|
-
- genre-
|
|
11
|
+
- 长篇题材声线走 genre-prose-cards.md,短篇结构走 short-genre-formulas.md;本文件的「贯穿道具系统」提供可执行设计模板
|
|
12
12
|
- 本文件第 8 节「场景写法(三维度揉进)」是 Phase 3 的写作方法,format-and-structure.md 的「小节结构」是结构规范
|
|
13
|
-
-
|
|
13
|
+
- 本文件「贯穿道具系统」只规定物件的跨场景编排和意义翻转;初始情感含义由当前 long/short profile 的情绪方法负责
|
|
14
14
|
|
|
15
15
|
---
|
|
16
16
|
|
|
17
|
-
## 1.
|
|
17
|
+
## 1. 情绪落地:不把身体微动作当默认答案
|
|
18
18
|
|
|
19
19
|
### 规则
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
情绪没有固定译法。上下文已经让读者感到,就不另补反应;情绪推动了剧情,就优先写角色的选择、台词、策略、关系变化、物件变化或实际后果;一句直写最准确时可以直写("他听烦了")。身体状态只是候选之一,只有它带来新信息、影响动作,或确实属于这个角色和这个场景时才写。
|
|
22
22
|
|
|
23
|
-
###
|
|
23
|
+
### 落地顺序
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
写到情绪节点时按下面顺序判断,不做“情绪词逐个替换”:
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
| 害怕/恐惧 | 他的手指碰到门把手又缩回来,碰了三次才握住 |
|
|
33
|
-
| 委屈 | 她咬着下嘴唇,咬出一道白印,松开后迅速红了 |
|
|
34
|
-
| 绝望 | 他坐在那里,烟灰掉了一裤腿也没有弹 |
|
|
35
|
-
| 心如死灰 | 她把手机翻过来扣在桌上,再没拿起来过 |
|
|
27
|
+
1. **上下文已经成立**:前面的冲突、对话或结果足够让读者看懂,删掉补充说明,不再加一个动作尾巴。
|
|
28
|
+
2. **情绪改变下一步**:写角色因此说了什么、没说什么、选了哪条路、改了什么策略、付了什么代价。
|
|
29
|
+
3. **场内事物能承载变化**:写正在处理的合同、药、饭、门、消息、工具出了什么变化;物件必须来自当前场景,不临时搬一只茶杯来表演情绪。
|
|
30
|
+
4. **身体确实受影响**:写动作失败、疼痛、失衡、伤势或可见后果。只有“指尖动一下、指节白、嘴唇抿、目光移开、呼吸一顿”而没有后果,通常可以删。
|
|
31
|
+
5. **直写更准更省**:低强度或过场情绪可以一句直写,不必为避开一个普通情绪词绕成三十字表演。
|
|
36
32
|
|
|
37
|
-
|
|
33
|
+
同一节点只取最有信息量的一种,除非情绪升级确实产生连续后果,不把“动作 + 身体 + 比喻 + 心理解说”叠成四重注释。
|
|
38
34
|
|
|
39
|
-
###
|
|
35
|
+
### 好细节的功能
|
|
40
36
|
|
|
41
|
-
|
|
37
|
+
| 情况 | 处理 |
|
|
38
|
+
|------|------|
|
|
39
|
+
| 上下文已显出不耐烦 | 直接进入下一句对话,或一句“他听烦了”带过 |
|
|
40
|
+
| 愤怒使谈判改变 | 写他撤回报价、叫停合作或当面追问;变化比攥拳更有信息 |
|
|
41
|
+
| 紧张妨碍正在做的事 | 可以写笔尖划坏签名、钥匙插错锁孔等具体后果 |
|
|
42
|
+
| 身体细节只是在句尾标注情绪 | 删除;不要换一套部位或同义动作 |
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
### 反套话四问
|
|
45
|
+
|
|
46
|
+
逐章检查重点情绪段,并指出对应原句;不是要求每段补一种反应:
|
|
47
|
+
|
|
48
|
+
1. 删掉这处身体/语气细节,信息、选择、关系或物理结果有损失吗?没有就删。
|
|
49
|
+
2. 换个人名、换个房间仍然成立吗?成立说明它可能是通用表演,不是角色细节。
|
|
50
|
+
3. 本章是否反复出现“部位 + 轻微动作/状态 + 一下”,尤其指尖、指节、目光、嘴唇、呼吸、袖口?命中后回到整段重写或删除,不做同义词轮换。
|
|
51
|
+
4. 同一情绪是否已经被对话、上下文和动作重复解释?只留最有力的一处。
|
|
51
52
|
|
|
52
53
|
---
|
|
53
54
|
|
|
@@ -119,34 +120,33 @@
|
|
|
119
120
|
|
|
120
121
|
---
|
|
121
122
|
|
|
122
|
-
## 5.
|
|
123
|
+
## 5. 动静有起伏,不按节配额
|
|
123
124
|
|
|
124
125
|
### 规则
|
|
125
126
|
|
|
126
|
-
|
|
127
|
+
一章整体要有推进与停顿的起伏,但不要求每个小节各塞一个“动”和“静”。停顿可以来自信息悬置、对话空白、环境压力或角色暂不行动,不等于安排擦灰、理衣领一类微小动作。
|
|
127
128
|
|
|
128
129
|
### 动与静的分类
|
|
129
130
|
|
|
130
131
|
| 类型 | 内容 | 示例 |
|
|
131
132
|
|------|------|------|
|
|
132
133
|
| 动 | 物理冲击、暴力、冲突爆发 | 砍人、摔东西、打耳光、吐血、掀桌子 |
|
|
133
|
-
| 静 |
|
|
134
|
+
| 静 | 信息悬置、对话空白、环境压力、等待或必要的日常过程 | 回信迟迟没来、全桌没人接话、雨声盖住门外脚步 |
|
|
134
135
|
|
|
135
136
|
### 操作指令
|
|
136
137
|
|
|
137
|
-
-
|
|
138
|
-
-
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
- 情绪最低点(心死/余韵/释然)用「静」
|
|
138
|
+
- 按整章和场景需要安排动静,不给每个小节设数量指标
|
|
139
|
+
- 连续多节全「动」时复核是否造成暴力疲劳;追逐/战斗有意连续可保留
|
|
140
|
+
- 连续多节全「静」时复核是否停滞;等待/压迫有意延长可保留
|
|
141
|
+
- 情绪高低不对应固定动作类型:爆点可以突然安静,低谷也可以持续劳动
|
|
142
142
|
|
|
143
143
|
### 节奏编排示例
|
|
144
144
|
|
|
145
145
|
```
|
|
146
146
|
节5(动):萧衍一声令下,打了萧琅二十棍
|
|
147
|
-
节6
|
|
147
|
+
节6(静):报数停了,殿里没人替萧琅求情
|
|
148
148
|
节7(动):王氏扑过来,跪在地上磕头
|
|
149
|
-
节8
|
|
149
|
+
节8(静):王氏跪在原地,只听见宫门落锁
|
|
150
150
|
```
|
|
151
151
|
|
|
152
152
|
---
|
|
@@ -201,10 +201,10 @@
|
|
|
201
201
|
|
|
202
202
|
| 检查项 | 偏短原因 | 补救 |
|
|
203
203
|
|--------|----------|------|
|
|
204
|
-
|
|
|
204
|
+
| 关键子事件读得懂吗? | 现场、因果或角色下一步缺了必要信息 | 只补真正缺失的维度;不为凑齐三项补感官或身体动作(见第8节) |
|
|
205
205
|
| 对话只有 1-2 轮? | 缺少对话交锋 | 加一轮权力博弈对话(见第3节) |
|
|
206
|
-
|
|
|
207
|
-
|
|
|
206
|
+
| 情绪信息落地了吗? | 只贴标签,或又用无功能微动作重复解释 | 优先落到选择、台词、物件和后果;必要时直写,身体细节须有功能(见第1节) |
|
|
207
|
+
| 仍偏短且关键 beat 写薄? | 冲突、选择、代价或关系变化没有演到位 | 回到细纲内已有事件补交锋与后果;没有内容就补纲,不拿感官/回忆注水 |
|
|
208
208
|
|
|
209
209
|
### 子事件不够时怎么扩
|
|
210
210
|
|
|
@@ -240,7 +240,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
240
240
|
- 为凑字数加角色内心独白总结
|
|
241
241
|
- 为凑字数让角色做无意义的动作
|
|
242
242
|
- 为显得自然而加流程细节;删掉无损就删
|
|
243
|
-
-
|
|
243
|
+
- 为凑字数重复解释情绪,或给每段补一个无功能身体反应
|
|
244
244
|
|
|
245
245
|
---
|
|
246
246
|
|
|
@@ -250,7 +250,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
250
250
|
|
|
251
251
|
细纲各字段是本章"要发生什么"的规格,**不是正文的形状**。照着细纲的形状逐格填,正文就成了一条一条交代的电报体、一拍一句平推的生硬解说——这是"照抄大纲形状",和照抄范例形状同属 AI 味来源。
|
|
252
252
|
|
|
253
|
-
- 情节点序列是"要发生什么"
|
|
253
|
+
- 情节点序列是"要发生什么"的清单,不是句子模板:不要一个情节点写成一句或一段、按序平推;把每个点演成角色此刻可感知的选择、动作、对话、物件、结果,必要时才用身体反应——**演出来,不是交代出来**。
|
|
254
254
|
- 同一约束如果在「核心事件 / 内容概括 / 情节安排 / 情节点」里重复出现,生成前只合并成**一个语义点**;重复字段不是强调,更不是四次复述额度。正文不得沿用提纲里反复出现的同一措辞逐项交代。
|
|
255
255
|
- 五段式(起因/发展/转折/高潮/结尾)是给细纲作者的功能拆解,不是正文的五个自然段;正文不必逐段顺叙,也不必一段对一格。
|
|
256
256
|
- "谁做了什么"的概括句、"A→B→C"箭头链、"收束到什么状态"是规划口径,不要原样搬进叙述。
|
|
@@ -276,19 +276,19 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
276
276
|
|
|
277
277
|
### 规则
|
|
278
278
|
|
|
279
|
-
|
|
279
|
+
关键子事件不能只剩一句提纲概括。发生是主干;感知和反应只在提供新信息时加入,并与发生织进同一镜头,不按维度分段,也不要求三项齐全。
|
|
280
280
|
|
|
281
281
|
### 三维度揉进规则
|
|
282
282
|
|
|
283
|
-
|
|
283
|
+
发生、感知、反应是可选的信息维度,不是逐段配额。详写的关键子事件可以把其中确有内容的维度织在同一镜头里;上下文已经清楚的维度留空,不为凑齐三项补感官或身体动作。过场、赶路、信息交代类子事件 1-2 句带过即可(见「疏密分配」),把字数预算让给情绪节点。
|
|
284
284
|
|
|
285
285
|
| 维度 | 内容 | 要点 |
|
|
286
286
|
|---|---|---|
|
|
287
287
|
| 发生 | 事情出现了 | 1-2句,包含一个具体细节 |
|
|
288
|
-
| 感知 | 主角注意到什么 |
|
|
289
|
-
| 反应 |
|
|
288
|
+
| 感知 | 主角注意到什么 | 只取会改变理解、判断或气氛的一处声音、物件、空间或身体感受,不按感官凑数 |
|
|
289
|
+
| 反应 | 角色接下来怎么办 | 可以是选择、台词、策略、任务动作、明确感受或有后果的身体反应,不默认写微动作 |
|
|
290
290
|
|
|
291
|
-
|
|
291
|
+
任务卡点写法可从三维中取需要的内容:发生 = 事情办不下去;感知 = 被退回的纸、扣住的物件、对方半句话等具体凭据;反应 = 角色改策略、付代价、求助、硬闯、退让或记下一笔。不要把“为什么被卡住”解释成一段说明书,也不要在 scene 末尾另补动作尾巴来解释意义。
|
|
292
292
|
|
|
293
293
|
### 反模式:堆叠式描写(绝对禁止)
|
|
294
294
|
|
|
@@ -305,16 +305,16 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
305
305
|
|
|
306
306
|
### 正确写法:揉进式
|
|
307
307
|
|
|
308
|
-
|
|
308
|
+
需要的维度融进同一段连续正文,读者读到一个完整瞬间:
|
|
309
309
|
|
|
310
310
|
> ✅ **揉进式(正确)**:
|
|
311
311
|
> 林父左手压着文书,右手拿笔往纸上落,笔尖一触纸面就偏了,从肘到腕止不住地抖,那一横斜着拖出去。他顿了顿,把笔往下压,重写,写完的"林"字撇是歪的,笔在手里还是没稳住。
|
|
312
312
|
|
|
313
|
-
→
|
|
313
|
+
→ 这里的身体反应改变了落笔结果,承担信息;不是为了证明人物紧张而另加微动作
|
|
314
314
|
|
|
315
315
|
### 自检方法
|
|
316
316
|
|
|
317
|
-
|
|
317
|
+
对详写的关键场景用“三维遮盖法”:分别遮住发生、感知、反应,判断现有内容是否各自提供了不同信息。某维缺失不等于要补;只有读者因此看不懂现场、因果或角色下一步时,才把缺失信息织回同一镜头。若遮住一处身体/语气细节后什么也没损失,删掉它。逐章再做第 1 节“反套话四问”,指出原句处理,不用“已遵守”代替检查。
|
|
318
318
|
|
|
319
319
|
### 画面分段(防止一段到底)
|
|
320
320
|
|
|
@@ -373,10 +373,10 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
373
373
|
|
|
374
374
|
### 子事件连接
|
|
375
375
|
|
|
376
|
-
|
|
376
|
+
子事件之间按真实关系连接:因果推进、对话接招、新信息、空间移动或角色下一步都可以;不规定必须插入身体动作,也不规定连接句长度。
|
|
377
377
|
|
|
378
|
-
- ❌
|
|
379
|
-
- ✅
|
|
378
|
+
- ❌ 为了过渡另补“我把账本搁在膝盖上,手心出了一层薄汗。”
|
|
379
|
+
- ✅ “最后一笔支出没有收据,下一页却夹着他的签名。”(新信息直接推动下一拍)
|
|
380
380
|
|
|
381
381
|
### 感知素材库
|
|
382
382
|
|
|
@@ -391,9 +391,9 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
391
391
|
### 三维度的边界
|
|
392
392
|
|
|
393
393
|
- ✓ 感知是主角主动注意到的细节(有注意力的焦点)
|
|
394
|
-
- ✓
|
|
394
|
+
- ✓ 反应是角色受此影响后的下一步,可落在选择、台词、策略、任务动作、明确感受或有后果的身体变化
|
|
395
395
|
- ✗ 感知不能是装饰性场景描写("阳光洒在窗台上")
|
|
396
|
-
- ✗
|
|
396
|
+
- ✗ 反应不能只用无功能微动作给已经清楚的情绪再贴一次标签
|
|
397
397
|
- ✗ 三个维度不能重复表达同一个信息
|
|
398
398
|
---
|
|
399
399
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: story-short-analyze
|
|
3
|
-
version: 3.
|
|
3
|
+
version: 3.1.0
|
|
4
4
|
description: "短篇网文拆文。拆解爆款短篇小说(番茄短篇 / 故事会 / 知乎盐选 / 追妻 / 世情 / 重生 / 虐渣等通俗题材)的故事核、结构、情感线、反转设计、写作手法、共鸣层次。单一全量拆解管道:跑完 Stage 2-6 产出完整拆文报告,落盘到 拆文库/{书名}/,下游 story-short-write 同时读拆文报告 + 情节节点 + 写作手法 + 原文 + _meta.json 写下一篇。触发方式:/story-short-analyze、/短篇拆文、「拆短篇」「拆这篇短文」「短篇拆文」「精细拆解短篇」「8000 字短篇拆解」「番茄短篇拆文」「故事会拆解」「盐言故事拆解」「分析这篇短篇」——均进入同一管道。"
|
|
5
|
-
metadata: {"openclaw":{"source":"https://github.com/
|
|
5
|
+
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
|
|
6
6
|
---
|
|
7
7
|
# story-short-analyze:短篇网文拆文
|
|
8
8
|
|
|
@@ -44,7 +44,7 @@ word_count = 全文字数
|
|
|
44
44
|
|
|
45
45
|
```
|
|
46
46
|
用户提到具体题材(追妻 / 重生 / 虐文 / ...)?
|
|
47
|
-
├─ 是 → 加载
|
|
47
|
+
├─ 是 → 加载 analysis-short-genres.md 对应题材行作为短篇源文识别标尺
|
|
48
48
|
└─ 否 → 关键词扫描确定题材;扫不到则 genre_detected = "通用",用通用模板(Stage 2-6)
|
|
49
49
|
```
|
|
50
50
|
|
|
@@ -64,8 +64,8 @@ word_count = 全文字数
|
|
|
64
64
|
- 沙雕 / 脑洞 / 弹幕 / 系统 / 反套路 → 沙雕
|
|
65
65
|
- 仙侠 / 修仙 / 门派 → 仙侠
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
题材作为观察标尺加载——只比较源文的读者承诺、冲突载体和实际结算,不调用长篇阶段、
|
|
68
|
+
卷级循环或黄金三章模型,也不按推荐比例判定源文合格与否。
|
|
69
69
|
|
|
70
70
|
### Step 4:续跑检查(lightweight resume)
|
|
71
71
|
|
|
@@ -140,7 +140,7 @@ word_count = 全文字数
|
|
|
140
140
|
|
|
141
141
|
| 阶段 | 名称 | 输入 | 输出 | 完成标志 |
|
|
142
142
|
|------|------|------|------|----------|
|
|
143
|
-
| 2 | 结构+情节节点 | 全文 | 故事核 + 故事梗概 + 功能分段(4-6段,必须含开端/发展/高潮/结局)+
|
|
143
|
+
| 2 | 结构+情节节点 | 全文 | 故事核 + 故事梗概 + 功能分段(4-6段,必须含开端/发展/高潮/结局)+ 情节节点清单。节点以语义变化为边界提取,见 material-decomposition.md「情节节点提取规则」。 | 结构划分 ≥4 段 + 故事核已提取 |
|
|
144
144
|
| 3 | 情感线+爆点 | 故事核+结构划分+情节节点数据 | 情感曲线(≥5节点)+ 爆点分析(6维度)+ 期待感分析。 | 爆点分析 6 维度齐全 |
|
|
145
145
|
| 4 | 反转+写作手法 | 节点+情感数据 | 前置反转检查 + 反转机制(铺垫≥2条)+ 写作手法(≥5项维度:POV/对话/时间/信息/其他)。 | 写作手法 ≥5 项 |
|
|
146
146
|
| 5 | 人物+开头结尾 | 情节节点+全文 | 所有人物(分类+功能标签+功能评估)+ 开头分析(前50/100字)+ 结尾分析(收束检查)。 | 人物功能评估完成 |
|
|
@@ -173,14 +173,14 @@ word_count = 全文字数
|
|
|
173
173
|
|
|
174
174
|
Stage 6 内容写完后,**不**立刻 append `6` 到 `stages_completed[]`。先跑三道检查:
|
|
175
175
|
|
|
176
|
-
### Step 1
|
|
176
|
+
### Step 1:拆文报告表达自检
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
|
|
178
|
+
按 [references/analysis-report-style.md](references/analysis-report-style.md) 扫描
|
|
179
|
+
`拆文报告.md` 全文的证据链和高风险表达。
|
|
180
180
|
扫描时跳过源文引用——以 `>` 开头的引用行、以及表格中「关键台词 / 原文引用」列的引号直引不计入,只扫分析师本人写的措辞。
|
|
181
181
|
|
|
182
|
-
- **命中** → 不写 `stages_completed[6]
|
|
183
|
-
|
|
182
|
+
- **命中** → 不写 `stages_completed[6]`,列出命中位置,修订**拆文报告本身**的
|
|
183
|
+
证据不足、空转套话或越界推测;不要改写源文。
|
|
184
184
|
- **未命中** → 继续「structure_counts 数值校验」。
|
|
185
185
|
|
|
186
186
|
> 守门员定位:本节检查「我们写的拆文报告」;不要评价「源文是否 AI 写的」。
|
|
@@ -239,9 +239,8 @@ Stage 6 内容写完后,**不**立刻 append `6` 到 `stages_completed[]`。
|
|
|
239
239
|
| [references/output-contract.md](references/output-contract.md) | 全程:Stage→文件映射 / `_meta.json` schema(含 structure_counts)/ 下游消费规范 / 验收接入点 |
|
|
240
240
|
| [references/output-templates.md](references/output-templates.md) | 拆文时:输出模板 + 结构库 + 质量检查(含 [BLOCK]/[WARN] 标注) |
|
|
241
241
|
| [references/material-decomposition.md](references/material-decomposition.md) | 拆文方法论:情节节点提取 + 写作手法 + 情感线 + 节奏分析 + 共鸣分析 + 人物规则 + **质量标准唯一权威** |
|
|
242
|
-
| [references/quality
|
|
243
|
-
| [references/
|
|
244
|
-
| [references/banned-words.md](references/banned-words.md) | 「拆文报告 AI 腔自检」:拆文报告禁用词速查 |
|
|
242
|
+
| [references/source-story-quality.md](references/source-story-quality.md) | 评估**源文**质量时:短篇拆书的质量自检清单(评估对象的好坏,不是评估拆文报告本身) |
|
|
243
|
+
| [references/analysis-report-style.md](references/analysis-report-style.md) | 「拆文报告表达自检」:检查**报告本身**的证据链、高风险套话与推测边界(不是源文滤镜) |
|
|
245
244
|
|
|
246
245
|
### 按需加载(拆解对应题材 / 维度时作为对照标尺)
|
|
247
246
|
|
|
@@ -249,26 +248,27 @@ Stage 6 内容写完后,**不**立刻 append `6` 到 `stages_completed[]`。
|
|
|
249
248
|
|------|----------|
|
|
250
249
|
| [references/deconstruction-examples.md](references/deconstruction-examples.md) | 校准拆文方法时:3 个完整案例作为参照 |
|
|
251
250
|
| [references/zhihu-style.md](references/zhihu-style.md) | 拆解知乎盐言故事时作为平台特性对照 |
|
|
252
|
-
| [references/
|
|
253
|
-
| [references/hooks
|
|
254
|
-
| [references/
|
|
255
|
-
| [references/
|
|
256
|
-
| [references/character-basics.md](references/character-basics.md) | 拆解人物基础设定时作为人设要素对照 |
|
|
257
|
-
| [references/character-design
|
|
258
|
-
| [references/character-relations.md](references/character-relations.md) | 拆解人物关系网时作为关系类型对照 |
|
|
259
|
-
| [references/
|
|
260
|
-
| [references/
|
|
251
|
+
| [references/analysis-short-genres.md](references/analysis-short-genres.md) | 拆解特定题材时:按短篇源文的识别锚点、读者承诺和结算归属判断主副类型 |
|
|
252
|
+
| [references/analysis-short-hooks.md](references/analysis-short-hooks.md) | 拆解段落/小节边界、钩子链与候选付费断点时作为短篇源文观察标尺 |
|
|
253
|
+
| [references/analysis-short-suspense.md](references/analysis-short-suspense.md) | 拆解主副问题、信息差、证据释放、阶段答案与回收时作为短篇源文观察标尺 |
|
|
254
|
+
| [references/analysis-paragraph-hooks.md](references/analysis-paragraph-hooks.md) | 拆解段落钩子时作为 11 种段落级钩子对照 |
|
|
255
|
+
| [references/analysis-character-basics.md](references/analysis-character-basics.md) | 拆解人物基础设定时作为人设要素对照 |
|
|
256
|
+
| [references/analysis-character-design.md](references/analysis-character-design.md) | 拆解人物内在矛盾时作为三层标签反差对照(contradiction_axis 来源) |
|
|
257
|
+
| [references/analysis-character-relations.md](references/analysis-character-relations.md) | 拆解人物关系网时作为关系类型对照 |
|
|
258
|
+
| [references/analysis-short-mechanics.md](references/analysis-short-mechanics.md) | 拆解核心梗、有限复现、规则兑现、代价与主角代理权时作为观察标尺 |
|
|
259
|
+
| [references/analysis-reader-profile.md](references/analysis-reader-profile.md) | 拆解读者心理与期待管理时作为读者画像对照 |
|
|
261
260
|
|
|
262
261
|
### 补充资料(拆 Stage 6「可复用结构」时按需对照)
|
|
263
262
|
|
|
264
|
-
>
|
|
265
|
-
>
|
|
266
|
-
> **通用写作技法**:`references/
|
|
263
|
+
> **短篇结构模式**:`references/analysis-short-patterns.md`(比较源文实际功能链、偏离方式
|
|
264
|
+
> 与失败条件;不按固定章位、百分比或线索数判“合标”)
|
|
265
|
+
> **通用写作技法**:`references/analysis-writing-techniques.md`(情绪操控 / 感情线 /
|
|
267
266
|
> 震惊场景 / 喜剧机制——拆 reusable_structures.fail_mode 时引用「感情线四阶段推进法」表「禁忌」列)
|
|
268
267
|
> **市场数据**:`references/real-market-data.md`(跨平台写作差异对照表)
|
|
269
268
|
|
|
270
|
-
所有 references 在 `story-short-analyze`
|
|
271
|
-
|
|
269
|
+
所有 references 在 `story-short-analyze` 中都是**观察标尺**——先报告源文实际发生了什么,
|
|
270
|
+
再说明它接近、偏离或改造了哪种模式;不是按文件指引写新作品,也不从相邻长篇 Skill
|
|
271
|
+
加载题材、节奏或质量资料。
|
|
272
272
|
|
|
273
273
|
---
|
|
274
274
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 源文读者心理分析标尺
|
|
2
2
|
|
|
3
3
|
> **用途**:读者心理需求、题材生命力规律、跨网站适配、平台差异、书名/简介技法、代入感管理。选题和定位时对照使用。
|
|
4
4
|
> **语气**:指令式——每个规律都要转化为选题、定位、书名、文案或开篇的可执行约束。
|
|
5
|
-
>
|
|
5
|
+
> **配合**:短篇结构功能链见 analysis-short-patterns.md,核心机制观察见 analysis-short-mechanics.md。
|
|
6
6
|
|
|
7
7
|
## 用作拆文标尺时
|
|
8
8
|
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# 拆文报告表达规范
|
|
2
|
+
|
|
3
|
+
> **用途**:只约束 `拆文报告.md` 中分析师自己写的文字,不用于改写或过滤源文。
|
|
4
|
+
> 源文中的套话、AI 腔、毒点都是可报告的观察对象;引用源文时保留原貌并标明位置。
|
|
5
|
+
|
|
6
|
+
## 核心原则
|
|
7
|
+
|
|
8
|
+
拆文报告要像一份可复核的分析记录:先给判断,再给文本证据、位置和作用。不要把报告写成正文,也不要借“润色”替源文补戏。
|
|
9
|
+
|
|
10
|
+
每个重要判断至少包含三项:
|
|
11
|
+
|
|
12
|
+
1. **结论**:使用了什么结构、技巧或失败模式。
|
|
13
|
+
2. **证据**:原句短引、情节点或可定位的位置。
|
|
14
|
+
3. **作用**:它改变了读者知道什么、期待什么或感受什么。
|
|
15
|
+
|
|
16
|
+
证据不足时写“证据不足 / 待复核”,不要用笃定语气补全作者意图。
|
|
17
|
+
|
|
18
|
+
## 报告自身的高风险表达
|
|
19
|
+
|
|
20
|
+
以下模式出现在分析师措辞中时必须复核;源文直接引用不计:
|
|
21
|
+
|
|
22
|
+
- “不是 A,而是 B”“不是 A,不是 B,只是 C”等先否定再翻转的模板句。
|
|
23
|
+
- “不难发现”“显而易见”“毋庸置疑”“值得注意的是”等空转提示语。
|
|
24
|
+
- “命运的齿轮”“更大的风暴”“故事才刚刚开始”等正文式升华或预告。
|
|
25
|
+
- “淋漓尽致”“层层递进”“环环相扣”“令人窒息”等没有证据支撑的万能评价。
|
|
26
|
+
- 连续用“首先 / 其次 / 再次 / 最后”切碎本可直接陈述的观察。
|
|
27
|
+
- 只贴“节奏紧凑、人物立体、情绪饱满”等标签,不说明具体文本机制。
|
|
28
|
+
- 猜测作者心理:“作者想告诉我们”“作者显然意识到”。应改为可观察的文本效果。
|
|
29
|
+
|
|
30
|
+
## 推荐句型
|
|
31
|
+
|
|
32
|
+
- `第 3 节先让读者知道证据存在,但隐去持有人;第 5 节才揭示持有人,因此形成两拍信息差。`
|
|
33
|
+
- `该段被归为关系反转,证据是母亲在前文始终回避称谓,而此处第一次直呼姓名。`
|
|
34
|
+
- `未发现足够铺垫:反转前只有结果提示,没有可回溯的行为线索。`
|
|
35
|
+
- `这句属于源文引用,不参与报告自身的表达检查。`
|
|
36
|
+
|
|
37
|
+
## 交付前检查
|
|
38
|
+
|
|
39
|
+
- [ ] 每个核心判断都能定位到原文、情节点或统计结果。
|
|
40
|
+
- [ ] 原文直接引用与分析师措辞边界清楚。
|
|
41
|
+
- [ ] 没把题材公式当成合格答案;已说明源文如何符合、偏离或改造公式。
|
|
42
|
+
- [ ] 没把推测写成事实;不确定项已标“证据不足 / 待复核”。
|
|
43
|
+
- [ ] 已清理报告自身的否定翻转、空转提示、万能形容和升华句。
|
|
44
|
+
- [ ] 没有为了显得完整而虚构作者意图、读者反应或缺失情节。
|
|
45
|
+
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# 短篇源文题材识别标尺
|
|
2
|
+
|
|
3
|
+
> 只用于识别和比较已经存在的短篇源文。它描述可观察的读者承诺、冲突载体与常见失效方式,不提供写作步骤,不拿长线开篇或卷级模型衡量短篇。
|
|
4
|
+
|
|
5
|
+
## 使用方式
|
|
6
|
+
|
|
7
|
+
先根据全文证据给出一个主类型,必要时再给一个副类型。题材名称不能只由标签、背景或单个桥段决定。
|
|
8
|
+
|
|
9
|
+
每个题材判断都要回答:
|
|
10
|
+
|
|
11
|
+
1. 源文持续交付的核心情绪是什么?
|
|
12
|
+
2. 哪些可定位情节承担了这个承诺?
|
|
13
|
+
3. 结尾实际结算了什么?
|
|
14
|
+
4. 若存在混合题材,哪个负责主线,哪个只提供手段或氛围?
|
|
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
|
+
|---|---|
|
|
41
|
+
| 主线所有权 | 删除该类型后,核心目标与因果链是否仍成立? |
|
|
42
|
+
| 高潮所有权 | 最终不可逆选择在结算哪一种冲突? |
|
|
43
|
+
| 情绪所有权 | 读者最后得到的是爽、痛、甜、恐惧、释然还是认知震荡? |
|
|
44
|
+
| 手段与目的 | 悬疑、系统、重生等是故事要结算的对象,还是帮助另一条主线推进的工具? |
|
|
45
|
+
|
|
46
|
+
若两种类型都能删而不影响主线,题材证据不足;报告为“通用短篇 + 元素标签”,不要强行归类。
|
|
47
|
+
|
|
48
|
+
## 报告格式
|
|
49
|
+
|
|
50
|
+
```markdown
|
|
51
|
+
主类型:{类型}
|
|
52
|
+
副类型:{可选}
|
|
53
|
+
定位证据:{节次/原句/情节点}
|
|
54
|
+
主线所有权:{哪类冲突拥有高潮与结算}
|
|
55
|
+
符合常见模式:{观察到的功能,不写合格/不合格}
|
|
56
|
+
偏离或改造:{源文如何改变常见模式}
|
|
57
|
+
不确定项:{证据不足/待复核}
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## 失效检查
|
|
61
|
+
|
|
62
|
+
- 不把推荐比例、固定节数或某种平台模板当成题材成立条件。
|
|
63
|
+
- 不因出现“系统、修仙、历史”等标签就调用长篇升级与卷级标尺。
|
|
64
|
+
- 不用“必须有某场景”替代源文证据;缺少常见场景只说明偏离,不自动说明失败。
|
|
65
|
+
- 不把作者意图写成事实;只报告文本持续交付了什么。
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# 短篇源文钩子分析标尺
|
|
2
|
+
|
|
3
|
+
> 观察源文在段落、小节和付费断点处如何改变读者预期。只报告已出现的钩子、承诺与后续回应,不提供章首章尾模板,不套连载循环或固定字数。
|
|
4
|
+
|
|
5
|
+
## 钩子成立条件
|
|
6
|
+
|
|
7
|
+
一个边界只有在它改变“读者接下来等待什么”时才算钩子。单纯断句、情绪升高、角色震惊或作者预告不自动构成钩子。
|
|
8
|
+
|
|
9
|
+
每个候选点记录:
|
|
10
|
+
|
|
11
|
+
```markdown
|
|
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
|
+
1. **预测变化**:边界是否让读者更新对嫌疑、关系、结果或代价的预测。
|
|
38
|
+
2. **行动牵引**:下一段/节是否必须回应这个变化,而不是另开话题。
|
|
39
|
+
3. **兑现质量**:回应是否交付证据、选择或后果,而非只重复问题。
|
|
40
|
+
|
|
41
|
+
三个维度都成立,可以报告为关键钩子;只成立一个,报告为弱牵引或过渡边界。
|
|
42
|
+
|
|
43
|
+
## 钩子链
|
|
44
|
+
|
|
45
|
+
钩子链不是数量堆叠,而是前一问题的回应成为下一问题的原因。按下表追踪:
|
|
46
|
+
|
|
47
|
+
| 起点位置 | 问题 | 回应位置 | 回应交付 | 如何生成下一问题 |
|
|
48
|
+
|---|---|---|---|---|
|
|
49
|
+
|
|
50
|
+
若后一个问题与前一个答案没有因果关系,报告为“新开谜面”;若连续多个问题没有局部回答,报告为“只抬不交”。
|
|
51
|
+
|
|
52
|
+
## 付费断点
|
|
53
|
+
|
|
54
|
+
付费断点是商业位置,钩子是叙事功能,两者不能互相证明。分析时分别检查:
|
|
55
|
+
|
|
56
|
+
- 断点是否落在未完成动作、证据归属变化、关系转向或真实两难上。
|
|
57
|
+
- 付费后是否尽快回应断点承诺。
|
|
58
|
+
- 回应是否推进主问题,而非用旁支拖延。
|
|
59
|
+
- 如果没有平台信息,只报告“候选强断点”,不推测实际收费位置。
|
|
60
|
+
|
|
61
|
+
## 报告格式
|
|
62
|
+
|
|
63
|
+
```markdown
|
|
64
|
+
关键钩子:{位置、类型、边界前后变化}
|
|
65
|
+
读者新问题:{具体问题}
|
|
66
|
+
后续回应:{位置、交付}
|
|
67
|
+
钩子链:{因果接力或断裂}
|
|
68
|
+
付费断点:{已知/候选/证据不足}
|
|
69
|
+
弱边界或假钩子:{位置与原因}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 边界
|
|
73
|
+
|
|
74
|
+
- 可以统计实际钩子数,但不把固定数量作为源文质量门槛。
|
|
75
|
+
- 可以比较相邻小节的牵引差异,但不要求每节必须有强钩子。
|
|
76
|
+
- 不按固定字数检查章首或章尾;边界长度服从信息与动作。
|
|
77
|
+
- 不把围观者震惊、系统奖励或新地图自动判作钩子,必须证明它改变了读者问题。
|