Skip to content

Repository files navigation

NovelForge

AI 长篇小说智能创作工作台。

NovelForge 基于 Electron + React + TypeScript + SQLite,面向的不是“一次性生成一章短文”,而是中长篇、长篇、系列小说的持续生产。它把立项、底盘、世界资产、推进结构、章节合同、正文流水线、章后回写、修订和质量监控接成一套完整链路。

1. 这套系统解决什么问题

它主要解决长篇创作里最难稳定的几件事:

  • 写之前,先把读者承诺、故事定位、主题口吻、世界边界和终局收束定清楚。
  • 写过程中,把主线、支线、人物弧、伏笔、谜题、时间轴、成长代价挂到统一结构里。
  • 让正文写作不再只靠一句提示词,而是明确受章节合同和场景合同约束。
  • 写完之后,把新增事实、状态变化、线程推进和风险重新写回总账,而不是留在正文里失控。
  • 在连续几十章推进时,持续监控 AI 味、节奏漂移、章节功能失衡、故事弧空转和状态冲突。

2. 推荐使用顺序

第一次上手,建议按下面顺序走。这个顺序对应当前工作台的引导思路,能最大程度减少后面返工。

  1. 创作总览 / 基础信息
  2. 项目立项
  3. 基础设定
  4. 主题与文风
  5. 世界规则
  6. 终局设计
  7. 地图结构物品装备角色系统势力系统
  8. 人物弧线反派与阻力设定词典场景模板
  9. 故事线程
  10. 故事设计
  11. 故事大纲卷级设计阶段计划结构规划
  12. 时间轴信息差谜题板伏笔回收账本成长资源代价
  13. 章节合同
  14. 正文写作
  15. 章后状态回写
  16. 修订中心
  17. 质量监控

说明:

  • 同一阶段里的页面可以穿插补,但总体顺序最好不要反过来。
  • 如果还没做合同、时间轴、故事线程和大纲,正文写作阶段会缺关键约束。
  • 阶段计划不是复制一份人物表或地图,而是按章节窗口登记当前资产焦点、细化程度和交接条件;百万字项目建议先按 50–100 章建立窗口,再随正文推进扩展下一段。
  • 修订中心和质量监控不是收尾装饰,而是长篇持续推进时的常驻控制台。

3. 按步骤看功能

Step 1. 建立项目底盘

这一阶段先回答一个问题:这本书到底是什么,打算写给谁看,靠什么成立。

  • 创作总览 看全局进度、当前风险、推荐下一步、工作区健康状态。
  • 基础信息 维护书名、简介、背景说明、目标字数等基础字段。
  • 项目立项 维护目标读者、核心卖点、读者承诺、内容禁区、商业定位。
  • 基础设定 维护故事定位、核心钩子、主角起点、底层约束、语言护栏。
  • 主题与文风 维护主题、情感核心、POV、时态、风格规则、对白规则、写作约束。

这一阶段定下来的内容,会直接影响后续世界生成、故事设计、正文生成和质量判断。

Step 2. 固定世界边界、终局方向和资产底盘

这一阶段的目标不是“补设定”,而是把后面所有内容要依赖的资源先做成稳定资产。

  • 世界规则 定义题材规则、力量体系、社会结构、禁用元素、时间制度和写作硬约束。
  • 终局设计 维护结局模式、最终冲突、主题答案、必须兑现的承诺、回收清单、保留未知项、终章意象、最后一幕。
  • 地图结构 维护地点层级、路线关系、空间冲突、路程成本和情节承载点。
  • 势力系统 维护组织、阵营、归属、关系网络、外部压力来源。
  • 角色系统 维护主角与关键角色 roster、角色定位、人物关系、出场资产。
  • 人物弧线 维护人物弧、关系弧、最近推进章节、阶段状态。
  • 反派与阻力 维护人物反派、环境阻力、制度阻力、阻力轨道和出手记录。
  • 物品装备 维护道具、资源、装备、关键线索和可回收物件。
  • 设定词典 维护专有名词、阶位、材料、术语、世界内部固定说法。
  • 场景模板 沉淀高频场景骨架,复用常见节拍、冲突形态和信息载荷。

这一阶段完成后,后面不管是设计故事,还是写章节,都会有清晰的资产来源,而不是空白起稿。

Step 3. 把故事推进结构化

