@actalk/inkos-core 1.4.1 → 1.5.0-canary.47.1

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 (262) hide show
  1. package/dist/agent/agent-session.d.ts +15 -0
  2. package/dist/agent/agent-session.d.ts.map +1 -1
  3. package/dist/agent/agent-session.js +256 -26
  4. package/dist/agent/agent-session.js.map +1 -1
  5. package/dist/agent/agent-system-prompt.d.ts +8 -1
  6. package/dist/agent/agent-system-prompt.d.ts.map +1 -1
  7. package/dist/agent/agent-system-prompt.js +382 -176
  8. package/dist/agent/agent-system-prompt.js.map +1 -1
  9. package/dist/agent/agent-tools.d.ts +156 -19
  10. package/dist/agent/agent-tools.d.ts.map +1 -1
  11. package/dist/agent/agent-tools.js +980 -46
  12. package/dist/agent/agent-tools.js.map +1 -1
  13. package/dist/agent/context-transform.d.ts +4 -1
  14. package/dist/agent/context-transform.d.ts.map +1 -1
  15. package/dist/agent/context-transform.js +104 -9
  16. package/dist/agent/context-transform.js.map +1 -1
  17. package/dist/agent/index.d.ts +1 -1
  18. package/dist/agent/index.d.ts.map +1 -1
  19. package/dist/agent/index.js +1 -1
  20. package/dist/agent/index.js.map +1 -1
  21. package/dist/agents/architect.d.ts +11 -1
  22. package/dist/agents/architect.d.ts.map +1 -1
  23. package/dist/agents/architect.js +242 -114
  24. package/dist/agents/architect.js.map +1 -1
  25. package/dist/agents/chapter-analyzer.js +1 -1
  26. package/dist/agents/chapter-analyzer.js.map +1 -1
  27. package/dist/agents/composer.d.ts +36 -0
  28. package/dist/agents/composer.d.ts.map +1 -1
  29. package/dist/agents/composer.js +503 -20
  30. package/dist/agents/composer.js.map +1 -1
  31. package/dist/agents/continuity.d.ts +3 -0
  32. package/dist/agents/continuity.d.ts.map +1 -1
  33. package/dist/agents/continuity.js +28 -14
  34. package/dist/agents/continuity.js.map +1 -1
  35. package/dist/agents/en-prompt-sections.d.ts.map +1 -1
  36. package/dist/agents/en-prompt-sections.js +15 -1
  37. package/dist/agents/en-prompt-sections.js.map +1 -1
  38. package/dist/agents/fanfic-canon-importer.d.ts +1 -0
  39. package/dist/agents/fanfic-canon-importer.d.ts.map +1 -1
  40. package/dist/agents/fanfic-canon-importer.js +53 -6
  41. package/dist/agents/fanfic-canon-importer.js.map +1 -1
  42. package/dist/agents/foundation-reviewer.d.ts +1 -0
  43. package/dist/agents/foundation-reviewer.d.ts.map +1 -1
  44. package/dist/agents/foundation-reviewer.js +17 -12
  45. package/dist/agents/foundation-reviewer.js.map +1 -1
  46. package/dist/agents/length-normalizer.d.ts +1 -0
  47. package/dist/agents/length-normalizer.d.ts.map +1 -1
  48. package/dist/agents/length-normalizer.js +16 -3
  49. package/dist/agents/length-normalizer.js.map +1 -1
  50. package/dist/agents/planner-prompts.d.ts +7 -7
  51. package/dist/agents/planner-prompts.d.ts.map +1 -1
  52. package/dist/agents/planner-prompts.js +29 -29
  53. package/dist/agents/planner-prompts.js.map +1 -1
  54. package/dist/agents/planner.d.ts +6 -5
  55. package/dist/agents/planner.d.ts.map +1 -1
  56. package/dist/agents/planner.js +90 -6
  57. package/dist/agents/planner.js.map +1 -1
  58. package/dist/agents/post-write-validator.d.ts.map +1 -1
  59. package/dist/agents/post-write-validator.js +49 -0
  60. package/dist/agents/post-write-validator.js.map +1 -1
  61. package/dist/agents/reviser.js +10 -0
  62. package/dist/agents/reviser.js.map +1 -1
  63. package/dist/agents/rules-reader.d.ts +6 -14
  64. package/dist/agents/rules-reader.d.ts.map +1 -1
  65. package/dist/agents/rules-reader.js +15 -28
  66. package/dist/agents/rules-reader.js.map +1 -1
  67. package/dist/agents/short-fiction.d.ts +4 -0
  68. package/dist/agents/short-fiction.d.ts.map +1 -1
  69. package/dist/agents/short-fiction.js +51 -8
  70. package/dist/agents/short-fiction.js.map +1 -1
  71. package/dist/agents/state-validator.d.ts +0 -2
  72. package/dist/agents/state-validator.d.ts.map +1 -1
  73. package/dist/agents/state-validator.js +4 -16
  74. package/dist/agents/state-validator.js.map +1 -1
  75. package/dist/agents/style-analyzer.d.ts +1 -1
  76. package/dist/agents/style-analyzer.d.ts.map +1 -1
  77. package/dist/agents/style-analyzer.js +34 -17
  78. package/dist/agents/style-analyzer.js.map +1 -1
  79. package/dist/agents/writer-prompts.d.ts.map +1 -1
  80. package/dist/agents/writer-prompts.js +160 -12
  81. package/dist/agents/writer-prompts.js.map +1 -1
  82. package/dist/agents/writer.d.ts.map +1 -1
  83. package/dist/agents/writer.js +31 -9
  84. package/dist/agents/writer.js.map +1 -1
  85. package/dist/index.d.ts +18 -7
  86. package/dist/index.d.ts.map +1 -1
  87. package/dist/index.js +17 -7
  88. package/dist/index.js.map +1 -1
  89. package/dist/interaction/action-envelope.d.ts +261 -0
  90. package/dist/interaction/action-envelope.d.ts.map +1 -0
  91. package/dist/interaction/action-envelope.js +102 -0
  92. package/dist/interaction/action-envelope.js.map +1 -0
  93. package/dist/interaction/book-session-store.d.ts +6 -2
  94. package/dist/interaction/book-session-store.d.ts.map +1 -1
  95. package/dist/interaction/book-session-store.js +21 -3
  96. package/dist/interaction/book-session-store.js.map +1 -1
  97. package/dist/interaction/edit-controller.d.ts +5 -0
  98. package/dist/interaction/edit-controller.d.ts.map +1 -1
  99. package/dist/interaction/edit-controller.js +123 -26
  100. package/dist/interaction/edit-controller.js.map +1 -1
  101. package/dist/interaction/events.d.ts +4 -4
  102. package/dist/interaction/intents.d.ts +9 -6
  103. package/dist/interaction/intents.d.ts.map +1 -1
  104. package/dist/interaction/intents.js +2 -1
  105. package/dist/interaction/intents.js.map +1 -1
  106. package/dist/interaction/project-control.d.ts +3 -43
  107. package/dist/interaction/project-control.d.ts.map +1 -1
  108. package/dist/interaction/project-control.js +1 -53
  109. package/dist/interaction/project-control.js.map +1 -1
  110. package/dist/interaction/project-tools.d.ts +1 -1
  111. package/dist/interaction/project-tools.d.ts.map +1 -1
  112. package/dist/interaction/project-tools.js +41 -185
  113. package/dist/interaction/project-tools.js.map +1 -1
  114. package/dist/interaction/runtime.d.ts +1 -1
  115. package/dist/interaction/runtime.d.ts.map +1 -1
  116. package/dist/interaction/runtime.js +49 -75
  117. package/dist/interaction/runtime.js.map +1 -1
  118. package/dist/interaction/session-transcript-legacy.d.ts.map +1 -1
  119. package/dist/interaction/session-transcript-legacy.js +2 -0
  120. package/dist/interaction/session-transcript-legacy.js.map +1 -1
  121. package/dist/interaction/session-transcript-restore.d.ts +4 -3
  122. package/dist/interaction/session-transcript-restore.d.ts.map +1 -1
  123. package/dist/interaction/session-transcript-restore.js +234 -34
  124. package/dist/interaction/session-transcript-restore.js.map +1 -1
  125. package/dist/interaction/session-transcript-schema.d.ts +45 -12
  126. package/dist/interaction/session-transcript-schema.d.ts.map +1 -1
  127. package/dist/interaction/session-transcript-schema.js +6 -0
  128. package/dist/interaction/session-transcript-schema.js.map +1 -1
  129. package/dist/interaction/session-transcript.d.ts +8 -1
  130. package/dist/interaction/session-transcript.d.ts.map +1 -1
  131. package/dist/interaction/session-transcript.js +13 -1
  132. package/dist/interaction/session-transcript.js.map +1 -1
  133. package/dist/interaction/session.d.ts +78 -66
  134. package/dist/interaction/session.d.ts.map +1 -1
  135. package/dist/interaction/session.js +10 -2
  136. package/dist/interaction/session.js.map +1 -1
  137. package/dist/llm/provider.d.ts +32 -34
  138. package/dist/llm/provider.d.ts.map +1 -1
  139. package/dist/llm/provider.js +144 -127
  140. package/dist/llm/provider.js.map +1 -1
  141. package/dist/models/book-rules.d.ts +6 -4
  142. package/dist/models/book-rules.d.ts.map +1 -1
  143. package/dist/models/book-rules.js +187 -8
  144. package/dist/models/book-rules.js.map +1 -1
  145. package/dist/models/context-compression.d.ts +13 -0
  146. package/dist/models/context-compression.d.ts.map +1 -0
  147. package/dist/models/context-compression.js +2 -0
  148. package/dist/models/context-compression.js.map +1 -0
  149. package/dist/models/input-governance.d.ts +53 -12
  150. package/dist/models/input-governance.d.ts.map +1 -1
  151. package/dist/models/input-governance.js +16 -0
  152. package/dist/models/input-governance.js.map +1 -1
  153. package/dist/models/play.d.ts +530 -0
  154. package/dist/models/play.d.ts.map +1 -0
  155. package/dist/models/play.js +318 -0
  156. package/dist/models/play.js.map +1 -0
  157. package/dist/models/project.d.ts +8 -0
  158. package/dist/models/project.d.ts.map +1 -1
  159. package/dist/models/project.js +1 -0
  160. package/dist/models/project.js.map +1 -1
  161. package/dist/pipeline/chapter-review-cycle.d.ts.map +1 -1
  162. package/dist/pipeline/chapter-review-cycle.js +29 -3
  163. package/dist/pipeline/chapter-review-cycle.js.map +1 -1
  164. package/dist/pipeline/persisted-governed-plan.d.ts.map +1 -1
  165. package/dist/pipeline/persisted-governed-plan.js +98 -49
  166. package/dist/pipeline/persisted-governed-plan.js.map +1 -1
  167. package/dist/pipeline/runner.d.ts +31 -0
  168. package/dist/pipeline/runner.d.ts.map +1 -1
  169. package/dist/pipeline/runner.js +212 -68
  170. package/dist/pipeline/runner.js.map +1 -1
  171. package/dist/pipeline/short-fiction-runner.d.ts +14 -0
  172. package/dist/pipeline/short-fiction-runner.d.ts.map +1 -1
  173. package/dist/pipeline/short-fiction-runner.js +242 -94
  174. package/dist/pipeline/short-fiction-runner.js.map +1 -1
  175. package/dist/play/play-agents.d.ts +71 -0
  176. package/dist/play/play-agents.d.ts.map +1 -0
  177. package/dist/play/play-agents.js +511 -0
  178. package/dist/play/play-agents.js.map +1 -0
  179. package/dist/play/play-db-factory.d.ts +9 -0
  180. package/dist/play/play-db-factory.d.ts.map +1 -0
  181. package/dist/play/play-db-factory.js +18 -0
  182. package/dist/play/play-db-factory.js.map +1 -0
  183. package/dist/play/play-db.d.ts +22 -0
  184. package/dist/play/play-db.d.ts.map +1 -0
  185. package/dist/play/play-db.js +248 -0
  186. package/dist/play/play-db.js.map +1 -0
  187. package/dist/play/play-file-db.d.ts +32 -0
  188. package/dist/play/play-file-db.d.ts.map +1 -0
  189. package/dist/play/play-file-db.js +156 -0
  190. package/dist/play/play-file-db.js.map +1 -0
  191. package/dist/play/play-image.d.ts +58 -0
  192. package/dist/play/play-image.d.ts.map +1 -0
  193. package/dist/play/play-image.js +142 -0
  194. package/dist/play/play-image.js.map +1 -0
  195. package/dist/play/play-reducer.d.ts +31 -0
  196. package/dist/play/play-reducer.d.ts.map +1 -0
  197. package/dist/play/play-reducer.js +261 -0
  198. package/dist/play/play-reducer.js.map +1 -0
  199. package/dist/play/play-runner.d.ts +102 -0
  200. package/dist/play/play-runner.d.ts.map +1 -0
  201. package/dist/play/play-runner.js +465 -0
  202. package/dist/play/play-runner.js.map +1 -0
  203. package/dist/play/play-store.d.ts +112 -0
  204. package/dist/play/play-store.d.ts.map +1 -0
  205. package/dist/play/play-store.js +311 -0
  206. package/dist/play/play-store.js.map +1 -0
  207. package/dist/prompts/short-fiction.d.ts +5 -0
  208. package/dist/prompts/short-fiction.d.ts.map +1 -1
  209. package/dist/prompts/short-fiction.js +46 -22
  210. package/dist/prompts/short-fiction.js.map +1 -1
  211. package/dist/state/state-bootstrap.d.ts.map +1 -1
  212. package/dist/state/state-bootstrap.js +12 -25
  213. package/dist/state/state-bootstrap.js.map +1 -1
  214. package/dist/state/state-reducer.js +31 -22
  215. package/dist/state/state-reducer.js.map +1 -1
  216. package/dist/utils/book-eval.d.ts +35 -0
  217. package/dist/utils/book-eval.d.ts.map +1 -0
  218. package/dist/utils/book-eval.js +116 -0
  219. package/dist/utils/book-eval.js.map +1 -0
  220. package/dist/utils/chapter-memo-parser.d.ts +10 -7
  221. package/dist/utils/chapter-memo-parser.d.ts.map +1 -1
  222. package/dist/utils/chapter-memo-parser.js +86 -43
  223. package/dist/utils/chapter-memo-parser.js.map +1 -1
  224. package/dist/utils/context-assembly.d.ts +2 -0
  225. package/dist/utils/context-assembly.d.ts.map +1 -1
  226. package/dist/utils/context-assembly.js +38 -1
  227. package/dist/utils/context-assembly.js.map +1 -1
  228. package/dist/utils/hook-health.d.ts.map +1 -1
  229. package/dist/utils/hook-health.js +5 -2
  230. package/dist/utils/hook-health.js.map +1 -1
  231. package/dist/utils/hook-ledger-validator.d.ts +1 -1
  232. package/dist/utils/hook-ledger-validator.d.ts.map +1 -1
  233. package/dist/utils/hook-ledger-validator.js +5 -5
  234. package/dist/utils/hook-ledger-validator.js.map +1 -1
  235. package/dist/utils/hook-lifecycle.d.ts +1 -0
  236. package/dist/utils/hook-lifecycle.d.ts.map +1 -1
  237. package/dist/utils/hook-lifecycle.js +10 -3
  238. package/dist/utils/hook-lifecycle.js.map +1 -1
  239. package/dist/utils/language.d.ts +10 -0
  240. package/dist/utils/language.d.ts.map +1 -0
  241. package/dist/utils/language.js +18 -0
  242. package/dist/utils/language.js.map +1 -0
  243. package/dist/utils/length-metrics.d.ts +3 -0
  244. package/dist/utils/length-metrics.d.ts.map +1 -1
  245. package/dist/utils/length-metrics.js +8 -0
  246. package/dist/utils/length-metrics.js.map +1 -1
  247. package/dist/utils/memory-retrieval.d.ts.map +1 -1
  248. package/dist/utils/memory-retrieval.js +19 -15
  249. package/dist/utils/memory-retrieval.js.map +1 -1
  250. package/dist/utils/outline-paths.d.ts +12 -0
  251. package/dist/utils/outline-paths.d.ts.map +1 -1
  252. package/dist/utils/outline-paths.js +68 -0
  253. package/dist/utils/outline-paths.js.map +1 -1
  254. package/package.json +1 -1
  255. package/dist/interaction/nl-router.d.ts +0 -8
  256. package/dist/interaction/nl-router.d.ts.map +0 -1
  257. package/dist/interaction/nl-router.js +0 -218
  258. package/dist/interaction/nl-router.js.map +0 -1
  259. package/dist/pipeline/agent.d.ts +0 -15
  260. package/dist/pipeline/agent.d.ts.map +0 -1
  261. package/dist/pipeline/agent.js +0 -597
  262. package/dist/pipeline/agent.js.map +0 -1
