novelws 5.1.0 → 5.3.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 (92) hide show
  1. package/CHANGELOG.md +52 -0
  2. package/README.md +54 -3
  3. package/dist/cli.js +3 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/dashboard.d.ts +3 -0
  6. package/dist/commands/dashboard.d.ts.map +1 -0
  7. package/dist/commands/dashboard.js +42 -0
  8. package/dist/commands/dashboard.js.map +1 -0
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +18 -4
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/upgrade.d.ts.map +1 -1
  13. package/dist/commands/upgrade.js +23 -0
  14. package/dist/commands/upgrade.js.map +1 -1
  15. package/dist/core/config.d.ts +4 -1
  16. package/dist/core/config.d.ts.map +1 -1
  17. package/dist/core/config.js +5 -2
  18. package/dist/core/config.js.map +1 -1
  19. package/dist/server/datasource/db.d.ts +38 -0
  20. package/dist/server/datasource/db.d.ts.map +1 -0
  21. package/dist/server/datasource/db.js +323 -0
  22. package/dist/server/datasource/db.js.map +1 -0
  23. package/dist/server/datasource/fs.d.ts +30 -0
  24. package/dist/server/datasource/fs.d.ts.map +1 -0
  25. package/dist/server/datasource/fs.js +308 -0
  26. package/dist/server/datasource/fs.js.map +1 -0
  27. package/dist/server/datasource/index.d.ts +11 -0
  28. package/dist/server/datasource/index.d.ts.map +1 -0
  29. package/dist/server/datasource/index.js +33 -0
  30. package/dist/server/datasource/index.js.map +1 -0
  31. package/dist/server/index.d.ts +12 -0
  32. package/dist/server/index.d.ts.map +1 -0
  33. package/dist/server/index.js +69 -0
  34. package/dist/server/index.js.map +1 -0
  35. package/dist/server/routes/characters.d.ts +4 -0
  36. package/dist/server/routes/characters.d.ts.map +1 -0
  37. package/dist/server/routes/characters.js +27 -0
  38. package/dist/server/routes/characters.js.map +1 -0
  39. package/dist/server/routes/plots.d.ts +4 -0
  40. package/dist/server/routes/plots.d.ts.map +1 -0
  41. package/dist/server/routes/plots.js +36 -0
  42. package/dist/server/routes/plots.js.map +1 -0
  43. package/dist/server/routes/protagonist.d.ts +4 -0
  44. package/dist/server/routes/protagonist.d.ts.map +1 -0
  45. package/dist/server/routes/protagonist.js +46 -0
  46. package/dist/server/routes/protagonist.js.map +1 -0
  47. package/dist/server/routes/relationships.d.ts +4 -0
  48. package/dist/server/routes/relationships.d.ts.map +1 -0
  49. package/dist/server/routes/relationships.js +27 -0
  50. package/dist/server/routes/relationships.js.map +1 -0
  51. package/dist/server/routes/stats.d.ts +4 -0
  52. package/dist/server/routes/stats.d.ts.map +1 -0
  53. package/dist/server/routes/stats.js +21 -0
  54. package/dist/server/routes/stats.js.map +1 -0
  55. package/dist/server/routes/stories.d.ts +4 -0
  56. package/dist/server/routes/stories.d.ts.map +1 -0
  57. package/dist/server/routes/stories.js +80 -0
  58. package/dist/server/routes/stories.js.map +1 -0
  59. package/dist/server/routes/timeline.d.ts +4 -0
  60. package/dist/server/routes/timeline.d.ts.map +1 -0
  61. package/dist/server/routes/timeline.js +17 -0
  62. package/dist/server/routes/timeline.js.map +1 -0
  63. package/dist/server/types.d.ts +199 -0
  64. package/dist/server/types.d.ts.map +1 -0
  65. package/dist/server/types.js +2 -0
  66. package/dist/server/types.js.map +1 -0
  67. package/dist/utils/diagnostics.d.ts +2 -2
  68. package/dist/utils/diagnostics.d.ts.map +1 -1
  69. package/dist/utils/diagnostics.js +46 -59
  70. package/dist/utils/diagnostics.js.map +1 -1
  71. package/package.json +13 -3
  72. package/templates/commands/analyze.md +20 -8
  73. package/templates/commands/expand.md +46 -20
  74. package/templates/commands/plan.md +3 -2
  75. package/templates/commands/specify.md +6 -2
  76. package/templates/commands/write.md +77 -24
  77. package/templates/dot-claude/CLAUDE.md +48 -8
  78. package/templates/resources/anti-ai.md +92 -13
  79. package/templates/resources/constitution.md +83 -140
  80. package/templates/resources/style-reference.md +30 -6
  81. package/templates/scripts/db_context.py +609 -0
  82. package/templates/scripts/db_init_protagonist.py +343 -0
  83. package/templates/scripts/db_sync.py +611 -0
  84. package/templates/scripts/db_volume_switch.py +278 -0
  85. package/templates/scripts/phase_a_init_db.py +428 -0
  86. package/templates/scripts/requirements.txt +1 -0
  87. package/templates/tracking/character-state.json +1 -3
  88. package/templates/tracking/plot-tracker.json +1 -5
  89. package/templates/tracking/relationships.json +1 -3
  90. package/templates/tracking/timeline.json +1 -3
  91. package/templates/volume-outline.md +31 -0
  92. package/templates/volume-summary.md +20 -0
