@cloud411716/fancy-webnovel 1.0.46 → 2.2.0

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.
Files changed (134) hide show
  1. package/client.js +183 -0
  2. package/cordis.patch.yml +0 -14
  3. package/index.js +21 -37
  4. package/lib/chinese-num.js +111 -0
  5. package/lib/deployed-state.js +141 -0
  6. package/lib/error-codes.js +104 -0
  7. package/lib/infra.js +569 -0
  8. package/lib/llm-wiki.js +109 -0
  9. package/lib/safe-rm.js +94 -0
  10. package/lib/scraper-utils.js +165 -0
  11. package/package.json +37 -5
  12. package/plugins/fancy-analyze/command-input.js +65 -0
  13. package/plugins/fancy-analyze/index.js +973 -0
  14. package/plugins/fancy-analyze/schema-analyze.md +379 -0
  15. package/plugins/fancy-analyze/schema-write.md +178 -0
  16. package/plugins/fancy-analyze/scripts/split_source.js +292 -0
  17. package/plugins/fancy-analyze/summary-progress.js +431 -0
  18. package/plugins/fancy-analyze/templates.js +881 -0
  19. package/plugins/fancy-bootstrap/index.js +168 -0
  20. package/plugins/fancy-bootstrap/scripts/init.js +143 -0
  21. package/plugins/fancy-bootstrap/scripts/path-utils.js +21 -0
  22. package/plugins/fancy-bootstrap/templates.js +54 -0
  23. package/plugins/fancy-import/import-core.js +1118 -0
  24. package/plugins/fancy-import/import-driver.js +581 -0
  25. package/plugins/fancy-import/index.js +730 -0
  26. package/plugins/fancy-import/prompts/01-import-prompt.md +106 -0
  27. package/plugins/fancy-import/templates.js +49 -0
  28. package/plugins/fancy-scan/index.js +319 -0
  29. package/plugins/fancy-scan/scripts/run-scan.js +520 -0
  30. package/plugins/fancy-scan/scripts/scrapers/fanqie-rank-scraper.js +794 -0
  31. package/plugins/fancy-scan/scripts/scrapers/jjwxc-rank-scraper.js +339 -0
  32. package/plugins/fancy-scan/scripts/scrapers/qimao-rank-scraper.js +611 -0
  33. package/plugins/fancy-scan/templates.js +295 -0
  34. package/plugins/fancy-story-builder/deploy-manifest.js +239 -0
  35. package/plugins/fancy-story-builder/deslop-driver.js +821 -0
  36. package/plugins/fancy-story-builder/flesh-output.js +155 -0
  37. package/plugins/fancy-story-builder/index.js +3152 -0
  38. package/plugins/fancy-story-builder/prompts/01-skeleton-prompt.md +553 -0
  39. package/plugins/fancy-story-builder/prompts/02-flesh-prompt.md +540 -0
  40. package/plugins/fancy-story-builder/prompts/03-rhythm-prompt.md +504 -0
  41. package/plugins/fancy-story-builder/prompts/04-writing-prompt.md +188 -0
  42. package/plugins/fancy-story-builder/prompts/05-deslop-prompt.md +96 -0
  43. package/plugins/fancy-story-builder/purpose-template.md +107 -0
  44. package/plugins/fancy-story-builder/references/formulas-rhythm.json +302 -0
  45. package/plugins/fancy-story-builder/references/formulas-skeleton.json +229 -0
  46. package/plugins/fancy-story-builder/references/glossary.md +585 -0
  47. package/plugins/fancy-story-builder/references/index.md +490 -0
  48. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/00-index.md +174 -0
  49. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/01-scene.md +150 -0
  50. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/02-chapter-workflow.md +99 -0
  51. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/03-opening-chapter.md +104 -0
  52. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/04-dialogue-mastery.md +274 -0
  53. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/05-genre-formulas.md +432 -0
  54. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/06-tone-ensemble.md +259 -0
  55. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/07-ledger-audit.md +222 -0
  56. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/08-diagnosis-revision.md +205 -0
  57. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/09-reading-power.md +135 -0
  58. package/plugins/fancy-story-builder/references//345/206/231/344/275/234/346/214/207/345/257/274/10-deslop.md +129 -0
  59. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/00-index.md +98 -0
  60. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/01-upgrade-rhythm.md +300 -0
  61. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/02-arc-rhythm.md +168 -0
  62. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/03-highpoint-hooks.md +189 -0
  63. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/04-satisfaction.md +226 -0
  64. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/05-foreshadow-density.md +195 -0
  65. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/06-chapter-outline.md +226 -0
  66. package/plugins/fancy-story-builder/references//350/212/202/345/245/217/346/214/207/345/257/274/07-audit.md +163 -0
  67. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/00-index.md +100 -0
  68. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/01-character.md +239 -0
  69. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/02-worldbuilding.md +245 -0
  70. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/03-relations.md +181 -0
  71. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/04-emotion-methods.md +286 -0
  72. package/plugins/fancy-story-builder/references//350/241/200/350/202/211/346/214/207/345/257/274/05-audit.md +177 -0
  73. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/00-index.md +91 -0
  74. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/01-positioning.md +208 -0
  75. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/02-packaging.md +135 -0
  76. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/03-entities.md +305 -0
  77. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/04-conflict.md +328 -0
  78. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/05-quota.md +187 -0
  79. package/plugins/fancy-story-builder/references//351/252/250/346/236/266/346/214/207/345/257/274/06-audit.md +142 -0
  80. package/plugins/fancy-story-builder/rhythm-output.js +140 -0
  81. package/plugins/fancy-story-builder/schema-setting.md +324 -0
  82. package/plugins/fancy-story-builder/scripts/ai-patterns.js +619 -0
  83. package/plugins/fancy-story-builder/scripts/check-guide-compliance.js +289 -0
  84. package/plugins/fancy-story-builder/scripts/content-quality.js +413 -0
  85. package/plugins/fancy-story-builder/scripts/deslop-validate.js +143 -0
  86. package/plugins/fancy-story-builder/scripts/error-classes.js +112 -0
  87. package/plugins/fancy-story-builder/scripts/flesh-validate.js +1189 -0
  88. package/plugins/fancy-story-builder/scripts/formula-engine.js +112 -0
  89. package/plugins/fancy-story-builder/scripts/graph-utils.js +1385 -0
  90. package/plugins/fancy-story-builder/scripts/label-coverage.js +171 -0
  91. package/plugins/fancy-story-builder/scripts/prompt-drift-check.js +441 -0
  92. package/plugins/fancy-story-builder/scripts/reading-power.js +298 -0
  93. package/plugins/fancy-story-builder/scripts/rhythm-validate.js +1216 -0
  94. package/plugins/fancy-story-builder/scripts/semantic-lint.js +377 -0
  95. package/plugins/fancy-story-builder/scripts/skeleton-quota.js +145 -0
  96. package/plugins/fancy-story-builder/scripts/skeleton-validate.js +1832 -0
  97. package/plugins/fancy-story-builder/scripts/stage-batches.js +1371 -0
  98. package/plugins/fancy-story-builder/scripts/stage-contract.js +417 -0
  99. package/plugins/fancy-story-builder/scripts/upstream-query.js +198 -0
  100. package/plugins/fancy-story-builder/scripts/writing-rules.js +167 -0
  101. package/plugins/fancy-story-builder/scripts/writing-validate.js +682 -0
  102. package/plugins/fancy-story-builder/skeleton-output.js +199 -0
  103. package/plugins/fancy-story-builder/stage-driver.js +1049 -0
  104. package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//346/227/266/345/272/217/346/230/240/345/260/204/346/250/241/346/235/277.json +204 -0
  105. package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//347/253/240/350/212/202/347/273/206/347/272/262/346/250/241/346/235/277.json +34 -0
  106. package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//347/253/240/350/212/202/350/247/204/345/210/222/346/250/241/346/235/277.json +24 -0
  107. package/plugins/fancy-story-builder/templates//350/212/202/345/245/217//350/212/202/345/245/217/345/217/202/346/225/260/346/250/241/346/235/277.json +27 -0
  108. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//344/270/226/347/225/214/350/247/202/350/247/204/345/210/231/346/250/241/346/235/277.json +66 -0
  109. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/205/263/351/224/256/351/201/223/345/205/267/346/250/241/346/235/277.json +76 -0
  110. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/206/262/347/252/201/346/250/241/346/235/277.json +72 -0
  111. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/211/247/346/203/205/346/250/241/346/235/277.json +37 -0
  112. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/212/277/345/212/233/346/250/241/346/235/277.json +53 -0
  113. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//345/234/260/347/202/271/346/250/241/346/235/277.json +40 -0
  114. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//347/273/223/345/261/200/346/250/241/346/235/277.json +79 -0
  115. package/plugins/fancy-story-builder/templates//350/241/200/350/202/211//350/247/222/350/211/262/346/250/241/346/235/277.json +132 -0
  116. package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/205/263/347/263/273/346/250/241/346/235/277.json +133 -0
  117. package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/256/236/344/275/223/346/250/241/346/235/277.json +160 -0
  118. package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//345/261/202/347/272/247/346/250/241/346/235/277.json +65 -0
  119. package/plugins/fancy-story-builder/templates//351/252/250/346/236/266//346/241/206/346/236/266/346/250/241/346/235/277.json +134 -0
  120. package/plugins/fancy-story-builder/templates.js +1248 -0
  121. package/plugins/fancy-story-builder/wiki-references.js +204 -0
  122. package/plugins/fancy-story-builder/writing-driver.js +1061 -0
  123. package/plugins/fancy-topic/index.js +704 -0
  124. package/plugins/fancy-topic/scripts/select-topic.js +274 -0
  125. package/plugins/fancy-topic/templates.js +373 -0
  126. package/commands/bootstrap/index.js +0 -164
  127. package/commands/bootstrap/init-project.js +0 -121
  128. package/commands/scan/index.js +0 -283
  129. package/commands/scan/platforms/fanqie.js +0 -146
  130. package/commands/scan/platforms/jinjiang.js +0 -143
  131. package/commands/scan/platforms/qidian.js +0 -102
  132. package/commands/scan/platforms/qimao.js +0 -127
  133. package/commands/scan/scraper.js +0 -195
  134. package/infra.js +0 -160
