@oh-story/dsh 0.1.7 → 0.1.9
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 +30 -15
- package/lib/client.js +93 -16
- package/lib/client.js.map +2 -2
- package/lib/drama/manifest.json +165 -69
- package/lib/drama/skills/short-drama/SKILL.md +5 -1
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +126 -9
- package/lib/drama/skills/short-drama/scripts/project_tool.py +11 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +18 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +10 -1
- package/lib/drama/skills/short-drama-edit/SKILL.md +148 -0
- package/lib/drama/skills/short-drama-edit/agents/openai.yaml +4 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/README.md +60 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/package.json +15 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/remotion.config.ts +6 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Root.tsx +26 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/Subtitles.tsx +88 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/font.ts +46 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/index.ts +4 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/src/schema.ts +32 -0
- package/lib/drama/skills/short-drama-edit/assets/remotion/tsconfig.json +13 -0
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +43 -0
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +81 -0
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +58 -0
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +96 -0
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +113 -0
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +55 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1041 -0
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +456 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/image-prompts.md +5 -0
- package/lib/drama/skills/short-drama-image-prompts/assets/lookdev-prompts.md +3 -0
- package/lib/drama/skills/short-drama-novel-analyze/references/aggregation-and-entities.md +2 -2
- package/lib/drama/skills/short-drama-novel-analyze/references/chapter-extraction.md +4 -1
- package/lib/drama/skills/short-drama-produce/SKILL.md +24 -3
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +28 -0
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +24 -5
- package/lib/drama/skills/short-drama-produce/references/providers/seedance.md +7 -0
- package/lib/drama/skills/short-drama-produce/scripts/fixture_adapter.py +18 -1
- package/lib/drama/skills/short-drama-produce/scripts/production_tool.py +181 -2
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +57 -2
- package/lib/drama/skills/short-drama-review/SKILL.md +3 -0
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +20 -0
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +36 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +7 -0
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +4 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +7 -1
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +101 -6
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +7 -1
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +35 -0
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +3 -1
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +13 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +35 -4
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +1 -1
- package/lib/drama/skills/short-drama-write/SKILL.md +13 -2
- package/lib/drama/skills/short-drama-write/references/screenplay-format.md +6 -0
- package/lib/drama/skills/short-drama-write/references/stage-contract.md +1 -0
- package/lib/index.js +4 -2
- package/lib/index.js.map +2 -2
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/manifest.json +28 -28
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +6 -27
- package/lib/novel-to-game/skills/game-build/SKILL.md +12 -29
- package/lib/novel-to-game/skills/game-concept/SKILL.md +10 -26
- package/lib/novel-to-game/skills/game-qa/SKILL.md +5 -15
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +1 -1
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +19 -28
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +1 -2
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +6 -9
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +6 -11
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -4
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +1 -3
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +3 -5
- package/lib/oh-story/manifest.json +292 -172
- package/lib/oh-story/roles/character-designer.md +1 -1
- package/lib/oh-story/roles/narrative-writer.md +56 -242
- package/lib/oh-story/roles/story-architect.md +1 -1
- package/lib/oh-story/skills/story/SKILL.md +1 -1
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +10 -8
- package/lib/oh-story/skills/story-deslop/SKILL.md +20 -182
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +19 -47
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +10 -8
- package/lib/oh-story/skills/story-deslop/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +154 -0
- package/lib/oh-story/skills/story-deslop/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-deslop/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-deslop/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-deslop/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-deslop/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-import/SKILL.md +2 -2
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +2 -2
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +2 -29
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +176 -12
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +1 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +20 -193
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +19 -47
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +62 -7
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +10 -8
- package/lib/oh-story/skills/story-long-write/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +20 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +6 -4
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-format.md +2 -0
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +2 -0
- package/lib/oh-story/skills/story-long-write/references/project-files.md +108 -0
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +87 -0
- package/lib/oh-story/skills/story-long-write/references/style-combat-face.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/style-craft.md +9 -29
- 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 +27 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +2 -29
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +51 -52
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +8 -7
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +36 -15
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +22 -0
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +69 -2
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +410 -0
- package/lib/oh-story/skills/story-long-write/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-long-write/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +176 -12
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-copy.js +90 -23
- package/lib/oh-story/skills/story-long-write/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +283 -0
- package/lib/oh-story/skills/story-long-write/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-review/SKILL.md +13 -3
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +19 -47
- package/lib/oh-story/skills/story-review/references/author-memory.md +10 -8
- package/lib/oh-story/skills/story-review/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +6 -4
- package/lib/oh-story/skills/story-review/references/review-quality.md +2 -2
- package/lib/oh-story/skills/story-review/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-review/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +2 -29
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-review/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-review/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-review/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +17 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +19 -47
- package/lib/oh-story/skills/story-setup/references/agent-references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +154 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +6 -4
- package/lib/oh-story/skills/story-setup/references/agent-references/format-and-structure.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/short-genre-formulas.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/style-combat-face.md +1 -1
- 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 +27 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/writing-craft.md +69 -2
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +38 -0
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +2 -2
- package/lib/oh-story/skills/story-short-write/SKILL.md +18 -186
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +10 -8
- package/lib/oh-story/skills/story-short-write/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-short-write/references/benchmark-recall.md +60 -0
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +6 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//344/270/226/346/203/205/346/211/223/350/204/270.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/217/214/347/224/267/344/270/273.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/244/215/344/273/207/346/211/223/350/204/270.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//345/256/205/346/226/227/345/256/253/346/226/227.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/200/273/350/243/201/350/261/252/351/227/250.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/202/254/347/226/221.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//346/260/221/344/277/227/346/200/252/350/260/210.md +4 -4
- package/lib/oh-story/skills/story-short-write/references/genre-styles//347/224/234/345/256/240.md +5 -5
- package/lib/oh-story/skills/story-short-write/references/genre-styles//350/277/275/345/246/273/347/201/253/350/221/254/345/234/272.md +3 -3
- package/lib/oh-story/skills/story-short-write/references/genre-writing-formulas.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/genre-writing-techniques.md +1 -1
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +53 -0
- package/lib/oh-story/skills/story-short-write/references/short-craft.md +12 -14
- package/lib/oh-story/skills/story-short-write/references/short-deslop.md +10 -10
- package/lib/oh-story/skills/story-short-write/references/short-format.md +3 -1
- package/lib/oh-story/skills/story-short-write/references/short-prose-quality.md +2 -2
- package/lib/oh-story/skills/story-short-write/references/style-resolution.md +27 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +77 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +5 -5
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +6 -1
- package/lib/oh-story/skills/story-short-write/scripts/check-degeneration.js +39 -20
- package/lib/oh-story/skills/story-short-write/scripts/check-delivery-contract.js +34 -5
- package/lib/oh-story/skills/story-short-write/scripts/check-outline-copy.js +90 -23
- package/lib/oh-story/skills/story-short-write/scripts/normalize-punctuation.js +10 -5
- package/lib/oh-story/skills/story-short-write/scripts/style-whitelist.js +39 -0
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +17 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/video-recap/CHANGELOG.md +31 -1
- package/lib/video-recap/manifest.json +162 -162
- package/lib/video-recap/skills/video-assemble/scripts/artifacts.py +4 -9
- package/lib/video-recap/skills/video-assemble/scripts/assemble.py +47 -60
- package/lib/video-recap/skills/video-assemble/scripts/assembly_contract.py +77 -115
- package/lib/video-recap/skills/video-assemble/scripts/assembly_settings.py +41 -40
- package/lib/video-recap/skills/video-assemble/scripts/audio_automation.py +22 -32
- package/lib/video-recap/skills/video-assemble/scripts/audio_mix.py +102 -192
- package/lib/video-recap/skills/video-assemble/scripts/jianying_builders.py +14 -35
- package/lib/video-recap/skills/video-assemble/scripts/jianying_model.py +14 -12
- package/lib/video-recap/skills/video-assemble/scripts/jianying_optional.py +8 -9
- package/lib/video-recap/skills/video-assemble/scripts/jianying_schema.py +3 -14
- package/lib/video-recap/skills/video-assemble/scripts/jianying_timeline_contract.py +23 -12
- package/lib/video-recap/skills/video-assemble/scripts/jianying_tracks.py +1 -4
- package/lib/video-recap/skills/video-assemble/scripts/jianying_writer.py +24 -25
- package/lib/video-recap/skills/video-assemble/scripts/lib.py +31 -85
- package/lib/video-recap/skills/video-assemble/scripts/media.py +100 -144
- package/lib/video-recap/skills/video-assemble/scripts/narration_audio.py +101 -195
- package/lib/video-recap/skills/video-assemble/scripts/render_preflight.py +10 -21
- package/lib/video-recap/skills/video-assemble/scripts/source_subtitles.py +90 -169
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_core.py +69 -122
- package/lib/video-recap/skills/video-assemble/scripts/subtitle_render.py +10 -17
- package/lib/video-recap/skills/video-assemble/scripts/timeline.py +33 -48
- package/lib/video-recap/skills/video-assemble/scripts/timeline_emit.py +14 -20
- package/lib/video-recap/skills/video-assemble/scripts/visual_render.py +135 -213
- package/lib/video-recap/skills/video-cut/scripts/cut_cli.py +49 -57
- package/lib/video-recap/skills/video-cut/scripts/cut_contract.py +38 -74
- package/lib/video-recap/skills/video-cut/scripts/cut_render.py +46 -95
- package/lib/video-recap/skills/video-cut/scripts/lib.py +23 -25
- package/lib/video-recap/skills/video-cut/scripts/media_geometry.py +70 -173
- package/lib/video-recap/skills/video-cut/scripts/narration_mapping.py +28 -53
- package/lib/video-recap/skills/video-cut/scripts/sentence_boundaries.py +162 -322
- package/lib/video-recap/skills/video-recap/references/timeline-and-jianying.md +6 -7
- package/lib/video-recap/skills/video-recap/scripts/doctor.py +104 -124
- package/lib/video-recap/skills/video-recap/scripts/final_qc.py +255 -412
- package/lib/video-recap/skills/video-recap/scripts/lib.py +30 -52
- package/lib/video-recap/skills/video-recap/scripts/materials.py +97 -120
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_client.py +7 -12
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_evidence.py +46 -97
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_observations.py +18 -36
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_payload.py +29 -47
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_report.py +43 -76
- package/lib/video-recap/skills/video-recap/scripts/mimo_qc_runner.py +2 -1
- package/lib/video-recap/skills/video-recap/scripts/qc_contract.py +2 -1
- package/lib/video-recap/skills/video-recap/scripts/recap_cli.py +2 -2
- package/lib/video-recap/skills/video-recap/scripts/recap_inspect.py +129 -145
- package/lib/video-recap/skills/video-recap/scripts/recap_review.py +27 -20
- package/lib/video-recap/skills/video-recap/scripts/recap_runner.py +20 -31
- package/lib/video-recap/skills/video-recap/scripts/recap_runtime.py +31 -106
- package/lib/video-recap/skills/video-recap/scripts/recap_stage_qc.py +43 -113
- package/lib/video-recap/skills/video-recap/scripts/recap_timeline.py +196 -377
- package/lib/video-recap/skills/video-script/scripts/agent_brief.py +1 -1
- package/lib/video-recap/skills/video-script/scripts/agent_text.py +63 -172
- package/lib/video-recap/skills/video-script/scripts/brief_context.py +80 -135
- package/lib/video-recap/skills/video-script/scripts/brief_inputs.py +125 -167
- package/lib/video-recap/skills/video-script/scripts/brief_timeline.py +93 -208
- package/lib/video-recap/skills/video-script/scripts/deslop_qc.py +20 -46
- package/lib/video-recap/skills/video-script/scripts/lib.py +30 -26
- package/lib/video-recap/skills/video-script/scripts/narration_lint.py +145 -140
- package/lib/video-recap/skills/video-script/scripts/review_response.py +12 -42
- package/lib/video-recap/skills/video-script/scripts/review_runner.py +0 -6
- package/lib/video-recap/skills/video-script/scripts/speech_ownership.py +39 -100
- package/lib/video-recap/skills/video-script/scripts/timeline_fusion.py +33 -124
- package/lib/video-recap/skills/video-understanding/scripts/agent_brief.py +1 -1
- package/lib/video-recap/skills/video-understanding/scripts/agent_text.py +63 -172
- package/lib/video-recap/skills/video-understanding/scripts/asr.py +1 -2
- package/lib/video-recap/skills/video-understanding/scripts/brief_context.py +80 -135
- package/lib/video-recap/skills/video-understanding/scripts/brief_inputs.py +125 -167
- package/lib/video-recap/skills/video-understanding/scripts/brief_timeline.py +93 -208
- package/lib/video-recap/skills/video-understanding/scripts/consolidate.py +1 -1
- package/lib/video-recap/skills/video-understanding/scripts/deslop_qc.py +20 -46
- package/lib/video-recap/skills/video-understanding/scripts/lib.py +31 -26
- package/lib/video-recap/skills/video-understanding/scripts/narration_lint.py +145 -140
- package/lib/video-recap/skills/video-understanding/scripts/speech_ownership.py +39 -100
- package/lib/video-recap/skills/video-understanding/scripts/timeline_fusion.py +33 -124
- package/lib/video-recap/skills/video-understanding/scripts/vlm.py +1 -4
- package/lib/video-recap/skills/video-voiceover/scripts/dub.py +7 -13
- package/lib/video-recap/skills/video-voiceover/scripts/fish_audio.py +12 -30
- package/lib/video-recap/skills/video-voiceover/scripts/lib.py +98 -131
- package/lib/video-recap/skills/video-voiceover/scripts/tts_audio.py +17 -28
- package/lib/video-recap/skills/video-voiceover/scripts/voiceover.py +151 -240
- package/package.json +41 -41
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
> **日更准备步骤**:每章写作前 4 步——状态筛选 + 题材正文提示卡召回 + 文风召回 + 意图确认,嵌入 Step 2 逐章循环。
|
|
6
6
|
>
|
|
7
|
-
> 写前资料清单、对标书路径查找、题材正文提示卡、自定义文风模式、文风缺失 fail-fast、模块/节奏缺失停止、权威冲突规则、无对标项目处理,一律按
|
|
7
|
+
> 写前资料清单、对标书路径查找、题材正文提示卡、自定义文风模式、文风缺失 fail-fast、模块/节奏缺失停止、权威冲突规则、无对标项目处理,一律按 [project-files.md](project-files.md) 的「缺失文件处理」「对标分析权威优先级」和 [benchmark-recall.md](benchmark-recall.md) 的写前准备 (a)-(g) 执行;本文件不另立一套。读者契约、主角代理权、期待债、终局储备参 `reader-contract-and-progression.md`。
|
|
8
8
|
>
|
|
9
9
|
> **多本对标书**:从 `设定/题材定位.md` 读 `主对标书` 字段;字段指向当前作品时按缺失处理(老项目可能把本书自身登记成了主对标)。缺失时用 `对标/` 下字典序第一本并提示用户补字段——先按当前项目目录名、`.active-book` 和 `设定/题材定位.md` 中的本书信息识别当前作品,排除同名或来源指向当前正文的 `对标/{当前书}/`;排除后为空则按无对标处理。
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
| 1 | `tracking_commit.py check` | 校验唯一结构化 state 与全部派生视图,并取得最后提交章和修订号;不把完整 state 加入 prompt | state 缺失且新书尚无正文时执行初始化;已有正文则停止并要求由 `story-import` 重新导入为标准项目 |
|
|
32
32
|
| 2 | `追踪/上下文.md` | 续写状态卡(≤12KB,固定 7 栏,每章整份读) | 不手写;由初始化/逐章事务生成 |
|
|
33
33
|
| 3 | `大纲/细纲_第{N}章.md` | 本章写作计划 | **必须先补建**,不允许跳过 |
|
|
34
|
-
| 4 |
|
|
34
|
+
| 4 | 卷纲(**取段器读,不整读**:`outline_view.py --unit {单元ID} --stage write`,见 SKILL.md「卷纲不整读」) | 卷契约、全卷常任裁定、当前剧情单元、终局储备与未来揭示计划 | 缺必需字段时先补齐;锁定卷纲绝不自动修改;脚本 exit 1 不得改用整读绕过 |
|
|
35
35
|
| 5 | `设定/角色/{角色名}.md` | 本章涉及角色的静态原始人设 | 只为核心复用角色按 Phase 3 规则补建 |
|
|
36
36
|
| 6 | `追踪/角色状态/{角色名}.md` | 久别核心角色的派生当前快照;只按细纲涉及角色加载 | 缺失即视为派生视图损坏:先运行 `tracking_commit.py check`,再重跑产生当前状态的完整事务;已有正文却无 state 时重新 `story-import` |
|
|
37
37
|
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
|
|
48
48
|
**首次初始化**:
|
|
49
49
|
|
|
50
|
-
1. `_tracking-state.json`
|
|
50
|
+
1. `_tracking-state.json` 不存在且项目尚无正文:先完整读取 [tracking-initialization.md](tracking-initialization.md),构造 `last_chapter=0` 的初始化事务,执行 `tracking_commit.py init`。
|
|
51
51
|
2. `_tracking-state.json` 不存在但项目已有正文:停止日更。该目录停在旧追踪结构上,走 `/story-import` 的「旧追踪项目迁移」重建 `追踪/`——**不用重跑全书拆解**,只按最后完整章号和现有追踪文件构造初始化事务。本 workflow 自己不解析旧追踪结构、不推测状态。`init` 会把旧结构按原样整体移入 `追踪/_旧追踪存档/` 再建当前协议——旧内容不删除也不参与解析。
|
|
52
52
|
3. `tracking_commit.py check` 报告派生视图与 state 不一致:重新提交该章的 `mode=revision` 事务让工具整份重建(`expected_state_revision` 取 `追踪/_tracking-state.json` 的 `state_revision` 字段——`check` 失败时只往 stderr 打 ERROR,不输出 JSON);不得手改 Markdown 或继续写下一章。手写出的逐章记录会让同章 append 永久报 `chapter delta N already exists with different content`,删掉那个手写文件后重跑原事务即可。
|
|
53
53
|
|
|
@@ -69,8 +69,8 @@
|
|
|
69
69
|
|
|
70
70
|
**批量 continuation 规则**:进入本 Step 后,"继续"/"续写"/"日更"只表示继续当前日更批量流程。不得把这些词解释为跳过「状态筛选」或「对标模块/节奏/题材卡/文风召回」的直接正文续写;也不得在每章之间重复询问是否继续,除非用户明确要求逐章确认或出现阻塞。到达本轮 K(最多 3 章)后必须进入 Step 3/4 收尾并停止,不能因为仍有后续细纲就继续写下一批。
|
|
71
71
|
|
|
72
|
-
1. **读取写作计划**:写作计划按 **卷契约 → 当前剧情单元 → 章节细纲** 的顺序确定;已写内容仍以正文与 `追踪/`
|
|
73
|
-
- **批次定位与阶段约束**:写本批前先从 `大纲/大纲.md
|
|
72
|
+
1. **读取写作计划**:写作计划按 **卷契约 → 当前剧情单元 → 章节细纲** 的顺序确定;已写内容仍以正文与 `追踪/` 文件为准。先按 SKILL.md「卷纲不整读」跑 `outline_view.py --unit {单元ID} --stage write {卷纲路径}` 取卷契约、全卷常任裁定、当前剧情单元(单元ID/位置)、单元情绪引擎、本卷主推线/战果与终局底牌边界(单元ID 从本批首章细纲「单元ID/位置」取),再加载本次要写的 2-3 章细纲。卷纲或细纲缺少当前协议的必需字段时按既有流程先补齐,未知字段写 `[待补充]`;已锁定卷纲不得自动改动。细纲读取阶段位置、结构公式、禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化的语义义务/执行边界及结尾钩子,不读取或心算逐点字数预算。只有真正影响后续连续性的结果才进入本章事务。
|
|
73
|
+
- **批次定位与阶段约束**:写本批前先从 `大纲/大纲.md`、上一步取段器的卷纲输出(不再重读卷纲)和本批细纲提取:当前章节区间属于哪个阶段、本批推进目标、本批可释放的信息、本批严禁提前释放的信息、章尾钩子不能越过的边界。必须按终局储备确认本批主推线与战果,别动用本阶段还不该解锁的终局底牌(多线齐涨的战果允许);行动成本可无,不硬造代价。未来揭示计划留在大纲,不写入时间线事实;只有下一章必须消费的边界才进 `## 下一章承诺`。
|
|
74
74
|
- **阶段进度自检**:每批写完或补完细纲后检查是否超前、拖慢或偏离阶段节奏;若偏离,把下一章必须执行的补偿动作放入事务 `next_chapter_commitments`,跨多章风险放入 `continuity_risks`;不得通过提前泄露后期信息强行提速。
|
|
75
75
|
2. **逐章执行**:每章按 [workflow-chapter.md](workflow-chapter.md) 的「单章写作流程」步骤 1-13 完整走一遍(写前准备、正文执行、字数验证、钩子/爽点检查、元信息与禁用词扫描、追踪事务)。批量模式下再叠加下列日更专属动作:
|
|
76
76
|
- **上一章欠账检查**:写本章正文前,确认上一章正文无未清 blocking 毒句式欠账(写前 hook 会自动拦;hook 不可用时对上一章跑 `node scripts/check-ai-patterns.js --check --fail-on=blocking`);有欠账先清完再写本章,除非上一章标了 `<!-- 去味:跳过 -->`(用户显式豁免)
|
|
@@ -141,8 +141,9 @@
|
|
|
141
141
|
|
|
142
142
|
1. 对项目运行 `tracking_commit.py check`;验证 state schema、逐章记录连续/规范/未超限、续写状态卡固定 7 栏且不超过 12288 字节,以及全部派生视图与 state 一致。
|
|
143
143
|
2. 确认本批每章都有对应 `追踪/逐章记录/第NNN章.md`,每个文件 ≤3072 字节。缺失或超限时不手工补文件,回到该章事务修正并重跑 `commit`。
|
|
144
|
+
3. **「本章没写成的」汇集**:把本批各章申报表末行按**挡住它的原因**分流处置——「细纲没有这个点」进下一批补纲供给自查(workflow-setup「按剧情批出细纲」步骤 3)作扩产候选;「分辨率是疏/镜头准入没给位」进下一批同类拍的分辨率与准入参考;「拿不准会不会跟别处撞」当章就查设定,有既定值的补进下一章 prompt、查无既定值的即写手可自定,不再往下传;「属三档不能写」并入三档处置。连同本批细纲「本章新增物处置」里状态仍为 `待裁定` 的行,一并随批末汇报给出;全部为 `0` 则记「无」。
|
|
144
145
|
|
|
145
|
-
|
|
146
|
+
然后向用户口头汇报本批完成情况(章数、字数、漂移、供给反馈、下一批建议),不另存为文件。
|
|
146
147
|
|
|
147
148
|
---
|
|
148
149
|
|
|
@@ -152,7 +153,7 @@
|
|
|
152
153
|
|
|
153
154
|
当检测到细纲不存在时,不能跳过。按以下步骤补建:
|
|
154
155
|
|
|
155
|
-
1.
|
|
156
|
+
1. 按 SKILL.md「卷纲不整读」跑 `outline_view.py --unit {单元ID} --stage write` 取本章所属剧情单元卡与卷级常任(**不整读卷纲**);剧情单元卡含「对标剧情参照」时加读其指向的剧情单元文件(1 个),以其「结构分布」对应位置作本章功能参照;若本章起整个剧情单元均无细纲,按 outline-structure-theory.md「按剧情批出细纲」整批补建而非单章补。卷纲缺必需字段时先补齐,不绕过当前模板继续
|
|
156
157
|
2. 加载本章涉及的 `设定/角色/{角色名}.md`(角色状态)
|
|
157
158
|
3. 读取最新一章正文(情节衔接)
|
|
158
159
|
4. 按 SKILL.md Phase 3 的新版细纲模板补建本章细纲,补齐阶段位置、本章结构公式、本章禁止提前释放、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定;无法从卷纲/正文/设定确认的字段写 `[待补充]`,不杜撰
|
|
@@ -173,7 +173,7 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
173
173
|
|
|
174
174
|
> **多对标书时**:参 `references/cross-book-recall.md`,副对标 `章节/*_摘要.md` + `剧情/*.md` 召回卷级节奏
|
|
175
175
|
|
|
176
|
-
> **对标节奏回流(有主对标书时,卷纲定稿前做一次)**:读主对标 `对标/{书}/剧情/节奏.md`;缺失时设置 `missing_primary_contract: true` 并停止,提示重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`,不得用章节摘要、故事线或拆文报告代替。文件存在时,按 references/outline-structure-theory.md「对标节奏迁移」把对标的一级结构关键点(1/4·中点·3/4)换素材排进本卷卷纲「对标结构坐标」——选段以主对标剧情单元为单位,按「类型/桥段标签」圈同类(详见该节步骤 1
|
|
176
|
+
> **对标节奏回流(有主对标书时,卷纲定稿前做一次)**:读主对标 `对标/{书}/剧情/节奏.md`;缺失时设置 `missing_primary_contract: true` 并停止,提示重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`,不得用章节摘要、故事线或拆文报告代替。文件存在时,按 references/outline-structure-theory.md「对标节奏迁移」把对标的一级结构关键点(1/4·中点·3/4)换素材排进本卷卷纲「对标结构坐标」——选段以主对标剧情单元为单位,按「类型/桥段标签」圈同类(详见该节步骤 1),选中的剧情单元写入剧情单元卡「对标剧情参照」。**「对标剧情参照」可填「自创:{理由}」**,内容形态不必照搬对标,仍过安全七检与批末结构复核。若尚未登记主对标书但 `拆文库/` 有同题材候选,先回 Phase 1「对标发现」登记再排节奏;确无对标书则按八节点占比自排。
|
|
177
177
|
|
|
178
178
|
#### 细纲(全书每章)
|
|
179
179
|
|
|
@@ -186,8 +186,10 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
186
186
|
默认分批建纲:先建前 10 章细纲后**停靠**,报告"已可开始写第1章/日更";只有用户明确要求写正文时才进入 Phase 4。滚动补纲按编号规则执行(见 references/outline-structure-theory.md「按剧情批出细纲」):
|
|
187
187
|
1. **批次边界**:一批 ≈ 一个剧情单元(5-15 章);>10 章的剧情单元拆两批。**首批 = 前 10 章封顶、可跨单元**:跨入的剧情单元在建卡时召回一次,余章由后续滚动批共享该剧情单元卡结论。写到单元末段(剩余未建细纲 ≤2 章)即滚动补下一单元整批;用户显式给出章数/范围时按用户要求执行,单批仍建议 ≤10 章、分批连续交付。
|
|
188
188
|
2. **批次定位与阶段约束**(每批补纲前先写):当前章节区间属于哪个阶段与哪个剧情单元(单元ID)、本批推进目标、本批可释放信息、本批严禁提前释放信息、章尾钩子不能越过的边界。
|
|
189
|
-
3.
|
|
190
|
-
4.
|
|
189
|
+
3. **供给自查**:每批出细纲前检查六项:①对手戏由谁承接?具名对手间隔超过 2 章是复核提示;对手可为盟友或亲人,环境、关系章不为凑间隔新增反派。②未来 3 章出场角色的设定卡是否齐全?③能力增量与既有库存是否接得上?④本批引用的数字、制度、规矩、距离与脚程是否确实存在?引用前 grep 核对文件里的具体条目,不能只猜文件存在。⑤本批使用的地点空间属性先落档;仅提名不强补底图。是否与上一单元同场景、同对手、同胜负手连排,需要调整?⑥本批有哪些故事线推进,是否有可调存量?结果以「供给自查」小节落在本单元卡:B 级登记新增内容与设定路径,C 级列候选及影响面交作者裁定;无缺口写「无缺口」。并检查上一批「本章没写成的」与「建纲追加」里的未解决缺口。
|
|
190
|
+
4. **剧情单元消费**:建卡批读本批剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件,含结构分布/情节点索引),按节拍→章映射铺章、情节点换素材;同一剧情单元的后续批共享剧情单元卡固化结论,不重读剧情单元。当前卷纲缺少必需剧情单元字段时先补齐卷纲,不带缺失字段进入日更。
|
|
191
|
+
5. **建纲当场缺口**:按下方 A/B/C 分级;A 级直接写,B 级先落档再引用,C 级挂起受影响内容交作者,其余部分继续。批末把 B/C 项汇入供给自查下的「建纲追加」:章号、缺口、分级、设定路径或提案;无追加写「无」。不重复记录 A 级现场材料。
|
|
192
|
+
6. **批末结构复核**(每批建完必做):按现有大纲流程确认章级目标与 `visible_chars_v1` 口径、核心字段、禁止提前释放和可执行情节点齐全。不得用“每个情节点固定等于多少字”预测容量或自动补事件;每章细纲落盘后必须跑 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}`:exit 1 只按 `repair_scope` 补点名字段再复验,最多两轮;advisory 项逐条人工判断,不强制归零。批末另跑一次 `node scripts/check-outline-contract.js --json --supply {卷纲路径} {单元ID}` 验证本批《供给单》已落卷纲(含「无缺口」情形);脚本仅验供给小节存在,内容仍需人工判断。**旧章细纲缺字段是常态,不要照抄同目录既有文件的字段集**,以本节模板为准。语义仍不设 checker。
|
|
191
193
|
|
|
192
194
|
不要在单次对话里强行产出 30 章完整细纲。
|
|
193
195
|
如果全书章数较少(≤30 章),可以在 Phase 3 一次全部建完。
|
|
@@ -207,7 +209,10 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
207
209
|
- 本章结构公式:{节点1(目的) + 节点2(目的) + 节点3(目的) + 节点4(目的)}
|
|
208
210
|
- 章首钩子:{从章首7式中选择} — {具体内容;低压/过场章可写“弱钩子/仅情绪钩子,功能是…”}
|
|
209
211
|
- 爽点:{本章爽点;低压/修炼/过场章可写“无显性爽点,功能是…”,但仍须给读者一个往下看的理由}
|
|
210
|
-
-
|
|
212
|
+
- 本章标价:{本章的得失折算成读者已知的什么——某样已花过的钱、某人花过的时间、主角现在缺的那一样;尺子在第几点之前立好(至少两把)。确实无可标价的章写“无”}
|
|
213
|
+
- 闭环状态:{本章走完 获得 / 使用 / 见效 / 估值 的哪几拍;扣住哪一拍、第几章兑付。本章不闭环写清断点,如“下注在点7,第N+1章开奖”。闭环允许跨 2-3 章,也允许估值为负(收益缺口)}
|
|
214
|
+
- 本章禁止提前释放:{**只写本章特有的三五条**;卷级常任禁忌已在卷纲「本卷禁碰的终局底牌」,不逐章复读;没有就写“无”}
|
|
215
|
+
- 写手自由区:{本章写手可自行发明的内容类型——这场戏怎么打、谁失态到什么程度、对话内容、比喻域等,至少列一类;写成授权不写成禁令,把本章最值得放开的几处点名交给写手}
|
|
211
216
|
- 契约风险:{契约安全/需补强/契约破坏;逐章只按七检⑥⑦复核后填写,批次级已答全表}
|
|
212
217
|
|
|
213
218
|
#### 内容概括(五段式)
|
|
@@ -219,7 +224,7 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
219
224
|
|
|
220
225
|
#### 情节安排(多线)
|
|
221
226
|
- 主线推进:{本章对主目标的推进}
|
|
222
|
-
- 辅线推进:{
|
|
227
|
+
- 辅线推进:{指向卷纲「本卷故事线」的 L 编号,写“L0X 从哪一步推到哪一步”;本章确无非主线在动时写“无”,不凭空制造。一批细纲不许每章都是“无”}
|
|
223
228
|
- 事件线 / 任务线:{外部事件链}
|
|
224
229
|
- 任务卡点(如适用):{角色要办什么事 → 卡在哪里 → 卡出什么变化 → 删掉后损失 → 收束动作;没有就写“无”,不强补}
|
|
225
230
|
- 感情线 / 关系线:{无显性感情线时写“无显性,但关系变化为…”}
|
|
@@ -227,17 +232,25 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
227
232
|
|
|
228
233
|
#### 人物关系和出场顺序
|
|
229
234
|
- 出场顺序:{角色/势力/关键物件按实际出现顺序列出}
|
|
235
|
+
- 镜头准入:{台词位写清人物此刻在争什么,一场通常 3-4 人;多人各有独有信息或行动时可增加。动作位以有意义的行动参与,背景位可合并描写;按本场功能分配,可兼档,不平均派发台词或小动作}
|
|
230
236
|
- 人物关系变化:{本章前 → 本章后}
|
|
231
|
-
- 视角/信息差:{
|
|
237
|
+
- 视角/信息差:{谁知道什么;读者知道什么;主角误判什么。信息差取自 `追踪/时间线/读者已知.md`,不另起一套}
|
|
238
|
+
- 信息差触发点:{读者握着场内人不知道的牌时,在第几点、用什么把这件事**提醒**读者一次——某人当众猜错、主角刻意收力不亮底、旁人用错误前提做决定。本章无信息差写“无”}
|
|
232
239
|
|
|
233
240
|
#### 情节细化
|
|
234
241
|
- 情节点序列(逐行填下表;写清动作与叙事功能,不填写逐点字数):
|
|
235
242
|
|
|
236
|
-
| # | 情节点(谁做了什么) | 功能标签 | 执行边界 |
|
|
237
|
-
|
|
238
|
-
| 1 | {主角在账单上发现4800元转出} | {信息揭示} | {
|
|
243
|
+
| # | 情节点(谁做了什么) | 功能标签 | 分辨率 | 执行边界 |
|
|
244
|
+
|---|---|---|---|---|
|
|
245
|
+
| 1 | {主角在账单上发现4800元转出} | {信息揭示} | {密} | {禁:不揭露幕后者。放:他当场算出这笔钱等于几个月房租,允许写出来} |
|
|
239
246
|
|
|
240
|
-
|
|
247
|
+
功能标签=目的词:铺垫/高潮/爽点/打脸/人物塑造/设定,用于判断该点承担什么义务。点数由语义需要决定,不用 `目标字数 / beat 数`、固定字数档位或历史偏差系数反推。结构预检只判输入是否可安全执行,不宣称细纲一定能撑到目标字数。
|
|
248
|
+
|
|
249
|
+
**分辨率表示展开程度,不是字数配额**:密(慢镜头逐拍展开)/ 中 / 疏(一句带过)。**全章不许全填「中」**;同类并列的点递减、不平均。留空按「中」处理。
|
|
250
|
+
|
|
251
|
+
**执行边界写成「禁 + 放」两半**:
|
|
252
|
+
- **禁**:本点不能提前释放或新增什么(原有口径不变)。
|
|
253
|
+
- **放**:本点允许什么落地、到什么量级——谁可以出声、谁可以失态、允不允许有人当场给这件事标价、允不允许把后果外推一句。**每章至少有一个点写了「放」**。放行不是必须落地的义务,是解除限制。
|
|
241
254
|
- 任务卡点说明:如果某情节点是“办事被卡住”,功能标签必须写清它服务的是信息揭示、关系变化、代价兑现、伏笔推进、选择压力、节奏喘息或钩子承接;删掉无损的卡点不进细纲
|
|
242
255
|
- 复沓锚句:{须一字不差进正文的原话(誓言、面板、旧案原话),一行一条并注明落点,如"点3:立此为凭…";没有写"无"}
|
|
243
256
|
- 行动成本(可无)/收益归属:{可无行动成本;若有则写谁付出什么成本;收益归谁、如何可见、是否留下后续账}
|
|
@@ -250,9 +263,9 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
250
263
|
**大纲锁定**:已进入正文写作的前 10 章细纲锁定,未经用户确认不得修改;后续滚动细纲可随正文反馈微调。**卷纲锁定的定义**:某卷一旦已有正文章节,该卷已写区间对应的既有剧情单元卡与对标结构坐标即视为锁定——未经用户确认不改既有内容,但允许在卷尾**追加**新剧情单元卡(只增不改)。追加同样只发生在用户明确要求补纲/扩纲时;日更/写正文流程不自动追加剧情单元卡。workflow-daily 各处「锁定卷纲绝不自动修改」均按此定义执行。
|
|
251
264
|
|
|
252
265
|
**中途补纲/扩纲小流程**(项目已有大纲,用户要求"出细纲/补细纲/规划下一段剧情"时走这里):
|
|
253
|
-
1. 定位当前卷、已写进度与既有剧情单元卡:读 `大纲/大纲.md
|
|
254
|
-
2. 按 references/outline-structure-theory.md「对标节奏迁移」步骤 1
|
|
255
|
-
3. 批次级答一遍上方「大纲安全七检」并执行「大纲安全审查」(追加剧情单元时⑦按单元内 1/4·中点·3/4
|
|
266
|
+
1. 定位当前卷、已写进度与既有剧情单元卡:读 `大纲/大纲.md`;卷纲**走取段器不整读**(见 SKILL.md「卷纲不整读」)——先 `outline_view.py --toc {卷纲路径}` 看一屏目录定位当前单元,再 `--unit {单元ID}` 取闭包,新单元尚未建卡时先用 `--contract` 取卷级契约;另读 `追踪/上下文.md`(续写状态卡,待回收伏笔取 `## 活跃伏笔`、主角当前状态取 `## 核心角色状态`),以及 `设定/题材定位.md`(终局底牌与升级台阶)——续写状态卡缺项按 workflow-daily「旧信息查找步骤」按需查询,不读全部逐章增量;
|
|
267
|
+
2. 按 references/outline-structure-theory.md「对标节奏迁移」步骤 1 选同类剧情单元,设计新剧情单元卡(含「对标剧情参照」),**追加**到当前卷卷纲卷尾,并随卡在卷纲「情绪弧线」表、「本卷故事线」表与「本卷伏笔」表**只增不改**地追加对应规划;尚未实际埋设的伏笔留在大纲,不提前登记为时间线/追踪事实——用户主动要求补纲即视为已授权追加,锁定的既有剧情单元卡不动;新剧情单元体量超出本卷规划时,先与用户确认扩卷还是开新卷;
|
|
268
|
+
3. 批次级答一遍上方「大纲安全七检」并执行「大纲安全审查」(追加剧情单元时⑦按单元内 1/4·中点·3/4 口径);随后按「按剧情批出细纲」步骤 3 做**供给自查**、产出《供给单》;
|
|
256
269
|
4. 按「按剧情批出细纲」以新剧情单元为批次滚动补细纲(一批 ≈ 一个剧情单元,>10 章拆两批共享召回),每批建完执行「细纲后设定补全」与批末合计核对;
|
|
257
270
|
5. 新剧情单元和未来揭示边界已经在卷纲/细纲落盘,不复制进追踪续写状态卡;只有下一章必须履行的承诺才在下一次逐章事务里进入 `next_chapter_commitments`。
|
|
258
271
|
|
|
@@ -266,13 +279,21 @@ story-architect 属于高层级结构设计 agent。轻量题材定位优先由
|
|
|
266
279
|
- 角色 → 建 `设定/角色/{名}.md`(填空模板见 character-basics.md 主角卡/配角卡);核心复用角色真正进入正文后,由追踪事务建立 `追踪/角色状态/{名}.md` 动态快照;
|
|
267
280
|
- 势力/组织 → 建 `设定/势力/{名}.md`(名称、定位、核心目标、关键人物、与主角关系);
|
|
268
281
|
- 影响多章的世界观规则 → 建/补 `设定/世界观/{主题}.md`(规则、适用范围)。
|
|
282
|
+
- **刻度与名目** → 建/补 `设定/世界观/{主题}.md` 里的对照表。凡是正文要拿来**比大小、算价钱、报名次、定档位**的东西都算:资质/评级档位、职级与待遇、货币与物价、等级与进度格、名次与席位、赏罚名目、时限与期限。写成**可数的序列**(几档、哪一档在哪、相邻两档差多少),不要只写一个孤立的值。
|
|
283
|
+
|
|
284
|
+
**缺什么按创作自主权分级处置——不许硬写,也不许一律停摆。** 排纲或写正文时需要一样东西(角色、能力、物价、规矩、刻度、场景)而设定里查不到时,先查再分级:
|
|
285
|
+
|
|
286
|
+
0. **先查**:`设定/世界观/`、`设定/势力/`、`设定/题材定位.md`(升级台阶)里是不是已经有(同一件事在不同文件里可能叫不同名字,换个说法登记的也算)。查不到的按下面三级处置。
|
|
287
|
+
1. **A 级·自由发明**(场景陈设、路人、地名细部、一次性对话、习俗细节):直接写进细纲,不落档、不上报。
|
|
288
|
+
2. **B 级·发明+落档**:既有框架内的具名配角、复用地点的空间属性、能力形态、物价内插、规矩细则、刻度序列,可直接补充,不与既有裁定冲突。先增量落设定,再供细纲引用,并在《供给单》登记。项目引用用书目录相对路径(如 `设定/角色/张三.md`);`./`、`../` 相对细纲目录,裸文件名不校验。地点只补本批用到的分区、进出口、相对位置或脚程。补纲授权下的新故事线先在卷纲故事线表分配 L 编号并写清主线对接口,再供细纲引用;日更不自动扩纲。
|
|
289
|
+
3. **C 级·提案裁定**:牵连全书的金手指规则、真相、伏笔、主线、力量档位、经济锚点、读者契约及马甲归因,不自行决定。《供给单》列具体缺口、1-2 个候选及关联设定影响,批末交作者;裁定先落设定再引用,不以占位或临时编数代替。推翻既有裁定、两个设定文件互相冲突也归 C 级,列出出处供作者判断。
|
|
269
290
|
|
|
270
291
|
已存在的设定文件按细纲新信息**增量补充、不覆盖**。一次性路人、后文无戏份的配角不建静态档案或动态快照。建档只填细纲已确定的信息,未定字段留占位符,不提前杜撰。
|
|
271
292
|
|
|
272
293
|
大纲完成后,创建以下 artifact(加载 [references/artifact-protocols.md](artifact-protocols.md) 中对应模板):
|
|
273
294
|
- **大纲/大纲.md**:全书卷级鸟瞰(卷名+字数+章数+核心事件+状态变化,一段式汇总)
|
|
274
|
-
- **大纲/卷纲_第X卷.md
|
|
275
|
-
-
|
|
295
|
+
- **大纲/卷纲_第X卷.md**:每卷的故事线(L 编号)+剧情单元+情绪弧线(含章节定位)+人物弧线+伏笔+反转+对标结构坐标+**刻度台阶/打脸债/压力线轮转**三表(按需填写,不适用时省略或写「无」;参考 outline-methods.md「大纲三层结构法」 + outline-structure-theory.md「章节定位与张弛 / 对标节奏迁移」 + emotional-arc-design.md「六种弧线速查」 + long-reversal.md「反转类型」;三表模板见 artifact-protocols.md)
|
|
296
|
+
- **追踪事务初始状态**:先完整读取 [tracking-initialization.md](tracking-initialization.md),按其构造第 0 章初始化 JSON,执行 `scripts/tracking_commit.py init`,生成检查点、续写状态卡(固定 7 栏)、空的伏笔/时间线视图与目录;紧接着运行 `check`,通过后删除初始化事务 JSON;核心角色动态快照可在第一次正文事务中创建
|
|
276
297
|
|
|
277
298
|
前 3 章细纲额外加载 [references/opening-design.md](opening-design.md)(黄金三章法则+六大标准)。
|
|
278
299
|
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 写手 prompt 手动组装
|
|
2
|
+
|
|
3
|
+
仅当组装脚本不可运行或用户指定不用脚本时加载。数据缺失导致 exit 2 应修数据后重跑。
|
|
4
|
+
|
|
5
|
+
- **prompt 第一行固定,逐字照抄、只替换 `{}`**:`本次任务:{写/续写/补写/重写/就地改}第 {N} 章,范围 {全章/哪几点、哪几段,范围外一字不动}。开始前先按「参考文件体系」逐行独立判定命中并读取,命中即必读,未命中不预加载;交付摘要里报出读了哪几个。`
|
|
6
|
+
- 动作写动手方式、不写「首稿」这类阶段名;退回补写、退化重写、自查返工都照实重填。
|
|
7
|
+
- 这行是**指令**不是材料栏目。**交付摘要没有读取清单 = 这行没传,重 spawn。**
|
|
8
|
+
- 第二行起传本章必需材料:
|
|
9
|
+
- 项目目录、章节、细纲文件(**只给路径,不给全文**)、上一章结尾切片(按整行回退约 400 字,**不给路径**)、输出路径与标题行字面量(使用当前平台的原生路径分隔符,章名从细纲 `### 第 N 章:章名` 解析,标题行形态照既有章)。
|
|
10
|
+
- 写前准备输出:本章意图、本节速记、情绪目标、涉及角色、参考技法、必读设定(**直接写出那几句,不给路径**)。
|
|
11
|
+
- 主对标/拆文路径、主/副对标召回摘要。
|
|
12
|
+
- `selected_emotion_module`、`rhythm_reference` 及来源路径。
|
|
13
|
+
- `genre_prose_card`(题材正文提示卡摘要,只含本章相关条目)。
|
|
14
|
+
- 文风全文路径、按 `style-resolution.md` 形成的 `style_resolution`、原文锚点;同一裁决原样交后续去味与审稿。
|
|
15
|
+
- `author_preferences`:作者记忆 `query` 结果中匹配本章的 `prose_style` / `story_design` 项;无则不传,禁止把完整画像或待确认项塞进 prompt;作为低优先级倾向自然吸收,不逐条展示或最大化命中,不牺牲连贯、节奏和字数。
|
|
16
|
+
- 阶段位置、本章结构公式、本章可释放信息、本章禁止提前释放信息。
|
|
17
|
+
- 字数目标、`visible_chars_v1` 口径、格式硬约束;默认两组交付并由主会话测一次 checkpoint;用户明确要求一次成文时才写全章。字数目标按整章分量刻度使用,疏密自行分配,不填写逐情节点配额。
|
|
18
|
+
- **agent 定义里已有的不重述**,只留一行指针:细纲优先边界=铁律 1、正文形状=铁律 2、新增物三档=铁律 3、阅读体验字段(本章标价/闭环状态/信息差触发点/镜头准入档位/情节点分辨率列/执行边界「放」半边)=铁律 4、交付三附件(时空表/新增申报表含末行「本章没写成的」/参考文件读取清单)=被调用协议。申报表与「没写成的」行的去向见步骤 12 与 workflow-setup「按剧情批出细纲」步骤 3。
|
|
19
|
+
|
|
20
|
+
## 检查分工
|
|
21
|
+
|
|
22
|
+
手动组装同样传入:写手负责编排、内容覆盖与格式自检;父流程质量阶段负责语义去味和最终文件扫描。写手不提前重复整轮去味或相同检查链,时空表、新增申报与原定交付保留。
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
- genre-prose-cards.md 提供题材声线与长线约束;本文件的「贯穿道具系统」提供跨章可执行设计模板
|
|
12
12
|
- 本文件第 8 节「场景写法(三维度揉进)」是 Phase 3 的写作方法,`long-format.md` 负责长篇章节的段落、对话与工程元信息规范
|
|
13
13
|
- 本文件「贯穿道具系统」只规定物件的三次出现编排时机和意义翻转规则;物件的初始情感含义设计(选什么物件、承载什么羁绊)由 emotional-methods.md 负责(信物型物件与羁绊铺设功能重叠,但视角不同)
|
|
14
|
+
- 本文件第 10 节「在场者的账」只管**谁能上镜、他的动机要不要露出来、分量由谁标价**;具体的对话怎么写(长度、权力反转、句式)仍见 dialogue-mastery.md,本文件不重复
|
|
14
15
|
|
|
15
16
|
---
|
|
16
17
|
|
|
@@ -20,6 +21,8 @@
|
|
|
20
21
|
|
|
21
22
|
情绪没有固定译法。上下文已经让读者感到,就不另补反应;情绪推动了剧情,就优先写角色的选择、台词、策略、关系变化、物件变化或实际后果;一句直写最准确时可以直写("他听烦了")。身体状态只是候选之一,只有它带来新信息、影响动作,或确实属于这个角色和这个场景时才写。
|
|
22
23
|
|
|
24
|
+
**同一规则适用于设定、能力与威胁。** 一样东西"危险""碰不得"不由叙述者断言,由一次有代价的试探演示:伸手、被弹回、自己估出还差多远;多看两眼、开始恍惚、退后一步绕开。旁白不先给答案(保留读者的发现权)。
|
|
25
|
+
|
|
23
26
|
### 落地顺序
|
|
24
27
|
|
|
25
28
|
写到情绪节点时按下面顺序判断,不做“情绪词逐个替换”:
|
|
@@ -108,6 +111,9 @@
|
|
|
108
111
|
| 伤害递增 | 数字逐次增大 | 800 → 1000 → 8 万 → 120 万 |
|
|
109
112
|
| 反差暴击 | 极端膨胀后骤降到极小值 | 「我姐为了供我读书,欠了八万块。我姐夫转给我一块钱。」 |
|
|
110
113
|
| 时间重量 | 用年限承载情感 | 「二十年了,她第一次叫我妈」 |
|
|
114
|
+
| **二次锚定** | 数字不许停在数字上,折回角色能用掉的东西 | 「卖了一千二百块」→「够她妹妹一学期的住宿」 |
|
|
115
|
+
|
|
116
|
+
**新价值一律换算成读者已知的旧价值。** 换算的对象要选读者**已经付过代价认识**的东西:上一章刚花掉的钱、上一章刚见过的一个人花了多久、主角现在缺的那一样。**换算发生在同一段里**,不隔章补。
|
|
111
117
|
|
|
112
118
|
### 数字叙事模板
|
|
113
119
|
|
|
@@ -242,6 +248,10 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
242
248
|
- 为显得自然而加流程细节;删掉无损就删
|
|
243
249
|
- 为凑字数重复解释情绪,或给每段补一个无功能身体反应
|
|
244
250
|
|
|
251
|
+
**一处显式例外:人物余韵。** 上面「删掉无损就删」不针对给人物加层的段落——一次说岔了的关心、一个被误会的反应、一个空镜。它的"无损"只对情节成立:判断方法不是问它推进了什么,是问**删掉之后谁少了一层**。
|
|
252
|
+
|
|
253
|
+
**这是豁免,不是配额。** 材料里长出这样一处就别砍;没长出来就没有,**不要为了凑"每章一处"补一段**。
|
|
254
|
+
|
|
245
255
|
---
|
|
246
256
|
|
|
247
257
|
## 8. 场景写法(三维度揉进)
|
|
@@ -251,10 +261,13 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
251
261
|
细纲各字段是本章"要发生什么"的规格,**不是正文的形状**。照着细纲的形状逐格填,正文就成了一条一条交代的电报体、一拍一句平推的生硬解说——这是"照抄大纲形状",和照抄范例形状同属 AI 味来源。
|
|
252
262
|
|
|
253
263
|
- 情节点序列是"要发生什么"的清单,不是句子模板:不要一个情节点写成一句或一段、按序平推;把每个点演成角色此刻可感知的选择、动作、对话、物件、结果,必要时才用身体反应——**演出来,不是交代出来**。
|
|
264
|
+
- **状态变化要给出台阶,不只给前后。** 一样东西烧起来、一张脸沉下去、一个人的态度转过来——要让读者看见中间态:先怎样、跟着怎样、最后成了什么。只给起点和终点的是概述,不是场景。台阶是**序列**不是堆料:同一状态换十种说法说十遍,仍然只是一个台阶。
|
|
254
265
|
- 同一约束如果在「核心事件 / 内容概括 / 情节安排 / 情节点」里重复出现,生成前只合并成**一个语义点**;重复字段不是强调,更不是四次复述额度。正文不得沿用提纲里反复出现的同一措辞逐项交代。
|
|
255
266
|
- 五段式(起因/发展/转折/高潮/结尾)是给细纲作者的功能拆解,不是正文的五个自然段;正文不必逐段顺叙,也不必一段对一格。
|
|
256
267
|
- "谁做了什么"的概括句、"A→B→C"箭头链、"收束到什么状态"是规划口径,不要原样搬进叙述。
|
|
257
|
-
-
|
|
268
|
+
- **同一时空内(时间连续、地点相同)的情节点默认合并、穿插、重排**——不局限于相邻的点,合理范围内块内任何点都可以彼此打断——织进同一段连续的戏;把它们排成一前一后的串行**才是需要理由的那一侧**——只有因果依赖(B 必须在 A 之后才成立)或刻意的节拍分隔才串行。跨时空的点本来就串行,不在此列。密点展开成慢镜头,疏点带过(见「疏密分配」)。
|
|
269
|
+
- **判据(逐对自问,不限相邻)**:把乙点的一句插进甲点中间,剧情坏不坏?**不坏,就说明这两个点可以互相打断**;因果被打乱、该压的信息提前泄露、正在攒的节拍被冲散,就不插。
|
|
270
|
+
- 例:一场饭局里「主角当众被驳了一次」「邻座起哄」「同伴趁空要回垫付的钱」「同伴顺口说出一个关键消息」四个点,全落在同一顿饭的那段时间里——该让它们互相打断(要钱插在两次举筷之间、消息垫在被驳之后),而不是吃完了再让人开口;「消息」也不必非等在「要钱」后面,被驳那阵就可以先露半句头,散场再说全。
|
|
258
271
|
- 章尾落在最后一个具体的动作、画面、台词或悬念上;细纲「结尾设定/收束状态」是规划口径,不要在正文里写成"就这样……""他终于明白……"式的状态总结句(结尾去升华见 anti-ai-writing.md)。
|
|
259
272
|
|
|
260
273
|
### 视角姿态:深度限知(贴地沉浸)
|
|
@@ -263,7 +276,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
263
276
|
|
|
264
277
|
- **镜头不拉远、不俯瞰、不切他人内心**:别写"整个大厅陷入死寂"这种摄像机视角,写"她听见自己的心跳,旁边的呼吸声一下子全没了"。
|
|
265
278
|
- **读者与角色同步获知**:角色不知道的不写;不提前剧透,不补全背景。悬念来自"她也不知道",禁止提前剧透句如"她不知道的是"。
|
|
266
|
-
-
|
|
279
|
+
- **念头是动作的一部分**:用半句的、被打断的、带情绪偏见的主观判断,不写完整理性的内心独白;不强配身体动作,情绪落地按第 1 节。
|
|
267
280
|
- **主观偏差代替客观叙述**:场景被角色情绪染色。她恨谁,谁就被写得可憎;她慌,光线就晃。不写中立的、谁看都一样的描述。但只能是她此刻带偏见的瞬间感觉,不能写成"像在宣判一件早已定好的事"这类客观盖棺断言(那是作者下场定性,见 anti-ai-writing.md 模式 8)。
|
|
268
281
|
|
|
269
282
|
深度限知是"自然去 AI"的根:把镜头钉死在角色身体里,作者就没有位置跳出来解释、总结、安排了(配合 anti-ai-writing.md 模式 8)。
|
|
@@ -314,8 +327,27 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
314
327
|
|
|
315
328
|
### 自检方法
|
|
316
329
|
|
|
330
|
+
**(一)三维遮盖法(逐段)**
|
|
331
|
+
|
|
317
332
|
对详写的关键场景用“三维遮盖法”:分别遮住发生、感知、反应,判断现有内容是否各自提供了不同信息。某维缺失不等于要补;只有读者因此看不懂现场、因果或角色下一步时,才把缺失信息织回同一镜头。若遮住一处身体/语气细节后什么也没损失,删掉它。逐章再做第 1 节“反套话四问”,指出原句处理,不用“已遵守”代替检查。
|
|
318
333
|
|
|
334
|
+
**(二)质检八问(按本次检查范围选用)**
|
|
335
|
+
|
|
336
|
+
以下供质检侧定位已有问题,不要求写手另交八项验收说明。只报告实际删改与保留理由;没有相应问题时跳过。
|
|
337
|
+
|
|
338
|
+
⚠ **八问是删除测试,不是补写清单。** 只许指出正文里**已有**的那一处;没有就答"无"并说明本章为什么不需要,**不许为了让某一问有答案回头补内容**。答"无"不扣分。
|
|
339
|
+
|
|
340
|
+
| # | 自问 | 不合格的样子 | 见 |
|
|
341
|
+
|---|---|---|---|
|
|
342
|
+
| 1 | 本章最大的那次状态变化,读者看见了几个中间态? | 只给了"起点"和"终点";或同一状态换十种说法说十遍 | 本节「从细纲到正文」 |
|
|
343
|
+
| 2 | 有没有一组同类并列项被平均分配了笔墨? | 三样物件、四拨人马各给同样的分辨率 | 本节「疏密分配」 |
|
|
344
|
+
| 3 | 本章的设定/能力/威胁,是被说出来的,还是被谁付了代价试出来的? | 旁白直接给出结论,读者没有自己发现的机会 | 第 1 节 |
|
|
345
|
+
| 4 | "厉害/难得/要命"这些判断,是谁给出的?他有什么立场? | 叙述者自己下的判断;结论由旁白先说出来、在场的人只负责吃惊;或标价人就在场却没标价 | 第 10 节「标价人」 |
|
|
346
|
+
| 5 | 每个给了镜头的人,此刻在为自己争取什么? | 遮住名字认不出是谁说的;所有人同向配合主角;用手部/喉部微动作代替立场;或把他的算计写成一段旁白独白 | 第 10 节「镜头准入」 |
|
|
347
|
+
| 6 | 该说出口的话,是写出来了还是被概括了? | "他吼了一声""他说了句什么""三言两语解释了缘由";本该来回几轮的交锋压成一次说完 | 第 3 节 |
|
|
348
|
+
| 7 | 本章最重的那一句,是不是最短的那一段? | 最重的一拍写成了全章最长的段落 | 本节「画面分段」 |
|
|
349
|
+
| 8 | 判为"密"的段落里,有没有量词加概括? | "一连七八下""半晌""众人纷纷"出现在密处 | 本节「疏密分配」 |
|
|
350
|
+
|
|
319
351
|
### 画面分段(防止一段到底)
|
|
320
352
|
|
|
321
353
|
三维度揉进不是把一个子事件塞进一个长段。揉进解决"同一瞬间被拆成发生/感知/反应三段"的问题;断段解决"手机阅读时一段过密"的问题。
|
|
@@ -337,6 +369,7 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
337
369
|
- 长度只是诊断,不是强制阈值:读起来拥挤、包含多个动作/信息/视线切换时才拆;完整戏剧单元未结束时不要为凑短而硬拆。
|
|
338
370
|
- 常规正文保持短段、稍长段、对话、动作段交替;高压冲突、打脸、反转段可以更碎更短。
|
|
339
371
|
- 不要连续多段同长度,也不要把一个完整推理链切成机械碎片。
|
|
372
|
+
- **最重的一句要最短。** 全章最重的那一拍——底牌亮出、一句定生死的许诺、身份被说破——用最短的一段承接,能单句成段就单句成段。**长度表达绵延,不表达重量**;要"慢"用停顿,不用字数。
|
|
340
373
|
|
|
341
374
|
输出前必须做一次自然节奏重排:
|
|
342
375
|
|
|
@@ -371,6 +404,10 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
371
404
|
|
|
372
405
|
原则:一章里详写的 beat 集中在情绪节点,过场坚决压缩。读者记住的是密处的画面,疏处只是把他们快速送到下一个爽点。密度有起伏,节奏才有呼吸。
|
|
373
406
|
|
|
407
|
+
**同类并列项要递减,不要平均。** 三样物件、四拨人马、五次出手——第一个写足,第二个减半,后面的一句带过或只给一个区别点。**递减不是省略**:被压缩的那几个仍要各有一个不重复的记号,否则是漏写。
|
|
408
|
+
|
|
409
|
+
**判为"密"的地方禁止量词加概括。** "一连七八下""斗了半晌""众人纷纷点头""交手数十回合"(把过程折叠成一个数字,是疏处的手法)。密处只有一种写法:挑出其中**具体的几下**,逐拍写。
|
|
410
|
+
|
|
374
411
|
### 子事件连接
|
|
375
412
|
|
|
376
413
|
子事件之间按真实关系连接:因果推进、对话接招、新信息、空间移动或角色下一步都可以;不规定必须插入身体动作,也不规定连接句长度。
|
|
@@ -419,3 +456,33 @@ IF 主事件是一连串动作 → 加「递进」:动作引发的连锁反应
|
|
|
419
456
|
1. 读本场景目标情绪和角色声线,给每个关键对话 beat 标一类语气(压迫/试探/爆发/迟疑/被打断)。
|
|
420
457
|
2. 精修时扫一遍句尾:如果一整段只剩句号,检查是否把质问、迟疑、爆点压平;如果满屏 `?`/`!`,删到只保留有功能的位置。
|
|
421
458
|
3. 正文(含对话)里的 `……`、`——`、`—`、`--` 都改成句号、逗号、短句、换行或动作断句。知乎盐言 `「」` 只是引号风格,不影响问号、感叹号的合法使用。
|
|
459
|
+
|
|
460
|
+
---
|
|
461
|
+
|
|
462
|
+
## 10. 在场者的账(镜头准入与标价)
|
|
463
|
+
|
|
464
|
+
治的是"所有人一起转向、齐声承认"的场面(人都在场,却没有一个在为自己做事)。
|
|
465
|
+
|
|
466
|
+
### 镜头准入:他在为自己争取什么
|
|
467
|
+
|
|
468
|
+
写一个人之前先答一句:**他此刻在保什么、在算什么?** 答不上来就不给镜头;给了镜头,这件事必须在他的台词或动作里露出来,哪怕只露半句。
|
|
469
|
+
|
|
470
|
+
同一件事,在场各人读出的东西应当不同:掌握资源的一方重算利害决定不必得罪,输的一方忙着把责任推给别人,拉不下脸的那个改去攻击对方另一处短板,当事人的亲近者只顾趁热把话钉死。
|
|
471
|
+
|
|
472
|
+
- 判断方法:**遮住名字,能不能认出这句反应是谁的?** 认不出,说明他们说的是同一句话的几种说法。
|
|
473
|
+
- 反应要**分层**:全体折服最没张力,留一两个不服、只把评价角度换到别处,可信得多。
|
|
474
|
+
- 群像场景最吃紧;独角戏里退化为"主角图的是什么",同样成立。
|
|
475
|
+
|
|
476
|
+
### 说话权分级:惜墨表示地位
|
|
477
|
+
|
|
478
|
+
在场的人不是平权的。**一场戏只给三到四个人台词**,其余降级为一个动作或一个目光——地位越高的人给的动作越少、越静,用惜墨表示分量;同等级同立场的合并成一句,连名字都不必给。**点名的时机 = 承担功能的时机**,提前点名是提前许诺。
|
|
479
|
+
|
|
480
|
+
反面信号:五六个人各做一个等重量的小动作——镜头被平摊,谁也没立住。
|
|
481
|
+
|
|
482
|
+
### 标价人:谁说这件事重要
|
|
483
|
+
|
|
484
|
+
"厉害/难得/要命"由**有立场的人**当场标价,不由叙述者断言。四种方式:**内行估价**(懂行的人给一句业内口径评语)、**最强者的姿态**(最有分量的人必须做出动作才顶得住)、**基准线被打破**(熟悉此地的人说"往常不该是这样")、**稀缺度**(交代平常要什么代价才换得到)。
|
|
485
|
+
|
|
486
|
+
**标价发生在事情起效之前**,不能等结果出来再补。反面:该标价的人就在场,却只写他"笑了笑,凑到旁边说了句什么"——位置留了,内容没给。
|
|
487
|
+
|
|
488
|
+
**尺子要先于被度量的事出场,至少两把**(同场另一个做到几寸、当年最好的那个用了多久)。事后补一轮尺子也可以(同一个爽点吃第二遍)。
|