novel-maker 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.
- package/LICENSE +21 -0
- package/README.md +209 -0
- package/bin/novel-maker.js +229 -0
- package/package.json +33 -0
- package/skill/CHANGELOG.md +82 -0
- package/skill/QUICK-REF.md +168 -0
- package/skill/README.md +75 -0
- package/skill/SKILL.md +715 -0
- package/skill/agents/README.md +59 -0
- package/skill/agents/auditor.md +234 -0
- package/skill/agents/coordinator.md +150 -0
- package/skill/agents/planner.md +220 -0
- package/skill/agents/reviewer.md +249 -0
- package/skill/agents/reviser.md +144 -0
- package/skill/agents/writer.md +213 -0
- package/skill/arc-templates/README.md +43 -0
- package/skill/arc-templates/apocalypse/ability.md +81 -0
- package/skill/arc-templates/apocalypse/faction.md +81 -0
- package/skill/arc-templates/apocalypse/humanity.md +81 -0
- package/skill/arc-templates/apocalypse/survival.md +81 -0
- package/skill/arc-templates/game/competition.md +81 -0
- package/skill/arc-templates/game/dungeon.md +81 -0
- package/skill/arc-templates/game/guild-war.md +81 -0
- package/skill/arc-templates/game/leveling.md +80 -0
- package/skill/arc-templates/general/challenge.md +44 -0
- package/skill/arc-templates/general/conflict.md +71 -0
- package/skill/arc-templates/general/explore.md +71 -0
- package/skill/arc-templates/general/growth.md +71 -0
- package/skill/arc-templates/general/mystery.md +71 -0
- package/skill/arc-templates/general/relation.md +71 -0
- package/skill/arc-templates/history/battle.md +71 -0
- package/skill/arc-templates/history/politics.md +71 -0
- package/skill/arc-templates/history/reform.md +71 -0
- package/skill/arc-templates/infinite-flow/boss.md +71 -0
- package/skill/arc-templates/infinite-flow/dungeon.md +71 -0
- package/skill/arc-templates/infinite-flow/enhance.md +71 -0
- package/skill/arc-templates/infinite-flow/team.md +71 -0
- package/skill/arc-templates/mystery/case.md +71 -0
- package/skill/arc-templates/mystery/deduction.md +71 -0
- package/skill/arc-templates/mystery/twist.md +71 -0
- package/skill/arc-templates/romance/angst.md +80 -0
- package/skill/arc-templates/romance/chase.md +71 -0
- package/skill/arc-templates/romance/slow-burn.md +71 -0
- package/skill/arc-templates/romance/sweet.md +80 -0
- package/skill/arc-templates/sci-fi/awakening.md +81 -0
- package/skill/arc-templates/sci-fi/breakthrough.md +81 -0
- package/skill/arc-templates/sci-fi/contact.md +81 -0
- package/skill/arc-templates/sci-fi/exploration.md +81 -0
- package/skill/arc-templates/urban/business.md +71 -0
- package/skill/arc-templates/urban/revenge.md +71 -0
- package/skill/arc-templates/urban/rise.md +71 -0
- package/skill/arc-templates/urban/romance.md +71 -0
- package/skill/arc-templates/western-fantasy/adventure.md +80 -0
- package/skill/arc-templates/western-fantasy/kingdom.md +71 -0
- package/skill/arc-templates/western-fantasy/magic-awakening.md +71 -0
- package/skill/arc-templates/western-fantasy/racial-conflict.md +71 -0
- package/skill/arc-templates/wuxia/breakthrough.md +71 -0
- package/skill/arc-templates/wuxia/grudge.md +71 -0
- package/skill/arc-templates/wuxia/hero-path.md +71 -0
- package/skill/arc-templates/wuxia/sect-war.md +71 -0
- package/skill/arc-templates/xianxia/breakthrough.md +71 -0
- package/skill/arc-templates/xianxia/dungeon.md +71 -0
- package/skill/arc-templates/xianxia/tournament.md +71 -0
- package/skill/arc-templates/xianxia/tribulation.md +71 -0
- package/skill/docs/examples.md +61 -0
- package/skill/docs/faq.md +81 -0
- package/skill/docs/installation.md +87 -0
- package/skill/docs/quickstart.md +83 -0
- package/skill/genre-packs/README.md +47 -0
- package/skill/genre-packs/_default/arc-types.md +153 -0
- package/skill/genre-packs/_default/rules.md +56 -0
- package/skill/genre-packs/_default/templates.md +135 -0
- package/skill/genre-packs/apocalypse/arc-types.md +109 -0
- package/skill/genre-packs/apocalypse/rules.md +113 -0
- package/skill/genre-packs/apocalypse/settings.md +106 -0
- package/skill/genre-packs/apocalypse/templates.md +192 -0
- package/skill/genre-packs/game/arc-types.md +109 -0
- package/skill/genre-packs/game/rules.md +113 -0
- package/skill/genre-packs/game/settings.md +103 -0
- package/skill/genre-packs/game/templates.md +173 -0
- package/skill/genre-packs/history/arc-types.md +109 -0
- package/skill/genre-packs/history/rules.md +107 -0
- package/skill/genre-packs/history/settings.md +126 -0
- package/skill/genre-packs/history/templates.md +179 -0
- package/skill/genre-packs/infinite-flow/arc-types.md +101 -0
- package/skill/genre-packs/infinite-flow/rules.md +75 -0
- package/skill/genre-packs/infinite-flow/settings.md +102 -0
- package/skill/genre-packs/infinite-flow/templates.md +226 -0
- package/skill/genre-packs/mystery/arc-types.md +109 -0
- package/skill/genre-packs/mystery/rules.md +107 -0
- package/skill/genre-packs/mystery/settings.md +103 -0
- package/skill/genre-packs/mystery/templates.md +178 -0
- package/skill/genre-packs/romance/arc-types.md +130 -0
- package/skill/genre-packs/romance/rules.md +88 -0
- package/skill/genre-packs/romance/settings.md +146 -0
- package/skill/genre-packs/romance/templates.md +245 -0
- package/skill/genre-packs/sci-fi/arc-types.md +109 -0
- package/skill/genre-packs/sci-fi/rules.md +113 -0
- package/skill/genre-packs/sci-fi/settings.md +99 -0
- package/skill/genre-packs/sci-fi/templates.md +170 -0
- package/skill/genre-packs/urban/arc-types.md +101 -0
- package/skill/genre-packs/urban/rules.md +75 -0
- package/skill/genre-packs/urban/settings.md +82 -0
- package/skill/genre-packs/urban/templates.md +212 -0
- package/skill/genre-packs/western-fantasy/arc-types.md +128 -0
- package/skill/genre-packs/western-fantasy/rules.md +88 -0
- package/skill/genre-packs/western-fantasy/settings.md +160 -0
- package/skill/genre-packs/western-fantasy/templates.md +225 -0
- package/skill/genre-packs/wuxia/arc-types.md +126 -0
- package/skill/genre-packs/wuxia/rules.md +86 -0
- package/skill/genre-packs/wuxia/settings.md +150 -0
- package/skill/genre-packs/wuxia/templates.md +195 -0
- package/skill/genre-packs/xianxia/arc-types.md +101 -0
- package/skill/genre-packs/xianxia/rules.md +74 -0
- package/skill/genre-packs/xianxia/settings.md +107 -0
- package/skill/genre-packs/xianxia/templates.md +202 -0
- package/skill/hooks/README.md +102 -0
- package/skill/hooks/chapter-complete.md +176 -0
- package/skill/hooks/context-injection.md +152 -0
- package/skill/hooks/intent-detection.md +183 -0
- package/skill/hooks/review-trigger.md +219 -0
- package/skill/hooks/summary-trigger.md +185 -0
- package/skill/references/act-guidance.md +228 -0
- package/skill/references/audit-core.md +130 -0
- package/skill/references/audit-dimensions.md +202 -0
- package/skill/references/character-voice-card.md +196 -0
- package/skill/references/consistency-checker.md +209 -0
- package/skill/references/content-expansion.md +68 -0
- package/skill/references/creative-constraints.md +200 -0
- package/skill/references/data-agent.md +286 -0
- package/skill/references/dialogue-writing.md +104 -0
- package/skill/references/editorial-perspective.md +166 -0
- package/skill/references/emotion-curve.md +127 -0
- package/skill/references/genre-rules.md +389 -0
- package/skill/references/golden-opening.md +81 -0
- package/skill/references/memory-system.md +288 -0
- package/skill/references/pacing-analysis.md +201 -0
- package/skill/references/platform-rules.md +244 -0
- package/skill/references/plot-structures.md +108 -0
- package/skill/references/reader-feedback.md +119 -0
- package/skill/references/rhythm-system.md +204 -0
- package/skill/references/style-imitation.md +193 -0
- package/skill/references/sweet-spot-tracking.md +182 -0
- package/skill/references/usage-guide.md +174 -0
- package/skill/references/writing-methods.md +169 -0
- package/skill/rules/anti-ai-expressions.md +206 -0
- package/skill/rules/character-voice.md +184 -0
- package/skill/rules/consistency-check.md +232 -0
- package/skill/rules/smart-query.md +263 -0
- package/skill/scripts/README.md +380 -0
- package/skill/scripts/auditor/chapter_transition.py +217 -0
- package/skill/scripts/auditor/consistency_scan.py +194 -0
- package/skill/scripts/auditor/dialogue_checker.py +194 -0
- package/skill/scripts/auditor/hook_report.py +115 -0
- package/skill/scripts/auditor/pacing_optimizer.py +303 -0
- package/skill/scripts/auditor/pacing_report.py +275 -0
- package/skill/scripts/auditor/pre_audit.py +203 -0
- package/skill/scripts/auditor/style_check.py +158 -0
- package/skill/scripts/auditor/worldbuilding_checker.py +637 -0
- package/skill/scripts/common/analyze.py +129 -0
- package/skill/scripts/common/init_guide.py +796 -0
- package/skill/scripts/common/install.py +169 -0
- package/skill/scripts/common/nm_utils.py +296 -0
- package/skill/scripts/common/validate.py +215 -0
- package/skill/scripts/coordinator/stats_report.py +165 -0
- package/skill/scripts/coordinator/volume_batch.py +121 -0
- package/skill/scripts/planner/outline_extractor.py +89 -0
- package/skill/scripts/planner/planner_context.py +220 -0
- package/skill/scripts/planner/query_engine.py +289 -0
- package/skill/scripts/reviewer/chapter_diff.py +143 -0
- package/skill/scripts/reviewer/character_arc_tracker.py +191 -0
- package/skill/scripts/reviewer/emotion_curve.py +340 -0
- package/skill/scripts/reviewer/foreshadowing_tracker.py +286 -0
- package/skill/scripts/reviewer/subplot_tracker.py +207 -0
- package/skill/scripts/reviewer/summary_generator.py +130 -0
- package/skill/scripts/reviewer/truth_diff.py +227 -0
- package/skill/scripts/reviewer/truth_manager.py +120 -0
- package/skill/scripts/test_scripts.py +366 -0
- package/skill/scripts/writer/build_write_context.py +255 -0
- package/skill/scripts/writer/chapter_info.py +67 -0
- package/skill/scripts/writer/check_wordcount.py +115 -0
- package/skill/scripts/writer/scene_builder.py +227 -0
- package/skill/scripts/writer/style_anchor.py +135 -0
- package/skill/styles/author-styles.md +53 -0
- package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//345/277/230/350/257/255.md +110 -0
- package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//347/210/261/346/275/234/346/260/264/347/232/204/344/271/214/350/264/274.md +110 -0
- package/skill/styles/authors//344/270/245/350/260/250/350/256/276/345/256/232/346/265/201//350/250/200/345/275/222/346/255/243/344/274/240.md +110 -0
- package/skill/styles/authors//345/244/232/347/245/236/350/257/235/347/203/255/350/241/200/346/265/201//344/270/211/344/271/235/351/237/263/345/237/237.md +108 -0
- package/skill/styles/authors//346/202/254/347/226/221/346/216/250/347/220/206/346/265/201//346/235/200/350/231/253/351/230/237/351/230/237/345/221/230.md +108 -0
- package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//344/270/211/345/244/251/344/270/244/350/247/211.md +110 -0
- package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//344/274/232/350/257/264/350/257/235/347/232/204/350/202/230/345/255/220.md +110 -0
- package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//345/215/226/346/212/245/345/260/217/351/203/216/345/220/233.md +108 -0
- package/skill/styles/authors//346/220/236/347/254/221/345/271/275/351/273/230/346/265/201//345/274/210/351/235/222/345/263/260.md +123 -0
- package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//345/224/220/345/256/266/344/270/211/345/260/221.md +109 -0
- package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//345/244/251/350/232/225/345/234/237/350/261/206.md +110 -0
- package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//346/210/221/345/220/203/350/245/277/347/272/242/346/237/277.md +108 -0
- package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//346/273/232/345/274/200.md +109 -0
- package/skill/styles/authors//347/203/255/350/241/200/345/215/207/347/272/247/346/265/201//350/276/260/344/270/234.md +109 -0
- package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//345/244/251/344/270/213/351/234/270/345/224/261.md +110 -0
- package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//346/234/210/345/205/263.md +108 -0
- package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//350/220/247/351/274/216.md +109 -0
- package/skill/styles/authors//347/211/271/350/211/262/351/242/206/345/237/237/346/265/201//350/235/264/350/235/266/350/223/235.md +112 -0
- package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//346/204/244/346/200/222/347/232/204/351/246/231/350/225/211.md +109 -0
- package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//347/203/275/347/201/253/346/210/217/350/257/270/344/276/257.md +109 -0
- package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//347/214/253/350/205/273.md +110 -0
- package/skill/styles/authors//347/273/206/350/205/273/346/226/207/351/235/222/346/265/201//350/200/263/346/240/271.md +109 -0
- package/skill/templates/INDEX.md +48 -0
- package/skill/templates/act-plan.md +72 -0
- package/skill/templates/chapter.md +53 -0
- package/skill/templates/character-profile.md +107 -0
- package/skill/templates/character-voice.md +106 -0
- package/skill/templates/constitution.md +90 -0
- package/skill/templates/emotional-arcs.md +37 -0
- package/skill/templates/hook-template.md +68 -0
- package/skill/templates/outline.md +155 -0
- package/skill/templates/plot-card.md +432 -0
- package/skill/templates/power-system.md +124 -0
- package/skill/templates/presets.json +69 -0
- package/skill/templates/review-report.md +135 -0
- package/skill/templates/scene-plan.md +221 -0
- package/skill/templates/scene-template.md +78 -0
- package/skill/templates/subplot-board.md +48 -0
- package/skill/templates/summary-10chapters.md +79 -0
- package/skill/templates/summary-50chapters.md +131 -0
- package/skill/templates/summary-volume.md +148 -0
- package/skill/templates/timeline.md +37 -0
- package/skill/templates/volume-plan.md +44 -0
- package/skill/templates/world-setting.md +151 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 NovelWeaver Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# NovelMaker - 全能网文写作助手
|
|
2
|
+
|
|
3
|
+
> 整合业界优秀网文写作工具理念,通过简洁指令+自然语言,帮你从零创作高质量长篇小说。
|
|
4
|
+
> **这是一个技能仓库**,兼容多种主流 AI IDE。
|
|
5
|
+
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
[](skill/SKILL.md)
|
|
8
|
+
|
|
9
|
+
## 核心能力
|
|
10
|
+
|
|
11
|
+
- **6角色协作架构** - 协调者→规划师→写手→审计师→修订师→复盘师,流水线创作
|
|
12
|
+
- **智能创作引导** - 从书名、题材到角色设定,AI 引导你完成创作准备
|
|
13
|
+
- **22位作者文风库** - 覆盖搞笑、热血、文青、严谨等 7 大流派,支持智能推荐
|
|
14
|
+
- **幕系统** - 卷内剧情弧规划,6条分支走向(A主线/B危机/C支线/D缓冲/E回环/F颠覆)
|
|
15
|
+
- **33维度质量审计** - AI味检测、一致性检查、追读力分析全覆盖
|
|
16
|
+
- **去AI味技巧** - 表层(词汇/句式)+ 深层(对话区分度/情感行为化)双重处理
|
|
17
|
+
- **平台适配规则** - 番茄小说/起点中文网/晋江文学城,满足不同平台要求
|
|
18
|
+
- **RAG 记忆增强** - 三重记忆架构,8个真相文件,自动检索设定、追踪伏笔
|
|
19
|
+
- **创意约束系统** - 三轴混搭、反套路触发器、镜像对抗防重复
|
|
20
|
+
- **Token 优化** - Python 预处理脚本,AI 读 JSON 代替全文,节省 ~90% token
|
|
21
|
+
- **题材包系统** - 11个核心题材包(修仙/都市/无限流/悬疑/历史/科幻/游戏/末世/西幻/武侠/言情),模块化写作规则和模板
|
|
22
|
+
- **篇章弧线模板** - 6种通用弧线 + 42种题材特定弧线,结构化卷级规划
|
|
23
|
+
- **节奏可视化** - emoji 标记 + 热力图 + 情绪统计,多维度节奏分析
|
|
24
|
+
- **Web UI** - 静态 HTML 查看器,项目概览/章节列表/角色档案/节奏可视化/编辑器
|
|
25
|
+
- **反AI表达规则** - 7层检测体系,60+常见AI-slop模式识别,避免AI味写作
|
|
26
|
+
- **风格锚点系统** - 从最近5章提取句长分布、对话比例、高频词,保持风格一致
|
|
27
|
+
- **角色声音检查** - 5维度检查(语言习惯、情感表达、知识边界、行为逻辑、关系互动)
|
|
28
|
+
- **5维度一致性检查** - 时间线、人物关系、世界观、伏笔回收、能力等级全面检查
|
|
29
|
+
- **智能查询系统** - 4种查询类型(角色/设定/剧情/伏笔),自然语言查询支持
|
|
30
|
+
- **Hook 系统** - 5个自动化 Hook(上下文注入/意图检测/章节完成/审查触发/总结触发)
|
|
31
|
+
- **Web UI 增强** - 设置页面(模型配置/Hook 配置)、项目管理(多项目切换/导入导出)
|
|
32
|
+
|
|
33
|
+
## 快速开始
|
|
34
|
+
|
|
35
|
+
### 安装方式
|
|
36
|
+
|
|
37
|
+
详细安装指南请查阅 [INSTALL.md](INSTALL.md),这里列出常用方式:
|
|
38
|
+
|
|
39
|
+
#### 方式0:一键安装(推荐)
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx novel-maker
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
自动检测 IDE 并安装,支持 18 款主流 AI 编程工具。
|
|
46
|
+
|
|
47
|
+
#### 方式1:Trae
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
cp -r skill/ .trae/skills/novel-maker/
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
#### 方式2:Claude Code
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
cp -r skill/ .claude/skills/novel-maker/
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
#### 方式3:Cline / Roo Code
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
cp -r skill/ .clinerules/novel-maker/
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
#### 其他 IDE
|
|
66
|
+
|
|
67
|
+
| IDE | 路径 |
|
|
68
|
+
|-----|------|
|
|
69
|
+
| Cursor | `.cursor/rules/`(需转换为 .mdc 格式) |
|
|
70
|
+
| GitHub Copilot | `.github/copilot-instructions.md` |
|
|
71
|
+
| Continue | `.continue/rules/` |
|
|
72
|
+
| OpenCode | `.opencode/skills/novel-maker/` |
|
|
73
|
+
| Windsurf | `.windsurfrules` |
|
|
74
|
+
|
|
75
|
+
完整安装步骤、验证方法和常见问题见 [INSTALL.md](INSTALL.md)
|
|
76
|
+
|
|
77
|
+
### 使用
|
|
78
|
+
|
|
79
|
+
安装成功后,在 IDE 聊天框输入以下指令开始创作:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
/novel-maker init 开始写小说
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
AI 会引导你完成:
|
|
86
|
+
1. 情绪标签选择(打脸爽文/极致虐恋/爆笑反套路/悬疑惊悚/治愈甜宠/脑洞大开)
|
|
87
|
+
2. 题材选择
|
|
88
|
+
3. 一句话简介
|
|
89
|
+
4. 主角设定(姓名、核心反差点)
|
|
90
|
+
5. 核心冲突
|
|
91
|
+
6. 章节数与文风选择
|
|
92
|
+
|
|
93
|
+
## 指令速查
|
|
94
|
+
|
|
95
|
+
| 指令 | 说明 |
|
|
96
|
+
|------|------|
|
|
97
|
+
| `/novel-maker init` | 开始写小说(6问引导) |
|
|
98
|
+
| `/novel-maker write` | 写/续写章节 |
|
|
99
|
+
| `/novel-maker review` | 审查质量 |
|
|
100
|
+
| `/novel-maker memory` | 查看/管理设定 |
|
|
101
|
+
| `/novel-maker plan` | 生成大纲 |
|
|
102
|
+
| `/novel-maker act` | 下一幕剧情规划(6条分支) |
|
|
103
|
+
| `/novel-maker style` | 切换文风 |
|
|
104
|
+
| `/novel-maker help` | 帮助信息 |
|
|
105
|
+
| `/novel-maker expand` | 扩写章节 |
|
|
106
|
+
| `/novel-maker stats` | 字数统计 |
|
|
107
|
+
| `/novel-maker inspire` | 灵感建议 |
|
|
108
|
+
| `/novel-maker summary` | 阶段总结 |
|
|
109
|
+
|
|
110
|
+
完整指令体系(三级:7核心+5扩展+7高级子指令)详见 [SKILL.md](skill/SKILL.md)
|
|
111
|
+
|
|
112
|
+
## 6角色协作架构
|
|
113
|
+
|
|
114
|
+
NovelMaker v2.2.0 采用 6角色协作架构,每个角色专注特定职责:
|
|
115
|
+
|
|
116
|
+
```
|
|
117
|
+
用户输入 → [协调者] 意图识别 → [规划师] 大纲/剧情卡片 → [写手] 章节草稿
|
|
118
|
+
→ [审计师] 审计报告 → [修订师] 修订稿 → [复盘师] 真相文件更新 → 输出
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
| 角色 | 职责 | 触发时机 |
|
|
122
|
+
|------|------|---------|
|
|
123
|
+
| **协调者** | 解析用户意图,调度角色 | 所有用户输入 |
|
|
124
|
+
| **规划师** | 大纲生成、幕规划、剧情推荐 | `/novel-maker plan` `/novel-maker act` |
|
|
125
|
+
| **写手** | 章节正文生成、文风应用 | `/novel-maker write` |
|
|
126
|
+
| **审计师** | 33维度审计、编辑视角审查 | `/novel-maker review` 每章自动 |
|
|
127
|
+
| **修订师** | 根据审计报告修复P0/P1问题 | `/novel-maker review fix` |
|
|
128
|
+
| **复盘师** | 更新真相文件、生成总结 | 章节定稿后自动 |
|
|
129
|
+
|
|
130
|
+
> 角色定义详见 [agents/](skill/agents/) 目录
|
|
131
|
+
|
|
132
|
+
## 项目结构
|
|
133
|
+
|
|
134
|
+
```
|
|
135
|
+
.
|
|
136
|
+
├── skill/ # 技能核心(安装到对应 IDE 的技能目录)
|
|
137
|
+
│ ├── SKILL.md # 主技能文件
|
|
138
|
+
│ ├── README.md # 技能使用说明
|
|
139
|
+
│ ├── agents/ # 角色定义(6个:协调者/规划师/写手/审计师/修订师/复盘师)
|
|
140
|
+
│ ├── references/ # 参考文档(22个,含平台适配规则、编辑视角、爽点追踪)
|
|
141
|
+
│ ├── rules/ # 规则文件(4个:反AI表达、角色声音、一致性检查、智能查询)
|
|
142
|
+
│ ├── styles/ # 文风库(22位作者,7大流派)
|
|
143
|
+
│ ├── templates/ # 模板文件(21个,含剧情卡片、角色语音卡、场景规划卡)
|
|
144
|
+
│ ├── genre-packs/ # 题材包(11个题材 + 通用默认)
|
|
145
|
+
│ ├── arc-templates/ # 篇章弧线模板(6通用 + 42题材特定)
|
|
146
|
+
│ └── scripts/ # 脚本工具(23个,按角色分组:common/writer/auditor/reviewer/planner/coordinator)
|
|
147
|
+
├── web/ # Web UI
|
|
148
|
+
│ ├── index.html
|
|
149
|
+
│ ├── css/
|
|
150
|
+
│ └── js/
|
|
151
|
+
├── docs/ # 项目文档
|
|
152
|
+
│ ├── CHANGELOG.md # 版本历史
|
|
153
|
+
│ └── CONTRIBUTING.md # 贡献指南
|
|
154
|
+
├── INSTALL.md # 多 IDE 安装指南
|
|
155
|
+
├── LICENSE # MIT 许可证
|
|
156
|
+
└── README.md # 项目说明
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
## 文风库
|
|
160
|
+
|
|
161
|
+
内置 22 位知名网文作者文风,按流派分类:
|
|
162
|
+
|
|
163
|
+
| 流派 | 代表作者 |
|
|
164
|
+
|------|---------|
|
|
165
|
+
| 搞笑幽默流 | 弈青峰、会说话的肘子、三天两觉、卖报小郎君 |
|
|
166
|
+
| 热血升级流 | 天蚕土豆、唐家三少、我吃西红柿、辰东、滚开 |
|
|
167
|
+
| 细腻文青流 | 猫腻、烽火戏诸侯、愤怒的香蕉、耳根 |
|
|
168
|
+
| 严谨设定流 | 爱潜水的乌贼、忘语、言归正传 |
|
|
169
|
+
| 特色领域流 | 蝴蝶蓝、天下霸唱、月关、萧鼎 |
|
|
170
|
+
| 多神话热血流 | 三九音域 |
|
|
171
|
+
| 悬疑推理流 | 杀虫队队员 |
|
|
172
|
+
|
|
173
|
+
详细文风库见 [skill/styles/author-styles.md](skill/styles/author-styles.md)
|
|
174
|
+
|
|
175
|
+
## 版本历史
|
|
176
|
+
|
|
177
|
+
| 版本 | 日期 | 更新内容 |
|
|
178
|
+
|------|------|---------|
|
|
179
|
+
| 1.0.0 | 2026-04 | 初始版本 |
|
|
180
|
+
| 1.1.0 | 2026-04 | RAG 检索增强 |
|
|
181
|
+
| 1.2.0 | 2026-04 | 指令精简 - 三级指令体系 |
|
|
182
|
+
| 1.3.0 | 2026-05 | 结构优化 - 消除重复、文风库分类 |
|
|
183
|
+
| 1.4.0 | 2026-05 | 实战增强 - 情绪标签系统、黄金开篇、情绪曲线、内容扩充技巧 |
|
|
184
|
+
| 1.5.0 | 2026-05 | 幕系统 + 脚本 - 6条分支走向、Python预处理脚本、多IDE兼容 |
|
|
185
|
+
| 2.0.0 | 2026-06 | 6角色协作架构 - 协调者/规划师/写手/审计师/修订师/复盘师,8个真相文件,去AI味技巧,平台适配规则 |
|
|
186
|
+
| 2.1.0 | 2026-06 | 质量增强 - 反AI表达规则、风格锚点、角色声音检查、5维度一致性检查、11个题材包、42种弧线模板、节奏可视化、Web UI |
|
|
187
|
+
| 2.2.0 | 2026-06 | 智能化增强 - 智能查询系统、Hook 系统、Web UI 增强(设置页面、项目管理) |
|
|
188
|
+
|
|
189
|
+
完整更新记录见 [CHANGELOG](docs/CHANGELOG.md)
|
|
190
|
+
|
|
191
|
+
## 贡献指南
|
|
192
|
+
|
|
193
|
+
欢迎提交 Issue 和 Pull Request!
|
|
194
|
+
|
|
195
|
+
1. Fork 本仓库
|
|
196
|
+
2. 创建特性分支 (`git checkout -b feature/amazing-feature`)
|
|
197
|
+
3. 提交变更 (`git commit -m 'Add amazing feature'`)
|
|
198
|
+
4. 推送到分支 (`git push origin feature/amazing-feature`)
|
|
199
|
+
5. 创建 Pull Request
|
|
200
|
+
|
|
201
|
+
详细贡献指南请参阅 [CONTRIBUTING.md](docs/CONTRIBUTING.md)
|
|
202
|
+
|
|
203
|
+
## 许可证
|
|
204
|
+
|
|
205
|
+
本项目基于 [MIT License](LICENSE) 开源。
|
|
206
|
+
|
|
207
|
+
## Star History
|
|
208
|
+
|
|
209
|
+
如果你觉得这个项目有帮助,请给一个 Star!
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, copyFileSync, lstatSync, realpathSync, rmSync } from 'fs';
|
|
4
|
+
import { resolve, dirname, join } from 'path';
|
|
5
|
+
import { fileURLToPath } from 'url';
|
|
6
|
+
import readline from 'readline';
|
|
7
|
+
|
|
8
|
+
// 递归复制目录
|
|
9
|
+
function copyDirSync(src, dest) {
|
|
10
|
+
let realSrc = src;
|
|
11
|
+
try { realSrc = realpathSync(src); } catch {}
|
|
12
|
+
mkdirSync(dest, { recursive: true });
|
|
13
|
+
const entries = readdirSync(realSrc, { withFileTypes: true });
|
|
14
|
+
for (const entry of entries) {
|
|
15
|
+
if (entry.name === '.DS_Store') continue;
|
|
16
|
+
const srcPath = join(realSrc, entry.name);
|
|
17
|
+
const destPath = join(dest, entry.name);
|
|
18
|
+
let stat;
|
|
19
|
+
try { stat = lstatSync(srcPath); } catch { continue; }
|
|
20
|
+
if (stat.isSymbolicLink()) {
|
|
21
|
+
try {
|
|
22
|
+
const real = realpathSync(srcPath);
|
|
23
|
+
const realStat = lstatSync(real);
|
|
24
|
+
if (realStat.isDirectory()) copyDirSync(real, destPath);
|
|
25
|
+
else copyFileSync(real, destPath);
|
|
26
|
+
} catch {}
|
|
27
|
+
} else if (stat.isDirectory()) {
|
|
28
|
+
copyDirSync(srcPath, destPath);
|
|
29
|
+
} else if (stat.isFile()) {
|
|
30
|
+
copyFileSync(srcPath, destPath);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
36
|
+
const PKG = JSON.parse(readFileSync(resolve(__dirname, '..', 'package.json'), 'utf8'));
|
|
37
|
+
const SKILLS_SRC = resolve(__dirname, '..', 'skill');
|
|
38
|
+
const PROJECT_DIR = process.cwd();
|
|
39
|
+
|
|
40
|
+
// 支持的 IDE 列表
|
|
41
|
+
const TARGETS = [
|
|
42
|
+
{ name: 'Claude Code', dir: '.claude/skills/novel-maker', detect: '.claude' },
|
|
43
|
+
{ name: 'Cursor', dir: '.cursor/rules/novel-maker', detect: ['.cursor', '.cursorrules'] },
|
|
44
|
+
{ name: 'Codex CLI', dir: '.codex/skills/novel-maker', detect: '.codex' },
|
|
45
|
+
{ name: 'Kiro', dir: '.kiro/steering/novel-maker', detect: '.kiro' },
|
|
46
|
+
{ name: 'DeerFlow', dir: 'skills/custom/novel-maker', detect: 'deer_flow' },
|
|
47
|
+
{ name: 'Trae', dir: '.trae/skills/novel-maker', detect: '.trae' },
|
|
48
|
+
{ name: 'Antigravity', dir: '.agents/skills/novel-maker', detect: '.agents' },
|
|
49
|
+
{ name: 'VS Code', dir: '.github/superpowers/novel-maker', detect: '.github/copilot-instructions.md' },
|
|
50
|
+
{ name: 'OpenClaw', dir: 'skills/novel-maker', detect: '.openclaw' },
|
|
51
|
+
{ name: 'Windsurf', dir: '.windsurf/skills/novel-maker', detect: '.windsurf' },
|
|
52
|
+
{ name: 'Gemini CLI', dir: '.gemini/skills/novel-maker', detect: 'GEMINI.md' },
|
|
53
|
+
{ name: 'Aider', dir: '.aider/skills/novel-maker', detect: '.aider' },
|
|
54
|
+
{ name: 'OpenCode', dir: '.opencode/skills/novel-maker', detect: '.opencode' },
|
|
55
|
+
{ name: 'Qwen Code', dir: '.qwen/skills/novel-maker', detect: '.qwen' },
|
|
56
|
+
{ name: 'Hermes Agent', dir: '.hermes/skills/novel-maker', detect: ['.hermes', 'HERMES.md', '.hermes.md'] },
|
|
57
|
+
{ name: 'Claw Code', dir: '.claw/skills/novel-maker', detect: ['.claw', 'CLAW.md'] },
|
|
58
|
+
{ name: 'Qoder', dir: '.qoder/skills/novel-maker', detect: '.qoder' },
|
|
59
|
+
{ name: 'Copilot CLI', dir: '.claude/skills/novel-maker', detect: '.claude' },
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
// 工具名称别名映射
|
|
63
|
+
const TOOL_ALIASES = {
|
|
64
|
+
'claude': 'Claude Code',
|
|
65
|
+
'claude-code': 'Claude Code',
|
|
66
|
+
'cursor': 'Cursor',
|
|
67
|
+
'codex': 'Codex CLI',
|
|
68
|
+
'kiro': 'Kiro',
|
|
69
|
+
'deerflow': 'DeerFlow',
|
|
70
|
+
'trae': 'Trae',
|
|
71
|
+
'antigravity': 'Antigravity',
|
|
72
|
+
'vscode': 'VS Code',
|
|
73
|
+
'vs-code': 'VS Code',
|
|
74
|
+
'openclaw': 'OpenClaw',
|
|
75
|
+
'windsurf': 'Windsurf',
|
|
76
|
+
'gemini': 'Gemini CLI',
|
|
77
|
+
'gemini-cli': 'Gemini CLI',
|
|
78
|
+
'aider': 'Aider',
|
|
79
|
+
'opencode': 'OpenCode',
|
|
80
|
+
'qwen': 'Qwen Code',
|
|
81
|
+
'qwen-code': 'Qwen Code',
|
|
82
|
+
'hermes': 'Hermes Agent',
|
|
83
|
+
'hermes-agent': 'Hermes Agent',
|
|
84
|
+
'claw': 'Claw Code',
|
|
85
|
+
'claw-code': 'Claw Code',
|
|
86
|
+
'qoder': 'Qoder',
|
|
87
|
+
'copilot': 'Copilot CLI',
|
|
88
|
+
'copilot-cli': 'Copilot CLI',
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
function detectIDEs() {
|
|
92
|
+
const detected = [];
|
|
93
|
+
for (const target of TARGETS) {
|
|
94
|
+
const detect = Array.isArray(target.detect) ? target.detect : [target.detect];
|
|
95
|
+
for (const d of detect) {
|
|
96
|
+
if (existsSync(resolve(PROJECT_DIR, d))) {
|
|
97
|
+
detected.push(target);
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return detected;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function installSkill(target) {
|
|
106
|
+
const destDir = resolve(PROJECT_DIR, target.dir);
|
|
107
|
+
console.log(` 安装到 ${target.name}: ${target.dir}`);
|
|
108
|
+
copyDirSync(SKILLS_SRC, destDir);
|
|
109
|
+
console.log(` ✅ ${target.name} 安装成功`);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
function uninstallSkill() {
|
|
113
|
+
console.log('🗑️ 卸载 NovelMaker...\n');
|
|
114
|
+
console.log('⚠️ 警告:此操作将删除以下目录及其所有内容:\n');
|
|
115
|
+
for (const target of TARGETS) {
|
|
116
|
+
const destDir = resolve(PROJECT_DIR, target.dir);
|
|
117
|
+
if (existsSync(destDir)) {
|
|
118
|
+
console.log(` - ${target.name}: ${target.dir}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
console.log('\n如果目录中包含自定义文件,它们将被永久删除。');
|
|
122
|
+
const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
|
|
123
|
+
rl.question('\n确认卸载?(y/N): ', (answer) => {
|
|
124
|
+
rl.close();
|
|
125
|
+
if (answer.toLowerCase() !== 'y' && answer.toLowerCase() !== 'yes') {
|
|
126
|
+
console.log('❌ 卸载已取消');
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
for (const target of TARGETS) {
|
|
130
|
+
const destDir = resolve(PROJECT_DIR, target.dir);
|
|
131
|
+
if (existsSync(destDir)) {
|
|
132
|
+
rmSync(destDir, { recursive: true, force: true });
|
|
133
|
+
console.log(` ✅ ${target.name} 已卸载`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
console.log('\n✅ 卸载完成');
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function showHelp() {
|
|
141
|
+
console.log(`
|
|
142
|
+
novel-maker v${PKG.version} - 全能网文写作助手
|
|
143
|
+
|
|
144
|
+
用法:
|
|
145
|
+
npx novel-maker 自动检测 IDE 并安装
|
|
146
|
+
npx novel-maker --tool trae 指定 IDE 安装
|
|
147
|
+
npx novel-maker --uninstall 卸载
|
|
148
|
+
npx novel-maker --help 显示帮助
|
|
149
|
+
|
|
150
|
+
支持的 IDE:
|
|
151
|
+
${[...new Set(Object.values(TOOL_ALIASES))].join(', ')}
|
|
152
|
+
`);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
function main() {
|
|
156
|
+
const args = process.argv.slice(2);
|
|
157
|
+
|
|
158
|
+
if (args.includes('--help') || args.includes('-h')) {
|
|
159
|
+
showHelp();
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
if (args.includes('--uninstall')) {
|
|
164
|
+
uninstallSkill();
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
// 解析 --tool 参数
|
|
169
|
+
let toolArg = null;
|
|
170
|
+
const toolIdx = args.indexOf('--tool');
|
|
171
|
+
if (toolIdx !== -1 && args[toolIdx + 1]) {
|
|
172
|
+
toolArg = args[toolIdx + 1].toLowerCase();
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
console.log(`
|
|
176
|
+
NovelMaker v${PKG.version} - 全能网文写作助手
|
|
177
|
+
6角色协作架构,用说话的方式写小说
|
|
178
|
+
`);
|
|
179
|
+
|
|
180
|
+
let targets;
|
|
181
|
+
|
|
182
|
+
if (toolArg) {
|
|
183
|
+
const toolName = TOOL_ALIASES[toolArg];
|
|
184
|
+
if (!toolName) {
|
|
185
|
+
console.log(`❌ 未知的工具: ${toolArg}`);
|
|
186
|
+
console.log(`支持的: ${[...new Set(Object.values(TOOL_ALIASES))].join(', ')}`);
|
|
187
|
+
process.exit(1);
|
|
188
|
+
}
|
|
189
|
+
targets = TARGETS.filter(t => t.name === toolName);
|
|
190
|
+
} else {
|
|
191
|
+
targets = detectIDEs();
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
if (targets.length === 0) {
|
|
195
|
+
console.log('❌ 未检测到 IDE,请使用 --tool 参数指定');
|
|
196
|
+
console.log(`支持的: ${[...new Set(Object.values(TOOL_ALIASES))].join(', ')}`);
|
|
197
|
+
process.exit(1);
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
console.log(`检测到 ${targets.length} 个 IDE:\n`);
|
|
201
|
+
for (const t of targets) {
|
|
202
|
+
console.log(` - ${t.name}`);
|
|
203
|
+
}
|
|
204
|
+
console.log();
|
|
205
|
+
|
|
206
|
+
// 去重
|
|
207
|
+
const uniqueTargets = [];
|
|
208
|
+
const seenDirs = new Set();
|
|
209
|
+
for (const t of targets) {
|
|
210
|
+
if (!seenDirs.has(t.dir)) {
|
|
211
|
+
seenDirs.add(t.dir);
|
|
212
|
+
uniqueTargets.push(t);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
for (const target of uniqueTargets) {
|
|
217
|
+
installSkill(target);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
console.log(`
|
|
221
|
+
✅ 安装完成!
|
|
222
|
+
|
|
223
|
+
在 IDE 聊天框输入以下指令开始创作:
|
|
224
|
+
/novel-maker init 开始写小说
|
|
225
|
+
/novel-maker help 查看帮助
|
|
226
|
+
`);
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
main();
|
package/package.json
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "novel-maker",
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "全能网文写作助手 - 6角色协作架构,支持18款AI编程工具",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"novel-maker": "bin/novel-maker.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"skill/"
|
|
12
|
+
],
|
|
13
|
+
"keywords": [
|
|
14
|
+
"novel-maker",
|
|
15
|
+
"writing",
|
|
16
|
+
"novel",
|
|
17
|
+
"chinese",
|
|
18
|
+
"web-novel",
|
|
19
|
+
"ai-assistant",
|
|
20
|
+
"claude-code",
|
|
21
|
+
"cursor",
|
|
22
|
+
"trae",
|
|
23
|
+
"skills"
|
|
24
|
+
],
|
|
25
|
+
"author": "",
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"scripts": {
|
|
28
|
+
"prepublishOnly": "node -e \"const fs=require('fs'),p=require('path');function r(d){for(const f of fs.readdirSync(d,{withFileTypes:true})){const fp=p.join(d,f.name);if(f.isDirectory()){if(f.name==='__pycache__')fs.rmSync(fp,{recursive:true});else r(fp)}}}r('.')\""
|
|
29
|
+
},
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=16.0.0"
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
# 变更日志
|
|
2
|
+
|
|
3
|
+
## v2.2.0 (2026-06-26)
|
|
4
|
+
|
|
5
|
+
### 新增功能
|
|
6
|
+
|
|
7
|
+
- **智能查询系统**:4种查询类型(角色/设定/剧情/伏笔),意图识别 + 自然语言支持
|
|
8
|
+
- **Hook 系统**:5个自动化 Hook(上下文注入/意图检测/章节完成/审查触发/总结触发)
|
|
9
|
+
- **Web UI 增强**:设置页面、项目管理、多项目切换、配置导出/导入
|
|
10
|
+
- **Token 优化脚本**:build_write_context.py(~45k/章)、pre_audit.py(~25k/章)、truth_diff.py(~40k/章)
|
|
11
|
+
- **技能验证脚本**:validate.py(137项检查,8个维度)
|
|
12
|
+
|
|
13
|
+
### 改进
|
|
14
|
+
|
|
15
|
+
- **Web UI 现代化**:采用智汇协同风格,暖色极简设计
|
|
16
|
+
- **快速操作按钮**:复制提示词到剪贴板,一键触发 Trae 对话
|
|
17
|
+
- **项目全面审查**:修复25处问题(版本号/引用/目录树/文档)
|
|
18
|
+
- **全部版本号统一到 v2.2.0**
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## v2.1.0 (2026-06-25)
|
|
23
|
+
|
|
24
|
+
### 新增功能
|
|
25
|
+
|
|
26
|
+
- **反AI表达规则**:7层检测体系,60+常见AI-slop模式识别
|
|
27
|
+
- **风格锚点系统**:从最近5章提取句长分布、对话比例、高频词(style_anchor.py)
|
|
28
|
+
- **角色声音检查**:5维度检查(语言习惯/情感表达/知识边界/行为逻辑/关系互动)
|
|
29
|
+
- **5维度一致性检查**:时间线、人物关系、世界观、伏笔回收、能力等级
|
|
30
|
+
- **11个题材包**:修仙/都市/无限流/悬疑/历史/科幻/游戏/末世/西幻/武侠/言情
|
|
31
|
+
- **篇章弧线模板**:6种通用弧线 + 42种题材特定弧线
|
|
32
|
+
- **节奏可视化**:emoji标记 + 卷级热力图 + 多维度情绪统计(pacing_visualize.py)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## v2.0.0 (2026-06-25)
|
|
37
|
+
|
|
38
|
+
### 新增功能
|
|
39
|
+
|
|
40
|
+
- **剧情卡片 6 要素**:方向类型、剧情预演、优点分析、参考小说、预计章节数、偏离影响评估
|
|
41
|
+
- **角色语音卡**:确保角色对话区分度
|
|
42
|
+
- **场景规划卡**:确保场景描写丰富度
|
|
43
|
+
- **爽点密度追踪**:10类爽点、S1-S5强度、平台适配
|
|
44
|
+
- **编辑视角审查**:开篇吸引力、节奏曲线、角色商业价值
|
|
45
|
+
- **读者反馈模拟**:模拟读者评论、评论区诱导设计
|
|
46
|
+
- **真相文件扩展**:新增 emotional-arcs.md、subplot-board.md、timeline.md
|
|
47
|
+
|
|
48
|
+
### 改进
|
|
49
|
+
|
|
50
|
+
- **analyze.py 三合一脚本**:整合 chapter_info.py + style_check.py + hook_report.py
|
|
51
|
+
- **剧情卡片模板**:6 个走向全部展开完整结构
|
|
52
|
+
- **规划师 JSON 结构**:补充 preview、advantages、reference、deviation_impact 字段
|
|
53
|
+
- **复盘师总结频率**:统一为每章后/每5章后/每10章后/每50章后/每卷末
|
|
54
|
+
- **字数要求说明**:新增平台适配(番茄/起点/晋江)
|
|
55
|
+
|
|
56
|
+
### 文档整理
|
|
57
|
+
|
|
58
|
+
- **删除过时文件**:OPTIMIZATION-LOG.md(v1.6.0)
|
|
59
|
+
- **合并重复文档**:anti-ai-patterns.md + anti-ai-techniques.md → rules/anti-ai-expressions.md
|
|
60
|
+
- **删除冗余文件**:pacing-analysis.md、emotion-curve.md(已整合到 rhythm-system.md)
|
|
61
|
+
- **更新参考文档表**:从 22 个精简为 19 个
|
|
62
|
+
- **创建模板索引**:templates/INDEX.md
|
|
63
|
+
|
|
64
|
+
### 脚本更新
|
|
65
|
+
|
|
66
|
+
- **analyze.py**:实现三合一功能(single/style/batch 模式)
|
|
67
|
+
- **hook_report.py**:修复变量名拼写 bug
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## v1.6.0 (2026-05)
|
|
72
|
+
|
|
73
|
+
### 优化内容
|
|
74
|
+
|
|
75
|
+
- 文档精简整合
|
|
76
|
+
- 脚本功能增强
|
|
77
|
+
- 模板优化
|
|
78
|
+
- 工作流优化
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
*完整变更历史请查看 Git 提交记录*
|