@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,453 @@
|
|
|
1
|
+
# 角色基础设计
|
|
2
|
+
|
|
3
|
+
> 设计主角/配角/反派时加载。先看决策路由,选对模板,再按步骤操作。character-designer 主输出参考。
|
|
4
|
+
|
|
5
|
+
## 用作拆文标尺时
|
|
6
|
+
|
|
7
|
+
本文件原本是写作侧 playbook,写法是「怎么写」。`story-short-analyze` 在拆文时把它当
|
|
8
|
+
**对照标尺**用 —— 拆文动作是把源文与本文件描述的标准模式做对比,找出该篇用了哪一种、
|
|
9
|
+
做得有多到位,**不是**按本文件去写新作品。
|
|
10
|
+
|
|
11
|
+
读者视角的判断:本文件描述的是 番茄小说短篇 / 故事会 / 追妻 / 世情 / 重生 / 虐渣
|
|
12
|
+
等通俗短篇圈的工业标准模板,是拆文报告里「可复用结构 / 反转设计 / 题材公式」等段的
|
|
13
|
+
对照来源。
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 决策路由
|
|
18
|
+
|
|
19
|
+
| 你在设计什么 | 用这个模板 | 见哪个章节 |
|
|
20
|
+
|------------|-----------|-----------|
|
|
21
|
+
| 主角 | 主角卡模板 | 第1节 |
|
|
22
|
+
| 配角 | 配角卡模板 | 第2节 |
|
|
23
|
+
| 反派 | 反派层级表 → 反派建立四要素 → 反派性格四步法 | 第3节 |
|
|
24
|
+
| 角色动机 | 动机链模板 → 动机冲突类型 | 第4节 |
|
|
25
|
+
| 角色塑造/深化 | 塑造方法速查(四层法/执念法/重复点/分层展示等) | 第5节 |
|
|
26
|
+
| 主角特殊问题 | 逼格/成长/红线/调子太高/身份与金手指 | 第6节 |
|
|
27
|
+
| 反派塑造深化 | 反派渲染/人设主角化 | 第7节 |
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## 第1节:主角卡
|
|
32
|
+
|
|
33
|
+
### 填空模板
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
姓名:
|
|
37
|
+
性别:
|
|
38
|
+
角色定位:(一句话说清主角在故事中的功能)
|
|
39
|
+
身份标签:(如:废柴大学生、前特种兵、落魄皇子)
|
|
40
|
+
外貌特征:(3-5 个关键词,要有记忆点)
|
|
41
|
+
例:瘦高、总穿旧夹克、左手有疤、眼神懒散
|
|
42
|
+
性格关键词:(3-5 个,必须有矛盾面)
|
|
43
|
+
例:嘴毒心软、看似冷漠实则护短、冲动但有底线
|
|
44
|
+
核心目标:(全书终点想达成什么)
|
|
45
|
+
核心动机:(必须达成的理由——情感驱动,非理性驱动)
|
|
46
|
+
致命弱点:(让角色犯错的性格缺陷,非能力缺陷)
|
|
47
|
+
口头禅/标志动作:(让读者秒认的标签)
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### 设计要点
|
|
51
|
+
|
|
52
|
+
- 动机必须是情感层面的——"为母亲复仇"优于"要成为最强"
|
|
53
|
+
- 弱点必须会在关键情节导致主角犯错,否则不是弱点
|
|
54
|
+
- 外貌和口头禅是读者记忆锚点,必须写
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 第2节:配角卡
|
|
59
|
+
|
|
60
|
+
### 填空模板
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
姓名:
|
|
64
|
+
性别:
|
|
65
|
+
角色功能:(导师/盟友/情报源/牺牲品/镜像对照)
|
|
66
|
+
与主角关系:
|
|
67
|
+
核心特质:(1-2 个关键词)
|
|
68
|
+
标志性特征:(一句话让读者记住)
|
|
69
|
+
退场方式:(何时/如何退出故事)
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 设计要点
|
|
73
|
+
|
|
74
|
+
- 每个配角必须有明确功能——没有功能的角色不要出场
|
|
75
|
+
- 配角退场要主动规划,不能写着写着忘了
|
|
76
|
+
- 同一场景配角不超过 3 个有台词
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 第3节:反派设计
|
|
81
|
+
|
|
82
|
+
### 3.1 反派层级表
|
|
83
|
+
|
|
84
|
+
根据反派出场篇幅选对应层级,按表格要求设计。
|
|
85
|
+
|
|
86
|
+
#### 小反派(1-5 章)
|
|
87
|
+
|
|
88
|
+
| 维度 | 要求 |
|
|
89
|
+
|------|------|
|
|
90
|
+
| 功能 | 单个小弧线的障碍 |
|
|
91
|
+
| 设计 | 1-2 个鲜明特征即可(嚣张/贪财/欺软怕硬) |
|
|
92
|
+
| 退场 | 被打败或被揭穿,干脆利落 |
|
|
93
|
+
|
|
94
|
+
#### 中等反派(10-30 章)
|
|
95
|
+
|
|
96
|
+
| 维度 | 要求 |
|
|
97
|
+
|------|------|
|
|
98
|
+
| 功能 | 一卷的主要对手 |
|
|
99
|
+
| 动机 | 为什么跟主角作对(不能是"纯粹的坏") |
|
|
100
|
+
| 手段 | 武力/权谋/资源 |
|
|
101
|
+
| 逼格 | 至少赢主角一次,让读者恨得牙痒 |
|
|
102
|
+
| 退场 | 被主角正面击败,要有爽感 |
|
|
103
|
+
|
|
104
|
+
#### 大弧Boss(一卷或数卷)
|
|
105
|
+
|
|
106
|
+
| 维度 | 要求 |
|
|
107
|
+
|------|------|
|
|
108
|
+
| 功能 | 代表一个阶段的核心矛盾 |
|
|
109
|
+
| 人弧 | 完整的人物弧线,有自己的目标和逻辑 |
|
|
110
|
+
| 冲突 | 与主角有理念冲突(不只是利益冲突) |
|
|
111
|
+
| 对决 | 至少一场让主角陷入绝境 |
|
|
112
|
+
| 侧面 | 有一个让读者"恨不起来"的侧面 |
|
|
113
|
+
| 退场 | 有仪式感的终战 + 有余味的落幕 |
|
|
114
|
+
|
|
115
|
+
#### 最终Boss(全书)
|
|
116
|
+
|
|
117
|
+
| 维度 | 要求 |
|
|
118
|
+
|------|------|
|
|
119
|
+
| 功能 | 全书核心矛盾的具象化 |
|
|
120
|
+
| 伏笔 | 从第一章就有 |
|
|
121
|
+
| 对立 | 与主角的目标/动机直接对立,代表故事主题的反面 |
|
|
122
|
+
| 实力 | 碾压主角,主角必须蜕变才能赢 |
|
|
123
|
+
| 信念 | 有信念,不是纯粹的疯子/怪物 |
|
|
124
|
+
|
|
125
|
+
### 3.2 反派设计铁律
|
|
126
|
+
|
|
127
|
+
- 反派的智商/实力决定主角的含金量——反派弱 = 主角赢没意义
|
|
128
|
+
- 反派的行为必须有内在逻辑(从他的视角说得通)
|
|
129
|
+
- 不要让反派降智来给主角送赢
|
|
130
|
+
|
|
131
|
+
### 3.3 反派建立四要素
|
|
132
|
+
|
|
133
|
+
按顺序操作,缺一不可:
|
|
134
|
+
|
|
135
|
+
1. **实力展示**——出场就展示实力或手段
|
|
136
|
+
2. **动机可信**——从反派视角看行为说得通
|
|
137
|
+
3. **真实威胁**——至少赢主角一次
|
|
138
|
+
4. **终极意图时机**——真实目的留到关键反转点
|
|
139
|
+
|
|
140
|
+
### 3.4 反派性格确立四步法
|
|
141
|
+
|
|
142
|
+
| 步骤 | 操作 |
|
|
143
|
+
|------|------|
|
|
144
|
+
| 1. 反派也有梦想 | 在反派眼中他是自己故事的主人公 |
|
|
145
|
+
| 2. 挖掘创伤性过去 | 谁抚养他?谁爱他?谁伤害他?他避免什么痛苦? |
|
|
146
|
+
| 3. 磨练性格缺陷 | 遭遇逆境时不调动积极特质,而是磨练缺陷——"优势"本身就是致命缺陷 |
|
|
147
|
+
| 4. 反派是主角的镜子 | 反派的长处反映主角的弱点,两者完全相反 = 每次相遇必然摩擦 |
|
|
148
|
+
|
|
149
|
+
### 3.5 反派渲染分量的关键
|
|
150
|
+
|
|
151
|
+
- 障碍从反派人设上来,而不是故意给主角制造障碍
|
|
152
|
+
- 反派渲染公式:明确动机 → 动机驱动行为 → 行为形成障碍 → 障碍强度来自反派分量
|
|
153
|
+
- 反派异常强势时,主角要破得"高级""智慧""出乎意料"
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 第4节:动机设计
|
|
158
|
+
|
|
159
|
+
### 4.1 动机链模板
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
起因(Cause) → 角色经历了什么
|
|
163
|
+
意图(Intent) → 角色想做什么
|
|
164
|
+
约束(Constraint)→ 什么在阻碍他
|
|
165
|
+
风险(Risk) → 失败的代价是什么
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**示例**:
|
|
169
|
+
```
|
|
170
|
+
起因:母亲被仇家杀害
|
|
171
|
+
意图:找到凶手并复仇
|
|
172
|
+
约束:凶手是当朝权臣,主角只是平民
|
|
173
|
+
风险:复仇失败会被灭门,复仇成功会失去所有现有生活
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 4.2 动机链设计要点
|
|
177
|
+
|
|
178
|
+
- 起因必须具体——"被欺负"不够,"在众目睽睽下被打耳光"才行
|
|
179
|
+
- 约束必须有力——否则主角一路碾压没有张力
|
|
180
|
+
- 风险必须真实——读者要相信主角真的可能失去重要的东西
|
|
181
|
+
- 动机可以随剧情演变,但不能说变就变
|
|
182
|
+
|
|
183
|
+
### 4.3 动机冲突类型
|
|
184
|
+
|
|
185
|
+
遇到角色需要内心挣扎时,从下表选一种冲突类型:
|
|
186
|
+
|
|
187
|
+
| 类型 | 定义 | 示例 |
|
|
188
|
+
|------|------|------|
|
|
189
|
+
| 目标 vs 道德 | 想做的事和应该做的事冲突 | 复仇但不想伤及无辜 |
|
|
190
|
+
| 情感 vs 利益 | 感性和理性的拉扯 | 知道对方不可靠但放不下 |
|
|
191
|
+
| 短期 vs 长期 | 眼前利益和远大目标的矛盾 | 妥协保命 vs 坚持原则赌未来 |
|
|
192
|
+
| 自我 vs 他人 | 个人需求和他人期望的冲突 | 想过平静生活但背负家族使命 |
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## 第5节:角色塑造方法速查
|
|
197
|
+
|
|
198
|
+
### 5.1 角色塑造核心原则
|
|
199
|
+
|
|
200
|
+
**主角行为三必须**:
|
|
201
|
+
1. **必须可理解**——读者必须理解主角为什么这么做
|
|
202
|
+
2. **必须可共鸣**——主角的思考读者必须能代入
|
|
203
|
+
3. **必须可接受**——主角的三观读者必须能接受
|
|
204
|
+
|
|
205
|
+
**展示优于告知**:
|
|
206
|
+
- 角色的目的 → 通过行为展示,不是旁白解释
|
|
207
|
+
- 角色的行动 → 具体的动作和决定,不是形容词堆砌
|
|
208
|
+
- 角色的态度 → 通过对话和反应体现,不是心理独白
|
|
209
|
+
|
|
210
|
+
### 5.2 展示人物特质的方法
|
|
211
|
+
|
|
212
|
+
| 方法 | 操作 | 示例 |
|
|
213
|
+
|------|------|------|
|
|
214
|
+
| 敏感性 | 触碰弱点,看反应方式 | 惊慌失措/匆忙逃跑/转移注意力=不同性格 |
|
|
215
|
+
| 逃避 | 展现回避行为暗示弱点 | 角色的"不做什么"比"做了什么"更揭示深层性格 |
|
|
216
|
+
| 先正后缺 | 先展示吸引人特质,再揭示缺陷 | 读者先喜欢角色,才能容忍缺陷 |
|
|
217
|
+
|
|
218
|
+
### 5.3 四大性格属性
|
|
219
|
+
|
|
220
|
+
| 属性类别 | 定义 | 设计要点 |
|
|
221
|
+
|---------|------|---------|
|
|
222
|
+
| 道德属性 | 是非信念 | 影响其他性格形成 |
|
|
223
|
+
| 成就属性 | 推动达成目标 | 与道德属性一致,服务目标 |
|
|
224
|
+
| 互动属性 | 与人交流方式 | 数量最多的积极特质 |
|
|
225
|
+
| 身份属性 | 身份认同感 | 定义个性的基本组成部分 |
|
|
226
|
+
|
|
227
|
+
选择技巧:以其中一个特质为主要特质,其他为辅。
|
|
228
|
+
|
|
229
|
+
### 5.4 角色塑造四层法
|
|
230
|
+
|
|
231
|
+
| 层次 | 方法 |
|
|
232
|
+
|------|------|
|
|
233
|
+
| 移情作用 | 开头不要太多角色,先让读者了解主角并产生期待 |
|
|
234
|
+
| 最小特征(标签) | 主角由内而外塑造,配角由外到内塑造(贴标签) |
|
|
235
|
+
| 角色的不真诚 | 所说≠所想,举动≠态度,日常与便当是深化角色的两极 |
|
|
236
|
+
| 角色的聚光灯 | 配角必须与主角产生强烈联系性,配角压过主角时塑造新配角夺走光环 |
|
|
237
|
+
|
|
238
|
+
### 5.5 人物塑造与人物真相
|
|
239
|
+
|
|
240
|
+
| 层面 | 定义 | 示例 |
|
|
241
|
+
|------|------|------|
|
|
242
|
+
| 人物塑造(显型) | 读者第一眼看到的特质 | 外表青春可爱的萝莉 |
|
|
243
|
+
| 人物真相(隐性) | 角色内在的真实面貌 | 实际上是冷血杀手 |
|
|
244
|
+
| 价值取向(内隐) | 关键选择时起决定作用的价值观 | 在道义与野心间选择野心 |
|
|
245
|
+
|
|
246
|
+
操作要点:价值取向不必一开始揭示,在关键抉择时自然暴露;人物真相的揭示越晚,戏剧张力越强。
|
|
247
|
+
|
|
248
|
+
### 5.6 人设分层展示法
|
|
249
|
+
|
|
250
|
+
| 层次 | 操作 |
|
|
251
|
+
|------|------|
|
|
252
|
+
| 第一层 | 告诉读者类型模型(萝莉/御姐/少妇) |
|
|
253
|
+
| 第二层 | 贴特点标签(胸大/腿长/小麦色皮肤) |
|
|
254
|
+
| 第三层 | 为性格找原因(家庭/内在冲动) |
|
|
255
|
+
| 第四层 | 打破——可爱天然呆其实什么都知道,人设立刻升华 |
|
|
256
|
+
|
|
257
|
+
深化记忆:不要吝啬重复词汇,觉得太小白?其实在深化记忆。
|
|
258
|
+
|
|
259
|
+
### 5.7 人物经历三线时间法
|
|
260
|
+
|
|
261
|
+
| 时间线 | 内容 |
|
|
262
|
+
|--------|------|
|
|
263
|
+
| 过去 | 身世背景、遭遇变故、性格成因 |
|
|
264
|
+
| 现在 | 与主角的关系定位、当前互动模式 |
|
|
265
|
+
| 未来 | 制造变强动力或危机(老师被劫/女主被抓/反派揭底) |
|
|
266
|
+
|
|
267
|
+
### 5.8 配角执念设定法
|
|
268
|
+
|
|
269
|
+
快速让读者认同支线配角:
|
|
270
|
+
|
|
271
|
+
- 给角色一个执念 → 所有行为/爱好/性格围绕执念展开
|
|
272
|
+
- 不需要每次贴合执念,只要不写与执念冲突的东西,关键时揭示即可
|
|
273
|
+
- 过于极端的执念 → 加入"亲民"小细节 → 便于读者认同
|
|
274
|
+
- 适用:支线配角,不适合频繁出现的主要配角
|
|
275
|
+
|
|
276
|
+
### 5.9 人物行为重复点设计
|
|
277
|
+
|
|
278
|
+
维持长篇不歪的关键手法:
|
|
279
|
+
|
|
280
|
+
- 抓住一个人物行为特质反复写
|
|
281
|
+
- 构建方法:确定读者喜欢什么类型 → 具体化为行为 → 不同场景重复
|
|
282
|
+
- 人物看点 + 核心看点 = 层次感,两者循环产生差异化
|
|
283
|
+
- 反派/配角也需要重复看点,能让人爱上的反派会增加读者新鲜感
|
|
284
|
+
|
|
285
|
+
### 5.10 围绕人设写行为
|
|
286
|
+
|
|
287
|
+
行为、语言、思维都要围绕人格展开。如果为了剧情需要让角色做出不符合人设的行为 → 先修改剧情,不要改人设。
|
|
288
|
+
|
|
289
|
+
### 5.11 人推事件 vs 事件推人
|
|
290
|
+
|
|
291
|
+
| 驱动方式 | 特点 |
|
|
292
|
+
|---------|------|
|
|
293
|
+
| 人推事件 | 情节是人物性格/动机/选择的自然结果,深化人物弧光 |
|
|
294
|
+
| 事件推人 | 外部事件打破平衡,迫使暴露真实自我 |
|
|
295
|
+
|
|
296
|
+
卡文时 → 从人物动机找方向,不要硬编剧情。
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 第6节:主角特殊问题
|
|
301
|
+
|
|
302
|
+
### 6.1 主角逼格
|
|
303
|
+
|
|
304
|
+
- 主角必须有逼格——这是读者的代入基础
|
|
305
|
+
- 不要写太多降智的内心戏和爆粗口
|
|
306
|
+
- 主角可以不完美,但不能让人看不起
|
|
307
|
+
|
|
308
|
+
### 6.2 主角的成长
|
|
309
|
+
|
|
310
|
+
- 成长不只体现在实力上,更体现在心智和选择上
|
|
311
|
+
- 每次成长都要有触发事件和内在反思
|
|
312
|
+
- 网文主角成长非必须:开场三观圆满的正常人更容易代入,稳定人设本身就是魅力
|
|
313
|
+
|
|
314
|
+
### 6.3 主角红线
|
|
315
|
+
|
|
316
|
+
以下类型的主角绝对不要写:
|
|
317
|
+
|
|
318
|
+
| 禁止 | 原因 |
|
|
319
|
+
|------|------|
|
|
320
|
+
| 圣母型主角 | 读者要痛快而非道德说教 |
|
|
321
|
+
| 无脑战斗机器 | 难以产生情感共鸣 |
|
|
322
|
+
| 内核邪恶 | 读者无法代入 |
|
|
323
|
+
| 因蠢/圣母犯错 | 读者无法原谅 |
|
|
324
|
+
| 自暴自弃 | 比被欺负更让读者厌恶 |
|
|
325
|
+
|
|
326
|
+
### 6.4 主角调子起太高怎么办
|
|
327
|
+
|
|
328
|
+
**危害信号**:
|
|
329
|
+
- 失去成长空间——能力/地位/资源触达天花板
|
|
330
|
+
- 剧情缺乏张力——陷入"砍瓜切菜"的重复循环
|
|
331
|
+
- 读者失去追更动力
|
|
332
|
+
|
|
333
|
+
**化解方法**:
|
|
334
|
+
- **压势不压人**——压低气势和期待,但不打压主角本身的能力和尊严
|
|
335
|
+
- **留出维度差距**——即使某方面很强,总有其他维度是短板
|
|
336
|
+
- **超额收获法**——看似收获很大,经主角盘算后发现更大
|
|
337
|
+
|
|
338
|
+
### 6.5 主角开篇立人设
|
|
339
|
+
|
|
340
|
+
- 人设通过选择建立,开篇必须让主角做出选择
|
|
341
|
+
- 智斗型开局比暴力型开局更容易立人设
|
|
342
|
+
- 读者更容易代入"聪明但普通"的主角,而非"上来就无敌"的主角
|
|
343
|
+
|
|
344
|
+
### 6.6 主角的两个身份与两个金手指
|
|
345
|
+
|
|
346
|
+
| 维度 | 定义 | 作用 |
|
|
347
|
+
|------|------|------|
|
|
348
|
+
| 显性身份 | 社会身份/职业+状态 | 汇集前期矛盾,必须不断升级或换 |
|
|
349
|
+
| 隐性身份 | 不凡的身世来历 | 汇集中后期矛盾 |
|
|
350
|
+
| 显性金手指 | 系统/玉坠/重生记忆 | 开局获得贯穿全书 |
|
|
351
|
+
| 隐性金手指 | 主角性格 | 让主角与众不同的就是金手指 |
|
|
352
|
+
|
|
353
|
+
**最佳写法**:前期以金手指装逼 → 剧情推进中逐步把人设清晰
|
|
354
|
+
**人设与全书气质**:主角人设必须与世界基调相符,四点高度统一:社会身份+身世+金手指+性格
|
|
355
|
+
|
|
356
|
+
### 6.7 性格单一缺陷型主角+动物伙伴体系
|
|
357
|
+
|
|
358
|
+
如果主角性格故意设为单一 → 降低读者带入排斥感 → 少做少错 → 最大限度提升代入感。
|
|
359
|
+
|
|
360
|
+
**问题**:性格过于单一 → 影响精彩程度 → 难以推进故事
|
|
361
|
+
**解法**:给淡漠型主角配备 3-5 只动物伙伴,每只不同性格。
|
|
362
|
+
|
|
363
|
+
| 伙伴类型 | 功能 |
|
|
364
|
+
|---------|------|
|
|
365
|
+
| 蠢萌犯二型 | 负责搞笑,主角不宜吃瘪但动物可以 |
|
|
366
|
+
| 聪敏嘴贱型 | 负责嘴替,主角不该说的话由它说,保持主角逼格 |
|
|
367
|
+
| 耿直蠢笨型 | 负责反差萌 |
|
|
368
|
+
| 奇特能力胆小型 | 负责能力补充 |
|
|
369
|
+
|
|
370
|
+
### 6.8 核心情绪与表达欲平衡
|
|
371
|
+
|
|
372
|
+
- 需求的内核不变,变的只是形式
|
|
373
|
+
- 写完一段剧情后,站在读者角度审视是否偏离核心梗
|
|
374
|
+
- 主角牛逼了必须有所得,不能光付出没回报
|
|
375
|
+
- 表达欲旺盛时最容易偏离——要主动检查
|
|
376
|
+
|
|
377
|
+
### 6.9 压势不压人:矛盾的正确来源
|
|
378
|
+
|
|
379
|
+
**错误做法**:让反派莫名其妙针对主角,背后逻辑站不住脚。
|
|
380
|
+
|
|
381
|
+
**正确做法**:反派有自己的目的,行动客观上导致主角困境,但并非刻意针对主角本人。
|
|
382
|
+
|
|
383
|
+
**矛盾链条**:反派目的 → 压制主角所在群体(压势) → 主角推翻 → 底层依旧麻木 → 主角改变路径 → 新冲突自然产生
|
|
384
|
+
|
|
385
|
+
核心:所有人被自己想要的利益驱动,背后是三观不同,更深是成长环境,最深层是世界观。
|
|
386
|
+
|
|
387
|
+
---
|
|
388
|
+
|
|
389
|
+
## 第7节:反派塑造深化
|
|
390
|
+
|
|
391
|
+
### 7.1 反派塑造核心原则
|
|
392
|
+
|
|
393
|
+
- 经典反派一定有完整世界观和逻辑自洽的三观
|
|
394
|
+
- 同样的外部事件发生在不同人身上产生不同变化——外因与内因共振
|
|
395
|
+
- 反派塑造不能只有外部事件,缺乏内在三观和内在逻辑
|
|
396
|
+
|
|
397
|
+
### 7.2 反派人设主角化写法
|
|
398
|
+
|
|
399
|
+
**传统问题**:换地图后原反派跟不上节奏 → 引入新反派脸谱化
|
|
400
|
+
|
|
401
|
+
**解法**:
|
|
402
|
+
- 把反派当主角去写
|
|
403
|
+
- 在"配角衬主角"基础上加"配角衬配角"
|
|
404
|
+
- 换地图的正确处理:用新地图衬托旧角色含金量,而非用旧角色无力衬托新地图难度
|
|
405
|
+
|
|
406
|
+
---
|
|
407
|
+
|
|
408
|
+
## 质量检查清单
|
|
409
|
+
|
|
410
|
+
设计完角色后,逐项检查:
|
|
411
|
+
|
|
412
|
+
### 主角检查
|
|
413
|
+
|
|
414
|
+
- [ ] 动机是情感层面的(不是"要成为最强"这种空话)
|
|
415
|
+
- [ ] 有致命弱点,且会在关键情节导致犯错
|
|
416
|
+
- [ ] 外貌有记忆点(3-5 个关键词)
|
|
417
|
+
- [ ] 有口头禅或标志动作
|
|
418
|
+
- [ ] 逼格在线——不会让读者看不起
|
|
419
|
+
- [ ] 没有触碰红线(圣母/无脑战斗机器/内核邪恶/因蠢犯错/自暴自弃)
|
|
420
|
+
- [ ] 核心目标和全书主线对齐
|
|
421
|
+
|
|
422
|
+
### 配角检查
|
|
423
|
+
|
|
424
|
+
- [ ] 有明确功能(导师/盟友/情报源/牺牲品/镜像对照)
|
|
425
|
+
- [ ] 核心特质 1-2 个关键词能概括
|
|
426
|
+
- [ ] 有标志性特征让读者记住
|
|
427
|
+
- [ ] 退场方式已规划
|
|
428
|
+
- [ ] 同一场景不超过 3 个配角有台词
|
|
429
|
+
|
|
430
|
+
### 反派检查
|
|
431
|
+
|
|
432
|
+
- [ ] 按层级表设计,篇幅与层级匹配
|
|
433
|
+
- [ ] 出场展示了实力或手段
|
|
434
|
+
- [ ] 动机从反派视角说得通
|
|
435
|
+
- [ ] 至少赢主角一次(中等反派及以上)
|
|
436
|
+
- [ ] 没有降智送赢
|
|
437
|
+
- [ ] 大弧Boss有理念冲突(不只是利益冲突)
|
|
438
|
+
- [ ] 最终Boss从第一章就有伏笔
|
|
439
|
+
|
|
440
|
+
### 动机检查
|
|
441
|
+
|
|
442
|
+
- [ ] 起因具体(不是"被欺负"这种模糊说法)
|
|
443
|
+
- [ ] 约束有力(主角不能一路碾压)
|
|
444
|
+
- [ ] 风险真实(读者相信主角可能失去重要东西)
|
|
445
|
+
- [ ] 动机演变有铺垫,没有说变就变
|
|
446
|
+
|
|
447
|
+
### 塑造检查
|
|
448
|
+
|
|
449
|
+
- [ ] 角色目的通过行为展示,不是旁白解释
|
|
450
|
+
- [ ] 行为/语言/思维围绕人设展开,没有为剧情改人设
|
|
451
|
+
- [ ] 主要角色有行为重复点,维持长篇一致性
|
|
452
|
+
- [ ] 配角与主角有明确联系,不会抢主角风头
|
|
453
|
+
- [ ] 人物真相/价值取向在关键抉择时自然暴露
|