feat: expand novel IP and production workflows
This commit is contained in:
@@ -0,0 +1,152 @@
|
||||
# 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 样本。
|
||||
|
||||
在此之前不接视频生成,也不以“页面可操作”代替内容质量验收。
|
||||
Reference in New Issue
Block a user