@oh-story/dsh 0.1.9 → 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 +14 -14
- package/lib/client.js +209 -73
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +248 -168
- package/lib/drama/skills/short-drama/SKILL.md +16 -4
- 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/creator_markdown_check.py +14 -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/character-and-look.md +10 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
- 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-assets/references/voice-direction.md +28 -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 +65 -44
- 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 +6 -4
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +26 -67
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +31 -56
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +42 -78
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +44 -92
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +14 -16
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1272 -125
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +113 -9
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- 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-produce/SKILL.md +5 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
- package/lib/drama/skills/short-drama-review/SKILL.md +4 -5
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
- 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 +24 -35
- package/lib/drama/skills/short-drama-review/references/stage-contract.md +3 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +23 -11
- package/lib/drama/skills/short-drama-storyboard/references/blocking-playbooks.md +1 -1
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- 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 +139 -34
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +5 -3
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +15 -12
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +29 -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 +52 -39
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +24 -21
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +9 -23
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +14 -26
- package/lib/drama/skills/short-drama-video-prompts/references/review-and-fixtures.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -2
- 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 +10 -7
- 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 +346 -98
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
- package/lib/oh-story/manifest.json +607 -327
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/character-designer.md +1 -2
- package/lib/oh-story/roles/consistency-checker.md +15 -13
- package/lib/oh-story/roles/narrative-writer.md +36 -38
- 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 +15 -9
- 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 +46 -94
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +59 -73
- 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 +12 -11
- 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 +46 -94
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +2 -2
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +22 -5
- 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 +934 -170
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +155 -8
- package/lib/oh-story/skills/story-import/SKILL.md +64 -584
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- 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/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +98 -92
- 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 +15 -11
- 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 +132 -27
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +81 -270
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +252 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +3 -3
- 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/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +138 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- 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 +55 -128
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +6 -6
- package/lib/oh-story/skills/story-long-analyze/references/synthesis-inputs.md +39 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1145 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +45 -194
- 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 +49 -81
- 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 +12 -11
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +24 -202
- 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 +46 -94
- 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 +7 -11
- package/lib/oh-story/skills/story-long-write/references/character-relations.md +49 -1
- package/lib/oh-story/skills/story-long-write/references/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/deslop-gates.md +171 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +4 -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/emotional-methods.md +2 -2
- 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 +7 -15
- 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 +19 -13
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +13 -5
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +5 -6
- 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 +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +81 -121
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +41 -139
- 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 +57 -67
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +112 -253
- 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 +6 -4
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +19 -65
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- 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 +226 -25
- 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 +132 -27
- 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 +7 -4
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +304 -46
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +478 -15
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-review/SKILL.md +31 -302
- 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 +12 -11
- 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 +46 -94
- 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/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-review/references/review-quality.md +6 -11
- 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 +15 -11
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- 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 +478 -15
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +182 -23
- package/lib/oh-story/skills/story-setup/SKILL.md +71 -452
- 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 +12 -11
- 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 +22 -5
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
- 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-emotional-methods.md +2 -2
- 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 +19 -65
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +4 -4
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +56 -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/stage4-6-reversal-summary.md +611 -0
- package/lib/oh-story/skills/story-short-scan/SKILL.md +35 -65
- 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 -175
- 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 +46 -94
- 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/dialogue-mastery.md +4 -0
- 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 -47
- 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 +21 -13
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +116 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +99 -0
- 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 +934 -170
- 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/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +16 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/client/video-studio.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +53 -1
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- 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-script/scripts/agent_brief.py → video-understanding/scripts/briefing/builder.py} +38 -35
- package/lib/video-recap/skills/video-understanding/scripts/{brief_context.py → 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-script/scripts/brief_timeline.py → video-understanding/scripts/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 +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +0 -530
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +0 -559
- package/lib/oh-story/skills/story-long-scan/references/scan-output-format.md +0 -207
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +0 -678
- 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/brief_context.py +0 -348
- package/lib/video-recap/skills/video-script/scripts/narration.py +0 -12
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +0 -399
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +0 -290
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +0 -327
- /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
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# 长篇拆文语义验收样例
|
|
2
|
+
|
|
3
|
+
这些短文本为本项目自有合成样例,用于 review 和联合测试。每章只有一两句,过不了原文块每章 10 个情节点的提交下限,所以只用于 Stage 3+ 与模型语义评估:测试时让对应 Stage 处理原文,再按“应识别的关系”评估;不得仅以关键词或栏目存在判通过。
|
|
4
|
+
|
|
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
|
+
- 起始目标:顾野送药;阻碍:旧债导致关桥受阻。
|
|
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
|
+
### 应识别的关系
|
|
66
|
+
|
|
67
|
+
- 可确认:湿脚印、内扣窗闩和侦探认为视线被引向窗户。
|
|
68
|
+
- 不能确认:存在暗道、凶手从窗户进入、脚印由凶手留下、侦探已经知道答案。
|
|
69
|
+
- 未知项写明证据缺口和待后文确认,不用类型小说惯例补齐。
|
|
70
|
+
|
|
71
|
+
## 评价表
|
|
72
|
+
|
|
73
|
+
每项 0–2 分:0 为错误或缺失,1 为部分正确,2 为关系清楚且有证据。总分至少 10/12,且无硬失败,才算通过。
|
|
74
|
+
|
|
75
|
+
| 项目 | 2 分标准 |
|
|
76
|
+
|---|---|
|
|
77
|
+
| 因果与归属 | 目标、阻碍、改变局面的主体/事件、得失和后续约束连接正确 |
|
|
78
|
+
| 事件与披露 | 客观事件不重复,多次披露和判断变化对应正确 |
|
|
79
|
+
| 知识边界 | 读者与关键角色在各节点的已知/未知分开 |
|
|
80
|
+
| 三维节奏 | 事件、情绪、篇幅分别解释并允许高低组合不同 |
|
|
81
|
+
| 机制迁移 | 写出期待、铺垫、关系/资源/信息条件及失效原因 |
|
|
82
|
+
| 证据纪律 | 结论可定位,未知不被常识或类型惯例填满 |
|
|
83
|
+
|
|
84
|
+
硬失败包括:把披露当事件重复登记;把配角或外部事件的作用归给主角;用分数替代理由;把未知写成事实;为旧项目伪造当前主产物;主报告与底层事实相互冲突。
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
# Stage 0–1:概要初稿与黄金三章
|
|
2
|
+
|
|
3
|
+
开头时刻(Phase 1 到 Stage 1 停下来问)读本文件。作者读到的 `快速预览.md` 与停下来问的话术见 [author-facing.md](author-facing.md)。
|
|
4
|
+
|
|
5
|
+
## Stage 0 概要(thin first-pass)
|
|
6
|
+
|
|
7
|
+
> **范围说明**:Stage 0 只能基于章节标题 + 卷段结构 + 抽样开头/结尾产出 thin first-pass(~200 字)。**禁止**在此阶段写出 500-1000 字 plot-aware 概要——读取范围不足以支撑那个密度。完整版在 Stage 5 落盘覆盖(见 [stage5-report.md](stage5-report.md)「完整概要」)。
|
|
8
|
+
|
|
9
|
+
输出 `概要.md`:总字数{X}万 | 总章数{N} | 题材{类型}
|
|
10
|
+
|
|
11
|
+
| 卷/段 | 章节范围 | 章数 | 预估字数 |
|
|
12
|
+
|-------|----------|------|----------|
|
|
13
|
+
| {卷名} | 第1-X章 | {N} | {W}万 |
|
|
14
|
+
|
|
15
|
+
首版概要(~200字,thin first-pass):{从章节标题 + 第1章+末章抽样归纳出的核心驱动 + 主角名 + 大致设定,不要硬凑剧情转折}
|
|
16
|
+
章节索引:| 章节 | 标题 | 字数 |
|
|
17
|
+
|
|
18
|
+
> Stage 5 完成后会就地覆盖此文件的「首版概要」段为「全书概要(500-1000字 plot-aware)」。章节索引和卷段表保留不变。
|
|
19
|
+
|
|
20
|
+
## Stage 1 黄金三章
|
|
21
|
+
|
|
22
|
+
黄金三章拆为三个单章文件,每章一个:`章节/第1章_深度拆解.md`、`章节/第2章_深度拆解.md`、`章节/第3章_深度拆解.md`。每个文件按以下模板输出。
|
|
23
|
+
|
|
24
|
+
字数约{X}字 | 核心事件:{一句话}
|
|
25
|
+
|
|
26
|
+
**开篇钩子**(第1章看前500字):类型{悬念/冲突/反差/信息差/代入感} | 手法{描述} | 效果{强/中/弱}—{原因}
|
|
27
|
+
|
|
28
|
+
**人物出场**:{列表} | 主角塑造{直接描写/对话/行为/他人评价} | 第一印象{描述}
|
|
29
|
+
|
|
30
|
+
**世界观铺设**:透露{信息} | 隐藏{信息} | 方式{对话/旁白/事件}
|
|
31
|
+
|
|
32
|
+
**结构拆解**:| 段落范围 | 功能{铺垫/冲突/爽点/收尾} | 字数 |
|
|
33
|
+
|
|
34
|
+
**爽点分析**:类型{装逼打脸/逆袭反转/获得机缘/信息差碾压/情感满足} | 铺垫{X}字 / 释放{Y}字 / 铺放比{Z:1} | 情绪曲线
|
|
35
|
+
|
|
36
|
+
**反应层拆解**(如有):
|
|
37
|
+
|
|
38
|
+
| 层级 | 角色 | 反应 | 篇幅 |
|
|
39
|
+
|------|------|------|------|
|
|
40
|
+
| 质疑/轻视 | | | |
|
|
41
|
+
| 震惊/打脸 | | | |
|
|
42
|
+
| 强者重评 | | | |
|
|
43
|
+
| 扩散传播 | | | |
|
|
44
|
+
|
|
45
|
+
反应篇幅比{N:1} — 低于1.5 = 爽感不足
|
|
46
|
+
|
|
47
|
+
**释放后追证**(如有):爽点释放后反派真实态度?{行为+原文引用}
|
|
48
|
+
|
|
49
|
+
**冲突升级**(如有):{行为} | 升级层级{口头→经济→暴力} | 对角色画像影响
|
|
50
|
+
|
|
51
|
+
**背景信息揭示**(如有):揭示{什么} | 叙事功能{推翻预设/重新解读/铺垫新线/认知偏差} | 对主线影响
|
|
52
|
+
|
|
53
|
+
**章尾钩子**:类型{悬念/反转/新信息/新角色} | 内容{描述} | 期待度{强/中/弱}
|
|
54
|
+
|
|
55
|
+
**可借鉴要素**:{可复用技巧}
|
|
56
|
+
|
|
57
|
+
> 第二、三章额外关注:信息密度 / 冲突升级(vs上章) / 节奏变化 / 爽点间隔字数。
|
|
58
|
+
> 反派若为非人形(灵气复苏/末世/国运等抽象对抗型),在「爽点分析」处改用抽象对抗型路由:核心对抗面{描述} | 紧迫感来源{描述} | 升级机制{描述} | 叙事替代{用什么替代传统打脸}。
|
|
59
|
+
|
|
60
|
+
同一次黄金三章阅读优先另写 `_style-sample.txt`,减少 Stage 6 的定点取样;旧项目没有该缓存时,Stage 6 仍可按索引选择 4–6 章并只读取对应行段:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
<!-- STYLE_SAMPLE:v1 -->
|
|
64
|
+
## 片段 A
|
|
65
|
+
source_locator: 原文/原文.txt:L{起始行}-L{结束行}
|
|
66
|
+
基调: {紧张/压抑/轻松/温馨/热血}
|
|
67
|
+
示范点: {句长节奏/标点/对话潜台词/动作与反应等}
|
|
68
|
+
{300—500字连续原句}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
共选4—6段,允许同章多段,但范围不得重叠;只保留用于表达分析的最小样本,不建立第二套剧情事实。
|
|
72
|
+
|
|
73
|
+
## 快速预览报告
|
|
74
|
+
|
|
75
|
+
Stage 1 停靠点交付物 `拆文库/{书名}/快速预览.md`,模板见 [author-facing.md](author-facing.md)「快速预览.md」。字段只取 Stage 0/1 已产出数据(概要.md + 黄金三章深度拆解),不引入需 Stage 2-6 才能算出的内容;「基本信息」「黄金三章评分」两节与终态 `拆文报告.md` 同名同结构。终态生成后不删除 `快速预览.md`。
|
|
76
|
+
|
|
77
|
+
## 通用速查
|
|
78
|
+
|
|
79
|
+
### 爽点类型
|
|
80
|
+
|
|
81
|
+
| 类型 | 定义 | 例子 |
|
|
82
|
+
|------|------|------|
|
|
83
|
+
| 装逼打脸 | 实力碾压被轻视的人 | 「你也配?」 |
|
|
84
|
+
| 逆袭反转 | 绝境翻盘 | 废材觉醒 |
|
|
85
|
+
| 获得机缘 | 得到别人没有的 | 捡到神器 |
|
|
86
|
+
| 信息差碾压 | 读者和主角知道别人不知道的 | 重生先知优势 |
|
|
87
|
+
| 情感满足 | 人物关系发展 | 告白/团聚/认可 |
|
|
88
|
+
| 扮猪吃虎 | 隐藏实力突然展露 | 弱者实则是强者 |
|
|
89
|
+
|
|
90
|
+
### 钩子类型
|
|
91
|
+
|
|
92
|
+
| 类型 | 定义 | 示例 |
|
|
93
|
+
|------|------|------|
|
|
94
|
+
| 悬念钩 | 未解之谜 | 「剑为什么认他为主?」 |
|
|
95
|
+
| 冲突钩 | 直接对抗 | 开篇追杀 |
|
|
96
|
+
| 反差钩 | 违反常识 | 「穿越第一天就破产」 |
|
|
97
|
+
| 代入钩 | 读者共鸣 | 相似困境 |
|
|
98
|
+
| 信息差钩 | 读者知道角色不知道的 | 「他还不知道面前是……」 |
|
|
99
|
+
|
|
100
|
+
### 爽点循环结构
|
|
101
|
+
|
|
102
|
+
三层微观循环:
|
|
103
|
+
- **铺垫层(蓄势)**:压抑/困境/信息差制造情绪缺口
|
|
104
|
+
- **释放层(爽感)**:展露实力/打脸/碾压,强度由反应层数和篇幅决定
|
|
105
|
+
- **衔接层(承转)**:旧循环结束埋新钩子
|
|
106
|
+
|
|
107
|
+
反应层递进:质疑/轻视 → 震惊/打脸 → 强者重新评价 → 扩散效应
|
|
108
|
+
反应篇幅比 = 反应总字数 / 装逼字数。低于1.5 = 爽感没接住。
|
|
109
|
+
|
|
110
|
+
### 衔接过渡模式
|
|
111
|
+
|
|
112
|
+
| 模式 | 机制 | 示例 |
|
|
113
|
+
|------|------|------|
|
|
114
|
+
| 打完小的来大的 | 释放层对手引出更强对手 | 打败弟子→师父找上门 |
|
|
115
|
+
| 胜利发现隐患 | 释放成功暴露新问题 | 赢了比赛→发现中毒 |
|
|
116
|
+
| 身份暴露/反转 | 释放中身份被识破 | 打脸后被认出真实身份 |
|
|
117
|
+
| 利益升级 | 成果指向更大目标 | 线索→更深层宝藏 |
|
|
118
|
+
| 关系突变 | 释放改变关系格局 | 救的人变仇家后代 |
|
|
119
|
+
|
|
120
|
+
### 题材爽点形态
|
|
121
|
+
|
|
122
|
+
| 题材 | 释放层形态 | 反应层来源 | 铺垫层缺口 |
|
|
123
|
+
|------|-----------|-----------|-----------|
|
|
124
|
+
| 玄幻/修仙 | 实力碾压/境界突破 | 同门/对手/长老震惊 | 功法残缺/资源匮乏/血脉压制 |
|
|
125
|
+
| 都市 | 预测准确/身份揭露 | 商业对手/前女友/权贵 | 破产/被辞/被退婚 |
|
|
126
|
+
| 系统文 | 解锁稀有技能/任务奖励 | 系统稀有度标注 | 任务失败惩罚/技能冷却 |
|
|
127
|
+
| 历史 | 以弱胜强/先知优势 | 谋士/帝王/敌将震惊 | 信息不对称/身份低微 |
|
|
128
|
+
| 悬疑 | 真相揭露/反杀 | 被揭穿者崩溃/读者恍然 | 线索误导/嫌疑人洗白 |
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# Stage 2:批次提取规则与模板
|
|
2
|
+
|
|
3
|
+
子代理可用时由 `chapter-extractor` 按自己的定义提取,主会话只按 [pipeline-ops.md](pipeline-ops.md) 派发与提交,不读本文件。子代理不可用、主会话自己写批次时读本文件。
|
|
4
|
+
|
|
5
|
+
## 提取方法
|
|
6
|
+
|
|
7
|
+
先运行 `manage_analysis_run.py plan`,只执行标准输出中的内存计划。Stage 2 不再存在逐章独立调用,也不落盘计划文件。
|
|
8
|
+
|
|
9
|
+
### A. 已有成果批次
|
|
10
|
+
|
|
11
|
+
对 `existing-results` 批次只读取计划列出的旧拆文文件:
|
|
12
|
+
|
|
13
|
+
1. 上游 `章节/第N章_摘要.md` 优先;
|
|
14
|
+
2. 没有摘要时复用黄金三章;
|
|
15
|
+
3. 同一章只选择一个优先来源。
|
|
16
|
+
|
|
17
|
+
从旧成果二次提取剧情点、关键事件与披露候选、关系和三维节奏。不得打开原文,不得为了统一格式重写旧逐章文件。旧资料没有的信息留空或写“旧资料未提供”。
|
|
18
|
+
|
|
19
|
+
### B. 未拆原文章节块
|
|
20
|
+
|
|
21
|
+
对 `raw-original` 批次一次读取一个不重叠的连续块:
|
|
22
|
+
|
|
23
|
+
- 普通短章通常 3 章;
|
|
24
|
+
- 长章或信息密集时 1-2 章;
|
|
25
|
+
- 每块最多 3 章,默认同时受 25,000 字符上限约束;
|
|
26
|
+
- 遇到卷界、来源缺口或空章必须断开;
|
|
27
|
+
- 每章在全书运行计划中只属于一个原文块。
|
|
28
|
+
|
|
29
|
+
同一次理解产生两层结果:
|
|
30
|
+
|
|
31
|
+
1. 每章紧凑事实:概要、因果、信息变化、状态变化、三维分数、钩子、证据和情节点(一般 10–20 个、最多 30,短章按字数降下限);
|
|
32
|
+
2. 批次观察:剧情点、关键事件与披露候选、关系、三维异常点和跨批状态。
|
|
33
|
+
|
|
34
|
+
逐章兼容文件由脚本从紧凑事实机械生成;批次缓存保留全部逐章紧凑事实和跨章观察,作为恢复证据。全局聚合用 `digest` 取跨章观察与所需逐章字段,不整份读缓存,也不逐个打开章节文件。不得第二次读取该块来生成逐章文件,也不得把 50-60 章交给一个 agent 后让它自行拆成多个“批次”。
|
|
35
|
+
|
|
36
|
+
### C. 剧情点是主要分析单位
|
|
37
|
+
|
|
38
|
+
每个剧情点记录:
|
|
39
|
+
|
|
40
|
+
| 字段 | 说明 |
|
|
41
|
+
|---|---|
|
|
42
|
+
| 章节范围 | 当前可确认的起止章;允许跨批延续 |
|
|
43
|
+
| 起始目标 | 谁想做什么 |
|
|
44
|
+
| 阻碍 | 人物、规则、资源、信息或环境阻碍 |
|
|
45
|
+
| 变化来源 | 改变局面的选择、行动或外部事件 |
|
|
46
|
+
| 局面变化 | 目标、风险、资源、关系、知识或行动方向的前后差异 |
|
|
47
|
+
| 得失 | 收益归谁、代价由谁承担 |
|
|
48
|
+
| 后续影响 | 结果怎样促成或限制后续行动 |
|
|
49
|
+
| 状态 | `open` / `closed` |
|
|
50
|
+
| 证据 | 原文模式用 source locator;已有成果模式用资料路径 |
|
|
51
|
+
|
|
52
|
+
读取批次不等于剧情点。一个批次可以出现多个剧情点,一个剧情点也可以跨批次。跨批延续时继承剧情点 ID 和当前状态;Stage 3 再统一合并、拆分和校验边界。
|
|
53
|
+
|
|
54
|
+
### D. 兼容逐章资料
|
|
55
|
+
|
|
56
|
+
逐章投影只保留现有导入、写作与查询实际使用的内容:概要、关键事件、因果、局面结果、涉及、信息变化、状态变化、三维节奏、章尾钩子、证据和情节点序列(逐点带基调)。取消逐章重复的长篇写法公式、角色复述和扩写技法长表。写法机制、信息差、关系与节奏集中在剧情点及 Stage 3 权威产物中。
|
|
57
|
+
|
|
58
|
+
### E. 跨章观察
|
|
59
|
+
|
|
60
|
+
批次缓存固定包含:
|
|
61
|
+
|
|
62
|
+
1. 剧情点;
|
|
63
|
+
2. 仅限主线/关键转折的事件与披露候选;
|
|
64
|
+
3. 有向关系变化;
|
|
65
|
+
4. 事件、情绪、篇幅三维节奏的峰谷与分离点;
|
|
66
|
+
5. 未闭合剧情点、悬念、关系状态和待核事项。
|
|
67
|
+
|
|
68
|
+
角色实体只记录新别名和状态变化,不在每章重复生成人物小传。
|
|
69
|
+
|
|
70
|
+
### 原子提取六大铁律
|
|
71
|
+
|
|
72
|
+
1. **双序分离**:逐章事实按文本披露顺序排列;客观事件另标故事内发生顺序,不能把倒叙或回忆挪成当前事件
|
|
73
|
+
2. **客观白描**:记录"发生了什么"和结果,原文明说的起因照写,不推测未写出的动机,不用叙事框架词
|
|
74
|
+
3. **信息保真**:不遗漏改变语境的关键细节
|
|
75
|
+
4. **高度浓缩**:一个情节点一句话概括
|
|
76
|
+
5. **复合合并**:为同一戏剧目的服务的连续微动作合并为一个情节点
|
|
77
|
+
6. **客观事实**:提取客观事实,不做叙事分析
|
|
78
|
+
|
|
79
|
+
**客观白描 vs 叙事框架词**:
|
|
80
|
+
- 禁止:「通过对话,郑松得知张子豪在韩国训练」
|
|
81
|
+
- 正确:「吴志斌告诉郑松,张子豪在韩国训练」
|
|
82
|
+
- 禁止:「林风展现了自己的实力」
|
|
83
|
+
- 正确:「林风三招击败对手,围观者倒吸一口凉气」
|
|
84
|
+
- 禁止:「邵阳感到心碎和愤怒」
|
|
85
|
+
- 正确:「邵阳目睹宋丽与人拥抱,表情由刺痛转为冷漠」
|
|
86
|
+
|
|
87
|
+
## 分块与主会话串行
|
|
88
|
+
|
|
89
|
+
Stage 2 按运行计划分别建立旧成果批次和缺章原文块,每批调用一次 chapter-extractor;原文块同次返回逐章事实和跨章观察,旧成果批次只返回跨章观察。其他阶段只消费这些结果和可复用旧资料。
|
|
90
|
+
|
|
91
|
+
> **先分清两个互不相干的轴**(混在一个「块」字里会让 >500 章出现差 30-100 倍的两套规格):
|
|
92
|
+
> - **语义分块**=*在哪里切*。按叙事弧切,产出「块元数据」用于组织分析结果,块可以很大(一个 914 章的书通常 5-10 个弧)。它不决定一次读多少。
|
|
93
|
+
> - **处理批次**=*一次读多少*。受上下文容量约束,原文块按索引字数切分,旧成果批次按资料体积切分。下表指的是**处理批次**。
|
|
94
|
+
|
|
95
|
+
| 单章与上下文情况 | 读取批次策略 | 常见章数 |
|
|
96
|
+
|------|------|--------|
|
|
97
|
+
| 普通章节、上下文充足 | 连续读取并保留跨章状态 | 3 章/批 |
|
|
98
|
+
| 长章、信息密集或上下文较小 | 缩小批次,不截断明显短因果链 | 1-2 章/批 |
|
|
99
|
+
| 超长书 | 批次数量增加;语义弧仍独立于读取批次 | 仍按上述字数与上下文判断 |
|
|
100
|
+
|
|
101
|
+
> 批次数由原文长度和上下文决定,不设“超过 500 章就固定 10-20 章/批”的第二套规则。
|
|
102
|
+
|
|
103
|
+
**主会话串行模式(agent 不可用时的降级)**
|
|
104
|
+
|
|
105
|
+
无法 spawn 子代理时由主会话按同一连续批次契约顺序处理。批次可因主会话上下文更小而缩短,但仍须同次产生逐章事实和跨章观察,不能退回每章一次调用。
|
|
106
|
+
|
|
107
|
+
**不要做的事**
|
|
108
|
+
|
|
109
|
+
- 不要把大语义弧整块塞进一次上下文。
|
|
110
|
+
- 不要固定章数而忽略原文字数、上下文容量和章界。
|
|
111
|
+
- 不要在 Stage 3、4、5 各自重新读取同一批原文。
|
|
112
|
+
- 不要用跳读锚点冒充完整语义覆盖。
|
|
113
|
+
|
|
114
|
+
## 输出模板
|
|
115
|
+
|
|
116
|
+
Stage 2 有两种互斥输入。`raw-original` 只处理运行计划列出的未拆章节块;`existing-results` 只读取旧成果做二次提取。两种结果都形成批次剧情点,只有 `raw-original` 生成新的逐章兼容投影。
|
|
117
|
+
|
|
118
|
+
### 未拆章节的紧凑语义结果
|
|
119
|
+
|
|
120
|
+
`chapter-extractor` 在一次章节块阅读中按章输出以下紧凑字段。它是模型输出,不直接充当旧接口文件:
|
|
121
|
+
|
|
122
|
+
```markdown
|
|
123
|
+
## 第{N}章 {标题}
|
|
124
|
+
|
|
125
|
+
**概要**:{60-160字,按文本披露顺序说明主要行动、原文给出的原因和结果}
|
|
126
|
+
|
|
127
|
+
**因果**:目标:{谁想做什么}|阻碍:{具体阻碍}|行动:{改变局面的选择/行动/外部事件}|结果:{局面变化}|得失:{承担者及得失}
|
|
128
|
+
|
|
129
|
+
**关键行动**:{真正改变局面的一个选择、行动或外部事件}
|
|
130
|
+
|
|
131
|
+
**局面结果**:{行动后的目标、风险、资源或关系净变化}
|
|
132
|
+
|
|
133
|
+
**涉及人物**:{关键人物,顿号分隔;没有写无}
|
|
134
|
+
|
|
135
|
+
**信息变化**:{新披露内容|读者所知|关键角色所知或未知}
|
|
136
|
+
|
|
137
|
+
**状态变化**:{角色/关系/资源/风险的净变化}
|
|
138
|
+
|
|
139
|
+
**三维节奏**:事件{1-5}/5|情绪{类型+1-5}/5|篇幅{1-3}/3|{三轴差异的一句话原因}
|
|
140
|
+
|
|
141
|
+
**章尾钩子**:{类型与具体等待;没有写无}
|
|
142
|
+
|
|
143
|
+
**证据**:{source_locator+5-15字定位词}
|
|
144
|
+
|
|
145
|
+
**情节点**:
|
|
146
|
+
|
|
147
|
+
P{序号} **{标题}**:类型{转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化} | {白描一句话:谁做了什么、结果如何;原文给出的起因一并写进来,不推测动机;埋伏笔的写出伏笔线索} | 涉及{全名,逗号分隔;无人物写无} | 地点{如明确,否则无} | 物品{如涉及,否则无} | 时间{如明确,否则无}
|
|
148
|
+
{可选引用行:≤400字原文连续切片,或 `原文定位:{可 grep 的原句片段}`}
|
|
149
|
+
|
|
150
|
+
主题标签{爱情/亲情/友情/权力/金钱/成长/复仇/悬念/搞笑/热血/日常/其他} | 基调:{紧张/轻松/悲伤/热血/爽/甜/温馨/恐怖/压抑/其他}
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
P{序号+1} ……
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**情节点**是逐章事件序列,下游对标挑章、结构关键点定位和导入反推情绪弧线都按它读:
|
|
158
|
+
|
|
159
|
+
- 原文块每章一般 10–20 个,按字数调节,最多 30;下限是计划给的 `min_plot_points`(字数÷200 四舍五入,至少 1、至多 10);旧成果补摘要下限 1 个,按旧资料写到的事件拆,不凑数;编号从 P1 连续。太粗(整段打架)丢细节,太细(举起右手)碎片化,恰当粒度是一个完整戏剧事件。
|
|
160
|
+
- 严格按原文事件时间顺序,不重排、不归纳。标题 ≤15 字,不与白描同句。
|
|
161
|
+
- 白描只写可见事实:不替角色补原文没写的情感、意图,不写“精彩”“气氛紧张”这类评价,不用“通过对话得知”这类叙事框架词;原文明说的起因和内心活动照写。
|
|
162
|
+
- 字段名后不加冒号;`主题标签` 只填一个值;每个情节点紧跟自己的 `主题标签X | 基调:Y` 行,`基调:` 用全角冒号。
|
|
163
|
+
- 引用只给关键转折、关键台词、写法样本,每章至多 8 条,其余情节点不写引用行。
|
|
164
|
+
|
|
165
|
+
### 批次提交格式
|
|
166
|
+
|
|
167
|
+
提交给 `manage_analysis_run.py commit` 的文件按下列标记包裹,子代理与主会话自己写批次都一样;标记缺失或顺序不对整批拒收:
|
|
168
|
+
|
|
169
|
+
```markdown
|
|
170
|
+
<!-- CHAPTER_START:{N} -->
|
|
171
|
+
## 第{N}章 {标题}
|
|
172
|
+
{上面的紧凑字段与情节点}
|
|
173
|
+
<!-- CHAPTER_END:{N} -->
|
|
174
|
+
(本批每章一块,章号连续、各恰好一次)
|
|
175
|
+
|
|
176
|
+
<!-- BATCH_OBSERVATIONS_START -->
|
|
177
|
+
## 跨章观察
|
|
178
|
+
{下方「批次剧情点」的五个小节}
|
|
179
|
+
<!-- BATCH_OBSERVATIONS_END -->
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
- 旧成果批次(`REUSE-*`):计划列出的摘要缺口落在本批时,为本批每章都写章节块(情节点至少 1 个);没有缺口时不写章节块,改在开头写一行 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->`。
|
|
183
|
+
- 跨章观察块恰好一个,放在所有章节块之后。不要输出 `MODEL_OUTPUT_START/END` 或 `story-long-analyze:cache` 标记(脚本自己加)。
|
|
184
|
+
|
|
185
|
+
`manage_analysis_run.py commit` 校验这些字段后,机械生成缺失的 `章节/第{N}章_摘要.md`:情节点逐条投影并把类型、主题、基调映射到枚举,章级字段保留“概要、关键事件、涉及、章尾钩子、证据”标签。原文块每章情节点少于该章 `min_plot_points` 或多于 30 时整批拒收。同一批完整模型结果和跨章观察写进 `_analysis_cache/批次-{范围ID}.md`,作为恢复证据;全局合并用 `manage_analysis_run.py digest` 取其跨章观察,不整批读取。模型不输出章节卡表,也不为兼容文件再次读取原文。
|
|
186
|
+
|
|
187
|
+
### 批次剧情点
|
|
188
|
+
|
|
189
|
+
`raw-original` 与 `existing-results` 都按范围 ID 写完整批次缓存,内容共用下列结构:
|
|
190
|
+
|
|
191
|
+
```markdown
|
|
192
|
+
## 跨章观察
|
|
193
|
+
|
|
194
|
+
### 剧情点
|
|
195
|
+
|
|
196
|
+
| 剧情点ID | 章节范围 | 起始目标 | 阻碍 | 关键选择/行动/外部事件 | 局面变化 | 得失与承担者 | 后续影响 | 状态 | 证据 |
|
|
197
|
+
|---|---|---|---|---|---|---|---|---|---|
|
|
198
|
+
|
|
199
|
+
### 关键事件与披露候选
|
|
200
|
+
|
|
201
|
+
只列可能进入主线或关键转折表的候选:候选ID|章节|客观事件及大致发生顺序|异常→线索→解释→确认的披露路径|读者所知|关键角色所知|判断变化|叙事作用|证据。过渡动作不建条目。
|
|
202
|
+
|
|
203
|
+
### 关系变化
|
|
204
|
+
|
|
205
|
+
| 关系ID | 主体 → 客体 | 关系动作 | 表面/真实状态 | 触发 | 双方得失 | 变化后状态 | 证据强度 | 证据 |
|
|
206
|
+
|---|---|---|---|---|---|---|---|---|
|
|
207
|
+
|
|
208
|
+
### 三维节奏
|
|
209
|
+
|
|
210
|
+
只列峰值、谷值与三轴明显分离处:章节/剧情点|事件推进及理由|情绪类型/强度及触发|篇幅展开度|展开/压缩/省略/反复的作用|证据。普通章的紧凑分数不在这里重复。
|
|
211
|
+
|
|
212
|
+
### 跨批状态
|
|
213
|
+
|
|
214
|
+
- 已确认别名:{别名→本名,含交接批传下来的}
|
|
215
|
+
- 未闭合剧情点:{ID、主体、目标、阻碍、最后证据}
|
|
216
|
+
- 未决悬念:{读者已知和等待确认的内容}
|
|
217
|
+
- 关系状态:{下一批需继承的有向状态}
|
|
218
|
+
- 待核事项:{冲突、C暂定或缺失}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
剧情点回答“目标 → 阻碍 → 改变局面的行动或外部事件 → 得失 → 后续影响”。它可以跨章和跨读取批次,不能把每个处理批次直接当成剧情点。跨批未闭合时沿用剧情点 ID;Stage 3 再做合并、拆分和边界复核。
|
|
222
|
+
|
|
223
|
+
### 已有成果二次提取
|
|
224
|
+
|
|
225
|
+
`existing-results` 的证据只指向只读计划列出的旧成果文件。完整旧项目增强时用 `<!-- REUSED_CHAPTERS:{起章}-{止章} -->` 声明覆盖,只写批次剧情点及关联观察。计划列出的摘要缺口落在本批时,必须为本批每章从黄金三章生成同一紧凑章块(情节点至少 1 个),否则摘要永远补不上;提交脚本只补缺失文件。旧资料没有的字段写“旧资料未提供”。
|
|
226
|
+
|
|
227
|
+
每个成功批次由 `manage_analysis_run.py commit` 先写完整缓存、再补缺失摘要、最后写 `_progress.md` 状态行。没有逐文件收据、checkpoint 账本或 Stage receipt。
|
|
228
|
+
|
|
229
|
+
**Stage 2 输出自检**:输入模式与 `manage_analysis_run.py plan` 的内存计划一致|原文章节块连续、不重叠且不超过3章/25,000字符|已有成果模式没有读取原文|每章紧凑字段完整|情节点不少于 `min_plot_points`、最多 30、按时序、白描客观|剧情点包含因果与得失|只保留关键事件/披露候选|三维节奏分别解释|跨批状态可继续。
|