@@ -8,9 +8,13 @@ export function buildWriterSystemPrompt(book, genreProfile, bookRules, bookRules
8
8
  const isEnglish = (languageOverride ?? genreProfile.language) === "en";
9
9
  const governed = inputProfile === "governed";
10
10
  const resolvedLengthSpec = lengthSpec ?? buildLengthSpec(book.chapterWordCount, isEnglish ? "en" : "zh");
11
- const outputSection = mode === "creative"
12
- ? buildCreativeOutputFormat(book, genreProfile, resolvedLengthSpec)
13
- : buildOutputFormat(book, genreProfile, resolvedLengthSpec);
11
+ const outputSection = isEnglish
12
+ ? (mode === "creative"
13
+ ? buildEnglishCreativeOutputFormat(book, genreProfile, resolvedLengthSpec)
14
+ : buildEnglishOutputFormat(book, genreProfile, resolvedLengthSpec))
15
+ : (mode === "creative"
16
+ ? buildCreativeOutputFormat(book, genreProfile, resolvedLengthSpec)
17
+ : buildOutputFormat(book, genreProfile, resolvedLengthSpec));
14
18
  const sections = isEnglish
15
19
  ? [
16
20
  buildEnglishGenreIntro(book, genreProfile),
@@ -19,11 +23,13 @@ export function buildWriterSystemPrompt(book, genreProfile, bookRules, bookRules
19
23
  buildChapterMemoContract("en", governed),
20
24
  buildLengthGuidance(resolvedLengthSpec, "en"),
21
25
  buildWritingCraftCard("en"),
26
+ buildProseExecutionRules("en"),
22
27
  buildCreativeConstitution("en"),
23
28
  buildImmersionPillars("en"),
24
29
  buildGoldenOpeningDiscipline(chapterNumber, "en"),
25
30
  buildGenreRules(genreProfile, genreBody),
26
31
  buildProtagonistRules(bookRules),
32
+ buildNarrativePersonRule(bookRules, isEnglish ? "en" : "zh"),
27
33
  buildBookRulesBody(bookRulesBody),
28
34
  buildStyleGuide(styleGuide),
29
35
  buildStyleFingerprint(styleFingerprint),
@@ -40,6 +46,7 @@ export function buildWriterSystemPrompt(book, genreProfile, bookRules, bookRules
40
46
  buildChapterMemoContract("zh", governed),
41
47
  buildLengthGuidance(resolvedLengthSpec, "zh"),
42
48
  buildWritingCraftCard("zh"),
49
+ buildProseExecutionRules("zh"),
43
50
  buildCreativeConstitution("zh"),
44
51
  buildImmersionPillars("zh"),
45
52
  buildGoldenOpeningDiscipline(chapterNumber, "zh"),
@@ -47,6 +54,7 @@ export function buildWriterSystemPrompt(book, genreProfile, bookRules, bookRules
47
54
  bookRules?.enableFullCastTracking ? buildFullCastTracking() : "",
48
55
  buildGenreRules(genreProfile, genreBody),
49
56
  buildProtagonistRules(bookRules),
57
+ buildNarrativePersonRule(bookRules, isEnglish ? "en" : "zh"),
50
58
  buildBookRulesBody(bookRulesBody),
51
59
  buildStyleGuide(styleGuide),
52
60
  buildStyleFingerprint(styleFingerprint),
@@ -93,7 +101,7 @@ function buildGovernedInputContract(language, governed) {
93
101
  - 多角色场景里,至少给出一轮带阻力的直接交锋,不要把人物关系写成纯解释或纯总结。`;
94
102
  }
95
103
  // ---------------------------------------------------------------------------
96
- // Chapter memo alignment — 7 sections from new.txt methodology
104
+ // Chapter memo alignment — 7 sections from mobile web-fiction craft methodology
97
105
  // ---------------------------------------------------------------------------
98
106
  function buildChapterMemoContract(language, governed) {
99
107
  if (!governed)
@@ -112,7 +120,7 @@ You will receive a chapter_memo composed of 7 markdown sections:
112
120
  - ## 本章 hook 账 → **hard correspondence rule**: each hook_id listed under advance/resolve MUST have a **concretely locatable payoff scene** in the prose — explicit characters acting on or talking about a specific object/event/piece of information, with observable actions. No "sideways hints" or "deferred to next chapter". Example: if the memo says 'advance: H007 Huzi's IOU → planted → pressured', the prose must contain a scene where Lin Qiu actually touches / sees / picks up that specific IOU and does something. An inner mention like "he remembered the IOU was still in the drawer" does NOT count. Each advance/resolve payoff scene must be at least 60 chars. Entries under defer need no prose. Entries under open only need a natural new-hook seed near the chapter end
113
121
  - ## 不要做 → hard prohibitions for this chapter
114
122
 
115
- Address each section in order when drafting the chapter. Every section must leave a visible trace in the prose — if a section is not reflected, the chapter is incomplete. **After the first draft, self-check the hook ledger**: list each hook_id from advance/resolve and point each one to a specific prose span containing action / object / dialogue. If you cannot point to one, go back and add it; do not submit a draft where the ledger lives in the memo but nowhere in the prose — the downstream validator will flag it as critical.`;
123
+ Address each section in order when drafting the chapter. Every section must leave a visible trace in the prose — if a section is not reflected, the chapter is incomplete. **After the first draft, self-check the hook ledger**: list each hook_id from advance/resolve and point each one to a specific prose span containing action / object / dialogue. If you cannot point to one, go back and add it; do not submit a draft where the ledger lives in the memo but nowhere in the prose — review will flag the missing payoff and ask for a concrete scene.`;
116
124
  }
117
125
  return `## 章节备忘对齐
118
126
 
@@ -127,7 +135,7 @@ Address each section in order when drafting the chapter. Every section must leav
127
135
  - ## 本章 hook 账 → **硬对应规则**:advance/resolve 下面列出的每一个 hook_id 都必须在正文里有一个**具体可定位的兑现段**——写明人物对着什么物件/事件/信息做出什么可观察的动作或交谈。不允许"侧面暗示""留给下章"。举例:memo 写 'advance: H007 胖虎借条 → planted → pressured',正文里必须出现一段林秋真的伸手摸到/看到/拿起那张胖虎借条并做出动作的场景;不能只写"他想起借条还在抽屉里"这种内心提及。每个 advance/resolve 的 hook 兑现段至少 60 字。defer 下的不用落,open 段只需要在章末附近安排一个自然引出的新悬念即可
128
136
  - ## 不要做 → 硬约束红线
129
137
 
130
- 写作时按段落顺序落实,每一段都要在正文里有对应的兑现痕迹。如果某一段没有体现到正文里,本章不算完成。**写完初稿后自检一遍 hook 账**:把 advance 和 resolve 的 hook_id 列下来,对照正文,确认每一个都能指到一段带具体动作/物件/对话的 prose。如果指不到,回去补写;不要提交"账本在 memo 里、正文里没落"的稿子——下游 validator 会直接判 critical 退稿。`;
138
+ 写作时按段落顺序落实,每一段都要在正文里有对应的兑现痕迹。如果某一段没有体现到正文里,本章不算完成。**写完初稿后自检一遍 hook 账**:把 advance 和 resolve 的 hook_id 列下来,对照正文,确认每一个都能指到一段带具体动作/物件/对话的 prose。如果指不到,回去补写;不要提交"账本在 memo 里、正文里没落"的稿子——审稿会标记缺口并要求补出具体场景。`;
131
139
  }
132
140
  function buildLengthGuidance(lengthSpec, language) {
133
141
  if (language === "en") {
@@ -172,7 +180,7 @@ function buildCoreRules(lengthSpec) {
172
180
  - 描写必须服务叙事:环境描写烘托氛围或暗示情节,一笔带过即可;禁止无效描写
173
181
  - 日常/过渡段落必须为后续剧情服务:或埋伏笔,或推进关系,或建立反差。纯填充式日常是流水账的温床
174
182
 
175
- ## 看点密集度(番茄老师鎏旗,硬尺)
183
+ ## 看点密集度(硬尺)
176
184
 
177
185
  本章正文从头到尾必须满足以下节奏,写完后自检:
178
186
 
@@ -182,7 +190,7 @@ function buildCoreRules(lengthSpec) {
182
190
  - 不靠密度堆砌糊弄——单章里的爽点/钩子/悬念必须服务于本章 goal,不能是和主线无关的孤立段落
183
191
  - 如果某段连续 300 字以上是环境、回忆、议论、心理独白而没有推进主线或制造看点,就是水文,必须删或改
184
192
  - **密度是靠段落内的语义密度实现,不是靠把段落切碎**:
185
- - 叙事段(非对话)**必须 ≥ 40 字**——差不多是手机屏 2 行,低于这个数就是"一句动作 / 一句观察 / 一句反应各自一段",直接违反 new.txt 的"每段 3-5 行手机阅读"准则
193
+ - 叙事段(非对话)**必须 ≥ 40 字**——差不多是手机屏 2 行,低于这个数就是"一句动作 / 一句观察 / 一句反应各自一段",直接违反移动端阅读节奏准则
186
194
  - 目标长度:叙事段 40-120 字(3-5 行手机屏),允许偶尔到 150 字讲一段连贯动作链
187
195
  - 对话段落不算入"短段"——它天然短,无需并段
188
196
  - **短段(<40 字)只在三个场景允许独立成段**:(1) 开场前 300 字里的反转金句(如"她突然跪下"),(2) 章末钩子最后一句(action-climax 定格),(3) 单章 ≤ 3 个"爆点短段"(一击命中、改变局势的关键台词、定格镜头)
@@ -195,7 +203,7 @@ function buildCoreRules(lengthSpec) {
195
203
  - ✗ "他一愣。/ 手停了。/ 嘴唇发白。"(3 连心理反应各自一段)
196
204
  - ✓ "他一愣,手停了,嘴唇发白。"(并段为 1 句节奏紧凑的叙事)
197
205
 
198
- ## 章节 80/20 断章(番茄老师弈青锋,硬尺)
206
+ ## 章节 80/20 断章(硬尺)
199
207
 
200
208
  - **永远不要在一章里把本章故事讲完**:本章的主剧情写到 80%,剩下 20% 留给下一章开头消化/揭示/后果
201
209
  - 章末必须断在 action-climax 的那一刻:主角刚放大招尚未见效 / 刚拔刀尚未落下 / 刚塞出银行卡尚未转身——不给结果,让读者到下一章才看到
@@ -466,15 +474,15 @@ export function buildGoldenOpeningDiscipline(chapterNumber, language) {
466
474
  if (language === "en") {
467
475
  return `## Golden Opening Discipline — Chapter ${chapterNumber}
468
476
 
469
- This is chapter ${chapterNumber} of the opening three — your prose directly decides whether the reader stays. The Golden Three Chapters rule from new.txt is a hard constraint on your sentences, not advice. Chapter 1: within the first 800 words the protagonist must trip the main-line conflict (chase, dead-end, dispossession, transmigration-as-crisis); long background paragraphs are forbidden, and worldbuilding rides on the protagonist's actions instead of being explained in a block. **The last sentence of the first 300 words (the reader's first phone screen) must land a dramatic / reversal / striking beat — "Officer, I transmigrated"-level, "I'll probably die tomorrow"-level, "I'm attending my own funeral"-level — not background or scene-setting. When the reader scrolls to the bottom of the first screen they must feel pulled into the next line.** Chapter 2: the edge — power, system, rebirth-memory, information advantage — must be **performed** (one concrete event of using it, with a visible consequence), not **announced** (a narrator paragraph saying it exists). Chapter 3: somewhere in this chapter the protagonist's next quantifiable short-term goal must surface, so the reader can name what comes next when they close the page.
477
+ This is chapter ${chapterNumber} of the opening three — your prose directly decides whether the reader stays. The Golden Three Chapters rule is a hard constraint on your sentences, not advice. Chapter 1: within the first 800 words the protagonist must trip the main-line conflict (chase, dead-end, dispossession, transmigration-as-crisis); long background paragraphs are forbidden, and worldbuilding rides on the protagonist's actions instead of being explained in a block. **The last sentence of the first 300 words (the reader's first phone screen) must land a dramatic / reversal / striking beat — "Officer, I transmigrated"-level, "I'll probably die tomorrow"-level, "I'm attending my own funeral"-level — not background or scene-setting. When the reader scrolls to the bottom of the first screen they must feel pulled into the next line.** Chapter 2: the edge — power, system, rebirth-memory, information advantage — must be **performed** (one concrete event of using it, with a visible consequence), not **announced** (a narrator paragraph saying it exists). Chapter 3: somewhere in this chapter the protagonist's next quantifiable short-term goal must surface, so the reader can name what comes next when they close the page.
470
478
 
471
479
  The discipline that runs across all three opening chapters: paragraphs of three to five lines (mobile reading), verbs over adjectives, and every chapter ends on a small hook — a cliff, an unresolved question, or an emotional gap. **At most two scenes and at most two named characters who actually clash in the chapter (protagonist + one trigger/opponent; walk-on roles get a role label only, no name, no expansion). Editor Cong Yue's rule tightens the cap from 3 to 2 — readers already mix up 3.** Information is layered into action: basic facts (looks, status, situation) emerge from what the protagonist does; key world rules (system mechanics, the deeper logic) attach to plot triggers; a paragraph of pure exposition is forbidden.`;
472
480
  }
473
481
  return `## 黄金三章写作纪律 — 第 ${chapterNumber} 章
474
482
 
475
- 这是开篇三章中的第 ${chapterNumber} 章——你写出的每一句话都直接决定读者是否留下来。new.txt 的黄金三章法则对你不是建议,是对句子的硬约束。第 1 章:主角出场 800 字以内必须触发主线冲突(追杀、死局、被夺权、穿越即危机),禁止长段背景铺垫,世界观要通过主角的行动自然带出,不要整段解释。**第 1 章正文前 300 字(手机屏第一页)的最后一句必须是带戏剧性/反差/反转的收尾——警察叔叔我穿越了这类、我大概明天就要死了这类、我躺在自己的葬礼上这类——而不是介绍背景或交代环境。读者第一屏刷到页尾时必须产生"下一句是什么"的拉力。** 第 2 章:金手指/能力/系统/重生记忆/信息差必须"做出来"——一次具体使用的事件、一个看得见的后果——而不是"说出来"——旁白介绍它存在。第 3 章:本章中段必须让主角下一个可量化的短期目标浮上水面,读者合上页面要能说出"接下来他要干什么"。
483
+ 这是开篇三章中的第 ${chapterNumber} 章——你写出的每一句话都直接决定读者是否留下来。黄金三章法则对你不是建议,是对句子的硬约束。第 1 章:主角出场 800 字以内必须触发主线冲突(追杀、死局、被夺权、穿越即危机),禁止长段背景铺垫,世界观要通过主角的行动自然带出,不要整段解释。**第 1 章正文前 300 字(手机屏第一页)的最后一句必须是带戏剧性/反差/反转的收尾——警察叔叔我穿越了这类、我大概明天就要死了这类、我躺在自己的葬礼上这类——而不是介绍背景或交代环境。读者第一屏刷到页尾时必须产生"下一句是什么"的拉力。** 第 2 章:金手指/能力/系统/重生记忆/信息差必须"做出来"——一次具体使用的事件、一个看得见的后果——而不是"说出来"——旁白介绍它存在。第 3 章:本章中段必须让主角下一个可量化的短期目标浮上水面,读者合上页面要能说出"接下来他要干什么"。
476
484
 
477
- 贯穿开篇三章的纪律:段落 3-5 行(手机阅读节奏),动词压过形容词,每一章结尾必有小钩子——小悬念、未解之问、情绪缺口。**本章场景 ≤ 2 个、有名有姓参与正面冲突的人物 ≤ 2 个(主角 + 1 个触发者或对手;路人甲乙只报身份不给名字,不展开)。番茄老师丛月把开篇人物上限从 3 收紧到 2——3 个已经够读者记混,2 个最稳。** 信息分层植入到动作里:基础信息(外貌、身份、处境)通过主角行动自然带出;关键设定(系统规则、世界底层)结合剧情节点揭示;禁止整段 exposition。`;
485
+ 贯穿开篇三章的纪律:段落 3-5 行(手机阅读节奏),动词压过形容词,每一章结尾必有小钩子——小悬念、未解之问、情绪缺口。**本章场景 ≤ 2 个、有名有姓参与正面冲突的人物 ≤ 2 个(主角 + 1 个触发者或对手;路人甲乙只报身份不给名字,不展开)。开篇人物上限从 3 收紧到 23 个已经够读者记混,2 个最稳。** 信息分层植入到动作里:基础信息(外貌、身份、处境)通过主角行动自然带出;关键设定(系统规则、世界底层)结合剧情节点揭示;禁止整段 exposition。`;
478
486
  }
479
487
  // ---------------------------------------------------------------------------
480
488
  // 黄金开篇(中文3章/英文5章)
@@ -590,6 +598,43 @@ function buildGenreRules(gp, genreBody) {
590
598
  // ---------------------------------------------------------------------------
591
599
  // Protagonist rules from book_rules
592
600
  // ---------------------------------------------------------------------------
601
+ // Narrative person is a durable user constraint: enforce it only when the user
602
+ // explicitly set one (book_rules.narrativePerson). When unset, stay silent so the
603
+ // genre default applies — we never impose a person the user didn't ask for.
604
+ function buildNarrativePersonRule(bookRules, language) {
605
+ const person = bookRules?.narrativePerson;
606
+ if (!person)
607
+ return "";
608
+ if (language === "en") {
609
+ return person === "first"
610
+ ? "## Narrative person (hard constraint)\nWrite this book entirely in FIRST person (the protagonist's inner viewpoint). Do NOT slip into third person or an omniscient narrator — this overrides genre convention and your default."
611
+ : "## Narrative person (hard constraint)\nWrite this book in THIRD person.";
612
+ }
613
+ return person === "first"
614
+ ? "## 叙事人称(硬约束)\n本书必须全程使用第一人称(主角内心视角)叙述,禁止切换到第三人称或全知视角——此约束优先于题材惯例与你的默认倾向。"
615
+ : "## 叙事人称(硬约束)\n本书使用第三人称叙述。";
616
+ }
617
+ /**
618
+ * Cross-theme failure modes surfaced by results-oriented testing across genres:
619
+ * - simile over-reliance (~3 "像/仿佛/如同" per 1000 chars regardless of theme)
620
+ * - high-density dramatic beats summarized instead of dramatized when the
621
+ * chapter is tight (climaxes told, not shown).
622
+ * Theme-independent, so this lives in the always-on writer discipline.
623
+ */
624
+ function buildProseExecutionRules(language) {
625
+ if (language === "en") {
626
+ return `## Prose execution (cross-theme failure modes)
627
+
628
+ **Simile restraint.** Do not lean on "like / as if / as though" as a default device. At most one simile per scene, and only when it lights the image up better than plain rendering would. Priority is always: a precise verb > a concrete action or sensory detail > direct description > simile. Before reaching for "like…", check whether an exact verb or a concrete action would hit harder.
629
+
630
+ **Play out the climax — never summarize it.** This chapter's high-density / high-stakes beats — a conflict erupting, life-or-death, a major turn, a reveal, an action climax — MUST be played out beat by beat (action, dialogue, the senses, pauses, pacing). Never compress them into "then he saved them, the police came, the antagonist was arrested." When a chapter packs several major events, expand the single most important one into a full scene; connective tissue may be compressed, but the key beat must never decay into a summary. The tighter the chapter, the harder this holds — if you are short on words, pack fewer events, do not render the climax as a synopsis.`;
631
+ }
632
+ return `## 文笔执行(跨题材通病纠正)
633
+
634
+ **明喻节制。** 不要把"像/仿佛/如同/像……一样"当默认修辞反复用。每个场景明喻最多 1 处,且只在它真能点亮画面、比直写更准时才用。优先级永远是:精确的动词 > 具体的动作或感官细节 > 直接描写 > 明喻。想写"像……"之前,先问一句:换成一个准确的动词或一个具体动作,是不是更狠。
635
+
636
+ **高潮必须演出、不许概述。** 本章的高密度/高风险节拍——冲突爆发、生死、重大转折、真相揭露、动作高潮——必须一拍一拍现场演出(动作、对话、五感、停顿、节奏),绝不能用一两句"然后他救了人、警察来了、对手被捕"带过。当一章里挤了多个重大事件时,挑最关键的那一拍写成完整场景,次要的可压成过渡,但最关键那拍永远不许退化成总结。章节越紧凑越要守这条——字数不够就少塞事件,而不是把高潮写成梗概。`;
637
+ }
593
638
  function buildProtagonistRules(bookRules) {
594
639
  if (!bookRules?.protagonist)
595
640
  return "";
@@ -789,4 +834,107 @@ ${updatedLedger}
789
834
  - **已知**: 该角色已知的信息(仅限亲历或被告知)
790
835
  - **未知**: 该角色不知道的信息`;
791
836
  }
837
+ // ---------------------------------------------------------------------------
838
+ // English output formats (parser keys off the === MARKER === anchors, so the
839
+ // table labels below are safely localized; persisted artifacts read English).
840
+ // ---------------------------------------------------------------------------
841
+ function buildEnglishPreWriteTable(gp) {
842
+ const resourceRow = gp.numericalSystem
843
+ ? "| Current resource total | X | match the ledger |\n| This chapter's gain | +X (source) | write +0 if none |\n"
844
+ : "";
845
+ return `=== PRE_WRITE_CHECK ===
846
+ (Output a Markdown table. Every row aligns with the seven chapter_memo sections, not the volume outline.)
847
+ | Check | This chapter | Note |
848
+ |-------|--------------|------|
849
+ | Current task | Restate the chapter_memo "Current task" and the concrete action this chapter takes | Be specific, not abstract |
850
+ | What the reader is waiting for | How this chapter handles it: create / delay / pay off | Match the memo |
851
+ | Pay off / keep hidden | Foreshadowing to pay off + cards that must stay down | Quote the memo |
852
+ | Routine / transition duty | If any routine or transition passage exists, state each one's function | Match the memo mapping |
853
+ | Required end-of-chapter change | 1-3 concrete changes from the memo's end-of-chapter change | Must land on the page |
854
+ | Do not | Restate the memo "Do not" list | The prose must not touch these |
855
+ | Context range | Ch X to Ch Y / state card / setting files | |
856
+ | Current anchor | Location / opponent / payoff goal | Anchor must be concrete |
857
+ ${resourceRow}| Hooks to resolve | Real hook_id (write none if absent) | Match the hook pool |
858
+ | This chapter's conflict | One line | |
859
+ | Chapter type | ${gp.chapterTypes.join(" / ")} | |
860
+ | Risk scan | OOC / info leak / canon conflict${gp.powerScaling ? " / power-scaling break" : ""} / pacing / word fatigue | |`;
861
+ }
862
+ function buildEnglishContentBlocks(lengthSpec) {
863
+ return `=== CHAPTER_TITLE ===
864
+ (Chapter title, without "Chapter X". It must differ from existing titles; do not reuse the same or similar titles. If recent title history or high-frequency title words are provided, avoid repeated roots and overused imagery.)
865
+
866
+ === CHAPTER_CONTENT ===
867
+ (Chapter prose. Target ${lengthSpec.target} words, acceptable range ${lengthSpec.softMin}-${lengthSpec.softMax} words.)`;
868
+ }
869
+ function buildEnglishCreativeOutputFormat(_book, gp, lengthSpec) {
870
+ return `## Output Format (follow strictly)
871
+
872
+ ${buildEnglishPreWriteTable(gp)}
873
+
874
+ ${buildEnglishContentBlocks(lengthSpec)}
875
+
876
+ [Important] Output only the three blocks above (PRE_WRITE_CHECK, CHAPTER_TITLE, CHAPTER_CONTENT). State cards, hook pool, and summaries are handled by the later settlement stage; do not output them.`;
877
+ }
878
+ function buildEnglishOutputFormat(_book, gp, lengthSpec) {
879
+ const postSettlement = gp.numericalSystem
880
+ ? `=== POST_SETTLEMENT ===
881
+ (If any numerical change occurred, output a Markdown table.)
882
+ | Item | This chapter | Note |
883
+ |------|--------------|------|
884
+ | Resource ledger | open X / gain +Y / close Z | write +0 if none |
885
+ | Key resources | name -> contribution +Y (basis) | write "none" if none |
886
+ | Hook changes | new / resolved / deferred hook | sync the hook pool |`
887
+ : `=== POST_SETTLEMENT ===
888
+ (If any hook changed, output this.)
889
+ | Item | This chapter | Note |
890
+ |------|--------------|------|
891
+ | Hook changes | new / resolved / deferred hook | sync the hook pool |`;
892
+ const updatedLedger = gp.numericalSystem
893
+ ? `\n=== UPDATED_LEDGER ===\n(The full updated resource ledger, Markdown table.)`
894
+ : "";
895
+ return `## Output Format (follow strictly)
896
+
897
+ ${buildEnglishPreWriteTable(gp)}
898
+
899
+ ${buildEnglishContentBlocks(lengthSpec)}
900
+
901
+ ${postSettlement}
902
+
903
+ === UPDATED_STATE ===
904
+ (The full updated state card, Markdown table.)
905
+ ${updatedLedger}
906
+ === UPDATED_HOOKS ===
907
+ (The full updated hook pool, Markdown table.)
908
+
909
+ === CHAPTER_SUMMARY ===
910
+ (Chapter summary as a Markdown table with these columns.)
911
+ | Chapter | Title | Characters | Key events | State change | Hook dynamics | Emotional tone | Chapter type |
912
+ |---------|-------|------------|------------|--------------|---------------|----------------|--------------|
913
+ | N | this chapter's title | Char1, Char2 | one-line summary | key change | H01 planted / H02 advanced | emotional arc | ${gp.chapterTypes.length > 0 ? gp.chapterTypes.join(" / ") : "transition / conflict / climax / resolution"} |
914
+
915
+ === UPDATED_SUBPLOTS ===
916
+ (The full updated subplot board, Markdown table.)
917
+ | Subplot ID | Name | Characters | Start ch | Last active ch | Chapters since | Status | Progress | Resolve ETA |
918
+ |------------|------|------------|----------|----------------|----------------|--------|----------|-------------|
919
+
920
+ === UPDATED_EMOTIONAL_ARCS ===
921
+ (The full updated emotional arcs, Markdown table.)
922
+ | Character | Chapter | Emotional state | Trigger | Intensity (1-10) | Arc direction |
923
+ |-----------|---------|-----------------|---------|------------------|---------------|
924
+
925
+ === UPDATED_CHARACTER_MATRIX ===
926
+ (The updated character matrix, one ## block per character.)
927
+
928
+ ## Character Name
929
+ - **Role**: protagonist / antagonist / ally / supporting / mentioned
930
+ - **Tags**: core identity tags
931
+ - **Contrast**: a distinctive detail that breaks the stereotype
932
+ - **Voice**: how they speak
933
+ - **Personality**: underlying temperament
934
+ - **Motivation**: core driving force
935
+ - **Current**: this chapter's immediate goal
936
+ - **Relations**: Character (relationship / Ch#) | ...
937
+ - **Knows**: what this character knows (only what they witnessed or were told)
938
+ - **Unknown**: what this character does not know`;
939
+ }
792
940
  //# sourceMappingURL=writer-prompts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"writer-prompts.js","sourceRoot":"","sources":["../../src/agents/writer-prompts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer-prompts.js","sourceRoot":"","sources":["../../src/agents/writer-prompts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/agents/writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/agents/writer.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { parsePendingHooksMarkdown } from "../utils/memory-retrieval.js";
18
18
  import { analyzeHookHealth } from "../utils/hook-health.js";
19
19
  import { buildEnglishVarianceBrief } from "../utils/long-span-fatigue.js";
20
20
  import { buildNarrativeIntentBrief, renderMemoAsNarrativeBlock, renderNarrativeSelectedContext, sanitizeNarrativeEvidenceBlock, } from "../utils/narrative-control.js";
21
- import { readFile, writeFile, mkdir, readdir } from "node:fs/promises";
21
+ import { readFile, writeFile, mkdir, readdir, rm } from "node:fs/promises";
22
22
  import { join } from "node:path";
23
23
  const LEGACY_WRITER_CONTEXT_BUDGET = {
24
24
  storyBible: 14_000,
@@ -468,6 +468,10 @@ export class WriterAgent extends BaseAgent {
468
468
  await mkdir(chaptersDir, { recursive: true });
469
469
  const paddedNum = String(output.chapterNumber).padStart(4, "0");
470
470
  const filename = `${paddedNum}_${this.sanitizeFilename(output.title)}.md`;
471
+ const existingChapterFiles = await readdir(chaptersDir).catch(() => []);
472
+ await Promise.all(existingChapterFiles
473
+ .filter((file) => file.startsWith(`${paddedNum}_`) && file.endsWith(".md") && file !== filename)
474
+ .map((file) => rm(join(chaptersDir, file), { force: true })));
471
475
  const heading = language === "en"
472
476
  ? `# Chapter ${output.chapterNumber}: ${output.title}`
473
477
  : `# 第${output.chapterNumber}章 ${output.title}`;
@@ -577,7 +581,18 @@ ${lengthRequirementBlock}
577
581
  }
578
582
  buildGovernedUserPrompt(params) {
579
583
  const language = params.language ?? "zh";
580
- const contextSections = renderNarrativeSelectedContext(params.contextPackage.selectedContext, language);
584
+ // The user's steering docs (author_intent = long-term direction, current_focus =
585
+ // short-term focus) must land as a prominent, binding block near the top — not
586
+ // buried among generic "evidence" entries where the model treats them as optional.
587
+ const DIRECTION_SOURCES = new Set(["story/author_intent.md", "story/current_focus.md"]);
588
+ const directionEntries = params.contextPackage.selectedContext.filter((entry) => DIRECTION_SOURCES.has(entry.source));
589
+ const otherEntries = params.contextPackage.selectedContext.filter((entry) => !DIRECTION_SOURCES.has(entry.source));
590
+ const contextSections = renderNarrativeSelectedContext(otherEntries, language);
591
+ const userDirectionBlock = directionEntries.length > 0
592
+ ? (language === "en"
593
+ ? `## User direction (overrides model defaults — must follow)\n${renderNarrativeSelectedContext(directionEntries, language)}\n`
594
+ : `## 用户方向(优先于模型默认,必须遵循)\n${renderNarrativeSelectedContext(directionEntries, language)}\n`)
595
+ : "";
581
596
  const diagnosticLines = params.ruleStack.sections.diagnostic.length > 0
582
597
  ? params.ruleStack.sections.diagnostic.join(", ")
583
598
  : "none";
@@ -595,6 +610,7 @@ ${lengthRequirementBlock}
595
610
 
596
611
  ${chapterContextBlock}
597
612
 
613
+ ${userDirectionBlock}
598
614
  ${briefNarrative}
599
615
 
600
616
  ## Selected Context
@@ -615,6 +631,7 @@ ${lengthRequirementBlock}
615
631
 
616
632
  ${chapterContextBlock}
617
633
 
634
+ ${userDirectionBlock}
618
635
  ${briefNarrative}
619
636
 
620
637
  ## 已选上下文
@@ -717,13 +734,18 @@ ${overrides}\n`;
717
734
  });
718
735
  return;
719
736
  }
720
- const missing = [];
721
- if (!preWriteCheck.includes("当前任务"))
722
- missing.push("当前任务");
723
- if (!preWriteCheck.includes("不要做"))
724
- missing.push("不要做");
725
- if (!preWriteCheck.includes("章尾"))
726
- missing.push("章尾必须发生的改变");
737
+ const required = language === "en"
738
+ ? [
739
+ { needle: "Current task", label: "Current task" },
740
+ { needle: "Do not", label: "Do not" },
741
+ { needle: "end-of-chapter", label: "Required end-of-chapter change" },
742
+ ]
743
+ : [
744
+ { needle: "当前任务", label: "当前任务" },
745
+ { needle: "不要做", label: "不要做" },
746
+ { needle: "章尾", label: "章尾必须发生的改变" },
747
+ ];
748
+ const missing = required.filter((r) => !preWriteCheck.includes(r.needle)).map((r) => r.label);
727
749
  if (missing.length > 0) {
728
750
  this.logWarn(language, {
729
751
  zh: `第${chapterNumber}章 PRE_WRITE_CHECK 缺少 memo 章节检查:${missing.join("、")}`,