video-workbench/handoff/2026-06-24-character-consis...

239 lines
9.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 人物一致性流程第三次测试交接
## 目的
本交接用于下一轮人物一致性流程测试。第三次测试的重点不是图片质量,而是验证 `session / SubAgent` 机制是否清晰、可追踪、不会重复启动 worker、不会覆盖已有产物。
本交接不是 CCPE 调用包,不启动外部 reviewer。
## 当前结论
- 第二轮测试已经结束,`s21-v3`、`s14-v2`、`s25-v2` 图片均已由用户确认可接受。
- 质量链路基本修复:提示词使用 `gpt-image-2` Advisor使用 style 母版,使用人物锚板 / 裁切 / 可见参考图,且 review 在明确禁用时没有生成。
- 流程链路仍有缺陷:`s14-v2` 出现两个 `Agent S-14` worker 指向同一组输出目标,说明 child session 内部缺少唯一 worker / 目标占用校验。
- 第二轮 brief 子会话在完成两个镜头后上下文占用达到约 83%,所以当前项目的人物一致性任务不应继续按 3 个镜头分配。
## 必读文件
先读这些仓库规则和工作流:
```text
AGENTS.md
VIDEO_WORKBENCH.md
docs/workflows/slide-task-orchestration.md
docs/workflows/slide-task-templates.md
```
再读项目和任务状态:
```text
projects/2026-06-23-在路上/project.md
projects/2026-06-23-在路上/execution-plan.md
projects/2026-06-23-在路上/slides/slides.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-plan.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/task-log.md
```
再读第二轮真实产物记录:
```text
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-03/child-session-handoff.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-03/child-session-continuation-s14-s25-handoff.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-03/returns/s21-v3-slide-agent-return.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-03/returns/s14-v2-slide-agent-return.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-03/returns/s25-v2-slide-agent-return.md
```
## 已知 Session / Agent 记录
不要复用:
```text
019ef77d-552b-7343-abe4-88921b35d7ea
```
历史记录:
```text
session-02 child-session id: 019ef7ca-413a-7662-9633-7fb126b7ef35
session-03 child thread id: 019ef7d2-1a7f-7a90-8c04-0098239dfe0f
session-03 Agent S-21 thread id: 019ef7d6-3ff6-7213-b68c-fd646e39f1d2
session-03 recorded Agent S-14 thread id: 019ef803-95d7-7411-8d3c-c7f2f68a32e7
session-03 duplicate Agent S-14 observed by parent: 019ef803-328a-7e40-a0b0-0333c6b5fc6c
session-03 Agent S-25 thread id: 019ef803-e757-7041-8f4a-fc9dfce23bbd
```
第三次测试建议新建 `session-04`,不要继续使用 `session-03`,除非用户明确要测试旧 child session 的续跑能力。
## 机制边界
第三次测试要明确区分两个层级:
```text
用户可见 Codex child session:
- 用于 brief / orchestration / 分配工作。
- 会在窗口中多出用户可以看见的对话。
- 必须记录 session id。
- 本项目人物一致性任务最多分配 2 个可见人物镜头。
内部 SubAgent / one-shot slide worker:
- 由 child session 内部启动。
- 用户不需要在窗口中看到单独对话。
- 每个 SubAgent 只处理 1 个镜头。
- 完成后即结束,不做 idle / 长期复用。
- 必须把返回结果写入对应 return 文件。
```
第二轮的问题之一是 slide agent 仍以线程级 agent 形式出现。第三轮要重点验证 child session 是否能在内部使用 SubAgent而不是继续创建用户可见的 slide-agent 线程。
## 第三次测试建议范围
启动前由用户指定镜头;不要默认继续 `s21`、`s14`、`s25`,这三个已经完成验收。
建议范围:
```text
2 个可见人物 / identity-heavy 镜头
```
原因:
- 项目级规则已经改为人物一致性 child session 最多 2 个镜头;
- 2 个镜头足以验证 child session 内部是否启动了两个独立 SubAgent
- 也足以验证是否会重复启动同一个 slide/version worker
- 不会再次把 brief child session 推到过高上下文占用。
如果用户想同时测试版本扫描,可以选择:
```text
1 个已有 broad-run v1 但未完成规范 task 产物的镜头
1 个尚未进入人物一致性测试的镜头
```
具体 slide id 以用户下一步指令为准。
## 第三次测试必须验证
session 层:
- 是否创建了新的用户可见 child session。
- 是否记录了 child session id。
- 是否没有复用废弃 id `019ef77d-552b-7343-abe4-88921b35d7ea`
- 是否没有继续复用 `session-03`,除非用户明确授权。
- child session 是否只承担 brief / orchestration / 分配职责。
- child session 是否在每个 slide 前后记录上下文占用或至少记录是否接近暂停阈值。
SubAgent 层:
- child session 是否为每个 slide 启动一个内部一次性 SubAgent。
- 两个 slide 是否对应两个不同 SubAgent。
- SubAgent 是否没有出现在用户可见线程列表中;如果出现,说明机制不符合本轮目标。
- 每个 SubAgent 是否只处理一个 slide。
- 是否没有继续使用 `Agent S-21`、`Agent S-14`、`Agent S-25` 的旧上下文。
唯一性层:
- 一个 `slide_id + version` 是否只有一个 owning worker。
- child session 是否在启动 SubAgent 前写下 worker ledger。
- child session 是否在启动前检查目标文件不存在。
- child session 是否在写 prompt / image / return 前再次检查目标文件没有被占用。
- 是否没有出现两个 worker 使用同一个 packet 或同一组 target paths。
质量保底层:
- prompt 是否仍通过 `gpt-image-2` Skill Advisor / host-native 工作流生成。
- prompt 是否记录 mode、template/reference、实际读取的源文件。
- prompt 是否正确使用 `visual-system/style/style-prompt-master.md`
- prompt 是否正确使用 `visual-system/characters/character-reference-registry.md` 和当前人物参考图。
- visible identity 镜头是否加载真实人物参考图,而不是纯文本描述。
- 如果明确禁用 review则不得生成 review 文件。
## 建议新增记录结构
第三轮建议使用 `session-04`
```text
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-plan.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/worker-launch-ledger.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/child-session-handoff.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/packets/sNN-vN-slide-agent-packet.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-04/returns/sNN-vN-slide-agent-return.md
```
`worker-launch-ledger.md` 至少记录:
```text
slide_id
resolved_version
worker_logical_name
carrier_type: internal SubAgent
visible_thread_id: none expected
target brief path
target prompt path
target image path
target return path
target review path: disabled / enabled
prelaunch target existence check
launch status
return status
parent verification status
```
## 启动前防重复检查
对每个待跑镜头child session 必须先扫描:
```text
projects/2026-06-23-在路上/slides/sNN/sNN-v*-*
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-*/packets/sNN-v*-slide-agent-packet.md
projects/2026-06-23-在路上/tasks/2026-06-24-character-consistency/session-*/returns/sNN-v*-slide-agent-return.md
```
然后解析下一个未使用版本号。任何计划写入的文件已经存在时必须停下,不得覆盖。
## 暂停点
建议第三次测试继续分成两段:
```text
第一段:
- 新建 session-04 child session。
- 跑用户指定的第 1 个镜头。
- 验证 child session id、内部 SubAgent、ledger、版本扫描、防覆盖、prompt 证据。
- 产图后暂停,等用户确认图片和机制。
第二段:
- 在同一个 session-04 child session 内继续第 2 个镜头。
- child session 必须启动新的内部 SubAgent。
- 验证不是复用第 1 个 SubAgent。
- 产图后暂停,等用户确认。
```
如果第一段发现 slide agent 仍然变成用户可见线程,先不要继续第二段,应该先定位 Codex 当前可用的 subagent 工具形态。
## 完成时父会话必须检查
父会话不能只相信 child handoff。完成后要核对
- 用户可见 child session id 是否只有预期的一个新 child session。
- 是否没有额外用户可见 slide-agent 线程。
- worker ledger 中的 worker 数量是否等于 slide 数量。
- 每个 slide/version 是否只有一个 packet、一个 prompt、一个 image、一个 return。
- return 文件记录的 source worker 是否和 ledger 一致。
- review 文件是否符合任务设置。
- `task-plan.md`、`task-log.md`、`slides/slides.md` 是否更新为“图片结果”和“机制结果”两个维度。
## 结束判定
第三次测试只有在以下条件同时满足时,才能称为 session/SubAgent 机制通过:
- 新 child session id 已记录。
- child session 内部启动的 worker 数量等于测试镜头数。
- 每个 worker 都是一次性 SubAgent每个只处理一个镜头。
- 没有重复 worker 指向同一个 `slide_id + version`
- 没有覆盖任何旧产物。
- prompt 仍走 Advisor + style + 人物参考图链路。
- 用户确认生成图可接受,或即使图不接受,也能清楚区分是质量问题而不是机制问题。
如果出现重复 worker、可见线程污染、目标路径混用、return 来源不一致,第三次测试应记录为“机制未通过”,不要扩大到批量生产。