@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,530 @@
|
|
|
1
|
+
# 小说素材拆解方法论
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
## 拆解流程 5 阶段
|
|
6
|
+
|
|
7
|
+
### 阶段 1:章节解析
|
|
8
|
+
|
|
9
|
+
- 识别章节分隔符(第X章、Chapter X、数字编号等)
|
|
10
|
+
- 提取章节标题,记录每章字数
|
|
11
|
+
|
|
12
|
+
### 阶段 2:原子提取(并行 Agent 处理每章)
|
|
13
|
+
|
|
14
|
+
并行/降级策略见 SKILL.md「Stage 2 并行 Agent 策略」。
|
|
15
|
+
|
|
16
|
+
Agent 输出格式严格对齐本阶段 A/B/C 三部分的合并输出,详见 output-templates.md 的 Stage 2 模板。
|
|
17
|
+
|
|
18
|
+
#### A. 章节摘要
|
|
19
|
+
|
|
20
|
+
- 章节概要(100-300 字,按时序连贯讲清事件、原因、结果;写法与自检见 output-templates.md「Stage 2 章节摘要+情节点」)
|
|
21
|
+
- 关键事件(3-5 个,按时间顺序)
|
|
22
|
+
- 出场人物、主题标签、章节基调
|
|
23
|
+
- 剧情推进度(大转折/日常过渡/铺垫伏笔)
|
|
24
|
+
|
|
25
|
+
#### B. 情节点提取(每章 10-40 个,按字数动态调节)
|
|
26
|
+
|
|
27
|
+
密度公式:字数÷200(下限)到 字数÷150(上限),即 150-200 字/个情节点。当公式计算超出 [10, 40] 范围时,以硬约束为准。
|
|
28
|
+
|
|
29
|
+
| 字数 | 目标范围 | 说明 |
|
|
30
|
+
|------|---------|------|
|
|
31
|
+
| ≤1000 | 10 个 | 短章按硬下限拆足关键步骤(公式建议 5-7,硬下限 10) |
|
|
32
|
+
| 3000 | 15-20 个 | 标准密度 |
|
|
33
|
+
| 5000 | 25-34 个 | 中长章 |
|
|
34
|
+
| 8000+ | ≤40 个 | 长章上限 |
|
|
35
|
+
|
|
36
|
+
写入章节摘要 .md 的情节点子章节(不单独输出 .json)。每个情节点:
|
|
37
|
+
|
|
38
|
+
| 字段 | 说明 |
|
|
39
|
+
|------|------|
|
|
40
|
+
| 序号 | 严格时间顺序 |
|
|
41
|
+
| 标题 | ≤15 字短标签,与描述不写成同一句 |
|
|
42
|
+
| 类型 | 转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化 |
|
|
43
|
+
| 描述 | 客观白描:谁做了什么、结果如何,原文给出的起因一并写入,埋伏笔的写出伏笔线索(禁止叙事框架词、禁止推测动机) |
|
|
44
|
+
| 原文引用 | 精选,不逐点铺满:只给关键转折 / 关键台词 / 写法样本保留,每章至多 8 条,<=400 字连续切片;过长或分散时改用 `原文定位:{5-15字原句片段}` |
|
|
45
|
+
| 涉及人物 | 全名,不用代词 |
|
|
46
|
+
| 地点 | 地理位置信息 |
|
|
47
|
+
| 关键物品 | 与剧情相关的物品 |
|
|
48
|
+
| 时间标记 | 相对时间(次日、半月后、同时) |
|
|
49
|
+
|
|
50
|
+
#### C. 关键信息与扩写技法提取
|
|
51
|
+
|
|
52
|
+
每章必须额外输出 `关键信息与扩写技法` 表,作为后续 `剧情/节奏.md` 和 `剧情/情绪模块.md` 的基础数据。它避免主观点评,负责把“本章必须传递的剧情信息”与“作者如何把它扩写成可读场景”拆开。
|
|
53
|
+
|
|
54
|
+
| 字段 | 提取方式 |
|
|
55
|
+
|------|----------|
|
|
56
|
+
| 关键信息/剧情走向 | 从关键事件与情节点中归纳本章必须让读者知道、误判、期待或确认的信息 |
|
|
57
|
+
| 原文如何扩写 | 记录作者用了哪些事件、对话、反应层、细节、误导、回扣把信息扩成场景 |
|
|
58
|
+
| 扩写技法 | 从铺垫后置/反应层放大/信息差/对比锚点/延迟揭示/身体反应/小目标嵌套/其他中选择或补充 |
|
|
59
|
+
| 对读者情绪的作用 | 标注该扩写制造的好奇、期待、压抑、爽、心疼、紧张、甜、热血等效果 |
|
|
60
|
+
| 可复用提醒 | 只抽象情绪逻辑和功能位,明确禁止照搬具体桥段、台词、专名、独特设定 |
|
|
61
|
+
|
|
62
|
+
质量要求:每章至少 1 条;标准章节通常 2-5 条。若本章只是过渡,也要说明它维持了什么期待或冷却了什么情绪,而不是写“无”。
|
|
63
|
+
|
|
64
|
+
#### D. 角色提取
|
|
65
|
+
|
|
66
|
+
每个角色提取:外在表现(身份/言行/外貌)、本章功能、别名。
|
|
67
|
+
只记录新出场角色或已有角色的新发展。
|
|
68
|
+
|
|
69
|
+
**角色重要性分级**(按本章戏份):
|
|
70
|
+
|
|
71
|
+
| 等级 | 标准 |
|
|
72
|
+
|------|------|
|
|
73
|
+
| **major** | 本章核心:台词 ≥3 句 OR 推动本章主线 OR 有重要决策 |
|
|
74
|
+
| **supporting** | 本章配角:台词 1-2 句 OR 参与互动但非核心 |
|
|
75
|
+
| **minor** | 本章次要:仅被提及 OR 无台词但有名字 |
|
|
76
|
+
|
|
77
|
+
### 阶段 3:聚合分析(跨章节)
|
|
78
|
+
|
|
79
|
+
> **语料读取**:本阶段及阶段 4a/4c、散落情节兜底里的「全部章节摘要 / 全部情节点」统一从 `_章节摘要汇总.md`(Stage 2 收尾按章号无损拼接的全书摘要,见 SKILL.md「Stage 2 收尾:合并章节摘要」)**一次性读取、在上下文中复用**,不逐文件 glob 重扫——同一份语料的 4-5 次冷读降为 1 次。汇总文件缺失或语料超上下文时,回退原「扫描全部章节摘要」逐文件方式 / 分块策略,行为不变。
|
|
80
|
+
|
|
81
|
+
#### 0. 故事框架识别(聚合前置)
|
|
82
|
+
|
|
83
|
+
在剧情聚合之前,先识别全书的故事框架。框架决定聚合策略:
|
|
84
|
+
|
|
85
|
+
| 框架类型 | 特征 | 聚合策略 |
|
|
86
|
+
|----------|------|----------|
|
|
87
|
+
| 升级流 | 等级体系清晰,按境界分段 | 按等级阶段划分剧情单元 |
|
|
88
|
+
| 复仇线 | 核心矛盾明确,目标驱动 | 按复仇对象/阶段划分 |
|
|
89
|
+
| 日常/单元 | 每卷独立故事,弱连续性 | 按卷/单元划分 |
|
|
90
|
+
| 多线交织 | 多视角/多时间线 | 按线索划分,交叉点单独标记 |
|
|
91
|
+
| 蜕变成长 | 主角内在变化为主线 | 按成长阶段划分 |
|
|
92
|
+
|
|
93
|
+
识别方法:扫描概要.md(Stage 0 thin first-pass 足够,无需等 Stage 5 全书概要)+ 前3章摘要 + 后3章摘要,判断核心驱动模式。
|
|
94
|
+
输出写入 `剧情/故事线.md` 的框架识别部分。
|
|
95
|
+
|
|
96
|
+
**预期剧情数量引导**(强制参考,非建议):
|
|
97
|
+
|
|
98
|
+
| 总章数 | 预期独立剧情数 | 依据 |
|
|
99
|
+
|--------|--------------|------|
|
|
100
|
+
| <30 章 | 3-6 个 | 短篇结构紧凑 |
|
|
101
|
+
| 30-100 章 | 5-15 个 | 每条剧情 5-20 章 |
|
|
102
|
+
| 100-300 章 | 10-25 个 | 含主线+支线+补充 |
|
|
103
|
+
| >300 章 | 15-40 个 | 多卷多线结构 |
|
|
104
|
+
|
|
105
|
+
偏差超过 ±30% 需重新检查粒度。首要原则:保证核心戏剧目标叙事弧的完整性。
|
|
106
|
+
|
|
107
|
+
**粒度层级混乱检测**(框架识别后自检):
|
|
108
|
+
|
|
109
|
+
| 混乱模式 | 检测方法 | 修正方式 |
|
|
110
|
+
|---------|---------|---------|
|
|
111
|
+
| 包含关系 | 剧情A 章节范围完全包含剧情B | 保留粒度适中的B,拆分过粗的A |
|
|
112
|
+
| 重叠率 >50% | 两剧情共享章节超过一半 | 检查是否混淆「剧情」和「剧情阶段」 |
|
|
113
|
+
| 剧情仅为另一剧情的开端/结尾 | 剧情A 只占剧情B 的首/尾几章 | 合并为同一剧情,B 的阶段 |
|
|
114
|
+
| 剧情无独立目标 | 目标描述是另一剧情的子目标 | 降级为该剧情的阶段 |
|
|
115
|
+
|
|
116
|
+
**框架识别后自检**(聚合前必须通过):
|
|
117
|
+
1. 覆盖率检查:所有剧情覆盖的章节数(去重)是否达到 85% 以上
|
|
118
|
+
2. 粒度检查:是否存在过细(单一事件)或过粗(宏观主题)的剧情,执行粒度层级混乱检测
|
|
119
|
+
3. 独立性检查:每条剧情是否满足 4 项独立性标准
|
|
120
|
+
4. 数量检查:剧情总数是否在预期范围内
|
|
121
|
+
|
|
122
|
+
#### A. 剧情聚合(两步法)
|
|
123
|
+
|
|
124
|
+
将剧情聚合拆为两步:先从摘要识别剧情大纲,再按大纲分配情节点。
|
|
125
|
+
|
|
126
|
+
**第一步:剧情大纲识别(从章节摘要)**
|
|
127
|
+
|
|
128
|
+
扫描全部章节摘要,识别每条独立剧情的大纲。每条大纲包含:
|
|
129
|
+
|
|
130
|
+
| 字段 | 说明 |
|
|
131
|
+
|------|------|
|
|
132
|
+
| 标题 | 简洁有力,15字以内 |
|
|
133
|
+
| 概要 | 150-300字,按时序连贯叙述因果,不靠同一连接词反复串联;含核心角色、关键地点、事件发展 |
|
|
134
|
+
| 核心目标 | 具体、可衡量的戏剧目标 |
|
|
135
|
+
| 核心冲突 | 具体冲突对象+冲突事件 |
|
|
136
|
+
| 类型 | 主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他 |
|
|
137
|
+
| 主题 | 不超过3个 |
|
|
138
|
+
| 章节范围 | 起止章节号 |
|
|
139
|
+
|
|
140
|
+
识别完成后执行框架识别自检(4项检查)。
|
|
141
|
+
|
|
142
|
+
**第二步:情节点分配(按剧情大纲)**
|
|
143
|
+
|
|
144
|
+
对每条剧情大纲,扫描全部情节点,将直接服务该目标的节点分配进来。
|
|
145
|
+
|
|
146
|
+
**分配执行逻辑**(4 步):
|
|
147
|
+
1. **主题溯源与节点收集**:针对每条剧情大纲的核心目标,扫描全部情节点,将直接服务、推动或阻碍该目标的事件节点挑出
|
|
148
|
+
2. **边界识别**:识别剧情的起点(触发事件/前置条件)和终点(完成/失败标志),以及连接两者的关键过渡节点
|
|
149
|
+
3. **索引构建与验证**:将筛选出的情节点按时间顺序排列,验证覆盖完整性
|
|
150
|
+
4. **画像数据补充**:基于最终节点集合,补充完善概要、结构分布等字段
|
|
151
|
+
|
|
152
|
+
**情节点筛选标准**(判定归属时使用):
|
|
153
|
+
- **主题相关**:情节点内容与剧情概要、主题一致
|
|
154
|
+
- **角色匹配**:情节点涉及的角色与剧情核心角色相关
|
|
155
|
+
- **因果关系**:情节点与剧情发展有因果或逻辑延续
|
|
156
|
+
- **目标导向**:情节点推动或阻碍剧情目标实现
|
|
157
|
+
- **章节范围**:优先选择剧情章节范围内的情节点
|
|
158
|
+
|
|
159
|
+
**剧情粒度标准(核心要求)**:
|
|
160
|
+
|
|
161
|
+
| 粒度 | 示例 | 问题 |
|
|
162
|
+
|------|------|------|
|
|
163
|
+
| 过细(单一事件) | "获得神器"(1-2章)、"首次修炼"(第3章) | 这些是事件,不是独立剧情 |
|
|
164
|
+
| 过粗(宏观主题) | "主角的成长之路"(1-100章) | 这是主题,不是具体剧情 |
|
|
165
|
+
| **合适** | "家族觉醒与传承认知"(1-6章)、"神器获得与导师相遇"(7-13章) | 有独立目标、冲突、角色群和完整叙事弧 |
|
|
166
|
+
|
|
167
|
+
**剧情独立性判断标准**(必须同时满足):
|
|
168
|
+
1. **独立的核心目标**:有明确的、可衡量的戏剧目标(不是宏观主题或抽象概念)
|
|
169
|
+
2. **独立的主要冲突**:有具体的对抗力量和冲突事件(不是某个大冲突的子阶段)
|
|
170
|
+
3. **相对独立的角色群**:有该剧情特有的核心角色(可以与其他剧情共享部分角色)
|
|
171
|
+
4. **独立的叙事节奏**:有自己的紧张-缓和节奏
|
|
172
|
+
|
|
173
|
+
**三层覆盖策略**:
|
|
174
|
+
1. **主线剧情**(优先级最高):推动整体故事发展,通常占 60-70% 章节
|
|
175
|
+
2. **支线剧情**:感情线、成长线、战斗线等,通常占 20-30% 章节
|
|
176
|
+
3. **补充剧情**:过渡剧情、日常剧情,确保覆盖率 ≥85%
|
|
177
|
+
|
|
178
|
+
**剧情类型**:
|
|
179
|
+
- 主线(推动整体故事发展的核心剧情)
|
|
180
|
+
- 爱情(感情关系发展)
|
|
181
|
+
- 成长(角色能力/心智/地位提升)
|
|
182
|
+
- 复仇(复仇相关)
|
|
183
|
+
- 寻宝(争夺物品或目标)
|
|
184
|
+
- 悬疑(推理、真相揭露)
|
|
185
|
+
- 战斗(战争、比武、对决)
|
|
186
|
+
- 权谋(政治斗争、权力争夺)
|
|
187
|
+
- 修炼(修炼、突破、传承)
|
|
188
|
+
- 危机(危机应对、解救、逃脱)
|
|
189
|
+
- 谜团(世界观未解之谜、身世秘密、隐藏真相)
|
|
190
|
+
- 日常(日常生活、过渡性内容)
|
|
191
|
+
- 其他(无法归入以上类型)
|
|
192
|
+
|
|
193
|
+
每条剧情提取:标题、概要(150-300字,按时序连贯叙述因果)、核心目标、核心冲突、类型、章节范围。
|
|
194
|
+
标记结构分布:铺垫期/发展期/高潮期/收尾期 各包含哪些章节。
|
|
195
|
+
|
|
196
|
+
**核心目标类型参考**:
|
|
197
|
+
- 获得型:"赢得大比冠军""获得关键道具/传承""攻占要塞"
|
|
198
|
+
- 解决型:"解除家族危机""偿还巨额债务""摆脱追杀"
|
|
199
|
+
- 创造型:"创立新宗门""研发新招式""开创一个流派"
|
|
200
|
+
- 探索型:"调查父母失踪真相""探索上古遗迹""揭露阴谋"
|
|
201
|
+
|
|
202
|
+
#### B. 故事线提取
|
|
203
|
+
|
|
204
|
+
将多条剧情聚合为「故事线」:标题、描述(300-600字发展阶段划分)、主要人物、主题关键词、包含的剧情列表(至少1个剧情)。
|
|
205
|
+
|
|
206
|
+
**故事线类型**:主线/感情线/成长线/复仇线/夺宝线/冲突线/谜团线/其他
|
|
207
|
+
|
|
208
|
+
**故事线描述要求**:
|
|
209
|
+
- 划分 3-8 个发展阶段(periodization),寻找关键转折点或里程碑事件作为阶段边界
|
|
210
|
+
- 每个阶段含:核心冲突、关键角色及作用、能力/资源/地位演进、主题母题
|
|
211
|
+
- 独立追踪伏笔与回收关系链(前后呼应的伏笔-回收对)
|
|
212
|
+
- 标注与其他故事线的交织关系(并行/交织/依赖)
|
|
213
|
+
- 包含剧情按时序排列,每条故事线至少包含1个剧情
|
|
214
|
+
|
|
215
|
+
#### C. 节奏索引与情绪模块生成
|
|
216
|
+
|
|
217
|
+
Stage 3 聚合后必须生成两个权威产物,供 Stage 5 报告摘要和 `story-long-write` 直接读取:
|
|
218
|
+
|
|
219
|
+
1. **`剧情/节奏.md`(节奏权威)**
|
|
220
|
+
- 输入:全部章节摘要的情节点、`关键信息与扩写技法` 表、剧情大纲、故事线。
|
|
221
|
+
- 输出:关键信息推进表、爽点循环索引、情绪触动点索引、爆发节奏总结。
|
|
222
|
+
- 生成法:按章节顺序扫描关键事件与关键信息,标出“信息进入读者视野 → 被延迟/误导/验证 → 情绪爆发 → 余波/新钩子”的链条。
|
|
223
|
+
- 校验:每条爽点/触动点必须能回指章节或情节点;每个长间隔(连续 3 章以上无触动点)必须说明作者如何用小钩子或信息推进维持期待。
|
|
224
|
+
|
|
225
|
+
2. **`剧情/情绪模块.md`(模块权威)**
|
|
226
|
+
- 输入:故事框架识别、剧情单元、`剧情/节奏.md`、读者需求判断、桥段标签。
|
|
227
|
+
- 输出:读者需求 / 情绪引擎、故事框架与套路运行图、可复现模块卡、重组与复现指南。
|
|
228
|
+
- 生成法:先抽象“读者想看什么”,再把具体剧情抽成情绪链和功能位;模块卡必须包含可替换项和不可照搬项。
|
|
229
|
+
- 校验:best-effort 为模块标注来源(关联 `剧情/节奏.md` 的 RH/TR 条目或章节情节点),无把握时留空、不硬凑、不删模块;禁止把原文专名、独特事件顺序、标志性台词写成可复用模板。
|
|
230
|
+
|
|
231
|
+
**权威关系**:`剧情/节奏.md` 管节奏/触动点,`剧情/情绪模块.md` 管读者需求/模块复现。`拆文报告.md` 与 `剧情/故事线.md` 只能摘要或引用这两个文件,不能成为并列权威。
|
|
232
|
+
|
|
233
|
+
#### D. 小说概要生成(在 Stage 5 落盘,覆盖 Stage 0 thin first-pass)
|
|
234
|
+
|
|
235
|
+
整体故事框架识别 + 500-1000字高密度全书概要(涵盖主要剧情线阶段性发展、核心人物作用、关键转折点、因果关系)。
|
|
236
|
+
|
|
237
|
+
> **落盘时机**:聚合阶段(Material 阶段 3 ≈ pipeline Stage 3)产出概要文本,但**写入 `概要.md` 的动作放在 pipeline Stage 5 汇总报告**——届时 Stage 3 / 4 全部完成、信息最完整。Stage 5 覆盖 Stage 0 的 thin first-pass 段,章节索引和卷段表保留。
|
|
238
|
+
|
|
239
|
+
### 阶段 4:世界观与设定提取
|
|
240
|
+
|
|
241
|
+
Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
242
|
+
|
|
243
|
+
#### 角色两阶段模型
|
|
244
|
+
|
|
245
|
+
**阶段 A:轻量提及(Stage 2 输出)**
|
|
246
|
+
- 每个 agent 返回出场人物表(姓名/重要性/别名/本章表现)
|
|
247
|
+
- 不做跨章分析,只记录本章可见信息
|
|
248
|
+
|
|
249
|
+
**阶段 B:完整档案(Stage 4 构建)**
|
|
250
|
+
- 合并所有章节的角色提及数据
|
|
251
|
+
- 跨章节别名解析
|
|
252
|
+
- 构建完整角色档案
|
|
253
|
+
|
|
254
|
+
#### 一人一实体原则
|
|
255
|
+
|
|
256
|
+
- **绝对禁止**将不同人物的信息合并到同一个实体中
|
|
257
|
+
- 每个角色实体必须对应唯一的一个人物
|
|
258
|
+
- 如果无法确定两个称呼是否指向同一人物,必须分开创建实体
|
|
259
|
+
|
|
260
|
+
#### 别名解析规则
|
|
261
|
+
|
|
262
|
+
**别名类型**:
|
|
263
|
+
|
|
264
|
+
| 类型 | 定义 | 可合并 | 示例 |
|
|
265
|
+
|------|------|--------|------|
|
|
266
|
+
| proper_name | 专名/全名/常用名 | 是 | "希尔曼""林雷·巴鲁克" |
|
|
267
|
+
| nickname | 绰号/外号,须有同指证据 | 是(置信度≥0.85) | "龙血战士林雷" |
|
|
268
|
+
| descriptor | 描述性称谓 | 否 | "红发壮汉""随从""队长" |
|
|
269
|
+
| title | 头衔/职务 | 否 | "护卫队长""家主""族长" |
|
|
270
|
+
|
|
271
|
+
**合并约束**:
|
|
272
|
+
- 仅 proper_name 和 nickname(置信度 ≥0.85)可用于合并
|
|
273
|
+
- descriptor 和 title **永不**触发实体合并
|
|
274
|
+
- nickname 须提供同指证据:同位说明、括号别名、上下文指代、明确改名
|
|
275
|
+
|
|
276
|
+
**Archetype 量化判断**:
|
|
277
|
+
|
|
278
|
+
| 类型 | 标准 |
|
|
279
|
+
|------|------|
|
|
280
|
+
| **主角** | 出现章节 ≥50% 总章节 + 推动主线 + 有完整成长轨迹 |
|
|
281
|
+
| **反派** | 与主角对立 + 推动核心冲突 + 有明确动机 |
|
|
282
|
+
| **核心配角** | 出现章节 ≥20% OR 推动重要支线 OR 有独立人格和成长 |
|
|
283
|
+
| **功能角色** | 出现章节 <20% + 作用有限(提供信息/道具/一次性互动) |
|
|
284
|
+
|
|
285
|
+
**特殊**:前期 minor 后期 supporting → 判为 supporting。重要导师/伙伴即使出现少也可判为 supporting。
|
|
286
|
+
|
|
287
|
+
**角色档案结构**(200-500字):
|
|
288
|
+
1. 身份背景(1-2句)
|
|
289
|
+
2. 核心经历(3-5句,按时序)
|
|
290
|
+
3. 性格特质(1-2句,从行为归纳)
|
|
291
|
+
4. 能力特长(1-2句)
|
|
292
|
+
5. 人际关系(1-2句)
|
|
293
|
+
6. 成长轨迹(如有,1句)
|
|
294
|
+
|
|
295
|
+
#### 金手指合并规则
|
|
296
|
+
|
|
297
|
+
- 相互关联、共同作用的元素**合并为一个**(如"戒指+导师灵魂"是一个整体)
|
|
298
|
+
- 同一事物的不同描述角度**不拆分**
|
|
299
|
+
- 只有完全独立、互不依赖的能力来源才拆分为多个
|
|
300
|
+
- 长篇特点:金手指可能复杂多样,需详尽描述演化过程和多重能力
|
|
301
|
+
- 无金手指时注明
|
|
302
|
+
|
|
303
|
+
**金手指类型**:system(系统)/ space(空间)/ rebirth(重生)/ transmigration(穿越)/ special_physique(特殊体质)/ artifact(神器)/ bloodline(血脉)/ other(其他)
|
|
304
|
+
|
|
305
|
+
#### 世界观(按主题拆分到多个文件)
|
|
306
|
+
|
|
307
|
+
字段与落盘位置:
|
|
308
|
+
|
|
309
|
+
| 字段 | 说明 | 落盘文件 |
|
|
310
|
+
|------|------|----------|
|
|
311
|
+
| 类型 | 奇幻/现实/平行世界 | 各文件 frontmatter 或开头注明 |
|
|
312
|
+
| 力量体系 | 名称、等级、晋升方式(文本描述) | `设定/世界观/力量体系.md`(>=200字独立,否则并入 背景设定) |
|
|
313
|
+
| 地理 | 分布、主要区域、关键地点(文本描述) | `设定/世界观/地理.md`(同上,>=200字独立) |
|
|
314
|
+
| 势力 | 门派/组织/家族/国家 | **每个势力一个文件** `设定/势力/{势力名}.md`(>=200字独立;不足合并到 `设定/世界观/背景设定.md`) |
|
|
315
|
+
| 核心规则 | 世界运转的基本规则 | `设定/世界观/背景设定.md` |
|
|
316
|
+
| 特殊设定 | 区别于现实的独特设定 | `设定/世界观/背景设定.md`(与核心规则同文件) |
|
|
317
|
+
| 金手指 | 见上方「金手指合并规则」 | `设定/世界观/金手指.md`(统一在 `设定/世界观/` 子目录下,不放扁平 `设定/金手指.md`) |
|
|
318
|
+
|
|
319
|
+
> 模板与示例见 [output-templates.md](output-templates.md) 「Stage 4 设定+关系」节。下游导入只原样同步当前主题文件,不再现场拆分扁平文件。
|
|
320
|
+
|
|
321
|
+
### 阶段 5:人物关系提取
|
|
322
|
+
|
|
323
|
+
每对关系:
|
|
324
|
+
|
|
325
|
+
| 字段 | 说明 |
|
|
326
|
+
|------|------|
|
|
327
|
+
| 角色A | 全名 |
|
|
328
|
+
| 角色B | 全名 |
|
|
329
|
+
| 关系类型 | 家人/师徒/朋友/敌人/恋人/同事/上下级/商业/其他 |
|
|
330
|
+
| 情感倾向 | 正面/负面/中性/复杂 |
|
|
331
|
+
| 描述 | 关系本质+建立过程+关键互动(50-200字) |
|
|
332
|
+
|
|
333
|
+
#### 关系提取策略
|
|
334
|
+
|
|
335
|
+
**数据源**:从已提取的情节点描述中提取关系(不从原文提取),更高效、更聚焦。
|
|
336
|
+
|
|
337
|
+
**批量提取**:每 5 章批量提取一次,只记录新关系或关系变化。
|
|
338
|
+
|
|
339
|
+
**关系演变追踪**:当同一对角色关系发生变化时,记录演变轨迹:
|
|
340
|
+
```
|
|
341
|
+
第{N}章:{关系状态A} → 第{M}章:{关系状态B}
|
|
342
|
+
触发事件:{具体事件}
|
|
343
|
+
情感转变:{正面→负面/负面→正面/中立→复杂 等}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**最终状态合并**:同一对角色的多阶段关系,保留最新状态作为主记录,历史变化写入演变轨迹。避免同一对出现多条重复关系。
|
|
347
|
+
|
|
348
|
+
**隐含关系推断**:当角色间没有直接互动但有间接证据时:
|
|
349
|
+
- 通过第三方的评价/描述推断(置信度标 0.7)
|
|
350
|
+
- 通过共同出现的频率和场合推断(置信度标 0.6)
|
|
351
|
+
- 推断关系标记 `[推断]`,与直接证据关系区分
|
|
352
|
+
|
|
353
|
+
**关系网络密度**:
|
|
354
|
+
- 统计主要角色(主角+核心配角)的关系数量
|
|
355
|
+
- 关系数 < 3 → 关系网偏薄,检查是否有遗漏
|
|
356
|
+
- 关系数 > 10 → 关系网过密,检查是否有误合并
|
|
357
|
+
|
|
358
|
+
---
|
|
359
|
+
|
|
360
|
+
## 原子提取六大铁律
|
|
361
|
+
|
|
362
|
+
1. **绝对时序**:严格按事件发生的时间顺序排列
|
|
363
|
+
2. **客观白描**:记录"发生了什么"和结果,原文明说的起因照写,不推测未写出的动机,不用叙事框架词
|
|
364
|
+
3. **信息保真**:不遗漏改变语境的关键细节
|
|
365
|
+
4. **高度浓缩**:一个情节点一句话概括
|
|
366
|
+
5. **复合合并**:为同一戏剧目的服务的连续微动作合并为一个情节点
|
|
367
|
+
6. **客观事实**:提取客观事实,不做叙事分析
|
|
368
|
+
|
|
369
|
+
**客观白描 vs 叙事框架词**:
|
|
370
|
+
- 禁止:「通过对话,郑松得知张子豪在韩国训练」
|
|
371
|
+
- 正确:「吴志斌告诉郑松,张子豪在韩国训练」
|
|
372
|
+
- 禁止:「林风展现了自己的实力」
|
|
373
|
+
- 正确:「林风三招击败对手,围观者倒吸一口凉气」
|
|
374
|
+
- 禁止:「邵阳感到心碎和愤怒」
|
|
375
|
+
- 正确:「邵阳目睹宋丽与人拥抱,表情由刺痛转为冷漠」
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## 合成阶段事实保真(阶段 3-5:剧情/设定/角色/报告)
|
|
380
|
+
|
|
381
|
+
阶段 3-5 从章节摘要二次合成,离原文已两跳,最易把「摘要没说的」用合理推断补成「看似坐实的事实」——这是拆文事实错误的最大来源(典型:给「双系魔法师」凭空补第二系、把坐骑等级安到骑手头上、给原文没给的字段编一个数值、把出场区间填成连续跨度含没出场的章)。强模型也照样漂移,因为越远离原文,模型越靠世界知识与"合理性"填空。三条硬约束:
|
|
382
|
+
|
|
383
|
+
1. **硬事实必须可溯源**:力量等级、数值、距离、属性、势力数量、谁对谁说了什么、角色出场章节——这类硬事实写进设定/角色/报告前,回原文核对(摘要不足就直接读原文);核到才写。
|
|
384
|
+
2. **缺失写「原文未明确」,禁编造填空**:原文没给的字段,写「原文未明确/节选未涉及」,绝不用近义项、别处的范例或惯例补一个看似合理的值。
|
|
385
|
+
3. **跨指代不串**:相邻实体的属性不互相挪用——坐骑等级≠骑手等级、A 的台词≠B 的台词、本章统计数字≠相邻章数字。
|
|
386
|
+
|
|
387
|
+
落盘后做一次**事实可溯源自检**:抽查设定/角色/报告里的硬事实,逐条能否 grep 回原文;命中即过,命中不到的改写为「原文未明确」或删除,不保留无源断言。此自检独立于下方三个比率——比率查归类质量,它查事实真伪。
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
目录结构见 SKILL.md「输出目录结构」。
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## 质量阈值体系
|
|
396
|
+
|
|
397
|
+
阶段 3 和阶段 4 完成后自检:
|
|
398
|
+
|
|
399
|
+
| 指标 | 阈值 | 计算 | 不达标处理 |
|
|
400
|
+
|------|------|------|------------|
|
|
401
|
+
| 置信度 | >= 0.85 | 有明确归属的情节点 / 剧情单元内情节点总数 | 低于 0.85 标记「待复核」 |
|
|
402
|
+
| 覆盖率 | 85%-95% | 已归类情节点 / 总情节点数 | <85% 触发孤立情节二次分类;>95% 复核边界 |
|
|
403
|
+
| 关键信息覆盖 | >= 每章1条 | 含 `关键信息与扩写技法` 的章节数 / 摘要章节数 | 缺失章节回到 Stage 2 补提取 |
|
|
404
|
+
| 模块来源标注 | best-effort | 情绪模块卡尽量标注 RH/TR 或章节情节点来源 | 无把握的来源留空,不硬凑、不删模块(同桥段标签的 best-effort 处理)|
|
|
405
|
+
| 重叠率 | <= 35% | 跨剧情单元共享情节点 / 总情节点数 | >35% 提示边界模糊,建议合并 |
|
|
406
|
+
|
|
407
|
+
> **小体量节选(< 30 章、单主线连续叙事)的特例**:此类素材按时序连续切分时,覆盖率天然接近 100%、散落情节接近 0,这是线性结构的正常结果,不算过度归并。此时复核重点是「有无把不同剧情强行并进同一条」,而非覆盖率数值本身——不必为压到 95% 以下而人为拆分。
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## 散落情节兜底
|
|
412
|
+
|
|
413
|
+
阶段 3 聚合完成后执行(6 步,含覆盖率验证):
|
|
414
|
+
|
|
415
|
+
1. **计算孤立比例**:孤立情节点数 / 总情节点数。若比例 < 5%,跳过后续步骤,直接标记为「少量散落,无需处理」
|
|
416
|
+
2. **筛选未分配情节点**:从所有章节摘要中收集未归类到任何剧情单元的情节点
|
|
417
|
+
3. **三层置信度归入**:按角色重叠、地点重叠、因果关系三条线索计算相关性
|
|
418
|
+
- **强相关**(0.8-1.0):角色匹配 + 主题相关 → 归入现有剧情单元,标记 `[孤立情节归入]`
|
|
419
|
+
- **中等相关**(0.5-0.8):角色匹配 或 主题相关 → 归入并标记 `[低置信归入]`,待复核
|
|
420
|
+
- **弱相关**(<0.5):不建议强行归入,宁可放入未分配
|
|
421
|
+
4. **主题聚类**:弱相关的情节点按主题关键词聚类
|
|
422
|
+
- 聚类结果 >= 5 个情节点 → 形成候选剧情单元,标记 `[聚类生成]`
|
|
423
|
+
- 聚类结果 < 5 个 → 不单独建条
|
|
424
|
+
5. **散落情节归档**:仍无法归类的写入 `散落情节.md`,按章节排列,标注原因
|
|
425
|
+
- 不丢弃任何情节点,不要强行分配到不相关的剧情
|
|
426
|
+
- 在拆文报告中统计散落情节点数量和占比
|
|
427
|
+
6. **覆盖率验证**:
|
|
428
|
+
- 覆盖率 = (总数 - 散落数) / 总数 × 100%
|
|
429
|
+
- 目标:85%-95%
|
|
430
|
+
- < 85% → 回到步骤 3,降低置信度阈值重试
|
|
431
|
+
- > 95% → 检查是否有过度归并,复核边界剧情单元
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## Claude Code 执行指引
|
|
436
|
+
|
|
437
|
+
### 分块策略
|
|
438
|
+
|
|
439
|
+
Stage 2 使用 chapter-extractor agent 并行处理(每章一个 agent,每批 5-8 个),不分块。
|
|
440
|
+
其他阶段(0、1、3、4、5)的分块策略如下。
|
|
441
|
+
|
|
442
|
+
> **先分清两个互不相干的轴**,本节此前把它们混在一个「块」字里,导致 >500 章出现「50-200 章/块」与「6-8K token/块」两套差 30-100 倍的规格:
|
|
443
|
+
> - **语义分块**=*在哪里切*。按叙事弧切,产出「块元数据」用于组织分析结果,块可以很大(一个 914 章的书通常 5-10 个弧)。它不决定一次读多少。
|
|
444
|
+
> - **处理批次**=*一次读多少*。受上下文容量约束,由摘要体积反推章数。下面表格的「块大小」列指的是**处理批次**。
|
|
445
|
+
|
|
446
|
+
| 规模 | 策略 | 块大小 |
|
|
447
|
+
|------|------|--------|
|
|
448
|
+
| <50 章 | 按阶段整体处理 | 无需分块 |
|
|
449
|
+
| 50-100 章 | 按阶段整体处理 | 无需分块(可选智能分块) |
|
|
450
|
+
| 100-500 章 | 按章节分块 | 5-8 章/块 |
|
|
451
|
+
| >500 章 | **子代理并行批次**(见下「处理批次」);语义分块只用于组织输出,不作为读取单位 | 10-20 章/批 |
|
|
452
|
+
|
|
453
|
+
### 智能分块(>500 章)
|
|
454
|
+
|
|
455
|
+
对于大型小说,基于章节摘要识别自然分界,而非固定切分:
|
|
456
|
+
|
|
457
|
+
**分块原则(四大铁律)**:
|
|
458
|
+
1. **语义连贯**:每块是一个相对独立的内容单元(大故事阶段或主要事件线)
|
|
459
|
+
2. **自然分界**:在内容转折点、场景切换、时间跨越处切分,不在紧密剧情中间切
|
|
460
|
+
3. **大小适中**:每个语义块 50-200 章,语义完整性优先于大小均匀(这是叙事弧尺度,**不是**一次读进上下文的量——读取按下面「处理批次」切)
|
|
461
|
+
4. **避免割裂**:不在紧密剧情中间切分
|
|
462
|
+
|
|
463
|
+
**题材特化分块参考**:
|
|
464
|
+
|
|
465
|
+
| 题材 | 分块依据 | 示例 |
|
|
466
|
+
|------|---------|------|
|
|
467
|
+
| 修仙/升级 | 境界突破、地图切换 | 炼气期→筑基期→金丹期 |
|
|
468
|
+
| 都市 | 事件线、身份转变 | 学生→创业→商业帝国 |
|
|
469
|
+
| 历史 | 历史阶段、战役 | 起兵→统一北方→南征 |
|
|
470
|
+
| 玄幻 | 世界地图、势力变化 | 东域→中州→上界 |
|
|
471
|
+
| 有卷/部/篇 | 优先按原结构 | 按作者划分的卷/部 |
|
|
472
|
+
|
|
473
|
+
**无明显结构**时按固定章节数均匀切分。**硬约束**:所有章节必须被覆盖,块之间不能重叠(每章只属于一个块)。**语义块数量上限**:最多 10 块(超出时扩大块大小,保持语义完整性)。该上限只约束叙事弧划分,不限制处理批次数量——914 章按 15 章/批约 61 批是正常的。
|
|
474
|
+
|
|
475
|
+
每块输出元数据:`块标题 | 起止章节 | 核心主题(2-5个) | 关键事件(2-5个) | 主角阶段`。
|
|
476
|
+
|
|
477
|
+
输出长度限制见 SKILL.md(Stage 2 agent 模式按密度公式输出,Stage 3-5 单阶段 ≤8000 中文字符)。每批完成后更新 _progress.md。
|
|
478
|
+
|
|
479
|
+
### 处理批次(一次读多少)
|
|
480
|
+
|
|
481
|
+
Stage 3-5 的语料是 `章节/*_摘要.md`。**实测体积:中文章节摘要约 15KB/章 ≈ 5-7K tokens/章**(据大奉打更人 57 章样本,869,663 字节 / 57 ≈ 15,257 字节)。按这个体积,「把全书摘要一次读进主线程」在 >500 章时必然超上下文——所以大书不是"把块调大",而是**换成子代理并行 + 降维聚合**。
|
|
482
|
+
|
|
483
|
+
**A. 子代理并行模式(>500 章默认,Stage 3-5 通用)**
|
|
484
|
+
|
|
485
|
+
1. **切批**:按章号顺序切成 10-20 章/批(≈5-15 万 tokens/批,落在子代理单次上下文内)。单章摘要明显更长时,按「一批不超过约 15 万 tokens」反推章数。批次边界尽量对齐语义块边界,对不齐时以章号连续为准。
|
|
486
|
+
2. **并行分派**:每批 spawn 一个子代理(`general-purpose` 或本阶段对应的专业 agent),把该批摘要文件路径交给它,**由子代理在自己的上下文里读原文**,主线程不读。
|
|
487
|
+
3. **降维回传**:子代理只回传该批的中间聚合,**每份 ≤8K tokens**,字段随阶段而定(剧情线候选 / 情节点归属 / 关键信息推进 / 情绪节奏 / 角色表)。禁止回传原始摘要或逐章罗列。
|
|
488
|
+
4. **主线程合并**:主线程只消费这些聚合结果做跨批合成。若批数过多、聚合总量仍超上下文,再做一层**两两/分组合并**(把 N 份聚合先并成 √N 份),直到能一次装下。
|
|
489
|
+
5. **进度**:每批完成后更新 `_progress.md`,记录批次号、覆盖章节区间、聚合产出路径。中断可按批续跑。
|
|
490
|
+
|
|
491
|
+
> 覆盖示例:914 章按 15 章/批 ≈ 61 批;主线程全程只处理 61 份 ≤8K tokens 的聚合,不触碰原始语料。
|
|
492
|
+
|
|
493
|
+
**B. 主线程串行模式(agent 不可用时的降级)**
|
|
494
|
+
|
|
495
|
+
无法 spawn 子代理时退回主线程顺序处理:**输入 6-8K token/块、章节边界对齐**,逐块读取并滚动累积中间结论(每块处理完只保留结论、丢弃原文)。这是「6-8K token/块」这条规格的**唯一适用场景**——它描述的是主线程单次读取量,不是大书的语义块尺度。串行模式对 >500 章耗时很长,但结论质量与并行模式一致。
|
|
496
|
+
|
|
497
|
+
**C. 不要做的事**
|
|
498
|
+
|
|
499
|
+
- 不要为了"塞进上下文"而把 50-200 章的语义块整块读进主线程——那是 25-150 万 tokens,必然失败。
|
|
500
|
+
- 不要把 6-8K token 当成大书的切批单位——914 章会切出 4000+ 批,聚合层数爆炸。
|
|
501
|
+
- 主线程在并行模式下不读 `章节/*_摘要.md` 原文;一旦开始逐章读,预算模型就失效了。
|
|
502
|
+
|
|
503
|
+
### 跨块合并(大型小说 >500 章)
|
|
504
|
+
|
|
505
|
+
分块处理后,相邻块的边界剧情可能被机械切分割裂。Stage 3 聚合时执行跨块合并检查:
|
|
506
|
+
|
|
507
|
+
**合并判断标准**(必须同时满足):
|
|
508
|
+
1. ✓ 同一核心事件/目标:讲述的是同一个核心事件(不是两个独立事件)
|
|
509
|
+
2. ✓ 主要人物相同:涉及的主要人物相同
|
|
510
|
+
3. ✓ 剧情发展连续:剧情 B 是剧情 A 的自然延续
|
|
511
|
+
4. ✓ 非因果独立事件:不是因果关系的两个独立事件
|
|
512
|
+
|
|
513
|
+
**应该合并**:
|
|
514
|
+
- "竞选县长秘书(准备阶段)" + "竞选县长秘书(投票阶段)" → 同一事件被分块割裂
|
|
515
|
+
- "修炼突破(前期)" + "修炼突破(后期)" → 同一突破过程
|
|
516
|
+
|
|
517
|
+
**不应合并**:
|
|
518
|
+
- "在办公室立足" + "竞选县长秘书" → 两个独立目标
|
|
519
|
+
- "炼气期修炼" + "筑基期修炼" → 不同阶段的独立剧情
|
|
520
|
+
- "东域修炼" + "中州历练" → 不同地图的独立剧情
|
|
521
|
+
|
|
522
|
+
**保守原则**:当不确定时,倾向于不合并(保持独立)。
|
|
523
|
+
|
|
524
|
+
**边界检测原则**:只检查相邻块中接近块边界的剧情对,远离边界的剧情不参与跨块合并。
|
|
525
|
+
|
|
526
|
+
### 跨会话恢复
|
|
527
|
+
|
|
528
|
+
- 进度通过 _progress.md 追踪
|
|
529
|
+
- 新会话读 _progress.md 定位断点
|
|
530
|
+
- 从断点所在块的起始章节重新开始(覆盖该块已有输出)
|