Files
ai/docs/work-sync/SPLUS_PHASE_0_1_IMPLEMENTATION_REPORT.md

5.6 KiB
Raw Permalink Blame History

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/

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 基线,避免新合同测试与历史失败混在一起。