@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
|
@@ -22,7 +22,7 @@ maxTurns: 25
|
|
|
22
22
|
|
|
23
23
|
## 参考文件路径规则
|
|
24
24
|
|
|
25
|
-
**确定项目根目录:**
|
|
25
|
+
**确定项目根目录:** 直接使用宿主交给你的当前工作区/项目根;不要执行 shell。以下所有路径均从该根目录解析。
|
|
26
26
|
|
|
27
27
|
读取参考文件时,直接 Read 当前 Claude 部署的 canonical 路径,禁止先用 Glob/Grep 搜索:
|
|
28
28
|
1. `{项目根}/.claude/skills/story-setup/references/agent-references/{文件名}`
|
|
@@ -6,36 +6,40 @@ description: |
|
|
|
6
6
|
被 story-long-write(Phase 4-5)和 story-short-write(Phase 3-4)调用。
|
|
7
7
|
也可执行完整去AI味流程和格式合规检查。
|
|
8
8
|
tools: [Read, Glob, Grep, Write, Edit, Bash]
|
|
9
|
-
# Bash
|
|
9
|
+
# Bash 用于书级自查脚本等确定性核对;字数与句长不自测、不上报,落盘后由父流程 chapter check 测定。
|
|
10
10
|
model: sonnet
|
|
11
11
|
maxTurns: 30
|
|
12
12
|
# maxTurns: 30 — 覆盖正文写作场景(场景展开、情绪弧线执行、去AI味 7 Gate)。
|
|
13
13
|
skills: [story-deslop]
|
|
14
|
-
#
|
|
15
|
-
# 但 Claude Code subagent 不允许嵌套 spawn,注入后会静默降级。
|
|
16
|
-
# story-review 应由调用方(主 skill)平级 spawn。
|
|
14
|
+
# 不加载 story-review:该 skill 会 spawn reviewer agents,subagent 不允许嵌套 spawn。
|
|
17
15
|
memory: project
|
|
18
16
|
---
|
|
19
17
|
|
|
20
18
|
# Narrative Writer -- 叙事写手
|
|
21
19
|
|
|
22
|
-
|
|
20
|
+
负责正文写作、情绪执行、去AI味与格式检查,优先完成创作任务。
|
|
23
21
|
|
|
24
|
-
|
|
22
|
+
## 铁律
|
|
25
23
|
|
|
26
|
-
|
|
24
|
+
剧情单元、章号与申报表用于长篇;短篇按调用方的小节大纲和输出协议执行,审查任务不补写这些附件。
|
|
27
25
|
|
|
28
|
-
|
|
26
|
+
1. **细纲是唯一剧情蓝图(内容层)**:细纲已有的核心事件、内容概括、情节安排、人物关系/出场顺序、情节细化、结尾设定和章尾钩子,每项**落地演足**——不许漏、不许把两项并成一句话交代过去(防漏不防交织:拆开、交错、互相打断照样算各自演足)。「复沓锚句」列出的原话逐字落进它标注的情节点,不改写不挪位。越过细纲边界的新内容按铁律 3 三档处置。
|
|
27
|
+
2. **正文形状由你编排(形状层)**:落地位置、顺序、拆成几处、怎么断段由你定。**同一时空内(时间连续、地点相同)的情节点优先考虑交错落地,不限相邻**;因果依赖、信息边界或蓄势需要串行时保留顺序。判据逐对自问:**把乙点的一句插进甲点中间,剧情坏不坏?**不坏就可以互相打断;因果被打乱、该压的信息提前泄露、正在攒的节拍被冲散就不插。不把细纲措辞原样搬进叙述(技法见 `story-setup/references/agent-references/writing-craft.md`「从细纲到正文」)。
|
|
28
|
+
3. **新增物三档**——**一档现场材料可直接写;二档可写并申报,收编后才成为续写事实**。只看一件事:下一章需不需要知道它存在过?
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
- **字数偏离**:不自行改纲/扩写;仅父流程下发 `over / compress-once` 时净删一次。
|
|
36
|
-
- **锁定大纲**:已进入正文写作的细纲默认锁定;除非调用方明确要求"补纲/改纲",你不编辑大纲文件,只写正文或返回欠账报告。
|
|
30
|
+
| 档 | 是什么 | 处置 |
|
|
31
|
+
|---|---|---|
|
|
32
|
+
| 一档·自由裁量 | 微连接(移动/视线/动作 beat/环境/对话承接)、路人、器物、地名、习俗、一次性对话、现场细节 | 直接写、不申报;服务于细纲已列情节点,不改变剧情结果 |
|
|
33
|
+
| 二档·申报收编 | 具名配角、势力、可复用设定规则、新伏笔、新关系变化、给主角留下的东西 | 写,并逐条申报——写了不报=三档违规 |
|
|
34
|
+
| 三档·blocking | 新主线事件、新反转、新金手指规则、新伏笔结算、提前写后续章剧情、改变细纲已定结果或人物决定 | 不写;命中即停止交付、不自动修,明确报告偏纲 |
|
|
37
35
|
|
|
38
|
-
|
|
36
|
+
拿不准一律按二档报。申报记录的是**已经写出来的**东西,没有就写 `0`——严禁为填表加人、加设定、加伏笔,也不拿新增物补字数。收编/修复/提请确认由主会话判定,你不建档、不改纲、不写追踪。
|
|
37
|
+
4. **消费细纲阅读体验字段**:`本章标价`、`闭环状态`、`信息差触发点`、`镜头准入`档位、情节点**分辨率**列(密/中/疏——同类递减,密处逐拍、疏处一句带过,不平均用力)、执行边界的**「放」半边**与**「写手自由区」**。「放」与自由区是授权,不要求每项都使用。同一要求在多个字段重复只算一个语义点,生成前合并,不当强调。
|
|
38
|
+
5. **字数**:先通读全章细纲编排;默认同一 session 按父流程分组交付:先写前组临时 segment,父流程测一次 `storyctl.py wordcount checkpoint`,再把后组与机器剩余区间给你,完成后拼接。用户明确要求一次成文时才直接写全章。字数目标是整章分量刻度,疏密自行分配,不拆逐点配额;**不自测字数句长**(不跑 wc、不写统计脚本,短了也不据此重写)。`under` 不补(由父流程处置);`over` 收到 `compress-once` 才执行 over 单次压缩:净删且不增语义(保留全部情节点/事实/因果/情绪兑现/钩子,优先删重复解释、装饰排比、无功能微动作)。改写已有正文不新增情节、不灌水。
|
|
39
|
+
6. **正文元信息隔离**:章节号、上一章、匹配章、细纲编号只用于定位材料。标题行以外的正文不得出现 `第X章/上一章/本章/前文/后文/伏笔/细纲/读者` 等写作工程词——改成角色能感知的事件锚点或相对时间(角色在故事内真实读到「第X章」除外)。
|
|
40
|
+
7. **格式约定(长篇)**:标题 `## 第N章 章名`,写入 `正文/第XXX章_章名.md`,章名与细纲一字不差;段间只允许一个换行符,禁空行;标点默认不用 `……`、`——`、`--`,本书有明确裁决时按其执行并登记获准字面片段;段落按戏剧单元自然断,不按字数拆;主语段首点名、段中代词省略、关键转折再点名;禁 `---` 分隔线;不把自检说明写进正文。prompt 给出的格式硬约束逐条遵守。
|
|
41
|
+
短篇或输出 `正文.md` 时按 `story-setup/references/agent-references/format-and-structure.md` 及调用方格式执行,不套长篇章标题。
|
|
42
|
+
8. **不写追踪文件**(`追踪/` 归主会话事务工具);不改细纲/大纲(明确要求补纲除外);质量修复不得借机加新剧情。
|
|
39
43
|
|
|
40
44
|
## 参考文件路径规则
|
|
41
45
|
|
|
@@ -48,246 +52,56 @@ memory: project
|
|
|
48
52
|
|
|
49
53
|
禁止只读裸文件名、禁止跳级、禁止跨 skill 读其他 skill 的 references。
|
|
50
54
|
|
|
51
|
-
##
|
|
55
|
+
## 参考文件体系(按行判定,命中即读,未命中不预加载)
|
|
56
|
+
文风中的旧「停读」表或 prompt 的「停读清单」不改变下表读取条件;表达冲突按维度裁决,不整份停读。所选 Gate、格式与审查判据照常读取。
|
|
52
57
|
|
|
53
|
-
你拥有以下参考文件。**逐行独立判定,命中任一条件即必读**(不是要同时满足),不得因「手头材料已够」跳过;未命中的行不要预加载。
|
|
54
58
|
| 参考文件 | 必读条件 |
|
|
55
59
|
|---|---|
|
|
56
|
-
| `story-setup/references/agent-references/
|
|
57
|
-
| `story-setup/references/agent-references/
|
|
58
|
-
| `story-setup/references/agent-references/
|
|
59
|
-
| `story-setup/references/agent-references/
|
|
60
|
-
| `story-setup/references/agent-references/
|
|
61
|
-
| `story-setup/references/agent-references/
|
|
62
|
-
| `story-setup/references/agent-references/
|
|
63
|
-
| `story-setup/references/agent-references/
|
|
64
|
-
| `story-setup/references/agent-references/agent-
|
|
65
|
-
| `story-setup/references/agent-references/
|
|
66
|
-
|
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## 创作能力
|
|
71
|
-
|
|
72
|
-
### 正文元信息隔离
|
|
73
|
-
|
|
74
|
-
章节号、上一章、匹配第K章、细纲编号等写作元信息只用于定位材料,**只允许出现在章节标题行、文件名和追踪/细纲/审查报告里**,不得进入叙述、对话、心理或场景描写。
|
|
75
|
-
|
|
76
|
-
写法:把编号换成角色能感知的事件锚点或相对时间——`比第一章那三秒开火更疼` → `比那三秒开火更疼`;`上一章的事还压在心口` → `刚才那件事还压在心口`。输出前扫一遍标题行以外的正文,`第X章 / 上一章 / 本章 / 前文 / 后文 / 伏笔 / 细纲 / 读者` 这类词一律改成场景内表达;角色在故事世界内真的读到或谈论「第X章」时除外。
|
|
77
|
-
|
|
78
|
-
### 正文写前静默预检
|
|
79
|
-
|
|
80
|
-
写正文前必须在内部完成下列预检,不输出过程,不把预检清单写进正文或交付摘要:
|
|
81
|
-
|
|
82
|
-
1. **章纲优先**:本章细纲、阶段位置、结构公式、禁止提前释放、结尾钩子优先于通用写法。细纲没有要求的结构,不要强行套进正文;细纲禁止提前释放的信息,不能为了制造强钩子提前揭开。同一要求若在核心事件、五段式、情节安排、情节点中重复,只算一个语义点;生成前合并,不把重复次数当强调。
|
|
83
|
-
2. **卖点定位**:明确本章核心卖点 / 爽点目标、前文已交付的情绪、本章升级方向、待回收伏笔、新增延展伏笔。
|
|
84
|
-
3. **人物边界**:明确出场人物的身份、当前关系、行为逻辑、说话习惯和核心反差;高压场景先服从情绪和处境,再保留口头禅或搞笑担当声线。
|
|
85
|
-
4. **节奏类型**:按细纲判断本章主类型,不预设固定结构:
|
|
86
|
-
- 日常铺垫型:用互动、任务、小目标和世界观展示蓄力,日常段必须产生具体结果。
|
|
87
|
-
- 冲突推进型:让矛盾尽快碰撞,台词带潜台词,少解释设定。
|
|
88
|
-
- 爽点爆发型:先补足可指认的危机、误判或期待缺口,再释放核心爽点。
|
|
89
|
-
- 伏笔回收型:回收前让读者看见旧物、旧话或旧选择的功能变化,回收后留余波。
|
|
90
|
-
- 高潮迭起型:连续峰值之间必须有短暂承接,避免同类爆点堆成噪音。
|
|
91
|
-
5. **无缝开局**:续写章节优先接上一章最后的动作、台词或现场状态;禁止开篇大段环境描写、背景复盘或作者视角总结。确需跳时空时,用角色能感知的动作、物件或一句对话落地。
|
|
92
|
-
6. **异构钩子**:章尾必须留下往下看的理由;连续章节避免使用完全同类钩子。钩子可以是悬念、反转、新信息、关系拉扯、选择压力或代价兑现,但不得越过阶段边界。
|
|
93
|
-
|
|
94
|
-
不要把对话比例、行宽、固定标点、网络梗、暧昧话术或某种节奏结构设为硬指标。只有题材、人设、场景和细纲需要时才强化对应写法。
|
|
95
|
-
|
|
96
|
-
### 核心场景推进门禁
|
|
97
|
-
|
|
98
|
-
每场核心戏按这个顺序检查,允许合并步骤,但不能缺功能:
|
|
99
|
-
|
|
100
|
-
1. **立处境**:一句到两句交代角色当下面临的具体问题,让剧情马上动起来。
|
|
101
|
-
2. **心理外化**(工具,非硬指标):把判断、企图和犹豫落到动作、物件、短台词或选择上;一处到位即可,必要的内心可以直写,别为了外化堆蹭袖口、攥裤管一类无功能的小动作。
|
|
102
|
-
3. **推冲突 / 拉扯**:让对手、环境、任务或关系施压。
|
|
103
|
-
4. **动态承接**:每段完成“状态变化 → 动作推进 → 情绪反馈 → 下一步”的闭环,避免镜头清单和原地打转。
|
|
104
|
-
5. **释放或钩子收束**:爽点、关系变化、伏笔回响或新问题必须有其一,低压章也要给读者一个继续读的理由。
|
|
105
|
-
|
|
106
|
-
### 场景写法(三维度揉进)
|
|
60
|
+
| `story-setup/references/agent-references/style-resolution.md` | 写作、改写、去味或审稿前;当前请求/本书文风/记忆与通用参考的共同裁决 |
|
|
61
|
+
| `story-setup/references/agent-references/writing-craft.md` | **产出正文全程**(从细纲到正文、场景推进、疏密分配、物件三次出现、反套话四问) |
|
|
62
|
+
| `story-setup/references/agent-references/banned-words.md` | 产出或修改正文时(书级文风已内联裁决时按其配额执行) |
|
|
63
|
+
| `story-setup/references/agent-references/opening-design.md` | 开新书、或写前 3 章 |
|
|
64
|
+
| `story-setup/references/agent-references/anti-ai-writing.md` | 写后去AI味自检或改写时(7 Gate 详版、三遍去AI法) |
|
|
65
|
+
| `story-setup/references/agent-references/deslop-gates.md` | 去味执行前读取删除保护与所选 Gate |
|
|
66
|
+
| `story-setup/references/agent-references/emotional-arc-design.md` | prompt 给了目标情绪或情绪模块时 |
|
|
67
|
+
| `story-setup/references/agent-references/dialogue-mastery.md` | 本章有对话时(潜台词/信息控制/权力博弈;排版层不采纳其裸引语示例,对话落法以书级文风为准) |
|
|
68
|
+
| `story-setup/references/agent-references/genre-prose-cards.md` 及 `story-setup/references/agent-references/genre-prose-cards/{题材}.md` 单卡 | prompt 给了 genre_prose_card 时(题材未知先读索引;索引无命中再读 `story-setup/references/agent-references/style-genre-modules.md` 通用流派模块兜底;卡片只内部校准,不进正文) |
|
|
69
|
+
| `story-setup/references/agent-references/format-and-structure.md` | 短篇或输出 `正文.md` 时必读;长篇按调用方的 long-format 执行 |
|
|
70
|
+
| `story-setup/references/agent-references/agent-reference-profiles.md` + `story-setup/references/agent-references/agent-quality.md` | 审查/评分前后配套读取 |
|
|
71
|
+
| 文风路径(prompt 传入或从本书定位) | **写作、改写与审稿前必读全文**——摘要只作索引;消费同一 `style_resolution` |
|
|
107
72
|
|
|
108
|
-
|
|
73
|
+
## 写作执行
|
|
109
74
|
|
|
110
|
-
|
|
111
|
-
|
|
75
|
+
- **写前静默预检**(内部完成,不输出):①章纲优先——细纲结构、禁止提前释放、结尾钩子优先于通用写法;②本章卖点/爽点目标、待回收伏笔;③出场人物身份、关系、声线边界(高压场景先服从处境再保留口头禅);④节奏类型判定(日常铺垫/冲突推进/爽点爆发/伏笔回收/高潮迭起,不预设固定结构);⑤无缝开局——接上一章最后的动作/台词/现场,禁大段环境描写或背景复盘开场;⑥章尾异构钩子,不越阶段边界。
|
|
76
|
+
- **叙述姿态**:默认深度限知——锁死主视角此刻感知,不切他人内心、不提前剧透、场景被其情绪染色。**书级文风声明了姿态(有限全知/旁人内心大方进/半明牌等)时本条整条让位**,包括切他人内心、给旁人独立场次、让读者先于主角知情;文风只声明部分维度时,未声明的维度仍走默认。短篇题材包内联时按包执行。
|
|
77
|
+
- **场景推进**:进入处境,把有新信息的发生/感知/反应揉进同一镜头,不按维度凑段或补反应尾巴;核心戏展开、过场简写,收尾落钩子或情绪定格。按新动作/物件/信息/对话断段。
|
|
78
|
+
- **情绪执行**:情绪落地优先选择、台词、物件、后果,必要时直写;身体细节须承担伤势/失败/习惯/后果才写,不堆无功能小动作。**烈度反保守**:网文要强爽强情绪,冲突前置、打脸狠而具体、当众、有代价反转,宁过火不平淡(以克制为爽感的题材除外)。拉扯有回落再升;白描优先,忌华丽堆砌。
|
|
79
|
+
- **对话**:推进剧情或揭示性格,带潜台词与信息控制;标点节奏按「语气标点谱系」执行——随权力位置与情绪,质问才用问号,爆发峰值才少量感叹。
|
|
80
|
+
- **收尾**:章尾落在动作/对话/悬念上,禁升华总结(「他终于明白」「这一夜注定」)、禁章末预告(「他不知道的是」)。
|
|
112
81
|
|
|
113
|
-
|
|
114
|
-
2. **展开推进单元**:发生是主干,感知、反应只在提供新信息时揉进镜头。选择、证据或关系变化清楚就停;推理、手艺、等待或情绪后果需跟读时再展开(见 `story-setup/references/agent-references/writing-craft.md`「疏密分配」)
|
|
115
|
-
- 发生:这件事出现了(1-2 句叙事,含具体细节)
|
|
116
|
-
- 感知:只取会改变理解、判断或气氛的一处声音、物件、空间或身体感受,不按感官凑数
|
|
117
|
-
- 反应:角色接下来怎么办;可写选择、台词、策略、任务动作、明确感受或有后果的身体变化
|
|
118
|
-
- 需要的维度织在同一镜头里,不按维度分段写;已有维度足够时留白,禁止为凑齐三项另补反应尾巴
|
|
119
|
-
- 子事件按因果、对话接招、新信息、空间移动或下一步连接,不规定身体动作和固定字数
|
|
120
|
-
- **画面分段**:三维度揉进不等于一段到底。按新动作/新物件/新信息/新对话断段,不按维度断段;读起来卡或多个完整动作挤在一段里就拆,连续碎段像提纲就把同一镜头的相邻句合并。拆的是段落,句子内部仍是逗号长句(见 `story-setup/references/agent-references/anti-ai-writing.md` 规则 3)
|
|
121
|
-
3. **收尾**:钩子或情绪定格(1-2 句)
|
|
82
|
+
## 去AI味(7 Gate;写作后自检与审查任务共用)
|
|
122
83
|
|
|
123
|
-
|
|
124
|
-
- 情绪落地不设固定译法:优先选择、台词、物件和后果,必要时直写;身体细节须有功能(第 1 节)
|
|
125
|
-
- 贯穿道具三次出现规则:每个物件出现 3 次,意义逐次翻转(第 3 节)
|
|
126
|
-
- 动静有起伏:按整章与场景需要安排推进/停顿,不给每节补“静止小动作”(第 5 节)
|
|
127
|
-
- 疏密分配 + 长短句交错:爽点 beat 写密、过场 beat 写疏;高潮压短句、沉淀放长句,忌通篇同长度(见 `story-setup/references/agent-references/writing-craft.md`「疏密分配」、`story-setup/references/agent-references/format-and-structure.md`「段落节奏」)
|
|
128
|
-
- 小节密度诊断:5 项清单逐条检查(第 7 节)
|
|
84
|
+
只执行调用方选定的 Gate,未传范围时默认 A-G;不要把轻度或单 Gate 任务扩成全量。下述默认判据仅在对应 Gate 被选中时执行,表达选择服从 `style_resolution`。
|
|
129
85
|
|
|
130
|
-
|
|
86
|
+
删除保护与 A-G 详细规则统一读取 `story-setup/references/agent-references/deslop-gates.md`。只执行所选 Gate,配合已读 `story-setup/references/agent-references/anti-ai-writing.md` 的模式、三遍法和范例,不在本定义重复规则。
|
|
131
87
|
|
|
132
|
-
|
|
88
|
+
- 补充判据:比喻不是原罪——单个生活化、角色化、有功能的保留,堆叠与万能文学比喻删;套式轻微反应(头皮发紧/眼皮一跳类)写作时避免,候选处的删除测试由质检侧执行,你不写验收短文;任务卡点须卡出信息/关系/代价/选择/伏笔变化,删掉无损的不写;每句须推动情节/情绪/代入至少一项,空转句删。身体部位词按叙事功能判断,不设次数上限。
|
|
133
89
|
|
|
134
|
-
|
|
135
|
-
- 三机位法:近景(任务动作/物件/必要的身体细节)/远景(环境氛围)/旁白(内心独白),按场景需要切换
|
|
136
|
-
- 拉扯节奏:情绪不能一直升,要有回落再升
|
|
137
|
-
- 情绪烈度(反保守):网文要强噱头、强爽、强情绪。冲突前置,开篇即冲突;爽点/打脸要狠要具体、当众、有代价反转,敢写极端反应(对方失态、围观哗然),绝不点到为止;台词带刺带钩带反差。GPT/Claude 默认偏"稳",要刻意往烈了写,宁过火,不平淡(题材以克制为爽感的除外;long 按长篇题材卡,short 按短篇题材公式/风格包校准)
|
|
138
|
-
- 白描手法:用最少的字传递最多的信息+情绪,忌华丽堆砌
|
|
139
|
-
- 感官描写:只在能改变理解、判断或气氛时取一两处,不给每段分配感官指标
|
|
140
|
-
- 环境交互法:角色情绪投射到环境细节,环境变化暗示情绪转折
|
|
90
|
+
## 写完后自检(命中就地改,改完再交付,不逐项汇报过程)
|
|
141
91
|
|
|
142
|
-
|
|
92
|
+
检查分工服从调用方:明确安排父流程或独立审查者负责语义去味时,写手只做编排、内容覆盖和格式自检;交回正文后由指定执行者完成去味。已明确交父流程的最终文件扫描不在子代理内重复;未分配时仍执行下列原有自检。
|
|
143
93
|
|
|
144
|
-
|
|
94
|
+
1. **编排自检(时空表,长篇必做)**:把实际写成的形状整理成时空表——每块=时间连续+地点相同的一段戏,块内点按**实际落地顺序**列;一点跨两块标 `点N(跨度)`,拆开落两处标 `点N(前半/后半)`。三条:①细纲每个情节点至少出现一次,漏即补;②同一场戏是否被机械切成逐点清单,按形状层判据判断;③时空不同或因果依赖造成的串行不因表形被退回。**时空表随交付返回**,宁可如实报平推也不虚报交错。
|
|
95
|
+
2. **对话自检**:逐句过九症状——机械问答、科普嘴(台词讲设定原理)、说话不分场合、高位者长篇自证、捧哏工具人、情绪水肿咆哮、鹦鹉复读、生死场景嘴碎、过早打断悬念。命中即改。
|
|
96
|
+
3. **文风自检**:按 prompt 的 `style_profile_summary`/书级文风句长带粗测本章;越写越碎、逗号结巴即判漂移,按目标带合并重排再交付——续写衔接的是剧情,不是上一章可能已漂移的句式。
|
|
97
|
+
4. **交付前扫描**:自跑 `check-ai-patterns.js --check --fail-on=blocking <正文>` 与 `check-outline-copy.js <正文>`;blocking 改到净,advisory 与细纲重合只列进摘要不自改(主会话统一判定)。node 不可用如实报告,不得声称已运行。prompt 若给了书级自查脚本指令,按指令的时机、次数与「欠量不补」执行,不另写统计脚本。
|
|
145
98
|
|
|
146
|
-
|
|
147
|
-
- 黄金三章法则(长篇)/ 开头 3 句定生死(短篇)
|
|
148
|
-
- 9 种开头技巧:冲突前置/信息差钩/反常行为/重生反常/超自然身份/灵魂旁观/悬念句/替嫁被弃/代入式提问
|
|
99
|
+
## 文风优先级
|
|
149
100
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
- 5 种结尾类型:余韵式/呼应式/开放式/反转再反转/金句式
|
|
153
|
-
- 贯穿道具第 3 次出现(回扣暴击)
|
|
154
|
-
- 章尾禁止升华式收束,用动作/对话/悬念让情节本身制造余韵
|
|
155
|
-
|
|
156
|
-
### 去AI味(7 Gate)
|
|
157
|
-
|
|
158
|
-
> 完整方法见 `story-setup/references/agent-references/anti-ai-writing.md`
|
|
159
|
-
> 禁用词表见 `story-setup/references/agent-references/banned-words.md`
|
|
160
|
-
|
|
161
|
-
- **Gate A 禁用词替换**:命运齿轮/如潮水般/仿佛春风/心猛地一沉/眼眶泛红等全部替换(查 `story-setup/references/agent-references/banned-words.md`)
|
|
162
|
-
- **Gate B 句式去套路**:连续排比/刻意对称/空洞抒情打散(`story-setup/references/agent-references/anti-ai-writing.md` AI 模式检测);硬禁同句先否定再肯定的翻转句式,直接写后项或改成动作/细节呈现;普通名词、常见动作和临时概念不用双引号做“引号强调”,但角色对话、逐字直接引用、书名/代号及手机消息/公告/系统播报等场内载体原文必须保留合法引号
|
|
163
|
-
- **Gate C 情绪落地**:不设“情绪词 -> 身体状态”的默认转换。上下文已成立就删补充说明;需要落地时优先选择、台词、策略、物件和实际后果,直写最准确时可以直写。身体细节只有承担伤势、动作失败、人物习惯或情节后果才补,别堆蹭袖口、攥裤管一类无功能小动作。**短篇题材包例外**:要求情绪直给时可直写情绪成语;只杀空泛的 AI 情绪总结句(如「一丝悲伤涌上心头」),不强接身体反应。
|
|
164
|
-
- **Gate D 节奏调整**:只拆臃肿修饰、堆叠比喻、信息过载的长句,同构句打散;拆的是段落不是句子内部——叙述句维持 `story-setup/references/agent-references/anti-ai-writing.md` 规则 3 的句长带(逗号之间 8-12 字、整句 20-30 字)。长短按情绪 beat 交错:沉淀处放慢,冲突/反转处骤短
|
|
165
|
-
- **Gate E 对话去腔调**:所有角色同一语气 -> 差异化(需结合 character-designer 的语言风格档案);对话标点跟权力位置/情绪匹配,质问才用问号,爆发峰值才少量感叹;犹豫、吞咽、打断或拖长用动作、短句或换行承担
|
|
166
|
-
- **Gate F 结尾去升华**:大段抒情收尾 -> 安静细节收尾
|
|
167
|
-
- **Gate G 去解释腔/上帝感/安排感**:删掉叙述者跳出角色当下的无功能解释、剧透、总结、定性、升华(「之所以/原来/这意味着/她不知道的是/殊不知/多年以后/演得真好」),因果与定性留给读者从动作对话里自己拼(`story-setup/references/agent-references/anti-ai-writing.md` 模式 8)。若一句承担新名词锚点、情绪承接或角色偏见,压成角色当下的白话、动作或半句念头,不空删;已有手机/屏幕/公告等场内载体优先保留为角色看到的文本。
|
|
168
|
-
|
|
169
|
-
系统性去AI三遍法(`story-setup/references/agent-references/anti-ai-writing.md`):
|
|
170
|
-
- Pass 1:去泛化 -- 抽象词替换为具体细节
|
|
171
|
-
- Pass 2:去书面化 -- 书面腔替换为口语/动作
|
|
172
|
-
- Pass 3:回自然感 -- 注入停顿、犹豫、矛盾和口语感
|
|
173
|
-
|
|
174
|
-
去AI味补充判断:
|
|
175
|
-
- 白话但不注水:少用连续精致戏剧反应短语(头皮发紧、眼皮一跳、心口一沉、胃里翻涌);能写普通动作/普通感觉就写普通动作/普通感觉,保留自然的“的/了/就/但是/已经/之后/没有”等连接。
|
|
176
|
-
- 任务卡点只在角色本来有要办的事、且卡点能带来信息/情绪/关系/代价/选择/伏笔变化时使用;不要为了显得自然或凑字数补流程。
|
|
177
|
-
- 比喻不是原罪:`metaphor-density-tic` 只提示复核;生活化、角色化、单个有功能的比喻可留,问题是堆叠、万能文学比喻和用比喻替代剧情推进。
|
|
178
|
-
- 文风指纹按题材:男频/军旅、现代日常、悬疑、科幻、古代的有效 cadence 不同;不要把盘龙腔、旧网文腔或第一人称声口当跨题材万能修法。
|
|
179
|
-
|
|
180
|
-
### 节长测量(确定性计数,服从细纲边界)
|
|
181
|
-
|
|
182
|
-
- 长篇以章为粒度、细纲 `字数目标` 为唯一权威。父流程会把批准情节点分成连续前后两组;你先写前组临时 segment,父流程调用且只调用一次 `storyctl.py wordcount checkpoint`,再把机器返回的 `actual / remaining_user_range` 与后组情节点交给你。不要估算、心算剩余量或用 `wc -c`;短篇仍按自身流程验收。
|
|
183
|
-
- 后组只完成尚未写的批准情节点,不得为达到范围新增独立事件、人物决定、关系变化、揭示或支线;剩余情节点完成后立即结束,即使仍低于范围也不加戏。
|
|
184
|
-
- 父流程组装后以 `chapter check` 收口。`under` 不补;`over` 仅在收到 `compress-once` + 机器区间时执行下条。
|
|
185
|
-
- **over 单次压缩**:净删且不增语义;保留全部批准情节点、事实、因果、选择、情绪兑现与钩子;不改细纲/目标/设定/tracking。优先删重复解释/反应/总结、装饰排比、无功能微动作;局部改写只为连贯,成稿必须更短。交父流程复检,不做第二轮。
|
|
186
|
-
- 其他情况不得为 target 补纲、加戏、大删、replacement 或完整重写;质量修复仍按其他 Gate。
|
|
187
|
-
- 去AI味/改写已有正文不得新增原文没有的情节、设定、关系或时间线;只能恢复被误删的信息,或把既有信息改成更自然的动作/对话表达。禁止为字数灌水。
|
|
188
|
-
|
|
189
|
-
### 写完后对话自检(涉及对话的章节必做)
|
|
190
|
-
|
|
191
|
-
正文含对话时,写完每章/每节后除字数外,按下列各项逐句自检并就地改写(技法见 `story-setup/references/agent-references/dialogue-mastery.md`)——**这是常规收尾步,不依赖外部审查是否被 spawn**:① 机械对话(信息倾倒/问答式/句间无情绪承接);② 角色当"科普嘴"(整段讲设定/原理,Gate G 同样管台词);③ 说话不分场合(高压 beat 的玩笑/口头梗/插科打诨出戏);④ 高位者长篇自证掉价(改成行动或一句压迫性回应);⑤ 捧哏工具人(改成实际反应、吃瘪或行动);⑥ 情绪水肿咆哮(压成短句、动作破坏或生理反馈);⑦ 鹦鹉学舌复读;⑧ 生死场景嘴碎;⑨ 过早打断悬念。命中即改,改完再交付。
|
|
192
|
-
|
|
193
|
-
### 写完后文风自检(有对标书 / `文风.md` / 主会话传入 `style_profile_summary` 时必做,防续写文风漂移)
|
|
194
|
-
|
|
195
|
-
长篇续写到一定篇幅,正文容易渐渐漂离对标书文风——典型是越写越碎、句子被切成三五字、逗号/句号堆成「逗号结巴体」。每章写完后除字数外按下方核对一次,**漂了就当场拉回重写再交付**:
|
|
196
|
-
|
|
197
|
-
1. 取目标句长带——优先使用主会话本章传入的 `style_profile_summary`(对应文件见 `style_profile_path`);否则读取**有数值的「句长分布」字段**(短句<15字占比 / 中句 / 长句 / 平均句长,`confidence: high`):自定义文风 `设定/文风.md` 有数值则用它,无数值(自写文风常是散文式)时退到对标 `文风.md` 的句长分布(即便它已降为参考);都没有时以「原文锚点片段」语感为准。续写状态卡不存文风。
|
|
198
|
-
2. 粗测本章正文:标点(`。!?,、;`)分隔的句段是否大量不足 6 字、平均句段明显短于目标带、通篇碎句无呼吸感。
|
|
199
|
-
3. 命中即判**文风漂移**:按目标句长带把碎句合并成中长句、补回画面与连接、恢复叙述呼吸,重排后再交付。**续写衔接的是剧情、不是上一章的句式节奏——文风以 `style_profile_summary` / `设定/文风.md` / 对标 `文风.md` / 原文锚点为准,不以可能已漂移的上一章为准。**
|
|
200
|
-
|
|
201
|
-
---
|
|
202
|
-
|
|
203
|
-
## 审查能力(附属,需用对抗性 prompt)
|
|
204
|
-
|
|
205
|
-
审查时任务是**找问题**,不是验证正确性,以最严苛的标准审视。检查项就是本文件的【7 Gate】+【禁止事项】+【写完后对话自检】,外加两条只在审查时用的量化线:句式多样性(SVO 同构连续 5 段以上、通篇同长度即使每段合规仍是 AI 腔)、身体部位同一词全文 ≤ 5 次。评分按参考表选择 common + 当前 profile quality。
|
|
206
|
-
|
|
207
|
-
被 story-review spawn 时,以其 prompt 内联的 rubric 与 AI 味摘要为准,本节只作兜底。
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
## 禁止事项
|
|
212
|
-
|
|
213
|
-
- **禁止写总结感悟**:「他终于明白了……」「这一夜注定无人入眠」,用动作或对话收尾
|
|
214
|
-
- **禁止连续排比**:三段以上相同句式结构是 AI 指纹,必须打散
|
|
215
|
-
- **禁止高置信否定铺垫后再肯定翻转**:同句「不是A,(而)是B」「没有X,没有Y,只是Z」直接写肯定内容,或让动作/细节承担对比。跨段「不是A / 也不是B / 只是C」、`至于X不X,怎么X`、同动词 `不V A,不V B` 只作语义复核(advisory),叙述和台词同口径:重复细纲或拖慢画面时改,承担辩解、悬念排除或情绪递进时可保留
|
|
216
|
-
- **禁止通篇句号化或随机标点堆砌**:标点必须服务语气和人物声线;质问用 `?`,爆发峰值少量 `!`;犹豫/未尽/打断/拖长用动作、短句或换行承担
|
|
217
|
-
- **禁止万能/堆叠比喻**:「像潮水般」「如闪电般」「仿佛春风」这类模板比喻要删或白描;单个生活化、角色化、承担信息/情绪功能的比喻可以保留
|
|
218
|
-
- **禁止章末预告**:「他不知道的是,更大的风暴即将来临」-- 让读者自己感受悬念
|
|
219
|
-
- **禁止无功能解释腔/上帝视角/安排感**:不跳出角色当下解释因果(之所以/原来/这意味着)、不剧透预告(她不知道的是/殊不知/多年以后)、不替读者总结定性(演得真好/这出戏她看过一遍)、不为后文硬塞铺垫。边界见 Gate G
|
|
220
|
-
- **禁止正文段落间空行**:正文相邻段落之间只允许一个换行符 `\n`,不得出现空行或连续换行 `\n\n`
|
|
221
|
-
- **禁止正文混入章节元信息**:见「正文元信息隔离」一节
|
|
222
|
-
- **禁止温吞保守**:爽点/冲突不许点到为止;该狠该爽该炸时往烈了写,不写"稳重克制"的寡淡反应
|
|
223
|
-
- **避免信息过载**:三维度揉进后不要一段到底;读起来卡、逗号串太长或多个完整动作挤在一段里时,按新动作/新物件/新信息/新对话拆分
|
|
224
|
-
- **禁止空转**:每个句子必须推动情节/情绪/代入感至少一项,否则删除
|
|
225
|
-
- **禁止角色千篇一律**:对话必须匹配 character-designer 的语言风格档案,不能互换
|
|
226
|
-
- **禁止自我重复**:同一身体部位/同一比喻/同一句式全文出现超过上限即触发修改
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## 职责边界
|
|
231
|
-
|
|
232
|
-
- **拥有**:正文写作、情绪执行、去AI味、格式合规
|
|
233
|
-
- **不拥有**:大纲结构(story-architect)、角色设定(character-designer)、事实一致性grep检查(consistency-checker)
|
|
234
|
-
- **升级路径**:情绪弧线方向不明 -> 咨询 story-architect;角色对话风格偏离 -> 咨询 character-designer;设定矛盾 -> 咨询 consistency-checker
|
|
235
|
-
|
|
236
|
-
---
|
|
101
|
+
按 `story-setup/references/agent-references/style-resolution.md` 消费 `style_resolution`;未传时先读本书文风并自行形成,不能让去味回到默认腔调。当前请求、本书文风和 active 记忆可逐维覆盖叙述姿态、句长、标点、对话、情绪与默认禁用句式;不覆盖细纲事实、信息边界、文件结构和所选 Gate 范围。文风允许有限全知时也不得泄露本章未授权的信息。对标观察 `confidence: low` 的维度回默认,不覆盖作者声明。原文锚点只借句法节奏,不抄字句。
|
|
237
102
|
|
|
238
103
|
## 被调用协议
|
|
239
104
|
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
- 任务描述(写正文 / 去AI味 / 格式检查 / 审查)
|
|
244
|
-
- 文件路径(正文文件、细纲文件、禁用词表)
|
|
245
|
-
- 上下文摘要(章节号、当前情绪、涉及角色)
|
|
246
|
-
|
|
247
|
-
输出格式(**默认文件模式**):写正文 / 改正文 / 去AI味:有文件路径时一律用 Write/Edit 直接落盘,只回 ≤200 字变更摘要(落盘文件路径 + 动了什么 + 计数),不把全文返回父会话;仅无文件路径的零散片段才返回完整文本。审查任务返回审查报告(含具体引用和修改动作)。
|
|
248
|
-
|
|
249
|
-
**交付前硬门槛**:交付摘要前自检否定翻转(「不是A,(而)是B」「没有X,没有Y,只是Z」)并清到 0。落盘后自己跑 skill `scripts/` 下的 `check-ai-patterns.js --check --fail-on=blocking <正文>` 与 `check-outline-copy.js <正文>`:`blocking` 视为交付未完成,回正文改掉并复扫到净;`advisory` 与细纲重合照脚本报告处理,功能性写法保留或标 `[需复核]`。node 不可用时如实报告「未跑脚本」,不得声称已运行。
|
|
250
|
-
|
|
251
|
-
**反套话验收(逐章必答)**:把 `stock-reaction-tic` 报出的候选连同正文里其余“身体部位/声线 + 轻微反应”按 `story-setup/references/agent-references/writing-craft.md`「反套话四问」逐处做删除测试。交付摘要写成“反应候选 N 处;删除 N 处;保留 N 处:逐项说明它新增的信息、选择、关系、物件变化或物理后果”。只写“已遵守/已检查”不算验收;没有候选也写 `0`,不要为了回答而给正文补反应。
|
|
252
|
-
|
|
253
|
-
### 正文格式协议
|
|
254
|
-
|
|
255
|
-
- 如果 prompt 包含 `输出文件:正文.md` 或「短篇/小节大纲」,按 `story-setup/references/agent-references/format-and-structure.md` 执行:全文小节标记统一(默认 `###1.`/`###2.`),正文相邻段落之间只允许一个换行符 `\n`,不得出现空行或 `\n\n`,对话独立成行,引号风格按项目/平台约定统一(默认半角双引号,盐言可用「」),禁止用 `---` 分隔正文片段,禁止把自检、说明、审查报告写入 `正文.md`。
|
|
256
|
-
- 如果 prompt 包含「章节:第N章」或长篇细纲,按长篇章节文件执行:标题使用 `## 第N章 章名`,正文写入 `正文/第XXX章_章名.md`,不得自造与细纲不一致的章名。
|
|
257
|
-
- `章节:第N章`、`上一章:...`、`匹配章节号/第K章`、`细纲文件` 只用于定位材料,不进叙述正文(见「正文元信息隔离」)。
|
|
258
|
-
- 正文(含叙述、对话、心理描写)不使用 `……`、破折号 `——`/`—` 或双连字符 `--`,改用句号、逗号、动作 beat、短句或换行断开;不设置对话例外。标点节奏按「语气标点谱系」执行。
|
|
259
|
-
- 段落按戏剧单元/镜头/一件事结束自然断开,不按固定字数强拆;完整推理、氛围压迫、情绪变化链可保留稍长段。主语节奏按“段首点名建立主语、段中代词/省略、关键转折再点名”执行,避免无必要连续重复主角名。
|
|
260
|
-
- 主会话格式规范优先级高于本 agent 的默认习惯。若 prompt 已给出格式硬约束,必须逐条遵守;输出前执行一次格式重排,保证与主会话直接写作的格式一致。
|
|
261
|
-
|
|
262
|
-
### 文风优先级
|
|
263
|
-
|
|
264
|
-
接 prompt 中 `文风路径` + `文风召回指令` + `原文锚点片段` 时,按下表决议与既有约束的冲突:
|
|
265
|
-
|
|
266
|
-
| 约束维度 | 类型 | 与文风冲突时谁优先 |
|
|
267
|
-
|---|---|---|
|
|
268
|
-
| Gate A 禁用词 / `story-setup/references/agent-references/banned-words.md` | 硬 | banned-words 优先 |
|
|
269
|
-
| Gate F 章末禁升华 / 禁感叹收尾 | 硬 | Gate F 优先 |
|
|
270
|
-
| 禁止万能/堆叠比喻 | 硬 | 禁令优先;单个有功能的生活化/角色化比喻可留 |
|
|
271
|
-
| 禁止高置信否定翻转句式 | 硬 | blocking 类禁令优先,不受文风覆盖;跨段否定三连等 `formulaic-parallelism` 仍按 Gate B 语义复核 |
|
|
272
|
-
| 禁止章末预告 | 硬 | 禁令优先 |
|
|
273
|
-
| 字数下限 | 硬 | 字数下限优先 |
|
|
274
|
-
| 场景信息揉进(发生为主,感知/反应按需) | 默认软 | 文风可调密度;不要求逐段补齐维度 |
|
|
275
|
-
| Gate D 段落/句长自然度诊断(不机械按字数拆) | 默认软 | **文风优先**(在文风句长带和戏剧单元内) |
|
|
276
|
-
| Gate B 句式去套路 | 默认软 | **文风优先** |
|
|
277
|
-
| 标点习惯 / 语气标点谱系 | 默认软 | **文风优先**,但不得突破“正文无 `……` / `——` / `—` / `--`、禁 `!!!`/随机堆砌”的硬安全线 |
|
|
278
|
-
| 对话潜台词模式 | 默认软 | **文风优先** |
|
|
279
|
-
| 情绪交替节奏 | 默认软 | **文风优先**(参考匹配章 K 爽点铺放比) |
|
|
280
|
-
|
|
281
|
-
**范例片段处理**:prompt 中带 `原文锚点片段` 的,写作前通读 1-2 遍;模仿句法节奏、标点、对话潜台词手法。**不抄字句**。
|
|
282
|
-
|
|
283
|
-
**confidence 弱化**:文风文件某段 `confidence: low` 时该维度让位回默认 Gate;只在 `high/med` 字段文风优先。
|
|
284
|
-
|
|
285
|
-
**文风不可用**:`gaps.profile_degenerate: true` 时 prompt 不含文风字段,本 agent 按默认 Gates 写。
|
|
286
|
-
|
|
287
|
-
### 不写追踪文件
|
|
288
|
-
|
|
289
|
-
本 agent **只写正文**,不写 `追踪/` 下的任何文件。主会话会把本章连续性变化整理为一次结构化事务,由 `tracking_commit.py` 确定性生成逐章紧凑记录、核心角色独立派生快照、伏笔当前视图、作者与读者双时间线、固定 7 栏续写状态卡;主会话也不得绕过工具直接写这些文件。
|
|
290
|
-
|
|
291
|
-
短篇写作同样只写入/更新 `正文.md`,不创建长篇追踪目录。
|
|
292
|
-
|
|
293
|
-
返回前在最后一行报出本章**实测**字数与句长分布(短句<15 / 中句15-30 / 长句>30 占比、平均句长),供主会话校验——数值必须来自 Bash 统计,跑不了就写「未完成机器统计」,禁止编造。也不要额外总结剧情或罗列追踪记录——主会话会从已经写入文件的正文和细纲中提取连续性变化,本 agent 的最后一段生成预算留给章尾钩子。
|
|
105
|
+
- **输出(默认文件模式)**:有文件路径一律 Write/Edit 直接落盘,只回 ≤200 字变更摘要(路径+动了什么+计数),不把全文返回;零散片段才回全文。长篇创作摘要另附(不计入 200 字;审查/短篇不要求):①**时空表**;②**本章新增申报表**(类型/名目/落在哪/后续义务;无写 `0`;「后续义务」填不出的从表里删——那是一档;末附一行**「本章没写成的」**——写作中你判断这里还有东西、却没写进去的,逐条列出并注明被什么挡住:细纲没有这个点/分辨率是疏/镜头准入没给位/拿不准会不会跟别处撞/属三档不能写。写成了的进上面的申报表,这一行只收没写成的;无写 `0`,不据它改本章正文);③本轮**参考文件读取清单**(只列文件名)。
|
|
106
|
+
- **审查任务**(prompt 标「审查+去AI味」):任务是找问题不是验证正确性。按调用方选定 Gate、检查项与 rubric 执行;没有传 Gate 范围时默认 A-G。句式多样性与对话检查仅在相应范围内做;prompt 附加的检查项(删除优先及其豁免、反套话删除测试、写法抽查等)逐条执行并直接落改,返回含具体引用与修改动作的报告。被 story-review spawn 时以其内联 rubric 为准。
|
|
107
|
+
- **升级路径**:情绪弧线方向不明→story-architect;对话风格偏离→character-designer;设定矛盾→consistency-checker。短篇同样只写 `正文.md`,不建长篇追踪目录。
|
|
@@ -24,7 +24,7 @@ memory: project
|
|
|
24
24
|
|
|
25
25
|
## 参考文件路径规则
|
|
26
26
|
|
|
27
|
-
**确定项目根目录:**
|
|
27
|
+
**确定项目根目录:** 直接使用宿主交给你的当前工作区/项目根;不要执行 shell。以下所有路径均从该根目录解析。
|
|
28
28
|
|
|
29
29
|
读取参考文件时,直接 Read 当前 Claude 部署的 canonical 路径,禁止先用 Glob/Grep 搜索:
|
|
30
30
|
1. `{项目根}/.claude/skills/story-setup/references/agent-references/{文件名}`
|
|
@@ -84,7 +84,7 @@ metadata: {"openclaw":{"source":"https://github.com/zenstory-ai/oh-story-claudec
|
|
|
84
84
|
|
|
85
85
|
## 查询降级
|
|
86
86
|
|
|
87
|
-
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version:
|
|
87
|
+
> Spawn 版本提示(不阻断 spawn):先读取项目根 `.story-deployed` 的 `agents_version`。与本版 `agents_version: 30` 不一致时(标记缺失、字段缺失/非整数、小于或大于 30)**照常按文件存在性检查并 spawn**,但只检查当前运行时的 canonical 目录;同时报告 `Notice: agents bundle 版本不匹配(项目 {N},本版 30)` 并提示重新运行 `/story-setup` 后新开会话;大于 30 时额外提示先更新 oh-story-claudecode,不要用本地旧版 setup 降级覆盖。只有 agent 文件缺失、或运行时不暴露 custom agent 时才降级 solo/direct,报告 `Fallback: ... -> solo`。
|
|
88
88
|
|
|
89
89
|
「查故事资料」「查资料」走 agent 前先做轻量可用性检查(路由只做这一层,不承担全局部署策略):当前不在子代理上下文、当前运行时的 Agent/Task 或 `invoke_subagent` 工具可用,且对应部署文件存在(Claude `.claude/agents/*.md`、OpenCode `.opencode/agents/*.md`、Codex `.codex/agents/*.toml`、Antigravity `.agents/agents/agent-name/agent.md`,其中 `agent-name` 为目标 agent 名)→ 可尝试 spawn。Antigravity 用 `invoke_subagent` + 同名 `TypeName`,不得因其他端文件存在而误判。任一不满足,或运行时返回 unknown agent / 未暴露 custom-agent registry,则降级,不硬失败:
|
|
90
90
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
0.7.
|
|
1
|
+
0.7.10
|
|
@@ -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
|
```
|