这一阶段要把“有设定”变成“有推进路径”。

  • 故事线程 把主线、支线、伏笔线、角色目标线挂成可追踪线程。
  • 故事设计 定义故事目标、核心冲突、主线剧情、支线设计、节奏配比、结局方案。
  • 故事大纲 以章节为粒度安排推进、转折、阶段兑现和主线落点。
  • 卷级设计 为每卷定义卷目标、卷闭环、卷内压力和与终局的连接方式。
  • 结构规划 把全书拆成卷、部、章、场景;建立章节骨架和场景片段。
  • 时间轴 维护事件顺序、因果承接、时间锚点、前后逻辑。
  • 信息差谜题板 维护线索、谜题、真相、不同视角已知信息和揭示顺序。
  • 伏笔回收账本 维护伏笔埋设、回收状态、欠账情况和对应章节。
  • 成长资源代价 维护成长轨道、资源稀缺、收益与代价,避免主角只涨不付出。

这一步的核心价值,是让剧情推进、谜题回收、节奏安排和人物成长都能挂在结构上,而不是散在笔记里。

Step 4. 把章节要求写成合同

这一阶段把“大纲要求”升级成“可执行约束”。

  • 章节合同 为每章维护本章目标、服务线程、必须推进的弧线、必须出手的阻力线、必须出现的资产、必须服务的终局承诺、必须处理的伏笔、禁止动作、验收要求、结尾钩子类型。
  • 场景合同 为每个场景维护 POV、时间地点、场景目标、障碍、冲突类型、情绪变化、信息揭示、结果状态、衔接方式,并绑定终局承诺和伏笔账本。
  • 推进回写入口 在合同页里可以把本章实际推进回写到人物弧、关系弧和阻力线。

这一步完成后,正文流水线不是根据一句模糊摘要生成,而是明确绑定当前合同版本运行。

Step 5. 执行正文写作流水线

正文写作页不是纯编辑器,而是章节生产控制台。

  • 章节编辑 维护章节状态、正文内容、章节字数和当前草稿。
  • 场景结构预览 直接查看当前章的场景片段、场景顺序、地点、时间锚点和作用。
  • 上下文与记忆 查看连续性报告、故事记忆、伏笔快照、时间轴事件、相关人物、世界事实和卷级真相约束。
  • 章节流水线 当前采用 Planner -> Writer -> Critic -> Rewriter -> Canonizer -> Finalize 六角色流水线。
  • 阶段观测 能看到当前阶段、任务 ID、上游任务、合同版本、Canon Run、耗时、Token 消耗、失败原因和恢复提示。
  • 审校与验收 支持 AI 评分、问题清单、连续性检查、合同对账、章节验收门结果。
  • 版本历史 可查看章节版本、来源、恢复记录。
  • 并行生成分析 可分析哪些叙事线适合并行生成,哪些章节必须串行。

这里的目标不是“按按钮出一章”,而是让正文生成、审校、修订、定稿、回写草案生成都可追踪、可回查、可恢复。

Step 6. 处理章后状态回写

写完一章后,系统不会只留下正文文本,而是把正文里的变化重新整理回资产总账。

  • 事实抽取 从章节正文中抽取结构化事实草案。
  • 八类资产覆盖 统一覆盖人物、世界、物品、关系、线程、伏笔、谜题、时间轴八类资产。
  • Canon 候选管理 对每条状态差异进行接受、拒绝、编辑。
  • 批量处理 按资产类型、确认状态、回写状态筛选,并支持批量接受、批量拒绝。
  • 统一写回 把确认后的候选一次性写回总账。
  • 失败重试 对失败项单独重试,不必整章重做。
  • 前后状态对比 直接查看回写前后 JSON 差异,明确修改内容。

这一步是整套系统和“单纯 AI 写文”最大的分界点之一。NovelForge 的目标不是只产出文本,而是维护一份持续更新的小说资产账本。

Step 7. 进入修订与质量控制

这一阶段负责处理“章节写出来了,但系统是否还能长期稳定推进”。

  • 修订中心 统一管理人工任务和系统任务,支持状态流转、优先级、关联页面、AI 自动修复、带上下文跳转处理。
  • 系统体检 自动汇总一致性问题、时间轴问题、上下文过期、未解决高优先问题。
  • 阻塞管理 直接标记哪些问题会影响后续写作、批量生成和章节稳定性。
  • 质量监控 做全书、卷级、章节级三层质量观察。

