@oh-story/dsh 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +38 -0
- package/cordis.patch.yml +3 -0
- package/lib/client.js +1201 -0
- package/lib/client.js.map +7 -0
- package/lib/drama/LICENSE.upstream +21 -0
- package/lib/drama/manifest.json +1012 -0
- package/lib/drama/skills/short-drama/SKILL.md +153 -0
- package/lib/drama/skills/short-drama/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama/assets/creator-decision.example.jsonl +4 -0
- package/lib/drama/skills/short-drama/assets/production-observation.example.jsonl +2 -0
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +36 -0
- package/lib/drama/skills/short-drama/assets/reference-observation.example.jsonl +2 -0
- package/lib/drama/skills/short-drama/references/audience-reveal.md +74 -0
- package/lib/drama/skills/short-drama/references/contract-and-ownership.md +94 -0
- package/lib/drama/skills/short-drama/references/creator-workflow.md +82 -0
- package/lib/drama/skills/short-drama/references/form-cards/Q/347/211/210/350/241/250/350/276/276.md +73 -0
- package/lib/drama/skills/short-drama/references/form-cards//344/272/214/347/273/264/345/212/250/346/200/201/346/274/253.md +74 -0
- package/lib/drama/skills/short-drama/references/form-cards//345/233/275/346/274/253/344/272/214/346/254/241/345/205/203.md +79 -0
- package/lib/drama/skills/short-drama/references/form-cards//345/256/236/346/213/215.md +75 -0
- package/lib/drama/skills/short-drama/references/form-cards//346/260/264/345/242/250/347/254/224/350/247/246.md +85 -0
- package/lib/drama/skills/short-drama/references/form-cards//351/243/216/346/240/274/345/214/226/344/270/211/347/273/264.md +72 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +80 -0
- package/lib/drama/skills/short-drama/references/lifecycle-commands.md +130 -0
- package/lib/drama/skills/short-drama/references/look-development.md +52 -0
- package/lib/drama/skills/short-drama/references/pickup-and-alternate.md +58 -0
- package/lib/drama/skills/short-drama/references/production-form-profiles.md +126 -0
- package/lib/drama/skills/short-drama/references/reference-roles.md +142 -0
- package/lib/drama/skills/short-drama/references/runtime-preflight.md +27 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +1963 -0
- package/lib/drama/skills/short-drama/scripts/selftest.py +287 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +187 -0
- package/lib/drama/skills/short-drama-assets/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-assets/assets/character-look.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/assets/continuity.example.jsonl +4 -0
- package/lib/drama/skills/short-drama-assets/assets/decisions.example.jsonl +5 -0
- package/lib/drama/skills/short-drama-assets/assets/location-view.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/assets/occurrences.example.jsonl +5 -0
- package/lib/drama/skills/short-drama-assets/assets/prop-state.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-assets/examples/minimal/characters.jsonl +2 -0
- package/lib/drama/skills/short-drama-assets/examples/minimal/looks.jsonl +2 -0
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +89 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +164 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-delta.md +123 -0
- package/lib/drama/skills/short-drama-assets/references/identity-vs-variant.md +146 -0
- package/lib/drama/skills/short-drama-assets/references/location-and-view.md +84 -0
- package/lib/drama/skills/short-drama-assets/references/occurrence-extraction.md +111 -0
- package/lib/drama/skills/short-drama-assets/references/prop-and-state.md +107 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +136 -0
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +171 -0
- package/lib/drama/skills/short-drama-assets/scripts/asset_check.py +267 -0
- package/lib/drama/skills/short-drama-assets/scripts/selftest.py +89 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +157 -0
- package/lib/drama/skills/short-drama-develop/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -0
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +120 -0
- package/lib/drama/skills/short-drama-develop/assets/episode-map.jsonl +1 -0
- package/lib/drama/skills/short-drama-develop/assets/story-engine.md +181 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +219 -0
- package/lib/drama/skills/short-drama-develop/references/creative-reference-intake.md +57 -0
- package/lib/drama/skills/short-drama-develop/references/director-brief-craft.md +113 -0
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +509 -0
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +240 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/272/262/345/255/220/351/232/220/347/247/230.md +112 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//344/273/231/344/276/240/344/277/256/347/234/237.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/212/250/344/275/234/344/273/273/345/212/241.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/217/244/350/243/205/346/235/203/350/260/213.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/256/266/345/272/255/345/205/263/347/263/273.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//346/202/254/347/226/221/350/247/204/345/210/231.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/224/237/346/264/273/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/240/264/351/225/234/351/207/215/345/234/206.md +109 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/201/214/345/234/272/345/226/234/345/211/247.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/261/252/351/227/250/345/251/232/346/201/213.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//350/272/253/344/273/275/351/224/231/344/275/215.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +92 -0
- package/lib/drama/skills/short-drama-develop/references/mechanism-loop.md +282 -0
- package/lib/drama/skills/short-drama-develop/references/multi-episode-intake.md +128 -0
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +211 -0
- package/lib/drama/skills/short-drama-develop/references/reveal-reversal-payoff.md +99 -0
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +293 -0
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +88 -0
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +359 -0
- package/lib/drama/skills/short-drama-develop/scripts/episode_intake.py +699 -0
- package/lib/drama/skills/short-drama-develop/scripts/selftest.py +47 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +181 -0
- package/lib/drama/skills/short-drama-image-prompts/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompt-spec.jsonl.md +187 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +37 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-frame-spec.jsonl.md +128 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +31 -0
- package/lib/drama/skills/short-drama-image-prompts/examples/minimal-image-prompt-specs.jsonl +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/character-and-look.md +154 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +231 -0
- package/lib/drama/skills/short-drama-image-prompts/references/edit-and-revision.md +122 -0
- package/lib/drama/skills/short-drama-image-prompts/references/location-plate.md +152 -0
- package/lib/drama/skills/short-drama-image-prompts/references/look-and-state-variant.md +96 -0
- package/lib/drama/skills/short-drama-image-prompts/references/lookdev-frame.md +38 -0
- package/lib/drama/skills/short-drama-image-prompts/references/production-sheet-recipes.md +177 -0
- package/lib/drama/skills/short-drama-image-prompts/references/prop-plate.md +140 -0
- package/lib/drama/skills/short-drama-image-prompts/references/review-and-fixtures.md +92 -0
- package/lib/drama/skills/short-drama-image-prompts/references/stage-contract.md +89 -0
- package/lib/drama/skills/short-drama-image-prompts/scripts/image_prompt_check.py +443 -0
- package/lib/drama/skills/short-drama-image-prompts/scripts/selftest.py +93 -0
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +245 -0
- package/lib/drama/skills/short-drama-novel-analyze/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +3 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +116 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +124 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +155 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +141 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +67 -0
- package/lib/drama/skills/short-drama-novel-analyze/scripts/novel_index.py +651 -0
- package/lib/drama/skills/short-drama-novel-analyze/scripts/selftest.py +51 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +103 -0
- package/lib/drama/skills/short-drama-produce/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +140 -0
- package/lib/drama/skills/short-drama-produce/references/providers/gpt-image-2.md +24 -0
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-music.md +25 -0
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +40 -0
- package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +60 -0
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +1635 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +964 -0
- package/lib/drama/skills/short-drama-produce/scripts/selftest.py +134 -0
- package/lib/drama/skills/short-drama-review/SKILL.md +178 -0
- package/lib/drama/skills/short-drama-review/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-review/assets/finding-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-review/assets/supersession-decision.example.json +42 -0
- package/lib/drama/skills/short-drama-review/assets/verdict-template.json +32 -0
- package/lib/drama/skills/short-drama-review/examples/minimal-findings.jsonl +2 -0
- package/lib/drama/skills/short-drama-review/examples/minimal-verdict.json +34 -0
- package/lib/drama/skills/short-drama-review/references/anti-template-repair.md +114 -0
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +270 -0
- package/lib/drama/skills/short-drama-review/references/project-calibration.md +85 -0
- package/lib/drama/skills/short-drama-review/references/review-method.md +82 -0
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +115 -0
- package/lib/drama/skills/short-drama-review/references/rubric-source-analysis.md +108 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +164 -0
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +166 -0
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +87 -0
- package/lib/drama/skills/short-drama-review/scripts/review_check.py +325 -0
- package/lib/drama/skills/short-drama-review/scripts/selftest.py +87 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +264 -0
- package/lib/drama/skills/short-drama-storyboard/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-audition.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/coverage-template.json +49 -0
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +32 -0
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/revision-lineage.fragment.json +12 -0
- package/lib/drama/skills/short-drama-storyboard/assets/scene-visual-plan.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/assets/shot-template.jsonl +2 -0
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +241 -0
- package/lib/drama/skills/short-drama-storyboard/references/coverage-audition.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/keyframe-craft.md +169 -0
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +264 -0
- package/lib/drama/skills/short-drama-storyboard/references/review-and-fixtures.md +70 -0
- package/lib/drama/skills/short-drama-storyboard/references/scene-visual-plan.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/screenplay-to-keyframe-example.md +157 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +192 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-revision-identity.md +29 -0
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +110 -0
- package/lib/drama/skills/short-drama-storyboard/scripts/selftest.py +191 -0
- package/lib/drama/skills/short-drama-storyboard/scripts/storyboard_check.py +824 -0
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +245 -0
- package/lib/drama/skills/short-drama-video-prompts/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/coverage-scope.fragment.json +21 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/delivery-container.jsonl.md +101 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-spec.jsonl.md +212 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/motion-terminal.example.jsonl +2 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/music-spec.jsonl.md +31 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/performance.fragment.json +38 -0
- package/lib/drama/skills/short-drama-video-prompts/assets/video-prompts.md +46 -0
- package/lib/drama/skills/short-drama-video-prompts/examples/minimal-music-specs.jsonl +2 -0
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +240 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +255 -0
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +93 -0
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +304 -0
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +191 -0
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +312 -0
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +168 -0
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +110 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/container_check.py +329 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +450 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/music_spec_check.py +327 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/selftest.py +82 -0
- package/lib/drama/skills/short-drama-write/SKILL.md +284 -0
- package/lib/drama/skills/short-drama-write/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-write/assets/beats.jsonl +2 -0
- package/lib/drama/skills/short-drama-write/assets/episode-card-standalone.json +120 -0
- package/lib/drama/skills/short-drama-write/assets/episode-card.json +55 -0
- package/lib/drama/skills/short-drama-write/assets/screenplay.md +36 -0
- package/lib/drama/skills/short-drama-write/assets/voice-record-sheet.jsonl.md +89 -0
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +519 -0
- package/lib/drama/skills/short-drama-write/references/production-format-dialect.md +273 -0
- package/lib/drama/skills/short-drama-write/references/scene-handoff-capsule.md +51 -0
- package/lib/drama/skills/short-drama-write/references/scene-sound-dramaturgy.md +43 -0
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +260 -0
- package/lib/drama/skills/short-drama-write/references/script-craft.md +558 -0
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +94 -0
- package/lib/drama/skills/short-drama-write/references/substitutable-realization.md +107 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +309 -0
- package/lib/drama/skills/short-drama-write/scripts/screenplay_index.py +1091 -0
- package/lib/drama/skills/short-drama-write/scripts/selftest.py +229 -0
- package/lib/drama/skills/short-drama-write/scripts/voice_sheet_check.py +416 -0
- package/lib/index.js +756 -0
- package/lib/index.js.map +7 -0
- package/lib/oh-story/LICENSE.upstream +21 -0
- package/lib/oh-story/manifest.json +1351 -0
- package/lib/oh-story/roles/chapter-extractor.md +314 -0
- package/lib/oh-story/roles/character-designer.md +169 -0
- package/lib/oh-story/roles/consistency-checker.md +190 -0
- package/lib/oh-story/roles/narrative-writer.md +294 -0
- package/lib/oh-story/roles/story-architect.md +195 -0
- package/lib/oh-story/roles/story-explorer.md +364 -0
- package/lib/oh-story/roles/story-researcher.md +304 -0
- package/lib/oh-story/skills/browser-cdp/SKILL.md +175 -0
- package/lib/oh-story/skills/story/SKILL.md +116 -0
- package/lib/oh-story/skills/story/VERSION +1 -0
- package/lib/oh-story/skills/story-cover/SKILL.md +327 -0
- package/lib/oh-story/skills/story-cover/references/cover-styles.md +210 -0
- package/lib/oh-story/skills/story-deslop/SKILL.md +445 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-import/SKILL.md +634 -0
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +82 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +134 -0
- package/lib/oh-story/skills/story-import/references/state-tracking.md +108 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +442 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +175 -0
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +329 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +270 -0
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +530 -0
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +559 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +80 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +149 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +133 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +342 -0
- package/lib/oh-story/skills/story-long-scan/references/genre-trends.md +197 -0
- package/lib/oh-story/skills/story-long-scan/references/publishing-guide.md +114 -0
- package/lib/oh-story/skills/story-long-scan/references/reader-profiling.md +105 -0
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +207 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +78 -0
- package/lib/oh-story/skills/story-long-write/SKILL.md +327 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +302 -0
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-long-write/references/character-basics.md +445 -0
- package/lib/oh-story/skills/story-long-write/references/character-design-methods.md +428 -0
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-long-write/references/commercial-core-methods.md +502 -0
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +62 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +426 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +209 -0
- package/lib/oh-story/skills/story-long-write/references/female-audience-writing.md +188 -0
- package/lib/oh-story/skills/story-long-write/references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-long-write/references/genre-catalog.md +480 -0
- package/lib/oh-story/skills/story-long-write/references/genre-core-mechanics.md +415 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +91 -0
- package/lib/oh-story/skills/story-long-write/references/genre-readers.md +235 -0
- package/lib/oh-story/skills/story-long-write/references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-long-write/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +349 -0
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +457 -0
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +287 -0
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +389 -0
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +326 -0
- package/lib/oh-story/skills/story-long-write/references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-long-write/references/plot-emotion-system.md +354 -0
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +711 -0
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +622 -0
- package/lib/oh-story/skills/story-long-write/references/quality-checklist.md +184 -0
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +109 -0
- package/lib/oh-story/skills/story-long-write/references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +108 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +409 -0
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +347 -0
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +510 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +140 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +99 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +284 -0
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +421 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-review/SKILL.md +483 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-review/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-review/references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-review/references/quality-checklist.md +250 -0
- package/lib/oh-story/skills/story-review/references/quality-rubric.md +55 -0
- package/lib/oh-story/skills/story-review/references/rubrics/fanqie.md +18 -0
- package/lib/oh-story/skills/story-review/references/rubrics/qidian.md +19 -0
- package/lib/oh-story/skills/story-review/references/rubrics/zhihu.md +20 -0
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +161 -0
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +410 -0
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +1139 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +495 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-basics.md +445 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-design-methods.md +428 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +385 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +426 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-methods.md +179 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +169 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-catalog.md +480 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-core-mechanics.md +415 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/270/234/346/226/271/344/273/231/344/276/240.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//344/274/240/347/273/237/347/216/204/345/271/273.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/345/217/244/344/273/243.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/216/206/345/217/262/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/214/347/224/267/344/270/273.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/350/250/200/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/217/244/351/243/216/344/270/226/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/346/202/254/347/226/221.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/245/263/351/242/221/347/247/215/347/224/260.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/256/253/346/226/227/345/256/205/346/226/227.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/271/264/344/273/243.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//345/277/253/347/251/277.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/347/201/265/345/274/202.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/202/254/347/226/221/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/210/230/347/245/236/350/265/230/345/251/277.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/212/227/346/210/230/350/260/215/346/210/230.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/230/237/345/205/211/347/222/200/347/222/250.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/260/221/345/233/275/350/250/200/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//346/270/270/346/210/217/344/275/223/350/202/262.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/204/221/346/264/236.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/204/345/271/273/350/250/200/346/203/205.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/216/260/350/250/200/350/204/221/346/264/236.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//347/247/221/345/271/273/346/234/253/344/270/226.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/201/214/345/234/272/345/251/232/346/201/213.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/245/277/346/226/271/345/245/207/345/271/273.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//350/261/252/351/227/250/346/200/273/350/243/201.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/344/277/256/347/234/237.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/346/227/245/345/270/270.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/347/247/215/347/224/260.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/350/204/221/346/264/236.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/203/275/345/270/202/351/253/230/346/255/246.md +53 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards//351/235/222/346/230/245/347/224/234/345/256/240.md +51 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +91 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-readers.md +235 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +349 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +457 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +287 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +389 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/plot-core-methods.md +522 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/quality-checklist.md +247 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +409 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +510 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +421 -0
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +278 -0
- package/lib/oh-story/skills/story-short-analyze/references/anti-ai-writing.md +582 -0
- package/lib/oh-story/skills/story-short-analyze/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-basics.md +453 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-design-methods.md +438 -0
- package/lib/oh-story/skills/story-short-analyze/references/character-relations.md +395 -0
- package/lib/oh-story/skills/story-short-analyze/references/deconstruction-examples.md +79 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-catalog.md +490 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-core-mechanics.md +425 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-readers.md +245 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-formulas.md +453 -0
- package/lib/oh-story/skills/story-short-analyze/references/genre-writing-techniques.md +475 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-short-analyze/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +685 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +165 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +561 -0
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +242 -0
- package/lib/oh-story/skills/story-short-analyze/references/real-market-data.md +90 -0
- package/lib/oh-story/skills/story-short-analyze/references/zhihu-style.md +54 -0
- package/lib/oh-story/skills/story-short-scan/SKILL.md +212 -0
- package/lib/oh-story/skills/story-short-scan/references/real-market-data.md +90 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +433 -0
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +147 -0
- package/lib/oh-story/skills/story-short-write/references/cross-book-recall.md +62 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +282 -0
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +179 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +159 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +156 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +163 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +167 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +178 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +166 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +159 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/262/231/351/233/225/350/204/221/346/264/236.md +151 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +153 -0
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +210 -0
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +444 -0
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +488 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-chapter.md +225 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-paragraph.md +146 -0
- package/lib/oh-story/skills/story-short-write/references/hooks-suspense.md +352 -0
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +165 -0
- package/lib/oh-story/skills/story-short-write/references/quality-checklist.md +222 -0
- package/lib/oh-story/skills/story-short-write/references/reversal-toolkit.md +349 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +185 -0
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +133 -0
- package/lib/oh-story/skills/story-short-write/references/short-format.md +167 -0
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +35 -0
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +158 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +153 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +1371 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +330 -0
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +241 -0
- package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +410 -0
- package/lib/types/client/file-activity.d.ts +30 -0
- package/lib/types/client/file-activity.d.ts.map +1 -0
- package/lib/types/client/file-tree.d.ts +20 -0
- package/lib/types/client/file-tree.d.ts.map +1 -0
- package/lib/types/client/index.d.ts +12 -0
- package/lib/types/client/index.d.ts.map +1 -0
- package/lib/types/client/jsonl-preview.d.ts +15 -0
- package/lib/types/client/jsonl-preview.d.ts.map +1 -0
- package/lib/types/client/markdown-preview.d.ts +38 -0
- package/lib/types/client/markdown-preview.d.ts.map +1 -0
- package/lib/types/index.d.ts +25 -0
- package/lib/types/index.d.ts.map +1 -0
- package/lib/types/native-hooks.d.ts +16 -0
- package/lib/types/native-hooks.d.ts.map +1 -0
- package/lib/types/role-provider.d.ts +6 -0
- package/lib/types/role-provider.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts +10 -0
- package/lib/types/role-tool.d.ts.map +1 -0
- package/lib/types/skill-provider.d.ts +15 -0
- package/lib/types/skill-provider.d.ts.map +1 -0
- package/lib/types/workspace-request-trust.d.ts +13 -0
- package/lib/types/workspace-request-trust.d.ts.map +1 -0
- package/lib/types/workspace-route.d.ts +10 -0
- package/lib/types/workspace-route.d.ts.map +1 -0
- package/lib/types/workspace-security.d.ts +9 -0
- package/lib/types/workspace-security.d.ts.map +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# AI味禁用词与句式表
|
|
2
|
+
|
|
3
|
+
<!-- 同名副本×6 字节同步,改动后跑 scripts/check-shared-files.sh -->
|
|
4
|
+
|
|
5
|
+
## 最毒禁用句式(出现即修,最高优先级)
|
|
6
|
+
|
|
7
|
+
写网文最毒的 AI 句式,作者一旦养成就会反复出现。Gate A 第一遍扫描必须命中:
|
|
8
|
+
|
|
9
|
+
| 毒级 | 句式 | 错误例 | 修法 |
|
|
10
|
+
|------|------|--------|------|
|
|
11
|
+
| ★★★★★ | "不是A,(而)是B" / "不是A,不是B,(而)是C"("而"可省略,省掉也算命中)| "他不是冷漠,而是绝望" | 直接写 B 或用更自然的表达 |
|
|
12
|
+
| ★★★☆☆ | 跨段「不是A。/也不是B。/只是C。」 | 「不是嚎啕大哭。/也不是扯着嗓子喊不舍。/只是一个人走远了……」 | 语义复核;重复提纲或拖慢画面时压成 C,有辩解/悬念排除功能可保留 |
|
|
13
|
+
| ★★★★ | ",带着……" 万能状语 | "他笑了一下,带着一丝不易察觉的嘲讽" | 删掉状语留主句,或换具体动作 |
|
|
14
|
+
| ★★★★ | 无情绪声线:"声音不大,却带着……" / "语气毫无波澜" / "平静无波" / "声音平直/平平/听不出情绪" | "她声音不大,却带着不容置疑的力量" | 直接写台词内容、声音特征或动作 |
|
|
15
|
+
| ★★★★ | "他/她知道……" | "他知道这一切都来不及了" | 用行为展示认知 |
|
|
16
|
+
| ★★★ | "仿佛/犹如/宛若……一般" | "仿佛能穿透一切一般" | 删掉或白描 |
|
|
17
|
+
| ★★★ | "眼中闪过一丝……" / "嘴角勾起一抹……" | "眼中闪过一丝悲伤" | 他垂下眼 / 他嘴角一扯 |
|
|
18
|
+
| ★★★ | "心中涌起一股……" / "心头一震" | "心中涌起一股暖流" | 用身体反应 |
|
|
19
|
+
| ★★★ | 抽象命运/开端收束:"命运……棋局/獠牙" / "这一刻终于明白" / "反击才刚刚开始" | "命运终于露出獠牙;属于他的反击才刚刚开始" | 回到角色当下可见的文件、动作、对话或物理后果 |
|
|
20
|
+
| ★★ | 章末预告 "他不知道的是……" | "他不知道的是,更大的风暴即将来临" | 用具体钩子物件/事件收束,避免空泛预告 |
|
|
21
|
+
|
|
22
|
+
> 凡命中 ★★★★★ 一处即视为重度AI味的强证据;★★★★ 命中 ≥2 处即触发中度复扫。
|
|
23
|
+
|
|
24
|
+
`check-ai-patterns.js` 的 `formulaic-parallelism` 还会提示「至于X不X,怎么X」和同动词「不V A,不V B」。这两类可能是功能性口语,因此只做 advisory;Gate B 必须连同台词读语境复核,若只是复述细纲/前文就压成一次判断,不能因 hook 豁免台词而跳过。
|
|
25
|
+
|
|
26
|
+
**标点**:正文(含叙述和对话)禁用破折号 `——`/`—`、双连字符 `--` 和省略号停顿,改用句号、逗号、短句或动作断句;不设置对话破折号例外。盐言「」引号不在此列。
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 一级禁用词(出现即替换)
|
|
31
|
+
|
|
32
|
+
> 什么词进一级:只收真人语料里几乎不出现、AI 特有的词。真人高频使用的自然副词和虚词不进一级,走二级密度控制。
|
|
33
|
+
|
|
34
|
+
### 情态类
|
|
35
|
+
仿佛、犹如、宛若、如同、一丝、一抹、些许、几分、隐约、毫无征兆、几不可闻、微不可察
|
|
36
|
+
|
|
37
|
+
### 动作类
|
|
38
|
+
深吸一口气、不禁
|
|
39
|
+
|
|
40
|
+
### 表情类
|
|
41
|
+
眼中闪过、嘴角勾起、眉头微皱、眉眼低垂、瞳孔微缩、瞳孔收缩、瞳孔一缩、指节泛白、眼神锐利、目光锐利
|
|
42
|
+
|
|
43
|
+
### 心理类
|
|
44
|
+
心中一动、心头一震、心下了然、心中暗道、心底泛起、不由得、心中一凛
|
|
45
|
+
|
|
46
|
+
### 判断类
|
|
47
|
+
不容置疑、不容置喙、不易察觉、显而易见、毫无疑问、不可否认、前所未有
|
|
48
|
+
|
|
49
|
+
### 形容类
|
|
50
|
+
坚定、闪烁着光芒、狡黠、深邃、凛冽、冰冷
|
|
51
|
+
|
|
52
|
+
### 过渡类
|
|
53
|
+
不由自主、情不自禁、自然而然、话锋一转
|
|
54
|
+
|
|
55
|
+
## 二级禁用词(高频出现时替换)
|
|
56
|
+
|
|
57
|
+
### 语境敏感词(仅高频或偷懒时处理)
|
|
58
|
+
突然、陡然、骤然、猛然、好像、似乎、瞬间、猛地、死死地(角色口语、真实突发、时间压缩、视角不确定时可保留;用同义变体轮换规避重复不算豁免,按同一个词计密度)
|
|
59
|
+
|
|
60
|
+
### 弱化副词(密度控制)
|
|
61
|
+
缓缓、微微、轻轻、淡淡(每千字合计 ≤3;这四个词同时计入 `cliche-density-tic` 的套词密度统计;孤立自然使用可保留,成串出现或每个动作都垫一个时才替换)
|
|
62
|
+
|
|
63
|
+
### 书面腔 → 口语化
|
|
64
|
+
|
|
65
|
+
| 书面腔 | 口语化替换 |
|
|
66
|
+
|--------|-----------|
|
|
67
|
+
| 瓦解 | 消失 / 散了 / 没了 |
|
|
68
|
+
| 无名火 | 烦躁 |
|
|
69
|
+
| 往我心上捅刀子 | 心烦意乱 |
|
|
70
|
+
|
|
71
|
+
### 总结句式
|
|
72
|
+
- "他/她终于明白..."
|
|
73
|
+
- "他/她这才意识到..."
|
|
74
|
+
- "这一刻,他/她终于明白/意识到..."
|
|
75
|
+
- "从这一刻开始..."
|
|
76
|
+
- "属于X的反击/复仇/故事,才刚刚开始"
|
|
77
|
+
- "命运/宿命 + 齿轮/棋局/獠牙/改写/安排"
|
|
78
|
+
- "此刻,他/她..."
|
|
79
|
+
- "一切...都..."
|
|
80
|
+
- "原来..."
|
|
81
|
+
|
|
82
|
+
### 排比句式
|
|
83
|
+
- 连续3句以上相同结构的排比
|
|
84
|
+
- "有的...有的...有的..."
|
|
85
|
+
- "一边...一边...一边..."
|
|
86
|
+
|
|
87
|
+
### 升华句式
|
|
88
|
+
- "这一刻..."
|
|
89
|
+
- "他知道..."
|
|
90
|
+
- "她明白..."
|
|
91
|
+
- "这就是..."
|
|
92
|
+
|
|
93
|
+
## 禁用句式模板
|
|
94
|
+
|
|
95
|
+
| 句式 | 示例 | 问题 |
|
|
96
|
+
|------|------|------|
|
|
97
|
+
| "不是A,而是B" | "他不是冷漠,而是绝望" | 最毒;直接写 B |
|
|
98
|
+
| "...,带着..." | "他说,带着一丝无奈" | 万能状语 |
|
|
99
|
+
| "声音不大,却带着……" | "她声音不大,却带着不容置疑的力量" | AI 最爱声音描写 |
|
|
100
|
+
| "仿佛能...一般" | "仿佛能穿透一切一般" | 文言腔 |
|
|
101
|
+
| 对话标签密度过高/公式化标签 | "好的,他说道" | 普通"说"可保留;高频或公式化时处理 |
|
|
102
|
+
| "他/她感到..." | "她感到一丝失落" | 告诉而非展示 |
|
|
103
|
+
| "他/她意识到..." | "他意识到事情不对" | 直接告知 |
|
|
104
|
+
| "眼中闪过一丝XX" | "眼中闪过一丝悲伤" | 模板化 |
|
|
105
|
+
| "嘴角勾起一抹XX" | "嘴角勾起一抹冷笑" | 模板化 |
|
|
106
|
+
| "心中涌起一股XX" | "心中涌起一股暖流" | 模板化 |
|
|
107
|
+
| "取而代之的是" | "笑容消失,取而代之的是冰冷" | AI 过渡模板;直接写新状态 |
|
|
108
|
+
| "淬了/淬着X" | "眼里淬了毒" | AI 通感套路;写动作或台词 |
|
|
109
|
+
| "显得(有些)X" | "他显得有些兴奋" | 告诉而非展示 |
|
|
110
|
+
| "心底/心里某个地方+软" | "心里某个地方软得一塌糊涂" | 言情套句;写动作 |
|
|
111
|
+
| "(浑身)散发着一股X气息/气场" | "浑身散发着一股生人勿近的气息" | 万能气场描写;写旁人的反应 |
|
|
112
|
+
| "命运/宿命 + 齿轮/棋局/獠牙/改写/安排" | "命运终于露出獠牙" / "早已布好的棋局" | 抽象作者总结;改成角色当下撞见的文件、动作、对话、物理后果 |
|
|
113
|
+
| "这一刻终于明白/从这一刻开始/才刚刚开始" | "这一刻,他终于明白" / "反击才刚刚开始" | AI 收束腔;删总结,用动作或未解决问题收尾 |
|
|
114
|
+
|
|
115
|
+
## 比喻分类(默认复核,不默认全删)
|
|
116
|
+
|
|
117
|
+
带"像/如/仿佛/犹如/宛若"的比喻不是一律 AI。真正高风险的是:成片堆叠、套用万能文学比喻、用精致比喻替代剧情推进,或在段尾替读者总结意义。本表用于识别需要复核的比喻类型:
|
|
118
|
+
|
|
119
|
+
| 比喻类别 | 例 | 处理 |
|
|
120
|
+
|---------|----|------|
|
|
121
|
+
| 生活/角色化 | "像一头被抛弃的野狗" | 若贴角色视角、能传递信息或情绪,可保留 |
|
|
122
|
+
| 物品/现象类 | "像一把刀" "脸色惨白得像这漫天的雪" | 普通功能性比喻可留;模板化或重复时改白描 |
|
|
123
|
+
| 状态类(陈词滥调) | "梨花带雨" "如沐春风" | 优先删或改成具体动作/表情 |
|
|
124
|
+
| 抽象类 | "像命运的齿轮" "像上辈子的尘埃" | 高风险,优先落回动作、物件、声音、后果 |
|
|
125
|
+
| 假设类 | "力道大得像是要把骨头捏碎" | 若是角色身体感知可留;夸张堆叠时改事实后果 |
|
|
126
|
+
|
|
127
|
+
处理原则:先看功能,再看密度。保留最能传递信息或情绪的一两个,其余改为直接描述、动词、名词、作用、结果或事实;不要把删掉的比喻替换成另一批新比喻。例 "脸色惨白得像这漫天的雪" 若只是套话 → "脸色惨白";若雪景正在压迫角色,可保留或改成角色当下看到的具体画面。
|
|
128
|
+
|
|
129
|
+
> `metaphor-density-tic` 是 advisory:提示通读复核,不是 blocking;生活化、角色化、单个有功能的比喻可以保留。
|
|
130
|
+
|
|
131
|
+
## 替换策略速查
|
|
132
|
+
|
|
133
|
+
| 原文类型 | 替换方法 | 示例 |
|
|
134
|
+
|----------|----------|------|
|
|
135
|
+
| 抽象情绪词 | 具体动作 | "紧张" → "手在抖" |
|
|
136
|
+
| "感到XX" | 外化表现 | "感到愤怒" → "攥紧拳头" |
|
|
137
|
+
| 形容词堆砌 | 白描手法 | "美丽动人的笑容" → "她笑了" |
|
|
138
|
+
| 书面表达 | 口语化 | "不容置疑" → "就是" |
|
|
139
|
+
| 解释性描写 | 留白 | "他因为害怕而..." → "他退后一步" |
|
|
140
|
+
| 连续排比 | 保留最强一条 | 3 句排比留 1 句 |
|
|
141
|
+
| 总结升华句 | 直接删除 | "这一刻,她终于明白了..." → 删 |
|
|
142
|
+
| "不是A,而是B" | 直接写 B 或更自然的表达 | "他不是冷漠,而是绝望" → 直接写 B |
|
|
143
|
+
| 多余修饰(形容词/定语/量词/指示代词) | 删 | "白色的药片" → "药片";"手里那截链子" → "链子";"飞驰的汽车" → "车" |
|
|
144
|
+
|
|
145
|
+
**替换不复用**:右列是方向示例,不是标准答案。同一禁用词在一章内多次命中时,各处给不同的具体化写法;同一个替换写法反复出现(每次都「垂下眼」、每个动作都补「了一下」),替换产物本身就成为新的模板指纹。
|
|
146
|
+
|
|
147
|
+
**套词密度优先处理**:`check-ai-patterns.js` 报 `cliche-density-tic` 时,说明禁用词不是零星误用,而是聚成了模板腔。处理顺序不是同义词替换,而是先删抽象总结,再把情绪/判断落到角色当下可见的动作、物件、对话和具体后果。
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: cross-book-recall
|
|
3
|
+
description: 多对标跨书召回
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# 跨书召回
|
|
7
|
+
|
|
8
|
+
## 触发
|
|
9
|
+
先按当前项目目录名、`.active-book` 与本书设定识别当前作品,排除同名或来源指向当前正文的 `拆文库/{当前书}/` 与历史误建的 `对标/{当前书}/`;它们是本书导入分析,不是跨书样本。排除后,项目根 `拆文库/` 或项目 `对标/` ≥2 本才启用。主对标书取 `设定/题材定位.md`「主对标书」字段,缺失则从排除后的候选中取字典序第一本(优先 `对标/`,否则 `拆文库/`),并在 `gaps.main_benchmark_unspecified: true` 中提示用户补。
|
|
10
|
+
|
|
11
|
+
> **数量规则**:主对标书最多 1 本,用于文风和最终正文输入;副对标 / 参考对标**不限制登记数量**。执行时按题材相关性、引用强度和阶段预算逐本召回;超过预算时裁剪条目,不删除书目。
|
|
12
|
+
|
|
13
|
+
## 三道防线
|
|
14
|
+
1. 副对标 `文风.md` 不读,避免多本文风互相污染
|
|
15
|
+
2. 角色/剧情/设定模块可从所有副对标召回,但必须按「同题材 > 弱相关 > 参考」排序,并受每本/总量预算约束
|
|
16
|
+
3. narrative-writer 正文 prompt 只吃主对标文风/原文锚点 + 预算筛选后的 `副对标召回摘要`;不读取、不传入副对标 `文风.md` 或副书原文
|
|
17
|
+
|
|
18
|
+
## 跨题材判断
|
|
19
|
+
从项目 `设定/题材定位.md`「对标书列表」字段读每本副对标的「题材类型」与「引用强度」(未登记的书按「参考」处理,并输出 `gaps.benchmark_registry_missing: true`):
|
|
20
|
+
- 同题材 + 引用强度=辅:全阶段可召回,按每本上限取条目
|
|
21
|
+
- 同题材 + 引用强度=参考:只取最相关条目,默认不超过每本上限的一半
|
|
22
|
+
- 弱相关:仅设定/大纲,每本 ≤1 条
|
|
23
|
+
- 不相关:跳过
|
|
24
|
+
|
|
25
|
+
排序规则:先按相关性(同题材 > 弱相关),再按引用强度(辅 > 参考),再按用户在 `对标书列表` 中的顺序;若缺少 `对标书列表` 或其中未登记某本书,则剩余副书按目录名/书名 Unicode 字典序稳定排序,并输出 `gaps.benchmark_registry_missing: true` 提示补全清单。副书数量不限;如果总条数超过阶段预算,裁条目不裁书目记录。
|
|
26
|
+
|
|
27
|
+
## 阶段消费
|
|
28
|
+
表中数字为**每本副对标召回上限**;同时设置阶段总预算,防止副书很多时挤爆上下文。`—` 行表示该文体无此阶段,整行忽略。
|
|
29
|
+
|
|
30
|
+
| 阶段 | 长篇产出 | 短篇产出 | 同题材每本上限 | 弱相关每本上限 | 阶段总预算 |
|
|
31
|
+
|------|---------|---------|----------------|----------------|------------|
|
|
32
|
+
| 设定 | `拆文报告.md` | `拆文报告.md` + `情节节点.md` | ≤2 | ≤1 | ≤8 |
|
|
33
|
+
| 大纲 | `章节/*_摘要.md` + `剧情/*.md` | `情节节点.md` + `写作手法.md` | ≤3 | ≤1 | ≤10 |
|
|
34
|
+
| 模块 | `角色/` + `剧情/` + `设定/` | — | ≤2 | 0 | ≤8 |
|
|
35
|
+
| 正文 | `文风.md` + 原文 | `写作手法.md` + 原文 | 0 | 0 | 0 |
|
|
36
|
+
|
|
37
|
+
> **大纲阶段按剧情单元检索**:检索键为剧情单元「类型」(第一键,必填枚举)/「桥段标签、套路框架位置」(第二键);同题材内同类命中条目优先进入预算。仅限大纲阶段按剧情单元检索时生效,不改其余阶段排序与预算数字。同类零命中时回退主对标来源条并输出非阻塞 `gaps.similar_plot_not_found: true`,流程继续。
|
|
38
|
+
|
|
39
|
+
## 输出要求
|
|
40
|
+
|
|
41
|
+
跨书召回输出必须包含:
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
## 副对标召回摘要
|
|
45
|
+
| 书名 | 引用强度 | 相关性 | 召回阶段 | 召回条数 | 使用方式 |
|
|
46
|
+
|---|---|---|---|---|---|
|
|
47
|
+
| {书名} | 辅/参考 | 同题材/弱相关 | 设定/大纲/模块 | {n} | {用于补充某类结构,不进入文风/原文锚点} |
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
若副书很多,只输出被本阶段实际召回的条目;未召回的副书不代表被删除,只是本阶段预算未命中。正文阶段可传入本表作为结构/情绪/设定参考,但必须保留“副书不进文风、不进原文锚点”的边界。
|
|
51
|
+
|
|
52
|
+
## 拆文字段 → 写作参考
|
|
53
|
+
读 `_meta.json.structure_counts` 时,按此表回查当前 skill 已登记的对应写作 reference。短篇优先走 genre-styles 题材包与 short-craft,长篇优先走长篇同类理论文件;未在当前 skill `参考资料` 表登记的文件不要跨 skill 加载。
|
|
54
|
+
|
|
55
|
+
| 拆文字段 | 含义 | 写作参考 |
|
|
56
|
+
|---------|------|---------|
|
|
57
|
+
| `beats` | 结构段(开端/发展/高潮/结局) | 当前 skill 的题材结构文件;短篇优先 genre-styles 题材包 / `genre-writing-formulas.md` |
|
|
58
|
+
| `hooks` | 钩子数 | `hooks-chapter.md` / `hooks-suspense.md`;短篇开头密度补 short-craft |
|
|
59
|
+
| `setup_clues` | 反转铺垫线索 | `reversal-toolkit.md` |
|
|
60
|
+
| `character_archetypes` | 反差人物 | 当前 skill 的人物/题材风格文件;短篇优先 genre-styles 题材包 / genre-writing-techniques |
|
|
61
|
+
| `reusable_structures` | 可复用手法 | `genre-writing-formulas.md`;短篇可补 short-craft |
|
|
62
|
+
| `reversal_type` | 反转类型(7 枚举) | `reversal-toolkit.md` 对应骨架 |
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# 对话设计操作手册
|
|
2
|
+
|
|
3
|
+
> 写对话场景时加载。先看决策路由选对话模式,再用操作指令控制质量。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 决策路由
|
|
8
|
+
|
|
9
|
+
| 你的对话场景是 | 用这种模式 | 操作 |
|
|
10
|
+
|-------------|---------|------|
|
|
11
|
+
| 主角碾压/打脸 | 压制模式 | 对方长篇大论 → 主角一字回应 |
|
|
12
|
+
| 主角亮底牌/反转 | 反转模式 | 对方嚣张 → 主角一句话事实 → 对方沉默 |
|
|
13
|
+
| 关系破裂/心死 | 心死模式 | 对话越回越短:从辩解 → 沉默 → "随意" |
|
|
14
|
+
| 日常互动/立人设 | 日常模式 | 让其他人物参与冲突,不要主角一个人独白 |
|
|
15
|
+
| 群众震惊/弹幕 | 弹幕模式 | 递进:普通人震惊 → 专业人士分析 → 特殊身份者反应 |
|
|
16
|
+
| 信息展示/世界观 | 信息嵌入 | 用角色语气包裹信息,不是机械陈述设定 |
|
|
17
|
+
| 情绪拉扯/虐心 | 情绪推动 | 上行下行交替,像拉锯拉升期待 |
|
|
18
|
+
|
|
19
|
+
### 对话模式选择补充
|
|
20
|
+
|
|
21
|
+
| 对话类型 | 常见问题 | 修正操作 |
|
|
22
|
+
|----------|---------|---------|
|
|
23
|
+
| 问答式(通篇一问一答像审讯) | 改为一方主动说,另一方给反应;反应可用动作/表情/心理 |
|
|
24
|
+
| 冲突式(太礼貌不够劲) | 递进五级:委婉拒绝→友好人道→命令否定→PUA式→直接侮辱 |
|
|
25
|
+
| 日常对话(容易变成没功能的水) | 功能是立人设;能让人参与的冲突别让主角独白 |
|
|
26
|
+
| 多人对话(混乱/没营养) | 写前规划每个角色功能:信息提供者/情绪放大器/冲突制造者 |
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 对话核心规则
|
|
31
|
+
|
|
32
|
+
每句对话必须承载以下至少一项,否则删除:
|
|
33
|
+
|
|
34
|
+
1. **推进剧情**:透露新信息、推动事件发展
|
|
35
|
+
2. **增加期待感**:暗示即将发生的事、制造悬念
|
|
36
|
+
3. **展示人设**:通过语言风格传递角色性格
|
|
37
|
+
|
|
38
|
+
且在情绪场景里,每句还要**回应上一句对方的情绪状态**(承接/偏转/升级/退缩)——对话是两个人的情绪在碰,不是轮流播报信息。只推进剧情、句间无情绪承接 = 机械对话。
|
|
39
|
+
|
|
40
|
+
### 绝对禁止
|
|
41
|
+
|
|
42
|
+
| 禁止 | 理由 |
|
|
43
|
+
|------|------|
|
|
44
|
+
| 配角无脑夸主角 | 假 |
|
|
45
|
+
| 互相解释读者已知信息 | 水字数 |
|
|
46
|
+
| 大段说明文式对话 | 闷 |
|
|
47
|
+
| 所有角色说话方式一样 | 模糊 |
|
|
48
|
+
| 对话说服人物 | 现实中没人被几句话说服,用突发状况代替 |
|
|
49
|
+
| 情绪写完方向变了 | 需回退到情绪拆分 |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## 权力博弈对话
|
|
54
|
+
|
|
55
|
+
### 规则
|
|
56
|
+
|
|
57
|
+
对话长度 = 权力地位。掌控者话短且冷静,被动者话多且情绪化。
|
|
58
|
+
|
|
59
|
+
### 压制模式
|
|
60
|
+
|
|
61
|
+
结构:对方长篇大论(3-5 行)→ 主角一字回应。
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
"你以为你是什么东西?我告诉你,这个家轮不到你说话!你嫁进来的那天起就该明白自己的位置。"
|
|
65
|
+
"滚。"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### 反转模式
|
|
69
|
+
|
|
70
|
+
结构:对方嚣张(2-3 行)→ 主角亮底牌(1 行事实)→ 对方沉默。
|
|
71
|
+
|
|
72
|
+
```
|
|
73
|
+
"你有什么资格管?这是我家的钱,我想怎么花怎么花。"
|
|
74
|
+
"你妈的存折,密码是我的生日。"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 心死模式
|
|
78
|
+
|
|
79
|
+
结构:对话越回越短,从辩解到沉默到「随意」。
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
"你听我解释,那天不是你想的那样。"
|
|
83
|
+
"嗯。"
|
|
84
|
+
"真的,我可以证明。"
|
|
85
|
+
"随意。"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 操作指令
|
|
89
|
+
|
|
90
|
+
- 掌控者/主角亮底牌时:对话 ≤ 10 字,不加动作描写
|
|
91
|
+
- 被压制方:对话 ≥ 20 字,可加动作描写(攥拳/咬唇/站起来)
|
|
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
|
+
### 强情绪对话
|
|
127
|
+
|
|
128
|
+
- 命令式+否定式最能激发读者情绪:"我说的还不够清楚吗?"
|
|
129
|
+
- 最强话术:打着为你好的幌子,句句不离关心,但句句都是嫌弃、指责、厌恶
|
|
130
|
+
- 直接否定比含蓄暗示更伤人
|
|
131
|
+
|
|
132
|
+
### 情绪连续性
|
|
133
|
+
|
|
134
|
+
角色情绪是连续的、循序渐进的。从生气到高兴:生气 → 不那么生气 → 不生气 → 高兴,每次转变需对应事件触发。不能跳步。
|
|
135
|
+
|
|
136
|
+
### 情绪四步法(缺一不可)
|
|
137
|
+
|
|
138
|
+
1. 遇到事件(失衡状态)
|
|
139
|
+
2. 情绪反应(外在表现:动作、表情、语言)
|
|
140
|
+
3. 内心思考(即使没思考也要写出"没有思考",表达鲁莽)
|
|
141
|
+
4. 采取行动(基于前三步结果回应)
|
|
142
|
+
|
|
143
|
+
### 对话不平淡三思路
|
|
144
|
+
|
|
145
|
+
- 对话本身带来/强化某个核心驱动力(期待、爽感、悬念)
|
|
146
|
+
- 信息交流因某原因受阻碍,阻碍可能导致驱动力到来
|
|
147
|
+
- 发展突然脱离读者预期(但必须合理、符合人设)
|
|
148
|
+
- 把长篇对话塞在期待点和爽点之间:读者为了看爽点愿意忍受中间对话
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 信息展示与世界观引出
|
|
153
|
+
|
|
154
|
+
- 大量信息通过对话展示会显得啰嗦,部分信息转化为情节、心理描写、旁白、环境、动作
|
|
155
|
+
- 用角色的语气和立场包裹信息,不是机械陈述设定
|
|
156
|
+
- 设定用到哪个稍微带出来就行,不需完完全全讲明白前因后果
|
|
157
|
+
- **角色不当"科普嘴"**:设定/原理/前因后果不能靠任何角色(尤其信息型/AI 配角)整段讲解——Gate G 同样适用于角色台词。拆成角色在压力下挤出的半句话 + 身体反应 + 留白,用到哪带哪点
|
|
158
|
+
|
|
159
|
+
### 信息拉扯示例(以"主角新书起飞了"为例)
|
|
160
|
+
|
|
161
|
+
| 角色 | 台词 | 功能 |
|
|
162
|
+
|------|------|------|
|
|
163
|
+
| 甲 | 听说成绩…… | 悬念拉期待 |
|
|
164
|
+
| 乙 | 肯定没人看! | 下行 + 拉期待 |
|
|
165
|
+
| 甲 | 听说成绩很不错 | 上行 + 拉期待 |
|
|
166
|
+
| 乙 | 首订一万三? | 展露核心信息 + 达成爽点 |
|
|
167
|
+
|
|
168
|
+
上行和下行交替,情绪像拉锯不断拉升期待。
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 人物语言差异化
|
|
173
|
+
|
|
174
|
+
每个角色要有自己的说话方式。对话时经常卡住不知道角色会说什么 → 人设模糊,去总结类似人设的说话方式。
|
|
175
|
+
|
|
176
|
+
| 差异化维度 | 操作 |
|
|
177
|
+
|------------|------|
|
|
178
|
+
| 口癖和惯用语 | 给每个主要角色一个标志性用词 |
|
|
179
|
+
| 说话节奏 | 长篇大论 vs 短句连击 |
|
|
180
|
+
| 信息偏好 | 技术型带专业术语,江湖人带切口 |
|
|
181
|
+
| 立场固定 | 某角色永远从某个角度发言(悲观派/乐观派/务实派) |
|
|
182
|
+
| 身份影响措辞 | 老者/少年/贵族/市井,身份不同则措辞、自称、敬谦词不同 |
|
|
183
|
+
| 性格影响语气 | 智谋型话里有话;鲁莽型想到什么说什么;冷静型措辞精确,偶尔情感外露反而有冲击 |
|
|
184
|
+
| 进度影响态度 | 初见/熟悉/对立/亲密,关系阶段不同则语气与信息量不同 |
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## 弹幕/群众对话
|
|
189
|
+
|
|
190
|
+
三大核心作用:剧情推进(透露主角不知道的信息)、增加期待感(悬念、猜测)、情绪渲染(群众震惊/激动/愤怒传染读者)。锦上添花,不代替主线。
|
|
191
|
+
|
|
192
|
+
### 设计过的弹幕 vs 没设计的
|
|
193
|
+
|
|
194
|
+
- 没设计:只有"卧槽好厉害",单调、浪费
|
|
195
|
+
- 设计过:普通人震惊 → 专业人士分析 → 特殊身份者反应 → 情感升华
|
|
196
|
+
|
|
197
|
+
### 操作要点
|
|
198
|
+
|
|
199
|
+
- 不同人格化语气,不能每条都一个味
|
|
200
|
+
- 短小精悍,每条不超过一句话核心信息
|
|
201
|
+
- 善用递进:从最初震惊到逐渐认识全貌
|
|
202
|
+
- 可出现"反转"角色:看似路人一句话改变所有人认知
|
|
203
|
+
- 不用每章都写,关键爽点/燃点/泪点前后集中使用
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 节奏控制
|
|
208
|
+
|
|
209
|
+
### 大量对话保持节奏
|
|
210
|
+
|
|
211
|
+
- 不要删掉表现人物性格的语气助词来"精简"
|
|
212
|
+
- 对话段落间穿插动作描写、环境变化、心理活动调节节奏
|
|
213
|
+
- 紧张段落对话短促,舒缓段落可以长一些
|
|
214
|
+
- 关键信息放对话开头或结尾,中间用于拉扯情绪
|
|
215
|
+
|
|
216
|
+
### 动作和表情处理
|
|
217
|
+
|
|
218
|
+
- 刻意给每句对话配表情/动作会让行文机械
|
|
219
|
+
- 动作和表情在关键转折处使用效果最好,不需要每句都配
|
|
220
|
+
- 语气平淡场景(喝茶、散步)用微小动作和沉默体现氛围
|
|
221
|
+
|
|
222
|
+
### 对话的呼吸感
|
|
223
|
+
|
|
224
|
+
- 连续多轮对话后需要"换气",插入环境描写或角色心理
|
|
225
|
+
- 适当停顿(动作描写、换行、短句)比连续输出更有张力
|
|
226
|
+
- "你确定?"比长篇解释更有压迫感
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## 篇幅控制
|
|
231
|
+
|
|
232
|
+
### 对话过多时
|
|
233
|
+
|
|
234
|
+
- 读者已知信息的对话用叙事一句话概括:"爱丽丝向安娜讲述了来城里的原因,安娜听后直皱眉头"
|
|
235
|
+
- 能用突发状况替代的对话段落直接替换
|
|
236
|
+
- 语气词删掉后干巴巴 = 对话本身缺乏信息量,需重写
|
|
237
|
+
|
|
238
|
+
### 对话过少时
|
|
239
|
+
|
|
240
|
+
- 能用其他人物对话讲出来的东西,不要让主角旁白平铺直叙
|
|
241
|
+
- 引入配角参与冲突和对话,但新人物必须安排主线戏份
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## 以梗填充对话
|
|
246
|
+
|
|
247
|
+
### 梗式 vs 普通
|
|
248
|
+
|
|
249
|
+
- 普通:"兄弟别灰心,你一步步走到今天我是看着你过来的,这点挫折对于你来说算什么事儿?振作起来!"
|
|
250
|
+
- 梗式:"兄弟别灰心,我相信你总有人头落地,落地人头,头落地上……卧槽那句话怎么说的来着?兄弟你懂我意思是吧……"
|
|
251
|
+
- 梗式用"说不出来但意思到了"的状态制造趣味
|
|
252
|
+
|
|
253
|
+
### 操作
|
|
254
|
+
|
|
255
|
+
- 在对话中融入梗或骚话,有效提升整体趣味性
|
|
256
|
+
- 特别是主角或重要配角的突出对话,适合用梗强化记忆点
|
|
257
|
+
- 可用某个梗作为高潮点,整段剧情围绕达成这个梗来设计
|
|
258
|
+
- **场合例外(声线让位)**:高压/生死/悲痛/严肃 beat 里,搞笑担当与轻快配角的玩笑、口头梗、插科打诨一律收敛——声线让位于当前情绪基调,用短、冷、带情绪重量的反应替代;梗只在安全或喘息 beat 放。自检:这句玩笑放进当前基调会不会让读者出戏?会就删/改
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## 质量检查
|
|
263
|
+
|
|
264
|
+
### 三大自查项(中一条以上需改进)
|
|
265
|
+
|
|
266
|
+
- [ ] 是否存在大量信息都必须用对话来展示
|
|
267
|
+
- [ ] 对话是否是问答式的一问一答
|
|
268
|
+
- [ ] 是否习惯依赖对话来推动剧情或人物变化
|
|
269
|
+
|
|
270
|
+
### 核心指令检查
|
|
271
|
+
|
|
272
|
+
- [ ] 权力博弈:掌控者对话 <= 10 字 / 被压制方 >= 20 字,是否有明确的压制/反转/心死模式
|
|
273
|
+
- [ ] 潜台词与议程:每个角色进入对话时有自己的议程,真实动机不在台词中
|
|
274
|
+
- [ ] 人物差异化:遮住角色名后能否区分是谁在说话(7维差异化)
|
|
275
|
+
- [ ] 弹幕递进:普通 → 专业 → 特殊身份,是否有层次感
|
|
276
|
+
- [ ] 对话推动剧情:每段对话结束时,剧情是否往前推了一步
|
|
277
|
+
- [ ] 篇幅控制:单次对话不超过全节 40%,信息密度是否足够
|
|
278
|
+
|
|
279
|
+
### 检验对话质量
|
|
280
|
+
|
|
281
|
+
- 对话自然度检查:逐句检查对话是否像自然口语交流,而非书面化的问答稿
|
|
282
|
+
- 对话结尾能否预示接下来的节奏变化
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# 情感设计方法:三板斧 + 拉扯节奏 + 失败模式
|
|
2
|
+
|
|
3
|
+
> 设计情感桥段时加载。先看决策路由选策略,再用三板斧设计具体段落。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 决策路由
|
|
8
|
+
|
|
9
|
+
| 你的情感设计场景是 | 用这个策略 | 跳转到 |
|
|
10
|
+
|---------------|-----------|----------|
|
|
11
|
+
| 建立角色羁绊(让读者相信关系) | 羁绊铺设(第一斧) | 三板斧 §1 |
|
|
12
|
+
| 制造情感撕裂(反差/错位/背叛) | 情感撕裂(第二斧) | 三板斧 §2 |
|
|
13
|
+
| 写结尾余韵(安静细节击穿读者) | 余韵钝痛(第三斧) | 三板斧 §3 |
|
|
14
|
+
| 规划整体情感节奏曲线 | 拉扯节奏设计 | 拉扯节奏 |
|
|
15
|
+
| 不同题材的情感策略选择 | 题材策略差异 | 按题材 |
|
|
16
|
+
| 检查情感设计是否有效 | 失败模式排查 + 快速自查 | 底部清单 |
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 情感虐心三板斧
|
|
21
|
+
|
|
22
|
+
### 第一斧:羁绊铺设(前 1/3)
|
|
23
|
+
|
|
24
|
+
**目标**:用具体物件/数字/细节建立关系质感,让读者相信这段关系是真实的。
|
|
25
|
+
|
|
26
|
+
**方法**:
|
|
27
|
+
- 用具体数字建立时间感:「相恋八年」「昏迷五年」「七年光景」
|
|
28
|
+
- 用具体物件承载感情:金锁(姐姐的生日礼物)、账本数字(还债记录)、木头小马(父王磨的)
|
|
29
|
+
- 用重复动作建立习惯:每天一碗粥、每两周来看一次、每年冬天冻得睡不着
|
|
30
|
+
|
|
31
|
+
**案例**:
|
|
32
|
+
- 《迟来二十年》:用二十年的账本数字(八万块)建立母女关系的重量
|
|
33
|
+
- 《我在佛前求你》:昏迷五年、求神拜佛的细节、从初中开始的暗恋
|
|
34
|
+
- 《皇弟欺负幼子》:七年质子生涯的具体苦难(跪雪地、挨巴掌、吃馊饭)
|
|
35
|
+
|
|
36
|
+
**核心**:羁绊越具体,后面的撕裂越痛。不要用「他们很相爱」这种抽象描述。
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
### 第二斧:情感撕裂(中后段)
|
|
41
|
+
|
|
42
|
+
**目标**:制造反差,让读者以为恨对了 → 发现恨错了(或反过来)。
|
|
43
|
+
|
|
44
|
+
**方法**:
|
|
45
|
+
- **反差法**:先展示温暖一面,再用残酷真相击碎
|
|
46
|
+
- **错位法**:角色 A 以为在保护角色 B,实际上在伤害
|
|
47
|
+
- **延迟真相法**:关键信息在读者最不期待的时候揭示
|
|
48
|
+
|
|
49
|
+
**案例**:
|
|
50
|
+
- 《姐夫捎路要奶粉钱》:妈妈表面软弱可怜,实际一直操控姐姐索取钱财 → 金锁是假的(金包铜)→ 反差撕裂
|
|
51
|
+
- 《皇弟欺负幼子》:王氏表面温柔(送手炉、煎汤药)→ 实际下药逼疯先皇后 → 用诛心话逼死
|
|
52
|
+
- 《重生弟弟》:弟弟深爱女友 → 女友是诈骗犯 → 怀孕是假的 → 被骗到电诈园区
|
|
53
|
+
|
|
54
|
+
**核心**:撕裂的力度取决于铺垫的厚度。没有好的羁绊铺设,撕裂就是无根之木。
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### 第三斧:余韵钝痛(结尾)
|
|
59
|
+
|
|
60
|
+
**目标**:不用大哭大闹,用安静细节击穿读者防线。
|
|
61
|
+
|
|
62
|
+
**方法**:
|
|
63
|
+
- 用日常动作承载巨大情感:继续喂粥、把衣服叠好、不回头
|
|
64
|
+
- 用物件细节制造余韵:坏掉的金锁、木头小马、沾血的戒指
|
|
65
|
+
- 用「不」制造留白:不解释、不回头、不流泪
|
|
66
|
+
|
|
67
|
+
**案例**:
|
|
68
|
+
- 《皇弟欺负幼子》:「他拿着那匹被我磨得很光滑的木头小马……他握着正好。」
|
|
69
|
+
- 《姐夫捎路要奶粉钱》:「我的手机清净了不少。那些困扰我很久的麻烦,在一瞬间变得很小很小。」
|
|
70
|
+
- 《准儿媳打分》:「办了收养手续后,她第一次踏进这个陌生的家……我知道,这一次我没选错。」
|
|
71
|
+
|
|
72
|
+
**核心**:最好的余韵不靠大哭,靠「看完之后很久都忘不掉」。
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 情感拉扯节奏设计
|
|
77
|
+
|
|
78
|
+
### 基本节奏曲线
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
温暖 → 残忍 → 善意 → 真相 → 原谅 → 来不及 → 释然 → 细节暴击
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
不是所有故事都走完整曲线。按题材选择子集:
|
|
85
|
+
|
|
86
|
+
| 题材 | 典型节奏 | 核心拉扯 |
|
|
87
|
+
|------|----------|----------|
|
|
88
|
+
| 世情/爽文 | 欺压 → 忍耐 → 爆发 → 打脸 | 情绪反弹快、打脸密度高 |
|
|
89
|
+
| 情感/虐心 | 甜蜜 → 破碎 → 挽回 → 错过 | 慢铺垫、后劲大 |
|
|
90
|
+
| 古言/复仇 | 隐忍 → 布局 → 揭穿 → 报应 | 设定简洁、暴力美学 |
|
|
91
|
+
| 悬疑/推理 | 平静 → 不安 → 真相 → 震惊 | 信息差制造不安 |
|
|
92
|
+
| 年代/亲情 | 误解 → 冲突 → 真相 → 和解 | 代际冲突、时代质感 |
|
|
93
|
+
|
|
94
|
+
### 拉扯原则
|
|
95
|
+
|
|
96
|
+
1. **每 3-5 个小节有一次情绪转向**(不能一路虐到底或一路爽到底)
|
|
97
|
+
2. **每次转向都要有触发事件**(不能无理由地改变情绪)
|
|
98
|
+
3. **最后一次转向决定结尾余韵的基调**
|
|
99
|
+
4. **爽文允许快速反弹,虐文需要更长铺垫**
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 按题材的情感策略差异
|
|
104
|
+
|
|
105
|
+
### 世情/爽文
|
|
106
|
+
|
|
107
|
+
- 情绪反弹速度:快(受辱后 2-3 节内打脸)
|
|
108
|
+
- 打脸密度:每 3-5 节一次
|
|
109
|
+
- 反派嚣张度:递增(第一次小嚣张,最后一次大嚣张)
|
|
110
|
+
- 结尾基调:痛快、解气
|
|
111
|
+
- 案例:《准儿媳打分》— 打分制反制、铁盒零分、断绝关系
|
|
112
|
+
|
|
113
|
+
### 情感/虐心
|
|
114
|
+
|
|
115
|
+
- 羁绊细节密度:高(前 1/3 必须建立深厚羁绊)
|
|
116
|
+
- 反差设计:先暖后冷,先甜后苦
|
|
117
|
+
- 余韵技法:安静结尾 + 物件细节
|
|
118
|
+
- 结尾基调:意难平、释然
|
|
119
|
+
- 案例:《姐夫捎路要奶粉钱》— 金锁真相 → 假爱 → 独立
|
|
120
|
+
|
|
121
|
+
### 古言/复仇
|
|
122
|
+
|
|
123
|
+
- 设定简洁原则:人物关系清晰,不搞复杂世界观
|
|
124
|
+
- 暴力美学写法:打脸要直接,不拖泥带水
|
|
125
|
+
- 底牌时机:最后 1/4 揭示最大底牌
|
|
126
|
+
- 结尾基调:大快人心、因果报应
|
|
127
|
+
- 案例:《皇弟欺负幼子》— 一声令下打二十棍 → 查出真相 → 废后
|
|
128
|
+
|
|
129
|
+
### 悬疑/推理
|
|
130
|
+
|
|
131
|
+
- 信息差布局:读者知道角色不知道,或反过来
|
|
132
|
+
- 排除法结构:逐步排除可能性,最后只剩真相
|
|
133
|
+
- 动机揭示节奏:先揭示做了什么,再揭示为什么做
|
|
134
|
+
- 结尾基调:细思极恐、原来如此
|
|
135
|
+
- 案例:《重生弟弟》— 重生设定 + 诈骗犯身份 + 电诈园区
|
|
136
|
+
|
|
137
|
+
### 年代/亲情
|
|
138
|
+
|
|
139
|
+
- 代际冲突处理:不站队,展示双方的苦
|
|
140
|
+
- 时代细节质感:用时代特有的物件/习俗建立质感
|
|
141
|
+
- 和解节奏:不急和解,先让双方充分受伤
|
|
142
|
+
- 结尾基调:温暖中带着遗憾
|
|
143
|
+
- 案例:《姐夫捎路要奶粉钱》— 亲子关系 → 金锁真相 → 断裂
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 常见失败模式
|
|
148
|
+
|
|
149
|
+
| 失败模式 | 识别方法 | 修正方向 |
|
|
150
|
+
|----------|----------|----------|
|
|
151
|
+
| **太平** | 连续 5+ 节没有情绪转折 | 插入意外事件或新信息 |
|
|
152
|
+
| **太赶** | 重大转折只用了 1 节铺垫 | 给转折至少 3 节铺垫 |
|
|
153
|
+
| **假虐** | 读者不心疼,只是看着难受 | 检查羁绊铺设是否具体 |
|
|
154
|
+
| **割裂** | 前半部分和后半部分像两篇不同的故事 | 用伏笔/物件/主题贯穿 |
|
|
155
|
+
| **烂尾** | 反转后拖了 2000 字还在交代 | 反转后 500 字内收尾 |
|
|
156
|
+
| **人设崩** | 角色在关键时刻的行为不符合前面的人设 | 回顾人设,确保行为逻辑一致 |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 快速自查
|
|
161
|
+
|
|
162
|
+
设计情感时,用这个清单:
|
|
163
|
+
|
|
164
|
+
- [ ] 前 1/3 有具体羁绊细节(不是抽象描述)?
|
|
165
|
+
- [ ] 中段有反差/撕裂(读者以为 A → 实际是 B)?
|
|
166
|
+
- [ ] 结尾有安静细节(不是大段抒情)?
|
|
167
|
+
- [ ] 每 3-5 节有情绪转向?
|
|
168
|
+
- [ ] 反派行为符合其人设逻辑?
|
|
169
|
+
- [ ] 不存在上述 6 种失败模式?
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 三板斧与 SKILL.md 五段结构映射
|
|
174
|
+
|
|
175
|
+
| 三板斧 | 对应 SKILL.md 五段 | 说明 |
|
|
176
|
+
|--------|-------------------|------|
|
|
177
|
+
| 第一斧:羁绊铺设(前 1/3) | 铺垫段(第二段,占 30-40%) | 用物件/数字/习惯建立关系质感 |
|
|
178
|
+
| 第二斧:情感撕裂(中后段) | 升级段(第三段)+ 反转段(第四段) | 反差/错位/延迟真相制造撕裂 |
|
|
179
|
+
| 第三斧:余韵钝痛(结尾) | 结尾段(第五段,占 5-10%) | 安静细节收尾,不写大段抒情 |
|