@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
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
|
|
66
66
|
| 级别 | 判定 | 动作 |
|
|
67
67
|
|---|---|---|
|
|
68
|
-
| blocking / critical | 核心契约、因果或事实无法成立 |
|
|
69
|
-
| high | 会明显损害追读、人物可信度或核心卖点 |
|
|
70
|
-
| medium | 局部拖慢、重复或表达不清 |
|
|
71
|
-
| low / optional | 不影响成立,只是可增强 |
|
|
68
|
+
| blocking / critical | 核心契约、因果或事实无法成立 | 必须修:先修再继续下游写作 |
|
|
69
|
+
| high | 会明显损害追读、人物可信度或核心卖点 | 必须修:本轮修复 |
|
|
70
|
+
| medium | 局部拖慢、重复或表达不清 | 建议看:按收益排序修复 |
|
|
71
|
+
| low / optional | 不影响成立,只是可增强 | 仅提示:不得包装成硬门槛 |
|
|
72
72
|
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> 本文件的句长、视角、标点、修辞与禁用词是默认写法,服从 [style-resolution.md](style-resolution.md) 的逐维裁决。所选 Gate 检查表达效果,不因作者有意选择某写法就机械删除;获准命中按书级 `.deslop-whitelist` 处理。
|
|
4
4
|
|
|
5
|
-
<!-- 同名副本×
|
|
5
|
+
<!-- 同名副本×4 字节同步,改动后跑 scripts/check-shared-files.sh -->
|
|
6
6
|
|
|
7
|
-
> 识别AI
|
|
7
|
+
> 识别AI写作指纹、改写顺序、禁用词约束、改写范例库。用于正文写作后做去AI味自检和改写时查阅。
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| 写完正文后做去AI自检 | 核心规则 -> AI写作模式检测 -> 质量维度检查 |
|
|
16
16
|
| 改写某段AI味重的文字 | 改写范例库 + 冲突对话改写范例 |
|
|
17
17
|
| 检查是否用了禁用词 | 禁用词与句式速查 -> AI高频词(模式1) |
|
|
18
|
-
| 系统性去除整章AI味 |
|
|
18
|
+
| 系统性去除整章AI味 | 改写顺序 |
|
|
19
19
|
| 检查章尾是否有总结升华 | AI写作指纹 -> 章末总结体 |
|
|
20
20
|
| 判断情绪描写是否告知式 | Show Don't Tell原则 + 去AI味补充技法 |
|
|
21
21
|
| 快速扫描全章质量 | 快速自检口诀 + 质量维度检查 |
|
|
@@ -285,7 +285,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
285
285
|
- 剧透式点破潜台词:「那点笑她看得分明」「谁都看得出他在撒谎」-> 把藏着的挑明了。留着别点破。
|
|
286
286
|
- 定性比喻/盖棺句:「像在宣判一件早已定好的事」「像看一件死物」-> 比喻在替角色下定论。非角色此刻强烈主观感受就删;要留也只能是她带偏见的瞬间感觉,不是客观断言。
|
|
287
287
|
|
|
288
|
-
自检:每句问一遍——这是"角色在经历",还是"作者在讲解/安排"
|
|
288
|
+
自检:每句问一遍——这是"角色在经历",还是"作者在讲解/安排"?凡作者跳出来讲,删,或改成角色视角内的呈现。根治办法是锁定深度限知视角:只写视角人物此刻看得见、听得见、想得到的,镜头钉死在角色身体里,作者就没位置跳出来了。
|
|
289
289
|
|
|
290
290
|
改法优先级:先删或原位替换污染句,不在段尾另补“人味”尾巴。需要补信息时,把原来的总结/动机/评价句改成角色当下能碰到的问题、手续、回信、付款、门外动静等具体压力;已有手机/屏幕/公告/门牌/表单等信息,优先作为角色看见的场内载体保留,不要转写成叙述者解释。具体载体跟剧情走,不套固定清单。
|
|
291
291
|
|
|
@@ -372,9 +372,11 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
372
372
|
|
|
373
373
|
---
|
|
374
374
|
|
|
375
|
-
##
|
|
375
|
+
## 改写顺序(只排所选 Gate 的先后)
|
|
376
376
|
|
|
377
|
-
|
|
377
|
+
下面三步只决定所选 Gate 内问题的处理先后,不另起一轮全篇去味;某一步没有对应的所选 Gate 就跳过。
|
|
378
|
+
|
|
379
|
+
### 第一步:去泛化(Strip Generic)
|
|
378
380
|
- 抽象情绪总结句 -> 按规则 2 判断:删重复说明,保留准确直写,需要时用原文已有信息落地
|
|
379
381
|
- 假深度句 -> 删
|
|
380
382
|
- 意义膨胀 -> 缩小到具体影响
|
|
@@ -384,9 +386,9 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
384
386
|
- 过度使用"于是""然而""此刻" -> 删掉一半
|
|
385
387
|
- 所有角色说话一样"高级" -> 区分语气
|
|
386
388
|
|
|
387
|
-
|
|
389
|
+
**原则**:能删就删,不能删就用具体细节替换。
|
|
388
390
|
|
|
389
|
-
###
|
|
391
|
+
### 第二步:去书面化(Cut Professional Diction)
|
|
390
392
|
- 分析性用词("机制""结构""逻辑""体系"出现在小说中)-> 换成日常表达
|
|
391
393
|
- 抽象名词滥用 -> 直接说事
|
|
392
394
|
- 体制内用语("进一步""深入""推进""落实")-> 删
|
|
@@ -394,7 +396,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
394
396
|
|
|
395
397
|
**例外**:保留专业感的场景(历史题材正式用语、文学向刻意密度、喜剧夸张修辞)。
|
|
396
398
|
|
|
397
|
-
###
|
|
399
|
+
### 第三步:回自然感(Restore Natural Presence)
|
|
398
400
|
- 具体的感官细节(气味、温度、触感)
|
|
399
401
|
- 角色说话方式的区分(不同人不同语气)
|
|
400
402
|
- 句首变化:连续 3+ 句用同一主语或同一词性开头时换开法(动作、场景、对话引入)
|
|
@@ -407,7 +409,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
407
409
|
|
|
408
410
|
### 执行范围
|
|
409
411
|
|
|
410
|
-
调用方指定 Gate 时,只处理选定 Gate
|
|
412
|
+
调用方指定 Gate 时,只处理选定 Gate;改写顺序只排先后,不重新分级或扩大范围。未指定范围时,按实际问题选择适用检查。
|
|
411
413
|
|
|
412
414
|
### 自检清单
|
|
413
415
|
- 对话自然度检查:对话是否使用口语化表达,是否避免了书面语/正式腔调
|
|
@@ -551,5 +553,4 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
551
553
|
- [ ] **detector advisory 逐条复核**:`micro-action-tic` / `stock-reaction-tic` / `abstract-summary-tic` / `cliche-density-tic` / `metaphor-density-tic` / `reasoning-chain-tic` / `system-notice-formality-tic` / `overcompressed-prose-tic` / `low-connective-density-tic` / `action-list-tic` 命中时按脚本给出的修法处理:先通读判断是不是机械复现,确属再改;功能性写法保留或标 `[需复核]`,不做同义词轮换、不机械注水
|
|
552
554
|
- [ ] **不做硬指标投机**:不为反检测强制每句换行、50-60 字一行、对话 50%-60%、英文点省略号,或把 `地/得` 全改成 `的`
|
|
553
555
|
- [ ] **任务卡点服从原文边界**:抽象总结若改成角色办事被卡住,必须来自原文已有任务/证据/手续/物件缺口;不新增原文没有的事件链
|
|
554
|
-
- [ ] **去AI三遍法执行**:轻度只做Pass1,中度做Pass1+2,重度完整三遍
|
|
555
556
|
- [ ] **对话自然度测试**:无书面语痕迹 = 通过
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## 默认优先检查的句式(先对照本书文风)
|
|
8
8
|
|
|
9
|
-
写网文最毒的 AI
|
|
9
|
+
写网文最毒的 AI 句式,作者一旦养成就会反复出现。以下是优先检查的句式:
|
|
10
10
|
|
|
11
11
|
| 毒级 | 句式 | 错误例 | 修法 |
|
|
12
12
|
|------|------|--------|------|
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
| ★★★ | 抽象命运/开端收束:"命运……棋局/獠牙" / "这一刻终于明白" / "反击才刚刚开始" | "命运终于露出獠牙;属于他的反击才刚刚开始" | 回到角色当下可见的文件、动作、对话或物理后果 |
|
|
22
22
|
| ★★ | 章末预告 "他不知道的是……" | "他不知道的是,更大的风暴即将来临" | 用具体钩子物件/事件收束,避免空泛预告 |
|
|
23
23
|
|
|
24
|
-
>
|
|
24
|
+
> ★★★★★ 命中一处就要改;轻/中/重分档只按去 AI 味诊断的密度指标定。
|
|
25
25
|
|
|
26
26
|
`check-ai-patterns.js` 的 `formulaic-parallelism` 还会提示「至于X不X,怎么X」和同动词「不V A,不V B」。这两类可能是功能性口语,因此只做 advisory;Gate B 必须连同台词读语境复核,若只是复述细纲/前文就压成一次判断,不能因 hook 豁免台词而跳过。
|
|
27
27
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# 对标文风召回(story-explorer · benchmark_style_load)
|
|
2
|
+
|
|
3
|
+
只在 `query_type` 为 `benchmark_style_load` 时读本文件;其他查询类型不读。输出同样遵守 agent 定义里的「纯 JSON、字符串转义」规则,原文锚点片段尤其要转义。
|
|
4
|
+
|
|
5
|
+
## 流程
|
|
6
|
+
|
|
7
|
+
加载对标书的情绪模块 + 节奏索引 + 文风 + 按本章情绪/基调匹配可参考章节 + 原文锚点片段。
|
|
8
|
+
|
|
9
|
+
1. **解析输入**:项目目录 + 本章情绪/基调 + (可选)本章爽点类型 + (可选)本章目标字数
|
|
10
|
+
2. **主对标书选择**:
|
|
11
|
+
- 先按项目目录名、`.active-book` 与本书设定识别当前作品;`拆文库/{当前书}/` 是 story-import 的本书分析,不是对标候选。历史误建的 `对标/{当前书}/` 也必须排除,并返回 `gaps.self_benchmark_ignored: true`
|
|
12
|
+
- `Read 设定/题材定位.md`,提取 `主对标书` 字段
|
|
13
|
+
- 若有且不是当前作品 → 用该书;若字段指向当前作品 → 忽略该字段并设置 `gaps.self_benchmark_ignored: true`
|
|
14
|
+
- **路径一律用字段值逐字拼接**:不添加《》等任何装饰、不改一字——拼错时 Glob 只会静默返回空,与「书不存在」无法区分
|
|
15
|
+
- **登记的主对标按步骤 3 探不到书目录**(目录下探不到任何文件)→ 返回 `gaps.benchmark_book_missing: true` 与 `expected_path`(原样写入实际探测的完整路径,供核对拼写),`results` 置空**停止**;不得改用其他书,也不得走下面的缺失回退。**书目录存在但缺 `文风.md` 不属于本情形**——照常进入步骤 4-6,由步骤 6 归类为 `profile_missing`
|
|
16
|
+
- 若字段缺失或已忽略 → `Glob 对标/*/**/*`,从命中文件所属的书目录(`对标/` 下的第一层目录,排除当前作品)取字典序第一个,并在 `gaps.main_benchmark_unspecified: true` 提示主对标书未指定;**枚举条件是书目录下有文件,不是有 `文风.md`**——缺文风但资料完整的候选仍算命中
|
|
17
|
+
- 若排除后无命中,继续向上找工作区根下的 `拆文库/*/**/*`,同样排除当前作品;仍无 → 返回 `gaps.no_benchmark: true`,`results` 置空,**不报错、不继续读文风**
|
|
18
|
+
3. **对标书路径查找(只判书目录有效性,不判文风)**:优先探 `{项目}/对标/{书名}/**/*`,回退探 `拆文库/{书名}/**/*`(向上找到工作区根,再下钻拆文库);探针是目录下的任意文件——Glob 不接受纯目录模式,`{书名}/` 恒返回空。任一处命中文件即视为书目录有效,进入步骤 4;两处都无命中才是 `benchmark_book_missing`。**不得用 `文风.md` 兼作目录存在性探针**——那会把「书在但缺文风」误判成「书不存在」,吞掉步骤 6 的 `profile_missing` 与调用方的 `custom_style` 降级分支
|
|
19
|
+
4. **主产物探针与资料代际**:
|
|
20
|
+
- 先探 `{对标书路径}/剧情/情绪模块.md` 和 `{对标书路径}/剧情/节奏.md`,两者都存在才进入当前权威召回。
|
|
21
|
+
- 任一未命中时直接按下面两项返回并停止准备;`schema_version` 不参与新旧判断。两份老权威产物都存在时正常召回,缺少因果、双时间线或三维节奏等新增内嵌字段不阻断。
|
|
22
|
+
- 缺 `剧情/情绪模块.md` → `gaps.missing_primary_contract: true`、`gaps.module_missing: true`,`repair_action` 写“重跑 /story-long-analyze Stage 3,补齐情绪模块”。
|
|
23
|
+
- 缺 `剧情/节奏.md` → `gaps.missing_primary_contract: true`、`gaps.rhythm_missing: true`,`repair_action` 写“重跑 /story-long-analyze Stage 3,补齐节奏索引”。
|
|
24
|
+
5. **当前权威召回**:
|
|
25
|
+
- 对存在的 `{对标书路径}/剧情/情绪模块.md`,从读者需求、情绪引擎或可复现模块中选择 1 条 `selected_emotion_module`,写入 `module_source_path`。
|
|
26
|
+
- 对存在的 `{对标书路径}/剧情/节奏.md`,从关键信息推进、情绪触动点、爆发/冷却中选择 1 条 `rhythm_reference`,写入 `rhythm_source_path`。
|
|
27
|
+
- 若两个权威文件都存在但对同一章节/模块的读者情绪或爆发点描述互相矛盾,保留两条原文摘要,并返回 `gaps.module_rhythm_conflict: true` 与 `gaps.conflict: "..."`;调用方按两个权威文件优先于 `拆文报告.md` / `故事线.md` 的规则处理,禁止自行改写
|
|
28
|
+
6. **读文风**:
|
|
29
|
+
- `Read {对标书路径}/文风.md`
|
|
30
|
+
- 不存在 → 返回 `gaps.profile_missing: true, expected_path: "..."`,**不继续后续步骤**;书目录本身有效,不得改填 `benchmark_book_missing`——调用方按 `custom_style` 决定继续或停止
|
|
31
|
+
- 检查「生成记录」里的 `文风可用:否` → 返回 `gaps.profile_degenerate: true`,后续不把文风作为强约束
|
|
32
|
+
7. **可用性检查(只读可执行)**:
|
|
33
|
+
- 本 agent 只有 `Read/Glob/Grep`,不能调用 Bash/stat。
|
|
34
|
+
- 只读取文风文件「生成记录」:若写有 `文风可用:否`、`需重生`、`原文缺失` 等标记 → `gaps.profile_stale: true` 或 `gaps.profile_degenerate: true`,并在 `stale_reason` 写明原因。
|
|
35
|
+
- 不做文件时间比较;默认 `profile_stale: false`。
|
|
36
|
+
8. **章节基调候选集**:
|
|
37
|
+
- `Glob {对标书路径}/章节/*_摘要.md`
|
|
38
|
+
- 对每个文件 `Grep -hE '基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)'`(**全角冒号**,不锚定行首)拿到该章所有情节点基调
|
|
39
|
+
- 章基调聚合:众数;并列时按 grep 输出顺序取最早
|
|
40
|
+
- 候选集 = 章基调 == 本章情绪/基调的章节列表
|
|
41
|
+
9. **相近基调兜底**(完全没有同基调章节时):
|
|
42
|
+
- 先从本章细纲/查询参数里判断更接近“紧张、热血、爽、甜、轻松、温馨、悲伤、恐怖、压抑”哪一类;不要写死对照表。
|
|
43
|
+
- 选择一个最接近的基调重新筛候选集,并在结果里说明“使用相近基调兜底”。
|
|
44
|
+
- 仍空 → `gaps.tone_match_failed: true`,跳过匹配章节读取,但仍返回整书文风、`selected_emotion_module` 和 `rhythm_reference`。
|
|
45
|
+
10. **多候选章节选择规则**(候选集多章时):
|
|
46
|
+
- L1 爽点类型最强匹配(调用方提供爽点字段时,对每个候选章读 `_摘要.md` 的「关键事件」判断)
|
|
47
|
+
- L2 摘要情节点数 / 可读到的原文章节估算长度最接近本章目标字数(如提供);本 agent 不用 Bash 统计,拿不到原文长度时跳过 L2,不得把摘要文件字数当原文字数
|
|
48
|
+
- L3 章节号最小
|
|
49
|
+
11. **读匹配章节资料**:
|
|
50
|
+
- 先 `Read {对标书路径}/章节/第K章_摘要.md`,提取本章基调序列、关键事件、爽点/情绪节点
|
|
51
|
+
- 新版轻量摘要直接读取「信息变化」「状态变化」「章尾钩子」「三维节奏」字段;旧摘要缺这些字段时再读取「关键信息与扩写技法」表,作为 `matched_chapter_techniques` 的证据/补足;两者都不覆盖 `剧情/节奏.md`
|
|
52
|
+
- 若 `{对标书路径}/章节/第K章_深度拆解.md` 存在,再读取并提取「可借鉴要素」+ 反应层 + 章尾钩子类型
|
|
53
|
+
- 若同章深度拆解不存在(常见:只有黄金三章有深度拆解),不要失败;回退读取 `第1章_深度拆解.md`、`第2章_深度拆解.md`、`第3章_深度拆解.md` 中基调最接近的一章,或仅使用文风「可借鉴技巧」
|
|
54
|
+
- 在 `gaps.matched_deep_dive_missing: true` 标记该回退
|
|
55
|
+
12. **抽取原文锚点片段**(从文风文件里):
|
|
56
|
+
- 从文风文件 `## 原文锚点片段` 段读出所有按基调标注的片段
|
|
57
|
+
- 按本章情绪/基调选 1-2 段(精确匹配优先,无则取相近基调)
|
|
58
|
+
- 完整传递 300-500 字原文(不要截断/概括)
|
|
59
|
+
13. **返回结构化 JSON**
|
|
60
|
+
|
|
61
|
+
## 缺失即停与降级
|
|
62
|
+
|
|
63
|
+
- 缺两个老权威主产物(`剧情/情绪模块.md`、`剧情/节奏.md`)时返回 `missing_primary_contract` 与 `repair_action`,停止准备。
|
|
64
|
+
- 登记的主对标书目录探不到时返回 `benchmark_book_missing` 与 `expected_path`,不换书。
|
|
65
|
+
- 书目录在、缺 `文风.md` 归 `profile_missing`,由调用方按 `custom_style` 决定继续或停止。
|
|
66
|
+
|
|
67
|
+
## 输出结构
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"query_type": "benchmark_style_load",
|
|
72
|
+
"results": {
|
|
73
|
+
"style_profile_path": "对标/{书名}/文风.md",
|
|
74
|
+
"style_profile_summary": "<≤200字 提取核心:标点习惯 + 对话技法 + 情绪交替模式>",
|
|
75
|
+
"selected_emotion_module": "<从 剧情/情绪模块.md 选出的读者需求/触发器/戏剧单元/可复现骨架;缺失时为 null>",
|
|
76
|
+
"rhythm_reference": "<从 剧情/节奏.md 选出的关键信息推进/情绪触动点/爆发节奏/冷却参考;缺失时为 null>",
|
|
77
|
+
"module_source_path": "对标/{书名}/剧情/情绪模块.md",
|
|
78
|
+
"rhythm_source_path": "对标/{书名}/剧情/节奏.md",
|
|
79
|
+
"matched_chapter_K": 14,
|
|
80
|
+
"matched_chapter_techniques": "<匹配章摘要 + 深度拆解/黄金三章回退中的可借鉴要素,≤300字>",
|
|
81
|
+
"anchor_excerpts": [
|
|
82
|
+
{"tone": "悲伤", "source": "第14章 第7段(行 823-901)", "demo_point": "对话潜台词手法", "text": "<300-500字原文>"},
|
|
83
|
+
{"tone": "热血", "source": "第8章 第3段(行 401-465)", "demo_point": "爽点铺放比", "text": "<300-500字原文>"}
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"source_files": ["设定/题材定位.md", "对标/{书名}/剧情/情绪模块.md", "对标/{书名}/剧情/节奏.md", "对标/{书名}/文风.md", "对标/{书名}/拆文报告.md", "对标/{书名}/章节/第14章_深度拆解.md"],
|
|
87
|
+
"gaps": {
|
|
88
|
+
"no_benchmark": false,
|
|
89
|
+
"module_missing": false,
|
|
90
|
+
"rhythm_missing": false,
|
|
91
|
+
"module_rhythm_conflict": false,
|
|
92
|
+
"conflict": null,
|
|
93
|
+
"missing_primary_contract": false,
|
|
94
|
+
"repair_action": null,
|
|
95
|
+
"profile_missing": false,
|
|
96
|
+
"profile_stale": false,
|
|
97
|
+
"profile_degenerate": false,
|
|
98
|
+
"stale_reason": null,
|
|
99
|
+
"main_benchmark_unspecified": false,
|
|
100
|
+
"benchmark_book_missing": false,
|
|
101
|
+
"self_benchmark_ignored": false,
|
|
102
|
+
"raw_text_unavailable": false,
|
|
103
|
+
"tone_match_failed": false,
|
|
104
|
+
"matched_deep_dive_missing": false
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
```
|
|
@@ -151,7 +151,7 @@
|
|
|
151
151
|
|
|
152
152
|
检查角色行为是否只是为了让剧情往某方向发展。如果角色"恰好"做了推进剧情的事但没有自身动机,标记为"人设偏移",必须为该行为补充角色层面的合理理由。
|
|
153
153
|
|
|
154
|
-
###
|
|
154
|
+
### 第二步:目标情绪确认
|
|
155
155
|
|
|
156
156
|
写每段前明确三个要素:
|
|
157
157
|
1. 本段目标情绪:这段剧情要让读者产生什么情绪?
|
|
@@ -368,6 +368,54 @@
|
|
|
368
368
|
|
|
369
369
|
---
|
|
370
370
|
|
|
371
|
+
## 后宫文女主人设设计法
|
|
372
|
+
|
|
373
|
+
### 核心思路
|
|
374
|
+
后宫文的关键是弱化男主"主动渣"的感觉,让女主自身设定成为推动后宫的主力。
|
|
375
|
+
|
|
376
|
+
### 设计原则
|
|
377
|
+
1. **女主人设要预设方向**:开书前就设计好每个女主的核心特质
|
|
378
|
+
2. **差异化设计**:不同女主有完全不同的价值观和背景
|
|
379
|
+
3. **同居培养感情**:开局让女主们同住一个屋檐下,彼此成为朋友
|
|
380
|
+
|
|
381
|
+
### 温水煮青蛙法
|
|
382
|
+
以三个女主为例:
|
|
383
|
+
|
|
384
|
+
| 角色 | 人设设计 | 在后宫中的作用 |
|
|
385
|
+
|------|----------|---------------|
|
|
386
|
+
| 青梅(正宫) | 传统价值观,占据防守位 | 从小一起长大,天然正宫 |
|
|
387
|
+
| 女主B | 家庭圆满家教开明,理性看待感情 | 不在意名分,只在意快乐 |
|
|
388
|
+
| 女主C | 缺少父爱和社交,爱情观模糊 | 不存在一夫一妻制思想束缚 |
|
|
389
|
+
|
|
390
|
+
核心逻辑:
|
|
391
|
+
- 青梅占据正宫与防守位
|
|
392
|
+
- 另两个女主不在意后宫,只在意跟主角在一起
|
|
393
|
+
- 把"主角脚踏多条船"的问题转化为"青梅防守 vs 另两人共享"的问题
|
|
394
|
+
- 一点一点突破青梅的防守底线,等反应过来时已经是既成事实
|
|
395
|
+
|
|
396
|
+
|
|
397
|
+
## 男频极简爱情线构型
|
|
398
|
+
|
|
399
|
+
### 核心原则
|
|
400
|
+
男频爱情线不需要复杂的情感博弈,核心是"英雄救美 + 事业舞台 + 对手衬托"三要素。
|
|
401
|
+
|
|
402
|
+
### 极简构型
|
|
403
|
+
1. **英雄救美**:女主陷入困境 -> 主角用金手指/实力解决 -> 建立初始好感
|
|
404
|
+
2. **事业舞台**:主角在事业上展示金手指 -> 女主在场作为重要观众 -> 好感随事业成就升级
|
|
405
|
+
3. **对手衬托**:情敌/对手同时是事业对手 -> 打败对手既是事业胜利也是感情胜利
|
|
406
|
+
|
|
407
|
+
### 关键操作
|
|
408
|
+
- 女主的每一次好感升级都绑定在主角的事业成就上,不单独写纯感情戏
|
|
409
|
+
- 女主有自己的事业线/目标,不是花瓶——她的事业目标与主角有交叉但独立
|
|
410
|
+
- 情敌的价值在于他同时威胁主角的事业和感情,打脸时有双重爽感
|
|
411
|
+
- 感情节奏跟着事业节奏走:事业低谷时感情拉扯,事业高峰时感情升温
|
|
412
|
+
|
|
413
|
+
### 爱情线与事业线融合检查
|
|
414
|
+
- 删掉所有爱情线段落,事业线是否还成立?如果不行 = 爱情线拖后腿了
|
|
415
|
+
- 删掉所有事业线段落,爱情线是否还有看点?如果不行 = 爱情线太弱
|
|
416
|
+
- 理想状态:两条线互相增强,拆开各自能看,合在一起更好看
|
|
417
|
+
|
|
418
|
+
|
|
371
419
|
## 质量检查清单
|
|
372
420
|
|
|
373
421
|
每次完成角色关系/感情线设计后,逐项核查:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 去AI味 Gate 执行细则
|
|
2
2
|
|
|
3
|
-
本文件承接调用方选定 Gate;只执行所选范围,不扩大为全量。表达先按 [style-resolution.md](style-resolution.md) 的本书裁决,剧情和信息保护边界仍有效。写作自检与写后审查沿用下方「写手 A-G
|
|
3
|
+
本文件承接调用方选定 Gate;只执行所选范围,不扩大为全量。表达先按 [style-resolution.md](style-resolution.md) 的本书裁决,剧情和信息保护边界仍有效。写作自检与写后审查沿用下方「写手 A-G 判据」;独立去味沿用「删除优先判断」及各门禁详细步骤。模式解释、改写顺序与范例见 [anti-ai-writing.md](anti-ai-writing.md)。
|
|
4
4
|
|
|
5
5
|
#### 删除优先判断(先于各 Gate)
|
|
6
6
|
|
|
@@ -8,10 +8,10 @@
|
|
|
8
8
|
|
|
9
9
|
1. 删掉后是否丢失伏笔、钩子、角色特征、情节推进、必要信息或必要转折?都不丢则直接删,不进 Gate。
|
|
10
10
|
2. 丢任意一项 → 保留信息进对应 Gate 改写(只删"怎么说"的 AI 味,不删"说什么")。
|
|
11
|
-
3.
|
|
11
|
+
3. 删除服从过度去AI味保护:不整段删、不删剧情功能;删除比例上限按 AI 味等级,轻度 ≤15%,中度 ≤25%,重度 ≤35%;若删后跌破本次字数范围的下沿,改为降AI重写,不删完再用新废话凑字。
|
|
12
12
|
4. 删完通读:若整段只剩最短句、结构虚词被扫光、每个动作都带「了一下」式尾巴,就是删过头的电报体(见 anti-ai-writing.md 模式 9)——把非峰值叙述句恢复成自然白话,不是接着删。删的是废话,不是中文的自然冗余;这条只调删减的度,禁用词与套路句式的清理力度不因此降低。
|
|
13
13
|
|
|
14
|
-
以下为各 Gate 的详细规则(删不掉的标记项按此润色;无论 agent
|
|
14
|
+
以下为各 Gate 的详细规则(删不掉的标记项按此润色;无论 agent 还是主会话执行,均须遵循):
|
|
15
15
|
|
|
16
16
|
#### 门禁 A:禁用词替换
|
|
17
17
|
|
|
@@ -125,6 +125,7 @@ AI写作的结尾特征:总想总结、升华、点题。
|
|
|
125
125
|
- 删掉总结性语句
|
|
126
126
|
- 用动作/场景收尾,不要用感慨收尾
|
|
127
127
|
- 如果结尾有"他知道...""这一刻..."→ 基本可以删
|
|
128
|
+
- 短篇(单个 正文.md)带主角主观情绪的审判句、火葬场预告、心死式章尾是卖点,保留;只删中立、与角色情绪无关的作者讲解。
|
|
128
129
|
|
|
129
130
|
#### 门禁 G:去解释腔/上帝感/安排感
|
|
130
131
|
|
|
@@ -136,9 +137,25 @@ AI写作的结尾特征:总想总结、升华、点题。
|
|
|
136
137
|
- 删替读者定性:「演得真好」「这出戏她看过一遍」「他就是这样薄情」→ 删,证据留给读者判断。
|
|
137
138
|
- 删隐蔽的软评判:评判性副词(「关切得恰到好处」)、剧透点破(「那点笑她看得分明」)、定性比喻(「像在宣判一件早已定好的事」)→ 删,或改成角色此刻带偏见的瞬间感觉。
|
|
138
139
|
- 注意:Gate G 删的是"非故事性的作者旁白",不是删情节。删完若变薄,靠角色动作/对话补,不补叙述者解说。
|
|
140
|
+
- 短篇(单个 正文.md)带主角主观情绪的审判句、火葬场预告、心死式章尾是卖点,保留;只删中立、与角色情绪无关的作者讲解。
|
|
139
141
|
|
|
140
142
|
**任务卡点修法边界**:任务卡点不是固定公式,也不是通用补流程按钮。原文已有任务、证据、手续、物件缺口时,可以把解释总结压成角色当下要处理的具体卡点;原文没有缺口时,只删解释或改动作/对话,不新造剧情。所有卡点都先做“删掉试试”:删掉后不丢伏笔、钩子、信息、关系变化或必要转折,就压缩或删除。
|
|
141
143
|
|
|
144
|
+
## 写法抽查(审查侧,只指认已有问题)
|
|
145
|
+
|
|
146
|
+
对爽点段与检测器标记处逐问。只许指出正文里**已有**的那一处,没有就答「无」,**不许为了让某一问有答案回头补内容**。详写的关键场景里,遮住一处发生、感知或反应后读者什么也没损失,就判为可删并报告位置;套式反应按 `banned-words.md`「套式反应逐处删除测试」逐处过。审稿只报告、不改文件;去味执行者再按删除保护落改,只报告实际删改与保留理由。
|
|
147
|
+
|
|
148
|
+
| # | 自问 | 不合格的样子 |
|
|
149
|
+
|---|---|---|
|
|
150
|
+
| 1 | 本章最大的那次状态变化,读者看见了几个中间态? | 只给了"起点"和"终点";或同一状态换十种说法说十遍 |
|
|
151
|
+
| 2 | 有没有一组同类并列项被平均分配了笔墨? | 三样物件、四拨人马各给同样的分辨率 |
|
|
152
|
+
| 3 | 本章的设定/能力/威胁,是被说出来的,还是被谁付了代价试出来的? | 旁白直接给出结论,读者没有自己发现的机会 |
|
|
153
|
+
| 4 | "厉害/难得/要命"这些判断,是谁给出的?他有什么立场? | 叙述者自己下的判断;结论由旁白先说出来、在场的人只负责吃惊;或标价人就在场却没标价 |
|
|
154
|
+
| 5 | 每个给了镜头的人,此刻在为自己争取什么? | 遮住名字认不出是谁说的;所有人同向配合主角;用手部/喉部微动作代替立场;或把他的算计写成一段旁白独白 |
|
|
155
|
+
| 6 | 该说出口的话,是写出来了还是被概括了? | "他吼了一声""他说了句什么""三言两语解释了缘由";本该来回几轮的交锋压成一次说完 |
|
|
156
|
+
| 7 | 本章最重的那一句,是不是最短的那一段? | 最重的一拍写成了全章最长的段落 |
|
|
157
|
+
| 8 | 判为"密"的段落里,有没有量词加概括? | "一连七八下""半晌""众人纷纷"出现在密处 |
|
|
158
|
+
|
|
142
159
|
---
|
|
143
160
|
|
|
144
161
|
## 写手 A-G 判据
|
|
@@ -150,5 +167,5 @@ AI写作的结尾特征:总想总结、升华、点题。
|
|
|
150
167
|
- **C 情绪**:删空泛 AI 情绪总结句;上下文已成立就删补充说明;不设「情绪词→身体动作」默认转换。
|
|
151
168
|
- **D 节奏**:只拆臃肿修饰、堆叠比喻、信息过载的长句;句长按书级文风带执行,长短随情绪 beat 交错——沉淀放慢、冲突骤短,忌通篇同长度。
|
|
152
169
|
- **E 对话去腔调**:所有角色同一语气→按语言风格档案差异化;犹豫/打断/拖长用动作、短句或换行承担。
|
|
153
|
-
- **F
|
|
154
|
-
- **G
|
|
170
|
+
- **F 结尾去升华**:大段抒情收尾→安静细节收尾;短篇例外见门禁 F。
|
|
171
|
+
- **G 去解释腔/上帝感**:先按本书叙述姿态判断,短篇例外见门禁 G;授权的有限全知、评论或旁人内心不因形式删除。删无功能的解释、未经授权的剧透、重复总结和空泛定性(之所以/原来/这意味着/她不知道的是/殊不知/多年以后);承担锚点或情绪的压成角色白话;已有场内载体(手机/公告/屏幕)优先保留为角色看到的文本。
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
# 情绪落到纸面:写一章时的情绪执行
|
|
2
|
+
|
|
3
|
+
> 细纲与单元卡已经定了本章的目标情绪和它在弧线上的位置;本文件只管写这一章时怎么把情绪写出来。选弧线、排节奏、管期待是排纲时的事,见 emotional-arc-design.md。
|
|
4
|
+
|
|
5
|
+
## 情绪核心公式
|
|
6
|
+
|
|
7
|
+
写每个场景时分离三层情绪:
|
|
8
|
+
1. 角色自己的情绪(角色感受到的)
|
|
9
|
+
2. 文本传递的情绪(文本要让读者感受的)
|
|
10
|
+
3. 读者实际感受的情绪(读者真正的体验)
|
|
11
|
+
|
|
12
|
+
同一场景三层可以完全不同:角色在哭,文本在撩,读者在爽。
|
|
13
|
+
|
|
14
|
+
例:女主当众被退婚,强忍着没掉泪——角色:屈辱;文本写她嘴角还挂着笑(角色:撑);读者替她憋着、等后面打脸(读者:爽前蓄力)。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 前反应-复现-后反应情绪结构
|
|
19
|
+
|
|
20
|
+
用于虐/悲壮/遗憾类场景。按顺序执行三步:
|
|
21
|
+
|
|
22
|
+
1. **前反应**:让读者提前知道坏结果,然后描写美好事物(读者预知法)
|
|
23
|
+
2. **复现**:让坏结果真的发生
|
|
24
|
+
3. **后反应**:主角真情流露,作出改变(愤怒/拼命/振作)
|
|
25
|
+
|
|
26
|
+
操作示例:知道某人一天后要死 -> 让她经历美好(逛街、看烟花) -> 她真的死了 -> 主角愤怒拼命
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## 以小搏大情绪结构
|
|
31
|
+
|
|
32
|
+
用于热血/逆袭类场景。按顺序执行四步:
|
|
33
|
+
|
|
34
|
+
1. **前反应**:铺垫弱者的苦,用对比强化(现在的弱 vs 以前的强)
|
|
35
|
+
2. **复现**:强者到来,"我知道你们苦,我来了"
|
|
36
|
+
3. **后反应**:弱势方被拯救
|
|
37
|
+
4. **士气如虹**:整体气势转变
|
|
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
|
+
1. **抛出共鸣炸弹**:找到角色最易引发共鸣的情感锚点(梦想、仇恨、恐惧)
|
|
67
|
+
2. **让读者变见证者**:展示角色付出和挣扎,每一步伴随收获
|
|
68
|
+
3. **让读者变参与者**:通过足够铺垫和细节,产生命运共同体感
|
|
69
|
+
|
|
70
|
+
### 短期情绪引导
|
|
71
|
+
|
|
72
|
+
短期靠独立事件冲突。**直白冲突比繁杂情节更容易引起共鸣**。
|
|
73
|
+
|
|
74
|
+
两种事件类型:
|
|
75
|
+
- **推动情节发展的事件**:让读者对角色处境产生认同
|
|
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
|
+
|
|
109
|
+
### 实操要点
|
|
110
|
+
|
|
111
|
+
- 每个场景标注:读者当前情绪在哪个阶段;下一步是调动还是释放。
|
|
112
|
+
- 只有调动没有释放 = 读者憋屈弃书
|
|
113
|
+
- 只有释放没有调动 = 爽感平淡无力
|
|
114
|
+
- 调动程度决定释放爽度:仇恨拉多满,打脸就多爽
|
|
115
|
+
|
|
116
|
+
---
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# 情绪弧线操作手册
|
|
2
|
-
>
|
|
2
|
+
> 排卷纲、设计剧情单元时选弧线、排节奏、管期待的速查手册。写一章时怎么把情绪落到纸面见 emotion-on-page.md。
|
|
3
3
|
|
|
4
4
|
## 决策路由表
|
|
5
5
|
|
|
@@ -197,42 +197,6 @@
|
|
|
197
197
|
|
|
198
198
|
---
|
|
199
199
|
|
|
200
|
-
## 情绪核心公式
|
|
201
|
-
|
|
202
|
-
写每个场景时分离三层情绪:
|
|
203
|
-
1. 角色自己的情绪(角色感受到的)
|
|
204
|
-
2. 文本传递的情绪(文本要让读者感受的)
|
|
205
|
-
3. 读者实际感受的情绪(读者真正的体验)
|
|
206
|
-
|
|
207
|
-
同一场景三层可以完全不同:角色在哭,文本在撩,读者在爽。
|
|
208
|
-
|
|
209
|
-
例:女主当众被退婚,强忍着没掉泪——角色:屈辱;文本写她嘴角还挂着笑(角色:撑);读者替她憋着、等后面打脸(读者:爽前蓄力)。
|
|
210
|
-
|
|
211
|
-
---
|
|
212
|
-
|
|
213
|
-
## 前反应-复现-后反应情绪结构
|
|
214
|
-
|
|
215
|
-
用于虐/悲壮/遗憾类场景。按顺序执行三步:
|
|
216
|
-
|
|
217
|
-
1. **前反应**:让读者提前知道坏结果,然后描写美好事物(读者预知法)
|
|
218
|
-
2. **复现**:让坏结果真的发生
|
|
219
|
-
3. **后反应**:主角真情流露,作出改变(愤怒/拼命/振作)
|
|
220
|
-
|
|
221
|
-
操作示例:知道某人一天后要死 -> 让她经历美好(逛街、看烟花) -> 她真的死了 -> 主角愤怒拼命
|
|
222
|
-
|
|
223
|
-
---
|
|
224
|
-
|
|
225
|
-
## 以小搏大情绪结构
|
|
226
|
-
|
|
227
|
-
用于热血/逆袭类场景。按顺序执行四步:
|
|
228
|
-
|
|
229
|
-
1. **前反应**:铺垫弱者的苦,用对比强化(现在的弱 vs 以前的强)
|
|
230
|
-
2. **复现**:强者到来,"我知道你们苦,我来了"
|
|
231
|
-
3. **后反应**:弱势方被拯救
|
|
232
|
-
4. **士气如虹**:整体气势转变
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
200
|
## 冲突中的情绪层次与死亡赌注
|
|
237
201
|
|
|
238
202
|
### 选择死亡赌注
|
|
@@ -257,59 +221,6 @@
|
|
|
257
221
|
|
|
258
222
|
---
|
|
259
223
|
|
|
260
|
-
## 基于不该如此的情绪驱动
|
|
261
|
-
|
|
262
|
-
- "不该如此"是最根本的情绪驱动力——写诬告、不公、恃强凌弱,读者天生生出"不该如此"的念头
|
|
263
|
-
- 核心情绪逻辑:想要爽,必先不爽;想要公平,必先不公平;想要强大,必先不强大
|
|
264
|
-
- "悬而未决"也是强驱动力
|
|
265
|
-
- 好的题材必须具备勾起人们惋惜、渴望改变的特质
|
|
266
|
-
|
|
267
|
-
---
|
|
268
|
-
|
|
269
|
-
## 理念矛盾的情感爆发力
|
|
270
|
-
|
|
271
|
-
- 理念之争比利益之争更能引发读者深层共鸣
|
|
272
|
-
- 少量关键场景即可,不需要大量笔墨
|
|
273
|
-
- 理想主义与现实的冲突是塑造配角封神级人设的手法
|
|
274
|
-
- 理念认同 = 人设认同 = 读者情感投入
|
|
275
|
-
- 在主线中穿插理念型角色,用他们的追求和牺牲拔高全书情绪上限
|
|
276
|
-
|
|
277
|
-
---
|
|
278
|
-
|
|
279
|
-
## 情绪调动的三层方法
|
|
280
|
-
|
|
281
|
-
三层:**长期感情投入**、**短期事件冲突**、**场景描绘**。三者可叠加,核心是前两层。
|
|
282
|
-
|
|
283
|
-
### 长期引导三步骤
|
|
284
|
-
|
|
285
|
-
1. **抛出共鸣炸弹**:找到角色最易引发共鸣的情感锚点(梦想、仇恨、恐惧)
|
|
286
|
-
2. **让读者变见证者**:展示角色付出和挣扎,每一步伴随收获
|
|
287
|
-
3. **让读者变参与者**:通过足够铺垫和细节,产生命运共同体感
|
|
288
|
-
|
|
289
|
-
### 短期情绪引导
|
|
290
|
-
|
|
291
|
-
短期靠独立事件冲突。**直白冲突比繁杂情节更容易引起共鸣**。
|
|
292
|
-
|
|
293
|
-
两种事件类型:
|
|
294
|
-
- **推动情节发展的事件**:让读者对角色处境产生认同
|
|
295
|
-
- **塑造人物性格的事件**:让读者对角色思想性格产生认同
|
|
296
|
-
|
|
297
|
-
开篇必须选择塑造人物性格的事件——先认同角色这个人才关心角色的事。
|
|
298
|
-
|
|
299
|
-
### 情绪代入的陷阱
|
|
300
|
-
|
|
301
|
-
读者未代入主角前:主角弱势可以引起同情,但**敌人弱势也同样引起同情**。读者还没建立认同时,不要把对手写得可怜。
|
|
302
|
-
|
|
303
|
-
### 情绪文笔技法
|
|
304
|
-
|
|
305
|
-
- **句长跟着情绪和节奏走**:紧张、决断处用短句提速,铺垫、沉淀处用长句蓄势;短句是提速工具,不是默认底色,别通篇拆短
|
|
306
|
-
- **情绪词**:骤然、猛然、刺眼——制造紧迫感
|
|
307
|
-
- **动作词**:抽、划、留下——画面感强,情绪外化
|
|
308
|
-
- **修饰词**:精准克制地使用形容词,不堆砌
|
|
309
|
-
- **进阶规则**:优先通过角色行为暗示情绪,而非直接描写(非硬性,必要的内心可以直写,别为外化堆无功能的小动作)。**以乐写悲**:角色在最悲伤时表现开心,情绪张力更强(赴死的人很开心,往往比哭更悲)
|
|
310
|
-
|
|
311
|
-
---
|
|
312
|
-
|
|
313
224
|
## 男频恋爱文情绪设计
|
|
314
225
|
|
|
315
226
|
### 两大核心需求
|
|
@@ -339,30 +250,6 @@
|
|
|
339
250
|
|
|
340
251
|
---
|
|
341
252
|
|
|
342
|
-
## 情绪调动统一视角
|
|
343
|
-
|
|
344
|
-
> 写完一段觉得不到位 / 读者反馈平淡时使用。
|
|
345
|
-
|
|
346
|
-
### 终极公式
|
|
347
|
-
|
|
348
|
-
**平静 -> 调动 -> 释放 -> 爽**
|
|
349
|
-
|
|
350
|
-
| 技法 | 调动 | 释放 | 结果 |
|
|
351
|
-
|------|------|------|------|
|
|
352
|
-
| 装逼打脸 | 反派嚣张 | 主角碾压 | 爽 |
|
|
353
|
-
| 拉仇恨 | 负面情绪 | 恶人受罚 | 爽 |
|
|
354
|
-
| 先抑后扬 | 打压 | 爆发 | 爽 |
|
|
355
|
-
| 期待感 | 制造鸿沟 | 弥合鸿沟 | 爽 |
|
|
356
|
-
|
|
357
|
-
### 实操要点
|
|
358
|
-
|
|
359
|
-
- 每个场景标注:读者当前情绪在哪个阶段;下一步是调动还是释放。
|
|
360
|
-
- 只有调动没有释放 = 读者憋屈弃书
|
|
361
|
-
- 只有释放没有调动 = 爽感平淡无力
|
|
362
|
-
- 调动程度决定释放爽度:仇恨拉多满,打脸就多爽
|
|
363
|
-
|
|
364
|
-
---
|
|
365
|
-
|
|
366
253
|
## 期待感维持的底层机制
|
|
367
254
|
|
|
368
255
|
> 写了目标但读者不关心 / 六法则用了但效果不好时使用。
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
1. 先读 `设定/题材定位.md`,确认主题材、目标平台、性向频道、主对标书和核心梗。
|
|
19
19
|
2. 先查本索引匹配题材,再只读取同目录的 `genre-prose-cards/{题材}.md` 这一张卡;不要把整套题材卡全部加载进 prompt。
|
|
20
20
|
3. 跨题材时,主题材读取 1 张完整卡,辅题材读取 1 张并只摘 1-2 条“常见场面/禁止漂移”;不要把两套节奏并行堆满。
|
|
21
|
-
4.
|
|
21
|
+
4. 高置信卡可直接用于写第 1 章前生成的 `设定/题材正文提示卡.md`;中置信卡需结合本书对标/细纲对照;低置信卡只能兜底,必须标注低置信并优先补同题材对标。
|
|
22
22
|
5. 每章传给 narrative-writer 的 `genre_prose_card` 只保留本章相关条目,推荐 120-300 字;包含:题材限制、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、场景颗粒、禁止漂移、本章取舍、卡片置信度。
|
|
23
23
|
6. **题材卡只在写手内部校准题材味,绝不出现在正文里**:正文不得写卡名、题材标签、置信度、条目编号或“证据摘要”数据,也不得写“已按题材卡/满足字数/零违规”一类合规自评或写作过程说明——只输出故事本身。
|
|
24
24
|
|