@@ -1,140 +1,83 @@
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
- ### 四、语言精炼
27
- **文字的力量在于精准而非华丽**
28
- - 用最少的文字传达最多的信息
29
- - 避免过度使用形容词和副词
30
- - 对话要符合角色身份和性格
31
- - 描写要有画面感,让读者身临其境
32
-
33
- ### 五、情感真实
34
- **真情实感才能打动人心**
35
- - 情感发展要有逻辑和过程
36
- - 避免突兀的感情转折
37
- - 通过细节表现情感,而非直接说教
38
- - 让读者产生共鸣是最高目标
39
-
40
- ## 写作规范
41
-
42
- ### 必须遵循的原则
43
- 1. **开篇吸引** - 每章开头3段内必须有钩子
44
- 2. **章节完整** - 每章都是一个相对完整的小故事
45
- 3. **伏笔回收** - 埋设的伏笔必须有对应的揭示
46
- 4. **逻辑自洽** - 情节发展必须符合因果逻辑
47
- 5. **节奏控制** - 张弛有度,避免一味紧张或拖沓
48
-
49
- ### 应当避免的问题
50
- 1. **水文灌水** - 无意义的重复和拖延
51
- 2. **人设崩塌** - 角色行为与设定矛盾
52
- 3. **强行转折** - 没有铺垫的突然反转
53
- 4. **过度说教** - 直接灌输价值观
54
- 5. **套路泛滥** - 过度使用老套桥段
55
-
56
- ### 文字风格要求
57
- - **叙述语言**:简洁流畅,避免冗长句式
58
- - **对话风格**:自然生动,符合人物身份
59
- - **描写手法**:重点突出,详略得当
60
- - **修辞运用**:恰到好处,不过度堆砌
61
-
62
- ### 分段格式规范
63
- **场景转换和段落分隔**
64
- - **禁止使用**:"一"、"二"、"三"等数字标记分段
65
- - 这种方式过于生硬,像论文章节标记
66
- - 破坏小说的阅读沉浸感
67
- - **推荐方式**:纯空行分段
68
- - 场景转换时使用两个空行(一个空白行)
69
- - 自然流畅,符合网络小说阅读习惯
70
- - 不打断读者的沉浸体验
71
- - **示例**:
72
- ```
73
- 李明收拾好东西,转身离开了房间。
74
-
75
-
76
- 厨房里,小翠正在准备晚饭。
77
- ```
78
-
79
- ## 创作流程
80
-
81
- ### 第一阶段:构思准备
82
- 1. 明确故事主题和核心冲突
83
- 2. 设计完整的故事框架
84
- 3. 创建详细的角色档案
85
- 4. 构建自洽的世界观体系
86
-
87
- ### 第二阶段:大纲规划
88
- 1. 制定整体故事走向
89
- 2. 规划各卷的主要内容
90
- 3. 设计章节之间的衔接
91
- 4. 标记重要转折点和高潮
92
-
93
- ### 第三阶段:内容创作
94
- 1. 按照大纲逐章写作
95
- 2. 保持稳定的更新节奏
96
- 3. 定期回顾已写内容
97
- 4. 及时调整后续规划
98
-
99
- ### 第四阶段:修订完善
100
- 1. 检查情节逻辑性
101
- 2. 统一文风和用词
102
- 3. 完善细节描写
103
- 4. 优化对话内容
104
-
105
- ## 质量标准
106
-
107
- ### 优秀章节的标准
108
- - **开头引人** - 快速吸引读者注意力
109
- - **中间充实** - 情节推进有力度
110
- - **结尾有力** - 留下悬念或冲击
111
- - **情感饱满** - 能触动读者情绪
112
- - **节奏合理** - 张弛有度不拖沓
113
-
114
- ### 完成作品的标准
115
- - **主题明确** - 传达清晰的核心思想
116
- - **结构完整** - 开端、发展、高潮、结局俱全
117
- - **人物成长** - 主要角色有明显变化
118
- - **冲突解决** - 主要矛盾得到合理解决
119
- - **余韵悠长** - 结束后让读者回味
120
-
121
- ## 持续改进
122
-
123
- ### 自我提升方向
124
- 1. 广泛阅读优秀作品,学习他人长处
125
- 2. 深入生活体验,积累创作素材
126
- 3. 研究写作技巧,提升专业能力
127
- 4. 接受读者反馈,了解市场需求
128
- 5. 保持创作激情,不断突破自我
129
-
130
- ### 定期复盘要点
131
- - 哪些章节反响最好,为什么?
132
- - 哪些情节处理不够理想?
133
- - 角色塑造是否成功?
134
- - 节奏控制是否得当?
135
- - 读者最关心什么内容?
136
-
137
- ---
138
- *创建时间: 2025年*
139
- *版本: 1.0*
140
- *说明: 本准则为小说创作的基础指导原则,可根据具体项目需要进行调整*
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
+ - [ ] 主角遇到危机时总是恰好获得新能力/外援 → 改为利用前文已建立的资源解决
27
+ - [ ] 反派智商随剧情需要波动 → 给反派固定的行为逻辑,允许反派赢
28
+ - [ ] 配角在危机时刻突然"及时赶到"而没有前置铺垫 → 补充至少 2 处前置伏笔
29
+
30
+ **常见类型套路警示**(根据 specification.md 的故事类型选择性参考):
31
+ - 玄幻:拍卖会必出天材地宝→主角竞拍→反派挑衅→打脸;宗门大比必夺第一;升级永远在危机中突破
32
+ - 都市:重生/穿越后立刻展示前世记忆碾压;商战中对手永远低估主角;所有女性角色都被主角吸引
33
+ - 言情:三角恋中备胎永远在关键时刻退出;误会必因第三者挑拨;男主霸道但只对女主温柔
34
+ - 悬疑:最不可能的人是凶手;侦探在最后一章突然顿悟所有线索;每个嫌疑人都有不在场证明但都在撒谎
35
+
36
+ **执行方法**:
37
+ - 冲突解决必须有成本:主角得到的同时必须失去什么
38
+ - 允许角色犯错和失败,不是每次决策都是最优解
39
+ - 危机解除必须基于前文已建立的资源(角色能力、道具、人脉)
40
+ - 转折前必须有至少 2 处伏笔或暗示
41
+
42
+ ### 三、一致性校验(反矛盾)
43
+
44
+ **规则**:所有创作内容必须与已建立的设定、tracking 记录保持一致。
45
+
46
+ **违规信号**:
47
+ - [ ] 角色能力/性格与 character-state.json 记录不符 → 回查 tracking 并修正正文或更新 tracking
48
+ - [ ] 世界观规则前后矛盾(如前文说不能飞,后文突然飞了) → 回查 specification.md 修正
49
+ - [ ] 角色关系状态与 relationships.json 不符(如已决裂的两人突然亲密) → 补充关系转变的过渡情节
50
+ - [ ] 时间线冲突(如白天的场景突然变成夜晚) → 回查 timeline.json 修正时间标记
51
+ - [ ] 已消耗的资源/道具再次出现 → 删除或改为其他道具
52
+
53
+ **执行方法**:
54
+ - 扩写前必须检查本章出场角色的最新状态
55
+ - 涉及世界观规则时回查 specification.md 的设定
56
+ - 新增设定细节后必须更新对应 tracking 文件
57
+
58
+ ### 四、张力维持(反平淡)
59
+
60
+ **规则**:每个场景必须包含至少一种张力来源。
61
+
62
+ **张力类型**(任选其一即可):
63
+ - 信息差:读者知道角色不知道的,或反之
64
+ - 目标冲突:场景中至少两个角色的即时目标相互矛盾
65
+ - 时间压力:角色必须在限制内完成某事
66
+ - 内心矛盾:角色的欲望与责任/道德相冲突
67
+ - 悬念延续:场景结束时留下未解答的问题
68
+
69
+ **违规信号**:
70
+ - [ ] 场景中所有角色目标一致、没有任何对立面 → 为至少一个角色添加隐藏目标或保留意见
71
+ - [ ] 连续 3 段以上纯描写/叙述,没有推动任何冲突 → 在描写中穿插角色的内心矛盾或不安细节
72
+ - [ ] 章节结尾一切圆满解决,没有遗留任何钩子 → 添加一个未解答的问题或新信息作为结尾
73
+
74
+ ## 结构规范 — 章节格式要求
75
+
76
+ ### 分段格式
77
+ - 禁止使用"一"、"二"、"三"等数字标记分段(破坏沉浸感)
78
+ - 场景转换使用纯空行分段
79
+
80
+ ### 章节结构
81
+ - 开篇 3 段内必须有钩子(悬念、冲突或反常)
82
+ - 结尾必须留下至少一个未解决的问题或新的信息
83
+ - 每章是一个相对完整的叙事单元,有清晰的场景目标
@@ -1,19 +1,43 @@
1
1
  # 风格参考
