dsh-novel-write-engine 0.1.3 → 0.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.
- package/CHANGELOG.md +26 -0
- package/README.md +150 -70
- package/briefs/P1.md +1 -0
- package/briefs/P2.md +4 -0
- package/briefs/P3.md +1 -1
- package/briefs/P4.md +1 -1
- package/briefs/P6.md +4 -2
- package/lib/client.js +489 -16
- package/lib/index.d.ts +597 -10
- package/lib/index.js +4167 -206
- package/lib/types/client/dto.d.ts +45 -0
- package/lib/types/client/viewmodel.d.ts +41 -1
- package/lib/types/constants.d.ts +13 -3
- package/lib/types/next-reasons.d.ts +6 -0
- package/lib/types/types.d.ts +296 -5
- package/package.json +1 -1
- package/presets/novel-write-engine.patch.yml +1 -1
- package/skills/entry.md +17 -4
package/briefs/P2.md
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
- P1 的世界观计划:`novel_state {"kind":"planWorld","chapter":{{chapter}}}`(对应 `plans/ch{{chapter_pad}}.world.yaml`)。
|
|
8
8
|
- 上一章结尾(`state/handoff.yaml` 的 `last_summary`)。
|
|
9
9
|
- 未回收伏笔:`novel_state foreshadows`。
|
|
10
|
+
- 当前章卡:`novel_state {"kind":"outline"}`(`context.outline_card` 已带入 brief)。只要存在章卡,标题、场景类型、目标字数区间与 cast 就必须一致,否则 PG-13 会拒绝;严格模式还要求章卡必须存在。
|
|
11
|
+
- 世界观相关条目:`context.worldbook`。
|
|
10
12
|
|
|
11
13
|
## 产出
|
|
12
14
|
|
|
@@ -25,6 +27,8 @@
|
|
|
25
27
|
|
|
26
28
|
`cast` 不是出场名单的重复:它告诉 P3 这一章谁在舞台上、各自带着什么目标与信息差。没有 cast 时,引擎会从计划正文与人物台账推断;新计划建议显式给出,避免 120 个角色里裁掉真正上场的人。
|
|
27
29
|
|
|
30
|
+
章卡有 cast 时,P2 的 cast 必须覆盖章卡里的每一个名字;章卡没有 cast 时不强制。
|
|
31
|
+
|
|
28
32
|
## 场景类型纪律
|
|
29
33
|
|
|
30
34
|
- 不许连续三章同型;战斗章不许连排两章。
|
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`
|
|
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.
|
|
75
|
+
- 判断不了是否「作者故意」时,先按普通问题处理;0.2.0 不提供自动豁免。
|
|
76
76
|
|
|
77
77
|
完成后:仍有 blocker → P5 修订;全部清零 → P6 校验。
|
package/briefs/P6.md
CHANGED
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
{ "id": "L2-SCENE-ANCHOR", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "场景与计划一致" },
|
|
17
17
|
{ "id": "L2-CHARACTER-STATE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "心理状态与台账一致" },
|
|
18
18
|
{ "id": "L2-CAUSALITY", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "转折有前置因果" },
|
|
19
|
-
{ "id": "L2-VOICE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "对话可区分" }
|
|
19
|
+
{ "id": "L2-VOICE", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "对话可区分" },
|
|
20
|
+
{ "id": "L2-POV", "verdict": "pass", "evidence": "正文中的逐字引用", "note": "叙述视角与计划一致" }
|
|
20
21
|
]
|
|
21
22
|
```
|
|
22
23
|
|
|
23
|
-
|
|
24
|
+
五个 id 必须各出现一次;`verdict` 只能是 `pass`/`fail`;`evidence` 至少 8 字、必须逐字出现在正文里,且五条引用必须互不相同、来自不同句子。五条引用同一句话不算五份证据,会被 `SEMANTIC_EVIDENCE_INVALID` 拒绝。
|
|
24
25
|
|
|
25
26
|
| id | 检查 |
|
|
26
27
|
|---|---|
|
|
@@ -28,6 +29,7 @@
|
|
|
28
29
|
| `L2-CHARACTER-STATE` | 人物状态与 `characters` 台账一致 |
|
|
29
30
|
| `L2-CAUSALITY` | 关键转折有前置因果,不是突然降神 |
|
|
30
31
|
| `L2-VOICE` | 对话能区分说话人 |
|
|
32
|
+
| `L2-POV` | 叙述视角与 `narrator`/计划一致,没有中途越界 |
|
|
31
33
|
|
|
32
34
|
每项必须带 `evidence`:正文中的逐字引用。找不到引用=该项不成立。
|
|
33
35
|
|