@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,352 @@
|
|
|
1
|
+
# 悬念编排操作手册
|
|
2
|
+
|
|
3
|
+
悬念构建、强度分级、多线周期、分层钩子、期待接力、震惊分层的完整操作指南。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 决策路由表
|
|
8
|
+
|
|
9
|
+
| 你在写什么 | 用什么方法 |
|
|
10
|
+
|------------|------------|
|
|
11
|
+
| 设计悬念体系 | 多线悬念周期 + 强度5级分级 |
|
|
12
|
+
| 单章悬念 | 四种信息顺序模板 + 触发型分层钩子 |
|
|
13
|
+
| 跨卷悬念 | 期待接力法 + 震惊分层 |
|
|
14
|
+
| 判断悬念强度 | 强度5级分级表 |
|
|
15
|
+
|
|
16
|
+
使用方法:先看左列定位你的当前任务,再用右列指定的方法。
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## 悬念构建核心法则
|
|
21
|
+
|
|
22
|
+
### 悬念的本质
|
|
23
|
+
|
|
24
|
+
读者心理预期出现两个及以上不同走向时,剧情就有了悬念——读者觉得都有可能发生。
|
|
25
|
+
|
|
26
|
+
### 悬念 vs 伏笔:区分清楚
|
|
27
|
+
|
|
28
|
+
| 维度 | 悬念 | 伏笔 |
|
|
29
|
+
|------|------|------|
|
|
30
|
+
| 目的 | 让读者猜测接下来会怎样 | 为后面的揭示埋下前期线索 |
|
|
31
|
+
| 位置 | 章节结尾/段落结尾 | 叙事中自然带出 |
|
|
32
|
+
| 揭示时机 | 短期内揭晓 | 长期后才揭示 |
|
|
33
|
+
| 情绪效果 | 紧张/好奇/期待 | 震惊/恍然大悟 |
|
|
34
|
+
|
|
35
|
+
判断依据:短期揭晓+紧张感 = 悬念;长期埋线+揭示时震惊 = 伏笔。两者经常配合使用,但不要混淆。
|
|
36
|
+
|
|
37
|
+
### 四种悬念信息顺序模板
|
|
38
|
+
|
|
39
|
+
| 类型 | 结构 | 适用场景 |
|
|
40
|
+
|------|------|----------|
|
|
41
|
+
| 直白剧情 | 提出疑问 → 公布答案 | 基础叙事 |
|
|
42
|
+
| 探索剧情 | 提出疑问 → 正常提示 → 公布答案 | 铺垫段 |
|
|
43
|
+
| 意外剧情 | 提出疑问 → 虚假提示 → 公布答案 | 反转段 |
|
|
44
|
+
| 意外+反转 | 提出疑问 → 虚假提示1 → 虚假对立提示2 → 公布答案 | 高潮段 |
|
|
45
|
+
|
|
46
|
+
操作要点:选择模板后,严格按结构顺序排列信息。虚假提示必须足够可信,否则读者不买账。
|
|
47
|
+
|
|
48
|
+
### 触发型钩子(分层钩子)
|
|
49
|
+
|
|
50
|
+
单章内多层递进悬念,按以下步骤操作:
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
第1层:展示初步成果 → 观众初步反应
|
|
54
|
+
第2层:揭示这还不是最终结果 → 观众期待升级
|
|
55
|
+
第3层:展示超出预期的元素 → 观众震惊
|
|
56
|
+
第4层:主角还能进一步提升 → 留下钩子,开启下一段
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
关键要求:每一层都必须有角色的反应来验证悬念的力度。没有角色反应 = 悬念落空。
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## 悬念强度分级
|
|
64
|
+
|
|
65
|
+
| 等级 | 名称 | 效果 | 适用 |
|
|
66
|
+
|------|------|------|------|
|
|
67
|
+
| 1 | 微悬念 | 好奇 | 过渡章 |
|
|
68
|
+
| 2 | 小悬念 | 想看下一段 | 正文章 |
|
|
69
|
+
| 3 | 中悬念 | 想看下一章 | 关键章 |
|
|
70
|
+
| 4 | 大悬念 | 放不下书 | 爆发章 |
|
|
71
|
+
| 5 | 极悬念 | 睡不着 | 卷末高潮 |
|
|
72
|
+
|
|
73
|
+
使用方法:写完每章后对照此表判断悬念等级。过渡章至少要达到1级,正文章至少2级,关键章至少3级。不达标则需要补强。
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 多线悬念周期
|
|
78
|
+
|
|
79
|
+
| 弧线长度 | 跨度 | 示例 |
|
|
80
|
+
|----------|------|------|
|
|
81
|
+
| 短弧 | 2-3 章 | 一场打斗、一次冲突 |
|
|
82
|
+
| 中弧 | 5-8 章 | 一段关系变化、一个小谜题 |
|
|
83
|
+
| 长弧 | 整卷 | 终极秘密、主线大反转 |
|
|
84
|
+
|
|
85
|
+
规划时同时铺设三种弧线,保证任何时刻都有至少两条悬念线在运行。
|
|
86
|
+
|
|
87
|
+
### 三段钩子设计(单章内)
|
|
88
|
+
|
|
89
|
+
按章节进度分配悬念节奏:
|
|
90
|
+
|
|
91
|
+
1. **种**(前 30%):埋下钩子种子
|
|
92
|
+
2. **养**(中 50%):逐步加压,让读者意识到不对劲
|
|
93
|
+
3. **收**(末 20%):引爆或延迟引爆
|
|
94
|
+
|
|
95
|
+
延迟引爆 = 比引爆更强的钩子,用于拉到下一章。
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 期待接力法
|
|
100
|
+
|
|
101
|
+
### 基本规则
|
|
102
|
+
|
|
103
|
+
- 确保读者脑中有三个好奇的东西:两长一短
|
|
104
|
+
- 长期待收回后变短期爆发,同时新的长期待已铺好
|
|
105
|
+
- 短篇中:一个主悬念 + 一个副悬念,结尾同时引爆
|
|
106
|
+
|
|
107
|
+
### 持续拉期待操作框架
|
|
108
|
+
|
|
109
|
+
1. 每章结尾必须有至少一个未解的问题或未达成的期待
|
|
110
|
+
2. 期待分三层同时运作:短期(下章)、中期(本卷)、远期(全书)
|
|
111
|
+
3. 当一层即将满足时,先铺好下一层的期待,形成"期待链"不断裂
|
|
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
|
+
|
|
139
|
+
### 情绪折线
|
|
140
|
+
|
|
141
|
+
`铺垫(上行)→ 挫折(下行)→ 再铺垫(上行)→ 再挫折(下行)→ 爆发(大幅上行)`
|
|
142
|
+
|
|
143
|
+
操作规则:
|
|
144
|
+
- 上行可以多一些,下行要精准控制力度
|
|
145
|
+
- 下行太猛 = 节奏断裂(弃书),太轻 = 打不响
|
|
146
|
+
- 网文的"下行"用小挫折、小波折制造落差,避免让主角真憋屈
|
|
147
|
+
|
|
148
|
+
### 期待蓄力与释放的力度控制
|
|
149
|
+
|
|
150
|
+
- 蓄力 = 铺垫期待,释放 = 爽点爆发
|
|
151
|
+
- 蓄力太久 = 读者疲惫;不够 = 爽感不足;断裂 = 弃书
|
|
152
|
+
- 小期待不断(持续满足),大期待适度,每次释放后爽感要比上一次更强
|
|
153
|
+
|
|
154
|
+
### 道具能力展示的8步期待模板
|
|
155
|
+
|
|
156
|
+
按顺序执行:
|
|
157
|
+
|
|
158
|
+
1. 展示宝物功能强大(期待+1)
|
|
159
|
+
2. 配角因信息不足认为鸡肋(信息差,期待打脸+1)
|
|
160
|
+
3. 展示反派,宝物恰好克制反派(期待+1)
|
|
161
|
+
4. 配角拿更强装备打反派失败(期待主角出手+1)
|
|
162
|
+
5. 主角做针对性方案(期待+1)
|
|
163
|
+
6. 主角上场,众人不看好(期待继续+1)
|
|
164
|
+
7. 主角秒杀反派 → 众人震惊 → 鸡肋成神器(期待满足)
|
|
165
|
+
8. 新收获 + 新期待产生
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 震惊分层写法
|
|
170
|
+
|
|
171
|
+
### 震惊三层结构
|
|
172
|
+
|
|
173
|
+
从弱到强依次使用:
|
|
174
|
+
|
|
175
|
+
1. **点震惊**:一个人震惊了一下(最弱)
|
|
176
|
+
2. **网震惊**:震惊关系网——不只一个人震惊,周围人都有反应
|
|
177
|
+
3. **深度震惊**:多层震惊叠加——成就1震惊 → 成就2震惊 → 更厉害的成就3引爆震惊
|
|
178
|
+
|
|
179
|
+
### 关键原则
|
|
180
|
+
|
|
181
|
+
- 金手指对剧情的效果必须展示得清清楚楚
|
|
182
|
+
- 放了底牌,反派就要受到对应压制
|
|
183
|
+
- 该爽的时候不爽到位,观感上是很毒的
|
|
184
|
+
|
|
185
|
+
### 关系网震惊层级
|
|
186
|
+
|
|
187
|
+
| 层级 | 震惊对象 | 效果强度 | 后续价值 |
|
|
188
|
+
|------|----------|---------|---------|
|
|
189
|
+
| 陌生人震惊 | 路人、群演 | 弱 | 纯情绪满足,无后续 |
|
|
190
|
+
| 熟人震惊 | 有过互动的配角 | 中 | 可能产生态度变化 |
|
|
191
|
+
| 重要角色震惊 | 有后续戏份的角色 | 强 | 伴随信息展露、关系进展、拉起期待 |
|
|
192
|
+
| 高位者震惊 | 行业顶层人物、高阶位者 | 最强 | 侧面拉起读者对主角的期待 |
|
|
193
|
+
|
|
194
|
+
选择依据:根据该角色后续戏份决定震惊层级。有后续的角色震惊才有价值。
|
|
195
|
+
|
|
196
|
+
### 震惊递进的道具体现法
|
|
197
|
+
|
|
198
|
+
| 阶段 | 道具表现 | 震惊强度 |
|
|
199
|
+
|------|----------|----------|
|
|
200
|
+
| 成就1 | 对方将椅子把手捏出一道裂痕 | 轻 |
|
|
201
|
+
| 成就2 | 椅子满是裂纹 | 中 |
|
|
202
|
+
| 成就3 | 对方捏爆椅子把手 | 强 |
|
|
203
|
+
|
|
204
|
+
要点:道具变化比"他震惊了"有力一百倍。每次递进都要有明确的视觉/物理变化。
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## 期待感设计的核心方法
|
|
209
|
+
|
|
210
|
+
### 多线运行法(画线法)
|
|
211
|
+
|
|
212
|
+
1. 一个剧情线一道大横线
|
|
213
|
+
2. 其他期待线在下面画线
|
|
214
|
+
3. 规划剧情节点
|
|
215
|
+
4. 落入正文时再详写
|
|
216
|
+
|
|
217
|
+
### 永留悬念大结构设计
|
|
218
|
+
|
|
219
|
+
- 大结构是"欺骗式的主线":贯穿全文的噱头,并不实际推进
|
|
220
|
+
- 每次看似砍了99%,但总剩1%变成新的100%,一直吊着读者
|
|
221
|
+
|
|
222
|
+
### 信息差运用
|
|
223
|
+
|
|
224
|
+
- 读者知道主角获得了强力物品但配角不知道——天然信息差产生期待
|
|
225
|
+
- 反派恰好被克制——期待叠加
|
|
226
|
+
- 别人拿更好装备却失败——期待再加倍
|
|
227
|
+
- 信息差抹平时 = 爽点爆发
|
|
228
|
+
|
|
229
|
+
### 读者预知法(提前告知大事件制造紧张)
|
|
230
|
+
|
|
231
|
+
提前告诉读者即将发生的大事件,读者知道但主角不知道,形成紧张感和期待感。"倒计时"变体:把事件变成不断逼近的倒计时,每隔1-2章放一小段进展。
|
|
232
|
+
|
|
233
|
+
### 底牌前置法
|
|
234
|
+
|
|
235
|
+
先展示主角底牌,再安排找事的冲突。读者知道主角有底牌但反派不知道。需要两对信息组合:**底牌 + 即将发生的冲突**。
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 拉期待手法速查(8大类36种)
|
|
240
|
+
|
|
241
|
+
| 类别 | 手法 | 说明 |
|
|
242
|
+
|------|------|------|
|
|
243
|
+
| 角色行为 | 持续伪装等待暴露 | 主角持续扮演某身份,期待暴露时刻 |
|
|
244
|
+
| 角色行为 | 非常规能力展示 | 主角用特殊能力解决,期待更大规模 |
|
|
245
|
+
| 角色行为 | 违反人设预期的行为 | 做出与形象不符的行为,制造惊喜 |
|
|
246
|
+
| 角色行为 | 展示部分实力留底牌 | 展现部分实力,期待全面爆发 |
|
|
247
|
+
| 时局/事件 | 突发意外 | 意外事件打破当前平静,迫使剧情加速 |
|
|
248
|
+
| 时局/事件 | 暗中蓄力等待时机 | 角色暗中蓄力,期待亮剑时刻 |
|
|
249
|
+
| 时局/事件 | 高风险中谋利 | 在危险中谋利,紧张感拉满 |
|
|
250
|
+
| 时局/事件 | 混乱中周旋 | 在混乱局面中巧妙保全或谋利 |
|
|
251
|
+
| 关系网扩展 | 跨势力角色串联 | 不同势力角色产生意外联系,扩大冲突面 |
|
|
252
|
+
| 关系网扩展 | 多方势力不同反应 | 多方势力对主角/事件不同反应 |
|
|
253
|
+
| 关系网扩展 | 名声扩散引起新关注 | 名声扩散引起新势力注意 |
|
|
254
|
+
| 关系网扩展 | 帮助支线改变境遇 | 支线角色因主角帮助境遇改变,建立忠诚 |
|
|
255
|
+
| 关系网扩展 | 重要角色遇麻烦等主角出手 | 重要角色遇麻烦,期待主角出手 |
|
|
256
|
+
| 矛盾升级 | 逐步接近目标每步拉期待 | 逐步接近目标,每步拉起新期待 |
|
|
257
|
+
| 矛盾升级 | 暗中威胁浮现 | 暗中威胁线索逐渐浮现,读者先于主角察觉 |
|
|
258
|
+
| 矛盾升级 | 不可调和矛盾到爆发临界 | 不可调和矛盾积累到爆发临界 |
|
|
259
|
+
| 矛盾升级 | 解决一个麻烦引出更大麻烦 | 解决一个麻烦后引出更大麻烦 |
|
|
260
|
+
| 矛盾升级 | 升级引发各方反应 | 各方势力对主角实力升级的不同反应 |
|
|
261
|
+
| 资源/实力 | 获得稀缺资源暗示用途 | 获得稀缺资源,期待用途 |
|
|
262
|
+
| 资源/实力 | 独特方式变废为宝 | 用独特方式将无用变宝物 |
|
|
263
|
+
| 资源/实力 | 恰好解决当前困境的手段 | 恰好有解决当前困境的手段 |
|
|
264
|
+
| 资源/实力 | 信息或实力远超他人认知 | 掌握的信息/实力远超他人认知 |
|
|
265
|
+
| 新线索/设定 | 前往新地图 | 即将前往新区域,刷新场景和冲突 |
|
|
266
|
+
| 新线索/设定 | 新规则或设定揭示 | 新规则/设定/体系的揭示 |
|
|
267
|
+
| 新线索/设定 | 已有能力新组合方式 | 已有能力的新组合方式 |
|
|
268
|
+
| 新线索/设定 | 已知信息下更深内容 | 已知信息下的更深层内容 |
|
|
269
|
+
| 新线索/设定 | 谜团逐步揭开 | 谜团层层揭开,满足好奇心 |
|
|
270
|
+
| 新线索/设定 | 绝路出现转机 | 看似绝路出现转机 |
|
|
271
|
+
| 等级/技能 | 描写升级路径拉期待 | 描写升级路径,期待每次突破 |
|
|
272
|
+
| 等级/技能 | 新能力效果展示 | 展示新能力的具体效果和应用场景 |
|
|
273
|
+
| 等级/技能 | 升级后装逼期待 | 升级后读者期待装逼打脸剧情 |
|
|
274
|
+
| 等级/技能 | 主角能力克制当前对手 | 主角能力恰好克制当前对手 |
|
|
275
|
+
| 等级/技能 | 晋升展现多种能力 | 晋升后展现不同新能力,保持新鲜感 |
|
|
276
|
+
| 情绪/氛围 | 适当隐藏部分信息 | 适当谜语人,隐藏部分信息 |
|
|
277
|
+
| 情绪/氛围 | 重要角色牺牲 | 重要角色牺牲带来的情绪冲击和剧情转折 |
|
|
278
|
+
| 情绪/氛围 | 主角暗中布局期待收网 | 主角暗中布局,期待收网 |
|
|
279
|
+
|
|
280
|
+
**组合原则**:技巧服务表达,不是为了用而用。构思时可同时考虑多种技巧丰富剧情,没用就丢弃。
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## 反派强时的三层破局写法
|
|
285
|
+
|
|
286
|
+
反派应对异常强势时,主角的破局要让读者感到"降维打击"。按层次递进:
|
|
287
|
+
|
|
288
|
+
| 层次 | 名称 | 做法 |
|
|
289
|
+
|------|------|------|
|
|
290
|
+
| 1 | 硬碰硬 | 实力碾压,简单粗暴 |
|
|
291
|
+
| 2 | 预判反制 | 反派出A,主角早准备了B克制A |
|
|
292
|
+
| 3 | 反预判 | 反派精心准备针对A,主角不仅避开A,还利用A作陷阱引导反派落入预设的B |
|
|
293
|
+
|
|
294
|
+
核心爽点:主角在更高层面的思考、准备和掌控力。计谋要比反派更早一层。
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Hook上瘾模型
|
|
299
|
+
|
|
300
|
+
套用 Hook 上瘾模型(触发 → 行动 → 奖励 → 投入),每个要素对应一个人性原罪:
|
|
301
|
+
|
|
302
|
+
| 要素 | 钩子 | 原罪 | 网文对应 |
|
|
303
|
+
|------|------|------|----------|
|
|
304
|
+
| 触发 | 欲望 | 妄想 | 切入点——提醒读者他想要什么,不是硬塞的 |
|
|
305
|
+
| 行动 | 简单 | 懒惰 | 行文标准——开篇繁琐 = 门槛太高,简单才能重复上瘾 |
|
|
306
|
+
| 奖励 | 运气 | 贪婪 | 收获期待——可预见的奖励乏味,随机不确定才让人期待"下一次" |
|
|
307
|
+
| 投入 | 财富 | 痴迷 | 发展高潮——极品装备/排名/宗门小弟 = 沉没成本难以割舍 |
|
|
308
|
+
|
|
309
|
+
**奖励随机性**:收获感不仅要有,还得出乎意料(预期收获经验和钱,结果偷回一颗龙蛋)。
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
## 悬念深度机制
|
|
314
|
+
|
|
315
|
+
### 意外 vs 悬念
|
|
316
|
+
|
|
317
|
+
意外是炸弹突然爆炸;悬念是听到定时器滴答作响——悬念远比意外有力量。
|
|
318
|
+
|
|
319
|
+
### 章末断章留悬念
|
|
320
|
+
|
|
321
|
+
每章结尾让人物面临未解决的危险,读者不得不回来。
|
|
322
|
+
|
|
323
|
+
### 时间锁
|
|
324
|
+
|
|
325
|
+
故事前期设置必须在限定时间内发生的事件,压缩时间增强紧张感。
|
|
326
|
+
|
|
327
|
+
### 期待 > 爽点
|
|
328
|
+
|
|
329
|
+
铺垫期待远比展现爽点更重要。爽是释放过程,不是情绪本身——紧张/好奇/担忧/愤怒/憋屈比"爽"更持久。长篇关键 = 延迟满足。
|
|
330
|
+
|
|
331
|
+
### "麻烦消失"是失去读者的根本原因
|
|
332
|
+
|
|
333
|
+
诡异流升级过快变无敌、种田文发展过快变平推——都是麻烦消失。迎合读者短期喜好可能损害长线期待。
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
## 质量检查清单
|
|
338
|
+
|
|
339
|
+
写完每一章/每一卷后,逐项检查:
|
|
340
|
+
|
|
341
|
+
- [ ] **悬念等级达标**:对照强度5级分级表,本章悬念等级是否符合章节定位
|
|
342
|
+
- [ ] **期待链不断裂**:是否至少有一条未解的期待线在运行
|
|
343
|
+
- [ ] **角色反应到位**:每个悬念点是否有角色反应来验证力度
|
|
344
|
+
- [ ] **信息差存在**:读者与角色之间、角色与角色之间是否有信息差
|
|
345
|
+
- [ ] **章末有钩子**:每章结尾是否有至少一个未解决的问题或未达成的期待
|
|
346
|
+
- [ ] **下行力度适中**:挫折是否控制在"小波折"范围,没有导致节奏断裂
|
|
347
|
+
- [ ] **震惊有层次**:震惊是否从点 → 网 → 深度递进,而非一次性爆发
|
|
348
|
+
- [ ] **道具变化可视化**:震惊递进是否有明确的视觉/物理变化支撑
|
|
349
|
+
- [ ] **爽感递增**:每次释放后的爽感是否比上一次更强
|
|
350
|
+
- [ ] **麻烦没有消失**:主角解决问题后是否有新的困境或挑战出现
|
|
351
|
+
- [ ] **多线并行**:是否保持至少两条期待线同时运行
|
|
352
|
+
- [ ] **底牌有压制**:展示底牌后反派是否受到对应压制
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: output-contract
|
|
3
|
+
description: |
|
|
4
|
+
story-short-analyze 输出契约。定义 Stage → 文件映射、_meta.json schema、
|
|
5
|
+
下游消费规范(story-short-write 读全套 markdown + 原文 + _meta.json 写新短篇)。
|
|
6
|
+
sync-policy: |
|
|
7
|
+
本文件在 story-short-analyze 与 story-short-write 之间需保持字节一致(byte-equal)。
|
|
8
|
+
修改任一副本后,必须同步另一副本,并通过 bash scripts/check-shared-files.sh 验证。
|
|
9
|
+
禁止把本文件加入 IGNORE_NAMES 列表——它必须保持同步,不属于 intentional differences。
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 输出契约:story-short-analyze ↔ story-short-write
|
|
13
|
+
|
|
14
|
+
`story-short-analyze` 拆完一篇短篇后,产物落盘到 `拆文库/{书名}/`。`story-short-write`
|
|
15
|
+
写下一篇同题材短篇时,**同时**读这个目录下的全部产出。
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 输出目录与文件树
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
拆文库/{书名}/
|
|
23
|
+
├── 原文/ # 管道前置步骤产出,存放源文件备份
|
|
24
|
+
├── 拆文报告.md # 人类可读综合报告(Stage 2-6 综合)
|
|
25
|
+
├── 情节节点.md # Stage 2 情节节点清单
|
|
26
|
+
├── 写作手法.md # Stage 4 写作手法分析
|
|
27
|
+
└── _meta.json # 管道元数据 + 结构计数(resume + 验收数值依据)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**文件名约定**:`拆文报告.md / 情节节点.md / 写作手法.md` 由 `story-short-write` 硬编码
|
|
31
|
+
消费,不可重命名。分析叙事走 markdown,数字/枚举走 `_meta.json.structure_counts`。
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Stage → 文件映射
|
|
36
|
+
|
|
37
|
+
| Stage | 名称 | 落地文件 | 主要内容 |
|
|
38
|
+
|-------|------|----------|---------|
|
|
39
|
+
| 2 | 结构+情节节点 | `拆文报告.md`(故事核/结构/梗概段) + `情节节点.md` | 故事核 / 4-6 段结构 / 故事梗概 / 情节节点清单 |
|
|
40
|
+
| 3 | 情感线+爆点 | `拆文报告.md`(情感曲线段+爆点段) | 情感曲线 ≥5 节点 / 爆点 6 维度 / 期待感 |
|
|
41
|
+
| 4 | 反转+写作手法 | `拆文报告.md`(反转段) + `写作手法.md` | 前置反转检查 / 反转分析(铺垫 ≥2) / 写作手法 ≥5 项 |
|
|
42
|
+
| 5 | 人物+开头结尾 | `拆文报告.md`(人物段+首尾段) | 人物分类+功能评估 / 开头分析 / 结尾分析 / 首尾呼应 |
|
|
43
|
+
| 6 | 综合评估 | `拆文报告.md`(综合段) + `_meta.json`(写 structure_counts) | 五维评分 / 爆点性 / 话题性 / 共鸣 ≥3 层 / 可复用结构 ≥3 条 / 节奏速报 |
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## `_meta.json` schema
|
|
48
|
+
|
|
49
|
+
`_meta.json` 是管道元数据 + 结构计数。**不放分析内容**,只放数字和枚举——给验收
|
|
50
|
+
检查做完整性校验用。分析叙事都在 `拆文报告.md` 里。
|
|
51
|
+
|
|
52
|
+
```jsonc
|
|
53
|
+
{
|
|
54
|
+
"version": "2.0",
|
|
55
|
+
"word_count": 5234, // 源文字数(Phase 1 探针填入)
|
|
56
|
+
"genre_detected": "追妻", // Phase 1 题材识别;未识别填 "通用"
|
|
57
|
+
"created_at": "{ISO8601 时间戳}", // 拆文启动时间,写入时填当前 UTC
|
|
58
|
+
"stages_completed": [2, 3, 4, 5], // 已完成 Stage,按完成顺序 append
|
|
59
|
+
"last_stage_in_progress": null, // 当前正在执行的 Stage;空闲为 null
|
|
60
|
+
|
|
61
|
+
"structure_counts": { // Stage 6 完成时一次性写入;structure_counts 数值校验依据
|
|
62
|
+
"beats": 5, // 结构段数(结构划分,开端/发展/高潮/结局,Stage 2)
|
|
63
|
+
"hooks": 4, // 钩子数(Stage 3)
|
|
64
|
+
"setup_clues": 3, // 反转铺垫线索数(Stage 4)
|
|
65
|
+
"character_archetypes": 3, // 有反差人物数(Stage 5)
|
|
66
|
+
"reusable_structures": 3, // 可复用手法条数(Stage 6)
|
|
67
|
+
"reversal_type": "视角反转" // 反转类型枚举(视角/身份/动机/时间线/信息/认知/无反转);甜宠/喜剧/报应型填「无反转」
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### 写入顺序(crash safety)
|
|
73
|
+
|
|
74
|
+
1. **Stage N 开始前**:`last_stage_in_progress = N`,写盘。
|
|
75
|
+
2. **Stage N 文件写完后**:non-empty + 最小长度合理性检查(如 `拆文报告.md` 新增段 ≥ 200 字)。
|
|
76
|
+
3. **通过**:清空 `last_stage_in_progress`,append `N` 到 `stages_completed[]`。
|
|
77
|
+
4. **失败**:`stages_completed` 不动,`last_stage_in_progress` 保留为 `N`。
|
|
78
|
+
5. **Stage 6 完成时额外动作**:把 `structure_counts` 一次性算出并写入 `_meta.json`,
|
|
79
|
+
然后才进入验收。
|
|
80
|
+
|
|
81
|
+
### Resume 协议
|
|
82
|
+
|
|
83
|
+
- `last_stage_in_progress` 非空 → 该 Stage 上次中断,**从头**重跑(不复用半成品)。
|
|
84
|
+
- `last_stage_in_progress` 为空 → 从 `max(stages_completed) + 1` 开始。
|
|
85
|
+
- `stages_completed` 含 6 → 已完成,询问用户覆盖/取消。
|
|
86
|
+
|
|
87
|
+
**Stage 6 = 内容写完 AND 验收通过**。验收未过前 `last_stage_in_progress` 保持 `6`、`stages_completed` 不含 `6`;resume 时正文/structure_counts 已在盘上,只重跑验收检查,不重写 Stage 6 正文。
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 验收接入点
|
|
92
|
+
|
|
93
|
+
Stage 6 内容写完后、`stages_completed[6]` append 前,跑三道检查:
|
|
94
|
+
|
|
95
|
+
### Step 1:拆文报告 AI 腔自检
|
|
96
|
+
|
|
97
|
+
扫描 `拆文报告.md` 全文 against 拆文流程本地加载的禁用词表与报告 AI 腔规则。
|
|
98
|
+
这是拆文报告质量门;成稿去 AI 规则由写作流程在自己的 Skill 内维护,不跨 Skill 读取参考文件,也不要把两套规则混用。
|
|
99
|
+
命中 → 不写 `stages_completed[6]`,列出位置请用户修订**拆文报告本身**的 AI 腔
|
|
100
|
+
(源文里有 AI 腔不算——这里扫的是分析师写的报告)。
|
|
101
|
+
|
|
102
|
+
### Step 2:`_meta.json.structure_counts` 数值校验
|
|
103
|
+
|
|
104
|
+
| 字段 | 最低值 | 不达标 |
|
|
105
|
+
|------|--------|--------|
|
|
106
|
+
| `structure_counts.beats` | ≥ 4(结构段:开端/发展/高潮/结局)| 阻断 |
|
|
107
|
+
| `structure_counts.hooks` | ≥ 3 | 阻断 |
|
|
108
|
+
| `structure_counts.setup_clues` | ≥ 3(reversal_type=无反转时跳过本行)| 阻断 |
|
|
109
|
+
| `structure_counts.character_archetypes` | ≥ 2 | 阻断 |
|
|
110
|
+
| `structure_counts.reusable_structures` | ≥ 3 | 阻断 |
|
|
111
|
+
| `structure_counts.reversal_type` | 在枚举内(含「无反转」)| 阻断 |
|
|
112
|
+
| `genre_detected` | 非空 | 阻断 |
|
|
113
|
+
|
|
114
|
+
> 情节节点数(15-60 个,按字数分档)走 `情节节点.md` 自己的密度校验(见 material-decomposition.md),不在本表。`beats` 是结构段数,不是情节节点数。
|
|
115
|
+
|
|
116
|
+
### Step 3:`story-short-analyze` BLOCK 项扫描
|
|
117
|
+
|
|
118
|
+
扫拆文流程本地加载的输出模板,确认所有 `[BLOCK]` 标注项对应的产出段均在 `拆文报告.md` 出现。
|
|
119
|
+
任一缺失 → 阻断。`[WARN]` 项 → 写入拆文报告末尾「待补」清单,不阻断。
|
|
120
|
+
|
|
121
|
+
### Step 4:通过
|
|
122
|
+
|
|
123
|
+
清空 `_meta.json.last_stage_in_progress`,append `6` 到 `stages_completed[]`,提示
|
|
124
|
+
用户「拆解完成,可调用 `/story-short-write` 写下一篇」。
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## 下游消费规范(story-short-write 怎么用)
|
|
129
|
+
|
|
130
|
+
> `story-short-write` 当前硬编码读 `拆文报告.md / 情节节点.md / 写作手法.md` 三个 markdown。
|
|
131
|
+
> `_meta.json` 是可选增强:read 容忍,不存在不阻塞写作。
|
|
132
|
+
|
|
133
|
+
| 文件 | 角色 | 怎么读 |
|
|
134
|
+
|------|------|--------|
|
|
135
|
+
| `_meta.json`(可选)| 数字门面 + 题材识别 | 看 `genre_detected` 决定哪个题材标尺,读 `structure_counts` 确认拆文完整性,读 `structure_counts.reversal_type` 选反转骨架 |
|
|
136
|
+
| `拆文报告.md` | 分析叙事主体 | 读「故事核」「结构」「情感曲线」「爆点」「反转分析」「人物」「五维评分」「共鸣分析」「可复用结构」「同类型写作动作」段,是 writer 的主输入 |
|
|
137
|
+
| `情节节点.md` | 节奏锚点 | 看每个节点的字数位置 + 功能 + 触发事件,给新故事排节奏 |
|
|
138
|
+
| `写作手法.md` | 手法库 | POV / 对话 / 时间 / 信息控制 等具体手法 + 原文示例,新篇里复用 |
|
|
139
|
+
| `原文/` | 语感源 | 抄对话调子、节奏、画面感、打脸张力。**不抄具体情节**,抄写法。 |
|
|
140
|
+
|
|
141
|
+
### 写作流程建议
|
|
142
|
+
|
|
143
|
+
1. 看 `_meta.json.genre_detected` 和 `structure_counts.reversal_type` 选骨架。
|
|
144
|
+
2. 读 `拆文报告.md` 的「核心手法」「共鸣分析」「可复用结构」段,决定要保留 / 调整哪些。
|
|
145
|
+
3. 读 `情节节点.md` 把节奏锚点抄到新故事的字数位置上。
|
|
146
|
+
4. 写场景时翻 `写作手法.md` + `原文/`,参考具体写法。
|
|
147
|
+
5. 写完后(可选)在新文档 frontmatter 写 `derived_from: 拆文库/{书名}/` 追溯。
|
|
148
|
+
|
|
149
|
+
### 维护者本地烟雾测试
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
ls 拆文库/{书名}/ # 应有:原文/ 拆文报告.md 情节节点.md 写作手法.md _meta.json
|
|
153
|
+
/story-short-write 拆文库/{书名}/
|
|
154
|
+
# 通过:输出 8000+ 字同题材新短篇,prose 有源文对话节奏和画面感
|
|
155
|
+
# 失败:写得像填空 / 或 short-write 找不到三个 markdown
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 版本约定
|
|
161
|
+
|
|
162
|
+
- `_meta.json.version` 与本文件 `sync-policy` 联动。
|
|
163
|
+
- breaking change(字段重命名 / 类型变更 / 必填变更)必须 bump major version 并同步两侧
|
|
164
|
+
副本,CI 通过 `scripts/check-shared-files.sh` 拦截单边修改。
|
|
165
|
+
- additive change(新增可选字段)可 bump minor;producer、consumer 与两侧副本必须在同一变更中升级到当前 schema。
|