2
2
 
3
- > 本文件定义你的写作风格偏好。在 /specify 阶段根据你的选择自动生成。
4
- > 扩写阶段会加载此文件作为风格锚点。
3
+ > 本文件定义写作风格锚点。由 /specify 根据你的选择自动生成。
4
+ > 扩写阶段加载此文件作为风格约束。
5
+
6
+ **故事类型**:[由 /specify 自动填入]
5
7
 
6
8
  ## 叙述视角
7
9
  [第一人称/第三人称有限/第三人称全知]
10
+ <!-- 提示:玄幻常用第三人称全知;言情常用第一人称或双视角交替;悬疑推荐第一人称有限(制造信息差) -->
8
11
 
9
12
  ## 语言风格
10
- [简洁利落/细腻优美/口语化/古风]
13
+ [简洁利落/细腻优美/口语化/古风/冷硬写实]
14
+ <!-- 提示:都市推荐口语化或简洁利落;玄幻可选古风或简洁利落;言情推荐细腻优美 -->
11
15
 
12
16
  ## 节奏偏好
13
- [快节奏/中等/慢节奏]
17
+ [快节奏(短场景、频繁切换)/中等/慢节奏(长场景、沉浸式)]
18
+ <!-- 提示:悬疑推荐快节奏;言情推荐中等偏慢;玄幻战斗场景快、修炼场景慢 -->
14
19
 
