@oh-story/dsh 0.1.8 → 0.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -14
- package/lib/client.js +237 -84
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +183 -77
- package/lib/drama/skills/short-drama/SKILL.md +5 -1
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +140 -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 +28 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +8 -2
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-edit/SKILL.md +146 -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 +38 -0
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +29 -0
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +54 -0
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +60 -0
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +51 -0
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +1156 -0
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +520 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -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-image-prompts/references/common-recipe.md +11 -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 +29 -4
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +22 -0
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +13 -12
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- 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 +199 -3
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +7 -0
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +10 -0
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +12 -1
- package/lib/drama/skills/short-drama-storyboard/assets/keyframe-prompts.md +4 -0
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +78 -2
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +2 -0
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +12 -5
- package/lib/drama/skills/short-drama-video-prompts/references/camera-audio-continuity.md +17 -0
- package/lib/drama/skills/short-drama-video-prompts/references/minimax-h3.md +76 -7
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +5 -2
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +21 -0
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +6 -17
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +12 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +61 -5
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +3 -3
- package/lib/drama/skills/short-drama-write/SKILL.md +11 -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 +290 -90
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +9 -35
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +17 -35
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +16 -34
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +9 -20
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +10 -6
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +19 -32
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +9 -18
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +10 -27
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -6
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +6 -11
- package/lib/oh-story/manifest.json +419 -254
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/character-designer.md +1 -1
- package/lib/oh-story/roles/consistency-checker.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +56 -243
- package/lib/oh-story/roles/story-architect.md +6 -6
- package/lib/oh-story/roles/story-explorer.md +11 -11
- package/lib/oh-story/skills/story/SKILL.md +13 -7
- package/lib/oh-story/skills/story/VERSION +1 -1
- package/lib/oh-story/skills/story/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-cover/SKILL.md +10 -1
- package/lib/oh-story/skills/story-deslop/SKILL.md +54 -229
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +61 -29
- 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/author_memory_commit.py +934 -170
- 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 +78 -82
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- package/lib/oh-story/skills/story-import/references/format-and-structure.md +2 -2
- package/lib/oh-story/skills/story-import/references/state-tracking.md +4 -69
- package/lib/oh-story/skills/story-import/references/structure-mapping-long.md +10 -8
- package/lib/oh-story/skills/story-import/references/tracking-initialization.md +31 -0
- package/lib/oh-story/skills/story-import/references/tracking-transaction.md +9 -34
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +197 -15
- package/lib/oh-story/skills/story-import/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-import/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-long-analyze/SKILL.md +91 -258
- package/lib/oh-story/skills/story-long-analyze/references/author-facing.md +245 -0
- package/lib/oh-story/skills/story-long-analyze/references/deconstruction-notes.md +2 -2
- package/lib/oh-story/skills/story-long-analyze/references/inspiration-library.md +105 -0
- package/lib/oh-story/skills/story-long-analyze/references/material-decomposition.md +113 -105
- package/lib/oh-story/skills/story-long-analyze/references/output-templates.md +169 -125
- package/lib/oh-story/skills/story-long-analyze/references/pipeline-ops.md +172 -64
- package/lib/oh-story/skills/story-long-analyze/references/semantic-acceptance-fixtures.md +84 -0
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-generator.md +42 -132
- package/lib/oh-story/skills/story-long-analyze/references/style-profile-protocol.md +5 -5
- package/lib/oh-story/skills/story-long-analyze/scripts/build_chapter_index.py +466 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspect_existing_assets.py +702 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/inspiration_index.py +864 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/manage_analysis_run.py +1106 -0
- package/lib/oh-story/skills/story-long-analyze/scripts/render_relation_chart.py +425 -0
- package/lib/oh-story/skills/story-long-scan/SKILL.md +4 -1
- package/lib/oh-story/skills/story-long-write/SKILL.md +52 -216
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +72 -12
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +61 -29
- 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/cross-book-recall.md +26 -0
- package/lib/oh-story/skills/story-long-write/references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-long-write/references/emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-long-write/references/long-chapter-quality.md +6 -15
- 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 +110 -0
- package/lib/oh-story/skills/story-long-write/references/reader-contract-and-progression.md +12 -4
- package/lib/oh-story/skills/story-long-write/references/reference-index.md +86 -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 +9 -34
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +88 -118
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +55 -119
- package/lib/oh-story/skills/story-long-write/references/workflow-revision.md +15 -11
- package/lib/oh-story/skills/story-long-write/references/workflow-setup.md +73 -54
- 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 +63 -4
- package/lib/oh-story/skills/story-long-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-long-write/scripts/build_writer_prompt.py +531 -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 +197 -15
- 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 +285 -0
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +58 -0
- package/lib/oh-story/skills/story-long-write/scripts/style-whitelist.js +39 -0
- package/lib/oh-story/skills/story-long-write/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-long-write/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-review/SKILL.md +80 -87
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +29 -56
- package/lib/oh-story/skills/story-review/references/author-memory.md +61 -29
- package/lib/oh-story/skills/story-review/references/banned-words.md +3 -1
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +10 -4
- package/lib/oh-story/skills/story-review/references/review-quality.md +6 -12
- 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 +9 -34
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-review/scripts/check-ai-patterns.js +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-review/scripts/tracking_commit.py +210 -2
- package/lib/oh-story/skills/story-review/scripts/wordcount_core.py +3 -0
- package/lib/oh-story/skills/story-setup/SKILL.md +58 -43
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +29 -56
- 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 +10 -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/long-emotional-methods.md +2 -2
- package/lib/oh-story/skills/story-setup/references/agent-references/long-quality.md +1 -1
- 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 +63 -4
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +38 -0
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +22 -3
- package/lib/oh-story/skills/story-short-analyze/references/analysis-writing-techniques.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +5 -1
- package/lib/oh-story/skills/story-short-analyze/references/source-story-quality.md +2 -2
- package/lib/oh-story/skills/story-short-scan/SKILL.md +5 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +15 -324
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +61 -29
- 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 +10 -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 +55 -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 +78 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-draft.md +126 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-revision.md +32 -0
- package/lib/oh-story/skills/story-short-write/references/writing-workflow.md +5 -5
- package/lib/oh-story/skills/story-short-write/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-short-write/scripts/check-ai-patterns.js +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/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +33 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/drama-adapters.d.ts +5 -3
- package/lib/types/drama-adapters.d.ts.map +1 -1
- package/lib/types/native-hooks.d.ts +52 -0
- package/lib/types/native-hooks.d.ts.map +1 -1
- package/lib/types/role-identity.d.ts +17 -0
- package/lib/types/role-identity.d.ts.map +1 -0
- package/lib/types/role-tool.d.ts.map +1 -1
- package/lib/types/skill-provider.d.ts.map +1 -1
- package/lib/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 +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -59
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -42
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: story-long-write
|
|
3
3
|
version: 1.0.0
|
|
4
|
-
description: "
|
|
4
|
+
description: "长篇网文规划与写作。支持只讨论结构、只写大纲或指定细纲,明确要求正文后再写章节。触发方式:/story-long-write、/写长篇、「帮我开书」「规划剧情」「写大纲」「补细纲」「日更」「续写」「继续写」「修改第X章」「回炉」「重写第X章」。"
|
|
5
5
|
metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudecode"}}
|
|
6
6
|
---
|
|
7
7
|
# story-long-write:长篇网文写作
|
|
@@ -14,10 +14,10 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
14
14
|
|
|
15
15
|
必须分块读到 EOF:
|
|
16
16
|
|
|
17
|
-
1.
|
|
17
|
+
1. 规划/开书/补纲先完整读取 `references/workflow-setup.md`;写指定章读取 `references/workflow-chapter.md`;日更/大修先读取 `references/workflow-daily.md` 或 `references/workflow-revision.md`,进入正文前再完整读取 `workflow-chapter.md`。
|
|
18
18
|
2. 主会话直接写正文时,首次落笔前完整读取 `references/long-format.md`、`references/writing-craft.md`、`references/long-chapter-quality.md`、`references/long-chapter-hooks.md`;交给 narrative-writer 时,由该 agent 按自己的 reference 表完成同等写前读取,主会话不得用未读 reference 的临时 prompt 替代。
|
|
19
19
|
3. 悬疑、惊悚、异常线索章加读 `references/long-suspense.md`;身份/认知/立场反转章加读 `references/long-reversal.md`。
|
|
20
|
-
4. references
|
|
20
|
+
4. 正文写前,references 读完后立即重读当前用户请求、本章细纲和卷纲,先在上下文里**记下本轮约束**:原样记录用户明确字数范围、必发生、禁止发生、精确时间锚与本章停笔点、章尾新债。references 只提供技法,不得覆盖这些项目事实;用户明确范围优先于自动 ± 比例带。交付前逐项复核:字数带外按 `workflow-chapter.md` 的收口流程交用户处置,不自动补字;其余项越界不算完成。
|
|
21
21
|
|
|
22
22
|
任一必需路径不存在、不可读或未读完时立即停止,报告准确路径,**不得先写正文再补读**。门禁按当前任务、当前会话重新执行;旧会话的“读过”不能沿用。
|
|
23
23
|
|
|
@@ -25,7 +25,9 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
25
25
|
|
|
26
26
|
> 内置适配 Claude Code / OpenCode / Codex / Antigravity / ZCode / OpenClaw。专业 agent 只查当前端 canonical 目录(`.claude/agents`、`.opencode/agents`、`.codex/agents` TOML、`.agents/agents`);Antigravity 用 `invoke_subagent` + 同名 `TypeName`。文件或运行时能力缺失、返回 unknown agent,或当前为不执行 custom agents 的 ZCode 3.3.4 时,报告 fallback 并 solo/direct 执行。
|
|
27
27
|
>
|
|
28
|
-
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version:
|
|
28
|
+
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 32` 不一致时(标记缺失、字段缺失/非整数、小于或大于 32)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 32)` 并提示重新运行 `/story-setup` 后新开会话;大于 32 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。
|
|
29
|
+
|
|
30
|
+
**文风裁决**:正文写作、改写或审稿前先读 [references/style-resolution.md](references/style-resolution.md),加载本书文风并形成 `style_resolution`;无作者记忆也执行。当前请求、本书文风和 active 偏好按维度覆盖通用 references;同一裁决交给后续执行者。
|
|
29
31
|
|
|
30
32
|
## 核心方法
|
|
31
33
|
|
|
@@ -35,8 +37,8 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
35
37
|
2. **从验证过的模式出发**。先问"什么被验证过有效,我如何重新交付",少从"我想写什么"直接起步。扫榜找方向,拆文找模块,对标找节奏。
|
|
36
38
|
3. **用模块组装,不要重新发明**。每个题材都有验证过的剧情模式——反转怎么铺、爽点怎么爆、感情怎么拉扯。找到对的模块,把对标书的具体角色看成功能位(对手/盟友/催化剂),再映射到你的角色。用你自己的素材填充这些功能位。
|
|
37
39
|
4. **只加载必需信息**。写每章只读“不知道就会写错”的角色状态、待收伏笔、相关设定。其余留在文件系统里。
|
|
38
|
-
5.
|
|
39
|
-
6.
|
|
40
|
+
5. **契约与推进决策走权威参考文件**。涉及读者契约、主角代理权、利益安全、终局底牌与升级台阶、机构/势力边界和契约风险判定时,先按 `references/reader-contract-and-progression.md`「契约四问」校准,不在 SKILL.md 内复制长规则。
|
|
41
|
+
6. **作者记忆**:写正文时组装脚本已代查并注入;其他任务按 [references/author-memory.md](references/author-memory.md) 带 `--book-root` 查询 ≤2KB active 项交执行者;当前请求、本书文风优先。长期声明用 `record` 写入、回传回执。
|
|
40
42
|
|
|
41
43
|
| 题材 | 核心情绪 | 重点参考 |
|
|
42
44
|
|------|---------|---------|
|
|
@@ -52,41 +54,62 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
52
54
|
|
|
53
55
|
## 写作流程
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
先确定操作对象、交付范围和停点,再看项目状态;空项目不等于授权完整开书。范围与转正文的权威规则如下。
|
|
56
58
|
|
|
57
59
|
| 场景 | 触发条件 | 执行流程 |
|
|
58
60
|
|------|----------|----------|
|
|
59
|
-
|
|
|
60
|
-
|
|
|
61
|
-
|
|
|
61
|
+
| **结构讨论** | "只讨论/推敲故事结构" | 只交付结构方案,不建工程、不自动落盘;不要求先填完设定或细纲 |
|
|
62
|
+
| **大纲规划** | "写大纲/规划剧情/规划全书/规划第X卷/开新卷" | 按需取 Phase 1→3,交付所请求大纲/卷纲及必要设定;不自动展开细纲或初始化追踪 |
|
|
63
|
+
| **细纲规划** | "出细纲/补纲/扩纲/补细纲/写或修改第N章细纲" | Phase 3:既有单元内只补/改点名章;需要新单元才走「中途补纲/扩纲小流程」。指定范围不扩到整单元;未指定时按剧情批建纲 |
|
|
64
|
+
| **开书** | "帮我开书",未限定规划层级 | Phase 1→2→3:建项目、核心设定、卷纲与首批 10 章细纲;**默认停在细纲交付,不自动写正文** |
|
|
65
|
+
| **写指定章** | "写第 N 章" / "写第1章" / "开书并写首章",对象是正文 | Phase 4→5,只写点名章后停止;缺前置时先补必要设定、卷纲和点名章细纲,不套用完整开书的 10 章默认 |
|
|
62
66
|
| **日更续写** | 关键词("日更"/"续写"/"继续写")**且**项目已有正文+追踪 | 加载 `references/workflow-daily.md` |
|
|
63
|
-
| **大修** | "修改第X章" / "回炉" / "重写第X章" | 加载 `references/workflow-revision.md
|
|
67
|
+
| **大修** | "修改第X章" / "回炉" / "重写第X章",对象是已写正文 | 加载 `references/workflow-revision.md`;只改细纲不进此流程 |
|
|
64
68
|
|
|
65
|
-
|
|
69
|
+
**对象优先**:"写/修改第N章细纲"是规划,不因命中"写/修改第N章"而写正文;"以后再写正文"不是本轮授权。仅规划要求优先于旧日更任务,停止旧批量。对象不明或同一请求范围冲突时,只确认冲突项。
|
|
66
70
|
|
|
67
|
-
|
|
71
|
+
**规划续接**:保留当前任务范围;"继续/按这个来/确认方案"不扩大范围,完成即停,不自动转细纲或正文。"继续写/接着写"指正文:下一章已有细纲时按写正文处理,但上一轮在规划就只问一句「要接着写第N章正文吗?」(默认是),不列选项表;缺细纲则问是否先补这一章细纲。新明确请求可调整规划层级/范围;不把规划模式写入追踪或作者记忆,不调用 narrative-writer,委派传同一范围和停点。
|
|
72
|
+
|
|
73
|
+
**转入正文**:明确正文请求只授权进入既有写作流程,不等于可以直接落笔。创建/修改正文前,重新完成本轮全部正文 Reference Gate,并按 workflow-chapter 处理缺 state、使 `tracking_commit.py check` 通过;任一未完成则停止,不落正文。之后仍按原流程写作、质检、提交追踪,无须再问是否继续。
|
|
68
74
|
|
|
69
|
-
|
|
75
|
+
**开新卷**:新角色/势力/设定按需回 Phase 2 增量补充;Phase 3 只做到本次请求的层级,不自动转正文。
|
|
76
|
+
|
|
77
|
+
### 裸调用与停靠点(防失控)
|
|
70
78
|
|
|
71
|
-
-
|
|
72
|
-
- 已有设定/大纲但无正文 → 建议说「写第1章」「只写1章」或「日更2章」;
|
|
73
|
-
- 已有正文+追踪 → 展示最后完成章节与下一章细纲状态,建议说「日更3章」「只写1章」「逐章确认」或「修改第X章」。
|
|
79
|
+
`/story-long-write` 或 `$story-long-write` **裸调用**(无明确意图)时,只诊断项目并列选项,**不得自动进入正文写作,也不得把已有项目默认为日更 3 章**:
|
|
74
80
|
|
|
75
|
-
|
|
81
|
+
- 空项目 → 「讨论结构」「写大纲」「帮我开书」;
|
|
82
|
+
- 有纲无正文 → 「补细纲」「写第1章」;
|
|
83
|
+
- 有正文+追踪 → 展示进度与下一章细纲状态,列「规划下一卷」「日更2章」「修改第X章」。
|
|
76
84
|
|
|
77
85
|
**正文批量上限**:写正文必须由用户显式给出章节范围或日更意图。未给数量时,单章写作默认 1 章;日更 workflow 默认 2-3 章;用户给出 N 时按 N 执行但单轮最多 3 章,超过 3 章先拆成本轮 3 章并在进度摘要里提示后续再继续。
|
|
78
86
|
|
|
79
|
-
|
|
87
|
+
**匹配顺序**:只规划按 结构讨论 → 细纲规划 → 大纲规划 → 开书,越窄越优先;要正文按 大修 → 写指定章 → 日更续写。日更前置不齐则提示补齐或写第1章,不直接写一批。
|
|
80
88
|
|
|
81
|
-
|
|
89
|
+
**日更续接**:用户未改变任务时,同批"继续/续写/日更"仍走 `references/workflow-daily.md` 的完整串行流程,不直接落正文。正常批量不重复确认;阻塞或用户要求逐章确认时才暂停。切到规划后按上方「规划续接」,不恢复旧日更批量。
|
|
82
90
|
|
|
83
|
-
|
|
91
|
+
无法判断场景时,给 2-4 个白话选项(如「只聊结构」「写大纲」「写第N章正文」)让用户选,不贴场景表,也不开放式提问。
|
|
92
|
+
|
|
93
|
+
### 面向作者的汇报
|
|
94
|
+
|
|
95
|
+
所有给作者看的汇报、提问和停下说明只讲三件事:写了/改了什么(章名、发生了什么);要作者定的事(一句白话问题+白话选项+推荐默认);下一步。不写脚本、字段、参数名、状态码和内部清单名(如 排纲自查、供给自查、S1-S4、字数带);编号必带故事标签,如「伏笔 F057(那封信的去处)」。检查结果一句白话带过,如「自查过设定和前文,没发现冲突」。回执、Notice、Fallback 等机器行放末尾一行。汇报照各 workflow 的模板写,不带代码块围栏;子 agent 返回的术语由主会话翻译后再说。
|
|
84
96
|
|
|
85
97
|
### 路径与术语约定
|
|
86
98
|
|
|
87
99
|
> **拆文库/对标关系**:`拆文库/` = analyze skill 的原始产出,是数据源。`对标/` = 写作项目的引用视图,存放与本项目相关的对标数据子集。首次引用对标书时,从 `拆文库/{书名}/` 复制相关子目录(章节/角色/剧情/设定)、`剧情/节奏.md`、`剧情/情绪模块.md`、`文风.md` 和 `拆文报告.md` 到 `对标/{书名}/`。
|
|
88
100
|
>
|
|
89
101
|
> **对标书路径查找**:优先 `{项目}/对标/{书名}/`,不存在则回退 `拆文库/{书名}/`。下文所有对标数据加载均使用此规则。
|
|
102
|
+
>
|
|
103
|
+
> **卷纲不整读(取段器)**:任何场景要卷纲内容一律走
|
|
104
|
+
> `{PYTHON} {skill 根}/scripts/outline_view.py --unit {单元ID} {卷纲路径}`(脚本统一输出 UTF-8),
|
|
105
|
+
> 只要契约不要单元时用 `--contract`,先看一屏目录用 `--toc`。
|
|
106
|
+
> 排纲期的工作底稿(供给自查、建纲追加)不写进卷纲,放 `大纲/排纲底稿_{单元ID}.md`,只在排纲/补纲时读,写正文不读;底稿里对写作有约束力的条目,建纲时写进单元卡或细纲。
|
|
107
|
+
> 老卷纲里还留着「作用域:批次底稿」段的,排纲时加 `--stage outline` 一并取出,写正文照常不加。
|
|
108
|
+
> 取的是**闭包不是点名段**——输出恒等于「全部卷级常任段 + 该单元的单元级段」,逐章表(情绪弧线等)按该单元章区间裁行,
|
|
109
|
+
> 带退役标记的行默认不输出(要看历史加 `--history`)。
|
|
110
|
+
> 找不到单元时脚本 exit 1 并报错,不静默降级——报错就去核对单元ID或先补卷纲,不要改用整读绕过。
|
|
111
|
+
> 段头的 `> 作用域:` 声明是这套的地基,格式与 checker 见 `references/artifact-protocols.md` 卷纲模板;
|
|
112
|
+
> 未声明作用域的段会被保守纳入并告警,跑 `outline_view.py --check {卷纲路径}` 修。
|
|
90
113
|
|
|
91
114
|
---
|
|
92
115
|
|
|
@@ -108,7 +131,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
108
131
|
|
|
109
132
|
### Phase 3:大纲搭建
|
|
110
133
|
|
|
111
|
-
|
|
134
|
+
产出全书体量与阶段总览、卷级大纲、逐章细纲;含排纲自查、分批建纲与「中途补纲/扩纲小流程」。
|
|
112
135
|
|
|
113
136
|
**执行前先读 [references/workflow-setup.md](references/workflow-setup.md) 的「Phase 3:大纲搭建」节**。
|
|
114
137
|
|
|
@@ -116,120 +139,17 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
116
139
|
|
|
117
140
|
### Phase 4:正文写作辅助
|
|
118
141
|
|
|
119
|
-
####
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
```
|
|
124
|
-
{书名}/
|
|
125
|
-
├── 设定/
|
|
126
|
-
│ ├── 世界观/
|
|
127
|
-
│ │ ├── 背景设定.md # 时代背景、地理、历史
|
|
128
|
-
│ │ ├── 力量体系.md # 修炼/能力/等级体系
|
|
129
|
-
│ │ └── ...
|
|
130
|
-
│ ├── 角色/
|
|
131
|
-
│ │ ├── 沈栀.md # 每个人物一个文件,文件名用角色名
|
|
132
|
-
│ │ └── ...
|
|
133
|
-
│ ├── 势力/
|
|
134
|
-
│ │ ├── 天机阁.md # 每个势力/组织一个文件
|
|
135
|
-
│ │ └── ...
|
|
136
|
-
│ ├── 关系.md # 角色关系映射
|
|
137
|
-
│ ├── 题材定位.md # 题材核心梗+对标分析+终局底牌/升级台阶(防写无可写)
|
|
138
|
-
│ └── 题材正文提示卡.md # 题材正文核心:边界/期待/爽点/节奏/禁漂移
|
|
139
|
-
├── 大纲/
|
|
140
|
-
│ ├── 大纲.md # 全书卷级结构
|
|
141
|
-
│ ├── 卷纲_第一卷.md # 每卷一个:对标结构坐标+剧情单元+情绪弧线(含章节定位)+人物弧线+伏笔+反转
|
|
142
|
-
│ └── 细纲_第001章.md # 每章一个:章节定位+事件+钩子(按章节定位,章首/章尾/段落级)+爽点+悬念
|
|
143
|
-
├── 正文/
|
|
144
|
-
│ ├── 第001章_章名.md
|
|
145
|
-
│ └── ...
|
|
146
|
-
├── 对标/ ← 拆文产出的结构化资产
|
|
147
|
-
│ └── {对标书名}/
|
|
148
|
-
│ ├── 原文/
|
|
149
|
-
│ │ ├── 第001章_章名.md
|
|
150
|
-
│ │ └── ...
|
|
151
|
-
│ ├── 角色/ ← 从拆文库/结构化输出同步
|
|
152
|
-
│ │ └── {角色名}.md
|
|
153
|
-
│ ├── 剧情/ ← 从拆文库/结构化输出同步
|
|
154
|
-
│ │ ├── {剧情单元名}.md
|
|
155
|
-
│ │ ├── 故事线.md
|
|
156
|
-
│ │ ├── 节奏.md # 关键信息推进 + 情绪触动点 + 爆发节奏(权威节奏索引)
|
|
157
|
-
│ │ └── 情绪模块.md # 读者需求/情绪引擎 + 可复现模块(权威模块索引)
|
|
158
|
-
│ ├── 设定/ ← 从拆文库/结构化输出同步
|
|
159
|
-
│ │ ├── 世界观/ ← 按主题拆分到子目录
|
|
160
|
-
│ │ │ ├── 背景设定.md
|
|
161
|
-
│ │ │ ├── 力量体系.md
|
|
162
|
-
│ │ │ ├── 地理.md
|
|
163
|
-
│ │ │ └── 金手指.md
|
|
164
|
-
│ │ └── 势力/
|
|
165
|
-
│ │ └── {势力名}.md
|
|
166
|
-
│ └── 拆文报告.md
|
|
167
|
-
├── 追踪/
|
|
168
|
-
│ ├── _tracking-state.json ← 唯一结构化权威状态
|
|
169
|
-
│ ├── 上下文.md ← 派生续写状态卡(固定 7 栏),≤12KB
|
|
170
|
-
│ ├── 逐章记录/第NNN章.md ← 未来相关紧凑记录,≤3072 字节
|
|
171
|
-
│ ├── 角色状态/{角色名}.md ← 派生核心角色当前快照
|
|
172
|
-
│ ├── 伏笔.md ← 派生伏笔当前视图
|
|
173
|
-
│ └── 时间线/{作者真相.md,读者已知.md}
|
|
174
|
-
├── 参考资料/
|
|
175
|
-
│ └── {topic}.md # story-researcher 输出的研究资料
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
**产物映射表**(创建模板详见 [references/artifact-protocols.md](references/artifact-protocols.md)):
|
|
179
|
-
|
|
180
|
-
| 文件 | 粒度 | 创建阶段 | 读取时机 |
|
|
181
|
-
|------|------|---------|---------|
|
|
182
|
-
| 设定/关系.md | 全书 | Phase 2 | 按需:story-explorer relationship 查询、story-review 查设定(不在每章写作回路里逐章读) |
|
|
183
|
-
| 设定/题材定位.md(含 `主对标书` 字段,多对标时必填) | 全书 | Phase 2 | Phase 3 大纲、每卷开始前、Phase 4 写前召回 |
|
|
184
|
-
| 设定/题材正文提示卡.md | 全书/题材 | Phase 2(缺失则 Phase 4 写前即时生成) | Phase 4 每章写作前:按 `genre-prose-cards.md` 索引匹配后读取 `genre-prose-cards/` 目录对应单题材卡优先、`style-genre-modules.md` 通用模块兜底,与通用正文要求、情绪/节奏召回和文风一起组装 prompt |
|
|
185
|
-
| 设定/角色/{角色名}.md、设定/势力/{名}.md | 角色/势力 | Phase 3 细纲后增量补全(首批含主角/主要角色) | Phase 4 状态筛选/写作 |
|
|
186
|
-
| 设定/文风.md(自定义文风·优先级最高) | 本书 | 用户自写(Claude Code 可代写);导入/拆解不覆盖 | Phase 4 每章写作前:含实质内容则取代对标文风作权威风格基 |
|
|
187
|
-
| 对标/{书名}/文风.md | 对标书 | analyze Stage 6 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 4 每章写作前(文风召回;有自定义文风时降为参考/句长兜底) |
|
|
188
|
-
| 大纲/卷纲_第X卷.md | 卷 | Phase 3 | Phase 4 写卷首章前 |
|
|
189
|
-
| 追踪/_tracking-state.json | 全书 | Phase 3 初始化 | 唯一结构化权威,不进正文 prompt;每章运行 `tracking_commit.py check` 读取章号和修订号 |
|
|
190
|
-
| 追踪/伏笔.md | 全书当前视图 | Phase 3 初始化 | 续写状态卡缺项时按 ID 定点查询;每 ID 只一行 |
|
|
191
|
-
| 追踪/时间线/{作者真相.md,读者已知.md} | 全书当前事实/认知派生视图 | Phase 3 初始化 | 按作者真相或读者认知的实际问题选择视图 |
|
|
192
|
-
| 对标/{书名}/拆文报告.md | 对标书 | 用户手动+analyze | Phase 2 核心设定、Phase 3 大纲、Phase 4 写作 |
|
|
193
|
-
| 追踪/逐章记录/第NNN章.md | 章 | Phase 4 每章事务 | 日更不读;目标 ≤1536 字节、硬上限 3072 字节,按需查询历史原因 |
|
|
194
|
-
| 追踪/上下文.md(续写状态卡,≤12KB) | 全书当前状态 | Phase 3 初始化 | 日更每章整份读;由事务工具整份重建,固定 7 栏 |
|
|
195
|
-
| 参考资料/{topic}.md | 按需 | Phase 4(story-researcher 输出) | Phase 4 后续章节写作时复用 |
|
|
196
|
-
| 追踪/角色状态/{角色名}.md | 核心角色 | 首次进入正文或导入初始化 | 久别角色按名读取一个小快照;目标 ≤4096 字节、硬上限 8192 字节;静态人设仍读 `设定/角色/` |
|
|
197
|
-
| 对标/{书名}/角色/{角色名}.md | 对标书 | analyze 输出 | Phase 4 模块召回(角色参考) |
|
|
198
|
-
| 对标/{书名}/剧情/{剧情单元名}.md | 对标书 | analyze 输出 | Phase 3 卷纲选段与细纲成批(剧情单元卡「对标剧情参照」)、Phase 4 模块召回(剧情模块参考) |
|
|
199
|
-
| 对标/{书名}/剧情/情绪模块.md | 对标书 | analyze Stage 3 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 2 核心设定、Phase 3 大纲、Phase 4 每章写作前(读者需求 / 情绪引擎、可复现模块选择) |
|
|
200
|
-
| 对标/{书名}/剧情/节奏.md | 对标书 | analyze Stage 3 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 3 大纲、Phase 4 每章写作前(关键信息推进、情绪触动点、爆发节奏参考) |
|
|
201
|
-
| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |
|
|
202
|
-
|
|
203
|
-
**缺失文件处理**:当前主产物缺失时显式修复,不拼装降级结果:
|
|
204
|
-
1. **角色状态文件缺失** → 当前协议项目先运行 `tracking_commit.py check`,再重跑产生该状态的完整事务;已有正文但 `_tracking-state.json` 缺失时重新 `/story-import`。不得从前文临时推断后直接手写快照。
|
|
205
|
-
2. **角色、普通剧情单元或设定等非主产物子目录缺失** → 按「对标书路径查找」查找项目视图与根目录数据源,仍缺失则跳过该可选模块。本条不适用于 `剧情/情绪模块.md` 和 `剧情/节奏.md`。
|
|
206
|
-
3. **`剧情/情绪模块.md` / `剧情/节奏.md` 缺失** → 写前准备必须停下,设置 `missing_primary_contract: true` 并给出 `repair_action`:重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`,不得用摘要文件假装已召回权威模块。
|
|
207
|
-
4. **有对标书但 `文风.md` 缺失** → 若有 `设定/文风.md`(含实质内容)走自定义文风模式继续;否则日更文风召回 fail-fast,提示先运行 `/story-long-analyze` Stage 6 并 `/story-import` 同步。**完全无对标项目**则跳过文风召回、不阻塞(有 `设定/文风.md` 时用它写作)。情绪/节奏轴(`missing_primary_contract`)独立,自定义文风模式不豁免其 fail-fast。
|
|
208
|
-
5. **伏笔/时间线文件缺失** → 视为当前语义检查点损坏,停止写正文;先运行 `tracking_commit.py check`,再用事务修复。卷纲/大纲中的计划不能代替已发生事实的当前检查点。
|
|
209
|
-
6. **`设定/题材正文提示卡.md` 缺失** → 不阻塞;写前从 `设定/题材定位.md` 精确匹配 `references/genre-prose-cards.md` 索引,并只读取 `references/genre-prose-cards/` 中对应题材单卡(高/中/低置信照原卡标注),无命中再用 `references/style-genre-modules.md` 通用流派模块即时生成短 `genre_prose_card`。只有 `设定/题材定位.md` 也缺失时,退回细纲和目标平台做低置信题材卡,并在意图确认写明。
|
|
210
|
-
|
|
211
|
-
**对标分析权威优先级(权威读取顺序)**:
|
|
212
|
-
1. `剧情/情绪模块.md` 是读者需求 / 情绪引擎、爽文套路框架、可复现模块和重组指南的权威来源。
|
|
213
|
-
2. `剧情/节奏.md` 是关键信息推进、章节扩写技法聚合、情绪触动点和爆发节奏的权威来源。
|
|
214
|
-
3. `文风.md` 只管句长、标点、对话潜台词、原文锚点等风格;它不能覆盖情绪模块或节奏意图。**自定义文风 `设定/文风.md`(用户自写、不被导入/拆解覆盖)优先级高于对标 `文风.md`**:含实质内容时作权威风格基,对标文风降为参考与句长数值兜底;命中硬安全线的写法(`……` / 破折号 / 段间空行 / 碎句)仍按 narrative-writer 归一,自定义只接管句长 / 软标点 / 潜台词 / 情绪交替。
|
|
215
|
-
4. `章节/第K章_摘要.md` 是具体章节证据,用来校验和补足权威索引,不反向覆盖 `情绪模块.md` / `节奏.md`。
|
|
216
|
-
5. `拆文报告.md`、`剧情/故事线.md` 是投影/摘要;若与 `剧情/情绪模块.md` 或 `剧情/节奏.md` 冲突,写作以两个权威文件为准,并在写前准备 `gaps.conflict` 记录冲突来源。
|
|
217
|
-
|
|
218
|
-
**文件组织原则:**
|
|
219
|
-
- **人物一个一个文件**:`角色/角色名.md`,方便按需读取
|
|
220
|
-
- **势力一个一个文件**:`势力/势力名.md`,组织/门派/家族/国家等
|
|
221
|
-
- **世界观按主题拆分**:背景、力量体系、社会结构等各自独立
|
|
222
|
-
- **细纲一章一个文件**:`细纲_第XXX章.md`,含钩子设计,与正文一一对应
|
|
223
|
-
- **正文按章拆分**:每章一个文件,`第XXX章_章名.md`
|
|
224
|
-
- 每章写完直接写入 `正文/` 目录,不要先输出到对话
|
|
142
|
+
#### 项目文件与产物
|
|
143
|
+
|
|
144
|
+
创建目录、首次引用对标、定位产物或遇到文件缺失时,先完整读取 [references/project-files.md](references/project-files.md),按其中目录结构、产物映射、缺失处理和权威顺序执行;正常续写不重复加载目录表。
|
|
225
145
|
|
|
226
146
|
#### 单章写作流程
|
|
227
147
|
|
|
228
|
-
**执行前先读 [references/workflow-chapter.md](references/workflow-chapter.md)**,按其中的单章写作流程(步骤 1-13
|
|
148
|
+
**执行前先读 [references/workflow-chapter.md](references/workflow-chapter.md)**,按其中的单章写作流程(步骤 1-13)、字数测量权威与质量检查执行。日更批量另加载 `references/workflow-daily.md` 控制批次。
|
|
229
149
|
|
|
230
|
-
####
|
|
150
|
+
#### 追踪
|
|
231
151
|
|
|
232
|
-
|
|
152
|
+
所有追踪写入都走 `scripts/tracking_commit.py`:`追踪/_tracking-state.json` 是唯一权威,`上下文.md`、角色快照、`伏笔.md`、时间线都由它派生,禁止手改。体积上限由脚本检查、超限一次报全;字段与上限见 [tracking-transaction.md](references/tracking-transaction.md),出错时才读。
|
|
233
153
|
|
|
234
154
|
---
|
|
235
155
|
|
|
@@ -249,91 +169,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
249
169
|
|
|
250
170
|
## 参考资料索引
|
|
251
171
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
各场景的完整步骤按需加载,本文件只保留场景路由、项目文件结构与产物契约、参考索引:开书三阶段(Phase 1-3)在 `references/workflow-setup.md`,单章正文与质量检查(Phase 4-5)在 `references/workflow-chapter.md`,日更批量在 `references/workflow-daily.md`,回炉大修在 `references/workflow-revision.md`。
|
|
255
|
-
|
|
256
|
-
### Phase 1:选题方向
|
|
257
|
-
|
|
258
|
-
| 场景 | 加载文件 |
|
|
259
|
-
|------|---------|
|
|
260
|
-
| 确定题材类型 | `references/long-genre-catalog.md` |
|
|
261
|
-
| 判断市场方向 | `references/genre-readers.md` |
|
|
262
|
-
| 特殊题材考量 | `references/plot-special-topics.md` |
|
|
263
|
-
| 女频长篇(题材/文案/平台/感情线) | `references/female-audience-writing.md` |
|
|
264
|
-
|
|
265
|
-
### Phase 2:核心设定
|
|
266
|
-
|
|
267
|
-
| 场景 | 加载文件 |
|
|
268
|
-
|------|---------|
|
|
269
|
-
| 设定人物 | `references/character-basics.md` |
|
|
270
|
-
| 设计关系 | `references/character-relations.md` |
|
|
271
|
-
| 题材框架与定位 | `references/long-genre-catalog.md` + `references/long-genre-mechanics.md` |
|
|
272
|
-
| 创建 artifact | `references/artifact-protocols.md` |
|
|
273
|
-
| 读者契约与主角高光 | `references/reader-contract-and-progression.md` |
|
|
274
|
-
|
|
275
|
-
### Phase 3:大纲搭建
|
|
276
|
-
|
|
277
|
-
| 场景 | 加载文件 |
|
|
278
|
-
|------|---------|
|
|
279
|
-
| 搭建大纲 | `references/outline-methods.md` |
|
|
280
|
-
| 设计矛盾与结构 | `references/outline-conflict.md` |
|
|
281
|
-
| 深度结构设计 | `references/outline-structure-theory.md` |
|
|
282
|
-
| 节奏与升级感 | `references/outline-rhythm.md` |
|
|
283
|
-
| 小纲与卡文 | `references/plot-core-methods.md` |
|
|
284
|
-
| 选择叙事框架 | `references/plot-frameworks.md` |
|
|
285
|
-
| 题材结构 | `references/genre-prose-cards.md` 索引 + `references/genre-prose-cards/` 单题材卡 |
|
|
286
|
-
| 黄金三章 | `references/opening-design.md` |
|
|
287
|
-
| 情绪弧线 | `references/emotional-arc-design.md` |
|
|
288
|
-
| 契约/终局储备/剧情单元安全审查 | `references/reader-contract-and-progression.md` |
|
|
289
|
-
| 反转设计 | `references/long-reversal.md` |
|
|
290
|
-
| 细纲结构验收 | `scripts/check-outline-contract.js`(新建/补建后跑,只判字段与表结构) |
|
|
291
|
-
|
|
292
|
-
### Phase 4:正文写作
|
|
293
|
-
|
|
294
|
-
| 场景 | 加载文件 |
|
|
295
|
-
|------|---------|
|
|
296
|
-
| 章节钩子 | `references/long-chapter-hooks.md` |
|
|
297
|
-
| 悬念设计 | `references/long-suspense.md` |
|
|
298
|
-
| 题材正文提示卡 / 题材分类卡 | `references/genre-prose-cards.md` 索引 + `references/genre-prose-cards/` 单题材卡目录(按题材分类优先) + `references/style-genre-modules.md`(通用流派补充) |
|
|
299
|
-
| 打斗/装逼 | `references/style-combat-face.md` |
|
|
300
|
-
| 写作技法 | `references/style-craft.md` |
|
|
301
|
-
| 商业创作核心方法 | `references/commercial-core-methods.md` |
|
|
302
|
-
| 对话 | `references/dialogue-mastery.md` |
|
|
303
|
-
| 人物深化 | `references/character-design-methods.md` |
|
|
304
|
-
| 情绪技法 + 叙事单元 | `references/plot-emotion-system.md` + `references/emotional-methods.md` |
|
|
305
|
-
| 写作技法全程参考 | `references/writing-craft.md` |
|
|
306
|
-
| 格式 | `references/long-format.md`(章节、段落、对话、标点与工程元信息) |
|
|
307
|
-
| 状态追踪协议 | `references/state-tracking.md` |
|
|
308
|
-
| 当前剧情单元与契约校准 | `references/reader-contract-and-progression.md` |
|
|
309
|
-
|
|
310
|
-
### Phase 5:质量检查
|
|
311
|
-
|
|
312
|
-
| 场景 | 加载文件 |
|
|
313
|
-
|------|---------|
|
|
314
|
-
| 质量检查 | `references/long-chapter-quality.md` + `references/reader-contract-and-progression.md` |
|
|
315
|
-
| 禁用词扫描 | `references/banned-words.md` |
|
|
316
|
-
| AI句式脚本复扫 | `scripts/check-ai-patterns.js` |
|
|
317
|
-
| 去AI味 | `references/anti-ai-writing.md` |
|
|
318
|
-
|
|
319
|
-
### 按主题快速定位(横切主题)
|
|
320
|
-
|
|
321
|
-
有些主题横跨多个阶段、散在多个文件里。下表给每个主题一个**权威文件**(先读它,通常够用),配套文件只在需要那个角度时再加载。括号是该文件里对应的小节。
|
|
322
|
-
|
|
323
|
-
| 主题 | 权威文件(先读) | 配套文件(按角度补充) |
|
|
324
|
-
|------|-----------------|----------------------|
|
|
325
|
-
| 爽点(按意图分流) | **`references/plot-emotion-system.md`**(爽点设计体系:本质/六种类型/倒推法——"怎么设计爽点"先读这个) | 翻盘/高潮式爽点→`references/plot-core-methods.md`(假胜→崩解)· 打脸/装逼释放→`references/style-combat-face.md`· 题材声线与长线约束→`references/genre-prose-cards.md`· 爽文循环/多层→`references/outline-methods.md`·`references/outline-conflict.md` |
|
|
326
|
-
| 情绪模块 | **`对标/{书名}/剧情/情绪模块.md`(项目/书级权威)**;无对标或设计新模块时再读 `references/plot-emotion-system.md` | `references/outline-rhythm.md` 只作理论参考;不得覆盖对标书权威模块 |
|
|
327
|
-
| 节奏 | **`对标/{书名}/剧情/节奏.md`(项目/书级权威)**;无对标或设计新节奏时再读 `references/outline-rhythm.md` | `references/plot-core-methods.md` 只作理论参考;不得覆盖对标书权威节奏 |
|
|
328
|
-
| 高潮 | **`references/plot-core-methods.md`**(高潮构建公式:蓄能→假胜→崩解) | `references/outline-rhythm.md`(高潮分类与反推)· `references/outline-methods.md`(八节点故事结构:结构定位) |
|
|
329
|
-
| 金手指 | **`references/plot-special-topics.md`**(金手指拆分理解与战力防崩 + 进阶设计) | `references/outline-conflict.md`(金手指与身份:四点统一) |
|
|
330
|
-
| 感情线 | **`references/character-relations.md`**(好感度体系/四阶段 + 男女频差异) | `references/outline-conflict.md`(感情线设计)· `references/style-combat-face.md`(后宫文女主 / 男频极简爱情线构型)· `references/plot-special-topics.md`(爱情线提纯策略) |
|
|
331
|
-
| 反转 | **`references/long-reversal.md`**(单元/卷级/全书反转、铺垫、有效性自检) | `references/plot-core-methods.md`(假胜:先给希望再击碎) |
|
|
332
|
-
| 人物 | **`references/character-basics.md`**(主角/配角/反派/动机模板速填) | `references/character-design-methods.md`(三层标签反差/九维深化)· `references/character-relations.md`(关系类型/感情线) |
|
|
333
|
-
| 女频写作 | **`references/female-audience-writing.md`**(女频长篇:核心原则/文案/题材/感情线长线/平台) | `references/genre-readers.md`(读者心理/平台差异)· `references/character-relations.md`(感情线总框架) |
|
|
334
|
-
| 去AI味 | **`references/anti-ai-writing.md`**(AI指纹/核心规则/Show Don't Tell) | `references/banned-words.md`(禁用词扫描)· `references/long-chapter-quality.md`(成稿检查) |
|
|
335
|
-
|
|
336
|
-
---
|
|
172
|
+
阶段必读项按首屏 Reference Gate 执行;其他题材、结构与写作技法按 [参考索引](references/reference-index.md) 的加载条件选用。
|
|
337
173
|
|
|
338
174
|
## 语言
|
|
339
175
|
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# 去AI味完整指南
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> 本文件的句长、视角、标点、修辞与禁用词是默认写法,服从 [style-resolution.md](style-resolution.md) 的逐维裁决。所选 Gate 检查表达效果,不因作者有意选择某写法就机械删除;获准命中按书级 `.deslop-whitelist` 处理。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<!-- 同名副本×4 字节同步,改动后跑 scripts/check-shared-files.sh -->
|
|
6
|
+
|
|
7
|
+
> 识别AI写作指纹、改写顺序、禁用词约束、改写范例库。用于正文写作后做去AI味自检和改写时查阅。
|
|
6
8
|
|
|
7
9
|
---
|
|
8
10
|
|
|
@@ -13,7 +15,7 @@
|
|
|
13
15
|
| 写完正文后做去AI自检 | 核心规则 -> AI写作模式检测 -> 质量维度检查 |
|
|
14
16
|
| 改写某段AI味重的文字 | 改写范例库 + 冲突对话改写范例 |
|
|
15
17
|
| 检查是否用了禁用词 | 禁用词与句式速查 -> AI高频词(模式1) |
|
|
16
|
-
| 系统性去除整章AI味 |
|
|
18
|
+
| 系统性去除整章AI味 | 改写顺序 |
|
|
17
19
|
| 检查章尾是否有总结升华 | AI写作指纹 -> 章末总结体 |
|
|
18
20
|
| 判断情绪描写是否告知式 | Show Don't Tell原则 + 去AI味补充技法 |
|
|
19
21
|
| 快速扫描全章质量 | 快速自检口诀 + 质量维度检查 |
|
|
@@ -105,18 +107,11 @@
|
|
|
105
107
|
|
|
106
108
|
### 规则 2:动作 + 对话 + 情绪反应
|
|
107
109
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
```
|
|
111
|
-
动作 -> 对话 -> 情绪反应 -> 动作 -> 对话 -> ……
|
|
112
|
-
```
|
|
110
|
+
动作、对话与情绪反应按场景需要交织,不按固定顺序轮换,不为凑齐三项补反应。
|
|
113
111
|
|
|
114
|
-
|
|
115
|
-
- 不写"他很紧张" -> 写"手心全是汗,筷子差点掉了"
|
|
116
|
-
- 不写"她很愤怒" -> 写"她把杯子摔在地上,碎片弹到脚背上也没弯腰捡"
|
|
117
|
-
- 不写"他很伤心" -> 写"他在车里坐了二十分钟才发动引擎"
|
|
112
|
+
情绪没有固定译法,关键节点也可以准确直写。上下文已让情绪成立,不另补反应;需要补足信息时,优先选择、台词、策略、物件或实际后果。
|
|
118
113
|
|
|
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
|
|
|
@@ -378,10 +372,12 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
378
372
|
|
|
379
373
|
---
|
|
380
374
|
|
|
381
|
-
##
|
|
375
|
+
## 改写顺序(只排所选 Gate 的先后)
|
|
376
|
+
|
|
377
|
+
下面三步只决定所选 Gate 内问题的处理先后,不另起一轮全篇去味;某一步没有对应的所选 Gate 就跳过。
|
|
382
378
|
|
|
383
|
-
###
|
|
384
|
-
- 抽象情绪总结句 ->
|
|
379
|
+
### 第一步:去泛化(Strip Generic)
|
|
380
|
+
- 抽象情绪总结句 -> 按规则 2 判断:删重复说明,保留准确直写,需要时用原文已有信息落地
|
|
385
381
|
- 假深度句 -> 删
|
|
386
382
|
- 意义膨胀 -> 缩小到具体影响
|
|
387
383
|
- 空洞结论 -> 删
|
|
@@ -390,9 +386,9 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
390
386
|
- 过度使用"于是""然而""此刻" -> 删掉一半
|
|
391
387
|
- 所有角色说话一样"高级" -> 区分语气
|
|
392
388
|
|
|
393
|
-
|
|
389
|
+
**原则**:能删就删,不能删就用具体细节替换。
|
|
394
390
|
|
|
395
|
-
###
|
|
391
|
+
### 第二步:去书面化(Cut Professional Diction)
|
|
396
392
|
- 分析性用词("机制""结构""逻辑""体系"出现在小说中)-> 换成日常表达
|
|
397
393
|
- 抽象名词滥用 -> 直接说事
|
|
398
394
|
- 体制内用语("进一步""深入""推进""落实")-> 删
|
|
@@ -400,7 +396,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
400
396
|
|
|
401
397
|
**例外**:保留专业感的场景(历史题材正式用语、文学向刻意密度、喜剧夸张修辞)。
|
|
402
398
|
|
|
403
|
-
###
|
|
399
|
+
### 第三步:回自然感(Restore Natural Presence)
|
|
404
400
|
- 具体的感官细节(气味、温度、触感)
|
|
405
401
|
- 角色说话方式的区分(不同人不同语气)
|
|
406
402
|
- 句首变化:连续 3+ 句用同一主语或同一词性开头时换开法(动作、场景、对话引入)
|
|
@@ -411,13 +407,9 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
411
407
|
|
|
412
408
|
**原则**:少即是多。每段加 1-2 个具体细节就够了。
|
|
413
409
|
|
|
414
|
-
###
|
|
410
|
+
### 执行范围
|
|
415
411
|
|
|
416
|
-
|
|
417
|
-
|----------|------|
|
|
418
|
-
| 轻度 | 只做 Pass 1 |
|
|
419
|
-
| 中度 | Pass 1 + Pass 2 |
|
|
420
|
-
| 重度 | 完整三遍 + 重点段落重写 |
|
|
412
|
+
调用方指定 Gate 时,只处理选定 Gate;改写顺序只排先后,不重新分级或扩大范围。未指定范围时,按实际问题选择适用检查。
|
|
421
413
|
|
|
422
414
|
### 自检清单
|
|
423
415
|
- 对话自然度检查:对话是否使用口语化表达,是否避免了书面语/正式腔调
|
|
@@ -456,31 +448,13 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
456
448
|
|
|
457
449
|
## 改写范例库
|
|
458
450
|
|
|
459
|
-
###
|
|
460
|
-
|
|
461
|
-
**紧张**
|
|
462
|
-
- '他感到一阵紧张,心跳不由自主地加快了'
|
|
463
|
-
- 他攥紧了手里的纸杯,水洒出来一些
|
|
451
|
+
### 情绪落地示例
|
|
464
452
|
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
- '一丝悲伤涌上心头,她的眼中闪过泪光'
|
|
471
|
-
- 她低头搅着咖啡,搅了很久
|
|
472
|
-
|
|
473
|
-
**害怕**
|
|
474
|
-
- '恐惧瞬间笼罩了他,他感到一阵战栗'
|
|
475
|
-
- 他的背贴在墙上,不敢动
|
|
476
|
-
|
|
477
|
-
**失望**
|
|
478
|
-
- '她感到一丝失落,心仿佛被什么东西揪住了'
|
|
479
|
-
- "哦。"她把手机锁了屏
|
|
480
|
-
|
|
481
|
-
**惊讶**
|
|
482
|
-
- '他的瞳孔微微收缩,显然没有想到会听到这样的话'
|
|
483
|
-
- 他张了张嘴,什么都没说出来
|
|
453
|
+
| 原文与语境 | 处理 |
|
|
454
|
+
|---|---|
|
|
455
|
+
| 「他很紧张。再错一题,补考也过不了。」 | 情绪有具体原因,可以直写,不补手抖或出汗 |
|
|
456
|
+
| 「她已经决定不再等他。她攥了攥袖口。」袖口动作无后续作用 | 删除第二句,不换成低头或咬唇 |
|
|
457
|
+
| 「手腕的伤让他握不住笔,签名只写了一半。」 | 保留,身体状态造成动作失败,不能当作情绪套话删除 |
|
|
484
458
|
|
|
485
459
|
### 场景描写范例
|
|
486
460
|
|
|
@@ -571,7 +545,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
571
545
|
- [ ] **无书面语连词堆砌**:无"于是乎/与此同时/从而/因而/诚然"泛滥
|
|
572
546
|
- [ ] **章尾无总结升华**:用动作/对话/悬念收束,无感悟/哲理/预告
|
|
573
547
|
- [ ] **无大段心理描写**:心理活动不超过2段,无括号标注内心
|
|
574
|
-
- [ ]
|
|
548
|
+
- [ ] **情绪落地**:按规则 2 保留准确直写与有功能的身体细节,删除重复说明,不给每个情绪词配动作
|
|
575
549
|
- [ ] **对话口语化**:无书面腔,不同角色语气可区分
|
|
576
550
|
- [ ] **标点不压平**:没有把质问、爆发、犹豫全部压成句号;也没有随机堆砌 `?`/`!`,或用 `……`/`——` 硬造停顿
|
|
577
551
|
- [ ] **Show Don't Tell**:用行为代替形容词,用细节代替总结
|
|
@@ -579,5 +553,4 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
579
553
|
- [ ] **detector advisory 逐条复核**:`micro-action-tic` / `stock-reaction-tic` / `abstract-summary-tic` / `cliche-density-tic` / `metaphor-density-tic` / `reasoning-chain-tic` / `system-notice-formality-tic` / `overcompressed-prose-tic` / `low-connective-density-tic` / `action-list-tic` 命中时按脚本给出的修法处理:先通读判断是不是机械复现,确属再改;功能性写法保留或标 `[需复核]`,不做同义词轮换、不机械注水
|
|
580
554
|
- [ ] **不做硬指标投机**:不为反检测强制每句换行、50-60 字一行、对话 50%-60%、英文点省略号,或把 `地/得` 全改成 `的`
|
|
581
555
|
- [ ] **任务卡点服从原文边界**:抽象总结若改成角色办事被卡住,必须来自原文已有任务/证据/手续/物件缺口;不新增原文没有的事件链
|
|
582
|
-
- [ ] **去AI三遍法执行**:轻度只做Pass1,中度做Pass1+2,重度完整三遍
|
|
583
556
|
- [ ] **对话自然度测试**:无书面语痕迹 = 通过
|