feat: expand novel IP and production workflows

This commit is contained in:
www
2026-09-18 08:14:05 +02:00
parent b2ae4600b4
commit d9c81a3ac0
235 changed files with 117971 additions and 2721 deletions
@@ -0,0 +1,141 @@
# S+ 内核 Phase 0-1 实施报告
> 日期:2026-07-15
> 范围:保护基线、Prompt 去污染、生产合同与硬门
> 付费 AI 调用:无
> 数据迁移:无
> 生产服务重启:无
## 1. 本轮完成
### 保护基线
- 数据库完整逻辑备份:`/www/wwwroot/ai-backups/20260715-splus-phase0/database.sql`
- 私有素材归档:`/www/wwwroot/ai-backups/20260715-splus-phase0/storage-private.tar`
- 校验文件:`/www/wwwroot/ai-backups/20260715-splus-phase0/SHA256SUMS`
- 数据库约 90MB,私有素材约 4.7GB。
- 两份备份均通过 SHA-256 回读校验。
### 生产内核
新增 `backend/src/production-kernel/`
```text
contracts/production-contracts.ts
validators/production-contract-validators.ts
prompts/prompt-rule-registry.ts
prompts/prompt-contamination.ts
fixtures/neutral-production-fixtures.ts
production-kernel.spec.ts
legacy-behavior-guard.spec.ts
index.ts
```
已定义:
- `SourceAnalysisSpecV1`
- `AdaptationBibleSpecV1`
- `EpisodePlanSpecV1`
- `SceneScriptSpecV1`
- `ShotExecutionSpecV1`
- `StageQualityResultV1`
- `ShotQcDeltaV1`
- `PromptRuleCandidateV1`
硬门已覆盖:
- 来源与事实引用;
- 改编决策账本;
- 开场钩子时间线与本集兑现;
- 分集目标、阻力、高潮选择和不可逆变化;
- 场景目标、人物策略、阻力、转折和结果;
- 中文台词时长预算;
- 镜头资产、表演、运镜、声音和验收条件;
- 参考图数量与职责;
- 首尾帧同空间轴线和运动方向;
- 非首镜连续性接力。
### 去劣取优
- 建立版本化 Prompt 规则注册表,当前批准 22 条公共/题材规则,另保留 1 条废弃规则作为防回归标记。
- 历史规则已按 global、genre、provider、project 分级。
- 公共规则可按 stage、genre、provider 条件激活。
- 脚本分镜和分集 Prompt 已接入规则注册表。
- 新增污染扫描,阻断项目专名、内部数据库 ID、临时 URL 和嵌入素材编号进入公共规则。
- 脚本与分集公共链路已清除本轮命中的历史项目人物、地点和终局专名。
- 终局质量检查已从特定故事关键词改为通用的冲突结果、主角选择、状态变化和余波。
- 镜头目标数量不再增删已确认剧情点。
- 删除自动“导演补拍节奏点”。
- 删除按说话人自动拆分对白素材的后处理行为。
- 无法从已确认剧本提取可追溯动作/台词/反应时,直接阻断,不再生成一套都市会议室兜底剧情。
详细规则见 `PROMPT_RULE_AUDIT_V1.md`
## 2. 验证结果
| 检查 | 结果 |
| --- | --- |
| 后端生产构建 | 通过 |
| 新内核合同/硬门测试 | 7/7 通过 |
| 公共污染与旧行为守卫 | 2/2 通过 |
| 保持真实镜头数的脚本回归测试 | 1/1 通过 |
| 全仓后端测试 | 248 通过,34 失败,共 282 条 |
| 备份 SHA-256 回读 | 通过 |
| `git diff --check` | 通过 |
全仓失败没有在本轮伪装修复。主要仍是:
- Prisma 新字段/新查询加入后旧 mock 未补齐;
- 旧分集样本不满足当前制作蓝图和闭环质量门;
- Provider 成本展示文案断言仍是旧格式;
- Live Action 的旧参考图预检、BGM/SFX 和导演计划断言漂移。
审计基线为 238 通过、35 失败;本轮新增测试后为 248 通过、34 失败。
## 3. Schema 影响
本轮没有修改 Prisma schema,也没有执行数据库迁移。
原因:当前工作区已有大量未提交迁移与测试 mock 漂移;先完成可独立验证的合同、验证器和规则清理,避免在同一批次叠加持久化风险。
Phase 2 前需要评审并落库:
- 项目 `engine_version` 与生命周期;
- 五级合同的版本、状态、输入哈希、来源和质量结果;
- Prompt 规则候选、A/B 证据、审核与回滚版本;
- Provider 编译请求快照和参考图职责;
- 结构化 QC Delta。
现有 `ProjectPipelineConfig.video_engine_version` 与角色/图片 Prompt 版本字段可复用,但不能替代完整生产合同版本。
## 4. 尚未清理的隔离区
以下旧服务仍存在项目专属分支,暂不允许成为 `splus_v1` 公共规则来源:
- `characters/characters.service.ts`
- `images/images.service.ts`
- `live-action/live-action.service.ts`
- `live-action/prompt-builder.service.ts`
下一轮必须逐段判断哪些属于历史项目读取兼容、哪些是公共生成逻辑,不能批量替换。
## 5. 未解决风险
1. 新合同尚未落库,也尚未成为新项目唯一写路径。
2. 公共脚本 Service 仍是大文件,旧 Prompt 文本与新规则并存;本轮只先切断确定有害行为。
3. Provider Compiler 和能力档案未实现,模型时长、参考图数量和音频能力仍由旧链路判断。
4. 污染扫描已实现并保护公共规则,但还没有覆盖所有 Prompt 生成入口。
5. 全仓类型检查仍被旧测试 fixture 类型漂移阻断;生产构建可以通过。
6. 没有浏览器 E2E,也没有真实 Provider A/B;本阶段按要求未产生付费调用。
## 6. Phase 2 建议
下一阶段只推进“原著分析 -> 改编圣经 -> 分集计划”三段:
1. 评审生产合同持久化 schema。
2. 为新项目建立 `splus_v1` 唯一写入口,旧项目只读。
3. 实现 Source Analyst、Adaptation Showrunner、Episode Planner 的阶段请求与 Reviewer Delta。
4. 用三个中性样本验证事实引用、改编决策、钩子兑现和跨集状态。
5. 只批准其中一集进入 SceneScript,暂不接真实视频生成。
进入 Phase 2 前,建议先单独处理测试 mock 基线,避免新合同测试与历史失败混在一起。