15
20
  ## 对话风格
16
21
  [简短有力/生活化/文学化]
22
+ <!-- 提示:都市推荐生活化;玄幻可选文学化(正式场合)+简短有力(战斗);言情推荐生活化 -->
23
+
24
+ ## 描写密度
25
+ [重描写(环境、细节、氛围渲染占比高)/均衡/轻描写(重对话和动作,环境一笔带过)]
26
+ <!-- 提示:言情推荐重描写(情感氛围);悬疑推荐轻描写(保持紧张感);玄幻推荐均衡 -->
27
+
28
+ ## 情感浓度
29
+ [克制冷静(留白多,让读者自行体会)/适中/热烈浓郁(情感表达直接强烈)]
30
+ <!-- 提示:悬疑推荐克制冷静;言情推荐热烈浓郁;都市推荐适中 -->
31
+
32
+ ## 幽默程度
33
+ [严肃/适度幽默(偶尔轻松调剂)/喜剧化]
34
+
35
+ ## 参考锚点
36
+ [风格接近的作品或作者]
37
+ <!-- 示例:"节奏参考《诡秘之主》,对话风格参考老舍,氛围参考《白夜行》" -->
38
+ <!-- 提示:填写 1-3 个参考点,每个说明参考哪个维度。/specify 会据此校准其他维度 -->
17
39
 
18
- ## 特殊要求
19
- [用户自定义的风格要求]
40
+ ## 风格禁忌
41
+ [本作品特别要避免的表达方式]
42
+ <!-- 示例:"不要武侠腔"、"不要网文套路开场白"、"不要日系轻小说的吐槽风" -->
43
+ <!-- 提示:/specify 会将 anti-ai.md 中对应类型的特有禁用词自动追加到此处 -->