dsh-novel-write-engine 0.1.3 → 0.2.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.
package/briefs/P3.md CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  ## 上下文
14
14
 
15
- P3 brief 的 `context.world_plan` 是 P1 的本章约束;`context.characters` 是本章活跃角色的完整档案,`context.other_characters` 只是压缩索引。先读 `world_plan` 与 `characters` 再落笔;不要在正文里临时发明未申报的世界规则或人物。
15
+ P3 brief 的 `context.world_plan` 是 P1 的本章约束;`context.characters` 是本章活跃角色的完整档案,`context.other_characters` 只是压缩索引;`context.outline_card` 是本章章卡,`context.worldbook` 是相关世界观条目。先读 `world_plan`、`characters` 与 `outline_card` 再落笔;不要在正文里临时发明未申报的世界规则或人物。
16
16
 
17
17
  ## 写法
18
18
 
package/briefs/P4.md CHANGED
@@ -72,6 +72,6 @@
72
72
  - 每条 issue 写清 `problem` 与 `fix`,fix 要是可执行动作。
73
73
  - `dimension` 必须是本任务书十五维之一(`R-W-01`…`R-W-15` 的实际集合);`location` 必须是「第 N 段」,且 N 在本章实际段落范围内。
74
74
  - `blocker` 不能在 P4 或 P5 标记为 `waived`;只能修好后带正文证据标记 `fixed`。
75
- - 判断不了是否「作者故意」时,先按普通问题处理;0.1.3 不提供自动豁免。
75
+ - 判断不了是否「作者故意」时,先按普通问题处理;0.2.0 不提供自动豁免。
76
76
 
77
77
  完成后:仍有 blocker → P5 修订;全部清零 → P6 校验。
package/briefs/P6.md CHANGED
@@ -6,6 +6,7 @@
6
6
 
7
7
  - 格式与字数:引号、分号、省略号、长段、标题。
8
8
  - 跨章对账:重复段落、伏笔休眠、资源余额、时间倒退、关系未声明、锁定描写漂移。
9
+ - 质量提示:对话比例、数字/单位矛盾、数字事实不一致。`advisory` 不阻塞归档,可用 `acknowledge` 记录知悉;`blocker` 不会被 acknowledge 放行。
9
10
 
10
11
  ## 语义项(你提供)
11
12
 
@@ -16,11 +17,12 @@
16
17
  { "id": "L2-SCENE-ANCHOR", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "场景与计划一致" },
17
18
  { "id": "L2-CHARACTER-STATE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "心理状态与台账一致" },
18
19
  { "id": "L2-CAUSALITY", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "转折有前置因果" },
19
- { "id": "L2-VOICE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "对话可区分" }
20
+ { "id": "L2-VOICE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "对话可区分" },
21
+ { "id": "L2-POV", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "叙述视角与计划一致" }
20
22
  ]
21
23
  ```
22
24
 
23
- 四个 id 必须各出现一次;`verdict` 只能是 `pass`/`fail`;`evidence` 至少 8 字、必须逐字出现在正文里,且四条引用必须互不相同。四项引用同一句话不算四份证据,会被 `SEMANTIC_EVIDENCE_INVALID` 拒绝。
25
+ 五个 id 必须各出现一次;`verdict` 只能是 `pass`/`fail`;`evidence` 至少 8 字、必须逐字出现在正文里,且五条引用必须互不相同、来自不同句子。五条引用同一句话不算五份证据,会被 `SEMANTIC_EVIDENCE_INVALID` 拒绝。
24
26
 
25
27
  | id | 检查 |
26
28
  |---|---|
@@ -28,6 +30,7 @@
28
30
  | `L2-CHARACTER-STATE` | 人物状态与 `characters` 台账一致 |
29
31
  | `L2-CAUSALITY` | 关键转折有前置因果,不是突然降神 |
30
32
  | `L2-VOICE` | 对话能区分说话人 |
33
+ | `L2-POV` | 叙述视角与 `narrator`/计划一致,没有中途越界 |
31
34
 
32
35
  每项必须带 `evidence`:正文中的逐字引用。找不到引用=该项不成立。
33
36
 
package/briefs/P8.md CHANGED
@@ -28,6 +28,8 @@
28
28
  - `timeline` 的键是 `summary.events` 的下标(字符串)。
29
29
  - `relationships` 的键是 `"甲|乙"`;每项至少 `{ "action": "created", "type": "关系类型", "description": "..." }`,缺 `type` 会被拒绝。
30
30
  - `characters` 的键是人物名;`world` 的键是新地点/能力/物品名;`foreshadows` 的键是 summary 里的 planted key 或已分配的 `FS-xxx`。
31
+ - **伏笔的 title 是可读标签,anchor 才是校验证据**:`title` 可以写「船费债」这样的短语;要归档,请把正文原句放进 `anchor`(summary 的 planted 项或 delta 项都行,至少 8 个字符)。没有 `anchor` 时,`title` 必须逐字出现在正文里,否则 `ENGINE_DELTA_UNVERIFIED`。示例:`{"action":"created","title":"船费债","anchor":"三百蚊的船费先欠着","description":"欠船费三百蚊"}`。
32
+ - 归档失败的报错会指出字段、值和缺失的锚点;不要把 title 改成碎片来“凑命中”,补 `anchor` 即可。
31
33
  - 第一人称的叙述者若在 `narrator` 里声明为 `陈默(第一人称「我」)`,正文用「我」也视为出现,但角色键仍写 `陈默`。
32
34
  - 每个新实体至少写 `action: "created"`;已存在且没变化写 `action: "no_change", reason: "..."`。
33
35
  - `world` 新实体还要写 `kind: "location"|"ability"|"artifact"` 和 `description`。