@oh-story/dsh 0.1.9 → 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 +12 -12
- package/lib/client.js +204 -72
- package/lib/client.js.map +3 -3
- package/lib/drama/manifest.json +84 -74
- package/lib/drama/skills/short-drama/SKILL.md +2 -2
- package/lib/drama/skills/short-drama/scripts/creator_markdown_check.py +14 -0
- package/lib/drama/skills/short-drama-assets/references/character-and-look.md +10 -0
- package/lib/drama/skills/short-drama-assets/references/continuity-lock.md +6 -9
- package/lib/drama/skills/short-drama-assets/references/voice-direction.md +28 -0
- package/lib/drama/skills/short-drama-edit/SKILL.md +27 -29
- package/lib/drama/skills/short-drama-edit/assets//345/211/252/350/276/221/345/215/225.md +2 -2
- package/lib/drama/skills/short-drama-edit/references/cut-craft.md +24 -67
- package/lib/drama/skills/short-drama-edit/references/delivery-verify.md +27 -56
- package/lib/drama/skills/short-drama-edit/references/generated-footage.md +37 -79
- package/lib/drama/skills/short-drama-edit/references/sound-and-subtitles.md +39 -92
- package/lib/drama/skills/short-drama-edit/references/stage-contract.md +12 -16
- package/lib/drama/skills/short-drama-edit/scripts/edit_tool.py +126 -11
- package/lib/drama/skills/short-drama-edit/scripts/selftest.py +64 -0
- package/lib/drama/skills/short-drama-image-prompts/SKILL.md +2 -0
- package/lib/drama/skills/short-drama-image-prompts/references/common-recipe.md +11 -0
- package/lib/drama/skills/short-drama-produce/SKILL.md +5 -1
- package/lib/drama/skills/short-drama-produce/references/adapter-contract.md +14 -20
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-h3-video.md +8 -26
- package/lib/drama/skills/short-drama-produce/references/providers/minimax-speech.md +41 -0
- package/lib/drama/skills/short-drama-produce/scripts/provider_adapters.py +142 -1
- package/lib/drama/skills/short-drama-review/SKILL.md +2 -3
- package/lib/drama/skills/short-drama-review/references/production-quality-gates.md +6 -19
- package/lib/drama/skills/short-drama-review/references/rubric-visual-motion.md +9 -35
- package/lib/drama/skills/short-drama-storyboard/SKILL.md +10 -6
- package/lib/drama/skills/short-drama-storyboard/references/lighting-craft.md +39 -0
- package/lib/drama/skills/short-drama-storyboard/references/shot-craft.md +58 -21
- package/lib/drama/skills/short-drama-storyboard/references/stage-contract.md +1 -1
- package/lib/drama/skills/short-drama-video-prompts/SKILL.md +10 -9
- 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 +12 -38
- package/lib/drama/skills/short-drama-video-prompts/references/motion-recipe.md +4 -7
- package/lib/drama/skills/short-drama-video-prompts/references/performance-action-timing.md +8 -22
- package/lib/drama/skills/short-drama-video-prompts/references/production-prompt-grammar.md +6 -19
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.0.md +2 -3
- package/lib/drama/skills/short-drama-video-prompts/references/seedance-2.5.md +34 -9
- package/lib/drama/skills/short-drama-video-prompts/references/stage-contract.md +2 -2
- package/lib/drama/skills/short-drama-write/SKILL.md +2 -4
- package/lib/index.js +289 -91
- package/lib/index.js.map +4 -4
- package/lib/novel-to-game/README.md +299 -59
- package/lib/novel-to-game/README_ZH.md +299 -56
- package/lib/novel-to-game/VERSION +1 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/BUILD_BRIEF.md +3 -1
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/RUN.md +11 -3
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/new-guofeng.css +397 -8
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/css/style.css +0 -31
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/data.js +71 -73
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/engine.js +78 -89
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/main.js +37 -14
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/js/text.js +5 -5
- package/lib/novel-to-game/examples/jin-ping-mei/build/app/package.json +2 -1
- package/lib/novel-to-game/examples/jin-ping-mei/qa/README.md +11 -16
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verification.json +11 -11
- package/lib/novel-to-game/examples/jin-ping-mei/qa/verify_playable_model.mjs +23 -0
- package/lib/novel-to-game/manifest.json +77 -87
- package/lib/novel-to-game/skills/game-art-direction/SKILL.md +7 -12
- package/lib/novel-to-game/skills/game-art-direction/references/art-direction-method.md +27 -106
- package/lib/novel-to-game/skills/game-build/SKILL.md +13 -14
- package/lib/novel-to-game/skills/game-build/references/blender-asset-workflow.md +24 -0
- package/lib/novel-to-game/skills/game-build/references/build-brief-contract.md +45 -82
- package/lib/novel-to-game/skills/game-build/references/generative-media-pipeline.md +14 -45
- package/lib/novel-to-game/skills/game-build/references/playable-model-contract.md +30 -65
- package/lib/novel-to-game/skills/game-build/references/tts-production-contract.md +13 -27
- package/lib/novel-to-game/skills/game-concept/SKILL.md +13 -15
- package/lib/novel-to-game/skills/game-concept/references/concept-method.md +28 -75
- package/lib/novel-to-game/skills/game-qa/SKILL.md +6 -7
- package/lib/novel-to-game/skills/game-qa/references/test-design-method.md +9 -5
- package/lib/novel-to-game/skills/game-world-design/SKILL.md +12 -16
- package/lib/novel-to-game/skills/game-world-design/references/narrative-design-method.md +23 -72
- package/lib/novel-to-game/skills/game-world-design/references/numeric-design-method.md +14 -48
- package/lib/novel-to-game/skills/game-world-design/references/world-design-method.md +36 -103
- package/lib/novel-to-game/skills/novel-game-analyze/SKILL.md +4 -10
- package/lib/novel-to-game/skills/novel-game-analyze/references/gameability-protocol.md +4 -4
- package/lib/novel-to-game/skills/novel-to-game/SKILL.md +9 -21
- package/lib/novel-to-game/skills/novel-to-game/references/intake-method.md +5 -4
- package/lib/novel-to-game/skills/novel-to-game/references/pipeline-contract.md +5 -8
- package/lib/oh-story/manifest.json +230 -185
- package/lib/oh-story/roles/chapter-extractor.md +177 -237
- package/lib/oh-story/roles/consistency-checker.md +4 -4
- package/lib/oh-story/roles/narrative-writer.md +24 -25
- package/lib/oh-story/roles/story-architect.md +5 -5
- 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 +54 -24
- 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 +40 -53
- package/lib/oh-story/skills/story-deslop/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-deslop/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-deslop/references/deslop-gates.md +1 -1
- package/lib/oh-story/skills/story-deslop/scripts/author_memory_commit.py +934 -170
- package/lib/oh-story/skills/story-import/SKILL.md +77 -81
- package/lib/oh-story/skills/story-import/references/character-state-reverse.md +1 -1
- 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-transaction.md +8 -6
- package/lib/oh-story/skills/story-import/scripts/check-outline-contract.js +34 -16
- 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 +38 -29
- package/lib/oh-story/skills/story-long-write/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-long-write/references/artifact-protocols.md +25 -20
- package/lib/oh-story/skills/story-long-write/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-long-write/references/benchmark-recall.md +3 -3
- 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 +4 -0
- 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 +4 -13
- package/lib/oh-story/skills/story-long-write/references/outline-structure-theory.md +1 -1
- package/lib/oh-story/skills/story-long-write/references/project-files.md +9 -7
- 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 +1 -2
- package/lib/oh-story/skills/story-long-write/references/tracking-transaction.md +8 -6
- package/lib/oh-story/skills/story-long-write/references/workflow-chapter.md +86 -115
- package/lib/oh-story/skills/story-long-write/references/workflow-daily.md +55 -120
- 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 +66 -68
- package/lib/oh-story/skills/story-long-write/references/writer-prompt-fallback.md +3 -3
- package/lib/oh-story/skills/story-long-write/references/writing-craft.md +4 -12
- 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 +139 -18
- package/lib/oh-story/skills/story-long-write/scripts/check-outline-contract.js +34 -16
- package/lib/oh-story/skills/story-long-write/scripts/outline_view.py +5 -3
- package/lib/oh-story/skills/story-long-write/scripts/storyctl.py +58 -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 +68 -85
- package/lib/oh-story/skills/story-review/references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-review/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-review/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-review/references/review-quality.md +4 -10
- package/lib/oh-story/skills/story-review/references/tracking-transaction.md +8 -6
- package/lib/oh-story/skills/story-review/scripts/author_memory_commit.py +934 -170
- 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 +50 -42
- package/lib/oh-story/skills/story-setup/references/agent-references/anti-ai-writing.md +11 -10
- package/lib/oh-story/skills/story-setup/references/agent-references/deslop-gates.md +1 -1
- package/lib/oh-story/skills/story-setup/references/agent-references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-setup/references/agent-references/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/writing-craft.md +4 -12
- package/lib/oh-story/skills/story-setup/references/diagnostics.md +1 -1
- package/lib/oh-story/skills/story-short-analyze/SKILL.md +22 -3
- package/lib/oh-story/skills/story-short-analyze/references/material-decomposition.md +5 -1
- package/lib/oh-story/skills/story-short-scan/SKILL.md +5 -1
- package/lib/oh-story/skills/story-short-write/SKILL.md +6 -147
- package/lib/oh-story/skills/story-short-write/references/author-memory.md +54 -24
- package/lib/oh-story/skills/story-short-write/references/dialogue-mastery.md +4 -0
- package/lib/oh-story/skills/story-short-write/references/reference-index.md +2 -0
- package/lib/oh-story/skills/story-short-write/references/workflow-design.md +3 -2
- 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/scripts/author_memory_commit.py +934 -170
- package/lib/types/client/drama-production-view.d.ts.map +1 -1
- package/lib/types/client/file-activity.d.ts +19 -1
- package/lib/types/client/file-activity.d.ts.map +1 -1
- package/lib/types/client/index.d.ts.map +1 -1
- package/lib/types/client/production-prompts.d.ts +7 -0
- package/lib/types/client/production-prompts.d.ts.map +1 -1
- package/lib/types/client/production-runtime.d.ts +16 -0
- package/lib/types/client/production-runtime.d.ts.map +1 -1
- package/lib/types/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/package.json +45 -45
- package/lib/novel-to-game/skills/game-world-design/references/dialogue-design-method.md +0 -58
- package/lib/novel-to-game/skills/game-world-design/references/game-writing-craft.md +0 -53
- package/lib/novel-to-game/skills/novel-to-game/references/intake-benchmark-reference.md +0 -38
- package/lib/oh-story/skills/story-long-write/references/state-tracking.md +0 -108
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
> 本文件的句长、视角、标点、修辞与禁用词是默认写法,服从 [style-resolution.md](style-resolution.md) 的逐维裁决。所选 Gate 检查表达效果,不因作者有意选择某写法就机械删除;获准命中按书级 `.deslop-whitelist` 处理。
|
|
4
4
|
|
|
5
|
-
<!-- 同名副本×
|
|
5
|
+
<!-- 同名副本×4 字节同步,改动后跑 scripts/check-shared-files.sh -->
|
|
6
6
|
|
|
7
|
-
> 识别AI
|
|
7
|
+
> 识别AI写作指纹、改写顺序、禁用词约束、改写范例库。用于正文写作后做去AI味自检和改写时查阅。
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
| 写完正文后做去AI自检 | 核心规则 -> AI写作模式检测 -> 质量维度检查 |
|
|
16
16
|
| 改写某段AI味重的文字 | 改写范例库 + 冲突对话改写范例 |
|
|
17
17
|
| 检查是否用了禁用词 | 禁用词与句式速查 -> AI高频词(模式1) |
|
|
18
|
-
| 系统性去除整章AI味 |
|
|
18
|
+
| 系统性去除整章AI味 | 改写顺序 |
|
|
19
19
|
| 检查章尾是否有总结升华 | AI写作指纹 -> 章末总结体 |
|
|
20
20
|
| 判断情绪描写是否告知式 | Show Don't Tell原则 + 去AI味补充技法 |
|
|
21
21
|
| 快速扫描全章质量 | 快速自检口诀 + 质量维度检查 |
|
|
@@ -372,9 +372,11 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
372
372
|
|
|
373
373
|
---
|
|
374
374
|
|
|
375
|
-
##
|
|
375
|
+
## 改写顺序(只排所选 Gate 的先后)
|
|
376
376
|
|
|
377
|
-
|
|
377
|
+
下面三步只决定所选 Gate 内问题的处理先后,不另起一轮全篇去味;某一步没有对应的所选 Gate 就跳过。
|
|
378
|
+
|
|
379
|
+
### 第一步:去泛化(Strip Generic)
|
|
378
380
|
- 抽象情绪总结句 -> 按规则 2 判断:删重复说明,保留准确直写,需要时用原文已有信息落地
|
|
379
381
|
- 假深度句 -> 删
|
|
380
382
|
- 意义膨胀 -> 缩小到具体影响
|
|
@@ -384,9 +386,9 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
384
386
|
- 过度使用"于是""然而""此刻" -> 删掉一半
|
|
385
387
|
- 所有角色说话一样"高级" -> 区分语气
|
|
386
388
|
|
|
387
|
-
|
|
389
|
+
**原则**:能删就删,不能删就用具体细节替换。
|
|
388
390
|
|
|
389
|
-
###
|
|
391
|
+
### 第二步:去书面化(Cut Professional Diction)
|
|
390
392
|
- 分析性用词("机制""结构""逻辑""体系"出现在小说中)-> 换成日常表达
|
|
391
393
|
- 抽象名词滥用 -> 直接说事
|
|
392
394
|
- 体制内用语("进一步""深入""推进""落实")-> 删
|
|
@@ -394,7 +396,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
394
396
|
|
|
395
397
|
**例外**:保留专业感的场景(历史题材正式用语、文学向刻意密度、喜剧夸张修辞)。
|
|
396
398
|
|
|
397
|
-
###
|
|
399
|
+
### 第三步:回自然感(Restore Natural Presence)
|
|
398
400
|
- 具体的感官细节(气味、温度、触感)
|
|
399
401
|
- 角色说话方式的区分(不同人不同语气)
|
|
400
402
|
- 句首变化:连续 3+ 句用同一主语或同一词性开头时换开法(动作、场景、对话引入)
|
|
@@ -407,7 +409,7 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
407
409
|
|
|
408
410
|
### 执行范围
|
|
409
411
|
|
|
410
|
-
调用方指定 Gate 时,只处理选定 Gate
|
|
412
|
+
调用方指定 Gate 时,只处理选定 Gate;改写顺序只排先后,不重新分级或扩大范围。未指定范围时,按实际问题选择适用检查。
|
|
411
413
|
|
|
412
414
|
### 自检清单
|
|
413
415
|
- 对话自然度检查:对话是否使用口语化表达,是否避免了书面语/正式腔调
|
|
@@ -551,5 +553,4 @@ AI 喜欢把事情凑成三个以显"完整"。-> 砍到只剩最有力的一条
|
|
|
551
553
|
- [ ] **detector advisory 逐条复核**:`micro-action-tic` / `stock-reaction-tic` / `abstract-summary-tic` / `cliche-density-tic` / `metaphor-density-tic` / `reasoning-chain-tic` / `system-notice-formality-tic` / `overcompressed-prose-tic` / `low-connective-density-tic` / `action-list-tic` 命中时按脚本给出的修法处理:先通读判断是不是机械复现,确属再改;功能性写法保留或标 `[需复核]`,不做同义词轮换、不机械注水
|
|
552
554
|
- [ ] **不做硬指标投机**:不为反检测强制每句换行、50-60 字一行、对话 50%-60%、英文点省略号,或把 `地/得` 全改成 `的`
|
|
553
555
|
- [ ] **任务卡点服从原文边界**:抽象总结若改成角色办事被卡住,必须来自原文已有任务/证据/手续/物件缺口;不新增原文没有的事件链
|
|
554
|
-
- [ ] **去AI三遍法执行**:轻度只做Pass1,中度做Pass1+2,重度完整三遍
|
|
555
556
|
- [ ] **对话自然度测试**:无书面语痕迹 = 通过
|
|
@@ -211,12 +211,12 @@
|
|
|
211
211
|
|
|
212
212
|
## 剧情单元卡(1–3 万字为可调经验值;存于卷纲内;不另建单独文件)
|
|
213
213
|
|
|
214
|
-
> 剧情单元 = 卷纲里的一级结构单元(见 outline-structure-theory.md
|
|
214
|
+
> 剧情单元 = 卷纲里的一级结构单元(见 outline-structure-theory.md「对标节奏迁移」),与下方「对标结构坐标」是同一单元的不同视角,不重复编排。单元长度按本书题材、既有兑现节奏与对标调整,不是硬门槛。规划各关键节点时按 `reader-contract-and-progression.md`「契约四问」检查;无需主角亲自执行每个动作。高潮/兑现后可留短暂低压,以小而可见的收益/奖励承接下一轮压力。引入新地图/机构/能力/敌人/谜团时按第 4 问检查,不得借新鲜感逃避旧承诺。
|
|
215
215
|
|
|
216
|
-
### 剧情单元 {
|
|
217
|
-
- 单元ID:{L
|
|
216
|
+
### 剧情单元 L{卷号}-{序号}
|
|
217
|
+
- 单元ID:L{卷号}-{序号}(字母 L 开头,如 L1-03;不能写成 1-03)
|
|
218
218
|
- 章节范围:{第A-B章}
|
|
219
|
-
- 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}
|
|
219
|
+
- 对标剧情参照:{{书名}《剧情标题》(类型/桥段标签;借什么:结构分布/情节点索引/兑现方式);可列 2-3 条,无对标写「无」;**允许填「自创:{一句话理由}」**——单元内容形态不强制映射对标,自创单元照常过排纲自查与批末结构复核}
|
|
220
220
|
- 单元节拍/章功能分配:{建立期待→尝试→加压/转向→决定性行动→兑现→余波;标对应章范围,可按题材删改;建卡时可按「对标剧情参照」剧情单元提炼的共性节拍填写,见 outline-structure-theory.md「按剧情批出细纲」}
|
|
221
221
|
- 单元承诺:{本单元向读者建立的情绪命题/期待,以及要偿还的期待债}
|
|
222
222
|
- 单元情绪引擎:{核心情绪命题→承载对象/情绪缺口→受阻或缺口维持原因→本轮触发→主角不可替代的点火/转化动作→意义变化或可见兑现→题材/契约兑现;承载对象可为人物/关系/目标/规则/场景;不适用环节可写无/即时,但须保持因果闭合;机制按题材选,不强制误解/物件/反转}
|
|
@@ -228,19 +228,16 @@
|
|
|
228
228
|
- 兑现方式与归属:{核心兑现如何发生,收益归谁、如何可见}
|
|
229
229
|
- 本单元主推线/战果:{沿用卷契约划分——主推线1条承担高潮,其余线给战果,一战多得允许}
|
|
230
230
|
- 本单元在跑的线:{按 L 编号列,主线之外至少 1 条;每条写「L0X 从哪一步推到哪一步」,不重述线本身。本单元不动的线不列}
|
|
231
|
-
- 终局底牌边界:{
|
|
231
|
+
- 终局底牌边界:{本单元不得动用的未解锁宿敌/真相/身份/金手指上限;碰到就按契约四问第 3 问改纲}
|
|
232
232
|
- 禁止提前释放:{本单元不能提前解决/揭露/升级的内容}
|
|
233
233
|
- 下一单元因果钩子:{自然推入下一单元的问题、代价、线索或新目标}
|
|
234
234
|
- 风险等级:{契约安全 / 需补强 / 契约破坏;需补强时写清补强方式}
|
|
235
235
|
|
|
236
|
-
> **段位契约(新建卷纲必须照此写;取段器按此解析)**:每个 `##`/`###`/`####` 标题的**下一行**写一行 `> 作用域:X`,X
|
|
237
|
-
> `卷级常任`(全卷有效,取段器恒定带出)/`单元级 {单元ID}
|
|
238
|
-
>
|
|
236
|
+
> **段位契约(新建卷纲必须照此写;取段器按此解析)**:每个 `##`/`###`/`####` 标题的**下一行**写一行 `> 作用域:X`,X 取二值之一——
|
|
237
|
+
> `卷级常任`(全卷有效,取段器恒定带出)/`单元级 {单元ID}`(只在该单元的闭包里出现)。
|
|
238
|
+
> 三条纪律:**①全卷常任规则不许写在单元块里**——单元块只写本单元落点+一行指针,规则本文放 `## 全卷常任裁定`(checker 会按「全卷/常任/全程生效」字样报 E4)。
|
|
239
239
|
> **②被推翻的内容不留旧文**——改成 `⊘ 已退役 → 见 {何处}` 起头的行,取段器默认不输出,读到的一定是当前有效值。
|
|
240
|
-
>
|
|
241
|
-
> **④批次底稿不是写作期输入**——写正文走 `--stage write`,底稿一概不给。底稿里凡有**写作期约束力**的条目(跨章祈使:全程不许/往后任何章/此后不再…),
|
|
242
|
-
> **建纲当场就要下沉**到该单元的单元级段(排纲纪律/时间轴/账链)或直接写进细纲;`--check` 的 W1 告警专盯这类句子,逐条确认下沉过再放行。
|
|
243
|
-
> 底稿仅用于排纲期(批末交作者裁定、下一批供给自查的输入)。
|
|
240
|
+
> **③排纲底稿不进卷纲**——供给自查、建纲追加写在 `大纲/排纲底稿_{单元ID}.md`(模板见文末),底稿里凡有写作期约束力的条目(跨章祈使:全程不许/往后任何章/此后不再…),**建纲当场就写进**该单元的单元级段或细纲。老卷纲里的 `批次底稿 {单元ID}|状态:在用|已退役` 段仍可读(排纲时 `--stage outline` 取出,`--check` 的 W1 告警盯其中的跨章祈使),新卷纲不再写。
|
|
244
241
|
> 落盘后跑 `outline_view.py --check --strict {卷纲路径}`,问题数归零;读取方式见 SKILL.md「卷纲不整读(取段器)」。
|
|
245
242
|
|
|
246
243
|
## 全卷常任裁定
|
|
@@ -248,12 +245,6 @@
|
|
|
248
245
|
|
|
249
246
|
{对本卷每个剧情单元生效的规则本文写在这里,单元卡与排纲纪律只写落点、不复读规则。编号列出,单元侧按「常任 N +本单元落点」引用}
|
|
250
247
|
|
|
251
|
-
#### 供给自查(本单元出细纲前产出,见 workflow-setup.md「按剧情批出细纲」步骤 3)
|
|
252
|
-
{六行答完落此处:对手供给 / 角色供给 / 能力与金手指供给 / 刻度供给 / 场景与底图供给 / 故事线供给。B 级发明各列一行「发明了什么+落在哪个设定文件」;C 级提案列候选+影响面待作者裁定;无缺口写「无缺口」。批末 `check-outline-contract.js --supply` 验证本小节存在}
|
|
253
|
-
|
|
254
|
-
#### 建纲追加(本批建完后回填,见 workflow-setup.md「按剧情批出细纲」步骤 5)
|
|
255
|
-
{逐章落笔时才发现的缺口,一条一行,**不与上面六行混写**(批前预见与当场发现分列)。格式:`第 N 章排到哪一步发现缺什么 / A・B・C / 落在哪个设定文件或提案编号`。一条也没有写「无追加」。下一批做供给自查时以本小节为固定输入}
|
|
256
|
-
|
|
257
248
|
## 核心矛盾
|
|
258
249
|
{一句话:本卷要解决什么问题或达到什么目标}
|
|
259
250
|
|
|
@@ -320,11 +311,11 @@
|
|
|
320
311
|
|
|
321
312
|
## 大纲/细纲_第XXX章.md
|
|
322
313
|
|
|
323
|
-
细纲是正文写作的章节蓝图,而不是只列事件和钩子的清单。**模板唯一权威副本**见 [Phase 3:大纲搭建](workflow-setup.md#phase-3大纲搭建)
|
|
314
|
+
细纲是正文写作的章节蓝图,而不是只列事件和钩子的清单。**模板唯一权威副本**见 [Phase 3:大纲搭建](workflow-setup.md#phase-3大纲搭建) 「排纲自查与细纲」里的细纲模板(含九个必填字段、四个小节与不含逐点字数的四列情节点表;阶段位置、结构公式等见模板末尾「可选」块);本文件不再保留模板副本。新建、补建、回填都按权威模板补齐,未知字段写 `[待补充]`,不为补齐字段杜撰副线或人物关系。
|
|
324
315
|
|
|
325
316
|
`目标情绪` 与 `主角目标/关键选择` 要写实际内容,不能留 `[待补充]`:隔离实验里只补这两个字段就能复现补齐全部字段的正文收益,补满其余字段与只补这两个不可区分。其余字段未知时仍按上文写 `[待补充]`。
|
|
326
317
|
|
|
327
|
-
落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}`
|
|
318
|
+
落盘后运行 `node scripts/check-outline-contract.js --json --project {书目录} --chapter {N}` 做结构验收:它只判字段、四个小节、五段式、情节点表结构(默认四列 `# / 情节点 / 功能标签 / 执行边界(禁+放)`;需要时可在功能标签后加「分辨率」列)和字数目标口径是否在场,不判内容好坏。exit 1 时只按 `repair_scope` 补报告点名的字段并复验,最多两轮;仍失败就报告检查 ID 停下,不改其他章。exit 2、脚本缺失或 node 不可用时如实报告验收未完成,不得声称细纲已合规。本检查只在新建/补建/回填时执行;既有项目的旧细纲不因此阻断写正文。
|
|
328
319
|
|
|
329
320
|
---
|
|
330
321
|
|
|
@@ -359,3 +350,17 @@
|
|
|
359
350
|
### `追踪/上下文.md`
|
|
360
351
|
|
|
361
352
|
续写状态卡不超过 12288 字节,固定 7 栏:`当前位置 / 长期约束 / 核心角色状态 / 活跃伏笔 / 近三章速记 / 下一章承诺 / 连贯性风险`。它是当前语义检查点之一;不放文风、质量计数、普通待办、索引统计和长期概要。
|
|
353
|
+
|
|
354
|
+
## 排纲底稿模板(`大纲/排纲底稿_{单元ID}.md`)
|
|
355
|
+
|
|
356
|
+
排纲期的工作底稿,每个剧情单元一份,只在排纲/补纲时读,写正文不读。
|
|
357
|
+
|
|
358
|
+
```markdown
|
|
359
|
+
# {单元ID} 排纲底稿
|
|
360
|
+
|
|
361
|
+
## 供给自查
|
|
362
|
+
{本单元出细纲前产出,见 workflow-setup.md「排纲自查与细纲」步骤 3。六行:对手供给 / 角色供给 / 能力与金手指供给 / 刻度供给 / 场景与底图供给 / 故事线供给。「写了要报」的发明各列一行「发明了什么+落在哪个设定文件」;「先问作者」的提案列候选+影响面待作者裁定;无缺口写「无缺口」。批末 `check-outline-contract.js --supply {卷纲路径} {单元ID}` 验证本小节存在}
|
|
363
|
+
|
|
364
|
+
## 建纲追加
|
|
365
|
+
{本批建完后回填,见步骤 5。逐章落笔时才发现的缺口,一条一行,不与上面六行混写。格式:`第 N 章排到哪一步发现缺什么 / 级别 / 落在哪个设定文件或提案编号`。一条也没有写「无追加」。下一批供给自查以本小节为固定输入}
|
|
366
|
+
```
|
|
@@ -19,23 +19,30 @@
|
|
|
19
19
|
|
|
20
20
|
## 文件与所有权
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
作者记忆分两级存放,记忆随书走:
|
|
23
23
|
|
|
24
24
|
```text
|
|
25
|
-
{工作区}/.story/作者记忆/
|
|
25
|
+
{工作区}/.story/作者记忆/ # 项目级 store:global / genre / workflow 条目,编号 AP
|
|
26
26
|
├── _author-memory-state.json # 唯一结构化权威
|
|
27
27
|
├── 作者画像.md # 仅 active,供作者查看与管理
|
|
28
28
|
├── 待确认.md # pending / conflict,不参与约束
|
|
29
29
|
└── 变更记录.md # 最近 100 次、最新在前的事务记录
|
|
30
|
+
{书}/.story/作者记忆/ # 书级 store:只存这本书的 book 条目,编号 BP,同样四个文件
|
|
30
31
|
```
|
|
31
32
|
|
|
32
|
-
三个 Markdown 文件都从 state 确定性生成,禁止手改;完整历史保留在 state,变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图,普通写作 agent 不整份注入,而是调用 `query`
|
|
33
|
+
三个 Markdown 文件都从 state 确定性生成,禁止手改;完整历史保留在 state,变更记录只展示最近 100 次。`作者画像.md` 是人类管理视图,普通写作 agent 不整份注入,而是调用 `query` 取得本次相关的紧凑上下文。作者记忆不存在时,普通写作、审稿和去味任务直接继续,不自动初始化空目录;首次 `record` 会随事务创建。
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
**定位规则**:`--workspace` 必须显式传给脚本,指创作工作区根——承载多本书、`.active-book`、`长篇/`、`短篇/` 或 `拆文库/` 的那一层;已有记忆时,是项目级 state(不带 `book` 字段)所在的最近祖先。书目录自己的 `.story/作者记忆/` 是书级 store,`长篇/`、`短篇/` 下的书目录永远不当 `--workspace`;不要把用户主目录当默认工作区。`--book-root` 是当前书的项目目录(`.active-book` 指向、或含 `设定/`、`正文/` 的那一层,如 `{工作区}/长篇/{书名}/`);书名默认取书级 state 记录的名字,首次建立时取目录名,`--book` 可覆盖。
|
|
36
|
+
|
|
37
|
+
**单书布局**:书根就是工作区(`--book-root` 与 `--workspace` 同一目录)时,书级 store 改住 `{工作区}/.story/作者记忆/书级/`,与项目级各自一份 state;首次建立的书名优先取项目级存量本书条目里唯一的书名,再取目录名。旧版曾把书级 state 写在项目级位置,此后项目级读写都报 `state.book`;带 `--book-root {工作区}` 运行任一命令(含 `query`)会先把它原样移进 `书级/`,不改内容。这个目录其实是某个工作区里的一本书时(上一层叫 `长篇/` 或 `短篇/`,或某个祖先有 `.active-book` 或项目级 state),工具直接报错、不动任何文件,按报错改传 `--workspace`。
|
|
38
|
+
|
|
39
|
+
**路由规则**:ID 前缀就是 store——`decide` / `forget` 看 `item_id`(`AP` 进项目级,`BP` 进书级),`remember` / `replace` 看 `scope.level`(`book` 进书级,其余进项目级)。书级操作必须传 `--book-root`,没传直接报错,不会退而写进项目级。一份 `commit` 事务只能写一个 store;`replace` 与 `conflicts_with` 不能跨 store——本书例外按优先级覆盖全局规则,不算冲突,直接 `remember` 为 book 条目即可;要把全局规则改成本书规则,拆成 `forget` + `remember` 两个事件。
|
|
40
|
+
|
|
41
|
+
**存量迁移,不做双读**:升级前写进项目级 store 的 book 条目不再参与查询与预算估算,也不再接受新的 book 写入;它们仍在 `作者画像.md` 里可见、可 `decide` / `forget`。对每本书运行一次 `migrate --book-root {书目录}` 即可整批搬回来:断言、证据、确认次数、重要度原样保留,换成 `BP` 编号,原 `AP` 条目标 `superseded` 并注明去向;与全局条目的冲突关系在迁移后不再成立,这类候选退回 `pending`。书级每个源条目一笔事务,重跑只补没做完的一半。「整理作者记忆」看到项目级画像里还有「本书:」条目时,把迁移列为默认提案项。
|
|
35
42
|
|
|
36
43
|
## 什么时候读取
|
|
37
44
|
|
|
38
|
-
长篇、短篇、去 AI 味开始前,如果 state 已存在,用 `query` 按本书、题材、流程和类型筛选 active
|
|
45
|
+
长篇、短篇、去 AI 味开始前,如果 state 已存在,用 `query` 按本书、题材、流程和类型筛选 active 条目:结果是项目级 store 与 `--book-root` 所指书级 store 的合并;不传 `--book-root` 就拿不到任何本书条目。查询输出固定不超过 2048 字节。`--kind` 必传——不传直接报错,不再默认返回全部类型;按任务直接选择 kind:
|
|
39
46
|
|
|
40
47
|
| 任务 | query kinds | 注入位置 |
|
|
41
48
|
|---|---|---|
|
|
@@ -50,10 +57,19 @@
|
|
|
50
57
|
|
|
51
58
|
## 可靠性与负荷边界
|
|
52
59
|
|
|
53
|
-
- 明确“记住 / 确认 / 替换 / 忘掉”的请求走单事件 `record`,不要求 agent 手工读取修订号或拼多操作事务。成功响应会给出 `Author Memory Receipt: rN · APxxx
|
|
60
|
+
- 明确“记住 / 确认 / 替换 / 忘掉”的请求走单事件 `record`,不要求 agent 手工读取修订号或拼多操作事务。成功响应会给出 `Author Memory Receipt: rN · APxxx`;没有回执就不得声称“已经记住”。怎么告诉作者见「回执怎么告诉作者」。
|
|
54
61
|
- 普通创作只做一次本地 `query`,没有 state 时返回空结果且不创建文件;有记忆时也只返回相关 active 条目,硬上限 2048 字节。完整画像、证据、候选和 journal 不进入正文 prompt。
|
|
62
|
+
- **写入不因注入预算失败**:`record` / `commit` 照常成功、给回执;工具按上表四类任务组合估算最坏查询情形(全局条目+各 scope 维度最重的单一切片,切片按大小写无关归并、轻重按写作时真正读到的字段算,与真实查询同一把尺),装不进 2048 字节的组合在返回的 `warnings` 里点名将被略过的条目及其断言首句。收到提醒就用白话转告作者并建议「整理作者记忆」。写入落盘后另一级 store 读不出来(书目录不存在、`--book` 与书级记录不符等)也照常给回执,`warnings` 注明本次提醒没算上它——已有回执就是已记住,不要换 `event_id` 重试。写书级条目时「本书+全局」按实际条目精确计算;写项目级条目时只看得到项目级 store,顺手传 `--book-root` 就把当前这本书也算进提醒。查询按 **重要度 → 本书例外 → 最近更新** 排序装填(同一范围的条目必在同一 store,「最近」按该 store 的修订号比,不跨 store 比较),先丢的恒是重要度较低的条目——`importance` 决定超编时谁留在 prompt 里,写入时按偏好的实际分量填,不要一律 `high`。
|
|
63
|
+
- 注入预算之外还有一道硬上限:`作者画像.md` 超过 12288 字节时写入会直接失败并要求先整理。active 条目攒到几十上百条才会碰到(远在注入预算之后),碰到就走「整理作者记忆」;`forget` 这类减量操作在满编时照常可用。
|
|
55
64
|
- 查询项是低优先级倾向,不是逐条打卡清单。自然吸收即可,不复述画像、不刻意提高词面命中率,也不得为命中偏好牺牲正文连贯、节奏、字数或本书既定笔调。
|
|
56
|
-
- 不安装会记录全部用户消息的 prompt hook
|
|
65
|
+
- 不安装会记录全部用户消息的 prompt hook,也不在作者没开口时观察他:不从反复修改、成稿或操作轨迹推断偏好写入。只记作者明确表达的偏好;自然语言是否属于长期习惯仍需 agent 判断,拿不准就只执行不记录。需要确定写入时,用户可明确说“记住:……”,并以回执验收。
|
|
66
|
+
|
|
67
|
+
## 回执怎么告诉作者
|
|
68
|
+
|
|
69
|
+
回复就两行纯文本,不加代码块或引用格式:第一行用一句人话说记住了什么、管哪本书或哪类场合,如「记住了:《{书名}》的对话一律用「」,以后写这本书都照这个来;想改随时说。」;第二行是机器回执作凭证,如「技术备注:Author Memory Receipt: r1 · BP001」。
|
|
70
|
+
|
|
71
|
+
- 确认、替换、忘掉同理:「好,这条生效了:……」「换成了:……,原来的「……」不再用」「忘掉了:……」。只进待确认时说「这条先记在待确认里,你说"确认"才生效」;有冲突时用原话说明跟哪条旧习惯冲突。
|
|
72
|
+
- `warnings` / `omitted_ids` 不原样贴:说「你的习惯攒得有点多,写正文时这几条可能顾不上:「……」」,并建议说「整理作者记忆」。不提字节、prompt、kind、scope;编号只能跟着原话出现。
|
|
57
73
|
|
|
58
74
|
## 捕获判定
|
|
59
75
|
|
|
@@ -61,13 +77,19 @@
|
|
|
61
77
|
|---|---|
|
|
62
78
|
| “以后都这样”“我一直习惯……”等直接、稳定、范围清楚的原话 | `active`,`source=explicit_user` |
|
|
63
79
|
| 用户明确接受助手提出的长期做法 | `active`,`source=accepted_suggestion` |
|
|
64
|
-
|
|
|
65
|
-
|
|
|
80
|
+
| 作者原话像长期偏好但范围或稳定性含糊 | `pending`,取当前最窄合理范围;待确认只来自作者自己的话 |
|
|
81
|
+
| 同类修改反复出现、从成稿或操作轨迹看出的模式 | 不记录、不推断;作者没开口的偏好不进记忆 |
|
|
66
82
|
| “这一章别……”“这次给我……”等一次性要求 | 只执行,不记录 |
|
|
67
83
|
| 角色、时间线、伏笔、世界观、当前剧情走向 | 写项目设定/追踪,不写作者记忆 |
|
|
68
84
|
| 助手自己生成的文字、默认模板、工具告警、rubric 结论 | 不自我学习 |
|
|
69
85
|
|
|
70
|
-
保留用户的否定词、限定词和适用范围,`quote` 写原话,`assertion`
|
|
86
|
+
保留用户的否定词、限定词和适用范围,`quote` 写原话,`assertion` 只做不改变语义的紧凑归纳,**新建条目限一句话(≤120 字节,约 40 个字)**;需要解释的背景写进 `reason`(不进 prompt 载荷),不另开字段。
|
|
87
|
+
|
|
88
|
+
**一条偏好就是一条记录,例外和限定不许拆出去单列。** 「以后少用破折号,对话里也别用,除非表示打断」是一条带例外的偏好,必须整条写成一个 `assertion`(「破折号少用、对话里也不用,只在表示打断时保留」)。超编时条目是逐条被丢的,把「除非表示打断」拆成独立一条,就可能只丢掉例外、把作者明说过的限定变成送进正文的绝对禁令。只有原话确实塞了**几条互不依赖**的偏好(如「多用短句」+「章末留钩子」)才拆成几条。整句写不进 120 字节时压缩措辞,不要切掉限定词。
|
|
89
|
+
|
|
90
|
+
升级前写下的长断言不受新上限约束:原样重申它会**强化**原条目(确认次数 +1),不会因超长被拒;只有真正新建条目才校验 120 字节。
|
|
91
|
+
|
|
92
|
+
范围规则:
|
|
71
93
|
|
|
72
94
|
- “本书 / 这个角色 / 这次连载” → `book`;
|
|
73
95
|
- “都市文 / 这类题材” → `genre`;
|
|
@@ -75,33 +97,41 @@
|
|
|
75
97
|
- “以后 / 一贯 / 我习惯”且无更窄限定 → `global`;
|
|
76
98
|
- 范围含糊但可能稳定 → 取当前最窄合理范围并置 `pending`。
|
|
77
99
|
|
|
78
|
-
类型可选:`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high
|
|
100
|
+
类型可选:`prose_style`、`story_design`、`workflow`、`delivery`、`interaction`。置信度与重要度均为 `low | medium | high`。`source` 只接受 `explicit_user`、`accepted_suggestion`、`manual`;工具会拒绝推断类来源,存量 state 里的旧来源条目照常可读、可确认、可退役。
|
|
79
101
|
|
|
80
102
|
## 冲突、撤回与强化
|
|
81
103
|
|
|
82
104
|
- 同一类型、范围、归纳文本再次出现时,脚本强化原条目,累加证据和确认次数,不重复建条目。
|
|
83
|
-
-
|
|
84
|
-
- 同一范围的规则改版用 `replace`,启用新条目并将旧条目标成 `superseded`。本书例外用 `remember` 新建 book
|
|
105
|
+
- 新偏好与同一 store 里的 active 条目矛盾时,先以 `conflict` 记候选,并在 `conflicts_with` 列出冲突 ID;当前任务仍按本轮明确要求执行。本书例外与全局规则不算冲突。
|
|
106
|
+
- 同一范围的规则改版用 `replace`,启用新条目并将旧条目标成 `superseded`。本书例外用 `remember` 新建 book 条目(传 `--book-root`),保留 global 习惯;只有作者明确撤销或改变旧规则范围时才跨范围替换,跨 store 时拆成 `forget` + `remember`。
|
|
85
107
|
- pending 可以用 `decide=activate|reject`;冲突候选不能绕过旧规则直接 activate。
|
|
86
108
|
- 作者说“忘掉 / 这不再是我的习惯”时用 `forget`,保留历史证据但不再加载。
|
|
87
109
|
- active 条目的语义不可原地偷改;语义变化必须 replace,历史才可审计。
|
|
88
110
|
|
|
111
|
+
## 整理作者记忆
|
|
112
|
+
|
|
113
|
+
作者说「整理作者记忆」,或回执 `warnings`/查询 `omitted_ids` 提示超编时:读项目级与当前书的 `作者画像.md`(每条都标了范围、重要度、把握和确认次数,重要度就是超编时的去留依据),提出合并同义条(`replace` 多合一)、退役过时条(`forget`)、给错标成 `high` 的条目下调重要度、把超长断言压缩成一句话的提案;项目级画像里还有「本书:」条目时,「对该书运行 `migrate --book-root`」列为默认提案项。清单用原话逐条列给作者确认(编号只放括号里),确认后按 store 各汇成一份 `commit` 事务提交(一份事务只写一个 store)。合并时保住每条的否定词、限定词和适用范围——合不动就退役其中一条,不要靠删限定词把两条凑成一条。整理只由作者发起或确认,不自动执行。
|
|
114
|
+
|
|
89
115
|
## 运行工具
|
|
90
116
|
|
|
91
117
|
先依次尝试 `python3`、`python`、`py -3` 找到 Python 3,再从当前 skill 根运行本地副本:
|
|
92
118
|
|
|
93
119
|
```text
|
|
94
|
-
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init
|
|
95
|
-
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record
|
|
96
|
-
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query
|
|
97
|
-
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit
|
|
98
|
-
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py
|
|
120
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py init --workspace {工作区} [--book-root {书目录}]
|
|
121
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py record --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事件.json
|
|
122
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py query --workspace {工作区} --book-root {书目录} --kind {类型}(必传,可重复) [--genre {题材}] [--workflow {流程}]
|
|
123
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py commit --workspace {工作区} [--book-root {书目录}] --input {工作区}/.story/work/作者记忆-事务.json
|
|
124
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py migrate --workspace {工作区} --book-root {书目录}
|
|
125
|
+
{PYTHON} {当前 skill 根}/scripts/author_memory_commit.py check --workspace {工作区} [--book-root {书目录}]
|
|
99
126
|
```
|
|
100
127
|
|
|
101
|
-
- `
|
|
102
|
-
|
|
103
|
-
- `
|
|
104
|
-
- `
|
|
128
|
+
所有子命令都可加 `--book {书名}` 覆盖书名;正在写某本书时一律带上 `--book-root`,书级操作没有它会直接报错。事件与事务 JSON 写在 `{工作区}/.story/work/` 下(不写系统 `/tmp`),成功后删掉;`book` 条目的 `scope.value` 填书名(书级 store 已记着书名就用它,首次取书目录名)。
|
|
129
|
+
|
|
130
|
+
- `record`:常用单事件入口,按路由规则落到项目级或书级 store,自动读取该 store 的当前修订、首次自动初始化;`event_id` 相同且内容相同会幂等返回原回执,内容不同会失败。原样重申已有条目的 `assertion` 会强化该条(不受 120 字节新建上限约束)。返回里的 `store` / `book` 说明写到了哪一级,`warnings` 是预算提醒,按「回执怎么告诉作者」用白话转告。
|
|
131
|
+
- `query`:只读相关 active 条目,项目级与书级合并返回;`--kind` 必传、可重复,两级 state 都不存在时返回空结果且零写入。输出按 重要度 → 本书例外 → 最近更新 排序装填;装不下的条目跳过而不中断(一条长的不挡后面的短条),漏下的 ID 按同一优先级报进 `omitted_ids`(最多列 20 条,`omitted` 是真实总数)。**`omitted_ids` 非空=记忆超编**——转告作者并建议「整理作者记忆」,它不是「没有更多了」,也不得改读完整画像规避预算。
|
|
132
|
+
- `commit`:高级批量入口;一份事务只写一个 store,先在内存完成 schema、引用、容量和所有视图校验,最后原子替换 state。事务文件在成功前必须保留;过期修订会在任何写入前失败。
|
|
133
|
+
- `migrate`:把项目级 store 里某本书的存量 book 条目整批搬进 `--book-root` 的书级 store,幂等,中途失败直接重跑;返回 `migrated`(源→新编号),没有存量时为空。
|
|
134
|
+
- `check`:从 state 重建并逐字核验所有派生视图;传 `--book-root` 时两级一起核验。
|
|
105
135
|
|
|
106
136
|
## 事务格式
|
|
107
137
|
|
|
@@ -130,7 +160,7 @@
|
|
|
130
160
|
}
|
|
131
161
|
```
|
|
132
162
|
|
|
133
|
-
把文件交给 `record
|
|
163
|
+
把文件交给 `record`(book 范围的事件同时传 `--book-root`)。待确认项的 `status` 用 `pending`;冲突候选用 `conflict` 并填写同一 store 里的 active ID。确认或拒绝候选时,把下列对象作为新事件的 `operation`(`BP` 编号的事件传 `--book-root`):
|
|
134
164
|
|
|
135
165
|
```json
|
|
136
166
|
{"action":"decide","item_id":"AP002","decision":"activate","quote":"对,这就是我的长期习惯。","reason":"作者明确确认"}
|
|
@@ -162,4 +192,4 @@
|
|
|
162
192
|
{"action":"forget","item_id":"AP003","quote":"忘掉这个偏好。","reason":"作者明确撤回"}
|
|
163
193
|
```
|
|
164
194
|
|
|
165
|
-
需要把多个动作绑定成一次原子提交时才用高级 `commit`:顶层传 `schema_version`、唯一 `transaction_id`、当前 `expected_state_revision` 和含 1–32 项的 `operations
|
|
195
|
+
需要把多个动作绑定成一次原子提交时才用高级 `commit`:顶层传 `schema_version`、唯一 `transaction_id`、当前 `expected_state_revision` 和含 1–32 项的 `operations`。操作按数组顺序应用,任一步失败则整份事务零写入。成功后删除临时输入文件;显式记忆请求按「回执怎么告诉作者」转告。
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
本文承接 workflow-chapter.md 步骤 3;路径优先级及缺失修复见 [project-files.md](project-files.md)。
|
|
4
4
|
|
|
5
5
|
- **模块召回、题材卡与文风召回**:
|
|
6
|
-
- **成熟项目短路径(召回降档)**:`custom_style=true
|
|
6
|
+
- **成熟项目短路径(召回降档)**:`custom_style=true`、题材卡有内容,且细纲目标情绪与单元卡情绪/节拍均有效时,**跳过 (a)(b)(e)(f)**;情绪和节奏取细纲/单元卡,(c)(d) 照常执行,(g) 输出缩减集。组装脚本判定并写入核对报告;条件不足走全量召回。降档不检查对标情绪/节奏主产物,也不触发其 fail-fast;代价是没有匹配章扩写技法与原文锚点。目标情绪敷衍时不得降档。
|
|
7
7
|
- ① 本章目标情绪词?② 借鉴哪个参考文件的哪个技法?③ 用在哪些段落?答不出 → 先回读参考再动笔
|
|
8
8
|
- (a) **情绪模块召回**:按「对标书路径查找」规则读 `{对标书路径}/剧情/情绪模块.md`,选出 1 个与本章目标情绪最贴近的 `selected_emotion_module`(读者需求、触发器、戏剧单元、可替换要素、反抄袭提醒)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
|
|
9
9
|
- (b) **节奏召回**:读 `{对标书路径}/剧情/节奏.md`,选出 1 条 `rhythm_reference`(关键信息 → 扩写技法 → 情绪触动点 → 爆发/冷却)。缺失时设置 `missing_primary_contract: true`,返回明确 `repair_action` 后停止准备
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
- (d) **文风召回**:先直接读 `设定/文风.md`(不经 explorer):有可执行表达要求即置 `custom_style=true`,不设最低字数;空白、纯标题或待补充不算。全文按 `style-resolution.md` 作权威风格基,`设定/_文风摘要.md` 仅作索引,写作与去味都传全文路径及同一 `style_resolution`。有自定义文风时对标只补未声明的维度;否则按「对标书路径查找」规则读 `{对标书路径}/文风.md`(路径优先 `{项目}/对标/{书名}/`,回退 `拆文库/{书名}/`);多本对标书时从 `设定/题材定位.md` 读 `主对标书` 字段。**未进入自定义文风模式且**文风文件不存在 → **fail-fast 报错**:「对标书 X 缺少 文风.md。请用 `/story-long-analyze` 跑 Stage 6 生成文风,再 `/story-import` 同步。」不 inline 生成(自定义文风模式则不 fail-fast;情绪 / 节奏轴 `missing_primary_contract` 仍独立阻塞)
|
|
12
12
|
- (e) **匹配章节挑选**:从 `{对标书路径}/章节/*_摘要.md` grep `基调:(紧张|轻松|悲伤|热血|爽|甜|温馨|恐怖|压抑|其他)`(全角冒号),按本章目标情绪挑章 K——多章同基调时选择规则:先看爽点类型是否接近,再看情节点数量/原文章节估算字数是否接近本章目标字数,最后取章节号最小者;必读 `{对标书路径}/章节/第K章_摘要.md`,若同章存在 `第K章_深度拆解.md` 则加读,否则回退黄金三章深度拆解/文风文件里的可借鉴技巧,不因非黄金三章缺少深度拆解而失败
|
|
13
13
|
- (f) **结构化模块召回**:从对标的结构化子目录(角色/剧情/设定)中按本章情节检索相关模块;若与 `剧情/情绪模块.md` / `剧情/节奏.md` 冲突,权威文件优先,记录 `conflict`
|
|
14
|
-
- (g) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + genre_prose_card + 文风召回指令 + 原文锚点片段引用",作为 narrative-writer 的输入。**多对标书时**参 `references/cross-book-recall.md
|
|
14
|
+
- (g) 输出"主对标召回摘要 + 副对标召回摘要 + selected_emotion_module + rhythm_reference + genre_prose_card + 文风召回指令 + 原文锚点片段引用",作为 narrative-writer 的输入。**多对标书时**参 `references/cross-book-recall.md`:主对标提供文风、原文锚点及可用的情绪/节奏值;副对标/参考对标按阶段预算提供结构化摘要,不限制登记书目,不读取副书 `文风.md` / 原文,超过预算时裁条目不裁书目记录。
|
|
15
15
|
- **快捷路径**:项目已部署 story-explorer agent 时,可一次性召回文风/模块材料。
|
|
16
16
|
- 按本文件顶部规则确认 story-explorer 已部署。
|
|
17
17
|
- 查询类型:`benchmark_style_load`;传入项目目录、章节号、目标基调/字数和爽点类型。
|
|
18
18
|
- 需要返回:`style_profile_path`、`style_profile_summary`、`selected_emotion_module`、`rhythm_reference`、来源路径、匹配章节、锚点片段、`gaps`。
|
|
19
|
-
- `gaps
|
|
19
|
+
- `gaps` 分流:`no_benchmark` → `custom_style` 为真则用 `设定/文风.md` 写、情绪/节奏取本书内部材料,否则标「无对标参考」;`missing_primary_contract` → 按 `repair_action` 修复(重跑拆文或导入)并停止生成,自定义文风不豁免;`benchmark_book_missing` → 停止核对登记名,不换书;`conflict` / `module_rhythm_conflict` → 意图里说明冲突并按情绪模块/节奏的权威执行;profile_missing → custom_style 为真则用本书文风继续,否则停止;`profile_degenerate` → 有本书文风就用,没有回默认;`tone_match_failed` → 只用整书文风。其余字段原样进 writer prompt,`gaps` 原值保留在写前准备记录里。
|
|
20
20
|
- 主会话另行直接读 `设定/文风.md`:含实质内容时作为本书风格基准;但不豁免情绪/节奏缺失。
|
|
@@ -60,3 +60,29 @@ description: 多对标跨书召回
|
|
|
60
60
|
| `character_archetypes` | 反差人物 | `character-basics.md` / `character-design-methods.md` + 当前题材卡 |
|
|
61
61
|
| `reusable_structures` | 可复用手法 | `outline-methods.md` / `plot-core-methods.md`,按结构功能选择 |
|
|
62
62
|
| `reversal_type` | 反转类型(7 枚举) | `long-reversal.md` 对应骨架 |
|
|
63
|
+
|
|
64
|
+
## 公共灵感标签召回
|
|
65
|
+
|
|
66
|
+
**本节独立于上文「≥2 本才启用」的多对标触发条件:只要工作区存在 `灵感库/` 即可用,单对标或无对标项目亦然。**
|
|
67
|
+
|
|
68
|
+
`灵感库/` 与副对标召回是两条独立通道:灵感库只提供**去专名的跨书机制抽象**(带标签的 active CBA 卡),副对标提供本书级结构化摘要。灵感库不存在时本节整体跳过,只记 `gaps.inspiration_library_missing`,不阻塞。
|
|
69
|
+
|
|
70
|
+
每次设定、卷纲或细纲任务先生成需求标签(逐章正文写前召回不走本通道,灵感经细纲进入正文)。轴以 `灵感库/灵感索引.csv` 的标签轴契约为准;**值必须取自 `灵感库/标签词表.md` 的受控值**——按下表定位本书语境后,映射到词表中最贴近的值再组查询,不自造、不改写同义词(query 靠精确匹配,自造词等于查不到);词表文件缺失时以 query 返回的 `axis_inventory` 现存值为准:
|
|
71
|
+
|
|
72
|
+
| 轴 | 取值来源 |
|
|
73
|
+
|---|---|
|
|
74
|
+
| 题材 | `设定/题材定位.md` |
|
|
75
|
+
| 读者需求 | 本书读者契约与当前期待债 |
|
|
76
|
+
| 情绪 | 本阶段/本章目标情绪 |
|
|
77
|
+
| 关系动作 | 当前角色关系要发生的动作,可空 |
|
|
78
|
+
| 剧情功能 | 开篇立约、升级兑现、关系翻转、信息揭示、高潮结算等 |
|
|
79
|
+
| 节奏位置 | 黄金三章、前期、中段、卷末、高潮前/后,可空 |
|
|
80
|
+
| 适用阶段 | 设定、卷纲或细纲 |
|
|
81
|
+
| 风险 | 当前要避开的同质化、失衡、铺垫不足、角色降智、兑现拖延等 |
|
|
82
|
+
|
|
83
|
+
消费规则:
|
|
84
|
+
|
|
85
|
+
1. 只筛 `layer=跨书灵感聚合` 且 `status=active`,按标签打分取 Top 3(设定/卷纲阶段最多 8)。
|
|
86
|
+
2. 只读命中的 CBA 全卡——卡自包含机制链、可变参数、成立条件、反例与风险;**不沿来源 ID 回查 EM/NM**,来源仅供审计溯源。
|
|
87
|
+
3. 输出 `selected_inspiration_aggregates`:CBA ID、命中标签、机制链、可变参数、成立条件、风险、来源数量。它只影响设计选择,不覆盖细纲事实、项目设定或自定义文风;CBA 不作文风样本,也不触发任何原文读取。
|
|
88
|
+
4. 零命中先看 query 返回的 `unmatched_tags` 与 `axis_inventory`,纠词重查一次;仍零命中才记 `gaps.inspiration_tag_no_match`,不阻塞。同一 CBA 在一本书内最多派生 2 个候选变化。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
## 长篇单元情绪引擎(通用正向框架)
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
每个剧情单元先设计能制造情绪与兑现的**正向发动机**,再按契约四问检查:
|
|
10
10
|
|
|
11
11
|
> **核心情绪命题 → 承载对象/情绪缺口 → 受阻或缺口维持原因 → 本轮触发 → 主角不可替代的点火/转化动作 → 意义变化或可见兑现 → 题材/契约兑现**
|
|
12
12
|
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
### 正向发动机与负向护栏的顺序
|
|
16
16
|
|
|
17
17
|
1. **先设计正向发动机**:明确读者会为什么投入,本轮如何让这份投入改变意义并得到可见兑现。
|
|
18
|
-
2.
|
|
18
|
+
2. **后用主角代理权/成长负向护栏诊断**:按 `reader-contract-and-progression.md`「契约四问」排查契约/推进失败。“安全”只代表没踩红线,不代表好看;护栏不能代替情绪发动机。
|
|
19
19
|
|
|
20
20
|
### 合理性五问
|
|
21
21
|
|
|
@@ -158,21 +158,12 @@
|
|
|
158
158
|
| AI 腔重 | de_ai | 替换禁用词、改写句式 |
|
|
159
159
|
| 小问题多 | polish | 打磨语言细节 |
|
|
160
160
|
|
|
161
|
-
###
|
|
161
|
+
### 读者契约与终局储备
|
|
162
162
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
- [ ] 读者契约:本章/本卷是否兑现开篇承诺,还是把核心卖点交给机构、配角或偶然性?风险标记:契约安全 / 需补强 / 契约破坏。
|
|
166
|
-
- [ ] 主角代理权:按因果权 + 结算权审查,而非按出场时长;用“关键节点四问”核对决定、不可替代选择、后果与核心结算。配角可执行局部动作,但不能无声夺走期待所有权。
|
|
167
|
-
- [ ] 期待债:承诺是否被偿还、延期并支付利息,还是被解释/流程/设定吞掉?
|
|
168
|
-
- [ ] 终局储备:本单元是否动用了本阶段还不该解锁的终局底牌(宿敌/真相/身份/金手指上限)?是否让某条升级线逼近天花板、后面没台阶接?两问皆否即放行——单章一战多得(多线齐涨)是好设计,不算超速。
|
|
169
|
-
- [ ] 兑现归属:期待所有权是否按承诺结算;自愿让渡只有在“长期净收益为负 + 控制/因果权下降”同时出现时亮红灯,战略性让步的更大控制/未来收益/权力/信息交换是否可见?
|
|
170
|
-
- [ ] 节奏续接:高潮/兑现后是否允许短暂低压和小而可见的收益/奖励,而非机械立即加危机?新元素是否支付换书债、没有逃避旧承诺?
|
|
171
|
-
- [ ] 题材特定风险:履约爽文/能力幻想中,主角是否反复以愚蠢或可避免的无能制造灾难并由他人收拾,损害因果权与结算信任?
|
|
172
|
-
- [ ] 反向审查:若删除“安全解释”,情绪是否更强?若保留风险情节,是否带来更强期待、代价或爽点?
|
|
173
|
-
|
|
174
|
-
- [ ] 综合线:契约、主角代理权、期待债、终局储备是否互相支撑,而不是只做到“无毒”。
|
|
163
|
+
按 `reader-contract-and-progression.md`「契约四问」审,标 契约安全 / 需补强 / 契约破坏;答不上来的那问再读对应小节。四问都过只代表无毒,再补两问看好不好看:
|
|
175
164
|
|
|
165
|
+
- [ ] 删掉某处“安全解释”,情绪会不会更强?保留风险情节是否带来更强期待、代价或爽点?
|
|
166
|
+
- [ ] 高潮或兑现后是否允许短暂低压和小而可见的收益,而非机械立即加危机?
|
|
176
167
|
|
|
177
168
|
### 单元情绪因果可证伪检查
|
|
178
169
|
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
|
|
280
280
|
建卡时做一次**剧情批召回**:读剧情单元卡「对标剧情参照」指向的剧情单元(≤3 个文件)的「结构分布」「情节点索引」,回查该书 `剧情/节奏.md` 同章节区间的爽点循环 / 触动点与被引情绪模块卡,提炼 5-8 拍共性节拍写入剧情单元卡「单元节拍/章功能分配」,单元情绪引擎字段对照主对标 `剧情/情绪模块.md` 的可复现模块校准。若主产物存在但被引的单个情绪模块卡未命中,只跳过该卡;`剧情/情绪模块.md` 或 `剧情/节奏.md` 文件缺失仍按上方 fail-fast 规则先修复。换素材与修硬伤纪律同上方迁移步骤 3/4——保留情绪链和功能位,对象、场景、事件全换,对标弱处理就地修正。结论固化进剧情单元卡后,逐章细纲只消费剧情单元卡,不重读剧情单元。
|
|
281
281
|
|
|
282
|
-
**「只消费剧情单元卡」管的是不重读对标,不冻结逐章建纲。**
|
|
282
|
+
**「只消费剧情单元卡」管的是不重读对标,不冻结逐章建纲。** 排纲当场发现的缺口(某拍无对手、数值没验过、地点无底图、角色既定规矩挡场之类)按新增物三级处置(直接写/写了要报:先落档再引用/先问作者:挂起提案,见 workflow-setup.md「缺什么按新增物三级处置」),处置完记一行,批末汇进排纲底稿的「**建纲追加**」小节(见 workflow-setup.md「排纲自查与细纲」步骤 5);下一批供给自查以该小节为固定输入(按当场缺口类别加问批前盘点项)。
|
|
283
283
|
|
|
284
284
|
日更中途发现卷纲缺少「对标剧情参照」等当前协议必需字段时,先补齐卷纲再建细纲;锁定卷纲不得自动回写,必须停在补纲边界。节拍分析过程不写进追踪文件,只有最终影响未来连续性的约束或下一章承诺才进入本章追踪事务。
|
|
285
285
|
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#### 项目文件结构
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
需落盘时在用户指定目录按下表组织;只讨论不建工程,仅规划只创建本次产物所需目录,不为凑齐目录树生成正文或追踪:
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
{书名}/
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
│ └── 时间线/{作者真相.md,读者已知.md}
|
|
58
58
|
├── 参考资料/
|
|
59
59
|
│ └── {topic}.md # story-researcher 输出的研究资料
|
|
60
|
+
├── .story/work/第NNN章/ ← 本章临时文件(分组 segment、prompt 留档、事务 JSON),提交后自动删除
|
|
60
61
|
```
|
|
61
62
|
|
|
62
63
|
**产物映射表**(创建模板详见 [references/artifact-protocols.md](artifact-protocols.md)):
|
|
@@ -70,12 +71,12 @@
|
|
|
70
71
|
| 设定/文风.md(自定义文风·优先级最高) | 本书 | 用户自写(Claude Code 可代写);导入/拆解不覆盖 | Phase 4 每章写作前:含实质内容则取代对标文风作权威风格基 |
|
|
71
72
|
| 对标/{书名}/文风.md | 对标书 | analyze Stage 6 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 4 每章写作前(文风召回;有自定义文风时降为参考/句长兜底) |
|
|
72
73
|
| 大纲/卷纲_第X卷.md | 卷 | Phase 3 | **一律走取段器 `outline_view.py --unit/--contract/--toc`,不整读**(见「路径与术语约定」);段位契约与 checker 见 artifact-protocols.md |
|
|
73
|
-
| 追踪/_tracking-state.json | 全书 |
|
|
74
|
-
| 追踪/伏笔.md | 全书当前视图 |
|
|
75
|
-
| 追踪/时间线/{作者真相.md,读者已知.md} | 全书当前事实/认知派生视图 |
|
|
74
|
+
| 追踪/_tracking-state.json | 全书 | 首次写正文前初始化(规划阶段不建) | 唯一结构化权威,不进正文 prompt;每章运行 `tracking_commit.py check` 读取章号和修订号 |
|
|
75
|
+
| 追踪/伏笔.md | 全书当前视图 | 与 state 同时初始化 | 续写状态卡缺项时按 ID 定点查询;每 ID 只一行 |
|
|
76
|
+
| 追踪/时间线/{作者真相.md,读者已知.md} | 全书当前事实/认知派生视图 | 与 state 同时初始化 | 按作者真相或读者认知的实际问题选择视图 |
|
|
76
77
|
| 对标/{书名}/拆文报告.md | 对标书 | 用户手动+analyze | Phase 2 核心设定、Phase 3 大纲、Phase 4 写作 |
|
|
77
78
|
| 追踪/逐章记录/第NNN章.md | 章 | Phase 4 每章事务 | 日更不读;目标 ≤1536 字节、硬上限 3072 字节,按需查询历史原因 |
|
|
78
|
-
| 追踪/上下文.md(续写状态卡,≤12KB) | 全书当前状态 |
|
|
79
|
+
| 追踪/上下文.md(续写状态卡,≤12KB) | 全书当前状态 | 与 state 同时初始化 | 日更每章整份读;由事务工具整份重建,固定 7 栏 |
|
|
79
80
|
| 参考资料/{topic}.md | 按需 | Phase 4(story-researcher 输出) | Phase 4 后续章节写作时复用 |
|
|
80
81
|
| 追踪/角色状态/{角色名}.md | 核心角色 | 首次进入正文或导入初始化 | 久别角色按名读取一个小快照;目标 ≤4096 字节、硬上限 8192 字节;静态人设仍读 `设定/角色/` |
|
|
81
82
|
| 对标/{书名}/角色/{角色名}.md | 对标书 | analyze 输出 | Phase 4 模块召回(角色参考) |
|
|
@@ -84,10 +85,10 @@
|
|
|
84
85
|
| 对标/{书名}/剧情/节奏.md | 对标书 | analyze Stage 3 输出 → story-import 显式绑定或本 skill 首次引用时同步 | Phase 3 大纲、Phase 4 每章写作前(关键信息推进、情绪触动点、爆发节奏参考) |
|
|
85
86
|
| 对标/{书名}/设定/*.md | 对标书 | analyze 输出 | Phase 2 设定参考、Phase 4 世界观约束 |
|
|
86
87
|
|
|
87
|
-
|
|
88
|
+
**缺失文件处理**:先按进度、报告总章数与逐章覆盖识别资料代际;当前契约缺项时显式修复,不拼装降级结果:
|
|
88
89
|
1. **角色状态文件缺失** → 当前协议项目先运行 `tracking_commit.py check`,再重跑产生该状态的完整事务;已有正文但 `_tracking-state.json` 缺失时重新 `/story-import`。不得从前文临时推断后直接手写快照。
|
|
89
90
|
2. **角色、普通剧情单元或设定等非主产物子目录缺失** → 按「对标书路径查找」查找项目视图与根目录数据源,仍缺失则跳过该可选模块。本条不适用于 `剧情/情绪模块.md` 和 `剧情/节奏.md`。
|
|
90
|
-
3.
|
|
91
|
+
3. **当前契约的 `剧情/情绪模块.md` / `剧情/节奏.md` 缺失** → 写前准备必须停下,设置 `missing_primary_contract: true` 并给出 `repair_action`:重跑 `/story-long-analyze` Stage 3+ 或重新 `/story-import`,不得用摘要文件假装已召回权威模块。
|
|
91
92
|
4. **有对标书但 `文风.md` 缺失** → 若有 `设定/文风.md`(含实质内容)走自定义文风模式继续;否则日更文风召回 fail-fast,提示先运行 `/story-long-analyze` Stage 6 并 `/story-import` 同步。**完全无对标项目**则跳过文风召回、不阻塞(有 `设定/文风.md` 时用它写作)。情绪/节奏轴(`missing_primary_contract`)独立,自定义文风模式不豁免其 fail-fast。
|
|
92
93
|
5. **伏笔/时间线文件缺失** → 视为当前语义检查点损坏,停止写正文;先运行 `tracking_commit.py check`,再用事务修复。卷纲/大纲中的计划不能代替已发生事实的当前检查点。
|
|
93
94
|
6. **`设定/题材正文提示卡.md` 缺失** → 不阻塞;写前从 `设定/题材定位.md` 精确匹配 `references/genre-prose-cards.md` 索引,并只读取 `references/genre-prose-cards/` 中对应题材单卡(高/中/低置信照原卡标注),无命中再用 `references/style-genre-modules.md` 通用流派模块即时生成短 `genre_prose_card`。只有 `设定/题材定位.md` 也缺失时,退回细纲和目标平台做低置信题材卡,并在意图确认写明。
|
|
@@ -98,6 +99,7 @@
|
|
|
98
99
|
3. `文风.md` 只管句长、标点、对话潜台词、原文锚点等风格;它不能覆盖情绪模块或节奏意图。**自定义文风 `设定/文风.md`(用户自写、不被导入/拆解覆盖)优先级高于对标 `文风.md`**:含实质内容时作权威风格基,对标文风降为参考与句长数值兜底;句长、停顿标点、视角与修辞按 `references/style-resolution.md` 裁决;段间空行等文件结构仍按交付协议,不把通用表达禁令称为硬安全线。
|
|
99
100
|
4. `章节/第K章_摘要.md` 是具体章节证据,用来校验和补足权威索引,不反向覆盖 `情绪模块.md` / `节奏.md`。
|
|
100
101
|
5. `拆文报告.md`、`剧情/故事线.md` 是投影/摘要;若与 `剧情/情绪模块.md` 或 `剧情/节奏.md` 冲突,写作以两个权威文件为准,并在写前准备 `gaps.conflict` 记录冲突来源。
|
|
102
|
+
6. **公共灵感召回**(工作区有 `灵感库/` 时)按任务标签选 Top 3–8 张 active CBA;不传 IA/NM,不把灵感卡当风格样本;灵感卡只影响设计选择,与上述权威文件或细纲事实冲突时以后者为准。
|
|
101
103
|
|
|
102
104
|
**文件组织原则:**
|
|
103
105
|
- **人物一个一个文件**:`角色/角色名.md`,方便按需读取
|
|
@@ -1,15 +1,23 @@
|
|
|
1
1
|
# 读者契约与终局储备
|
|
2
2
|
|
|
3
|
-
本文件是 `story-long-write`
|
|
3
|
+
本文件是 `story-long-write` 关于读者契约、主角代理权(叙事能动性/主导性)、利益安全与阶段推进的权威参考文件。洞察来自授权社区的避坑样本,是经验共识,不替代具体题材、平台和对标书判断。
|
|
4
4
|
|
|
5
5
|
**安全边界**:本文件不得包含来源站点隐私数据、访问凭证、cookies、tokens、请求签名、私有标识符,或任何能反推出私域账号/请求环境的信息。
|
|
6
6
|
|
|
7
|
+
## 0. 契约四问(排纲、写正文、批末核对只用这四问)
|
|
8
|
+
|
|
9
|
+
1. 主角是不是靠自己的选择挣到了结果?(因果权 + 结算权,拿不准过「关键节点四问」)
|
|
10
|
+
2. 核心收益或高光有没有被配角、机构或巧合无交换地拿走?(期待所有权、利益安全)
|
|
11
|
+
3. 有没有动用本阶段还不该解锁的终局底牌,或把某条升级线顶到天花板?(终局储备、透支两问)
|
|
12
|
+
4. 旧期待付了利息没,又给读者留了什么期待?新地图、新机构、新谜团有没有被拿来逃避旧承诺?(期待债、换书债)
|
|
13
|
+
|
|
14
|
+
四问都过=契约安全;有一问勉强但能靠铺垫/交换/成本补上=需补强;补不上=契约破坏。答不上来的那问再读下面对应小节。
|
|
15
|
+
|
|
7
16
|
## 1. 核心概念
|
|
8
17
|
|
|
9
18
|
### 读者契约
|
|
10
19
|
- 读者契约 = 开篇、题材、主角配置、叙事口吻共同许诺的阅读快感。
|
|
11
20
|
- 写作前先确认:读者是来看主角解决问题、见证团队群像、看导师托举后辈,还是看制度合作建设?不同契约下同一情节风险不同。
|
|
12
|
-
- 题材边界先于单条禁忌:政府、宗门总部、跨国组织、多国公司等高层级机构一出现,可能开启制度/势力范围情节线;先检查本书是否从开篇承诺了这种玩法。
|
|
13
21
|
|
|
14
22
|
### 主角代理权:因果权 + 结算权
|
|
15
23
|
- 主角代理权首先看**因果权 + 结算权**,不看出场时长,也不要求主角永远亲自动手或垄断每个镜头。
|
|
@@ -23,7 +31,7 @@
|
|
|
23
31
|
- 群像、导师或制度合作可把期待所有权明确给团队成员/学生/机构角色;关键是预先承诺、按约结算,而非事后解释抢戏合理。
|
|
24
32
|
|
|
25
33
|
### 关键节点四问
|
|
26
|
-
|
|
34
|
+
第一问拿不准时逐条问(可指向本卷已承诺的其他所有者):
|
|
27
35
|
1. 谁决定事情为什么发生/如何进入?
|
|
28
36
|
2. 谁作出不可替代的关键选择?
|
|
29
37
|
3. 谁承担或选择关键后果?
|
|
@@ -57,7 +65,7 @@
|
|
|
57
65
|
1. 是否动用了本阶段还不该解锁的终局底牌(宿敌了结、终极真相、身份终点、金手指触顶)?
|
|
58
66
|
2. 是否让某条升级线逼近天花板、后面没台阶接?
|
|
59
67
|
|
|
60
|
-
任一为“是” = 真正的透支预警 →
|
|
68
|
+
任一为“是” = 真正的透支预警 → 回退或改纲;两者皆否,多线齐涨放行。档位与里程碑按本书题材、平台与对标调整,不是硬门槛。
|
|
61
69
|
|
|
62
70
|
### 合理化债务
|
|
63
71
|
- 解释成本用于说明机构响应/接管、保密、资源调动、跨区执法、组织协作等为什么成立。
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
| 题材结构 | `references/genre-prose-cards.md` 索引 + `references/genre-prose-cards/` 单题材卡 |
|
|
37
37
|
| 黄金三章 | `references/opening-design.md` |
|
|
38
38
|
| 情绪弧线 | `references/emotional-arc-design.md` |
|
|
39
|
-
|
|
|
39
|
+
| 契约/终局储备/剧情单元契约四问 | `references/reader-contract-and-progression.md` |
|
|
40
40
|
| 反转设计 | `references/long-reversal.md` |
|
|
41
41
|
| 细纲结构验收 | `scripts/check-outline-contract.js`(新建/补建后跑,只判字段与表结构) |
|
|
42
42
|
|
|
@@ -55,7 +55,6 @@
|
|
|
55
55
|
| 情绪技法 + 叙事单元 | `references/plot-emotion-system.md` + `references/emotional-methods.md` |
|
|
56
56
|
| 写作技法全程参考 | `references/writing-craft.md` |
|
|
57
57
|
| 格式 | `references/long-format.md`(章节、段落、对话、标点与工程元信息) |
|
|
58
|
-
| 状态追踪协议 | `references/state-tracking.md` |
|
|
59
58
|
| 当前剧情单元与契约校准 | `references/reader-contract-and-progression.md` |
|
|
60
59
|
|
|
61
60
|
### Phase 5:质量检查
|