@@ -0,0 +1,129 @@
1
+ # 10 · 去 AI 味(改写方法)
2
+
3
+ > 这篇讲"怎么把 AI 腔改成人话"。**只改 AI 味,不改剧情**。
4
+ >
5
+ > **判定以 `scripts/ai-patterns.js` 为准**(那是唯一真源,校验器拿它判定)。
6
+ > 本篇给的是**怎么改**;完整的 24 类清单由插件在派活时注入提示词,
7
+ > 不要凭记忆归类。
8
+
9
+ ---
10
+
11
+ ## 0. 与其它文件的关系
12
+
13
+ | 这篇讲的 | 其它文件讲的 | 关系 |
14
+ |---|---|---|
15
+ | 改写手法 | `08-diagnosis-revision.md` 的诊断修订流程 | 诊断是"找出问题",这篇是"针对 AI 腔这一类问题怎么改" |
16
+ | AI 腔的成因 | `06-tone-ensemble.md` 的文风 | 文风是"写成什么样",AI 腔是"不要写成什么样" |
17
+ | 章节完整性 | `01-scene.md` 场景五要素 | 去味不碰场景结构。改完场景五要素必须还在 |
18
+
19
+ ---
20
+
21
+ ## 1. AI 腔的四种主要形态
22
+
23
+ | 形态 | 长什么样 | 为什么像 AI |
24
+ |---|---|---|
25
+ | **拔高** | 把一件事说成象征、标志、某种意义 | 模型爱给句子"上价值",因为训练语料里这类句子多 |
26
+ | **概括** | 用一个抽象判断代替具体过程 | 模型倾向于总结,而不是描述 |
27
+ | **排比** | 三个以上的并列短语、同构句式 | 模型的默认输出结构就是"三点式" |
28
+ | **客气** | 助手腔、公文腔、收尾升华 | 模型被训过"要有礼貌""要有结论" |
29
+
30
+ **去掉这四种,比换掉几个 AI 高频词有用得多。**
31
+
32
+ ---
33
+
34
+ ## 2. 四种改写手法
35
+
36
+ ### 2.1 拔高 → 事实
37
+
38
+ 把"这件事意味着什么"换成"这件事变成了什么"。
39
+
40
+ ```
41
+ 原文:他推开门,这一刻标志着某种东西的到来。
42
+ 改后:他推开门。屋里没人应声。
43
+ ```
44
+
45
+ ### 2.2 抽象 → 动作
46
+
47
+ 把形容性的判断换成角色的动作。
48
+
49
+ ```
50
+ 原文:这一战彰显了他的决心。
51
+ 改后:他把刀插回去,手在抖。
52
+ ```
53
+
54
+ ### 2.3 套话 → 具体
55
+
56
+ 把公文腔、助手腔、收尾总结换成角色自己的说法。
57
+
58
+ ```
59
+ 原文:未来一片光明,新的篇章即将开始。
60
+ 改后:天亮之前还来得及。
61
+ ```
62
+
63
+ ### 2.4 排比 → 断句
64
+
65
+ 三个并列的短语拆开,或者只留两个。
66
+
67
+ ```
68
+ 原文:他愤怒、悲伤、绝望。
69
+ 改后:他愤怒。然后是悲伤。最后什么也没有。
70
+ ```
71
+
72
+ **判断标准**:改完这句还是不是这个角色会说的话?是,就对了。
73
+
74
+ ---
75
+
76
+ ## 3. 不要做的事
77
+
78
+ - **不要机械替换**。把"此外,"整段删掉,句子会散架;把"至关重要"换成"重要",语气就飘了。
79
+ - **不要为了凑字数补句子**。去味是减法,不是加法。
80
+ - **不要把口语改成书面语**。AI 腔的反面不是"文雅",是"像人说的"。
81
+ - **不要动剧情、人物、伏笔、字数结构**。改写幅度超过 35% 会被自动回滚。
82
+ - **不要动标题行**(第一行 `# 第N章 <标题>`)。
83
+
84
+ ---
85
+
86
+ ## 4. 24 类 AI 模式清单
87
+
88
+ **只有 `blocking`(11 类)会拦住改写**;`advisory`(13 类)只提示,会写进报告。
89
+
90
+ 下表与 `scripts/ai-patterns.js` 逐条一致(由守卫用例比对,改了一边另一边必须跟着改)。
91
+
92
+ <!-- deslop:patterns -->
93
+ | # | 分组 | 名称 | 级别 |
94
+ |---|---|---|---|
95
+ | 1 | 内容模式 | 过度强调意义 | blocking |
96
+ | 2 | 内容模式 | 过度强调知名度 | advisory |
97
+ | 3 | 内容模式 | -ing 结尾 | blocking |
98
+ | 4 | 内容模式 | 宣传广告词 | blocking |
99
+ | 5 | 内容模式 | 模糊归因 | advisory |
100
+ | 6 | 内容模式 | 挑战展望 | advisory |
101
+ | 7 | 语言和语法模式 | AI 高频词 | blocking |
102
+ | 8 | 语言和语法模式 | 系动词回避 | advisory |
103
+ | 9 | 语言和语法模式 | 否定排比 | blocking |
104
+ | 10 | 语言和语法模式 | 三段式法则 | advisory |
105
+ | 11 | 语言和语法模式 | 同义词循环 | advisory |
106
+ | 12 | 语言和语法模式 | 虚假范围 | advisory |
107
+ | 13 | 风格模式 | 破折号 | advisory |
108
+ | 14 | 风格模式 | 粗体过度 | advisory |
109
+ | 15 | 风格模式 | 内联标题垂直列表 | advisory |
110
+ | 16 | 风格模式 | 标题大写 | advisory |
111
+ | 17 | 风格模式 | 表情符号 | advisory |
112
+ | 18 | 风格模式 | 弯引号 | advisory |
113
+ | 19 | 交流模式 | 协作交流痕迹 | advisory |
114
+ | 20 | 交流模式 | 知识截止日期 | advisory |
115
+ | 21 | 交流模式 | 谄媚语气 | advisory |
116
+ | 22 | 交流模式 | 填充短语 | blocking |
117
+ | 23 | 交流模式 | 过度限定 | blocking |
118
+ | 24 | 交流模式 | 通用积极结论 | blocking |
119
+ <!-- /deslop:patterns -->
120
+
121
+ ---
122
+
123
+ ## 5. 改完自查
124
+
125
+ 1. 复扫(驱动做):`blocking` 是否清零?
126
+ 2. 改动比例(驱动判):是否在 35% 以内?
127
+ 3. 人读一遍:还是不是这个角色会说的话?情节有没有走样?
128
+
129
+ 第 1、2 条由驱动自动判定并回滚;第 3 条只有你自己能判 —— 所以汇报时要写清楚改了什么。
@@ -0,0 +1,98 @@
1
+ # 节奏阶段入口
2
+
3
+ > 本文件是节奏阶段的唯一入口。回答"节奏阶段做什么、按什么顺序读、产出什么"。
4
+ > 本文件不定义方法、不写公式、不写验证逻辑。
5
+
6
+ ---
7
+
8
+ ## 一、阶段目标
9
+
10
+ 把血肉阶段的"档案/图/引擎"排成"有张力的时序"。
11
+
12
+ 回答:哪章升级、哪章高潮、哪章钩子、哪章爽、哪章压制、伏笔在第几章推进。
13
+
14
+ 节奏不通过,不进入写作阶段。
15
+
16
+ ---
17
+
18
+ ## 二、四阶段定位
19
+
20
+ 节奏是四阶段的第三层。按"信息生命期"标准:
21
+ - **骨架**:实体、关系、数量、卷级归属(全书不变,无章节号)
22
+ - **血肉**:每个实体具体什么样(全书不变,无章节号)
23
+ - **节奏**:什么时间发生什么(含章节号)
24
+ - **写作**:具体怎么写
25
+
26
+ 节奏阶段是**唯一允许出现章节号**的阶段。所有章节号集中在 `时序映射.json`。
27
+
28
+ ---
29
+
30
+ ## 三、加载顺序
31
+
32
+ | 序 | 文件 | 作用 |
33
+ |---|---|---|
34
+ | 1 | 01-upgrade-rhythm.md | 升级感三步法 + 升级粒度 + 情绪模块 + 桥段结构 + 嵌套图 |
35
+ | 2 | 02-arc-rhythm.md | 情绪弧线类型 + 叠加规则 + 如何换算到章 |
36
+ | 3 | 03-highpoint-hooks.md | 高潮 8 类 + 章首 7 式 + 章尾 13 式 + 钩子强度 |
37
+ | 4 | 04-satisfaction.md | 爽点分布 + 压制换算 + 期待管理 + 断期待诊断 |
38
+ | 5 | 05-foreshadow-density.md | 伏笔密度方法论 |
39
+ | 6 | 06-chapter-outline.md | 章节细纲排法 + 钩子排布 + 伏笔推进 + 势力出场 |
40
+ | 7 | 07-audit.md | 节奏验证流程与问题记录 |
41
+
42
+ **顺序说明**:01 必须在 02 之前(先定升级节奏和桥段结构,再定情绪弧线)。03 在 01-02 之后(高潮和钩子依赖升级/弧线的定位)。04-05 是分布层(爽点和伏笔的密度)。06 是最后的落地(细纲)。07 是验证。
43
+
44
+ ---
45
+
46
+ ## 四、产出清单
47
+
48
+ | 产出 | 落到哪个 JSON |
49
+ |---|---|
50
+ | 章节归属 | `章节规划.json` 的 `chapters` |
51
+ | 所有实体的章节位置 | `时序映射.json` 的 11 类映射 |
52
+ | 三个核心参数 | `节奏参数.json` 的 `branch_chapter_total` / `overlap_chapter_count` / `main_progress_chapter_count` |
53
+ | 重点章细纲 | `章节细纲.json` 的 `outlines` |
54
+
55
+ **具体数据结构见 `模板/节奏/` 下的 4 个模板**,本文件不重复定义。
56
+
57
+ ---
58
+
59
+ ## 五、决策路由
60
+
61
+ | 你在做什么 | 查 |
62
+ |---|---|
63
+ | 设计升级感 | 01-upgrade-rhythm.md |
64
+ | 定升级粒度 | 01-upgrade-rhythm.md |
65
+ | 排桥段 | 01-upgrade-rhythm.md |
66
+ | 画嵌套图 | 01-upgrade-rhythm.md |
67
+ | 选情绪弧线 | 02-arc-rhythm.md |
68
+ | 弧线叠加 | 02-arc-rhythm.md |
69
+ | 弧线换算章号 | 02-arc-rhythm.md |
70
+ | 定高潮位置 | 03-highpoint-hooks.md |
71
+ | 选章首钩子 | 03-highpoint-hooks.md |
72
+ | 选章尾钩子 | 03-highpoint-hooks.md |
73
+ | 判定钩子强度 | 03-highpoint-hooks.md |
74
+ | 爽点分布 | 04-satisfaction.md |
75
+ | 压制换算 | 04-satisfaction.md |
76
+ | 断期待诊断 | 04-satisfaction.md |
77
+ | 伏笔密度 | 05-foreshadow-density.md |
78
+ | 写章节细纲 | 06-chapter-outline.md |
79
+ | 排布钩子/伏笔/势力出场 | 06-chapter-outline.md |
80
+ | 节奏横向验证 | 07-audit.md |
81
+
82
+ ---
83
+
84
+ ## 六、与其他文件的关系
85
+
86
+ | 本文件作用 | 被谁引用 |
87
+ |---|---|
88
+ | 节奏阶段入口 | `prompts/03-rhythm-prompt.md`(提示词读本文件确定加载顺序) |
89
+
90
+ **本文件本身不直接输出到任何 JSON**,它是导航文件。
91
+
92
+ ---
93
+
94
+ ## 七、版本记录
95
+
96
+ | 版本 | 变更 |
97
+ |---|---|
98
+ | v1.0 | 从原 03-00 精简。删除产出清单里的章节号数字;删除横向验证清单(移到 07-audit.md);明确"章节号独属节奏阶段" |
@@ -0,0 +1,300 @@
1
+ # 升级感与桥段结构
2
+
3
+ > 节奏阶段第 1 份。定升级节奏、情绪模块、桥段结构、卷-单元-桥段-章嵌套。
4
+ > 本文件不写"具体章数"(→ formulas-rhythm.json),不写数据结构(→ 章节规划模板.json),不写验证(→ rhythm-validate.js)。
5
+
6
+ ---
7
+
8
+ ## 一、决策路由
9
+
10
+ | 你在做什么 | 用哪节 |
11
+ |---|---|
12
+ | 设计升级感 | §2 升级感三步法 |
13
+ | 定升级粒度 | §3 升级粒度 |
14
+ | 排桥段 | §4 情绪模块与桥段 |
15
+ | 画嵌套图 | §5 嵌套结构 |
16
+ | 用升级文具体技法 | §6 升级技法 |
17
+
18
+ ---
19
+
20
+ ## 二、升级感三步法
21
+
22
+ ### 2.1 三步
23
+
24
+ **第一步**:列出起点。主角当前的身份、阶层、地位、资源、战力。
25
+
26
+ **第二步**:列出终点。本卷/本阶段结束后的收获和提升。
27
+
28
+ **第三步**:反向设置情绪缺口。
29
+
30
+ | 获得什么 | 铺垫什么 |
31
+ |---|---|
32
+ | 关键道具 | 配角强调稀缺性 + 别人求而不得 + 展示效果 |
33
+ | 地位提升 | 羡慕该地位的权力 + 凸显等级待遇差别 |
34
+ | 人物帮助 | 展示该人物价值 + 别人对他的态度 |
35
+
36
+ ### 2.2 多角度强化对比
37
+
38
+ | 对比维度 | 升级前 | 升级后 |
39
+ |---|---|---|
40
+ | 数值/战力 | 平 A 三百伤害 | 平 A 六百伤害 |
41
+ | 技能数量 | 放完只能躲 | 还有第二个 |
42
+ | 排名/地位 | 没人鸟你 | 有人主动来找你 |
43
+ | 社交态度 | 被嘲笑 | 一片掌声惊叹 |
44
+ | 资源获取 | 苦哈哈攒材料 | 高价值信息主动送上门 |
45
+
46
+ ### 2.3 升级前后铺垫
47
+
48
+ - **升级前**:铺垫未升级时的待遇差距、资源获取难度
49
+ - **升级后**:多方面展示变化——战力、待遇、人际关系、资源获取
50
+
51
+ ### 2.4 即时反馈与延迟反馈
52
+
53
+ | 反馈类型 | 作用 | 示例 |
54
+ |---|---|---|
55
+ | 即时反馈 | 每次行动给小奖励,维持动力 | 打怪掉落 |
56
+ | 延迟反馈 | 积累到一定程度爆发大奖励 | 经验满升级 |
57
+
58
+ ---
59
+
60
+ ## 三、升级粒度
61
+
62
+ ### 3.1 五类粒度
63
+
64
+ 原"主角升级最好不超过三次"实际指"**大境界升级不超过三次/卷**",不是全书。
65
+
66
+ | 粒度 | 定义 | 对应爽感 |
67
+ |---|---|---|
68
+ | 大境界 | 金丹→元婴,跨大阶段 | 最大,身份/地位质变 |
69
+ | 小等级 | 金丹三层→四层 | 中,能力可见提升 |
70
+ | 装备/技能 | 获得新武器/新技能 | 中,战斗手段增加 |
71
+ | 人脉/势力 | 收服盟友/建立势力 | 大,资源结构变化 |
72
+ | 认知/信息 | 知道真相/看破阴谋 | 中,智斗兑现 |
73
+
74
+ ### 3.2 升级频率原则
75
+
76
+ - 大境界:每卷一到两次
77
+ - 小等级:每单元一到两次
78
+ - 每桥段至少一种粒度升级(装备/技能/认知/人脉)
79
+ - **每次升级后必须展示"以前做不到的事"**,否则读者无感
80
+
81
+ **具体的频率区间由 `references/formulas-rhythm.json` 定义**,本文件不重复数字。
82
+
83
+ ### 3.3 升级循环嵌套
84
+
85
+ ```
86
+ 挑战 A 副本 → 获得 B 道具 → 达成 C 目的 → 升级 → 挑战 D 副本
87
+ ```
88
+
89
+ 核心:一直在升级,和为升级做准备。升级后能完成以前做不到的事。
90
+
91
+ **升级循环落在单元层**:一个单元 = 一次完整升级循环(挑战→获得→达成→升级)。桥段是升级循环的子步骤,不独立成循环。
92
+
93
+ ### 3.4 升级后写长的三种方式
94
+
95
+ | 方式 | 操作 |
96
+ |---|---|
97
+ | 扩展地图 | 增加力量体系上限,多层世界设定 |
98
+ | 压等级+复杂化 | 一个晋级目标拆成几段剧情的篇幅 |
99
+ | 转换写作内核 | 从写升级转向写人设——配角线和支线 |
100
+
101
+ ---
102
+
103
+ ## 四、情绪模块与桥段
104
+
105
+ ### 4.1 常用情绪模块
106
+
107
+ #### 英雄救美
108
+ ```
109
+ 关系平平或恶劣 + 危机产生 + 化解危机 + 关系质变
110
+ ```
111
+ 核心:关系质变的爽感。
112
+
113
+ #### 装逼
114
+ ```
115
+ 被打压嘲讽(可选)+ 展示能力 + 打造落差 + 震惊
116
+ ```
117
+ 核心:落差——前后反转 + 平行对比。
118
+
119
+ #### 以小博大
120
+ ```
121
+ 小代价 + 入水之鱼的环境 + 获得大收获
122
+ ```
123
+ 核心:"占了便宜"心理。成本与收获倍数越大,爽感越强。
124
+
125
+ #### 点石成金
126
+ ```
127
+ 不被看好的某物/某人 + 主角改造 + 产生价值
128
+ ```
129
+
130
+ #### 慧眼识真
131
+ ```
132
+ 主角已知价值 + 众人不看好 + 唯有主角知晓的情报 + 真相揭晓 + 众人震惊
133
+ ```
134
+
135
+ #### 歪打正着
136
+ ```
137
+ 暗示宝物重要性 + 主角在错误方向上努力 + 偶然获得宝物 + 众人震惊
138
+ ```
139
+
140
+ #### 少年热血
141
+ ```
142
+ 主角团面对强大恶劣环境 + 明知不可为仍然努力 + 打破困境
143
+ ```
144
+
145
+ #### 临危受命
146
+ ```
147
+ 危机超出现场能力 + 配角穷尽办法无法解决 + 主角接手 + 完成任务
148
+ ```
149
+
150
+ ### 4.2 情绪模块组合
151
+
152
+ | 组合 | 效果 |
153
+ |---|---|
154
+ | 以小博大 + 英雄救美 | 双重爽感 |
155
+ | 点石成金 + 装逼 | 先压抑再爆发 |
156
+ | 少年热血 + 神器认主 | 经典套路 |
157
+ | 临危受命 + 装逼 + 英雄救美 | 危机中展现实力 |
158
+
159
+ ### 4.3 戏剧单元 vs 情绪模块
160
+
161
+ | 维度 | 戏剧单元 | 情绪模块 |
162
+ |---|---|---|
163
+ | 本质 | 构建戏剧性的逻辑结构 | 读者想看什么的情绪需求 |
164
+ | 磨损 | 会磨损 | 不磨损 |
165
+ | 例子 | "误会→冲突→反转" | "读者就想看打脸/追悔" |
166
+
167
+ 一句话判断:能画成流程图的是戏剧单元,能写成"读者就想看 XX"的是情绪模块。
168
+
169
+ ### 4.4 桥段结构
170
+
171
+ 一个完整的桥段是情绪模块的一个循环,包含以下节拍:
172
+
173
+ 1. **代入**:日常 + 熟悉角色互动
174
+ 2. **信息差**:展示对手/困境,让读者知道主角将面对什么
175
+ 3. **拉扯增强**:配角反应,铺垫主角即将爆发
176
+ 4. **兑现**:爽感写透,是最好写的一节
177
+ 5. **承上启下**:收尾或开启下个目标
178
+
179
+ **每个桥段不独立成章**——它是 2-4 章的情绪单元。具体的章数由 `formulas-rhythm.json` 定义。
180
+
181
+ ### 4.5 圈内不圈外原则
182
+
183
+ 先给内容画圈,整本书只在圈内写核心卖点相关。
184
+
185
+ ### 4.6 阶段衔接三种解法
186
+
187
+ 1. **高潮中埋钩子**:上一段高潮扩散中放下段钩子
188
+ 2. **尾巴给目标**:一段结束时给主角明确的下阶段目标
189
+ 3. **连续小期待**:过渡章持续放小钩子
190
+
191
+ ---
192
+
193
+ ## 五、嵌套结构
194
+
195
+ ### 5.1 卷-单元-桥段-章
196
+
197
+ ```
198
+ 卷(含若干单元)
199
+ ├── 单元 U1(含若干桥段)
200
+ │ ├── 桥段 B1(含若干章)
201
+ │ │ ├── 章 1(代入+信息差)
202
+ │ │ ├── 章 2(拉扯增强)
203
+ │ │ ├── 章 3(兑现)
204
+ │ │ └── 章 4(承上启下)
205
+ │ ├── 桥段 B2
206
+ │ └── 单元高潮(落在最后一个桥段的兑现节拍)
207
+ ├── 单元 U2
208
+ ├── 单元 U3
209
+ └── 单元 U4(卷末单元,含大高潮)
210
+ ```
211
+
212
+ ### 5.2 升级循环与嵌套
213
+
214
+ - **单元层** = 升级循环(挑战→获得→达成→升级)
215
+ - **桥段层** = 情绪模块循环(代入→信息差→拉扯→兑现→承上)
216
+ - **章层** = 钩子循环(章首→章内拉扯→章尾钩子)
217
+ - **大高潮跨多个桥段**,小高潮跨若干桥段
218
+
219
+ **具体的卷/单元/桥段/章的章数区间由 `formulas-rhythm.json` 定义**,本文件不重复数字。
220
+
221
+ ### 5.3 高潮节奏铁律
222
+
223
+ **大高潮**、**小高潮**、**高潮后日常过渡**的具体时长由 `formulas-rhythm.json` 定义,本文件不重复数字。核心原则:
224
+ - 大高潮跨多个桥段的兑现节拍
225
+ - 小高潮跨若干桥段
226
+ - 高潮结束后给短暂的日常过渡
227
+
228
+ **超时后果**:大高潮拖延过长读者反感,小高潮拖延节奏拖沓。
229
+
230
+ ---
231
+
232
+ ## 六、升级文具体技法
233
+
234
+ ### 6.1 升级与现实概念关联
235
+
236
+ 越日常越好理解——呼吸变强、睡觉变强、多子多福生崽变强。
237
+
238
+ ### 6.2 挑战-获得-达成-升级循环
239
+
240
+ ```
241
+ 挑战 A 副本 → 获得 B 道具 → 达成 C 目的 → 升级 → 挑战 D 副本
242
+ ```
243
+
244
+ **关键**:一直在升级,和为升级做准备。升级后能完成以前做不到的事。
245
+
246
+ ---
247
+
248
+ ## 七、示例
249
+
250
+ 一本都市复仇文的升级感设计(示意):
251
+
252
+ - **起点**:保安,月薪三千,无枪无背景
253
+ - **终点(第 1 卷)**:拿到关键证人,有了让警方介入的证据
254
+ - **情绪缺口**:证人是一个被园区控制的赌徒,主角需要用"钱 + 威胁 + 承诺"三件套拉他出来
255
+
256
+ **升级粒度**:
257
+ - 大境界:不适用(不是升级流)
258
+ - 小等级:情报等级——从"不知道园区在哪"到"知道园区内部结构"
259
+ - 装备:假身份证、录音笔、微型摄像头
260
+ - 人脉:从前战友老王到园区内线"阿豹"
261
+ - 认知:从"我要一个人杀进去"到"我需要警方介入"
262
+
263
+ **对应到嵌套**:
264
+ - 第 1 卷 = 1 个单元("找证人")
265
+ - 单元内 = 4 个桥段("调查赌徒" → "接近赌徒" → "逼赌徒" → "拿到证据")
266
+ - 每个桥段 = 2-4 章
267
+
268
+ ---
269
+
270
+ ## 八、常见反例
271
+
272
+ | 反例 | 为什么错 | 正确做法 |
273
+ |---|---|---|
274
+ | 主角升级但没有"以前做不到的事" | 读者无感 | 补展示 |
275
+ | 只升级大境界,不升级小等级/装备 | 单元内没有节奏 | 五类粒度组合 |
276
+ | 每个桥段同质化 | 读者疲劳 | 情绪模块组合 |
277
+ | 升级循环落在桥段层 | 桥段装不下完整循环 | 升级循环落在单元层 |
278
+ | 高潮期过长 | 读者跳章 | 按 formulas-rhythm.json 的时长约束 |
279
+
280
+ ---
281
+
282
+ ## 九、与其他文件的关系
283
+
284
+ | 本文件输出 | 落到哪个字段 | 参考哪个公式 | 由哪个脚本验证 |
285
+ |---|---|---|---|
286
+ | 桥段结构 | `章节细纲.json` 的 `outlines[].function_main` / `function_aux` | formulas-rhythm.json 的 `bridge_duration` | `rhythm-validate.js` 的 `RHYTHM_CHAP_RANGE` |
287
+ | 升级粒度 | 不单独字段(思路落地到具体章节细纲) | formulas-rhythm.json 的 `upgrade_frequency` | 无(设计层) |
288
+ | 嵌套结构 | 不单独字段(思路影响章节规划与细纲) | formulas-rhythm.json 的 `climax_duration` / `bridge_duration` / `unit_duration` | `RHYTHM_WORD_TARGET`(word_target 偏离基准) |
289
+
290
+ **不输出到**:
291
+ - 具体章号 → 由 `时序映射.json` 承载,本文件只提供"如何定位"的方法论
292
+ - 具体卷/单元/桥段/章的数量 → 由 `章节规划.json` 承载
293
+
294
+ ---
295
+
296
+ ## 十、版本记录
297
+
298
+ | 版本 | 变更 |
299
+ |---|---|
300
+ | v1.0 | 从原 03-01 精简重组。删除所有具体章数(移到 formulas-rhythm.json);删除检查清单;保留升级感三步法/粒度五分类/情绪模块/桥段结构/嵌套图/升级技法的方法论;新增"与其他文件的关系"节 |
@@ -0,0 +1,168 @@
1
+ # 情绪弧线换算章号
2
+
3
+ > 节奏阶段第 2 份。弧线类型与叠加规则已在血肉阶段确定(血肉指导 04-emotion-methods.md);本文件只讲**如何把弧线的结构段换算成章节号**。
4
+ > 本文件不写具体百分比(→ formulas-rhythm.json 的 `arc_phase_ratio`),不写数据结构(→ 时序映射模板.json)。
5
+
6
+ ---
7
+
8
+ ## 一、决策路由
9
+
10
+ | 你在做什么 | 用哪节 |
11
+ |---|---|
12
+ | 弧线类型回顾 | §2 弧线速查 |
13
+ | 弧线叠加算法 | §3 叠加到章的方法 |
14
+ | 关键点的章号换算 | §4 换算流程 |
15
+ | 中段加压 | §5 加压手段 |
16
+
17
+ ---
18
+
19
+ ## 二、弧线速查(回顾)
20
+
21
+ 六种弧线在血肉阶段已选定(见 `references/血肉指导/04-emotion-methods.md` §2)。本阶段只回顾它们的结构特征与关键点:
22
+
23
+ | 弧线 | 结构特征 | 关键点 |
24
+ |---|---|---|
25
+ | V 形 | 虐完翻盘 | 谷底 |
26
+ | 倒 V 形 | 甜完刀死 | 顶点 |
27
+ | W 形 | 多反转 | 最终峰 |
28
+ | 递进形 | 层层打脸 | 最高点 |
29
+ | 延迟满足 | 隐忍后爆发 | 爆发触发 |
30
+ | 急转形 | 结尾颠覆 | 急转点 |
31
+
32
+ ---
33
+
34
+ ## 三、弧线叠加到章的方法
35
+
36
+ ### 3.1 两种叠加方式
37
+
38
+ | 方式 | 定义 | 适用 |
39
+ |---|---|---|
40
+ | 主副叠加 | 主弧定基调,副弧定转折时机 | 延迟满足 + 急转、V 形 + 急转 |
41
+ | 分段叠加 | 前段用 A 弧,后段用 B 弧 | W 形前半 + 延迟满足后半 |
42
+
43
+ **不超过两种弧线。**
44
+
45
+ ### 3.2 叠加算法(从结构到章)
46
+
47
+ 1. **定主弧**:决定全书情绪基调
48
+ 2. **定副弧**:决定关键转折时机
49
+ 3. **时间轴对齐**:主弧的转折点与副弧的转折点不能冲突。如果冲突,主弧优先,副弧的转折点挪到主弧转折点之前
50
+ 4. **字数分配**:按主弧的字数分配表切分(**具体分配在 `formulas-rhythm.json` 的 `arc_phase_ratio`**),副弧不单独占字数,只在主弧的对应段落内做"转折标记"
51
+ 5. **章节钩子**:以主弧决定章尾钩子基调,副弧转折点所在的章用强钩子
52
+
53
+ ---
54
+
55
+ ## 四、关键点的章号换算流程
56
+
57
+ ### 4.1 换算前提
58
+
59
+ - 从血肉阶段读:本书选哪种弧线(主弧)+ 是否叠加(副弧)
60
+ - 从骨架读:T(目标章节数)、V(卷数)
61
+ - 从 `formulas-rhythm.json` 读:`arc_phase_ratio`(六种弧线的段比例)
62
+
63
+ ### 4.2 换算步骤
64
+
65
+ **步骤 1**:按卷切分
66
+
67
+ - 全书 T 章按卷均分(骨架 `volume_ratio` 定义了每卷的章节比例)
68
+ - 每卷是一个"小弧线"(V 形/倒 V 形/W 形 等),由血肉阶段的"卷级弧线"决定
69
+
70
+ **步骤 2**:每卷内按段切分
71
+
72
+ - 把该卷的章数乘以 `arc_phase_ratio`,得到每段的章数
73
+ - 例如:某卷有若干章,V 形弧线的谷底段占某个比例 → 谷底段章数 = 卷章数 × 谷底段比例
74
+ - 取整后可能有 ±1 章的误差(累积在"治愈段"或"收束段")
75
+
76
+ **步骤 3**:确定关键点的章号
77
+
78
+ - **V 形谷底**:谷底段的"段中点"章
79
+ - **倒 V 形顶点**:顶点段的"段中点"章
80
+ - **W 形最终峰**:最终峰段的"段中点"章
81
+ - **延迟满足爆发触发**:爆发段的"段起点"章
82
+ - **急转点**:急转段的"段中点"章
83
+
84
+ "段中点"章的计算:`段起始章 + floor(段章数 / 2)`
85
+
86
+ **步骤 4**:对齐骨架的章节关键节点
87
+
88
+ - 骨架 `main_line_timeline` 的 `key_nodes` 已经定了一些关键章
89
+ - 弧线关键点必须与这些章中最近的某个对齐(优先选择)
90
+ - 若不对齐,调整为最近的 `key_nodes` 章
91
+
92
+ ### 4.3 换算示例(示意)
93
+
94
+ 假设:
95
+ - 全书 T=300,V=5
96
+ - 每卷约 60 章
97
+ - 每卷选 V 形弧线
98
+ - V 形谷底段占比由 `formulas-rhythm.json` 的 `arc_phase_ratio` 定义
99
+
100
+ **第 1 卷**:
101
+ - 卷起始章 = 1,卷结束章 = 60
102
+ - 谷底段章数 = 60 × 谷底段比例
103
+ - 谷底段起始章 = 卷起始章 + 前段累计章数
104
+ - 谷底点 = 谷底段起始章 + floor(谷底段章数 / 2)
105
+ - 假设计算结果为"第 25 章",则第 25 章是 V 形谷底点
106
+
107
+ **对齐骨架**:
108
+ - 骨架 `main_line_timeline` 的第 1 卷 key_nodes 中有第 26 章"主角第一次反击"
109
+ - 则把谷底点定在第 26 章(对齐 key_node)
110
+
111
+ ---
112
+
113
+ ## 五、中段加压四手段
114
+
115
+ (具体手段选择与节奏无关,只影响情绪值;与血肉阶段的 `escalation_path` 联动)
116
+
117
+ 1. **公开升级**:把私下伤害搬到公开场合(家宴、公司会议、直播、典礼)
118
+ 2. **双重背叛**:已知一层背叛后再加一层(经济背叛、名誉背叛、立场反转、证据篡改)
119
+ 3. **代价加速**:不行动的代价不断升高(失去机会、当众羞辱、连累他人)
120
+ 4. **战略性沉默**:主角暂不反击,沉默本身持续加压(他人误读、反派更放肆)
121
+
122
+ **中段加压的具体位置** → 由换算后的弧线段决定,落在谷底前的"下沉段"内。加压的具体章节位置落在 `时序映射.json` 的 `conflict_timeline[].escalation_nodes` 中。
123
+
124
+ ---
125
+
126
+ ## 六、落点对照表
127
+
128
+ | 弧线关键点 | 落到 `时序映射.json` 的哪个字段 |
129
+ |---|---|
130
+ | V 形谷底 | `character_timeline[].arc_stages[].chapter` 中的"谷底"阶段章 + `conflict_timeline[].escalation_nodes` 中的"高潮"节点 + `climax_timeline` 中的"中高潮"或"大高潮"章 |
131
+ | 倒 V 形顶点 | `climax_timeline` 中的"大高潮"章 + `conflict_timeline[].resolution_chapter` |
132
+ | W 形最终峰 | `climax_timeline` 中的最后一波"大高潮"章 |
133
+ | 延迟满足爆发 | `conflict_timeline[].escalation_nodes` 中的"转折"或"高潮"节点 + `pleasure_timeline` 中对应的"大爽点"章 |
134
+ | 急转点 | `main_line_timeline[].key_nodes` 中对应"转折"的章节 + `hook_timeline` 中的"强"钩子章 |
135
+
136
+ ---
137
+
138
+ ## 七、常见反例
139
+
140
+ | 反例 | 为什么错 | 正确做法 |
141
+ |---|---|---|
142
+ | 弧线关键点不对齐骨架 key_nodes | 节奏与大纲脱节 | 对齐最近的 key_node |
143
+ | 叠加超过两种弧线 | 节奏乱 | 只保留两种 |
144
+ | 副弧的转折点与主弧冲突 | 读者混乱 | 副弧挪到主弧转折点前 |
145
+ | 关键点落在两卷之间 | 归属不清 | 归入后一卷(高潮延续到下一卷) |
146
+ | 中段加压只有一种 | 力度不够 | 至少两种组合 |
147
+
148
+ ---
149
+
150
+ ## 八、与其他文件的关系
151
+
152
+ | 本文件输出 | 落到哪个字段 | 参考哪个公式 | 由哪个脚本验证 |
153
+ |---|---|---|---|
154
+ | 弧线关键点章号 | `character_timeline[].arc_stages[].chapter` / `climax_timeline[].chapter` / `conflict_timeline[].escalation_nodes[].chapter` | formulas-rhythm.json 的 `arc_phase_ratio` | `rhythm-validate.js` 的 `RHYTHM_TIMING` / `RHYTHM_ARC_OUT_OF_SPAN` |
155
+ | 叠加标记 | 不单独字段(影响 `章节细纲.json` 的 `emotion_phase`) | 无 | 无 |
156
+ | 中段加压位置 | `conflict_timeline[].escalation_nodes` | 无 | `RHYTHM_TIMING`(节点递增) |
157
+
158
+ **不输出到**:
159
+ - 弧线类型本身 → 已在血肉阶段 `角色.json` 的 `arc_type` 与 `arc_change_descriptions` 中确定
160
+ - 弧线段的具体百分比 → 由 `formulas-rhythm.json` 定义,本文件不重复
161
+
162
+ ---
163
+
164
+ ## 九、版本记录
165
+
166
+ | 版本 | 变更 |
167
+ |---|---|
168
+ | v1.0 | 从原 02-03 §2-4 提取重组。删除具体百分比和字数分配表(移到 formulas-rhythm.json);只保留"如何从结构段换算到章号"的方法论;新增"落点对照表"明确输出到哪些字段 |