v7 最后一个功能里程碑(实施计划 §M7):作者发布用的干净导出(单章/范围/全书,去 front matter)+ v6 老用户的 /migrate 一次性迁移(映射表、迁移报告、整体回退)。出口 = 进入 beta(用 v7 真实写一本书到 50 章是 beta 期活动,不在本任务内;/migrate ≥3 真实 v6 项目跑通是 7.0.0 判据,beta 期内完成)。
工作区/导出/(不进 git);发布到起点/番茄用。零 token 脚本。migrate_state_to_sqlite.py 把 entities_v3/alias_index/state_changes/structured_relationships 迁入 .webnovel/index.db,state.json 只留精简键(progress/protagonist_state/strand_tracker/plot_threads/world_settings 骨架等)——真实 v6 项目的实体真源可能在 db 里。映射表"index.db 删除"只能理解为"不带入 v7",/migrate 必须兼容两种形态:老 state.json 全量、新 state.json+db 分置(详细清单见 research/v6-data-inventory.md)。webnovel-writer/agents/evals/files/test-project/(v6 源码在工作树可直接研究)。/migrate ≥3 真实 v6 项目 + beta 期无数据丢失级 bug + 迁移指引文档齐。beta = 真写一本书到 50 章(M7 出口后启动,用户手测)。resolveRunContext(定位)、writeAtomicBatch(原子写)、git.js(commit 单点)、CacheManager.rebuildFromSource(迁移后建缓存)、persistCreateBook(建书 git init + 初始 commit 先例)、防呆序列化器(迁移产物 front matter 写出)。export 命令三形态:export <章号>(单章)/ export --range=a-b(范围)/ export --all(全书);只导定稿区正文(工作区草稿/待定稿批次不可发布,宪法级),去 front matter,落 工作区/导出/.txt 纯文本;单章 第0152章-标题.txt,正文体不带标题行(发布界面标题另填,文件名已含);范围/全书合并单文件(第0006-0012章.txt / 全书-<书名>.txt),每章前加「第N章 标题」行 + 空行分隔(批量导入工具可解析)migrate <v6项目路径> 一次性脚本:按 §10.3 映射表全量迁移,产出 v7 书仓库并登记 books.jsonl;迁移后 next 直接可用(衔接主旅程 ④)工作区/导出/(test/export/index.test.js + test/commands/export.test.js)next 判定进正常写章流程(序 6 起草第 4 章)→ 删缓存重建一致(test/migrate/ 三文件)e2e.test.js)v7/docs/migration-guide.md:卸载市场版→npx init→migrate→校对,命令名/参数与实现逐一核对)webnovel-writer/scripts/data_modules/migrate_state_to_sqlite.py 文档串),"index.db 删除"语义修正为"读完不带入 v7"。若与 research 结论冲突,回改本节。(无阻塞项——D1/D2 为默认决策,用户可回来推翻;推翻 D1 影响 AC2 输入面,推翻 D2 只改 A2 文案与测试断言。)