@oh-story/dsh 0.1.10 → 0.1.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/lib/client.js +7 -3
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +212 -142
- package/lib/drama/skills/short-drama/SKILL.md +14 -2
- package/lib/drama/skills/short-drama/assets/project-template/short-drama.json +3 -0
- package/lib/drama/skills/short-drama/references/creator-documents.md +3 -0
- package/lib/drama/skills/short-drama/references/knowhow-index.md +15 -0
- package/lib/drama/skills/short-drama/scripts/project_tool.py +131 -0
- package/lib/drama/skills/short-drama-assets/SKILL.md +2 -1
- package/lib/drama/skills/short-drama-assets/references/asset-review-checklist.md +2 -0
- package/lib/drama/skills/short-drama-assets/references/era-anchors.md +37 -0
- package/lib/drama/skills/short-drama-assets/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-develop/SKILL.md +10 -4
- package/lib/drama/skills/short-drama-develop/assets/adaptation-map.example.jsonl +1 -1
- package/lib/drama/skills/short-drama-develop/assets/creative-brief.md +8 -0
- package/lib/drama/skills/short-drama-develop/references/adaptation-craft.md +80 -13
- package/lib/drama/skills/short-drama-develop/references/episode-design.md +95 -12
- package/lib/drama/skills/short-drama-develop/references/genre-and-hook-playbook.md +9 -5
- package/lib/drama/skills/short-drama-develop/references/genre-cards//345/244/215/344/273/207/346/211/223/350/204/270.md +1 -1
- package/lib/drama/skills/short-drama-develop/references/genre-cards//347/263/273/347/273/237/346/265/201.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/200/206/350/242/255.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards//351/207/215/347/224/237/347/251/277/350/266/212.md +51 -0
- package/lib/drama/skills/short-drama-develop/references/genre-cards.md +10 -7
- package/lib/drama/skills/short-drama-develop/references/premise-devices.md +15 -9
- package/lib/drama/skills/short-drama-develop/references/serial-character-and-memory.md +3 -2
- package/lib/drama/skills/short-drama-develop/references/stage-contract.md +14 -7
- package/lib/drama/skills/short-drama-develop/references/story-craft.md +7 -3
- package/lib/drama/skills/short-drama-edit/SKILL.md +43 -20
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +49 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +4 -2
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Overlay.tsx +31 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +5 -5
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +68 -69
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +39 -29
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/rules.mjs +188 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +26 -13
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/Card.tsx +72 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/CornerChip.tsx +39 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/ScreenText.tsx +36 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/SystemPanel.tsx +44 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/TaskPanel.tsx +100 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/chrome.tsx +197 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/screen/tokens.ts +62 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +1 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +4 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +3 -1
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +6 -2
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +12 -6
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +13 -8
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1153 -121
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +49 -9
- package/lib/drama/skills/short-drama-novel-analyze/SKILL.md +3 -3
- package/lib/drama/skills/short-drama-novel-analyze/assets/episode-candidate.example.jsonl +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-triage.md +8 -4
- package/lib/drama/skills/short-drama-novel-analyze/references/adaptation-value.md +10 -3
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +25 -1
- package/lib/drama/skills/short-drama-novel-analyze/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -2
- package/lib/drama/skills/short-drama-review/references/review-method.md +6 -1
- package/lib/drama/skills/short-drama-review/references/rubric-assets-prompts.md +11 -0
- package/lib/drama/skills/short-drama-review/references/rubric-story-script.md +77 -3
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +15 -0
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +13 -5
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/production-shot-grammar.md +2 -2
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +82 -14
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +5 -3
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +12 -0
- package/lib/drama/skills/short-drama-video-prompts/references/delivery-profile.md +4 -5
- package/lib/drama/skills/short-drama-video-prompts/references/generability.md +4 -2
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +40 -1
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +20 -14
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +8 -7
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -0
- package/lib/drama/skills/short-drama-video-prompts/references/target-model-profile.md +8 -1
- package/lib/drama/skills/short-drama-video-prompts/references/wan-3.0.md +103 -0
- package/lib/drama/skills/short-drama-video-prompts/scripts/motion_timing_check.py +8 -7
- package/lib/drama/skills/short-drama-write/SKILL.md +8 -3
- package/lib/drama/skills/short-drama-write/references/dialogue-craft.md +1 -1
- package/lib/drama/skills/short-drama-write/references/script-craft.md +56 -3
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +4 -0
- package/lib/drama/skills/short-drama-write/scripts/duration_estimate.py +48 -2
- package/lib/index.js +71 -21
- package/lib/index.js.map +3 -3
- package/lib/oh-story/manifest.json +545 -310
- package/lib/oh-story/roles/chapter-extractor.md +11 -11
- package/lib/oh-story/roles/character-designer.md +1 -2
- package/lib/oh-story/roles/consistency-checker.md +11 -9
- package/lib/oh-story/roles/narrative-writer.md +24 -25
- package/lib/oh-story/roles/story-architect.md +9 -61
- package/lib/oh-story/roles/story-explorer.md +20 -125
- package/lib/oh-story/roles/story-researcher.md +0 -1
- package/lib/oh-story/skills/story/SKILL.md +6 -6
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-deslop/SKILL.md +24 -25
- package/lib/oh-story/skills/story-deslop/references/agent-calls.md +5 -0
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-deslop/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +21 -4
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-import/SKILL.md +63 -579
- package/lib/oh-story/skills/story-import/references/deep-analysis.md +47 -0
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-import/references/import-report.md +64 -0
- package/lib/oh-story/skills/story-import/references/import-special-cases.md +34 -0
- package/lib/oh-story/skills/story-import/references/import-tracking.md +95 -0
- package/lib/oh-story/skills/story-import/references/length-routing.md +1 -1
- package/lib/oh-story/skills/story-import/references/outline-reverse-rules.md +79 -0
- package/lib/oh-story/skills/story-import/references/outline-reverse.md +24 -0
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +95 -91
- package/lib/oh-story/skills/story-import/references/structure-mapping-short.md +24 -12
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-import/scripts/build_outline_brief.py +332 -0
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +101 -14
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +28 -50
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +12 -5
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +1 -1
- package/lib/oh-story/skills/story-long-analyze/references/final-checks.md +19 -0
- package/lib/oh-story/skills/story-long-analyze/references/index-rebuild.md +11 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +21 -55
- package/lib/oh-story/skills/story-long-analyze/references/stage1-golden-chapters.md +128 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage2-extraction.md +229 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage3-plot-rhythm.md +480 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage4-characters-settings.md +195 -0
- package/lib/oh-story/skills/story-long-analyze/references/stage5-report.md +33 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +17 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +1 -1
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +47 -8
- package/lib/oh-story/skills/story-long-scan/SKILL.md +41 -193
- package/lib/oh-story/skills/story-long-scan/references/platform-ciweimao.md +19 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-fanqie.md +45 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-jjwxc.md +28 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qidian.md +35 -0
- package/lib/oh-story/skills/story-long-scan/references/platform-qimao.md +27 -0
- package/lib/oh-story/skills/story-long-scan/references/topic-decision.md +6 -2
- package/lib/oh-story/skills/story-long-write/SKILL.md +32 -73
- package/lib/oh-story/skills/story-long-write/references/agent-calls.md +47 -0
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +18 -201
- package/lib/oh-story/skills/story-long-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +6 -10
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-long-write/references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-long-write/references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +3 -2
- package/lib/oh-story/skills/story-long-write/references/long-format.md +0 -8
- package/lib/oh-story/skills/story-long-write/references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-long-write/references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +14 -69
- package/lib/oh-story/skills/story-long-write/references/plot-frameworks.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/plot-special-topics.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/project-files.md +10 -6
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/stop-and-fix.md +9 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-long-write/references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +33 -44
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +18 -51
- package/lib/oh-story/skills/story-long-write/references/workflow-outline.md +157 -0
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +53 -67
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -251
- package/lib/oh-story/skills/story-long-write/references/workflow-volume.md +142 -0
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +5 -3
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +18 -56
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-long-write/scripts/build_architect_brief.py +260 -0
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +96 -16
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +101 -14
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +7 -2
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +2 -1
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +250 -50
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-review/SKILL.md +19 -273
- package/lib/oh-story/skills/story-review/references/agent-prompts.md +184 -0
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-review/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-review/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-review/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-review/references/batch-review.md +19 -0
- package/lib/oh-story/skills/story-review/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-review/references/review-quality.md +2 -1
- package/lib/oh-story/skills/story-review/references/review-tracking.md +10 -0
- package/lib/oh-story/skills/story-review/references/solo.md +52 -0
- package/lib/oh-story/skills/story-review/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +1 -1
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +11 -9
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-review/scripts/tracking_commit.py +278 -23
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +179 -23
- package/lib/oh-story/skills/story-setup/SKILL.md +69 -458
- package/lib/oh-story/skills/story-setup/references/agent-references/agent-quality.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/benchmark-style-load.md +107 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +21 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/emotion-on-page.md +116 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/emotional-arc-design.md +1 -114
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/genre-prose-cards.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-catalog.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/long-genre-mechanics.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +7 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/opening-design.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-conflict.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-methods.md +7 -7
- package/lib/oh-story/skills/story-setup/references/agent-references/outline-rhythm.md +3 -3
- package/lib/oh-story/skills/story-setup/references/agent-references/short-emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +0 -15
- package/lib/oh-story/skills/story-setup/references/agent-references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -58
- package/lib/oh-story/skills/story-setup/references/agent-references/style-genre-modules.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +18 -56
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +3 -3
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +37 -110
- package/lib/oh-story/skills/story-short-analyze/references/analysis-character-relations.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/analysis-method.md +42 -0
- package/lib/oh-story/skills/story-short-analyze/references/optional-modules.md +97 -0
- package/lib/oh-story/skills/story-short-analyze/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-analyze/references/quality-checklist.md +80 -0
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/references/stage2-3-structure-emotion.md +308 -0
- package/lib/oh-story/skills/story-short-analyze/references/{material-decomposition.md → stage4-6-reversal-summary.md} +303 -374
- package/lib/oh-story/skills/story-short-scan/SKILL.md +30 -64
- package/lib/oh-story/skills/story-short-scan/references/manual-rank-input.md +36 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-dianzhong.md +24 -0
- package/lib/oh-story/skills/story-short-scan/references/platform-heiyan.md +21 -0
- package/lib/oh-story/skills/story-short-scan/references/topic-match.md +38 -0
- package/lib/oh-story/skills/story-short-write/SKILL.md +23 -34
- package/lib/oh-story/skills/story-short-write/references/agent-calls.md +13 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory-maintenance.md +75 -0
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +40 -118
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +1 -21
- package/lib/oh-story/skills/story-short-write/references/emotional-methods.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +0 -15
- package/lib/oh-story/skills/story-short-write/references/output-contract.md +9 -47
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +17 -49
- package/lib/oh-story/skills/story-short-write/references/scene-craft.md +40 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +7 -43
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -1
- package/lib/oh-story/skills/story-short-write/references/short-reversal.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/submission-craft.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/villain-and-reveal.md +5 -10
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +19 -12
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +22 -32
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +84 -17
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +7 -119
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +3 -3
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +7 -2
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +2 -2
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/types/video-project.d.ts.map +1 -1
- package/lib/types/workspace-route.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +60 -1
- package/lib/video-recap/README.en.md +348 -137
- package/lib/video-recap/README.md +340 -136
- package/lib/video-recap/manifest.json +406 -251
- package/lib/video-recap/skills/video-assemble/SKILL.md +30 -15
- package/lib/video-recap/skills/video-assemble/references/audio-modes.md +63 -0
- package/lib/video-recap/skills/video-assemble/references/explicit-audio-mix.md +75 -0
- package/lib/video-recap/skills/video-assemble/references/foreground-compose.md +118 -0
- package/lib/video-recap/skills/video-assemble/references/narration-adoption.md +103 -0
- package/lib/video-recap/skills/video-assemble/references/packaging.md +45 -0
- package/lib/video-recap/skills/video-assemble/references/pair-media.md +74 -0
- package/lib/video-recap/skills/video-assemble/references/source-score.md +147 -0
- package/lib/video-recap/skills/video-assemble/references/subtitle-track.md +202 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/audio_mix_binding.py +279 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/frozen_audio.py +187 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/narration_binding.py +323 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_inputs.py +109 -0
- package/lib/video-recap/skills/video-assemble/scripts/adoption/strict_publish.py +130 -0
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +10 -46
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +378 -119
- package/lib/video-recap/skills/video-assemble/scripts/assemble_constants.py +29 -12
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +95 -44
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +75 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +11 -11
- package/lib/video-recap/skills/video-assemble/scripts/compose_foreground.py +293 -0
- package/lib/video-recap/skills/video-assemble/scripts/export_jianying.py +71 -78
- package/lib/video-recap/skills/video-assemble/scripts/jianying/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_builders.py → jianying/builders.py} +39 -67
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_model.py → jianying/model.py} +3 -11
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_optional.py → jianying/optional.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/jianying/schema.py +53 -0
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_templates.py → jianying/templates.py} +1 -1
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_timeline_contract.py → jianying/timeline_contract.py} +34 -13
- package/lib/video-recap/skills/video-assemble/scripts/{jianying_writer.py → jianying/writer.py} +7 -17
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +37 -4
- package/lib/video-recap/skills/video-assemble/scripts/media.py +12 -21
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +64 -34
- package/lib/video-recap/skills/video-assemble/scripts/packaging.py +122 -0
- package/lib/video-recap/skills/video-assemble/scripts/pair_media.py +216 -0
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +1 -3
- package/lib/video-recap/skills/video-assemble/scripts/source_score.py +469 -0
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +25 -9
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/__init__.py +1 -0
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_core.py → subtitles/core.py} +13 -6
- package/lib/video-recap/skills/video-assemble/scripts/{subtitle_render.py → subtitles/render.py} +5 -4
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track.py +324 -0
- package/lib/video-recap/skills/video-assemble/scripts/subtitles/track_binding.py +200 -0
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +30 -46
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +91 -7
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +22 -8
- package/lib/video-recap/skills/video-cut/SKILL.md +34 -16
- package/lib/video-recap/skills/video-cut/references/shot-review.md +50 -0
- package/lib/video-recap/skills/video-cut/scripts/cut.py +2 -28
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +58 -62
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +21 -106
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +14 -9
- package/lib/video-recap/skills/video-cut/scripts/lib.py +39 -0
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +2 -155
- package/lib/video-recap/skills/video-cut/scripts/narrative_selection.py +244 -0
- package/lib/video-recap/skills/video-cut/scripts/shot_review.py +357 -0
- package/lib/video-recap/skills/video-recap/SKILL.md +86 -42
- package/lib/video-recap/skills/video-recap/references/audio-routing.md +126 -0
- package/lib/video-recap/skills/video-recap/references/config-playbook.md +12 -8
- package/lib/video-recap/skills/video-recap/references/data-schema.md +44 -33
- package/lib/video-recap/skills/video-recap/references/resource-library.md +151 -0
- package/lib/video-recap/skills/video-recap/references/shift-left-qc-schema.md +1 -1
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +123 -30
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +22 -75
- package/lib/video-recap/skills/video-recap/scripts/lib.py +3 -3
- package/lib/video-recap/skills/video-recap/scripts/library.py +509 -0
- package/lib/video-recap/skills/video-recap/scripts/materials.py +63 -91
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc.py +8 -70
- package/lib/video-recap/skills/video-recap/scripts/project_binding.py +286 -0
- package/lib/video-recap/skills/video-recap/scripts/qc/__init__.py +1 -0
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_client.py → qc/mimo_client.py} +1 -1
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_evidence.py → qc/mimo_evidence.py} +33 -66
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_observations.py → qc/mimo_observations.py} +3 -11
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_payload.py → qc/mimo_payload.py} +4 -7
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_report.py → qc/mimo_report.py} +17 -28
- package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_runner.py → qc/mimo_runner.py} +2 -2
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +0 -19
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +119 -50
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +32 -114
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +9 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +387 -334
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +23 -23
- package/lib/video-recap/skills/video-recap/scripts/recap_source.py +278 -0
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +25 -12
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +59 -52
- package/lib/video-recap/skills/video-recap/scripts/resource_lock.py +162 -0
- package/lib/video-recap/skills/video-script/SKILL.md +16 -13
- package/lib/video-recap/skills/video-script/references/creative-editing-playbook.md +9 -5
- package/lib/video-recap/skills/video-script/references/promotional-copy.md +68 -0
- package/lib/video-recap/skills/video-script/references/research-guide.md +1 -1
- package/lib/video-recap/skills/video-script/scripts/evidence_bundle.py +24 -76
- package/lib/video-recap/skills/video-script/scripts/lib.py +10 -87
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-script/scripts/review.py +0 -2
- package/lib/video-recap/skills/video-script/scripts/review_grounding.py +35 -59
- package/lib/video-recap/skills/video-script/scripts/review_response.py +66 -128
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +12 -20
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-script/scripts/validate.py +53 -42
- package/lib/video-recap/skills/video-understanding/SKILL.md +6 -4
- package/lib/video-recap/skills/video-understanding/references/data-schema.md +50 -156
- package/lib/video-recap/skills/video-understanding/references/research-guide.md +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +85 -65
- package/lib/video-recap/skills/video-understanding/scripts/asr_timing_evidence.py +270 -0
- package/lib/video-recap/skills/video-understanding/scripts/brief.py +2 -5
- package/lib/video-recap/skills/video-understanding/scripts/briefing/__init__.py +1 -0
- package/lib/video-recap/skills/video-understanding/scripts/{agent_brief.py → briefing/builder.py} +38 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_context.py → video-understanding/scripts/briefing/context.py} +4 -35
- package/lib/video-recap/skills/{video-script/scripts/brief_inputs.py → video-understanding/scripts/briefing/inputs.py} +9 -31
- package/lib/video-recap/skills/video-understanding/scripts/{brief_timeline.py → briefing/timeline.py} +5 -6
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +65 -116
- package/lib/video-recap/skills/video-understanding/scripts/detect.py +31 -40
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +30 -86
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +63 -39
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +4 -4
- package/lib/video-recap/skills/video-understanding/scripts/storyboard.py +17 -79
- package/lib/video-recap/skills/video-understanding/scripts/understanding_brief.py +14 -40
- package/lib/video-recap/skills/video-understanding/scripts/understanding_cache.py +64 -46
- package/lib/video-recap/skills/video-understanding/scripts/understanding_runner.py +31 -11
- package/lib/video-recap/skills/video-understanding/scripts/understanding_storyboard.py +19 -14
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +80 -108
- package/lib/video-recap/skills/video-voiceover/SKILL.md +29 -19
- package/lib/video-recap/skills/video-voiceover/references/index-tts.md +31 -0
- package/lib/video-recap/skills/video-voiceover/scripts/approved_text_policy.py +123 -0
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +51 -59
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +8 -44
- package/lib/video-recap/skills/video-voiceover/scripts/providers/__init__.py +1 -0
- package/lib/video-recap/skills/video-voiceover/scripts/providers/index_tts.py +184 -0
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +212 -134
- package/package.json +1 -1
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -538
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -603
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
- package/lib/oh-story/skills/story-short-analyze/references/output-templates.md +0 -561
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +0 -98
- package/lib/video-recap/skills/video-recap/references/creative-editing-playbook.md +0 -225
- package/lib/video-recap/skills/video-recap/references/research-guide.md +0 -74
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +0 -250
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +0 -399
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +0 -327
- package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +0 -348
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
- /package/lib/video-recap/skills/video-assemble/scripts/{jianying_tracks.py → jianying/tracks.py} +0 -0
- /package/lib/video-recap/skills/video-recap/scripts/{mimo_qc_contract.py → qc/mimo_contract.py} +0 -0
- /package/lib/video-recap/skills/video-voiceover/scripts/{fish_audio.py → providers/fish_audio.py} +0 -0
|
@@ -1,603 +0,0 @@
|
|
|
1
|
-
# 拆文输出模板
|
|
2
|
-
按需加载,配合 SKILL.md 和 material-decomposition.md 使用。
|
|
3
|
-
|
|
4
|
-
本文件按 story-long-analyze 唯一管道的阶段编号组织:Stage 0-5 各阶段输出模板 + 跨阶段通用速查。作者直接阅读的 `快速预览.md`、`拆文报告.md` 和对话回复模板见 [author-facing.md](author-facing.md)。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 通用速查
|
|
9
|
-
|
|
10
|
-
### 爽点类型
|
|
11
|
-
|
|
12
|
-
| 类型 | 定义 | 例子 |
|
|
13
|
-
|------|------|------|
|
|
14
|
-
| 装逼打脸 | 实力碾压被轻视的人 | 「你也配?」 |
|
|
15
|
-
| 逆袭反转 | 绝境翻盘 | 废材觉醒 |
|
|
16
|
-
| 获得机缘 | 得到别人没有的 | 捡到神器 |
|
|
17
|
-
| 信息差碾压 | 读者和主角知道别人不知道的 | 重生先知优势 |
|
|
18
|
-
| 情感满足 | 人物关系发展 | 告白/团聚/认可 |
|
|
19
|
-
| 扮猪吃虎 | 隐藏实力突然展露 | 弱者实则是强者 |
|
|
20
|
-
|
|
21
|
-
### 钩子类型
|
|
22
|
-
|
|
23
|
-
| 类型 | 定义 | 示例 |
|
|
24
|
-
|------|------|------|
|
|
25
|
-
| 悬念钩 | 未解之谜 | 「剑为什么认他为主?」 |
|
|
26
|
-
| 冲突钩 | 直接对抗 | 开篇追杀 |
|
|
27
|
-
| 反差钩 | 违反常识 | 「穿越第一天就破产」 |
|
|
28
|
-
| 代入钩 | 读者共鸣 | 相似困境 |
|
|
29
|
-
| 信息差钩 | 读者知道角色不知道的 | 「他还不知道面前是……」 |
|
|
30
|
-
|
|
31
|
-
### 爽点循环结构
|
|
32
|
-
|
|
33
|
-
三层微观循环:
|
|
34
|
-
- **铺垫层(蓄势)**:压抑/困境/信息差制造情绪缺口
|
|
35
|
-
- **释放层(爽感)**:展露实力/打脸/碾压,强度由反应层数和篇幅决定
|
|
36
|
-
- **衔接层(承转)**:旧循环结束埋新钩子
|
|
37
|
-
|
|
38
|
-
反应层递进:质疑/轻视 → 震惊/打脸 → 强者重新评价 → 扩散效应
|
|
39
|
-
反应篇幅比 = 反应总字数 / 装逼字数。低于1.5 = 爽感没接住。
|
|
40
|
-
|
|
41
|
-
### 衔接过渡模式
|
|
42
|
-
|
|
43
|
-
| 模式 | 机制 | 示例 |
|
|
44
|
-
|------|------|------|
|
|
45
|
-
| 打完小的来大的 | 释放层对手引出更强对手 | 打败弟子→师父找上门 |
|
|
46
|
-
| 胜利发现隐患 | 释放成功暴露新问题 | 赢了比赛→发现中毒 |
|
|
47
|
-
| 身份暴露/反转 | 释放中身份被识破 | 打脸后被认出真实身份 |
|
|
48
|
-
| 利益升级 | 成果指向更大目标 | 线索→更深层宝藏 |
|
|
49
|
-
| 关系突变 | 释放改变关系格局 | 救的人变仇家后代 |
|
|
50
|
-
|
|
51
|
-
### 题材爽点形态
|
|
52
|
-
|
|
53
|
-
| 题材 | 释放层形态 | 反应层来源 | 铺垫层缺口 |
|
|
54
|
-
|------|-----------|-----------|-----------|
|
|
55
|
-
| 玄幻/修仙 | 实力碾压/境界突破 | 同门/对手/长老震惊 | 功法残缺/资源匮乏/血脉压制 |
|
|
56
|
-
| 都市 | 预测准确/身份揭露 | 商业对手/前女友/权贵 | 破产/被辞/被退婚 |
|
|
57
|
-
| 系统文 | 解锁稀有技能/任务奖励 | 系统稀有度标注 | 任务失败惩罚/技能冷却 |
|
|
58
|
-
| 历史 | 以弱胜强/先知优势 | 谋士/帝王/敌将震惊 | 信息不对称/身份低微 |
|
|
59
|
-
| 悬疑 | 真相揭露/反杀 | 被揭穿者崩溃/读者恍然 | 线索误导/嫌疑人洗白 |
|
|
60
|
-
|
|
61
|
-
---
|
|
62
|
-
|
|
63
|
-
## 快速预览报告
|
|
64
|
-
|
|
65
|
-
Stage 1 停靠点交付物 `拆文库/{书名}/快速预览.md`,模板见 [author-facing.md](author-facing.md)「快速预览.md」。字段只取 Stage 0/1 已产出数据(概要.md + 黄金三章深度拆解),不引入需 Stage 2-6 才能算出的内容;「基本信息」「黄金三章评分」两节与终态 `拆文报告.md` 同名同结构。终态生成后不删除 `快速预览.md`。
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## Stage 0 概要(thin first-pass)
|
|
70
|
-
|
|
71
|
-
> **范围说明**:Stage 0 只能基于章节标题 + 卷段结构 + 抽样开头/结尾产出 thin first-pass(~200 字)。**禁止**在此阶段写出 500-1000 字 plot-aware 概要——读取范围不足以支撑那个密度。完整版在 Stage 5 落盘覆盖(见本文件「Stage 5 汇总报告」节)。
|
|
72
|
-
|
|
73
|
-
输出 `概要.md`:总字数{X}万 | 总章数{N} | 题材{类型}
|
|
74
|
-
|
|
75
|
-
| 卷/段 | 章节范围 | 章数 | 预估字数 |
|
|
76
|
-
|-------|----------|------|----------|
|
|
77
|
-
| {卷名} | 第1-X章 | {N} | {W}万 |
|
|
78
|
-
|
|
79
|
-
首版概要(~200字,thin first-pass):{从章节标题 + 第1章+末章抽样归纳出的核心驱动 + 主角名 + 大致设定,不要硬凑剧情转折}
|
|
80
|
-
章节索引:| 章节 | 标题 | 字数 |
|
|
81
|
-
|
|
82
|
-
> Stage 5 完成后会就地覆盖此文件的「首版概要」段为「全书概要(500-1000字 plot-aware)」。章节索引和卷段表保留不变。
|
|
83
|
-
|
|
84
|
-
## Stage 1 黄金三章
|
|
85
|
-
|
|
86
|
-
黄金三章拆为三个单章文件,每章一个:`章节/第1章_深度拆解.md`、`章节/第2章_深度拆解.md`、`章节/第3章_深度拆解.md`。每个文件按以下模板输出。
|
|
87
|
-
|
|
88
|
-
字数约{X}字 | 核心事件:{一句话}
|
|
89
|
-
|
|
90
|
-
**开篇钩子**(第1章看前500字):类型{悬念/冲突/反差/信息差/代入感} | 手法{描述} | 效果{强/中/弱}—{原因}
|
|
91
|
-
|
|
92
|
-
**人物出场**:{列表} | 主角塑造{直接描写/对话/行为/他人评价} | 第一印象{描述}
|
|
93
|
-
|
|
94
|
-
**世界观铺设**:透露{信息} | 隐藏{信息} | 方式{对话/旁白/事件}
|
|
95
|
-
|
|
96
|
-
**结构拆解**:| 段落范围 | 功能{铺垫/冲突/爽点/收尾} | 字数 |
|
|
97
|
-
|
|
98
|
-
**爽点分析**:类型{装逼打脸/逆袭反转/获得机缘/信息差碾压/情感满足} | 铺垫{X}字 / 释放{Y}字 / 铺放比{Z:1} | 情绪曲线
|
|
99
|
-
|
|
100
|
-
**反应层拆解**(如有):
|
|
101
|
-
|
|
102
|
-
| 层级 | 角色 | 反应 | 篇幅 |
|
|
103
|
-
|------|------|------|------|
|
|
104
|
-
| 质疑/轻视 | | | |
|
|
105
|
-
| 震惊/打脸 | | | |
|
|
106
|
-
| 强者重评 | | | |
|
|
107
|
-
| 扩散传播 | | | |
|
|
108
|
-
|
|
109
|
-
反应篇幅比{N:1} — 低于1.5 = 爽感不足
|
|
110
|
-
|
|
111
|
-
**释放后追证**(如有):爽点释放后反派真实态度?{行为+原文引用}
|
|
112
|
-
|
|
113
|
-
**冲突升级**(如有):{行为} | 升级层级{口头→经济→暴力} | 对角色画像影响
|
|
114
|
-
|
|
115
|
-
**背景信息揭示**(如有):揭示{什么} | 叙事功能{推翻预设/重新解读/铺垫新线/认知偏差} | 对主线影响
|
|
116
|
-
|
|
117
|
-
**章尾钩子**:类型{悬念/反转/新信息/新角色} | 内容{描述} | 期待度{强/中/弱}
|
|
118
|
-
|
|
119
|
-
**可借鉴要素**:{可复用技巧}
|
|
120
|
-
|
|
121
|
-
> 第二、三章额外关注:信息密度 / 冲突升级(vs上章) / 节奏变化 / 爽点间隔字数。
|
|
122
|
-
> 反派若为非人形(灵气复苏/末世/国运等抽象对抗型),在「爽点分析」处改用抽象对抗型路由:核心对抗面{描述} | 紧迫感来源{描述} | 升级机制{描述} | 叙事替代{用什么替代传统打脸}。
|
|
123
|
-
|
|
124
|
-
同一次黄金三章阅读优先另写 `_style-sample.txt`,减少 Stage 6 的定点取样;旧项目没有该缓存时,Stage 6 仍可按索引选择 4–6 章并只读取对应行段:
|
|
125
|
-
|
|
126
|
-
```text
|
|
127
|
-
<!-- STYLE_SAMPLE:v1 -->
|
|
128
|
-
## 片段 A
|
|
129
|
-
source_locator: 原文/原文.txt:L{起始行}-L{结束行}
|
|
130
|
-
基调: {紧张/压抑/轻松/温馨/热血}
|
|
131
|
-
示范点: {句长节奏/标点/对话潜台词/动作与反应等}
|
|
132
|
-
{300—500字连续原句}
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
共选4—6段,允许同章多段,但范围不得重叠;只保留用于表达分析的最小样本,不建立第二套剧情事实。
|
|
136
|
-
|
|
137
|
-
## Stage 2 章节块与剧情点
|
|
138
|
-
|
|
139
|
-
Stage 2 有两种互斥输入。`raw-original` 只处理运行计划列出的未拆章节块;`existing-results` 只读取旧成果做二次提取。两种结果都形成批次剧情点,只有 `raw-original` 生成新的逐章兼容投影。
|
|
140
|
-
|
|
141
|
-
### 未拆章节的紧凑语义结果
|
|
142
|
-
|
|
143
|
-
`chapter-extractor` 在一次章节块阅读中按章输出以下紧凑字段。它是模型输出,不直接充当旧接口文件:
|
|
144
|
-
|
|
145
|
-
```markdown
|
|
146
|
-
## 第{N}章 {标题}
|
|
147
|
-
|
|
148
|
-
**概要**:{60-160字,按文本披露顺序说明主要行动、原文给出的原因和结果}
|
|
149
|
-
|
|
150
|
-
**因果**:目标:{谁想做什么}|阻碍:{具体阻碍}|行动:{改变局面的选择/行动/外部事件}|结果:{局面变化}|得失:{承担者及得失}
|
|
151
|
-
|
|
152
|
-
**关键行动**:{真正改变局面的一个选择、行动或外部事件}
|
|
153
|
-
|
|
154
|
-
**局面结果**:{行动后的目标、风险、资源或关系净变化}
|
|
155
|
-
|
|
156
|
-
**涉及人物**:{关键人物,顿号分隔;没有写无}
|
|
157
|
-
|
|
158
|
-
**信息变化**:{新披露内容|读者所知|关键角色所知或未知}
|
|
159
|
-
|
|
160
|
-
**状态变化**:{角色/关系/资源/风险的净变化}
|
|
161
|
-
|
|
162
|
-
**三维节奏**:事件{1-5}/5|情绪{类型+1-5}/5|篇幅{1-3}/3|{三轴差异的一句话原因}
|
|
163
|
-
|
|
164
|
-
**章尾钩子**:{类型与具体等待;没有写无}
|
|
165
|
-
|
|
166
|
-
**证据**:{source_locator+5-15字定位词}
|
|
167
|
-
|
|
168
|
-
**情节点**:
|
|
169
|
-
|
|
170
|
-
P{序号} **{标题}**:类型{转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化} | {白描一句话:谁做了什么、结果如何;原文给出的起因一并写进来,不推测动机;埋伏笔的写出伏笔线索} | 涉及{全名,逗号分隔;无人物写无} | 地点{如明确,否则无} | 物品{如涉及,否则无} | 时间{如明确,否则无}
|
|
171
|
-
{可选引用行:≤400字原文连续切片,或 `原文定位:{可 grep 的原句片段}`}
|
|
172
|
-
|
|
173
|
-
主题标签{爱情/亲情/友情/权力/金钱/成长/复仇/悬念/搞笑/热血/日常/其他} | 基调:{紧张/轻松/悲伤/热血/爽/甜/温馨/恐怖/压抑/其他}
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
P{序号+1} ……
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
**情节点**是逐章节拍序列,下游对标挑章、结构关键点定位和导入反推情绪弧线都按它读:
|
|
181
|
-
|
|
182
|
-
- 原文块每章 10–20 个,按字数调节,长章最多 30;旧成果补摘要下限 1 个,按旧资料写到的事件拆,不凑数;编号从 P1 连续。太粗(整段打架)丢细节,太细(举起右手)碎片化,恰当粒度是一个完整戏剧事件。
|
|
183
|
-
- 严格按原文事件时间顺序,不重排、不归纳。标题 ≤15 字,不与白描同句。
|
|
184
|
-
- 白描只写可见事实:不替角色补原文没写的情感、意图,不写“精彩”“气氛紧张”这类评价,不用“通过对话得知”这类叙事框架词;原文明说的起因和内心活动照写。
|
|
185
|
-
- 字段名后不加冒号;`主题标签` 只填一个值;每个情节点紧跟自己的 `主题标签X | 基调:Y` 行,`基调:` 用全角冒号。
|
|
186
|
-
- 引用只给关键转折、关键台词、写法样本,每章至多 8 条,其余情节点不写引用行。
|
|
187
|
-
|
|
188
|
-
### 批次提交格式
|
|
189
|
-
|
|
190
|
-
提交给 `manage_analysis_run.py commit` 的文件按下列标记包裹,子代理与主线程自己写批次都一样;标记缺失或顺序不对整批拒收:
|
|
191
|
-
|
|
192
|
-
```markdown
|
|
193
|
-
<!-- CHAPTER_START:{N} -->
|
|
194
|
-
## 第{N}章 {标题}
|
|
195
|
-
{上面的紧凑字段与情节点}
|
|
196
|
-
<!-- CHAPTER_END:{N} -->
|
|
197
|
-
(本批每章一块,章号连续、各恰好一次)
|
|
198
|
-
|
|
199
|
-
<!-- BATCH_OBSERVATIONS_START -->
|
|
200
|
-
## 跨章观察
|
|
201
|
-
{下方「批次剧情点」的五个小节}
|
|
202
|
-
<!-- BATCH_OBSERVATIONS_END -->
|
|
203
|
-
```
|
|
204
|
-
|
|
205
|
-
- 旧成果批次(`REUSE-*`):计划列出的摘要缺口落在本批时,为本批每章都写章节块(情节点至少 1 个);没有缺口时不写章节块,改在开头写一行 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->`。
|
|
206
|
-
- 跨章观察块恰好一个,放在所有章节块之后。不要输出 `MODEL_OUTPUT_START/END` 或 `story-long-analyze:cache` 标记(脚本自己加)。
|
|
207
|
-
|
|
208
|
-
`manage_analysis_run.py commit` 校验这些字段后,机械生成缺失的 `章节/第{N}章_摘要.md`:情节点逐条投影并把类型、主题、基调映射到枚举,章级字段保留“概要、关键事件、涉及、章尾钩子、证据”标签。原文块每章情节点少于 10 或多于 30 时整批拒收。同一批完整模型结果和跨章观察写进 `_analysis_cache/批次-{范围ID}.md`,作为恢复证据;全局合并用 `manage_analysis_run.py digest` 取其跨章观察,不整批读取。模型不输出章节卡表,也不为兼容文件再次读取原文。
|
|
209
|
-
|
|
210
|
-
### 批次剧情点
|
|
211
|
-
|
|
212
|
-
`raw-original` 与 `existing-results` 都按范围 ID 写完整批次缓存,内容共用下列结构:
|
|
213
|
-
|
|
214
|
-
```markdown
|
|
215
|
-
## 跨章观察
|
|
216
|
-
|
|
217
|
-
### 剧情点
|
|
218
|
-
|
|
219
|
-
| 剧情点ID | 章节范围 | 起始目标 | 阻碍 | 关键选择/行动/外部事件 | 局面变化 | 得失与承担者 | 后续影响 | 状态 | 证据 |
|
|
220
|
-
|---|---|---|---|---|---|---|---|---|---|
|
|
221
|
-
|
|
222
|
-
### 关键事件与披露候选
|
|
223
|
-
|
|
224
|
-
只列可能进入主线或关键转折表的候选:候选ID|章节|客观事件及大致发生顺序|异常→线索→解释→确认的披露路径|读者所知|关键角色所知|判断变化|叙事作用|证据。过渡动作不建条目。
|
|
225
|
-
|
|
226
|
-
### 关系变化
|
|
227
|
-
|
|
228
|
-
| 关系ID | 主体 → 客体 | 关系动作 | 表面/真实状态 | 触发 | 双方得失 | 变化后状态 | 证据强度 | 证据 |
|
|
229
|
-
|---|---|---|---|---|---|---|---|---|
|
|
230
|
-
|
|
231
|
-
### 三维节奏
|
|
232
|
-
|
|
233
|
-
只列峰值、谷值与三轴明显分离处:章节/剧情点|事件推进及理由|情绪类型/强度及触发|篇幅展开度|展开/压缩/省略/反复的作用|证据。普通章的紧凑分数不在这里重复。
|
|
234
|
-
|
|
235
|
-
### 跨批状态
|
|
236
|
-
|
|
237
|
-
- 已确认别名:{别名→本名,含上一批传下来的}
|
|
238
|
-
- 未闭合剧情点:{ID、主体、目标、阻碍、最后证据}
|
|
239
|
-
- 未决悬念:{读者已知和等待确认的内容}
|
|
240
|
-
- 关系状态:{下一批需继承的有向状态}
|
|
241
|
-
- 待核事项:{冲突、C暂定或缺失}
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
剧情点回答“目标 → 阻碍 → 改变局面的行动或外部事件 → 得失 → 后续影响”。它可以跨章和跨读取批次,不能把每个处理批次直接当成剧情点。跨批未闭合时沿用剧情点 ID;Stage 3 再做合并、拆分和边界复核。
|
|
245
|
-
|
|
246
|
-
### 已有成果二次提取
|
|
247
|
-
|
|
248
|
-
`existing-results` 的证据只指向只读计划列出的旧成果文件。完整旧项目增强时用 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->` 声明覆盖,只写批次剧情点及关联观察。计划列出的摘要缺口落在本批时,必须为本批每章从黄金三章生成同一紧凑章块(情节点至少 1 个),否则摘要永远补不上;提交脚本只补缺失文件。旧资料没有的字段写“旧资料未提供”。
|
|
249
|
-
|
|
250
|
-
每个成功批次由 `manage_analysis_run.py commit` 先写完整缓存、再补缺失摘要、最后写 `_progress.md` 状态行。没有逐文件收据、checkpoint 账本或 Stage receipt。
|
|
251
|
-
|
|
252
|
-
**Stage 2 输出自检**:输入模式与 `manage_analysis_run.py plan` 的内存计划一致|原文章节块连续、不重叠且不超过3章/25,000字符|已有成果模式没有读取原文|每章紧凑字段完整|情节点 10–20 个(长章最多 30)、按时序、白描客观|剧情点包含因果与得失|只保留关键事件/披露候选|三维节奏分别解释|跨批状态可继续。
|
|
253
|
-
## Stage 4 角色过滤来源
|
|
254
|
-
|
|
255
|
-
Stage 4 从紧凑章块的 `涉及人物`、`状态变化` 和批次 `关系变化` 汇总角色提及,再应用下表过滤;不依赖已删除的独立“出场人物表”。
|
|
256
|
-
|
|
257
|
-
| 分类 | 标准 | 提取深度 |
|
|
258
|
-
|------|------|----------|
|
|
259
|
-
| 不提取 | 出场1次且无台词(通用路人) | 跳过 |
|
|
260
|
-
| 简化提取 | 出场2-3次且单一功能 | 功能标签+首次章节 |
|
|
261
|
-
| 完整提取 | 出场3次以上/有台词且推动剧情/与主角直接互动 | 完整档案 |
|
|
262
|
-
|
|
263
|
-
别名合并:主条目用首次正式名,别名列于 `aliases: []`。
|
|
264
|
-
|
|
265
|
-
## Stage 3 聚合分析
|
|
266
|
-
|
|
267
|
-
### Stage 3 前置:故事框架识别
|
|
268
|
-
|
|
269
|
-
输出写入 `剧情/故事线.md` 顶部:
|
|
270
|
-
|
|
271
|
-
```markdown
|
|
272
|
-
## 故事框架
|
|
273
|
-
|
|
274
|
-
| 项目 | 内容 |
|
|
275
|
-
|------|------|
|
|
276
|
-
| 框架类型 | {升级流/复仇线/日常单元/多线交织/蜕变成长/混合} |
|
|
277
|
-
| 核心驱动 | {一句话描述全书的核心叙事引擎} |
|
|
278
|
-
| 主轴矛盾 | {贯穿全书的根本矛盾} |
|
|
279
|
-
| 升级机制 | {力量/地位/关系的递进方式,如无则填"—"} |
|
|
280
|
-
| 叙事节奏模式 | {铺垫→冲突→爽点→新悬念 的典型周期} |
|
|
281
|
-
| 判断依据 | {哪些章节/情节点支撑此判断} |
|
|
282
|
-
| 预期剧情数 | {基于总章数的预期范围,参考 material-decomposition.md 预期数量引导表} |
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
**框架识别后自检**(写入 `剧情/故事线.md` 框架部分之后):
|
|
286
|
-
|
|
287
|
-
```markdown
|
|
288
|
-
## 框架识别自检
|
|
289
|
-
|
|
290
|
-
| 检查项 | 结果 | 说明 |
|
|
291
|
-
|--------|------|------|
|
|
292
|
-
| 覆盖率 | {X%} | {已覆盖章节数/总章节数} |
|
|
293
|
-
| 粒度检查 | {通过/不通过} | {如不通过,说明哪个剧情过细/过粗} |
|
|
294
|
-
| 独立性检查 | {通过/不通过} | {如不通过,说明哪个剧情不满足哪项标准} |
|
|
295
|
-
| 数量检查 | {通过/不通过} | {实际剧情数 vs 预期范围} |
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
### Stage 3 权威产物分工
|
|
299
|
-
|
|
300
|
-
Stage 3 除剧情文件外,必须写一个轻量索引 `剧情/README.md`,再分别写两个权威文件:
|
|
301
|
-
|
|
302
|
-
```markdown
|
|
303
|
-
# 剧情目录索引
|
|
304
|
-
|
|
305
|
-
| 文件 | 权威范围 | 下游用法 |
|
|
306
|
-
|---|---|---|
|
|
307
|
-
| `节奏.md` | 关键信息推进、爽点循环、情绪触动点、爆发节奏 | 产出 `rhythm_reference` |
|
|
308
|
-
| `情绪模块.md` | 读者需求、情绪引擎、套路框架、可复现模块卡 | 产出 `selected_emotion_module` |
|
|
309
|
-
| `故事线.md` | 故事框架与故事线摘要 | 投影摘要,不覆盖权威文件 |
|
|
310
|
-
| `拆文报告.md` | 人类阅读报告 | 投影摘要,不覆盖权威文件 |
|
|
311
|
-
|
|
312
|
-
冲突时以 `节奏.md` / `情绪模块.md` 为准;两个文件用 EM/RH/TR ID 互相引用。
|
|
313
|
-
|
|
314
|
-
## 剧情单元清单
|
|
315
|
-
|
|
316
|
-
| 剧情单元 | 类型 | 桥段标签 | 章节范围 | 体量 |
|
|
317
|
-
|---|---|---|---|---|
|
|
318
|
-
| `{标题}.md` | {类型} | {桥段标签} | 第{X}-{Y}章 | 共{N}章,约{M}万字 |
|
|
319
|
-
|
|
320
|
-
清单仅是检索索引投影(各列取剧情单元既有字段),剧情定义权威在各剧情单元文件;节奏/情绪权威仍在 `节奏.md` / `情绪模块.md`。
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
- `剧情/节奏.md` 是**节奏与触发点权威索引**:关键信息推进、爽点循环、情绪触动点、爆发节奏、长间隔风险都在这里落盘。
|
|
324
|
-
- `剧情/情绪模块.md` 是**读者需求与可复现模块权威索引**:读者为什么爱看、情绪引擎如何运转、爽文套路如何嵌进故事框架、如何重组复现都在这里落盘。
|
|
325
|
-
- `剧情/故事线.md` 和 `拆文报告.md` 只写摘要和引用,不复制完整模块定义;冲突时以下游写作读取 `剧情/节奏.md` / `剧情/情绪模块.md` 为准。
|
|
326
|
-
|
|
327
|
-
### Stage 3 剧情
|
|
328
|
-
|
|
329
|
-
输出 `剧情/{标题}.md`:
|
|
330
|
-
|
|
331
|
-
| 项目 | 内容 |
|
|
332
|
-
|------|------|
|
|
333
|
-
| 标题 | 简洁有力,15字以内 |
|
|
334
|
-
| 类型 | {主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他} — 悬疑=主动推理调查,谜团=世界观/身世等未解之谜 |
|
|
335
|
-
| 概要 | {150-300字,按时序连贯叙述这条剧情线的起承转合与因果,不靠同一连接词反复串联;含核心角色及定位、关键地点、关键道具(如有)、对主角/世界的影响} |
|
|
336
|
-
| 起始目标 | {谁起初想做什么;若目标在本单元前已建立,引用首次建立位置} |
|
|
337
|
-
| 主要阻碍 | {人物、规则、资源、信息或环境造成的具体阻碍} |
|
|
338
|
-
| 关键变化来源 | {谁的选择/行动,或什么外部事件改变了局面;不默认由主角主动造成} |
|
|
339
|
-
| 局面变化 | {目标、风险、关系、资源、知识或行动方向从什么状态变成什么状态} |
|
|
340
|
-
| 得失与承担者 | {谁得到什么、谁失去什么或承担什么代价} |
|
|
341
|
-
| 后续影响 | {结果如何促成、限制或迫使后续行动;未完成则标 open} |
|
|
342
|
-
| 关键信息功能 | {这条剧情负责让读者获得/等待/误判/确认什么信息} |
|
|
343
|
-
| 读者需求 | {满足安全感/优越感/期待感/情感补偿/认知反转/陪伴感等哪类需求} |
|
|
344
|
-
| 情绪模块ID | {引用 `剧情/情绪模块.md` 中的 EM-001 等,不在此重复完整卡片} |
|
|
345
|
-
| 套路框架位置 | {退婚打脸/迟来追悔/升级试炼/掉马震惊/以小搏大/其他;说明它如何在本故事框架内运转} |
|
|
346
|
-
| 桥段标签 | 从桥段词表选命中项,逗号分隔;可补表外确有桥段;无匹配留空,不硬凑(词表见 references/deconstruction-notes.md) |
|
|
347
|
-
| 章节范围 | 第{X}-{Y}章(共{N}章,约{M}万字) |
|
|
348
|
-
|
|
349
|
-
结构分布:铺垫期 | 发展期 | 高潮期 | 收尾期(各含章节范围)
|
|
350
|
-
|
|
351
|
-
情节点索引:| 序号 | 章节 | 描述 | 归属置信度 |
|
|
352
|
-
|
|
353
|
-
### Stage 3 故事线
|
|
354
|
-
|
|
355
|
-
输出 `剧情/故事线.md`(在框架识别之后):
|
|
356
|
-
|
|
357
|
-
每条故事线:
|
|
358
|
-
|
|
359
|
-
| 项目 | 内容 |
|
|
360
|
-
|------|------|
|
|
361
|
-
| 标题 | 简洁有力,15字以内 |
|
|
362
|
-
| 类型 | {主线/感情线/成长线/复仇线/夺宝线/冲突线/谜团线/其他} |
|
|
363
|
-
| 描述 | {300-600字,划分3-8个发展阶段,每个阶段含:核心冲突、关键角色及作用、能力/资源/地位演进、主题母题。追踪伏笔与回收关系链。标注与其他故事线的交织关系} |
|
|
364
|
-
| 情绪引擎摘要 | {1-2句概述这条线如何制造缺口、延迟满足、释放和余波;详情指向 `剧情/情绪模块.md`} |
|
|
365
|
-
| 套路运行方式 | {爽文/情感/悬疑等套路如何嵌入故事框架而不是孤立桥段;详情指向模块ID} |
|
|
366
|
-
| 主题 | {不超过3个} |
|
|
367
|
-
| 包含剧情 | {剧情标题列表,按时序排列。每条故事线至少包含1个剧情} |
|
|
368
|
-
| 模块引用 | {EM-001, EM-002;只写引用,不复制完整卡片} |
|
|
369
|
-
|
|
370
|
-
故事线关系:并行 / 交织 / 依赖
|
|
371
|
-
|
|
372
|
-
### Stage 3 节奏.md(权威索引)
|
|
373
|
-
|
|
374
|
-
输出 `剧情/节奏.md`:
|
|
375
|
-
|
|
376
|
-
```markdown
|
|
377
|
-
# 节奏索引:{书名}
|
|
378
|
-
|
|
379
|
-
> 权威范围:信息披露、读者/角色知识边界、事件/情绪/篇幅三维节奏、爽点循环和情绪触动点。`拆文报告.md` 只引用本文件摘要。
|
|
380
|
-
|
|
381
|
-
## 全书情绪节奏总览
|
|
382
|
-
|
|
383
|
-
- 情绪折线:{压抑/期待 → 紧张/加压 → 爽感/反转 → 余波/新危机;标注关键章节区间}
|
|
384
|
-
- 爽点频率:{每 N 章一次小爽点;每 M 章一次中高潮;大高潮位置}
|
|
385
|
-
- 高潮分布:小高潮:第 {X/Y/Z} 章;中高潮:第 {X/Y} 章;大高潮:第 {X} 章
|
|
386
|
-
- 冲突升级路径:{低级矛盾 → 中级矛盾 → 高级矛盾 → 终局矛盾;标注触发章节}
|
|
387
|
-
- 伏笔跨章地图:{伏笔内容 | 第X章埋入方式 → 第Y章回收效果;仅列跨度超过2章或影响主线的伏笔}
|
|
388
|
-
|
|
389
|
-
## 循环单元
|
|
390
|
-
|
|
391
|
-
- 小循环(约 3 章):{缺口/误判 → 加压/试探 → 释放/新钩子;可变项是什么}
|
|
392
|
-
- 中循环(约 7 章):{阶段目标 → 多轮阻碍 → 中段反转 → 阶段爽点 → 更大问题}
|
|
393
|
-
- 大循环(约 15 章):{卷内目标 → 资源/关系/敌手升级 → 核心冲突爆发 → 余波与转场}
|
|
394
|
-
|
|
395
|
-
## 关键信息推进表
|
|
396
|
-
|
|
397
|
-
| 章节/范围 | 关键信息 | 扩写方式 | 推进功能 | 节奏效果 | 关联剧情/模块 |
|
|
398
|
-
|---|---|---|---|---|---|
|
|
399
|
-
| 第{N}章 | {读者必须获得/误判/等待的信息} | {对话铺垫/事件验证/反应层/延迟揭示/多段回扣} | {立目标/加压/释放/转场/埋钩} | {加速/减速/蓄力/爆发/冷却} | {剧情标题 / EM-001} |
|
|
400
|
-
|
|
401
|
-
## 关键双时间线(全书约 8–15 个节点)
|
|
402
|
-
|
|
403
|
-
| 关键事件ID | 客观发生时间/顺序 | 事件事实 | 披露路径与章节 | 读者所知 | 关键角色所知 | 披露前后判断变化 | 叙事作用 | 证据位置 |
|
|
404
|
-
|---|---|---|---|---|---|---|---|---|
|
|
405
|
-
| EV-001 | {书内时间或相对顺序} | {只登记一次的关键事件} | {RV-001异常→RV-002线索→RV-003确认;对应章节} | {各披露阶段的边界} | {关键角色在各阶段知道/不知道什么} | {读者或角色从何种判断变成何种判断} | {悬念/误导/反转/共情/期待} | {章节+source_locator+定位词} |
|
|
406
|
-
|
|
407
|
-
只选择改变主线、人物关系、核心风险或读者判断的节点。一个事件的多次披露合并进同一行的披露路径,不把多次披露算成多次客观事件;“作者真相”只填文本已经证实的事实。
|
|
408
|
-
|
|
409
|
-
## 三维节奏表
|
|
410
|
-
|
|
411
|
-
| 节奏ID | 章节/剧情单元 | 事件推进1-5及理由 | 读者情绪类型/强度1-5及触发 | 篇幅展开度1-3 | 展开/压缩/省略/反复及作用 | 证据 |
|
|
412
|
-
|---|---|---|---|---|---|---|
|
|
413
|
-
| AX-001 | {第X-Y章/剧情单元} | {改变了哪些状态;重要性、范围、可逆性} | {情绪及文本触发} | {1/2/3} | {具体安排与作用;过程未知只写未展示} | {单元ID+章节定位} |
|
|
414
|
-
|
|
415
|
-
## 爽点循环索引
|
|
416
|
-
|
|
417
|
-
| 循环ID | 章节范围 | 铺垫层 | 释放层 | 反应层 | 衔接层/新钩子 | 强度递进 |
|
|
418
|
-
|---|---|---|---|---|---|---|
|
|
419
|
-
| RH-001 | 第{X}-{Y}章 | {压抑/误判/期待缺口} | {打脸/掉马/目标达成/情感满足} | {谁震惊/后悔/重新评价} | {旧爽点后立起的新期待} | {比上一轮强/弱在哪里} |
|
|
420
|
-
|
|
421
|
-
## 情绪触动点索引
|
|
422
|
-
|
|
423
|
-
| 触动点ID | 章节 | 触发事件 | 目标读者情绪 | 爆发点 | 余波/冷却 | 复现提示 |
|
|
424
|
-
|---|---|---|---|---|---|---|
|
|
425
|
-
| TR-001 | 第{N}章 | {触发读者情绪的具体情节} | {期待/心疼/愤怒/爽/甜/热血/恐惧} | {情绪最高句/段或事件} | {角色反应/关系变化/新悬念} | {保留情绪链,不搬运具体事件} |
|
|
426
|
-
|
|
427
|
-
## 爆发节奏总结
|
|
428
|
-
|
|
429
|
-
- 爆发密度:{每N章一次 / 每N字一次 / 卷内峰值位置}
|
|
430
|
-
- 爆发形态:{递进 / 延迟满足 / W形 / 阶梯 / 单元循环}
|
|
431
|
-
- 长间隔风险:{哪些区间触动点过稀,作者如何用小钩子维持}
|
|
432
|
-
- 下游写作提醒:{新书复现时每章/每卷如何安排触动点}
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
### Stage 3 情绪模块.md(权威索引)
|
|
436
|
-
|
|
437
|
-
输出 `剧情/情绪模块.md`:
|
|
438
|
-
|
|
439
|
-
```markdown
|
|
440
|
-
# 情绪模块:{书名}
|
|
441
|
-
|
|
442
|
-
> 权威范围:读者需求 / 情绪引擎 / 套路框架运转 / 可复现模块。禁止把原文具体桥段当模板照搬。
|
|
443
|
-
|
|
444
|
-
## 读者需求 / 情绪引擎
|
|
445
|
-
|
|
446
|
-
| 读者需求 | 本书满足方式 | 证据章节/情节点 | 持续追读机制 | 可迁移边界 |
|
|
447
|
-
|---|---|---|---|---|
|
|
448
|
-
| {优越感/安全感/被理解/替代性复仇/关系补偿/认知惊喜等} | {故事如何持续交付} | {第N章/Px} | {下一层期待如何被立起} | {可保留情绪逻辑;必须替换具体设定/人物/事件} |
|
|
449
|
-
|
|
450
|
-
## 故事框架与套路运行图
|
|
451
|
-
|
|
452
|
-
| 框架/套路 | 在本书中的位置 | 运行方式 | 为什么有效 | 失效风险 |
|
|
453
|
-
|---|---|---|---|---|
|
|
454
|
-
| {退婚打脸/升级流/迟来追悔/掉马/以小搏大/修罗场/其他} | {章节/剧情单元} | {铺垫→延迟→释放→余波} | {对应读者需求} | {照搬会雷同/人设不适配/铺垫不足} |
|
|
455
|
-
|
|
456
|
-
## 其他机制索引
|
|
457
|
-
|
|
458
|
-
标题用字面量 `## 其他机制索引`,不改写成同义说法。除完整卡外只保留:机制ID|名称|用途|适用章节/关系|证据引用。不要复制完整卡片。
|
|
459
|
-
|
|
460
|
-
## 可复现模块卡
|
|
461
|
-
|
|
462
|
-
至少展开全书最强的 3 个,值得复现的机制不设数量上限;不足 3 个按实际数量写,不用弱机制凑数。
|
|
463
|
-
|
|
464
|
-
### EM-001 {模块名}
|
|
465
|
-
|
|
466
|
-
`读者想看什么`、`情绪链`、`戏剧单元`、`可替换项`、`不可照搬` 五项是灵感库登记门禁,缺任一项登记被拒;其余各行按需增列。字段名按本表原样写,不用同义名(读者期待/替换项/不可照搬项等一律不识别)。值可多行:字段名行没写值时,其后到下一个字段/标题前的列表或段落都算该字段的值。`可替换项` 写「功能位→任意X」(如「欺压者→任何压制主角的人」),不写「原书专名→任意X」——专名一旦写进抽象字段就是泄漏,登记会拒。
|
|
467
|
-
|
|
468
|
-
| 字段 | 内容 |
|
|
469
|
-
|---|---|
|
|
470
|
-
| 读者想看什么 | {一句话抽象需求} |
|
|
471
|
-
| 情绪链 | {缺口 → 加压 → 触发 → 爆发 → 余波} |
|
|
472
|
-
| 戏剧单元 | {去素材后的结构,如“被轻视者在公开场合用结果反证”} |
|
|
473
|
-
| 关键触发物 | {可替换功能位:误判者/见证者/代价/证据/奖励} |
|
|
474
|
-
| 必要铺垫 | {哪些前置信息、行为、关系或承诺让读者形成期待} |
|
|
475
|
-
| 成立条件 | {人物关系、资源、信息边界、价值选择和读者预期} |
|
|
476
|
-
| 复现步骤 | {1. 建缺口 2. 加反应层 3. 控制爆发点 4. 立新钩子} |
|
|
477
|
-
| 可替换项 | {角色身份、场景、道具、对手类型、目标结果} |
|
|
478
|
-
| 不可照搬 | {原文专名、具体事件顺序、标志性台词、独特设定} |
|
|
479
|
-
| 失效情形 | {换关系、动机、代价或披露顺序后为什么可能无效} |
|
|
480
|
-
| 反例/边界 | {文本中的弱兑现、失败尝试或当前无法验证之处} |
|
|
481
|
-
| 关联节奏 | {`剧情/节奏.md` RH-001 / TR-001} |
|
|
482
|
-
| 证据来源 | {剧情单元、EV/RV/AX、章节和原文定位;旧资料则写实际路径与证据等级} |
|
|
483
|
-
|
|
484
|
-
## 重组与复现指南
|
|
485
|
-
|
|
486
|
-
1. 先选读者需求,再选模块卡,不要从原文桥段倒抄。
|
|
487
|
-
2. 保留情绪链和功能位,替换人物、场景、动机、道具、事件素材。
|
|
488
|
-
3. 复现到新书大纲时,至少改变:冲突对象、公开/私密场景、触发证据、余波方向中的三项。
|
|
489
|
-
4. 若人设与模块冲突,以人设驱动重构模块;不要为了套套路扭曲角色。
|
|
490
|
-
```
|
|
491
|
-
|
|
492
|
-
### Stage 3 角色操作
|
|
493
|
-
|
|
494
|
-
**合并**:
|
|
495
|
-
1. 收集所有章节的角色提及数据
|
|
496
|
-
2. 别名匹配(仅 proper_name 和 nickname,置信度 ≥0.85)
|
|
497
|
-
3. descriptor/title 永不触发合并
|
|
498
|
-
4. 确认后保留首次正式名
|
|
499
|
-
|
|
500
|
-
**分级**:
|
|
501
|
-
|
|
502
|
-
| 等级 | 标准 | 提取深度 |
|
|
503
|
-
|------|------|----------|
|
|
504
|
-
| 主角 | 出现章节 ≥50% + 推动主线 + 完整成长轨迹 | 完整档案+弧线+动机链 |
|
|
505
|
-
| 反派 | 与主角对立 + 推动核心冲突 + 明确动机 | 完整档案+动机链 |
|
|
506
|
-
| 核心配角 | 出现章节 ≥20% 或推动重要支线 | 完整档案+关系 |
|
|
507
|
-
| 功能角色 | 出现章节 <20% + 作用有限 | 简化档案 |
|
|
508
|
-
|
|
509
|
-
边界模糊优先归入更低等级。
|
|
510
|
-
|
|
511
|
-
### Stage 3 散落情节兜底
|
|
512
|
-
|
|
513
|
-
1. 计算孤立比例,<5% 直接跳过(少量散落写入散落情节.md)
|
|
514
|
-
2. 列出未分配情节点
|
|
515
|
-
3. 按角色重叠、地点重叠、因果关系计算相关性(三层置信度)
|
|
516
|
-
- 强相关(0.8-1.0):归入现有条,标`[孤立情节归入]`
|
|
517
|
-
- 中等相关(0.5-0.8):标`[低置信归入]`,待复核
|
|
518
|
-
- 弱相关(<0.5):不强行分配,宁可放入未分配
|
|
519
|
-
4. <0.5 按主题聚类,标`[聚类生成]`(≥5个才建条)
|
|
520
|
-
5. 无法归类写入`散落情节.md`,不要强行分配到不相关的剧情
|
|
521
|
-
6. 覆盖率验证:目标阈值见 [material-decomposition.md 质量阈值体系](material-decomposition.md),不达标回到步骤3降低阈值重试
|
|
522
|
-
|
|
523
|
-
### Stage 3 覆盖率
|
|
524
|
-
|
|
525
|
-
覆盖率 = 已归类数 / 总数 x 100%,目标阈值见 [material-decomposition.md 质量阈值体系](material-decomposition.md)。
|
|
526
|
-
|
|
527
|
-
## Stage 4 设定+关系
|
|
528
|
-
|
|
529
|
-
> **Stage 4 直接按主题拆分输出多个文件**(与当前导入、长篇写作项目结构对齐)。下游不再现场拆分扁平文件。
|
|
530
|
-
> **事实保真**:等级/数值/距离/属性/势力数等硬事实回原文核对,原文未给的写「原文未明确」、禁编造填空(见 material-decomposition.md「合成阶段事实保真」)。
|
|
531
|
-
|
|
532
|
-
`设定/世界观/力量体系.md`:
|
|
533
|
-
- 文本描述,含等级、晋升条件。长篇注意多层级力量体系
|
|
534
|
-
- 内容 < 200 字且不构成独立体系 → 合并到 `设定/世界观/背景设定.md`,本文件可省略
|
|
535
|
-
|
|
536
|
-
`设定/世界观/地理.md`:
|
|
537
|
-
- 分布、主要区域、关键地点(文本描述)
|
|
538
|
-
- 内容 < 200 字 → 合并到 `背景设定.md`,本文件可省略
|
|
539
|
-
|
|
540
|
-
`设定/世界观/背景设定.md`:
|
|
541
|
-
- 核心规则 + 特殊设定
|
|
542
|
-
- 内容不足独立成文件的「力量体系 / 地理 / 势力」也合并到这里
|
|
543
|
-
- 无特殊世界观时:本文件输出 "本书为现实题材,无特殊世界观设定"
|
|
544
|
-
|
|
545
|
-
`设定/世界观/金手指.md`:
|
|
546
|
-
- 类型{system/space/rebirth/transmigration/special_physique/artifact/bloodline/other} | 名称 | 描述(300-600字,含能力/获取/机制/进化史/多重能力演化)| 核心机制 | 当前能力
|
|
547
|
-
- 合并规则见 material-decomposition.md「金手指合并规则」。
|
|
548
|
-
- 无金手指时:输出空文件,注明"本书无明显金手指设定"
|
|
549
|
-
|
|
550
|
-
`设定/势力/{势力名}.md`(每个核心势力一个文件):
|
|
551
|
-
- 名称 / 类型(门派/组织/家族/国家)/ 核心人物 / 立场倾向 / 与其他势力关系 / 关键事件
|
|
552
|
-
- 内容 >= 200 字时独立;不足合并到 `设定/世界观/背景设定.md`(不丢失信息)
|
|
553
|
-
|
|
554
|
-
`角色/{角色名}.md`(每角色):
|
|
555
|
-
- 200-500字档案(身份背景→核心经历→性格特质→能力特长→人际关系→成长轨迹)
|
|
556
|
-
- archetype:protagonist/antagonist/supporting/minor
|
|
557
|
-
- 关键情节(3-5个转折点,按时序排列)
|
|
558
|
-
- 成长弧线(character_arc:如有明显变化则总结,如"从普通少年成长为觉醒血脉的强者")
|
|
559
|
-
- 别名列表(标注类型和置信度)
|
|
560
|
-
|
|
561
|
-
`角色/角色关系.md` 从逐章事实和批次观察聚合,不重新读整本原文:
|
|
562
|
-
|
|
563
|
-
| 关系ID | 主体 → 客体 | 关系动作/类型 | 表面关系 | 真实关系 | 触发事件 | 双方得失 | 变化后状态 | 证据强度 | 证据 |
|
|
564
|
-
|---|---|---|---|---|---|---|---|---|---|
|
|
565
|
-
|
|
566
|
-
同一对角色的最新状态和历史演变都保留;“甲保护乙”与“乙依赖甲”分别记录。关系图只由此文件生成,不手画、不另建关系事实:运行 `scripts/render_relation_chart.py --root "{拆文目录}" --png`。它总是写出 `人物关系图/人物关系图.md`(Mermaid 图 + 文字清单,任何 Markdown 查看器都显示中文,作为主产物);只有装了 matplotlib 且找到能显示图中全部文字的字体(不算 LastResort 这类只画方框的兜底字体)时,才另画 `核心人物关系.png` 与 `关键关系演变.png`,表情等符号不画进图片。字体不够就不出图,绝不改用拼音或首字母,并把脚本返回的说明转告作者。
|
|
567
|
-
|
|
568
|
-
## Stage 5 汇总报告
|
|
569
|
-
|
|
570
|
-
输出 `拆文报告.md`,模板与写法规则见 [author-facing.md](author-facing.md)「拆文报告.md」。它是 `快速预览.md` 的超集(「基本信息」「黄金三章评分」两节同名同结构),面向作者阅读:不出现脚本名、字段名、状态值、批次编号、质量指标名和证据分级字母;情绪模块卡、事件、披露、节奏节点的编号只在带名称时出现(如「退婚当众打脸」(EM-003)),关系写成「甲 → 乙:由……到……」。
|
|
571
|
-
|
|
572
|
-
报告只综合权威底层结果,不为写总报告重新阅读全文,也不复制所有逐章摘要。每条结论写一句人话,再指向对应文件和章节;机械可追溯信息(`source_locator`、证据强度、`EV/RV/AX/EM` 全量编号)留在 `剧情/节奏.md`、`剧情/情绪模块.md`、剧情单元和 `角色/角色关系.md` 里。
|
|
573
|
-
|
|
574
|
-
### 三层灵感库最小消费契约
|
|
575
|
-
|
|
576
|
-
- 单书案例以 `剧情/*.md` 的剧情单元为准,可迁移机制以 `剧情/情绪模块.md` 的 `EM-*` 为准;主报告是阅读入口,不作为第二份结构化真源。
|
|
577
|
-
- 客观事件、披露节点和三维节奏分别使用 `EV-*`、`RV-*`、`AX-*`;披露必须引用事件;机制卡通过 ID 引用,报告只用「名称(ID)」的带名引用,避免跨层复制全文。
|
|
578
|
-
- 每条可检索结论保留剧情单元/章节、`source_locator` 或定位词及证据强度;`chapter_index.csv` 的逐章 hash 和 `_progress.md` 批次范围 hash 用于判断原文范围是否变化。
|
|
579
|
-
- 下游先运行兼容检查器读取 `classification`、`current_capabilities`、`conflicts` 和覆盖范围。缺项时请求长篇拆文的定点增强;不得把旧资料概括成伪造的当前主产物,也不得为入库重新阅读全文。
|
|
580
|
-
- 是否进入灵感库、跨书归并、差异保留和检索策略由三层灵感库能力决定;单书拆文不自动入库。
|
|
581
|
-
|
|
582
|
-
## Stage 6 文风
|
|
583
|
-
|
|
584
|
-
输出 `拆文库/{书名}/文风.md`。整书级写作技法视图,供 story-long-write 日更循环喂给 narrative-writer。
|
|
585
|
-
|
|
586
|
-
优先使用有效 `_style-sample.txt`;不存在时按 `chapter_index.csv` 选择 4–6 章、定点读取各章局部行段。不得重扫全书。只缺文风时单独执行本阶段,不重跑 Stage 1–5;完整步骤见 `style-profile-generator.md`。
|
|
587
|
-
|
|
588
|
-
**字段速查**:
|
|
589
|
-
|
|
590
|
-
| 段落 | 内容 | 必标可信度 | 上限 |
|
|
591
|
-
|---|---|---|---|
|
|
592
|
-
| 生成记录 | 参考了哪些资料 + 抽样看了哪几章 + 文风是否可用 | 否 | <100 字 |
|
|
593
|
-
| 整体语感 | 句长分布 / 标点习惯 / 段落节奏 | 是(每子项一标) | ~500 字 |
|
|
594
|
-
| 对话技法 | 潜台词模式 / 对话标签 / 角色语气区分 | 是(潜台词必标) | ~400 字 |
|
|
595
|
-
| 情绪交替模式 | 章内基调切换 / 跨章基调周期 / 喜剧↔重击转场 | 是(章内切换必标) | ~400 字 |
|
|
596
|
-
| 可借鉴技巧 | 写法技巧 Top 5 + 可借鉴套路 Top 3(从拆文报告引用;情绪/节奏意图只引用 `剧情/情绪模块.md` / `剧情/节奏.md`,不在文风中重定义) | 否 | ~300 字 |
|
|
597
|
-
| 分层模仿建议 | 基础层 / 进阶层 / 适配层,各写可执行边界 | 否 | ~350 字 |
|
|
598
|
-
| **原文锚点片段** | **4-6 段 × 300-500 字**,按基调分类,标"出处 + 行号 + 示范点" | 否 | ~2400 字 |
|
|
599
|
-
| 不可模仿 | 对标书缺陷或不适合本项目的技法 | 否 | <100 字 |
|
|
600
|
-
|
|
601
|
-
**总上限 ~4000 字**。
|
|
602
|
-
|
|
603
|
-
完整模板与生成方法见 [style-profile-protocol.md](style-profile-protocol.md) + [style-profile-generator.md](style-profile-generator.md)。
|