用户要求:M4 完成后对 M1-M4 通审,重点「不把 v6 问题带入 v7」。 方法:全树 grep(v6 遗毒/契约违规/空壳)+ 高风险枢纽精读(编排/数据完整性/git安全/缓存/启发式)+ 全量 246 测试 + CI 双平台。范围 73 源文件 / 4848 行。
代码健康、v6 清洁、架构自洽、246 绿。 一个结构性缺口(写章后半段无 CLI 缝)与真模型 smoke 一同被推迟,应显式跟踪。
src/+bin/+skills/+roles/+adapters/+templates/:grep state.json|webnovel.py|python|设定集|dashboard|doctor|棘轮|story-system 零命中。references/ 迁移树(42 文件):migration.test 逐文件 grep 门禁零 v6 遗毒;题材单一真源(genre-index.csv,无 markdown 双表);37 模板创意约束/Pack 段全剥(残留 0);CSV 删 适用技能/推荐检索表 列;系统流.md 的 /webnovel-write 已改。python webnovel.py+读文件 → v7 roles 只吃 ReviewInput DTO,零脚本/路径。src/ 零 console.log/process.exit(bin 唯一副作用点)。无 M1 式空壳谎报。restore --staged --worktree + clean,仅 定稿/大纲、不碰工作区。断电注入测试覆盖。有 CLI:prepare-chapter / mechanical-check / next / impact / goto-chapter。
无 CLI(仅测试调用):runReviews(两审)、finalizeChapter(定稿)、persist*(AI 态落盘)。
宿主只能跑 webnovel-writer <命令>,故目前可驱动 备料→机检,但两审→定稿 + AI 态落盘需先补 CLI 缝才能端到端。这正是被推迟的真模型 smoke 要驱动的部分——与 smoke 同步推迟,非缺陷,但须显式跟踪(本条即跟踪)。
review-input/review-submit、finalize、persist-* 命令(复杂 payload 走 --product=<json路径>)。与 smoke/M5 host 接线一并做。git-health 删 .git/index.lock 阈值 3000ms 偏激进。单会话串行模型下 check 时锁必为崩溃残留,3s 反而利于崩溃恢复 UX;并发风险≈0。判定:可接受,保留。
ChapterWriter.updateFrontMatter()(throw 暂未实现)、installer/index.js(M5 占位)均无人依赖(grep 确认零调用/零 import),非 M1 式谎报,留作未来。
246 绿、CI 双平台(run 28292073367,drift+validator 含 Windows)。skipped 0 / todo 0。