@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
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# 去AI味完整指南
|
|
2
2
|
|
|
3
|
+
> 本文件的句长、视角、标点、修辞与禁用词是默认写法,服从 [style-resolution.md](style-resolution.md) 的逐维裁决。所选 Gate 检查表达效果,不因作者有意选择某写法就机械删除;获准命中按书级 `.deslop-whitelist` 处理。
|
|
4
|
+
|
|
3
5
|
<!-- 同名副本×5 字节同步,改动后跑 scripts/check-shared-files.sh -->
|
|
4
6
|
|
|
5
7
|
> 识别AI写作指纹、系统性去AI三遍法、禁用词约束、改写范例库。用于正文写作后做去AI味自检和改写时查阅。
|
|
@@ -105,18 +107,11 @@
|
|
|
105
107
|
|
|
106
108
|
### 规则 2:动作 + 对话 + 情绪反应
|
|
107
109
|
|
|
108
|
-
|
|
110
|
+
动作、对话与情绪反应按场景需要交织,不按固定顺序轮换,不为凑齐三项补反应。
|
|
109
111
|
|
|
110
|
-
|
|
111
|
-
动作 -> 对话 -> 情绪反应 -> 动作 -> 对话 -> ……
|
|
112
|
-
```
|
|
112
|
+
情绪没有固定译法,关键节点也可以准确直写。上下文已让情绪成立,不另补反应;需要补足信息时,优先选择、台词、策略、物件或实际后果。
|
|
113
113
|
|
|
114
|
-
|
|
115
|
-
- 不写"他很紧张" -> 写"手心全是汗,筷子差点掉了"
|
|
116
|
-
- 不写"她很愤怒" -> 写"她把杯子摔在地上,碎片弹到脚背上也没弯腰捡"
|
|
117
|
-
- 不写"他很伤心" -> 写"他在车里坐了二十分钟才发动引擎"
|
|
118
|
-
|
|
119
|
-
以上替换针对关键情绪节点;低强度过场情绪可一笔直写("他有点烦"),不必处处外化。
|
|
114
|
+
身体细节只有带来新信息、影响动作或体现人物与场景特点时才保留。只在句尾重复标注情绪的微动作删掉,不换部位或同义动作。去味时沿用原文已有事实,不凭空添加摔杯子、攥袖口等行为。
|
|
120
115
|
|
|
121
116
|
### 规则 3:句子该多长(短句是工具,不是默认)
|
|
122
117
|
|
|
@@ -157,7 +152,7 @@
|
|
|
157
152
|
1. 用行为代替形容词
|
|
158
153
|
2. 用细节代替总结
|
|
159
154
|
3. 用对话代替旁白说明
|
|
160
|
-
4.
|
|
155
|
+
4. 用后果代替情绪总结
|
|
161
156
|
|
|
162
157
|
---
|
|
163
158
|
|
|
@@ -219,8 +214,7 @@
|
|
|
219
214
|
> 完整禁用词表和句式模板见 [banned-words.md](banned-words.md)
|
|
220
215
|
|
|
221
216
|
### 正确替代示例
|
|
222
|
-
- '
|
|
223
|
-
- '她很伤心' -> '她背过身,把袖口攥皱了'
|
|
217
|
+
- '他感到一丝紧张,手心全是汗' -> '他签名时划破了纸'(身体细节只在造成后果时留)
|
|
224
218
|
- '"好的。"他说道' -> '"好的。"他把门卡塞回口袋'
|
|
225
219
|
- '他深吸一口气' -> '他把话咽回去'
|
|
226
220
|
|
|
@@ -276,7 +270,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
276
270
|
| 解释因果 | 「之所以…是因为」「原来…」「这意味着」「正是因为」-> 删。因果只从角色动作、对话、反应里让读者自己拼 |
|
|
277
271
|
| 上帝视角剧透 | 「她不知道的是」「殊不知」「多年以后」「冥冥之中」「仿佛预示着」-> 删。只写角色此刻知道的,悬念让读者自己悬 |
|
|
278
272
|
| 替读者下结论/定性 | 「演得真好」「这出戏她看过一遍」「他就是这样薄情的人」-> 删。把证据(神态、动作、台词)摆出来,定性留给读者 |
|
|
279
|
-
| 替角色总结心理 | 「她明白,这一切都是命」->
|
|
273
|
+
| 替角色总结心理 | 「她明白,这一切都是命」-> 无新增信息就删;确有角色判断时保留带偏见的闪念,不强配身体反应 |
|
|
280
274
|
| 总结/动机/评价链把意义说满 | 「他终于明白」「这是最好的选择」「所有人都会记住这一刻」-> 删掉定性,改成角色当下要处理的具体缺口、未完成动作或局部反馈;不是保留评价再硬塞物件/动作 |
|
|
281
275
|
| 安排感/硬铺垫 | 为后文强行交代背景、整段回忆倒叙 -> 背景按角色此刻真实所需,用闪念、半句话、物件零碎带出,不集中交代 |
|
|
282
276
|
| 升华式收尾 | 结尾对仗拔高、金句点题 -> 用一个动作或一句留白收住,把"意思"压进画面里 |
|
|
@@ -315,7 +309,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
315
309
|
|
|
316
310
|
自检:删完连读一遍,读感像提纲或流水口令,就是删过了——把非峰值句恢复成自然白话,不是接着删。
|
|
317
311
|
|
|
318
|
-
|
|
312
|
+
本模式约束的是删减的度,不降低清理力度:选定 Gate 内的禁用词、套路句式、告知式心理照删照改;回填只回结构虚词和连接,不保留、不恢复任何模板措辞。
|
|
319
313
|
|
|
320
314
|
### 模式 10:二修伪自然(油腻倒装 / 监控动作清单 / 对话指标化)
|
|
321
315
|
|
|
@@ -381,7 +375,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
381
375
|
## 系统性去AI三遍法
|
|
382
376
|
|
|
383
377
|
### Pass 1:去泛化(Strip Generic)
|
|
384
|
-
- 抽象情绪总结句 ->
|
|
378
|
+
- 抽象情绪总结句 -> 按规则 2 判断:删重复说明,保留准确直写,需要时用原文已有信息落地
|
|
385
379
|
- 假深度句 -> 删
|
|
386
380
|
- 意义膨胀 -> 缩小到具体影响
|
|
387
381
|
- 空洞结论 -> 删
|
|
@@ -411,13 +405,9 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
411
405
|
|
|
412
406
|
**原则**:少即是多。每段加 1-2 个具体细节就够了。
|
|
413
407
|
|
|
414
|
-
###
|
|
408
|
+
### 执行范围
|
|
415
409
|
|
|
416
|
-
|
|
417
|
-
|----------|------|
|
|
418
|
-
| 轻度 | 只做 Pass 1 |
|
|
419
|
-
| 中度 | Pass 1 + Pass 2 |
|
|
420
|
-
| 重度 | 完整三遍 + 重点段落重写 |
|
|
410
|
+
调用方指定 Gate 时,只处理选定 Gate;三遍法只安排顺序,不重新分级或扩大范围。未指定范围时,按实际问题选择适用检查。
|
|
421
411
|
|
|
422
412
|
### 自检清单
|
|
423
413
|
- 对话自然度检查:对话是否使用口语化表达,是否避免了书面语/正式腔调
|
|
@@ -456,31 +446,13 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
456
446
|
|
|
457
447
|
## 改写范例库
|
|
458
448
|
|
|
459
|
-
###
|
|
460
|
-
|
|
461
|
-
**紧张**
|
|
462
|
-
- '他感到一阵紧张,心跳不由自主地加快了'
|
|
463
|
-
- 他攥紧了手里的纸杯,水洒出来一些
|
|
449
|
+
### 情绪落地示例
|
|
464
450
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
- '一丝悲伤涌上心头,她的眼中闪过泪光'
|
|
471
|
-
- 她低头搅着咖啡,搅了很久
|
|
472
|
-
|
|
473
|
-
**害怕**
|
|
474
|
-
- '恐惧瞬间笼罩了他,他感到一阵战栗'
|
|
475
|
-
- 他的背贴在墙上,不敢动
|
|
476
|
-
|
|
477
|
-
**失望**
|
|
478
|
-
- '她感到一丝失落,心仿佛被什么东西揪住了'
|
|
479
|
-
- "哦。"她把手机锁了屏
|
|
480
|
-
|
|
481
|
-
**惊讶**
|
|
482
|
-
- '他的瞳孔微微收缩,显然没有想到会听到这样的话'
|
|
483
|
-
- 他张了张嘴,什么都没说出来
|
|
451
|
+
| 原文与语境 | 处理 |
|
|
452
|
+
|---|---|
|
|
453
|
+
| 「他很紧张。再错一题,补考也过不了。」 | 情绪有具体原因,可以直写,不补手抖或出汗 |
|
|
454
|
+
| 「她已经决定不再等他。她攥了攥袖口。」袖口动作无后续作用 | 删除第二句,不换成低头或咬唇 |
|
|
455
|
+
| 「手腕的伤让他握不住笔,签名只写了一半。」 | 保留,身体状态造成动作失败,不能当作情绪套话删除 |
|
|
484
456
|
|
|
485
457
|
### 场景描写范例
|
|
486
458
|
|
|
@@ -571,7 +543,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
571
543
|
- [ ] **无书面语连词堆砌**:无"于是乎/与此同时/从而/因而/诚然"泛滥
|
|
572
544
|
- [ ] **章尾无总结升华**:用动作/对话/悬念收束,无感悟/哲理/预告
|
|
573
545
|
- [ ] **无大段心理描写**:心理活动不超过2段,无括号标注内心
|
|
574
|
-
- [ ]
|
|
546
|
+
- [ ] **情绪落地**:按规则 2 保留准确直写与有功能的身体细节,删除重复说明,不给每个情绪词配动作
|
|
575
547
|
- [ ] **对话口语化**:无书面腔,不同角色语气可区分
|
|
576
548
|
- [ ] **标点不压平**:没有把质问、爆发、犹豫全部压成句号;也没有随机堆砌 `?`/`!`,或用 `……`/`——` 硬造停顿
|
|
577
549
|
- [ ] **Show Don't Tell**:用行为代替形容词,用细节代替总结
|
|
@@ -18,12 +18,12 @@
|
|
|
18
18
|
|
|
19
19
|
**层级关系(全书 › 卷 › 剧情单元 › 章 › 情节点;故事线横向贯穿多个剧情单元):**
|
|
20
20
|
- 大纲.md = 全书鸟瞰(每卷一两句话定位)
|
|
21
|
-
- 卷纲_第X卷.md =
|
|
21
|
+
- 卷纲_第X卷.md = 单卷规划(故事线+剧情单元+情绪+人物+伏笔+反转)
|
|
22
22
|
- 细纲_第XXX章.md = 单章蓝图(单元ID/位置 + 主角目标/关键选择 + 内容概括 + 多线情节安排 + 人物关系/出场顺序 + 情节细化 + 结尾设定/钩子)
|
|
23
23
|
|
|
24
24
|
**概念对照(统一叫法,减少混淆):**
|
|
25
25
|
- **剧情单元** = 一段完整剧情(1.5-3 万字/数章,一个矛盾从起到收)。拆书侧就是 `剧情/{剧情单元名}.md`,本书侧就是卷纲里的**剧情单元卡**;理论叫法是「一级结构」。同一粒度,统一叫剧情单元。
|
|
26
|
-
-
|
|
26
|
+
- **故事线** = 贯穿多个剧情单元的线(主线/感情线/成长线/夺宝线…),比剧情单元大一层。拆书侧是 `剧情/故事线.md`,本书侧是卷纲的**本卷故事线**表(L 编号)。剧情单元纵向切段,故事线横向贯穿,同一卷的两个视角。
|
|
27
27
|
- 「循环」一词只在**节奏义**保留(爽点循环、升级循环、小/中/大循环等),不再指代规划单元。
|
|
28
28
|
|
|
29
29
|
---
|
|
@@ -196,8 +196,19 @@
|
|
|
196
196
|
- 本卷战果:{其余顺带兑现的线,轻触到大涨皆可;一战多得是好设计}
|
|
197
197
|
- 本卷解锁的终局里程碑:{参 `设定/题材定位.md`「终局底牌与升级台阶」小节,本卷推进或解锁哪一个大里程碑}
|
|
198
198
|
- 本卷禁碰的终局底牌:{尚未到解锁卷、本卷不得动用的宿敌/真相/身份/金手指上限}
|
|
199
|
+
- 本卷鼓励长出的:{2-4 类本卷排纲时鼓励发明的东西——新故事线类型、对手侧的人、场面里的物、规矩细则、可数刻度序列;只列品类与方向,不预写内容。与上一行配对:上一行说不许动什么,本行说往哪儿长}
|
|
199
200
|
- 契约风险:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
|
|
200
201
|
|
|
202
|
+
## 本卷故事线(L 编号唯一分配处;主线之外至少 2 条)
|
|
203
|
+
|
|
204
|
+
> 比剧情单元大一层的横向线。剧情单元卡「本单元在跑的线」按 L 编号引用本表。支线必须与主线有对接口(见 outline-conflict.md「支线 = 完成主线的手段」、outline-structure-theory.md「支线设计原则」)。
|
|
205
|
+
|
|
206
|
+
| 编号 | 线 | 类型 | 推进靠什么 | 与主线怎么对接 | 本卷区间 | 主线停摆时能否单独扛一章 |
|
|
207
|
+
|---|---|---|---|---|---|---|
|
|
208
|
+
| L01 | {一句话} | {主线/资源/人脉/地位/身份/关系/信息/配角暗线} | {它自己的推进器:谁在推、图什么、时限是什么} | {汇聚点:在哪一章、以什么形式并回主线} | 第{A}-{B}章 | {能/只能半章/不能} |
|
|
209
|
+
|
|
210
|
+
末栏是主线薄时的可调存量清单。填「能」的线要有自己的对手、自己的时限、自己的可见收益,不依赖主线事件发生。全卷没有一条填「能」时补线,不靠拉长主线填章。
|
|
211
|
+
|
|
201
212
|
## 剧情单元卡(1–3 万字为可调经验值;存于卷纲内;不另建单独文件)
|
|
202
213
|
|
|
203
214
|
> 剧情单元 = 卷纲里的一级结构单元(见 outline-structure-theory.md「对标节奏迁移」),与下方「对标结构坐标」是同一单元的不同视角,不重复编排。单元长度按本书题材、既有兑现节奏与对标调整,不是硬门槛。规划各关键节点时消费权威文件的“关键节点四问”和期待所有权;无需主角亲自执行每个动作。高潮/兑现后可留短暂低压,以小而可见的收益/奖励承接下一轮压力。引入新地图/机构/能力/敌人/谜团时先检查换书债,不得借新鲜感逃避旧承诺。
|
|
@@ -205,7 +216,7 @@
|
|
|
205
216
|
### 剧情单元 {L卷号-序号}
|
|
206
217
|
- 单元ID:{L卷号-序号}
|
|
207
218
|
- 章节范围:{第A-B章}
|
|
208
|
-
- 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3
|
|
219
|
+
- 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}」**——单元内容形态不强制映射对标,自创单元照常过大纲安全七检与批末复核}
|
|
209
220
|
- 单元节拍/章功能分配:{建立期待→尝试→加压/转向→决定性行动→兑现→余波;标对应章范围,可按题材删改;建卡时可按「对标剧情参照」剧情单元提炼的共性节拍填写,见 outline-structure-theory.md「按剧情批出细纲」}
|
|
210
221
|
- 单元承诺:{本单元向读者建立的情绪命题/期待,以及要偿还的期待债}
|
|
211
222
|
- 单元情绪引擎:{核心情绪命题→承载对象/情绪缺口→受阻或缺口维持原因→本轮触发→主角不可替代的点火/转化动作→意义变化或可见兑现→题材/契约兑现;承载对象可为人物/关系/目标/规则/场景;不适用环节可写无/即时,但须保持因果闭合;机制按题材选,不强制误解/物件/反转}
|
|
@@ -216,11 +227,33 @@
|
|
|
216
227
|
- 关键选择与决定性行动:{主角不可替代的判断、选择和行动}
|
|
217
228
|
- 兑现方式与归属:{核心兑现如何发生,收益归谁、如何可见}
|
|
218
229
|
- 本单元主推线/战果:{沿用卷契约划分——主推线1条承担高潮,其余线给战果,一战多得允许}
|
|
230
|
+
- 本单元在跑的线:{按 L 编号列,主线之外至少 1 条;每条写「L0X 从哪一步推到哪一步」,不重述线本身。本单元不动的线不列}
|
|
219
231
|
- 终局底牌边界:{本单元不得动用的未解锁宿敌/真相/身份/金手指上限;碰到就按权威文件透支两问改纲}
|
|
220
232
|
- 禁止提前释放:{本单元不能提前解决/揭露/升级的内容}
|
|
221
233
|
- 下一单元因果钩子:{自然推入下一单元的问题、代价、线索或新目标}
|
|
222
234
|
- 风险等级:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
|
|
223
235
|
|
|
236
|
+
> **段位契约(新建卷纲必须照此写;取段器按此解析)**:每个 `##`/`###`/`####` 标题的**下一行**写一行 `> 作用域:X`,X 取三值之一——
|
|
237
|
+
> `卷级常任`(全卷有效,取段器恒定带出)/`单元级 {单元ID}`(只在该单元的闭包里出现)/`批次底稿 {单元ID}|状态:在用|已退役`(排纲期工作底稿,批次完成且有效结论已下沉后改「已退役」,默认不再取出,--history 可查看)。
|
|
238
|
+
> 四条纪律:**①全卷常任规则不许写在单元块里**——单元块只写本单元落点+一行指针,规则本文放 `## 全卷常任裁定`(checker 会按「全卷/常任/全程生效」字样报 E4)。
|
|
239
|
+
> **②被推翻的内容不留旧文**——改成 `⊘ 已退役 → 见 {何处}` 起头的行,取段器默认不输出,读到的一定是当前有效值。
|
|
240
|
+
> **③每批建完把过程性底稿改为「已退役」**。
|
|
241
|
+
> **④批次底稿不是写作期输入**——写正文走 `--stage write`,底稿一概不给。底稿里凡有**写作期约束力**的条目(跨章祈使:全程不许/往后任何章/此后不再…),
|
|
242
|
+
> **建纲当场就要下沉**到该单元的单元级段(排纲纪律/时间轴/账链)或直接写进细纲;`--check` 的 W1 告警专盯这类句子,逐条确认下沉过再放行。
|
|
243
|
+
> 底稿仅用于排纲期(批末交作者裁定、下一批供给自查的输入)。
|
|
244
|
+
> 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;读取方式见 SKILL.md「卷纲不整读(取段器)」。
|
|
245
|
+
|
|
246
|
+
## 全卷常任裁定
|
|
247
|
+
> 作用域:卷级常任
|
|
248
|
+
|
|
249
|
+
{对本卷每个剧情单元生效的规则本文写在这里,单元卡与排纲纪律只写落点、不复读规则。编号列出,单元侧按「常任 N +本单元落点」引用}
|
|
250
|
+
|
|
251
|
+
#### 供给自查(本单元出细纲前产出,见 workflow-setup.md「按剧情批出细纲」步骤 3)
|
|
252
|
+
{六行答完落此处:对手供给 / 角色供给 / 能力与金手指供给 / 刻度供给 / 场景与底图供给 / 故事线供给。B 级发明各列一行「发明了什么+落在哪个设定文件」;C 级提案列候选+影响面待作者裁定;无缺口写「无缺口」。批末 `check-outline-contract.js --supply` 验证本小节存在}
|
|
253
|
+
|
|
254
|
+
#### 建纲追加(本批建完后回填,见 workflow-setup.md「按剧情批出细纲」步骤 5)
|
|
255
|
+
{逐章落笔时才发现的缺口,一条一行,**不与上面六行混写**(批前预见与当场发现分列)。格式:`第 N 章排到哪一步发现缺什么 / A・B・C / 落在哪个设定文件或提案编号`。一条也没有写「无追加」。下一批做供给自查时以本小节为固定输入}
|
|
256
|
+
|
|
224
257
|
## 核心矛盾
|
|
225
258
|
{一句话:本卷要解决什么问题或达到什么目标}
|
|
226
259
|
|
|
@@ -254,9 +287,31 @@
|
|
|
254
287
|
|------|---------|---------|---------|---------|
|
|
255
288
|
| {类型} | {名} | {如何误导读者} | 第{N}章 | {影响哪些线} |
|
|
256
289
|
|
|
257
|
-
##
|
|
258
|
-
| 伏笔 | 埋设章节 | 预计回收 | 类型{短期/中期/长期} |
|
|
259
|
-
|
|
290
|
+
## 本卷伏笔(F 编号唯一分配处;表按编号排)
|
|
291
|
+
| 编号 | 伏笔 | 埋设章节 | 预计回收 | 类型{短期/中期/长期} |
|
|
292
|
+
|------|------|---------|---------|---------------------|
|
|
293
|
+
|
|
294
|
+
## 本卷刻度台阶
|
|
295
|
+
{以下刻度台阶、打脸债、压力线轮转三表按本书需要填写;不适用时可省略或写「无」,不为填表新增剧情。}
|
|
296
|
+
{读者在本卷要学会哪几把尺子,以及每一格在第几章被立起、第几章被跨过(尺子先于要度量的那件事出场)。刻度本身存在 `设定/世界观/`,本表只登记它在本卷的**呈现时机**,不重复定义}
|
|
297
|
+
|
|
298
|
+
| 刻度 | 全部档位(可数序列) | 主角本卷起点 | 本卷终点 | 立起于第几章 | 跨格于第几章 |
|
|
299
|
+
|------|--------------------|------------|---------|-----------|-----------|
|
|
300
|
+
| {身份/资质/财力/实力/名次} | {甲→乙→丙→丁,共4格} | {丙} | {乙} | 第{N}章 | 第{N}章 |
|
|
301
|
+
|
|
302
|
+
## 本卷打脸债
|
|
303
|
+
{有人当众看轻主角、下了绝对化断言、或立了一个会被推翻的规矩(伏笔是情节种子,打脸债是情绪欠条——可不推进情节,但必须还)。跨卷未还的挂在这里不删}
|
|
304
|
+
|
|
305
|
+
| 原话或断言 | 谁说的 | 第几章说的 | 预定兑现 | 兑现形式{对称/超额/由第三方转述} |
|
|
306
|
+
|-----------|-------|----------|---------|------------------------------|
|
|
307
|
+
| {"就凭你也想…"} | {名} | 第{N}章 | 第{N}章 | {对称:他说打断双手,结果自己断了三指} |
|
|
308
|
+
|
|
309
|
+
## 压力线轮转
|
|
310
|
+
{同时挂着的几条压力线,以及各线在哪些章推进、哪些章静默。**每章只推一到两条**,其余保持静默;静默的线用一句比价维持存在感("那位再横,还能横过某某吗")}
|
|
311
|
+
|
|
312
|
+
| 压力线 | 类型{环境/同侪/结构} | 可否交涉 | 本卷推进章 | 静默章 | 解决方式 |
|
|
313
|
+
|-------|-------------------|---------|----------|-------|---------|
|
|
314
|
+
| {名} | {结构} | {否,靠变强也解决不了} | 第{N}、{M}章 | 其余 | {本卷不解决,只加压} |
|
|
260
315
|
```
|
|
261
316
|
|
|
262
317
|
创建参考:`outline-methods.md` (大纲三层结构法) + `outline-rhythm.md` (升级感三步设计法) + `emotional-arc-design.md` (六种弧线速查) + `long-reversal.md` (反转类型与长线层级)
|
|
@@ -269,7 +324,7 @@
|
|
|
269
324
|
|
|
270
325
|
`目标情绪` 与 `主角目标/关键选择` 要写实际内容,不能留 `[待补充]`:隔离实验里只补这两个字段就能复现补齐全部字段的正文收益,补满其余字段与只补这两个不可区分。其余字段未知时仍按上文写 `[待补充]`。
|
|
271
326
|
|
|
272
|
-
落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}`
|
|
327
|
+
落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}` 做结构验收:它只判字段、四个小节、五段式、情节点表结构(五列 `# / 情节点 / 功能标签 / 分辨率 / 执行边界`;加分辨率列之前的四列旧表仍收)和字数目标口径是否在场,不判内容好坏。exit 1 时只按 `repair_scope` 补报告点名的字段并复验,最多两轮;仍失败就报告检查 ID 停下,不改其他章。exit 2、脚本缺失或 node 不可用时如实报告验收未完成,不得声称细纲已合规。本检查只在新建/补建/回填时执行;既有项目的旧细纲不因此阻断写正文。
|
|
273
328
|
|
|
274
329
|
---
|
|
275
330
|
|
|
@@ -6,13 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
加载优先级从高到低:
|
|
8
8
|
|
|
9
|
-
1.
|
|
9
|
+
1. 安全、用户授权范围、明确的平台交付要求、字数与文件协议;句长、视角、修辞和标点偏好不属于不可覆盖的硬门禁;
|
|
10
10
|
2. 用户在当前请求中的明确要求;
|
|
11
11
|
3. 当前书的 `设定/文风.md`、题材定位、细纲和其他项目设定;
|
|
12
12
|
4. 作者记忆中的本书偏好;
|
|
13
13
|
5. 作者记忆中的题材、流程和全局偏好;
|
|
14
14
|
6. 对标素材、通用方法和默认值。
|
|
15
15
|
|
|
16
|
+
按表达维度取最窄适用要求:低优先级只补缺项,不与高优先级要求并列执行。通用 references 自称“必须/禁用”不改变此顺序;审稿不因作者有意采用的表达本身扣分,真实可读性与因果问题仍照常评价。
|
|
17
|
+
|
|
16
18
|
作者记忆不能把本书事实写进 `.story/作者记忆/`,不能覆盖当前请求,不能降低审稿 rubric,也不能让去 AI 味改动剧情意图。小说事实继续由各书的 `追踪/` 和 `设定/` 管理。
|
|
17
19
|
|
|
18
20
|
## 文件与所有权
|
|
@@ -27,7 +29,7 @@
|
|
|
27
29
|
└── 变更记录.md # 最近 100 次、最新在前的事务记录
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
三个 Markdown 文件都从 state 确定性生成,禁止手改;完整历史保留在 state,变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图,普通写作 agent 不整份注入,而是调用 `query`
|
|
32
|
+
三个 Markdown 文件都从 state 确定性生成,禁止手改;完整历史保留在 state,变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图,普通写作 agent 不整份注入,而是调用 `query` 取得本次相关的紧凑上下文。`query` 要显式传 `--book`、已知的 `--genre` / `--workflow`;只传 kind 不会返回本书或题材项。作者记忆不存在时,普通写作、审稿和去味任务直接继续,不自动初始化空目录;首次 `record` 会随事务创建。
|
|
31
33
|
|
|
32
34
|
工作区必须显式传给脚本。优先使用已经包含 `.story/作者记忆/` 的最近祖先;首次初始化时使用承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的创作工作区根。不要把用户主目录当默认工作区。
|
|
33
35
|
|
|
@@ -79,7 +81,7 @@
|
|
|
79
81
|
|
|
80
82
|
- 同一类型、范围、归纳文本再次出现时,脚本强化原条目,累加证据和确认次数,不重复建条目。
|
|
81
83
|
- 新偏好与 active 条目矛盾时,先以 `conflict` 记候选,并在 `conflicts_with` 列出冲突 ID;当前任务仍按本轮明确要求执行。
|
|
82
|
-
-
|
|
84
|
+
- 同一范围的规则改版用 `replace`,启用新条目并将旧条目标成 `superseded`。本书例外用 `remember` 新建 book 条目,保留 global 习惯;只有作者明确撤销或改变旧规则范围时才跨范围替换。
|
|
83
85
|
- pending 可以用 `decide=activate|reject`;冲突候选不能绕过旧规则直接 activate。
|
|
84
86
|
- 作者说“忘掉 / 这不再是我的习惯”时用 `forget`,保留历史证据但不再加载。
|
|
85
87
|
- active 条目的语义不可原地偷改;语义变化必须 replace,历史才可审计。
|
|
@@ -139,17 +141,17 @@
|
|
|
139
141
|
```json
|
|
140
142
|
{
|
|
141
143
|
"action": "replace",
|
|
142
|
-
"old_ids": ["AP001"
|
|
144
|
+
"old_ids": ["AP001"],
|
|
143
145
|
"preference": {
|
|
144
146
|
"kind": "prose_style",
|
|
145
|
-
"scope": {"level": "
|
|
146
|
-
"assertion": "
|
|
147
|
-
"quote": "
|
|
147
|
+
"scope": {"level": "global", "value": null},
|
|
148
|
+
"assertion": "以后对话允许更长的试探,但避免解释设定",
|
|
149
|
+
"quote": "把以前对话都要短的习惯替换掉:以后可以让对话慢一点,多试探,但还是别拿台词讲设定。",
|
|
148
150
|
"source_ref": "conversation:2026-08-25",
|
|
149
151
|
"source": "explicit_user",
|
|
150
152
|
"confidence": "high",
|
|
151
153
|
"importance": "high",
|
|
152
|
-
"reason": "
|
|
154
|
+
"reason": "作者明确替换原有全局规则,不是新增本书例外"
|
|
153
155
|
}
|
|
154
156
|
}
|
|
155
157
|
```
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# 长篇写前召回
|
|
2
|
+
|
|
3
|
+
本文承接 workflow-chapter.md 步骤 3;路径优先级及缺失修复见 [project-files.md](project-files.md)。
|
|
4
|
+
|
|
5
|
+
- **模块召回、题材卡与文风召回**:
|
|
6
|
+
- **成熟项目短路径(召回降档)**:`custom_style=true`(见 (d))、`设定/题材正文提示卡.md` 有实质内容、且本章细纲「目标情绪」有实际内容——且单元卡的情绪引擎、节拍分配有有效内容时**跳过 (a)(b)(e)(f)**:情绪目标取细纲「目标情绪」与单元卡「单元情绪引擎」,节奏取单元「节拍/章功能分配」,`selected_emotion_module` / `rhythm_reference` 记「降档:细纲/单元卡」,(c)(d) 照常执行,(g) 按缩减集输出。任一条件不满足走下方全量召回。判定由组装脚本做出并写进核对报告,主会话不重判。**降档下不检查对标 `剧情/情绪模块.md` 与 `剧情/节奏.md` 的存在性**,(a)(b) 的 `missing_primary_contract` fail-fast 只在全量召回路径生效。降档舍掉匹配章的扩写技法层与原文锚点,节奏补偿只到单元级——**细纲「目标情绪」写得敷衍的章不降档**。
|
|
7
|
+
- ① 本章目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 用在哪些段落?答不出 → 先回读参考再动笔
|
|
8
|
+
- (a) **情绪模块召回**:按「对标书路径查找」规则读 `{对标书路径}/剧情/情绪模块.md`,选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`(读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
|
|
9
|
+
- (b) **节奏召回**:读 `{对标书路径}/剧情/节奏.md`,选出 1 条 `rhythm_reference`(关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
|
|
10
|
+
- (c) **题材正文提示卡召回**:优先读 `设定/题材正文提示卡.md`;缺失则先读 `设定/题材定位.md` + `references/genre-prose-cards.md` 索引,按主题材精确匹配后只读取 `references/genre-prose-cards/` 中对应单题材卡(如 都市脑洞 / 豪门总裁 / 年代 / 双男主;低置信卡必须在意图确认标注低置信,并要求同题材对标校准),无命中再读 `references/style-genre-modules.md` 通用流派模块。跨题材时主题材抽 3-5 条、辅题材抽 1-2 条,生成短 `genre_prose_card`(题材边界、核心逻辑、读者期待、核心爽点/情绪、正文落点、前中后期打法、节奏密度、场景颗粒、禁止漂移、本章取舍、卡片置信度)。题材卡只约束正文层题材味,不改细纲剧情、不覆盖 `selected_emotion_module` / `rhythm_reference` / `设定/文风.md`;只在内部校准取舍,正文里不得出现卡名/标签/置信度/条目/合规自评
|
|
11
|
+
- (d) **文风召回**:先直接读 `设定/文风.md`(不经 explorer):有可执行表达要求即置 `custom_style=true`,不设最低字数;空白、纯标题或待补充不算。全文按 `style-resolution.md` 作权威风格基,`设定/_文风摘要.md` 仅作索引,写作与去味都传全文路径及同一 `style_resolution`。有自定义文风时对标只补未声明的维度;否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`(路径优先 `{项目}/对标/{书名}/`,回退 `拆文库/{书名}/`);多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**:「对标书 X 缺少 文风.md。请用 `/story-long-analyze` 跑 Stage 6 生成文风,再 `/story-import` 同步。」不 inline 生成(自定义文风模式则不 fail-fast;情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞)
|
|
12
|
+
- (e) **匹配章节挑选**:从 `{对标书路径}/章节/*_摘要.md` grep `基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)`(全角冒号),按本章目标情绪挑章 K——多章同基调时选择规则:先看爽点类型是否接近,再看情节点数量/原文章节估算字数是否接近本章目标字数,最后取章节号最小者;必读 `{对标书路径}/章节/第K章_摘要.md`,若同章存在 `第K章_深度拆解.md` 则加读,否则回退黄金三章深度拆解/文风文件里的可借鉴技巧,不因非黄金三章缺少深度拆解而失败
|
|
13
|
+
- (f) **结构化模块召回**:从对标的结构化子目录(角色/剧情/设定)中按本章情节检索相关模块;若与 `剧情/情绪模块.md` / `剧情/节奏.md` 冲突,权威文件优先,记录 `conflict`
|
|
14
|
+
- (g) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + genre_prose_card + 文风召回指令 + 原文锚点片段引用",作为 narrative-writer 的输入。**多对标书时**参 `references/cross-book-recall.md`:主对标提供文风、原文锚点与 selected_emotion_module / rhythm_reference;副对标/参考对标按阶段预算提供结构化摘要,不限制登记书目,不读取副书 `文风.md` / 原文,超过预算时裁条目不裁书目记录。
|
|
15
|
+
- **快捷路径**:项目已部署 story-explorer agent 时,可一次性召回文风/模块材料。
|
|
16
|
+
- 按本文件顶部规则确认 story-explorer 已部署。
|
|
17
|
+
- 查询类型:`benchmark_style_load`;传入项目目录、章节号、目标基调/字数和爽点类型。
|
|
18
|
+
- 需要返回:`style_profile_path`、`style_profile_summary`、`selected_emotion_module`、`rhythm_reference`、来源路径、匹配章节、锚点片段、`gaps`。
|
|
19
|
+
- `gaps.missing_primary_contract` 为 true 时先按 `repair_action` 修复,不进入正文生成。
|
|
20
|
+
- 主会话另行直接读 `设定/文风.md`:含实质内容时作为本书风格基准;但不豁免情绪/节奏缺失。
|
|
@@ -133,13 +133,15 @@
|
|
|
133
133
|
|
|
134
134
|
角色情绪是连续的、循序渐进的。从生气到高兴:生气 → 不那么生气 → 不生气 → 高兴,每次转变需对应事件触发。不能跳步。
|
|
135
135
|
|
|
136
|
-
###
|
|
136
|
+
### 情绪与行动的因果检查
|
|
137
137
|
|
|
138
138
|
1. 遇到事件(失衡状态)
|
|
139
|
-
2.
|
|
140
|
-
3.
|
|
139
|
+
2. 情绪反应(可以直写,也可以体现在语言、选择或有功能的动作中)
|
|
140
|
+
3. 内心思考(只写影响理解的判断;鲁莽可以直接体现在行动里)
|
|
141
141
|
4. 采取行动(基于前三步结果回应)
|
|
142
142
|
|
|
143
|
+
用于检查转变是否成立,不要求逐步写满;上下文已清楚的反应或思考无需补写。
|
|
144
|
+
|
|
143
145
|
### 对话不平淡三思路
|
|
144
146
|
|
|
145
147
|
- 对话本身带来/强化某个核心驱动力(期待、爽感、悬念)
|
|
@@ -154,7 +156,7 @@
|
|
|
154
156
|
- 大量信息通过对话展示会显得啰嗦,部分信息转化为情节、心理描写、旁白、环境、动作
|
|
155
157
|
- 用角色的语气和立场包裹信息,不是机械陈述设定
|
|
156
158
|
- 设定用到哪个稍微带出来就行,不需完完全全讲明白前因后果
|
|
157
|
-
- **角色不当"科普嘴"**:设定/原理/前因后果不能靠任何角色(尤其信息型/AI 配角)整段讲解——Gate G
|
|
159
|
+
- **角色不当"科普嘴"**:设定/原理/前因后果不能靠任何角色(尤其信息型/AI 配角)整段讲解——Gate G 同样适用于角色台词。按角色当下的目的和对话阻力取舍信息,用到哪带哪点,不固定拼接身体反应。
|
|
158
160
|
|
|
159
161
|
### 信息拉扯示例(以"主角新书起飞了"为例)
|
|
160
162
|
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
- [ ] 没有空洞的抒情段落
|
|
49
49
|
- [ ] 没有连续多段同一情绪
|
|
50
50
|
- [ ] 对话符合人物身份(不同人说话方式不同)
|
|
51
|
-
- [ ]
|
|
51
|
+
- [ ] 情绪词有落点(融进动作句、当对话提示语、结句后直接换事或接场内物件),不是接更多情绪
|
|
52
52
|
- [ ] 标题行以外没有章节/写作元信息:不得出现 `第[一二三四五六七八九十百千万两0-9]+章|上一章|上章|前一章|本章|这一章|前文|后文|伏笔|细纲|读者` 这类词;需要承接前文时改成角色能感知的事件锚点或相对时间;故事内真实阅读/讨论“第X章”或真实读者身份语境除外
|
|
53
53
|
|
|
54
54
|
### 连载连续性
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
| 空泛总结 | 「他终于明白了」「一切尽在不言中」 | 删掉,用行动代替 |
|
|
134
134
|
| 套路修辞 | 「命运仿佛在和他开玩笑」 | 删掉或换成具体描述 |
|
|
135
135
|
| 比喻堆叠 | 连续多处「像/好像/仿佛/如同」,每个画面都靠比喻解释 | 只留最有叙事功能的少数比喻,其余改成动作、物件、声音或后果 |
|
|
136
|
-
|
|
|
136
|
+
| 空转情绪句 | 「他感到一阵悲伤」,无落点 | 删,或写他此刻做不成的事;直写本身不算缺陷 |
|
|
137
137
|
| 心理描写空转 | 内心独白无新信息、重复同一情绪或复述读者已知 | 只压缩空转部分;带新信息、决断或情绪转折的独白不按句数压缩 |
|
|
138
138
|
|
|
139
139
|
### 维度 5:逻辑连贯
|
|
@@ -279,6 +279,8 @@
|
|
|
279
279
|
|
|
280
280
|
建卡时做一次**剧情批召回**:读剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件)的「结构分布」「情节点索引」,回查该书 `剧情/节奏.md` 同章节区间的爽点循环 / 触动点与被引情绪模块卡,提炼 5-8 拍共性节拍写入剧情单元卡「单元节拍/章功能分配」,单元情绪引擎字段对照主对标 `剧情/情绪模块.md` 的可复现模块校准。若主产物存在但被引的单个情绪模块卡未命中,只跳过该卡;`剧情/情绪模块.md` 或 `剧情/节奏.md` 文件缺失仍按上方 fail-fast 规则先修复。换素材与修硬伤纪律同上方迁移步骤 3/4——保留情绪链和功能位,对象、场景、事件全换,对标弱处理就地修正。结论固化进剧情单元卡后,逐章细纲只消费剧情单元卡,不重读剧情单元。
|
|
281
281
|
|
|
282
|
+
**「只消费剧情单元卡」管的是不重读对标,不冻结逐章建纲。** 排纲当场发现的缺口(某拍无对手、数值没验过、地点无底图、角色既定规矩挡场之类)按创作自主权分级处置(A 直接写/B 先落档再引用/C 挂起提案,见 workflow-setup.md「缺什么按创作自主权分级处置」),处置完记一行,批末汇进《供给单》的「**建纲追加**」小节(见 workflow-setup.md「按剧情批出细纲」步骤 5);下一批供给自查以该小节为固定输入(按当场缺口类别加问批前盘点项)。
|
|
283
|
+
|
|
282
284
|
日更中途发现卷纲缺少「对标剧情参照」等当前协议必需字段时,先补齐卷纲再建细纲;锁定卷纲不得自动回写,必须停在补纲边界。节拍分析过程不写进追踪文件,只有最终影响未来连续性的约束或下一章承诺才进入本章追踪事务。
|
|
283
285
|
|
|
284
286
|
## 章节定位与张弛(破「每章像短篇」)
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# 项目文件与产物协议
|
|
2
|
+
|
|
3
|
+
#### 项目文件结构
|
|
4
|
+
|
|
5
|
+
长篇写作必须用文件系统管理,不要把内容堆在对话里。在用户指定的工作目录下创建:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
{书名}/
|
|
9
|
+
├── 设定/
|
|
10
|
+
│ ├── 世界观/
|
|
11
|
+
│ │ ├── 背景设定.md # 时代背景、地理、历史
|
|
12
|
+
│ │ ├── 力量体系.md # 修炼/能力/等级体系
|
|
13
|
+
│ │ └── ...
|
|
14
|
+
│ ├── 角色/
|
|
15
|
+
│ │ ├── 沈栀.md # 每个人物一个文件,文件名用角色名
|
|
16
|
+
│ │ └── ...
|
|
17
|
+
│ ├── 势力/
|
|
18
|
+
│ │ ├── 天机阁.md # 每个势力/组织一个文件
|
|
19
|
+
│ │ └── ...
|
|
20
|
+
│ ├── 关系.md # 角色关系映射
|
|
21
|
+
│ ├── 题材定位.md # 题材核心梗+对标分析+终局底牌/升级台阶(防写无可写)
|
|
22
|
+
│ └── 题材正文提示卡.md # 题材正文核心:边界/期待/爽点/节奏/禁漂移
|
|
23
|
+
├── 大纲/
|
|
24
|
+
│ ├── 大纲.md # 全书卷级结构
|
|
25
|
+
│ ├── 卷纲_第一卷.md # 每卷一个:对标结构坐标+剧情单元+情绪弧线(含章节定位)+人物弧线+伏笔+反转
|
|
26
|
+
│ └── 细纲_第001章.md # 每章一个:章节定位+事件+钩子(按章节定位,章首/章尾/段落级)+爽点+悬念
|
|
27
|
+
├── 正文/
|
|
28
|
+
│ ├── 第001章_章名.md
|
|
29
|
+
│ └── ...
|
|
30
|
+
├── 对标/ ← 拆文产出的结构化资产
|
|
31
|
+
│ └── {对标书名}/
|
|
32
|
+
│ ├── 原文/
|
|
33
|
+
│ │ ├── 第001章_章名.md
|
|
34
|
+
│ │ └── ...
|
|
35
|
+
│ ├── 角色/ ← 从拆文库/结构化输出同步
|
|
36
|
+
│ │ └── {角色名}.md
|
|
37
|
+
│ ├── 剧情/ ← 从拆文库/结构化输出同步
|
|
38
|
+
│ │ ├── {剧情单元名}.md
|
|
39
|
+
│ │ ├── 故事线.md
|
|
40
|
+
│ │ ├── 节奏.md # 关键信息推进 + 情绪触动点 + 爆发节奏(权威节奏索引)
|
|
41
|
+
│ │ └── 情绪模块.md # 读者需求/情绪引擎 + 可复现模块(权威模块索引)
|
|
42
|
+
│ ├── 设定/ ← 从拆文库/结构化输出同步
|
|
43
|
+
│ │ ├── 世界观/ ← 按主题拆分到子目录
|
|
44
|
+
│ │ │ ├── 背景设定.md
|
|
45
|
+
│ │ │ ├── 力量体系.md
|
|
46
|
+
│ │ │ ├── 地理.md
|
|
47
|
+
│ │ │ └── 金手指.md
|
|
48
|
+
│ │ └── 势力/
|
|
49
|
+
│ │ └── {势力名}.md
|
|
50
|
+
│ └── 拆文报告.md
|
|
51
|
+
├── 追踪/
|
|
52
|
+
│ ├── _tracking-state.json ← 唯一结构化权威状态
|
|
53
|
+
│ ├── 上下文.md ← 派生续写状态卡(固定 7 栏),≤12KB
|
|
54
|
+
│ ├── 逐章记录/第NNN章.md ← 未来相关紧凑记录,≤3072 字节
|
|
55
|
+
│ ├── 角色状态/{角色名}.md ← 派生核心角色当前快照
|
|
56
|
+
│ ├── 伏笔.md ← 派生伏笔当前视图
|
|
57
|
+
│ └── 时间线/{作者真相.md,读者已知.md}
|
|
58
|
+
├── 参考资料/
|
|
59
|
+
│ └── {topic}.md # story-researcher 输出的研究资料
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**产物映射表**(创建模板详见 [references/artifact-protocols.md](artifact-protocols.md)):
|
|
63
|
+
|
|
64
|
+
| 文件 | 粒度 | 创建阶段 | 读取时机 |
|
|
65
|
+
|------|------|---------|---------|
|
|
66
|
+
| 设定/关系.md | 全书 | Phase 2 | 按需:story-explorer relationship 查询、story-review 查设定(不在每章写作回路里逐章读) |
|
|
67
|
+
| 设定/题材定位.md(含 `主对标书` 字段,多对标时必填) | 全书 | Phase 2 | Phase 3 大纲、每卷开始前、Phase 4 写前召回 |
|
|
68
|
+
| 设定/题材正文提示卡.md | 全书/题材 | Phase 2(缺失则 Phase 4 写前即时生成) | Phase 4 每章写作前:按 `genre-prose-cards.md` 索引匹配后读取 `genre-prose-cards/` 目录对应单题材卡优先、`style-genre-modules.md` 通用模块兜底,与通用正文要求、情绪/节奏召回和文风一起组装 prompt |
|
|
69
|
+
| 设定/角色/{角色名}.md、设定/势力/{名}.md | 角色/势力 | Phase 3 细纲后增量补全(首批含主角/主要角色) | Phase 4 状态筛选/写作 |
|
|
70
|
+
| 设定/文风.md(自定义文风·优先级最高) | 本书 | 用户自写(Claude Code 可代写);导入/拆解不覆盖 | Phase 4 每章写作前:含实质内容则取代对标文风作权威风格基 |
|
|
71
|
+
| 对标/{书名}/文风.md | 对标书 | analyze Stage 6 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 4 每章写作前(文风召回;有自定义文风时降为参考/句长兜底) |
|
|
72
|
+
| 大纲/卷纲_第X卷.md | 卷 | Phase 3 | **一律走取段器 `outline_view.py --unit/--contract/--toc`,不整读**(见「路径与术语约定」);段位契约与 checker 见 artifact-protocols.md |
|
|
73
|
+
| 追踪/_tracking-state.json | 全书 | Phase 3 初始化 | 唯一结构化权威,不进正文 prompt;每章运行 `tracking_commit.py check` 读取章号和修订号 |
|
|
74
|
+
| 追踪/伏笔.md | 全书当前视图 | Phase 3 初始化 | 续写状态卡缺项时按 ID 定点查询;每 ID 只一行 |
|
|
75
|
+
| 追踪/时间线/{作者真相.md,读者已知.md} | 全书当前事实/认知派生视图 | Phase 3 初始化 | 按作者真相或读者认知的实际问题选择视图 |
|
|
76
|
+
| 对标/{书名}/拆文报告.md | 对标书 | 用户手动+analyze | Phase 2 核心设定、Phase 3 大纲、Phase 4 写作 |
|
|
77
|
+
| 追踪/逐章记录/第NNN章.md | 章 | Phase 4 每章事务 | 日更不读;目标 ≤1536 字节、硬上限 3072 字节,按需查询历史原因 |
|
|
78
|
+
| 追踪/上下文.md(续写状态卡,≤12KB) | 全书当前状态 | Phase 3 初始化 | 日更每章整份读;由事务工具整份重建,固定 7 栏 |
|
|
79
|
+
| 参考资料/{topic}.md | 按需 | Phase 4(story-researcher 输出) | Phase 4 后续章节写作时复用 |
|
|
80
|
+
| 追踪/角色状态/{角色名}.md | 核心角色 | 首次进入正文或导入初始化 | 久别角色按名读取一个小快照;目标 ≤4096 字节、硬上限 8192 字节;静态人设仍读 `设定/角色/` |
|
|
81
|
+
| 对标/{书名}/角色/{角色名}.md | 对标书 | analyze 输出 | Phase 4 模块召回(角色参考) |
|
|
82
|
+
| 对标/{书名}/剧情/{剧情单元名}.md | 对标书 | analyze 输出 | Phase 3 卷纲选段与细纲成批(剧情单元卡「对标剧情参照」)、Phase 4 模块召回(剧情模块参考) |
|
|
83
|
+
| 对标/{书名}/剧情/情绪模块.md | 对标书 | analyze Stage 3 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 2 核心设定、Phase 3 大纲、Phase 4 每章写作前(读者需求 / 情绪引擎、可复现模块选择) |
|
|
84
|
+
| 对标/{书名}/剧情/节奏.md | 对标书 | analyze Stage 3 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 3 大纲、Phase 4 每章写作前(关键信息推进、情绪触动点、爆发节奏参考) |
|
|
85
|
+
| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |
|
|
86
|
+
|
|
87
|
+
**缺失文件处理**:当前主产物缺失时显式修复,不拼装降级结果:
|
|
88
|
+
1. **角色状态文件缺失** → 当前协议项目先运行 `tracking_commit.py check`,再重跑产生该状态的完整事务;已有正文但 `_tracking-state.json` 缺失时重新 `/story-import`。不得从前文临时推断后直接手写快照。
|
|
89
|
+
2. **角色、普通剧情单元或设定等非主产物子目录缺失** → 按「对标书路径查找」查找项目视图与根目录数据源,仍缺失则跳过该可选模块。本条不适用于 `剧情/情绪模块.md` 和 `剧情/节奏.md`。
|
|
90
|
+
3. **`剧情/情绪模块.md` / `剧情/节奏.md` 缺失** → 写前准备必须停下,设置 `missing_primary_contract: true` 并给出 `repair_action`:重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`,不得用摘要文件假装已召回权威模块。
|
|
91
|
+
4. **有对标书但 `文风.md` 缺失** → 若有 `设定/文风.md`(含实质内容)走自定义文风模式继续;否则日更文风召回 fail-fast,提示先运行 `/story-long-analyze` Stage 6 并 `/story-import` 同步。**完全无对标项目**则跳过文风召回、不阻塞(有 `设定/文风.md` 时用它写作)。情绪/节奏轴(`missing_primary_contract`)独立,自定义文风模式不豁免其 fail-fast。
|
|
92
|
+
5. **伏笔/时间线文件缺失** → 视为当前语义检查点损坏,停止写正文;先运行 `tracking_commit.py check`,再用事务修复。卷纲/大纲中的计划不能代替已发生事实的当前检查点。
|
|
93
|
+
6. **`设定/题材正文提示卡.md` 缺失** → 不阻塞;写前从 `设定/题材定位.md` 精确匹配 `references/genre-prose-cards.md` 索引,并只读取 `references/genre-prose-cards/` 中对应题材单卡(高/中/低置信照原卡标注),无命中再用 `references/style-genre-modules.md` 通用流派模块即时生成短 `genre_prose_card`。只有 `设定/题材定位.md` 也缺失时,退回细纲和目标平台做低置信题材卡,并在意图确认写明。
|
|
94
|
+
|
|
95
|
+
**对标分析权威优先级(权威读取顺序)**:
|
|
96
|
+
1. `剧情/情绪模块.md` 是读者需求 / 情绪引擎、爽文套路框架、可复现模块和重组指南的权威来源。
|
|
97
|
+
2. `剧情/节奏.md` 是关键信息推进、章节扩写技法聚合、情绪触动点和爆发节奏的权威来源。
|
|
98
|
+
3. `文风.md` 只管句长、标点、对话潜台词、原文锚点等风格;它不能覆盖情绪模块或节奏意图。**自定义文风 `设定/文风.md`(用户自写、不被导入/拆解覆盖)优先级高于对标 `文风.md`**:含实质内容时作权威风格基,对标文风降为参考与句长数值兜底;句长、停顿标点、视角与修辞按 `references/style-resolution.md` 裁决;段间空行等文件结构仍按交付协议,不把通用表达禁令称为硬安全线。
|
|
99
|
+
4. `章节/第K章_摘要.md` 是具体章节证据,用来校验和补足权威索引,不反向覆盖 `情绪模块.md` / `节奏.md`。
|
|
100
|
+
5. `拆文报告.md`、`剧情/故事线.md` 是投影/摘要;若与 `剧情/情绪模块.md` 或 `剧情/节奏.md` 冲突,写作以两个权威文件为准,并在写前准备 `gaps.conflict` 记录冲突来源。
|
|
101
|
+
|
|
102
|
+
**文件组织原则:**
|
|
103
|
+
- **人物一个一个文件**:`角色/角色名.md`,方便按需读取
|
|
104
|
+
- **势力一个一个文件**:`势力/势力名.md`,组织/门派/家族/国家等
|
|
105
|
+
- **世界观按主题拆分**:背景、力量体系、社会结构等各自独立
|
|
106
|
+
- **细纲一章一个文件**:`细纲_第XXX章.md`,含钩子设计,与正文一一对应
|
|
107
|
+
- **正文按章拆分**:每章一个文件,`第XXX章_章名.md`
|
|
108
|
+
- 每章写完直接写入 `正文/` 目录,不要先输出到对话
|