质量监控 目前重点覆盖下面这些功能:

  • 全书健康总览 看全书健康分、风险概览、优先处理问题。
  • 长篇写作架构面板 看章节流水线累计次数、运行中数量、各角色成功/失败/阻断统计、平均耗时和 Token 消耗。
  • 卷级健康面板 看不同卷的风险分布和卷级摘要。
  • 终局债务预警 看哪些终局承诺和回收义务长期没有被服务。
  • 质量热力图 按章节看评分冷热分布。
  • 评分趋势 看总分走势和 AI 味走势。
  • 薄弱维度分析 看哪些维度最常掉分,例如文笔、逻辑、节奏、人物、世界一致性。
  • 语言退化监控 看近期哪些表达指标正在恶化或改善。
  • 对白指纹 看角色对白相似度、角色声音漂移、高相似角色组合。
  • 主角与节奏 看主角受挫率、压力走势、代价蒸发、反转支撑、节奏失衡。
  • 章节功能分析 看每章主要承担的是铺垫、推进、反转、回收、喘息、爆发、解释还是收束,并识别重复功能链。
  • 章节验收门 看每章是通过、预警、阻塞还是退回重写,并跟踪门禁漂移。
  • 故事弧推进 看各条弧线哪些章节是真推进,哪些章节在空转。
  • 召回可靠性 看上下文召回依赖率、过期召回率、兜底命中情况。
  • 世界状态稳定性 看人物、势力、物品、关系、地点的状态跳变、冲突和预警。

这一阶段的作用,是把“写崩了以后才发现”变成“写着写着就能看到哪里开始坏了”。

4. 模块速查

如果你不是第一次上手,而是想快速知道某个页面干什么,可以直接看这一节。

总览与底盘

  • 创作总览:看进度、风险、推荐下一步。
  • 基础信息:书名、简介、背景、目标字数。
  • 项目立项:目标读者、卖点、承诺、禁区、定位。
  • 基础设定:定位、钩子、主角起点、底层约束。
  • 主题与文风:主题、情感核心、POV、时态、风格规则、对白规则。

世界与资源

  • 世界规则:世界运行规则与写作硬约束。
  • 终局设计:结局模式、最终冲突、回收清单、最后一幕。
  • 地图结构:地点结构与空间推进关系。
  • 势力系统:组织关系和外部对抗结构。
  • 角色系统:角色 roster 和基础关系。
  • 人物弧线:人物弧和关系弧推进。
  • 反派与阻力:反派来源和阻力轨道。
  • 物品装备:道具、资源、线索。
  • 设定词典:专有词汇和世界用语。
  • 场景模板:高频场景的可复用模板。

推进与写作

  • 故事线程:主线、支线、伏笔线追踪。
  • 故事设计:故事目标、核心冲突、主线、支线、结局。
  • 故事大纲:章节推进与关键转折。
  • 卷级设计:每卷目标、压力、闭环。
  • 阶段计划:按章节窗口增量扩展人物、地点、世界和剧情资产。
  • 结构规划:卷/部/章/场景拆分。
  • 章节合同:章节与场景的执行合同。
  • 时间轴:事件顺序与因果链。
  • 信息差谜题板:谜题、线索、真相与视角信息差。
  • 伏笔回收账本:伏笔埋设、欠账、回收。
  • 成长资源代价:成长曲线、资源稀缺、收益代价。
  • 正文写作:章节编辑、流水线生成、审校、历史、上下文查看。
  • 章后状态回写:事实抽取、Canon 候选、统一写回。
  • 修订中心:系统任务、人工任务、体检问题、自动修复。
  • 质量监控:全书健康、趋势、漂移、验收门、世界状态稳定性。

5. 工作台通用能力

除了各个业务页面,整个工作台还有一组通用能力:

  • 全局搜索 可以在章节、线程、时间轴、角色、物品、地点之间快速搜索。
  • 章节跳转 可以按章节号或标题快速定位到正文页。
  • 推荐下一步 根据当前项目数据状态,直接给出下一步建议入口。
  • AI 质量看板 除总览、质量监控等少数页面外,很多工作区都可直接拉起页内 AI 质量面板。
  • 撤销最近操作 支持对最近可撤销操作做统一回退。
  • 快捷键 支持保存、搜索、跳章、上一章/下一章等常用操作。

6. 技术架构

桌面架构

  • Electron 主进程负责 IPC、本地任务、文件能力、数据库和工作流执行。
  • React + Ant Design 渲染层负责工作台页面、写作界面、合同页、质量看板等交互。
  • SQLite + Drizzle ORM 本地数据持久化。
  • Zustand 前端状态管理。

关键目录

  • electron/services 核心业务服务,包括章节流水线、任务、上下文、质量、回写、时间轴、资产维护等。
  • electron/database 数据库 schema、连接与迁移。
  • src/pages/Novel 长篇工作台页面入口和各模块页面。
  • src/shared 快照解析、规则定义、工作流辅助逻辑。
  • src/stores 渲染层状态管理。

