@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
|
@@ -4,79 +4,79 @@
|
|
|
4
4
|
|
|
5
5
|
## 拆解流程 5 阶段
|
|
6
6
|
|
|
7
|
-
### 阶段 1
|
|
7
|
+
### 阶段 1:章节解析与机械索引
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
9
|
+
- 使用 `"{PYTHON}" "{story-long-analyze skill 根}/scripts/build_chapter_index.py"` 识别章界、标题、卷、本地章号、物理行号和正文字符数
|
|
10
|
+
- 在 `chapter_index.csv` 记录逐章 hash、全源 hash 与解析器版本;相同来源复用,不重复解析
|
|
11
|
+
- 机械索引不包含剧情、人物、情绪、钩子或模型推断
|
|
11
12
|
|
|
12
|
-
### 阶段 2
|
|
13
|
+
### 阶段 2:连续章节块与已有成果二次提取
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
先运行 `manage_analysis_run.py plan`,只执行标准输出中的内存计划。Stage 2 不再存在逐章独立调用,也不落盘计划文件。
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
#### A. 已有成果批次
|
|
17
18
|
|
|
18
|
-
|
|
19
|
+
对 `existing-results` 批次只读取计划列出的旧拆文文件:
|
|
19
20
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- 剧情推进度(大转折/日常过渡/铺垫伏笔)
|
|
21
|
+
1. 上游 `章节/第N章_摘要.md` 优先;
|
|
22
|
+
2. 没有摘要时复用黄金三章;
|
|
23
|
+
3. 同一章只选择一个优先来源。
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
从旧成果二次提取剧情点、关键事件与披露候选、关系和三维节奏。不得打开原文,不得为了统一格式重写旧逐章文件。旧资料没有的信息留空或写“旧资料未提供”。
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
#### B. 未拆原文章节块
|
|
28
28
|
|
|
29
|
-
|
|
30
|
-
|------|---------|------|
|
|
31
|
-
| ≤1000 | 10 个 | 短章按硬下限拆足关键步骤(公式建议 5-7,硬下限 10) |
|
|
32
|
-
| 3000 | 15-20 个 | 标准密度 |
|
|
33
|
-
| 5000 | 25-34 个 | 中长章 |
|
|
34
|
-
| 8000+ | ≤40 个 | 长章上限 |
|
|
29
|
+
对 `raw-original` 批次一次读取一个不重叠的连续块:
|
|
35
30
|
|
|
36
|
-
|
|
31
|
+
- 普通短章通常 3 章;
|
|
32
|
+
- 长章或信息密集时 1-2 章;
|
|
33
|
+
- 每块最多 3 章,默认同时受 25,000 字符上限约束;
|
|
34
|
+
- 遇到卷界、来源缺口或空章必须断开;
|
|
35
|
+
- 每章在全书运行计划中只属于一个原文块。
|
|
37
36
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
| 类型 | 转折点/信息揭示/冲突/解决/铺垫/行动/对话/状态变化 |
|
|
43
|
-
| 描述 | 客观白描:谁做了什么、结果如何,原文给出的起因一并写入,埋伏笔的写出伏笔线索(禁止叙事框架词、禁止推测动机) |
|
|
44
|
-
| 原文引用 | 精选,不逐点铺满:只给关键转折 / 关键台词 / 写法样本保留,每章至多 8 条,<=400 字连续切片;过长或分散时改用 `原文定位:{5-15字原句片段}` |
|
|
45
|
-
| 涉及人物 | 全名,不用代词 |
|
|
46
|
-
| 地点 | 地理位置信息 |
|
|
47
|
-
| 关键物品 | 与剧情相关的物品 |
|
|
48
|
-
| 时间标记 | 相对时间(次日、半月后、同时) |
|
|
37
|
+
同一次理解产生两层结果:
|
|
38
|
+
|
|
39
|
+
1. 每章紧凑事实:概要、因果、信息变化、状态变化、三维分数、钩子、证据和 10–20 个情节点(长章最多 30);
|
|
40
|
+
2. 批次观察:剧情点、关键事件与披露候选、关系、三维异常点和跨批状态。
|
|
49
41
|
|
|
50
|
-
|
|
42
|
+
逐章兼容文件由脚本从紧凑事实机械生成;批次缓存保留全部逐章紧凑事实和跨章观察,作为恢复证据。全局聚合用 `digest` 取跨章观察与所需逐章字段,不整份读缓存,也不逐个打开章节文件。不得第二次读取该块来生成逐章文件,也不得把 50-60 章交给一个 agent 后让它自行拆成多个“批次”。
|
|
51
43
|
|
|
52
|
-
|
|
44
|
+
#### C. 剧情点是主要分析单位
|
|
53
45
|
|
|
54
|
-
|
|
55
|
-
|------|----------|
|
|
56
|
-
| 关键信息/剧情走向 | 从关键事件与情节点中归纳本章必须让读者知道、误判、期待或确认的信息 |
|
|
57
|
-
| 原文如何扩写 | 记录作者用了哪些事件、对话、反应层、细节、误导、回扣把信息扩成场景 |
|
|
58
|
-
| 扩写技法 | 从铺垫后置/反应层放大/信息差/对比锚点/延迟揭示/身体反应/小目标嵌套/其他中选择或补充 |
|
|
59
|
-
| 对读者情绪的作用 | 标注该扩写制造的好奇、期待、压抑、爽、心疼、紧张、甜、热血等效果 |
|
|
60
|
-
| 可复用提醒 | 只抽象情绪逻辑和功能位,明确禁止照搬具体桥段、台词、专名、独特设定 |
|
|
46
|
+
每个剧情点记录:
|
|
61
47
|
|
|
62
|
-
|
|
48
|
+
| 字段 | 说明 |
|
|
49
|
+
|---|---|
|
|
50
|
+
| 章节范围 | 当前可确认的起止章;允许跨批延续 |
|
|
51
|
+
| 起始目标 | 谁想做什么 |
|
|
52
|
+
| 阻碍 | 人物、规则、资源、信息或环境阻碍 |
|
|
53
|
+
| 变化来源 | 改变局面的选择、行动或外部事件 |
|
|
54
|
+
| 局面变化 | 目标、风险、资源、关系、知识或行动方向的前后差异 |
|
|
55
|
+
| 得失 | 收益归谁、代价由谁承担 |
|
|
56
|
+
| 后续影响 | 结果怎样促成或限制后续行动 |
|
|
57
|
+
| 状态 | `open` / `closed` |
|
|
58
|
+
| 证据 | 原文模式用 source locator;已有成果模式用资料路径 |
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
读取批次不等于剧情点。一个批次可以出现多个剧情点,一个剧情点也可以跨批次。跨批延续时继承剧情点 ID 和当前状态;Stage 3 再统一合并、拆分和校验边界。
|
|
65
61
|
|
|
66
|
-
|
|
67
|
-
只记录新出场角色或已有角色的新发展。
|
|
62
|
+
#### D. 兼容逐章资料
|
|
68
63
|
|
|
69
|
-
|
|
64
|
+
逐章投影只保留现有导入、写作与查询实际使用的内容:概要、关键事件、因果、局面结果、涉及、信息变化、状态变化、三维节奏、章尾钩子、证据和情节点序列(逐点带基调)。取消逐章重复的长篇写法公式、角色复述和扩写技法长表。写法机制、信息差、关系与节奏集中在剧情点及 Stage 3 权威产物中。
|
|
70
65
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
66
|
+
#### E. 跨章观察
|
|
67
|
+
|
|
68
|
+
批次缓存固定包含:
|
|
69
|
+
|
|
70
|
+
1. 剧情点;
|
|
71
|
+
2. 仅限主线/关键转折的事件与披露候选;
|
|
72
|
+
3. 有向关系变化;
|
|
73
|
+
4. 事件、情绪、篇幅三维节奏的峰谷与分离点;
|
|
74
|
+
5. 未闭合剧情点、悬念、关系状态和待核事项。
|
|
76
75
|
|
|
76
|
+
角色实体只记录新别名和状态变化,不在每章重复生成人物小传。
|
|
77
77
|
### 阶段 3:聚合分析(跨章节)
|
|
78
78
|
|
|
79
|
-
>
|
|
79
|
+
> **语料读取**:用 `manage_analysis_run.py digest --part observations` 读取全部批次已经降维的跨章观察;需要逐章字段(三维节奏、涉及、状态变化等)或情节点简表时用 `--part chapters` 按章节窗口取。只在关键证据冲突时定点读取对应逐章兼容文件,最多增加一次定点核验,不重新扫描原文。旧项目没有批次缓存时,直接复用现有剧情、节奏、情绪、关系和逐章资料;证据不足或冲突时标未知或待核。Stage 3–5 不回读原文;Stage 6 可以按索引定点读取 4–6 段文风锚点,但不得重新扫描整本原文。
|
|
80
80
|
|
|
81
81
|
#### 0. 故事框架识别(聚合前置)
|
|
82
82
|
|
|
@@ -93,7 +93,7 @@ Agent 输出格式严格对齐本阶段 A/B/C 三部分的合并输出,详见
|
|
|
93
93
|
识别方法:扫描概要.md(Stage 0 thin first-pass 足够,无需等 Stage 5 全书概要)+ 前3章摘要 + 后3章摘要,判断核心驱动模式。
|
|
94
94
|
输出写入 `剧情/故事线.md` 的框架识别部分。
|
|
95
95
|
|
|
96
|
-
|
|
96
|
+
**预期剧情数量引导**(仅用于发现明显粒度异常,不作为凑数目标):
|
|
97
97
|
|
|
98
98
|
| 总章数 | 预期独立剧情数 | 依据 |
|
|
99
99
|
|--------|--------------|------|
|
|
@@ -125,14 +125,17 @@ Agent 输出格式严格对齐本阶段 A/B/C 三部分的合并输出,详见
|
|
|
125
125
|
|
|
126
126
|
**第一步:剧情大纲识别(从章节摘要)**
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
基于批次候选单元合并独立剧情,边界或证据不清时再读取相关章节摘要。每条大纲包含:
|
|
129
129
|
|
|
130
130
|
| 字段 | 说明 |
|
|
131
131
|
|------|------|
|
|
132
132
|
| 标题 | 简洁有力,15字以内 |
|
|
133
133
|
| 概要 | 150-300字,按时序连贯叙述因果,不靠同一连接词反复串联;含核心角色、关键地点、事件发展 |
|
|
134
|
-
|
|
|
135
|
-
|
|
|
134
|
+
| 起始目标 | 谁在本单元开始时想做什么;目标早已建立时引用来源 |
|
|
135
|
+
| 主要阻碍 | 人物、规则、资源、信息或环境造成的阻碍 |
|
|
136
|
+
| 关键变化来源 | 谁的选择/行动或什么外部事件改变局面 |
|
|
137
|
+
| 局面变化 | 目标、风险、关系、资源、知识或行动方向的前后差异 |
|
|
138
|
+
| 得失与后续 | 收益归谁、代价由谁承担,怎样限制或促成后续行动 |
|
|
136
139
|
| 类型 | 主线/爱情/成长/复仇/寻宝/悬疑/战斗/权谋/修炼/危机/谜团/日常/其他 |
|
|
137
140
|
| 主题 | 不超过3个 |
|
|
138
141
|
| 章节范围 | 起止章节号 |
|
|
@@ -217,15 +220,15 @@ Agent 输出格式严格对齐本阶段 A/B/C 三部分的合并输出,详见
|
|
|
217
220
|
Stage 3 聚合后必须生成两个权威产物,供 Stage 5 报告摘要和 `story-long-write` 直接读取:
|
|
218
221
|
|
|
219
222
|
1. **`剧情/节奏.md`(节奏权威)**
|
|
220
|
-
-
|
|
221
|
-
-
|
|
222
|
-
-
|
|
223
|
-
-
|
|
223
|
+
- 输入:批次关键事件与披露候选、三维节奏异常点、逐章紧凑事实、剧情单元和故事线。
|
|
224
|
+
- 输出:全书约 8–15 个节点的关键双时间线表、三维节奏表、关键信息推进、爽点循环、情绪触动点和爆发节奏。
|
|
225
|
+
- 生成法:只选择改变主线、关系、核心风险或读者判断的事件;客观事件只登记一次,异常、线索、解释和确认写进同一事件的披露路径。对关键区间分别判断事件状态变化、读者情绪触发和篇幅展开/压缩/省略。
|
|
226
|
+
- 校验:每条 `EV/RV/AX/RH/TR` 都能回指章节、情节点或定位;过程没有展示时写“文本未展示”,不推断作者有意省略。
|
|
224
227
|
|
|
225
228
|
2. **`剧情/情绪模块.md`(模块权威)**
|
|
226
229
|
- 输入:故事框架识别、剧情单元、`剧情/节奏.md`、读者需求判断、桥段标签。
|
|
227
|
-
- 输出:读者需求 /
|
|
228
|
-
-
|
|
230
|
+
- 输出:读者需求 / 情绪引擎、故事框架与套路运行图、完整模块卡(至少覆盖前三强,不设数量上限)、其他机制索引、重组与复现指南。
|
|
231
|
+
- 生成法:先抽象“读者为什么期待兑现”,再把具体剧情抽成情绪链和功能位;完整模块卡必须五个门禁字段齐全(读者想看什么、情绪链、戏剧单元、可替换项、不可照搬),必要铺垫、成立条件、失效情形、反例等按需增列,其他机制只留用途、范围和证据引用。
|
|
229
232
|
- 校验:best-effort 为模块标注来源(关联 `剧情/节奏.md` 的 RH/TR 条目或章节情节点),无把握时留空、不硬凑、不删模块;禁止把原文专名、独特事件顺序、标志性台词写成可复用模板。
|
|
230
233
|
|
|
231
234
|
**权威关系**:`剧情/节奏.md` 管节奏/触动点,`剧情/情绪模块.md` 管读者需求/模块复现。`拆文报告.md` 与 `剧情/故事线.md` 只能摘要或引用这两个文件,不能成为并列权威。
|
|
@@ -238,17 +241,19 @@ Stage 3 聚合后必须生成两个权威产物,供 Stage 5 报告摘要和 `s
|
|
|
238
241
|
|
|
239
242
|
### 阶段 4:世界观与设定提取
|
|
240
243
|
|
|
241
|
-
Stage 2
|
|
244
|
+
Stage 2 紧凑事实中的 `涉及人物`、`状态变化` 与批次 `关系变化` 在此阶段归一为完整档案。
|
|
242
245
|
|
|
243
246
|
#### 角色两阶段模型
|
|
244
247
|
|
|
245
248
|
**阶段 A:轻量提及(Stage 2 输出)**
|
|
246
|
-
-
|
|
247
|
-
-
|
|
249
|
+
- 每章 `涉及人物` 记录关键人物,`状态变化` 记录本章可见净变化;
|
|
250
|
+
- 批次 `关系变化` 补充有方向的动作、触发与得失;
|
|
251
|
+
- 不另建出场人物表,不在单章内完成跨章人物定型。
|
|
248
252
|
|
|
249
253
|
**阶段 B:完整档案(Stage 4 构建)**
|
|
250
|
-
-
|
|
251
|
-
-
|
|
254
|
+
- 合并逐章 `涉及人物`、`状态变化` 和批次关系观察
|
|
255
|
+
- 跨章节别名解析(批次 `跨批状态` 的「已确认别名」是现成线索)
|
|
256
|
+
- 群体称呼、无名路人和泛称(亲属、社交、身份、年龄外貌类称呼,如大哥、掌柜、老师、小伙子)不建档,除非原文固定用它指代某一个人
|
|
252
257
|
- 构建完整角色档案
|
|
253
258
|
|
|
254
259
|
#### 一人一实体原则
|
|
@@ -324,17 +329,19 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
324
329
|
|
|
325
330
|
| 字段 | 说明 |
|
|
326
331
|
|------|------|
|
|
327
|
-
|
|
|
328
|
-
|
|
|
329
|
-
|
|
|
330
|
-
|
|
|
331
|
-
|
|
|
332
|
+
| 主体 → 客体 | 有向关系;反向动作存在时另记一条 |
|
|
333
|
+
| 关系动作/类型 | 保护、依赖、控制、服从、欺骗、竞争等动作及家人/师徒/朋友/敌人/恋人/同事/上下级/商业/其他类型 |
|
|
334
|
+
| 表面/真实状态 | 文本允许区分时分别记录;未证实的真实状态标推断等级 |
|
|
335
|
+
| 触发事件 | 导致关系建立或变化的具体行动/事件 |
|
|
336
|
+
| 双方得失 | 信任、资源、地位、行动空间、风险、债务、暴露或失控 |
|
|
337
|
+
| 变化后状态 | 本阶段结束时的状态及后续约束 |
|
|
338
|
+
| 证据 | A/B/C 强度、章节、情节点或 source locator |
|
|
332
339
|
|
|
333
340
|
#### 关系提取策略
|
|
334
341
|
|
|
335
342
|
**数据源**:从已提取的情节点描述中提取关系(不从原文提取),更高效、更聚焦。
|
|
336
343
|
|
|
337
|
-
|
|
344
|
+
**批量提取**:复用 Stage 2 每个连续章节批次的关系观察,只记录新关系或关系变化;不为了固定章数单独重读原文。
|
|
338
345
|
|
|
339
346
|
**关系演变追踪**:当同一对角色关系发生变化时,记录演变轨迹:
|
|
340
347
|
```
|
|
@@ -343,7 +350,7 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
343
350
|
情感转变:{正面→负面/负面→正面/中立→复杂 等}
|
|
344
351
|
```
|
|
345
352
|
|
|
346
|
-
|
|
353
|
+
**最终状态合并**:同一有向关系的多阶段状态保留最新状态作为主记录,历史变化写入演变轨迹。反向关系动作不能因角色对相同而被去重。
|
|
347
354
|
|
|
348
355
|
**隐含关系推断**:当角色间没有直接互动但有间接证据时:
|
|
349
356
|
- 通过第三方的评价/描述推断(置信度标 0.7)
|
|
@@ -359,7 +366,7 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
359
366
|
|
|
360
367
|
## 原子提取六大铁律
|
|
361
368
|
|
|
362
|
-
1.
|
|
369
|
+
1. **双序分离**:逐章事实按文本披露顺序排列;客观事件另标故事内发生顺序,不能把倒叙或回忆挪成当前事件
|
|
363
370
|
2. **客观白描**:记录"发生了什么"和结果,原文明说的起因照写,不推测未写出的动机,不用叙事框架词
|
|
364
371
|
3. **信息保真**:不遗漏改变语境的关键细节
|
|
365
372
|
4. **高度浓缩**:一个情节点一句话概括
|
|
@@ -380,11 +387,11 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
380
387
|
|
|
381
388
|
阶段 3-5 从章节摘要二次合成,离原文已两跳,最易把「摘要没说的」用合理推断补成「看似坐实的事实」——这是拆文事实错误的最大来源(典型:给「双系魔法师」凭空补第二系、把坐骑等级安到骑手头上、给原文没给的字段编一个数值、把出场区间填成连续跨度含没出场的章)。强模型也照样漂移,因为越远离原文,模型越靠世界知识与"合理性"填空。三条硬约束:
|
|
382
389
|
|
|
383
|
-
1.
|
|
390
|
+
1. **硬事实必须可溯源**:力量等级、数值、距离、属性、势力数量、谁对谁说了什么、角色出场章节——先检查批次证据或已有事实的章节和定位;命中不到就改写为“资料未明确”或删除,不为聚合二次读取原文。
|
|
384
391
|
2. **缺失写「原文未明确」,禁编造填空**:原文没给的字段,写「原文未明确/节选未涉及」,绝不用近义项、别处的范例或惯例补一个看似合理的值。
|
|
385
392
|
3. **跨指代不串**:相邻实体的属性不互相挪用——坐骑等级≠骑手等级、A 的台词≠B 的台词、本章统计数字≠相邻章数字。
|
|
386
393
|
|
|
387
|
-
|
|
394
|
+
落盘后做一次**事实可溯源自检**:抽查设定、角色和报告里的硬事实,逐条核对到本次允许使用的证据源。`raw-original` 可按 `source_locator` 机械定位原文,`existing-results` 只能核对计划列出的旧成果文件;旧成果没有的细节改写为「旧资料未提供」或删除,不借核证之名回读已覆盖章节原文。此自检独立于下方三个比率——比率查归类质量,它查事实真伪。
|
|
388
395
|
|
|
389
396
|
---
|
|
390
397
|
|
|
@@ -400,8 +407,10 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
400
407
|
|------|------|------|------------|
|
|
401
408
|
| 置信度 | >= 0.85 | 有明确归属的情节点 / 剧情单元内情节点总数 | 低于 0.85 标记「待复核」 |
|
|
402
409
|
| 覆盖率 | 85%-95% | 已归类情节点 / 总情节点数 | <85% 触发孤立情节二次分类;>95% 复核边界 |
|
|
403
|
-
| 关键信息覆盖 |
|
|
410
|
+
| 关键信息覆盖 | 每章有结论 | 含有效信息行或明确“无独立信息变化”的章节数 / 摘要章节数 | 按原输入类型回到 Stage 2 补提取;旧成果章仍不得回读原文 |
|
|
404
411
|
| 模块来源标注 | best-effort | 情绪模块卡尽量标注 RH/TR 或章节情节点来源 | 无把握的来源留空,不硬凑、不删模块(同桥段标签的 best-effort 处理)|
|
|
412
|
+
| 披露引用完整 | 100% | 关键双时间线中每个 `RV-*` 都属于同一行的 `EV-*` 披露路径,同一客观事件不因多次披露重复建档 | 缺引用或重复事件时回到批次观察合并 |
|
|
413
|
+
| 三维解释完整 | 100% | `AX-*` 的事件、情绪、篇幅三轴都有理由与证据 | 缺轴时补“无明显变化/文本未展示”及依据,不用分数占位 |
|
|
405
414
|
| 重叠率 | <= 35% | 跨剧情单元共享情节点 / 总情节点数 | >35% 提示边界模糊,建议合并 |
|
|
406
415
|
|
|
407
416
|
> **小体量节选(< 30 章、单主线连续叙事)的特例**:此类素材按时序连续切分时,覆盖率天然接近 100%、散落情节接近 0,这是线性结构的正常结果,不算过度归并。此时复核重点是「有无把不同剧情强行并进同一条」,而非覆盖率数值本身——不必为压到 95% 以下而人为拆分。
|
|
@@ -413,7 +422,7 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
413
422
|
阶段 3 聚合完成后执行(6 步,含覆盖率验证):
|
|
414
423
|
|
|
415
424
|
1. **计算孤立比例**:孤立情节点数 / 总情节点数。若比例 < 5%,跳过后续步骤,直接标记为「少量散落,无需处理」
|
|
416
|
-
2.
|
|
425
|
+
2. **筛选未分配情节点**:用 `digest --part chapters --points brief` 按章节窗口列出情节点简表,收集未归类到任何剧情单元的情节点
|
|
417
426
|
3. **三层置信度归入**:按角色重叠、地点重叠、因果关系三条线索计算相关性
|
|
418
427
|
- **强相关**(0.8-1.0):角色匹配 + 主题相关 → 归入现有剧情单元,标记 `[孤立情节归入]`
|
|
419
428
|
- **中等相关**(0.5-0.8):角色匹配 或 主题相关 → 归入并标记 `[低置信归入]`,待复核
|
|
@@ -432,32 +441,30 @@ Stage 2 的角色轻量提及数据在此阶段升级为完整档案。
|
|
|
432
441
|
|
|
433
442
|
---
|
|
434
443
|
|
|
435
|
-
##
|
|
444
|
+
## 执行指引
|
|
436
445
|
|
|
437
446
|
### 分块策略
|
|
438
447
|
|
|
439
|
-
Stage 2
|
|
440
|
-
其他阶段(0、1、3、4、5)的分块策略如下。
|
|
448
|
+
Stage 2 按运行计划分别建立旧成果批次和缺章原文块,每批调用一次 chapter-extractor;原文块同次返回逐章事实和跨章观察,旧成果批次只返回跨章观察。其他阶段只消费这些结果和可复用旧资料。
|
|
441
449
|
|
|
442
450
|
> **先分清两个互不相干的轴**,本节此前把它们混在一个「块」字里,导致 >500 章出现「50-200 章/块」与「6-8K token/块」两套差 30-100 倍的规格:
|
|
443
451
|
> - **语义分块**=*在哪里切*。按叙事弧切,产出「块元数据」用于组织分析结果,块可以很大(一个 914 章的书通常 5-10 个弧)。它不决定一次读多少。
|
|
444
|
-
> -
|
|
452
|
+
> - **处理批次**=*一次读多少*。受上下文容量约束,原文块按索引字数切分,旧成果批次按资料体积切分。下面表格的「块大小」列指的是**处理批次**。
|
|
445
453
|
|
|
446
|
-
|
|
|
454
|
+
| 单章与上下文情况 | 读取批次策略 | 常见章数 |
|
|
447
455
|
|------|------|--------|
|
|
448
|
-
|
|
|
449
|
-
|
|
|
450
|
-
|
|
|
451
|
-
| >500 章 | **子代理并行批次**(见下「处理批次」);语义分块只用于组织输出,不作为读取单位 | 10-20 章/批 |
|
|
456
|
+
| 普通章节、上下文充足 | 连续读取并保留跨章状态 | 3 章/批 |
|
|
457
|
+
| 长章、信息密集或上下文较小 | 缩小批次,不截断明显短因果链 | 1-2 章/批 |
|
|
458
|
+
| 超长书 | 批次数量增加;语义弧仍独立于读取批次 | 仍按上述字数与上下文判断 |
|
|
452
459
|
|
|
453
|
-
###
|
|
460
|
+
### 语义弧识别
|
|
454
461
|
|
|
455
|
-
|
|
462
|
+
基于批次观察和章节摘要识别自然分界。读取批次只是上下文单位,不能直接当成剧情单元:
|
|
456
463
|
|
|
457
464
|
**分块原则(四大铁律)**:
|
|
458
465
|
1. **语义连贯**:每块是一个相对独立的内容单元(大故事阶段或主要事件线)
|
|
459
466
|
2. **自然分界**:在内容转折点、场景切换、时间跨越处切分,不在紧密剧情中间切
|
|
460
|
-
3.
|
|
467
|
+
3. **大小适中**:语义完整性优先于大小均匀;不设固定章数,也不要求一个语义弧一次读进上下文
|
|
461
468
|
4. **避免割裂**:不在紧密剧情中间切分
|
|
462
469
|
|
|
463
470
|
**题材特化分块参考**:
|
|
@@ -470,35 +477,36 @@ Stage 2 使用 chapter-extractor agent 并行处理(每章一个 agent,每
|
|
|
470
477
|
| 玄幻 | 世界地图、势力变化 | 东域→中州→上界 |
|
|
471
478
|
| 有卷/部/篇 | 优先按原结构 | 按作者划分的卷/部 |
|
|
472
479
|
|
|
473
|
-
|
|
480
|
+
**无明显结构**时保留连续批次边界,并把无法确认的语义归属标为待聚合。**硬约束**:所有确实需要读原文的章节都被唯一读取批次覆盖,已有成果章进入旧资料批次;两者互斥且各自不重叠。剧情单元可以跨批次,也可以在一个批次中出现多个。
|
|
474
481
|
|
|
475
482
|
每块输出元数据:`块标题 | 起止章节 | 核心主题(2-5个) | 关键事件(2-5个) | 主角阶段`。
|
|
476
483
|
|
|
477
|
-
|
|
484
|
+
每章只保存一组紧凑事实。每批先保存完整缓存,再补缺失摘要,最后只更新 `_progress.md` 受管状态;不生成收据或独立批次账本。
|
|
478
485
|
|
|
479
486
|
### 处理批次(一次读多少)
|
|
480
487
|
|
|
481
|
-
Stage 3-5 的语料是 `章节/*_摘要.md
|
|
488
|
+
Stage 3-5 的语料是 `digest` 输出:全书跨章观察,加按窗口抽取的逐章字段与情节点简表;不整份读批次缓存(其中约七成是与逐章摘要重复的章节块)。只有关键冲突才定点读取对应 `章节/*_摘要.md`。旧项目没有缓存时直接读取已有剧情、节奏、情绪、关系资料;不要为了统一格式先把所有旧摘要重新压缩一遍。
|
|
482
489
|
|
|
483
|
-
**A.
|
|
490
|
+
**A. 连续批次模式**
|
|
484
491
|
|
|
485
|
-
1.
|
|
486
|
-
2.
|
|
487
|
-
3.
|
|
488
|
-
4.
|
|
489
|
-
5.
|
|
492
|
+
1. **切批**:按 `chapter_index.csv` 连续取 1-3 章,根据原文字数和上下文缩放;完整任务不跳章。
|
|
493
|
+
2. **分派**:每批一个 chapter-extractor,只给该批 `source_locator`、边界、输出文件路径和交接缓存路径;子代理自己读原文与交接批的跨批状态。串行、有限并行或不限顺序由作者在 Stage 1 后选定(见 pipeline-ops「执行与提交一个批次」),并行时边界处的剧情点接续交给下方跨块合并。每个原文范围只有一个 owner。
|
|
494
|
+
3. **双层落盘**:同次产出逐章紧凑事实与批次观察,由子代理直接写进批次输入文件、只回回执;主会话不转贴原文、不读输入文件,直接提交。禁止另起一次模型调用重复分析同一批原文;兼容文件由提交脚本机械生成。
|
|
495
|
+
4. **主线程合并**:主线程用 `digest` 消费全书跨章观察和按窗口抽取的逐章字段做全局合成。全书仍超上下文时按章节窗口分组合并,中间层只保留剧情状态、关键候选和证据引用,不扩写内容。
|
|
496
|
+
5. **进度**:计划阶段只读;完整缓存、所需摘要和输入范围 hash 全部核对后,最后在 `_progress.md` 登记 `completed`。失败不提前写完成,必要时把父块标 `superseded` 并持久化相邻子块;中断从完整缓存恢复。
|
|
490
497
|
|
|
491
|
-
>
|
|
498
|
+
> 批次数由原文长度和上下文决定,不设“超过 500 章就固定 10-20 章/批”的第二套规则。
|
|
492
499
|
|
|
493
500
|
**B. 主线程串行模式(agent 不可用时的降级)**
|
|
494
501
|
|
|
495
|
-
无法 spawn
|
|
502
|
+
无法 spawn 子代理时由主线程按同一连续批次契约顺序处理。批次可因主线程上下文更小而缩短,但仍须同次产生逐章事实和跨章观察,不能退回每章一次调用。
|
|
496
503
|
|
|
497
504
|
**C. 不要做的事**
|
|
498
505
|
|
|
499
|
-
-
|
|
500
|
-
-
|
|
501
|
-
-
|
|
506
|
+
- 不要把大语义弧整块塞进一次上下文。
|
|
507
|
+
- 不要固定章数而忽略原文字数、上下文容量和章界。
|
|
508
|
+
- 不要在 Stage 3、4、5 各自重新读取同一批原文。
|
|
509
|
+
- 不要用跳读锚点冒充完整语义覆盖。
|
|
502
510
|
|
|
503
511
|
### 跨块合并(大型小说 >500 章)
|
|
504
512
|
|
|
@@ -527,4 +535,4 @@ Stage 3-5 的语料是 `章节/*_摘要.md`。**实测体积:中文章节摘
|
|
|
527
535
|
|
|
528
536
|
- 进度通过 _progress.md 追踪
|
|
529
537
|
- 新会话读 _progress.md 定位断点
|
|
530
|
-
-
|
|
538
|
+
- 先校验断点批次已有文件;完整且与来源一致则补记进度,缺失或损坏才从该批次起章重做
|