# novel-studio **Repository Path**: lysimportant/novel-studio ## Basic Information - **Project Name**: novel-studio - **Description**: novel-studio pro - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-30 - **Last Updated**: 2026-10-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # novel-studio 小说创作与漫剧提示词工作台。产品路径是:先把完整长篇小说写好,再将小说转换为可落地的漫剧前瞻资产(改编稿、分场剧本、分镜、角色/场景/物品视觉圣经,以及正向/负向图片提示词)。 当前仓库以 **V2 方案**为唯一基线,优先完成 Web Renderer;Electron/Windows EXE 在 Web 验收和 M1 稳定后再做。M1–M7 是实施里程碑,不是产品版本号。 ## 当前状态(Web 优先) | 里程碑 | 状态 | 说明 | | --- | --- | --- | | M1 | Web 基础切片已完成,桌面联调后置 | 工作台、主导航、项目/章节隔离、TipTap 正文编辑、自动保存与可配置编辑偏好,以及 Electron 安全底座、SQLite/FTS5 和受控 IPC 已具备;完整桌面验收、原生模块联调和 EXE 发布仍后置。 | | M2 | 规划、故事状态与任务基础已实现 | 创作意图、故事圣经、总纲/卷纲/章纲/场景卡,以及角色当前状态、关系快照、时间线和伏笔均具备项目级 CRUD、revision 与引用校验;正文可与同项目章纲节点建立唯一绑定,删除被故事状态引用的章节会被拒绝,章节删除会清理其场景草稿与正文版本;规划记录支持不可变历史快照、按 revision 查询和追加式回滚;`generation_jobs` 持久化契约、跨项目任务页、分层生成入口和已有任务的状态操作已接入。Electron 侧六阶段 Runner 可按场景积累有界 `sceneOutputs`,并额外持久化有界 `sceneOutputIndex`(`sceneIndex -> sceneId`),暂停/失败后从 checkpoint 去重恢复;结构阶段按项目目标字数推导有界卷/章/场景计划,并以最多 16 个节点一批的 checkpoint 支持暂停、失败和重试恢复。场景生成上下文按 `projectId` 绑定场景,并以有界切片汇总创作意图、故事圣经、结构节点、章节摘要、伏笔、角色状态、文风指纹和上一场景结尾。Web 任务页每 2 秒轮询持久化状态;默认 dry-run 在场景成功后将输出写入当前项目隔离的 `scene_drafts`,不覆盖 `chapters.content`,已确认草稿不会被降级或替换。配置真实 Provider 时,writing 阶段必须返回带匹配 `projectId`/`sceneId` 的严格 JSON envelope,主进程在写回前校验并在同一 SQLite 事务中保存正文与显式 `storyState`;质量阶段支持两条受控路径:显式 `qualitySourceId` 仅检查绑定章节一次,自动全量任务则按 writing 产出的场景草稿逐场景生成独立报告,并在每次写回后推进 `qualitySceneIndex`,不改写正文;finalize 阶段严格校验后将摘要、后续步骤和完成状态持久化为独立成果,按项目/任务可查询且受 revision 保护。Provider/模型降级链已支持同 Provider 模型切换与跨 Provider 切换,并从任务 checkpoint 安全透传。新增本地 HTTP Provider + Worker + SQLite 六阶段冒烟回归;完整生产环境 Provider/Worker 验收仍未完成。场景草稿支持保存、确认/拒绝、版本和回滚。 | | M3 | 去 AI 味报告与局部修订闭环已实现 | 本地确定性扫描可定位行/段/句并给出证据、理由和局部建议;报告已按项目/来源持久化,保留 revision 与版本快照。面板支持逐条标记、局部替换、正文版本写回、人工确认、版本查看与回滚。生成上下文已接入当前项目章节派生的文风指纹,只保存有界统计、禁用模式命中和来源章节/revision 元数据,不保存样文原文。Skill 中心已支持写作配方编排和执行预检;宿主顺序执行器纯函数基础支持 checkpoint、恢复、取消与失败短路,真实 Worker、任务持久化和成果写回仍属后续。 | | M4 | 公开榜单与公开元数据分析切片已实现 | 灵感页提供 10 个可选择的主流平台候选,每个平台可刷新公开榜单前 10 条,记录来源、抓取时间、热度和失败/受限原因;支持按选中平台搜索、项目级收藏,以及最近两期、昨日、本周三种成功缓存趋势窗口,并展示两期来源与抓取时间。榜单记录可选带适配器验证的稳定 `workIdentity`(公开原生 ID 或规范化公开详情 URL);有可靠身份时记录 ID 只由 `adapterId + workIdentity` 生成,无可靠身份的 legacy/临时观测不会被自动合并。当前项目收藏可基于成功公开元数据生成题材聚类、同质化提示和原创故事种子,并保留来源快照、公开链接与抓取时间,不复用书名、作者、简介或原作情节。Electron 使用公开 HTTP Adapter 并持久化缓存;Web 开发服务器通过受限的 Vite 同源桥接复用公开 Adapter,生产部署仍需合规的服务端代理。 | | M5 | 结构化资产与 PC Web 本地自动生成基础已实现 | 漫剧工坊可按项目维护视觉圣经、分场和分镜,记录稳定来源、连续性、正负提示词及生成元数据;“自动生成”可从当前项目章节、场景规划和场景草稿生成可追溯的本地确定性草稿,并保留稳定资产 ID、来源引用、revision 和已确认资产锁定。支持画风包事实隔离、只读跨镜一致性报告和 JSON/CSV/Markdown 导出。Electron 可在配置可用凭据时请求并校验结构化 Provider 输出;这仍不是完整真实 AI 改编 Skill/Worker。云端图片生成、画布 API、配音、字幕和视频合成仍未完成。 | | M6 | 作品汇聚与 Web 归档切片已实现 | 作品汇聚页可按项目集中查看正文、规划、故事状态、检查报告、漫剧资产、全书收束成果和版本/Skill/模型来源,并导出确定性 JSON/Markdown。Web 支持版本化单项目归档、章纲绑定 ID 重映射、任务与 finalize artifact ID 重映射、重复恢复为不同的新隔离项目及写失败回滚;Electron 事务归档、图片聚合与跨机器恢复验收仍未完成。 | | M7 | 暂停 | AIGC 画布必须最后实现;开始前必须先取得接口文档、鉴权方式、任务结构和回调格式。 | ## 技术栈 - 桌面壳:**Electron + electron-vite**(Windows EXE 后置) - 前端:**React + TypeScript + Vite** - 正文编辑器:**TipTap / ProseMirror**(保存 HTML) - 本地数据库:**SQLite(better-sqlite3)**,章节全文检索使用 FTS5 trigram - 结构校验:**Zod** - 凭据:**Electron safeStorage**(Windows DPAPI) - 测试:**Vitest** - 代码质量:TypeScript strict + ESLint flat config ## 目录结构 ```text novel-studio/ ├─ AGENTS.md # 项目强约束与里程碑验收标准 ├─ 小说创作与漫剧提示词工作台-V2.md # 正式产品方案 ├─ electron.vite.config.ts # main / preload / renderer 构建 ├─ vite.web.config.ts # 浏览器优先开发服务器 ├─ package.json └─ src/ ├─ main/ │ ├─ index.ts # BrowserWindow 安全策略 │ ├─ app.ts # 主进程服务组装 │ ├─ ipc/index.ts # Zod 校验后的白名单 IPC │ ├─ db/ │ │ ├─ database.ts # SQLite 打开与迁移执行 │ │ ├─ migrations.ts # 版本化、可回退迁移 │ │ └─ repo/ # 项目、正文、规划、故事状态、任务、配方、漫剧资产仓储 │ └─ services/ │ ├─ skill-registry.ts # Skill manifest、能力、依赖与冲突 │ ├─ builtin-skills.ts # 内置业务 Skill 清单 │ ├─ anti-ai-report.ts # 本地去 AI 味证据扫描 │ ├─ inspiration-*.ts # 灵感榜单契约、适配器与仓储基础 │ ├─ provider-service.ts # Provider 配置与 hasCredential │ └─ secret-store.ts # safeStorage 加密存储 ├─ preload/ # contextBridge 白名单 typed API ├─ renderer/ # React 工作台与 Web 适配器 └─ shared/ # Renderer-safe 领域、IPC、Skill、任务契约 ``` ## 启动 Web 端 ```bash npm install npm run dev:web ``` 浏览器模式是当前开发入口:项目、章节、规划与故事状态、任务、灵感快照/收藏、Skill 启停、写作配方、漫剧资产、项目归档和 Provider 配置使用 `localStorage` 适配器,便于先完成工作台交互验收。灵感页默认搜索本地缓存;运行 `npm run dev:web` 时,刷新所选平台会通过 Vite 开发服务器的同源桥接抓取公开榜单并写入本地缓存。该桥接只接受目录中的平台 ID,不是生产通用代理;桥接不可用或生产部署未配置合规代理时,页面会保留明确的受限/失败状态。若默认端口 `5173` 被占用,Vite 会自动选择下一个可用端口(例如 `5174`)。浏览器模式不会保存 API Key 明文,只记录是否已配置。 Electron 联调需要先重建原生模块: ```bash npm run rebuild:native npm run dev ``` ## 打包 ```bash npm run build # 编译 main / preload / renderer 到 out/ npm run build:win # electron-builder 生成 Windows unpacked 目录到 release/ ``` `build:win` 目标为未签名的 `dir`,EXE 打包不作为当前 Web 开发前置条件。 ## 已实现能力(当前 Web 切片) ### 工作台与主导航(M1) - 多小说项目 CRUD,所有章节和规划数据以 `projectId` 隔离。 - TipTap 正文编辑器、章节 CRUD、自动保存和 revision 乐观并发保护。 - 工作台中部可切换“正文 / 规划 / 故事状态”,右侧提供项目记忆和去 AI 味检查面板。 - 左侧固定导航已接入:小说库、灵感源泉、生成任务、漫剧工坊、作品汇聚、Skill 中心、模型与 API、设置;设置页可保存编辑自动保存开关、保存延迟和紧凑布局偏好,并立即作用于工作台。 - SQLite 版本化迁移与章节 FTS5 trigram 全文索引。 - Electron 渲染进程启用 `contextIsolation`,禁用 Node Integration,preload 只暴露白名单 API;生产 CSP、导航和外部链接策略已加固。 - Skill manifest(能力、依赖、权限、兼容版本)解析/校验、内置 Skill 清单和启停状态。 - Skill 中心可维护全局模板或项目专属写作配方,按顺序引用已安装 Skill;配方不会隐式改变 Skill 启停状态,SQLite 与 Web 均有项目隔离和 revision 冲突保护。执行预检会拒绝跨项目、缺失/停用 Skill、错误依赖顺序、能力冲突和禁用权限;宿主顺序执行器基础支持 checkpoint、恢复、取消和失败短路。外部安装、权限确认、版本回滚、真实 Worker/Utility Process、任务中心持久化和 Skill 业务成果写回仍待实现;生成 Runner 的 dry-run 场景草稿写回已具备。 - 模型与 API 页面可保存 Provider 元数据,并提供“测试连接”“保存并测试连接”按钮;Electron 通过主进程 Router 发送有界短请求并显示真实连接、模型、耗时和脱敏失败原因。`custom` 只显示本地 dry-run,Web 模式不会发送真实模型请求。Electron 使用 `safeStorage` 保存凭据,Renderer 只收到 `hasCredential`,不会回显密钥。 ### 规划与任务中心(M2) - 创作意图:前提、受众、情绪承诺、卖点、禁区、文风约束。 - 故事圣经条目:人物、世界、地点、势力、物品、规则、术语,支持草稿/确认状态。 - 层级结构节点:总纲 → 卷 → 章 → 场景,保存目标、阻力、变化、结果、视角、地点、时间、冲突和信息增量。 - 规划记录项目隔离、revision 校验、层级合法性和循环校验;删除父节点时保留并提升子节点,避免级联丢失。 - 生成任务共享契约与 SQLite `generation_jobs` 表:阶段、状态、进度、checkpoint、重试次数、revision、错误信息和时间戳字段已定义。 - 生成任务页按项目分组显示队列,支持搜索、状态筛选、检查点展开,以及暂停、恢复、重试、取消和删除;Web 模式由 `localStorage` 持久化这些任务操作,进入任务页后每 2 秒重新读取状态,离开页面时停止轮询,操作完成后立即刷新持久化结果。该轮询只同步 Renderer 展示,不代表已启动真实 Worker 或 Provider。 - 工作台提供六阶段分层生成入口;Web 模式将任务从 `queued` 持久化切换为 `running`,Electron 模式由 `GenerationRunner` 按阶段/场景写入 checkpoint,并支持暂停、恢复、取消和从检查点重试。写作阶段按 `sceneIndex` 累积有界 `sceneOutputs`,并保存有界 `sceneOutputIndex` 供自动质量阶段在输出截断后按场景解析来源;失败重试去重并兼容旧单一 `output` 检查点;真实 Provider 回执继续保留最近一次 `usage`/`cost`/`attempts`,并在 `providerReceiptTotals` 中跨阶段、跨场景按币种累计,恢复时不会重复计算已完成检查点。默认执行器仍是确定性 dry-run,其场景输出仅写入项目隔离的 `scene_drafts`;配置真实 Provider 时,writing 响应先通过严格 JSON envelope、项目/场景身份和大小边界校验,再进入场景草稿与故事状态事务写回,不会覆盖 `chapters.content`。 - 场景生成上下文契约由 `src/shared/generation-context.ts` 定义:每次构造必须绑定 `projectId` 与 `sceneId`,可携带创作意图、故事圣经、结构节点、最近章节摘要、未回收伏笔、角色当前状态、文风指纹/禁用模式和上一场景结尾;跨项目记录会拒绝,数组数量、文本长度和上一场景结尾长度均有上限,并按稳定键排序。真实 Provider writing 路径和 Provider Worker 只传递无凭据的 JSON 请求,缺少稳定场景上下文或响应不合法时在调用/写回前失败;dry-run 结果由主进程写入场景草稿,不写回 `chapters.content`。六阶段的本地 Provider/Worker/SQLite 写回已由短文本 HTTP fixture 冒烟覆盖;生产 Provider、真实长篇质量与完整业务验收仍待完成。 - 场景草稿 API、存储与 Renderer 流程已实现:每个项目/章节/场景独立保存草稿,状态可在 `draft`、`confirmed`、`rejected` 间变更;每次变更保留版本,可读取历史版本并回滚。草稿存储不写入或覆盖 `chapters.content`;确认/拒绝要求先保存未提交编辑,并提供并发 revision 保护。 - 故事状态提供角色当前状态与关系快照、时间线事件和伏笔表;三类数据均有 Zod 契约、SQLite/Web CRUD、revision、项目隔离,以及角色/章节/场景引用校验。被引用的章节、场景或角色会拒绝删除,避免悬空引用;Electron 场景生成可消费显式 `storyState` envelope,在同一 SQLite 事务中写回三类状态,支持 marker 幂等和作者 revision 保护;独立关系图仍待实现。 ### 去 AI 味报告(M3) - 本地确定性扫描规则:公式化措辞、模糊词、解释过度、句长节奏。 - 文风指纹由当前项目自有章节派生,统计句长/段落/对白/标点等有界指标,并记录命中的禁用模式和来源章节 revision;缓存不保存完整样文原文,项目之间严格隔离。`get(projectId)` 在该项目首次刷新前返回 `null` 只表示尚未生成;工作台刷新或 Electron 生成上下文构造会从当前项目正文重建并持久化,空稿也会保存零统计结果,章节内容/revision 变化后再次刷新才递增指纹 revision。 - 报告包含稳定 ID、具体片段、行/段/句位置、命中证据、判定理由和局部修改建议。 - 面板支持逐条标记“已处理 / 已忽略 / 恢复待处理”,扫描只产出报告,不直接重写正文。 - 真实 Provider 的质量阶段对显式绑定任务只检查当前章节一次;自动全量任务则按 writing 生成的场景草稿逐场景检查。正文以统一规范化与指纹规则读入,Provider 回应期间正文或 revision 变化会拒绝报告回写;自动路径的质量游标写入 checkpoint,报告写回失败时不推进当前场景。finding 的 UTF-16 偏移、展示片段和证据还必须精确对应主进程中的受控来源;该校验文本不进入 checkpoint、报告或 IPC。没有绑定来源的 dry-run 保持兼容,真实回执则安全失败。 - 报告按项目与正文来源持久化,保存 revision 和版本快照,并在正文变化时提示报告过期;面板支持逐条状态更新、用户填写局部替换、正文版本写回、人工确认、版本查看与回滚。自动修改始终产生新正文版本,不覆盖既有人工确认内容;完整可编排 Skill 体系与版本差异视图仍待后续迭代。 ### 灵感源泉(M4) - 榜单记录和快照使用 Zod 校验,强制保存平台、榜单、排名、书名/作者、标签、公开摘要、热度、来源 URL、抓取时间和获取状态。 - `workIdentity` 为可选的公开作品稳定身份,只接受适配器验证的原生 ID 或规范化公开详情 URL;不从书名、作者、排名、候选索引或页面顺序推断。没有可靠身份的旧记录,以及读到损坏身份列的历史记录,继续按 legacy/临时观测读取,不被静默升级或合并;同一 `record.id` 已建立可信身份后,后续同平台无身份观测会保留该身份,平台变化或身份重绑仍拒绝。 - `success` / `restricted` / `failed` 状态及失败原因约束,禁止用伪造数据填充受限来源。 - 首批提供 10 个可选择平台:起点中文网、番茄小说、QQ 阅读、晋江文学城、纵横中文网、17K 小说网、七猫中文网、书旗小说、掌阅、飞卢小说网。该目录是主流候选集合,不宣称权威的全球热度排名。 - Electron 主进程通过公开 HTTP Adapter 按用户选择的平台和榜单抓取,最多保存前 10 条;每条记录保留来源链接、抓取时间、公开摘要和热度。适配器仅在公开数据提供可验证的原生 ID 或规范详情 URL 时生成稳定身份和稳定记录 ID;否则保留临时观测 ID。平台返回验证码、反爬或其他受限状态时只保存 `restricted`/`failed` 及原因,不伪造条目。Web 开发服务器通过同一公开 Adapter 处理所选平台,结果由 Renderer 缓存到浏览器本地存储。 - 2026-08-30 已对真实公开页面做一次只读探测:QQ 阅读、晋江文学城、纵横中文网、17K 小说网和书旗小说成功解析并提取可验证作品身份;起点中文网、番茄小说和掌阅返回受限;七猫中文网和飞卢小说网返回失败并保留真实原因。探测未写入伪造榜单数据,也不等同于长期可用性承诺;平台结构或访问策略变化后仍需定期复测。 - Web 浏览器模式可搜索已经缓存的快照、归档记录和收藏;在 `npm run dev:web` 开发服务器下刷新所选平台会走受限的同源桥接,桥接不可用或没有可用快照时会明确显示“访问受限/暂无快照”,不是伪造的榜单数据。 - 支持按书名、作者、题材、榜单等关键词搜索;灵感页要求先选择收藏所属项目,再按 `projectId` 持久化收藏,页面展示获取成功/受限/失败状态。 - 题材聚类、同质化提示和原创故事种子仅分析当前项目收藏所关联的成功公开记录:结果保留原始快照、记录、链接和抓取时间以便追溯;故事种子只组合抽象题材和冲突维度,不展示或复用原作书名、作者、简介、情节或受限正文,也不会自动写入创作意图。 - 趋势分析严格按 `platform + listName` 隔离,只比较成功缓存并提供“最近两期 / 昨日 / 本周”三档。昨日与本周以最新成功快照的 `Asia/Shanghai` 自然日/自然周为锚点,只取紧邻的前一日或上一自然周;缺少该成功窗口时明确不可比较,绝不回退到更早快照。每份报告保留两期快照 ID、抓取时间、来源链接与成功状态;先匹配双方唯一且相同的 `workIdentity`,仅在双方都没有稳定身份时按记录 ID,再仅对双方归一化 `title + author` 均唯一的条目做显示层回退。重复身份或单边有稳定身份都会排除为歧义,不推断名次变化、新入榜或掉榜。 - 平台页面结构和访问策略会变化;当前 Adapter 只访问公开页面,不绕过登录、验证码、付费或反爬机制。Vite 同源桥接仅用于本地开发,接受平台目录 ID 并限制请求体,不作为生产通用代理;生产 Web 部署仍需另行提供合规的服务端代理和部署方案。 ### 漫剧工坊(M5 基础与本地自动生成) - 视觉圣经覆盖角色、地点和物品,要求稳定 ID、来源章节/场景、固定事实、连续性锚点、正负提示词、生成来源与确认状态。 - 漫剧分场记录集号、场号、来源、剧情功能、梗概、地点、时间、角色和物品引用;分镜记录景别、机位、视角、运动、时长、动作/表情、构图、光色、氛围、音效、连续性引用、正负提示词、画幅和目标模型。 - 画风包通过纯 `applyStylePack` 只替换 style 字段,镜头事实、来源、revision 和确认信息保持不变;支持确定性 JSON、CSV、Markdown 导出。 - `drama_asset_bundles` 以 `projectId` 隔离,主进程 IPC 严格校验,整包保存使用 revision;已确认资产不能通过整包保存被删除或静默改写。 - 一致性页提供确定性只读报告,定位具体集/场/镜,检查镜号顺序、相邻镜头角色/物品锚点、镜头与分场的角色/地点/物品引用,以及已确认镜头的高严重度阻断项;只给局部建议,不自动改写资产。 - PC Web 的“自动生成”入口调用共享确定性生成器:按当前项目的章节、场景规划和场景草稿生成视觉圣经、分场和分镜,写入 `local.drama-generator` 来源及 `deterministic-local-draft` 模型标记;相同项目内容和时间戳会得到稳定 ID/结果,跨项目来源会被拒绝。 - 生成结果通过项目 `revision` 乐观并发保护合并;已有 `confirmed` 视觉资产、分场和分镜保持字节级不变,新生成记录仍需逐项人工确认。Provider 只能提供经过 JSON、项目边界和来源引用校验的结构化补丁,不能直接改写已确认资产;Provider 请求失败会显示失败,不伪装成本地成功。 - Web 自动生成的本地草稿不代表模型已经完成小说改编,也不写入正文 `chapters.content`。Electron 侧的 Provider 路由仅在宿主配置可用凭据时启用,尚未形成可安装/可编排的完整 AI 改编 Skill/Worker 和生产验收闭环。 - 未接入云端图片生成、AIGC 画布、配音、字幕或视频合成;本阶段只交付结构化文本/提示词资产。 ### 作品汇聚与 Web 项目归档(M6 Web 切片) - 按项目聚合当前正文、创作意图、故事圣经、结构规划、角色当前状态、时间线、伏笔、去 AI 味报告、全书收束成果、视觉圣经、分场、分镜和提示词指标。 - 来源表保留成果 revision、Skill/Prompt/模型版本、生成或更新时间和来源 revision;宿主尚未记录的字段明确显示为未提供,不伪造来源。 - 支持只读 JSON/Markdown 导出;聚合器会拒绝跨项目数据,导出不会修改正文、版本历史或浏览器存储。 - Web 模式支持 `1.2.0` 版本化单项目归档并兼容读取 `1.1.0`、`1.0.0`;归档包含正文、规划及其不可变历史、版本、报告、项目配方、漫剧资产、故事状态、任务检查点和项目收藏,恢复固定创建新项目并重映射全部项目内 ID。`workIdentity` 为可选字段,旧归档无该字段仍可读取;恢复时同 ID 且同稳定身份的排名/标题/摘要/抓取时间变化保留本地记录,已验证身份会被同平台无身份观测继承,身份冲突、身份仅单边存在或从未验证过的旧无身份记录内容变化会拒绝恢复,避免静默合并收藏。 - Web 恢复写入前记录恢复日志,任一步失败会回滚本次新增键;运行中的任务恢复为暂停并保留 checkpoint。同一归档可重复恢复为不同项目,不覆盖现有项目。 - finalize 阶段的摘要、后续步骤和完成状态已作为独立 artifact 纳入上述作品汇聚与 `1.2.0` Web 归档;恢复会重映射任务和 artifact ID,并保留任务已删除后的孤立成果以便追踪。 - 归档明确不包含 Provider、密钥、全局 Skill/配方;Electron preload/IPC、SQLite 单事务恢复、图片成果与跨机器验收仍属于 M6 后续。 ## 本地验证 提交或交付前按项目约束执行: ```bash npm run lint npm run typecheck npm test npm run build npx vite build --config vite.web.config.ts ``` 当前阶段浏览器验收覆盖 PC 桌面视口:项目切换、正文自动保存、规划表单、项目隔离、无横向溢出、无遮挡、焦点可用,以及浏览器控制台无错误。移动端适配后置,不作为当前切片验收项。 ## 数据与安全说明 - Electron 数据默认位于 `app.getPath('userData')`:`novel-studio.db` 与 `secrets/provider-.key`。密钥由 safeStorage/DPAPI 加密,禁止写入项目、数据库明文、日志或导出包。 - Web 模式仅使用浏览器存储适配器,不代表正式 Electron + SQLite 数据层;浏览器环境不应作为生产数据备份。 - Web 项目归档只包含当前项目业务数据,不包含 Provider、API Key、全局 Skill 或全局配方;恢复始终创建新项目,不覆盖既有项目。 - 所有主进程 IPC 入参在边界处使用 Zod 校验;Skill 不得绕过能力注册表直接访问 Provider、文件系统或未授权网络。 - 测试使用独立临时数据库,不清理生产数据库、WAL/SHM、上传目录或用户文件。 ## 已知限制与后续 - 分层长篇生成已补齐单场景真实 Provider writing envelope 与质量报告写回:请求含项目/场景或任务显式绑定的章节来源,响应严格校验 JSON、大小和身份;质量回写只保存 anti-AI 报告,显式章节为单次检查,自动全量任务则逐场景检查并持久化质量游标,所有写回前均复核统一指纹和章节/草稿 revision。Worker 通过主进程 Provider 代理且不传递凭据,正文与显式故事状态在同一 SQLite 事务写回;当前入口、任务队列、暂停/恢复、取消、重试与 checkpoint 恢复已具备,Provider 回执累计与币种分桶已持久化。Provider/模型降级链已支持同 Provider 模型切换与跨 Provider 切换,并由任务 checkpoint 安全传递;inspiration/story_bible/structure/writing/quality/finalize 六阶段成果写回已由本地 HTTP Provider + Worker + SQLite 冒烟覆盖,仍需生产环境凭据、真实模型稳定性、成本展示和每阶段局部重做。默认无 Router 时仍为 dry-run,并将成功场景输出写入项目隔离的 `scene_drafts`,不覆盖 `chapters.content`。Web 任务页的 2 秒轮询仅刷新已持久化的任务状态,不会把 dry-run 或 UI 状态同步伪装成真实生成。 - 去 AI 味仍需拆分为可独立编排的真实 Skill Worker,并补齐更细的版本差异视图与更多规则;当前报告、逐条状态、局部替换、正文版本写回、人工确认后的可回滚局部改写闭环,以及基于当前项目自有章节的统计文风指纹已具备。指纹首次刷新前的 `null` 是未生成状态,不是跨项目共享或未实现;系统不提供黑盒全篇重写。 - finalize 阶段已有严格 envelope 校验、独立成果持久化、项目/任务读取、幂等 revision 保护、归档恢复和作品汇聚导出;本地 HTTP Provider + Worker + SQLite 冒烟已覆盖灵感定位、故事圣经、结构设计、场景编排及全书收束的宿主写回,生产 Provider/Worker 的真实模型验收仍待完成。 - 灵感源泉已接入首批 10 个公开平台候选和 Electron HTTP Adapter;Web 开发服务器通过受限的 Vite 同源桥接复用公开 Adapter,实际可返回的条目取决于平台当前公开页面、网络和反爬策略,受限来源会保留原因。2026-08-30 的真实只读探测在 QQ 阅读、晋江文学城、纵横中文网、17K 小说网和书旗小说取得成功样本,在起点中文网、番茄小说和掌阅记录受限状态,在七猫中文网和飞卢小说网记录失败状态;这只是当日可重复的公开页面证据,不替代持续稳定性复测。生产 Web 部署仍需合规服务端代理。当前趋势只分析已缓存快照:已验证 `workIdentity` 优先,只有双方均无稳定身份时才可按记录 ID 或唯一 `title + author` 回退;没有可靠身份的 legacy/临时观测不会跨快照自动合并。SQLite 可回退迁移、Web 本地缓存和旧归档兼容已覆盖;归档恢复会拒绝身份冲突、身份仅单边存在或旧无身份记录的内容冲突,避免静默迁移既有收藏。 - Skill 中心仍需补齐 `.novelskill` 导入/安装、权限确认、版本锁定/回滚和真实 Skill Worker 执行;配方 CRUD、排序、依赖/冲突/权限预检及宿主顺序执行器基础已经完成,但尚未接入任务中心和业务成果写回。Provider 的连接测试、单场景 writing 真实请求、六阶段本地 fixture 写回、回执累计与降级链已接入,完整成本统计展示仍未完成;生产 Provider/Worker 仍需真实环境验收。 - 角色当前状态、关系快照、时间线、伏笔及其人物/章节/场景引用已完成;场景级显式结构化状态写回、事务边界、marker 幂等和作者 revision 保护已接入;独立关系图和更完整的因果可视化仍待 M2 后续迭代。 - 漫剧结构契约、手工视觉圣经/分场/分镜、PC Web 本地确定性自动生成、正负提示词、跨镜一致性报告与 JSON/CSV/Markdown 导出已具备;真实 AI 改编 Skill/Worker、完整 Provider 业务闭环和云端图片仍属于 M5 后续。Web 生成结果带有本地草稿 provenance,不应当当作模型成稿。 - 作品汇聚、故事状态来源追踪、只读 JSON/Markdown,以及 Web 版本化归档与新项目式恢复已具备;Electron 单事务恢复、图片成果聚合和跨机器恢复验收仍属于 M6 后续。 - 作品汇聚和 Web 归档当前同时包含 finalize 摘要成果,保留其项目/任务来源、revision、完成状态和更新时间;这不替代 Electron 正式归档及跨机器恢复验收。 - Windows EXE、原生模块 ABI 联调和更新流程后置;Electron 运行前执行 `npm run rebuild:native`,Web 验收不以 EXE 为前置条件。 - AIGC 画布为 M7。接入前必须先向用户索取接口文档、鉴权方式、任务结构和回调格式,并只实现独立 `canvas-adapter` Skill;在此之前不接入画布、配音、字幕或视频合成主线。