关键设计思路

  • 上下文分层,而不是把所有设定粗暴塞进同一个 Prompt。
  • 合同驱动写作,而不是直接根据模糊大纲生成正文。
  • 任务统一观测,而不是让每个页面各自处理 AI 失败。
  • 写后统一回写,而不是让正文和资产长期脱节。
  • 看趋势和漂移,而不是只盯单章分数。

7. 开发环境

建议环境:

  • Node.js 18+
  • npm 9+
  • Windows 桌面环境

安装依赖:

npm install

启动开发:

npm run dev

网页端本地运行(与桌面端共用 SQLite、服务层和任务事件流):

npm run dev:web

网页端默认地址为 http://127.0.0.1:4175,本地后端为 http://127.0.0.1:8787。网页端的 /rpc/health/events 均由 Vite 转发到本地后端;/events 使用 SSE 推送任务进度、流式输出和生成阶段事件。

8. 常用命令

开发

npm run dev
npm run preview

类型检查与测试

npm run typecheck
npm run test
npm run test:unit
npm run test:smoke
npm run test:migrations
npm run test:workflow-resilience
npm run test:workspace-routing
npm run test:web-rpc

数据库

npm run db:generate
npm run db:push
npm run db:studio

打包

npm run build
npm run build:dir
npm run build:win
npm run build:installer
npm run build:installer:signed

Windows 打包准备

npm run setup:win-tools

9. 目录结构

.
├─ electron/              主进程、服务层、数据库、适配器
│  ├─ adapters/
│  ├─ database/
│  ├─ services/
│  └─ utils/
├─ scripts/               打包、检查、测试脚本
├─ src/                   渲染层
│  ├─ components/
│  ├─ pages/
│  ├─ shared/
│  ├─ stores/
│  ├─ styles/
│  ├─ types/
│  └─ utils/
├─ electron-builder.yml   打包配置
├─ electron.vite.config.ts
├─ drizzle.config.ts
└─ package.json

10. 数据与迁移说明

  • 数据库存储在本地 SQLite。
  • 应用启动时会自动执行迁移。
  • 章节流水线任务、写作过程状态和相关元数据会写入任务系统。
  • 如果你新增字段、表或索引,请同步更新数据库 schema 和连接逻辑。

11. 接手阅读顺序

如果你是第一次接手这个项目,建议按下面顺序阅读:

  1. 本 README
  2. src/pages/Novel/index.tsx
  3. src/pages/Novel/workflow.ts
  4. src/shared/story-settings.ts
  5. src/pages/Novel/Writing/index.tsx
  6. src/pages/Novel/Contracts/index.tsx
  7. src/pages/Novel/WritebackCenter/index.tsx
  8. src/pages/Novel/RevisionCenter/index.tsx
  9. src/pages/Novel/QualityDashboard/index.tsx

12. 适合谁使用

这套系统更适合下面几类创作者和团队:

  • 正在做中长篇、长篇、系列故事的人。
  • 需要长期维护角色、线程、伏笔、时间轴和设定一致性的人。
  • 希望让 AI 参与整本书生产流程,而不是只生成几个段落的人。
  • 希望把创作过程沉淀成可复用资产,而不是只留下一堆正文文件的人。

13. 开源仓库边界

完整的文件保留规则、逐界面审计、AI 文本自然度标准和修复优先级见 开源边界、界面与文本质量审计

仓库中应当保留并提供给使用者的内容:

  • src/electron/:应用源码、数据库结构和迁移逻辑。
  • scripts/:安装、构建、打包、通用检查和可重复的回归测试。
  • build/:安装包图标等打包资源。
  • package.jsonpackage-lock.json、TypeScript/Vite/Electron/ESLint 配置:保证可重复安装和构建。
  • README.md 与正式项目文档:说明安装、使用、架构和贡献方式。

以下内容不应提交或打包给使用者:

  • node_modules/out/release/coverage/*.tsbuildinfo 等可重新生成的依赖、产物和缓存。
  • *.db*.sqlite*、日志、临时测试目录等本地运行数据。
  • .env*、私钥、证书包、API Key、模型密钥和个人 IDE 配置。
  • 只服务于某次内部验收、固定小说样例、个人数据库修复或历史工单取证的一次性脚本。

发布源码前建议执行:

npm ci
npm run typecheck
npm test
npm run build:app

14. 一句话总结

NovelForge 不是“AI 帮你写一章”的工具,而是一套把立项、设定、结构、合同、正文、回写、修订和质量监控串起来的长篇小说生产工作台。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages