# S+ 内核 Phase 2 实施报告 > 日期:2026-07-15 > 范围:原著分析、改编圣经、分集计划的结构化写路径 > 工程状态:已部署,真实新项目内容验收待执行 > 付费 AI 调用:无 > 数据迁移:`20260715143000_splus_production_contracts_v1` ## 1. 本轮结论 Phase 2 的工程链路已经形成,但尚未宣称通过内容生产验收。 当前系统已经可以安全执行: ```text 连续原文快照 -> 原著分析合同 -> 改编圣经合同 -> 分集计划合同 -> 三集连续性检查 -> 人工只放行其中一集 ``` 新链路不会覆盖旧 `StoryBible`、`Episode` 或历史 Prompt。所有结构化结果均版本化保存,审核失败也保留为可诊断草稿。 ## 2. 数据与状态 ### 项目标记 `Project` 新增: - `engine_version`:数据库默认 `legacy_v1`;应用创建的普通新项目写入 `splus_v1`。 - `production_lifecycle`:记录来源准备、合同写入、确认、三集检查和单集放行状态。 直接提示词实验项目继续标记为 `tool_direct_v1`,不伪装成 S+ 正式生产项目。 迁移后数据库中原有 20 个项目全部为 `legacy_v1`,没有自动迁移、改写或删除历史项目。 ### 新增持久化对象 - `ProductionSourceSnapshot`:保存不可变原文、章节清单、内容哈希和版本。 - `ProductionContract`:保存合同类型、schema 版本、父版本、输入哈希、来源引用、正文、质量结果和下游状态。 - `ProductionContractReview`:保存 Reviewer 版本、轮次、问题清单、修复差异和评分。 当前迁移刚完成,三张新表均为 0 条记录;真实内容只会在用户明确创建新 S+ 项目后写入。 ## 3. 唯一写路径 ### 原著分析 1. 从项目小说源选择最多 20 个章节。 2. 章节号必须连续,单次正文最多 180,000 字。 3. 固化不可变来源快照和逐章哈希。 4. `SourceAnalysisSpecV1` 必须引用本次快照中的来源。 5. 不允许在原著分析阶段提前写改编结论。 ### 改编圣经 1. 必须绑定一个已确认的原著分析版本。 2. 改编决策必须记录操作、来源、原因、影响、连续性风险和批准状态。 3. 未批准的改编决策不能被分集计划使用。 4. 修改时创建新版本,不覆盖已确认版本。 ### 分集计划 1. 必须绑定一个已确认的改编圣经版本。 2. 第 2 集以后要求上一集已确认。 3. 每集必须包含开场钩子、目标、阻力、升级、高潮选择、不可逆变化和集尾钩子。 4. 连续三集必须同属一个改编版本、集号连续,并严格继承上一集退出状态。 5. 三集通过连续性检查后仍不会自动进入剧本;必须人工选择一集执行 `release`。 ## 4. Reviewer 与修复 - Writer 负责输出完整结构化合同。 - 确定性验证器负责字段、来源、批准状态和跨集状态硬门。 - Reviewer 使用版本号记录,只输出问题与 `StageReviewDeltaV1`,不静默重写正文。 - 失败结果保存为 `draft + blocked`,通过硬门的结果保存为 `validated`。 - 确认时重新执行审核;同一范围旧确认版本会被标记为 `superseded`。 ## 5. Prompt 构建 新增三个阶段的干净模板: - Source Analyst - Adaptation Showrunner - Episode Planner 公共模板与项目正文分离,运行时才注入来源快照、已确认父合同和上一集状态。请求预览可在付费调用前查看和复制;本轮没有在 UI 暴露一键付费生成入口。 ## 6. API 与界面 新增 `ProductionKernelModule` 及接口,覆盖: - 创建/查询来源快照。 - 保存、查询、评审和确认合同。 - 预览阶段 Prompt。 - 三集连续性检查。 - 放行一个分集计划进入下一阶段。 - 保留受控的阶段 Provider 调用能力,但本轮未触发。 用户端新增 `SplusProductionPipeline.vue`: - 原著分析、改编圣经、分集计划三个阶段标签。 - JSON 导入、确定性校验、版本列表和问题定位。 - Prompt 预览与复制。 - 评审、确认、三集检查和单集放行。 `splus_v1` 项目不再显示旧 StoryBible/旧分集写入口;历史项目仍走旧页面读取。旧 `StoryBiblesService` 和 `EpisodesService` 的写方法也增加了后端守卫,不能靠直接调用 API 绕过界面。 ## 7. 部署与验证 ### 部署 - 数据库和私有素材备份继续使用 Phase 0 已校验备份。 - Prisma 迁移从 33 个增加到 34 个,并成功部署。 - 后端已受控重启。 - `GET /api/health` 返回 `status: ok`。 ### 自动验证 | 检查 | 结果 | | --- | --- | | Phase 2 合同/Service 定向测试 | 13/13 通过 | | 后端生产构建 | 通过 | | 用户端生产构建 | 通过 | | Prisma schema 校验 | 通过 | | 数据库迁移 | 34/34 已部署 | | 后端全量测试 | 254 通过,34 失败,共 288 条 | 34 条失败与本轮开始前的既有失败面一致,主要是旧测试 mock 未补齐、旧质量断言和当前实现漂移。本轮没有批量改断言掩盖问题。 ## 8. 尚未完成 1. 尚未选择一部全新项目和连续故事段实际写入三阶段合同。 2. 尚未产出并确认连续三集,也未执行“只放行一集”的真实内容验收。 3. 尚未开放前端一键付费阶段生成。 4. 尚未进入 `SceneScriptSpecV1` 场景剧本写路径。 5. 旧角色、记忆等下游页面仍可见,后续需要按阶段状态进一步收口。 6. 全仓 34 条历史测试失败仍需作为独立基线修复。 ## 9. 进入 Phase 3 的条件 只有完成以下验收,才进入场景剧本: 1. 新建一个 `splus_v1` 项目。 2. 选取一个连续故事段并生成来源快照。 3. 原著分析与改编圣经通过审核并确认。 4. 连续三集分集计划通过状态继承检查。 5. 人工只放行其中一集。 6. 保存本次 Prompt、合同版本、Reviewer 问题和人工判断作为首个 Phase 2 样本。 在此之前不接视频生成,也不以“页面可操作”代替内容质量验收。