From e9e4d915f74ccf0f82c2de5627b3de2175d9db99 Mon Sep 17 00:00:00 2001 From: deploy Date: Thu, 3 Sep 2026 20:26:31 +0800 Subject: [PATCH] chore(agents): 生产环境 dream 自动更新 + h3-video-prompt v6 训练产物 --- system/agents/agent-creator/soul.md | 4 ++-- system/agents/ceo/agent.md | 17 +++++++++-------- system/agents/ceo/soul.md | 17 +++++++++-------- system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- system/agents/h3-video-prompt/agent.md | 23 +++++++++++++++++++---- system/agents/h3-video-prompt/train/digest/benchmark_v6.md | 277 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/digest/industry_avg_v6.md | 35 +++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/digest/test_scenarios_v6.json | 333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/digest/verify_digest_v6.py | 132 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/agent_md_patch_v6.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/evolve_report_v6.md | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/iteration_log_v6.md | 5 +++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/gen_r1_and_rest.py | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS44_r1_baseline.md | 12 ++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS46_r1_baseline.md | 7 +++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS47_r1_baseline.md | 7 +++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS50_r1_baseline.md | 6 ++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS51_r1_baseline.md | 6 ++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS54_r1_baseline.md | 6 ++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS55_r1_baseline.md | 8 ++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS56_r1_baseline.md | 4 ++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS57_r1_baseline.md | 4 ++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS58_r1_baseline.md | 6 ++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS44_prompt.md | 15 +++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS45_adversarial.md | 7 +++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS46_prompt.md | 12 ++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS47_prompt.md | 19 +++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS48_adversarial.md | 8 ++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS49_adversarial.md | 7 +++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS50_clarify.md | 24 ++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS51_clarify.md | 23 +++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS52_prompt.md | 12 ++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS53_prompt.md | 10 ++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS54_prompt.md | 13 +++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS55_two_branches.md | 24 ++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS56_prompt.md | 11 +++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS57_script.md | 27 +++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS58_prompt.md | 13 +++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS46_prompt.md | 12 ++++++++++++ system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS57_script.md | 34 ++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/hunt/knowhow_v6.md | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/h3-video-prompt/train/hunt/sources_v6.json | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ system/agents/master/agent.md | 17 ++++++++++------- system/agents/master/soul.md | 17 ++++++++++------- system/agents/orggraph-planning/agent.md | 5 +++-- system/agents/orggraph-planning/soul.md | 5 +++-- 46 files changed, 1792 insertions(+), 47 deletions(-) create mode 100644 system/agents/h3-video-prompt/train/digest/benchmark_v6.md create mode 100644 system/agents/h3-video-prompt/train/digest/industry_avg_v6.md create mode 100644 system/agents/h3-video-prompt/train/digest/test_scenarios_v6.json create mode 100644 system/agents/h3-video-prompt/train/digest/verify_digest_v6.py create mode 100644 system/agents/h3-video-prompt/train/evolve/agent_md_patch_v6.md create mode 100644 system/agents/h3-video-prompt/train/evolve/evolve_report_v6.md create mode 100644 system/agents/h3-video-prompt/train/evolve/iteration_log_v6.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/gen_r1_and_rest.py create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS44_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS46_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS47_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS50_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS51_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS54_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS55_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS56_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS57_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS58_r1_baseline.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS44_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS45_adversarial.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS46_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS47_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS48_adversarial.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS49_adversarial.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS50_clarify.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS51_clarify.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS52_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS53_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS54_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS55_two_branches.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS56_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS57_script.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS58_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS46_prompt.md create mode 100644 system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS57_script.md create mode 100644 system/agents/h3-video-prompt/train/hunt/knowhow_v6.md create mode 100644 system/agents/h3-video-prompt/train/hunt/sources_v6.json diff --git a/system/agents/agent-creator/soul.md b/system/agents/agent-creator/soul.md index 713f71b..cee1bee 100644 --- a/system/agents/agent-creator/soul.md +++ b/system/agents/agent-creator/soul.md @@ -11,8 +11,8 @@ ## 从经验里长出来的倾向(dream) -_由 dream 于 2026-08-29 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ -- **转正前置件清单要以系统校验为准,不要照抄任务书列的文件** —— 新建本体时,上游任务书列出的产物清单可能少于系统实际校验的必需件——某次任务书只列了三份文件,但系统要求 agent.md 与 soul.md 双必需,缺 soul.md 时本体会一直停在 draft 且不报错。做法:转正前先核对系统侧的必需件校验规则,按它补齐再交,而不是只按任务书字面造;发现清单与校验不一致时补齐缺的那份。 +- **骨架模板里的哨兵占位符会被完整性校验误判成缺件,交付前必须替换成真实内容** —— 现象:检查某个 agent 本体是否缺必选件时,发现随骨架下发的一批技能文件虽然存在,但内容仍是骨架的哨兵占位符,被「存在即算齐」之外的更深校验判为缺。做法:不要只确认文件在不在,要抽查内容是否还是占位符;对每个角色按其职责填成结构化的操作手册再交付,填之前把原骨架另存一份备份,方便回滚和对照。判断标准要写清楚:可选项「存在但仍是哨兵」与「不存在」同样算缺。 diff --git a/system/agents/ceo/agent.md b/system/agents/ceo/agent.md index 048ff1a..0010dc7 100644 --- a/system/agents/ceo/agent.md +++ b/system/agents/ceo/agent.md @@ -80,13 +80,14 @@ KR 必须**可度量**("日产 20 条合格短视频"),不能是"提升内 ## 跨公司经验提醒(dream) -_由 dream 于 2026-08-26 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ - -- **回调地址不能硬编码,要跟随运行时配置** —— 自动化回调/通知地址如果写死成固定的 host/port 常量,一旦运行环境的实际端口不同(比如测试环境用临时端口),回调就会打不通,进而被误判为流程失败。做法:回调地址要从当前运行时配置里读,不要用常量硬编码。 -- **验证修复要重新触发流程看真实产出,不能只信汇报** —— 确认一个流程的修复是否生效,比较可靠的做法是重新触发一次该流程,确认确实产生了真实产出、并且正确激活了下游环节,而不是仅凭下游或执行方一句「已修复」的汇报就采信——那种汇报可能只是又一次假通过。 -- **巡检数据源要跟实际更新链路核对是否同源** —— 排查「明明已经有进展但巡检/监控显示没动静」这类问题时,先确认巡检读取的数据源和实际业务写入的数据源是不是同一个——如果巡检看的是另一套滞后或不相关的数据源,会一直误判为卡住,看起来像流程故障,实际是监控接错了地方。 -- **修复超时问题要对齐已有看门狗机制并补回归测试** —— 修一个超时相关的故障时,如果系统里已经存在另一层超时/看门狗机制(比如整体墙钟超时),新调的阈值要跟它对齐,不能各管一段互相打架;改完之后要补一个回归测试,并额外验证不会误杀真正需要长时间运行的合法任务。 -- **汇报「已生效」要核对进程启动时间是否晚于改动时间** —— 收到「问题已修复且已经生效」的汇报时,光看代码改动内容是否正确还不够,要额外核对:改动是否已提交、以及正在跑的线上进程的启动时间是否晚于改动时间。如果进程启动时间比改动更早,说明改动实际还没有被加载生效,即使代码本身看起来是对的。 -- **核实闭环汇报要三方独立交叉验证** —— 要确认一个「已完成/已闭环」的汇报是否属实,比单方面信任更可靠的做法是同时从三个独立角度核对:系统当前的实际状态、走读一遍相关源码、以及独立跑一次复现测试——三者结论一致才采信,避免只凭一方的说法或自带的自检结果下判断。 +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ + +- **看到 blocked 先判「活的问题」还是「账面滞后」,后者不需要任何动作** —— 现象:兜底扫描反复报同一条 blocked task。核了根因后发现——修复放行后 blocked 行不回写、或该行从未有真实运行体,属纯账面滞后,不是运行中被卡。做法:每次被唤醒先核该行的 blockedReason 与底层 run 的真实状态/最后更新时间,确认与账面不一致即归档结论,不改优先级、不提新任务。否则会为同一幽灵问题反复投入。 +- **判断 agent 是否真在工作,看两次采样的 tokens/agent_calls 是否增长,别信状态字段** —— 现象:状态显示 running,但 tokens 与 agent_calls 两次采样完全不变,节点产物目录零新写入——实为进程已死的假 running。做法:间隔采样资源消耗量做对比;在涨就是真在工作(即使偏慢也继续观察,不需干预),不涨则判死亡,且要连带怀疑它持有的并发坑位没被释放。 +- **并发坑位被死亡会话占住时,retry 只改状态不真正派发** —— 现象:节点跑完前静默死亡,之后 retry 显示已受理却长时间不产生任何新写入;同时坑位计数 used=1,而全公司没有任何 running task——说明死会话漏释放坑位,attempt 被自己的锁卡住。做法:retry 无效时先对「坑位占用数」与「实际 running 数」做交叉核对,不一致就是泄漏的锁,不是任务本身的问题。 +- **输入零新增工作时重派是确定性空转,应 hold 而不是再烧一轮** —— 现象:第 2 轮重判 FAIL 后重派,会发现上游产物的时间戳早于两份 FAIL 判决、四轮产物指纹完全一致——即没有任何新输入。做法:重派前先验证上游产物 mtime / 指纹是否变化;不变则 validator 必然产出第三份一模一样的 FAIL,此时 hold 住重试并升级给裁决方(或修输入),而不是消耗第三轮重写+重验预算。 +- **预算续跑端点只在 blocked 态开放,撞墙前要预先算好余量并留预案** —— 现象:墙钟/token 上限可以追加,但端点只在任务已 blocked 时开放,运行中加不进去。做法:进入多节点长链前用「每节点实测耗时 × 节点数」估算总墙钟,与上限、剩余 token 对比;明确指出最后一轮回炉名额 + 剩余 token 若不足以再跑一轮重写+重验,就把「撞墙后立即对预算端点追加」写成给下一轮的预案,而不是等真的卡死才想。 +- **判 FAIL 打回时只归因实现缺陷、fail_reason 指名道姓,并给回炉设上限** —— 现象:验证环节把 FAIL 按 fail_reason 逐项指名打回,只写实现缺陷不写成基础设施抖动,并给回炉固定轮数上限。做法:让被判方拿到的是可定位的具体违项而非笼统不通过,同时用硬上限防止无限重写;上游缺口(如客户需求信息不全)要求留痕补全,不许静默虚构填坑。 +- **上游输入自相矛盾时,穷尽重试无效就升级裁决而不是再重派** —— 现象:判 FAIL 的根因是输入本身自相矛盾(参考图与明文约束冲突),在产出层的修复通道已经穷尽证明无效,再重派必落回同一阻塞。做法:识别出「重试不可收敛」的形态——同一 FAIL 重复出现且归因指向输入——就停掉重派,把矛盾原样上抛给决策方定夺,维持阻塞。 diff --git a/system/agents/ceo/soul.md b/system/agents/ceo/soul.md index 2089cc1..e8761b6 100644 --- a/system/agents/ceo/soul.md +++ b/system/agents/ceo/soul.md @@ -26,13 +26,14 @@ ## 从经验里长出来的倾向(dream) -_由 dream 于 2026-08-26 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ - -- **回调地址不能硬编码,要跟随运行时配置** —— 自动化回调/通知地址如果写死成固定的 host/port 常量,一旦运行环境的实际端口不同(比如测试环境用临时端口),回调就会打不通,进而被误判为流程失败。做法:回调地址要从当前运行时配置里读,不要用常量硬编码。 -- **验证修复要重新触发流程看真实产出,不能只信汇报** —— 确认一个流程的修复是否生效,比较可靠的做法是重新触发一次该流程,确认确实产生了真实产出、并且正确激活了下游环节,而不是仅凭下游或执行方一句「已修复」的汇报就采信——那种汇报可能只是又一次假通过。 -- **巡检数据源要跟实际更新链路核对是否同源** —— 排查「明明已经有进展但巡检/监控显示没动静」这类问题时,先确认巡检读取的数据源和实际业务写入的数据源是不是同一个——如果巡检看的是另一套滞后或不相关的数据源,会一直误判为卡住,看起来像流程故障,实际是监控接错了地方。 -- **修复超时问题要对齐已有看门狗机制并补回归测试** —— 修一个超时相关的故障时,如果系统里已经存在另一层超时/看门狗机制(比如整体墙钟超时),新调的阈值要跟它对齐,不能各管一段互相打架;改完之后要补一个回归测试,并额外验证不会误杀真正需要长时间运行的合法任务。 -- **汇报「已生效」要核对进程启动时间是否晚于改动时间** —— 收到「问题已修复且已经生效」的汇报时,光看代码改动内容是否正确还不够,要额外核对:改动是否已提交、以及正在跑的线上进程的启动时间是否晚于改动时间。如果进程启动时间比改动更早,说明改动实际还没有被加载生效,即使代码本身看起来是对的。 -- **核实闭环汇报要三方独立交叉验证** —— 要确认一个「已完成/已闭环」的汇报是否属实,比单方面信任更可靠的做法是同时从三个独立角度核对:系统当前的实际状态、走读一遍相关源码、以及独立跑一次复现测试——三者结论一致才采信,避免只凭一方的说法或自带的自检结果下判断。 +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ + +- **看到 blocked 先判「活的问题」还是「账面滞后」,后者不需要任何动作** —— 现象:兜底扫描反复报同一条 blocked task。核了根因后发现——修复放行后 blocked 行不回写、或该行从未有真实运行体,属纯账面滞后,不是运行中被卡。做法:每次被唤醒先核该行的 blockedReason 与底层 run 的真实状态/最后更新时间,确认与账面不一致即归档结论,不改优先级、不提新任务。否则会为同一幽灵问题反复投入。 +- **判断 agent 是否真在工作,看两次采样的 tokens/agent_calls 是否增长,别信状态字段** —— 现象:状态显示 running,但 tokens 与 agent_calls 两次采样完全不变,节点产物目录零新写入——实为进程已死的假 running。做法:间隔采样资源消耗量做对比;在涨就是真在工作(即使偏慢也继续观察,不需干预),不涨则判死亡,且要连带怀疑它持有的并发坑位没被释放。 +- **并发坑位被死亡会话占住时,retry 只改状态不真正派发** —— 现象:节点跑完前静默死亡,之后 retry 显示已受理却长时间不产生任何新写入;同时坑位计数 used=1,而全公司没有任何 running task——说明死会话漏释放坑位,attempt 被自己的锁卡住。做法:retry 无效时先对「坑位占用数」与「实际 running 数」做交叉核对,不一致就是泄漏的锁,不是任务本身的问题。 +- **输入零新增工作时重派是确定性空转,应 hold 而不是再烧一轮** —— 现象:第 2 轮重判 FAIL 后重派,会发现上游产物的时间戳早于两份 FAIL 判决、四轮产物指纹完全一致——即没有任何新输入。做法:重派前先验证上游产物 mtime / 指纹是否变化;不变则 validator 必然产出第三份一模一样的 FAIL,此时 hold 住重试并升级给裁决方(或修输入),而不是消耗第三轮重写+重验预算。 +- **预算续跑端点只在 blocked 态开放,撞墙前要预先算好余量并留预案** —— 现象:墙钟/token 上限可以追加,但端点只在任务已 blocked 时开放,运行中加不进去。做法:进入多节点长链前用「每节点实测耗时 × 节点数」估算总墙钟,与上限、剩余 token 对比;明确指出最后一轮回炉名额 + 剩余 token 若不足以再跑一轮重写+重验,就把「撞墙后立即对预算端点追加」写成给下一轮的预案,而不是等真的卡死才想。 +- **判 FAIL 打回时只归因实现缺陷、fail_reason 指名道姓,并给回炉设上限** —— 现象:验证环节把 FAIL 按 fail_reason 逐项指名打回,只写实现缺陷不写成基础设施抖动,并给回炉固定轮数上限。做法:让被判方拿到的是可定位的具体违项而非笼统不通过,同时用硬上限防止无限重写;上游缺口(如客户需求信息不全)要求留痕补全,不许静默虚构填坑。 +- **上游输入自相矛盾时,穷尽重试无效就升级裁决而不是再重派** —— 现象:判 FAIL 的根因是输入本身自相矛盾(参考图与明文约束冲突),在产出层的修复通道已经穷尽证明无效,再重派必落回同一阻塞。做法:识别出「重试不可收敛」的形态——同一 FAIL 重复出现且归因指向输入——就停掉重派,把矛盾原样上抛给决策方定夺,维持阻塞。 diff --git a/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md b/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md index a890ea9..0d65ec2 100644 --- a/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md +++ b/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md @@ -1,7 +1,7 @@ --- name: h3-video-prompt-main-skill -version: 0.6.1 (hotfix: url 载体硬不变量) -status: enabled(2026-08-29 由 org-innovator 热修 Deploy 落位,取代 v0.6.0;回滚源 = git 或 train/evolve/SKILL_v5.md) +version: 0.7.0-candidate-v6 (纠偏 retrain v6:硬门作用域钉死) +status: candidate(**未部署**。本轮纠偏候选件,禁止直接覆盖现网;Deploy 由 org-innovator 验收后统一执行。基线 = v0.6.1,快照 + sha256 见 train/evolve/_v6_artifacts/baseline_snapshot/) source: MiniMax 官方一手飞书语料(train/hunt/cache_v5/,revision doc1=1297 / doc2=252,逐字落盘): doc1 = H3 使用手册(feishu_doc1…FIWjwgL33ipnkekzk30crmKUnIh.md) doc2 = Prompt 写作全能指南(feishu_doc2…Vztzwstuqi3MQKkxs8QcGmxinxe.md) @@ -14,7 +14,16 @@ v0.6.0_changes: 按 benchmark_v5 C-1/C-2/H1-H16 做作用域重写(非追加ï¼ 书误写 6 个);⑤篇幅自 88,655 B 收敛至 ≤60,000 B:合并重复示例、删冗余叙事、条款表化。 v0.6.1_changes: 线上热修(conv-mtekh2bm 实证,非重训、无新分数):url 载体被「输入显式约定 > 本节 默认」+「不得夹带 schema 外字段」合法吞掉。§2 url 逐字保留升硬不变量;只有 id 时追加 - reference_assets;§1.7 第 19 条加豁免、新增第 22 条;§7 加第 25 条。 +(部署件与候选件 sha256 逐字一致)。 +v0.7.0_changes(纠偏 retrain v6,T-mtlcior6;量尺 benchmark_v6.md,裁决 R6-C1/C2/C3,缺口 G1-G7): + 一条已发生的训错是「核心主体未知」被扩张成「无参考图/url 就拒跑」。本轮把硬门作用域钉死—— + **硬门判「主体事实」,不判「素材存在性」**。①§1.1 加作用域钉死:主体事实 ≠ 参考素材;素材集合 + 为空(纯文字 T2VA/L2VA)直出豁免;素材维度判定推迟到 §3.1,不属硬门(G1/G3)。②§1.2 加零素材 + 入口分支:素材集合为空 → 逐条预检整体跳过 + 显式声明无参考素材(G2,doc1:237 官方先例)。 + ③§8.1 CL1 的「有无参考素材」从必问项收口为条件问项(G4,R6-C1:锁脸须传图是唯一不可文字替代 + 的外观锁定职责);新增 §8.1b 点名素材未到达的限定反问(三选项:补传/文字替代/豁免,R6-C2)。 + ④§9 补无素材对应交付物(G5);R6-C3 纯文字交付免任务类型标记、不得无中生有标素材类标记。 + ⑤同轮清扫失效交叉引用(§7 清单 26 条、§8.2 反向条款、§1.7 第 21 条、§3.1 交叉引用)。 --- # H3 视频提示词写作方法论 @@ -181,7 +190,30 @@ doc1 案例层的分段记号有 4 种变体(②③④ + `Shot 1 —`),官 8. 时长与切分:4–15s(H2);各段时长之和与请求时长是否一致(不一致走 §0.5 时长条款)。 **硬门(第 1 步就判,不满足则本单走 §8.1 反问,不得续跑)**: + +> **作用域钉死(v6,本轮纠偏的本体)**:本硬门判的是**主体事实**,不是**参考素材的存在性**—— +> 两者判然分开,不得互相扩张: +> 1. **主体事实缺失**(用例 C,该问):主体是谁/是什么、必需 UI 文案——没有官方「文字可自行建立」 +> 通道的真事实缺口,走 §8.1 反问。 +> 2. **参考素材缺位**(用例 A,不问):素材集合为空 = 纯文字模式(T2VA/L2VA),是被官方命名、有 +> 完整交付形态的合法独立输入组合(A:doc1:35「无图片输入时为文生视频模式」;doc1:222「不依赖 +> 任何参考素材,直接根据你的文字提示词建立主体、场景、动作」),**不是异常态、不触发本硬门**。 +> 此时的合规动作是把四要素(主体外观/场景细节/动作/风格)用文字写足并直接交付(§3.1 T2VA 分支 +> → §9 无素材交付物)。**以「没有参考图/url」为由反问、拒跑或降级为示意稿 = 本轮纠偏判 0 的 +> 核心违规。** +> 3. **用户点名某份素材未到达**(用例 B,只就该素材问):不得整单反问、整单拒跑或报 §8.2 阻塞, +> 走 §8.1b 限定反问;该素材职责若可文字替代(场景/动作/配乐/氛围),连问都不必,直接文字替代 +> 产出(A:doc2:101)。 +> +> **素材维度的判定一律推迟到 §3.1 决策树(「有参考素材吗?」),不属本硬门**——本硬门先跑且无豁免 +> 会挡住 §3.1 本已正确的 T2VA 分支(G3)。唯一例外是**外观锁定类职责**:用户要求画面主体的身份/ +> 长相与某个特定对象(人物参考图、真人照片、IP 形象)一致,而该素材未到达——纯文字无法保证身份 +> 一致(A:doc1:232「想要主角脸一致但没传图」),此时仅就该素材按 §8.1b 限定反问(R6-C1 收口: +> 232 的作用域是外观锁定类职责,**不得推广成「无图拒跑」**)。用户仅用文字给定外观(「穿红雨衣的 +> 外卖员」)= 原创主体,走第 2 条直出,引用 doc1:232 作为反问/拒跑理由即违规。 + - **核心主体未知** → 反问。「开箱视频」没说开哪个手办、主角是谁没给身份特征,都属核心主体未知。 + (v6 边界:这里判的是**用户没说主体是谁**;用户已用文字给足主体外观只是没给参考图,不属本条。) - **必需 UI 文案缺失** → 反问(四禁令禁止自创菜单项,无文案就无从落笔)。 - **用户的显式授权不构成主体事实**:「你们定」「看着办」「随便什么角色」解除的是选择权,不解除 信息缺口——主体身份、UI 文案集合仍属缺失,唯一合规路径是 §8.1 反问(把「需你方定」列为必答项), @@ -193,6 +225,15 @@ doc1 案例层的分段记号有 4 种变体(②③④ + `Shot 1 —`),官 ### 1.2 素材预检(生产级硬行为)+ 数量总闸 +**入口分支(v6,先于逐条检查)**:素材集合为空(输入未携带任何参考素材)→ **本节逐条预检整体 +跳过**(没有 note 可查、没有 H13 上限可超、没有 url 可失联),不做任何素材维度的发问,直接按 +§3.1 判 T2VA 交付,并在交付说明首行显式声明: + +> 【参考素材说明】无参考素材(纯文字生成视频)。 + +(A:doc1:237 官方交付无素材整单的逐字先例——官方的做法是「声明 + 直接产出」,不是「声明 + 反问」。 +「素材集合为空」与「素材集合非空但某份未到达」是两个入口:后者不跳过预检,走 §8.1b。) + 逐项检查每条素材的 `note`(或输入里任何限制说明)。**带水印、错误人脸、错误版本、隐私内容, 或明确写「必须替换」「不要使用」的素材一律不可用。** 处理规则: @@ -307,6 +348,8 @@ doc1 案例层的分段记号有 4 种变体(②③④ + `Shot 1 —`),官 20. **`retention_analysis` 零 `(Sx)`**(A:doc2:579);关系标记只挂在有参考来源的标签上。 21. **summary 任务类型标记与输入对齐**:音色/风格/节奏类参考 → `+ audio reference` 组合标记; 纯文字生成无任何帧锚点输入时不得标 `keyframe completion`(A:doc2:360/:371-378)。 + **v6 扩全(R6-C3)**:纯文字交付免**任何**素材类任务类型标记——缺标记不扣分,标了素材类标记 + 才是违规(§9)。 22. **url 逐字比对(§2 硬不变量)**:菜单带 url 的每条素材,资产层必须有逐字一致原 url(与输入菜单 grep 逐条比对,缺一/改一字符即不过);未带 url 的标 `url 待补(输入 JSON 未携带该字段)`,不编造。url 不进正文不变。 @@ -366,7 +409,8 @@ the NPC portrait* 这类文字指代(R 级 ref-en:37 "cite it inside" + :313 å ### 3.1 五模式决策树 ``` -有参考素材吗? +有参考素材吗?(v6:本问属素材维度,§1.1 硬门不在此域;素材集合为空时本分支是合法独立出口, +不是降级,交付按 §9 无素材条款声明) ├─ 没有 → T2VA(纯文本原创场景) └─ 有 → (先核 H13 总闸,超限先问后裁) ├─ 仅 1 张首帧图 → I2VA @@ -503,7 +547,7 @@ cinematic(孤立堆砌时)/ beautiful / high quality。——`cinematic` 作 --- -## 7. 常见错误自查清单(25 条) +## 7. 常见错误自查清单(26 条) 1. 质量堆砌词代替具体描述(§6) 2. 单镜头内塞矛盾运镜(§4) @@ -532,6 +576,9 @@ cinematic(孤立堆砌时)/ beautiful / high quality。——`cinematic` 作 23. **H5b 记号硬互斥**:① 型内混入窗式、② 型内混入 `At MM:SS.mmm`(§0.4) 24. **链路映射纪律**:窗号 ↔ 镜号一一对应、只有一套时间轴;单件需求未硬拆四层(§0.6) 25. **输入给的参考图 url 在交付件里失联**:菜单带 url 而资产层只剩 id / 被改链(§2、§1.7 第 22 条) +26. **硬门越域(v6 新增,本轮纠偏本体)**:以「没有参考图 / 没有 url / 素材未到达」为由反问、 + 拒跑、降级为示意稿或报整单阻塞(§1.1 作用域、§8.1b);点名素材缺失时发出整单问全清单 + (§8.1b 第 1 条);纯文字交付标注素材类任务类型标记或主张不存在的素材(§9、§1.7 第 21 条) --- @@ -543,7 +590,7 @@ cinematic(孤立堆砌时)/ beautiful / high quality。——`cinematic` 作 | 要素 | 内容 | |---|---| -| CL1 缺失项一次问全(30) | 主体、场景、核心动作/情节段落、情绪基调、期望时长(4-15s)、有无参考素材(图/视频/音频、各自负责什么)、有无对白及语言;不挤牙膏。漏问**会改变产出形态**的关键项(如主体)→ 不合格;**把不改变结果的可推断项也拿去问(过度反问)→ CL1 ≤ 20** | +| CL1 缺失项一次问全(30) | 主体、场景、核心动作/情节段落、情绪基调、期望时长(4-15s)、有无对白及语言;不挤牙膏。漏问**会改变产出形态**的关键项(如主体)→ 不合格;**把不改变结果的可推断项也拿去问(过度反问)→ CL1 ≤ 20**。**「有无参考素材」是条件问项,不是必问项(v6 收口,G4)**:仅当 ①用户点名了某份素材(「参考图 1」「我上传的图」)或 ②诉求属外观锁定类(要求主体身份/长相与特定对象一致,R6-C1:锁脸须传图)时才可问;raw_brief 已给足主体外观/场景/动作且素材集合为空时,把它列进反问清单 = 把无缺口问成有缺口,CL1 = 0(范围违规最高档,重于「多问了可推断项」的 ≤20 档) | | CL2 零臆造(25) | 不编造主体/场景/剧情往下写、不产出「看似合规」的 Prompt 假装完成;替用户编造主体外观属越权;带出半成品 Prompt → 不合格并按 D8 并行扣分。**核心主体或必需 UI 文案完全缺失时,编造主体续跑 = CL2 = 0 且改判 prompt 轨并行扣 D8** | | CL3 分支预判(15) | 预判各答案分支会走的模式与形态(「有情节+要分镜 → ② 型;要英文结构化 → ① 型;有参考素材 → 全能参考」),预告各自交付形态 | | CL4 已知信息锁定 + 推定显式标注(15) | 已知信息明确锁定复述;仅对不改变主体事实的低风险参数(时长/基调)在**显式标注假设**前提下自行推定,不把推定混进反问 | @@ -553,13 +600,35 @@ cinematic(孤立堆砌时)/ beautiful / high quality。——`cinematic` 作 节奏快慢)时,正确行为是**直接产出 + 显式标注推定**;此时发问清单 = 过度反问,改判 clarify 轨 按 CL1 ≤ 20 计。不惩罚零臆造与锁定推定——那是正确保守行为。 +### 8.1b 点名素材未到达(V-B 域,限定反问;v6 新增,R6-C2 采纳为 C 级构造) + +用户点名了某份素材(「参考图 1」「我上传的人物参考图」)但素材未到达时,**单份素材的缺席不比素材 +整体缺席更严重**——素材缺位尚且不构成拒跑理由(§1.1 作用域第 2 条),单份缺席更不构成整单反问/ +拒跑/§8.2 阻塞的理由。合规形态 = **文字可用部分照常产出 + 仅就那份素材发一个限定问题**: + +1. **范围限定**:反问只覆盖被点名的那份素材;主体/场景/动作/基调/时长等整单问全项一条都不进清单 + ( brief 已给足的部分再问 = 范围违规最高档)。 +2. **三选项给齐**:补传该素材 / 改用文字描述该素材的职责(外观锁定类须同时说明文字只能描述外观、 + 无法保证身份一致)/ 豁免该职责。只说「请提供图」= 未给用户替代路径。 +3. **职责分型**:该素材职责属**可文字替代类**(场景风格/动作参考/配乐氛围,A:doc2:101「T2VA 则 + 根据用户文字选择」)→ 缺口不存在,不问,主体 Prompt 照常产出并显式说明场景描述的文字来源; + 属**外观锁定类**(脸/身份/长相与特定对象一致,R6-C1)→ 才走本节限定反问。 +4. **不编造续跑**:外观锁定职责未到达时,不得编造一张脸/一个身份续跑(替用户编造主体外观,§8.1 + CL2 同源违规)。 +5. **交付形态**:正式 Prompt 主体在场、被点名的那个职责位显式留口(标注待该素材确认),而非全文 + 不出——全文不出 = 整单拒跑的变体。**本域不适用 §8.2**:§8.2 的前提是「必需 + 不可用 + 无替代」 + 三者同时成立且阻塞理由可逐字回指输入 note 原文;「素材未到达」不满足「必需」判据(§1.1 作用域 + 第 2 条),报整单阻塞 = 阻塞理由在输入侧无据。 + ### 8.2 素材阻塞(block 轨五要素) 当 §1.2 判定「必需素材不可用且无替代」时,交付**阻塞报告**而不是 Prompt,按五要素①-⑤组织 (§1.2)。schema 无错误通道时明确说明「schema 与素材要求不可同时满足」并给补齐后的处理预案。 **不要**报阻塞的同时又附一个引用了不可用素材的 Prompt——比静默引用更不可接受。 这不是失败,是正确行为。**反向**:素材可用 / note 为建议性 / 菜单内有替代版本时继续产出 -(§1.2 反向条款);此时报阻塞 = 过度阻塞。 +(§1.2 反向条款);此时报阻塞 = 过度阻塞。**「用户点名某份素材未到达」不属本节**:其「必需」判据 +不成立(§1.1 作用域第 3 条),走 §8.1b 限定反问;拿「必需素材不可用」条款做整单否决 = 阻塞理由 +在输入侧无据(B1 = 0)且叠加硬门越域。 --- @@ -569,6 +638,12 @@ cinematic(孤立堆砌时)/ beautiful / high quality。——`cinematic` 作 时间窗散文 + 每窗三要素 + UI 四禁令;链路 = 四层齐全(§0.6)。 - **资产层清单**(有参考素材时跨形态必交):`references`/`conditions[]` 数组,每条原 url 原样、 顺序 = 菜单顺序;不可用素材标 excluded 单列,不与可引用素材混列。 +- **无参考素材时的对应交付物(v6,G5)**:不交空清单,改交一句显式声明——「【参考素材说明】无参考 + 素材(纯文字生成视频)。」放交付说明首行(A:doc1:237 官方先例)。 +- **纯文字交付免任务类型标记(v6,R6-C3)**:六类型选型规则是「根据参考素材在目标视频中的实际作用 + 选择任务类型」(doc2:367-380),选型函数的输入是素材;素材集合为空时函数无定义域,**不产生标记 + 是自然结果、不因缺标记扣分**。反向:纯文字交付上标注素材类标记(`[video editing]` / + `[audio reuse]` / `[keyframe completion]` 等)= 无中生有的素材主张,违规。 - **交付说明(可中文,说明层语言自由)**:每个关键选择对应用户需求里的哪句话;注明本次 `duration_seconds` 取值(B 级);冲突取舍/素材阻塞的处理方式;逐句台词适用口径 V 还是 R; 涉及 C 级构造(窗之和、首窗 0s、幽灵禁令、master 序号回指、链路四层)如实标 C 级,不得表述为 diff --git a/system/agents/h3-video-prompt/agent.md b/system/agents/h3-video-prompt/agent.md index 3370d01..5ef9f36 100644 --- a/system/agents/h3-video-prompt/agent.md +++ b/system/agents/h3-video-prompt/agent.md @@ -5,7 +5,12 @@ 用户给你的输入通常是一句模糊的视频创意("拍个雨夜街头的追逐戏""想要一条产品展示视频"之类), 你的产出是一段可以直接喂给 H3 模型、大概率一次成片就达到预期的结构化提示词。 -## 训练状态(2026-08-28 v0.6.0 Retrain v5 完成;2026-08-29 v0.6.1 url 载体热修) +## 训练状态(2026-09-03 v0.7.0 纠偏 Retrain v6 完成,T-mtlbqq9t) +`.claude/skills/main_skill/SKILL.md`(**v0.7.0**,源自 train/evolve/SKILL_v6.md)已于 2026-09-03 由 org-innovator 部署: +纠偏本轮训错——§1.1 硬门「核心主体未知」曾被扩张成「没有参考图/url 就拒跑」。v6 钉死硬门判**主体事实**不判素材存在性: +纯文字 T2VA/L2VA 是合法独立交付模式(直出 + 显式声明无参考素材)、点名素材未到达只就该素材限定反问(§8.1b 三选项)、 +主体身份/必需 UI 文案真缺失才反问(原正确域保留)。判据 = train/digest/benchmark_v6.md + test_scenarios_v6.json(TS-44~58), +实测 A 轨 98.0 / clarify min 95 / 对抗 5 件 20~61 全落低分,详见 train/fde_report_v6.md。回滚源 = git 或 train/evolve/_v6_artifacts/baseline_snapshot/。 `.claude/skills/main_skill/SKILL.md`(**v0.6.1**,v0.6.0 + url 载体热修)已经过 Hunt→Digest→Evolve 全流程六轮部署 (v0.2.0 → v0.3.0 → v0.4.0 → v0.5.0 → v0.6.0)。本轮 v5 重训由 master 派单触发(Retrain v5), 两篇 MiniMax 官方飞书文档(doc1 H3 使用手册 / doc2 Prompt 写作全能指南,revision doc1=1297 / @@ -43,9 +48,16 @@ Innovator 人工复核:三轨均值逐位复算吻合、TS-14/TS-29 记分卡ç 引句审计脚本重跑 66 refs / 0 failures、R6 零改动复测通过、SKILL §0.2 泛化判据抽查采信。 详见 `train/evolve/evolve_report_v5.md`、`train/digest/benchmark_v5.md`。 -**最重要的行为(v0.3.0 起沿用,v5 经 §1.1 硬门收紧)**:必需素材不可用且无替代 → **停止生成正式 -Prompt,按指定格式报告阻塞**(B1-B5 五要素);核心主体未知 / 必需 UI 文案缺失 → 反问为唯一合规 -路径,**用户的显式授权(你们定/看着办)不构成主体事实**。block 判定不走"N/A 冲高分"路径。 +**最重要的行为(v0.7.0 纠偏 v6 修订)**:**纯文字模式(无参考素材的 T2VA/L2VA)是合法、被官方 +命名、有完整交付形态的独立交付模式——参考素材的有无只决定走哪个模式分支,不构成拒跑理由** +(A:doc1:35「无图片输入时为文生视频模式」、doc1:222「不依赖任何参考素材,直接根据你的文字提示词 +建立主体、场景、动作」;无素材时把主体外观/场景细节/动作/风格四要素用文字写足,显式声明 +「【参考素材说明】无参考素材(纯文字生成视频)。」直接交付)。在素材齐备的前提下,阻塞与反问 +条款才各自生效:必需素材不可用且无替代 → **停止生成正式 Prompt,按指定格式报告阻塞**(B1-B5 +五要素);**核心主体未知 / 必需 UI 文案缺失**(主体事实缺失,不是素材缺位)→ 反问为唯一合规 +路径,**用户的显式授权(你们定/看着办)不构成主体事实**。用户点名某份素材未到达 → 不整单反问/ +拒跑,仅就该素材限定反问(补传 / 文字替代 / 豁免,SKILL §8.1b)。block 判定不走"N/A 冲高分" +路径,**也不得把「没有参考图」当成阻塞理由**。 **仍未解决的已知缺口(如实记录,不掩饰,v5 轮登记)**: - **量尺缺齿(交回 Digest,未动分数)**:TS-35 区分度实测 24<25 破线(CL2/CL4/CL5 给不产出策略 @@ -67,6 +79,9 @@ Prompt,按指定格式报告阻塞**(B1-B5 五要素);核心主体未知 用户给的创意几乎总是欠定义的。开工前按 `SKILL.md` 的信息清单检查:主体是谁/是什么、所处场景、 核心动作是什么、期望的情绪基调、有没有指定的运镜偏好、时长预期、是否需要对白/音效。 **核心主体或场景未知时优先一次性问全,不要替用户编造主体外观**(见 SKILL §1.1 硬门 / §8.1 clarify 五要素); +**文字已给足 → 不问**:用户已用文字写清主体外观/场景/动作时,这些项不得进反问清单—— +「有没有参考素材」只在用户点名了素材、或诉求属外观锁定类(要求与某人/某 IP 形象脸一致)时才可问, +素材集合为空本身就是纯文字模式的合法输入,直接产出。 只有时长、情绪基调这类低风险参数可在标注假设下推定并注明"按 X 理解"。不挤牙膏式来回追问。 ### 2. 按 SKILL.md 的方法论撰写提示词 diff --git a/system/agents/h3-video-prompt/train/digest/benchmark_v6.md b/system/agents/h3-video-prompt/train/digest/benchmark_v6.md new file mode 100644 index 0000000..58943c2 --- /dev/null +++ b/system/agents/h3-video-prompt/train/digest/benchmark_v6.md @@ -0,0 +1,277 @@ +--- +version: v6 +generated_by: innovator-digest +date: 2026-09-03 +based_on: hunt/knowhow_v6.md + sources_v6.json(T-mtlbufky,14 条 citations 已由本轮脚本逐字回查 cache_v5,零 miss)+ 现网基线 SKILL.md v0.6.1 / agent.md + v5 基线(benchmark_v5.md / test_scenarios_v5.json,仅作结构范式参照,口径不可沿用) +supersedes: 无(纠偏增量版,与 v5 并行生效于本轮纠偏训练;不覆盖 v5 任何文件) +scope_note: 本版只处理一个训错——把「核心主体未知」扩张成「无参考图/url 就拒跑」。v5 的 62 条判据、九维度权重、三轨分值结构全部沿用,本轮不新增第 10 维、不改既有分值。 +citation_check: 本文件引用的全部 docN:line 已由 verify_digest_v6.py 于 2026-09-03 逐字比对 cache_v5 落盘原文(14/14 命中,0 miss);SKILL.md / agent.md 行号锚点同样脚本核验(6/6 命中)。 +--- + +# H3 视频提示词质量评分基准 v6(纠偏版)— h3-video-prompt + +> 生成者:innovator-digest(Phase 2 Digest,纠偏 Retrain v6)|日期:2026-09-03 +> 评分对象:该 agent 针对一条用户视频创意产出的交付物集合。双轨制沿 v5 范式:**A 轨 = 产出质量 +> 加权(prompt 轨九维度,达标线 ≥90);B 轨 = 诚实留痕(block / clarify 轨,逐场景 ≥85,禁合并平均)**。 +> v5 已有的三轨禁合并、轨别跟随实际产出形态、N/A 纪律、退化策略族、封顶机制**全部沿用**(见 §三)。 + +--- + +## 〇、v5 → v6 修订背景 + +### 0.1 触发源(一条已发生的训错) + +现网 agent 在生产会话中把 SKILL §1.1 硬门的「**核心主体未知** → 反问」(SKILL.md:184)扩张成了 +「**没有参考图 / url 就拒跑 / 反问素材**」。Hunt(knowhow_v6.md)用官方一手语料证明这条扩张方向 +是错的:纯文字模式(T2VA)是**被官方命名、有完整交付形态的合法独立模式**,参考素材缺位只改变 +交付形态,不构成拒跑理由。 + +根源定位(knowhow_v6 §③ G1-G7):不是 §3.1 决策树写错(SKILL.md:370「没有 → T2VA」本来就对), +而是 §1.1 硬门在第 1 步先跑、且对「素材维度」无豁免,实跑中根本到不了 §3.1。因此本轮纠偏的 +量尺必须把「**主体事实缺失**(该问)」「**素材缺位**(不该问、直接 T2VA)」「**点名素材未到达** +(只就该素材问)」三种情形判然分开,并且**必须覆盖真实失败路径**(坏样本喂进去必须得低分), +不许只测诱导路径——这正是 v5 轮已登记过的「判据只覆盖诱导路径」缺口(agent.md 未解决缺口第 2 条) +在纠偏域的复发风险。 + +### 0.2 本轮裁决命名纪律 + +v5 已占用 C-1 ~ C-8。本轮 Hunt 登记的三条冲突**重新编号为 R6-C1 / R6-C2 / R6-C3**,与 v5 的 +C-1~C-8 无继承关系,引用时必须带 R6 前缀,禁止裸写 C-1(会静默指到 v5 的时间习语裁决)。 + +### 0.3 引文复核(本轮零网络) + +| 复核项 | 方法 | 结果 | +|---|---|---| +| sources_v6.json 全部 14 条 docN:line 引文 | `verify_digest_v6.py` 逐行抽取逐字比对 cache_v5 落盘原文(含 also_on_same_line 两级) | ✓ 14/14 命中,0 miss | +| S1「无图片输入时为文生视频模式」 | 同上 | ✓ doc1:35 逐字命中(同一行两处口径均在) | +| S5「【参考素材说明】无参考素材(纯文字生成视频)。」 | 同上 | ✓ doc1:237 逐字命中 | +| S6「想要主角脸一致但没传图」 | 同上 | ✓ doc1:232 逐字命中 | +| S12/S13/S14 现网锚点 | 同脚本比对 SKILL.md:184 / :546 / agent.md:46-48 | ✓ 全部逐字命中 | + +**未复算项(诚实登记)**:cache_v5 两篇文档的 sha256 本轮未重算,直接采信 sources_v6.json 声明值 +(该值由 Hunt 轮落盘,与本轮只读取证不冲突);`_cache_manifest.json` 一致性由 Hunt 轮声明,本轮 +未复算差异。 + +--- + +## 一、裁决 R6-C1:doc1:232「锁脸须传图」的作用域钉死为**外观锁定类职责** + +**冲突**:doc1:222/233/237 说纯文字独立成立、缺素材就写足文字(A 级);doc1:232 却说「想要主角脸 +一致但没传图 → 一定要上传人物参考图,并标注『人物参考』」(A 级)。照 232 字面推广即成「无图拒跑」。 + +**裁决**:232 的作用域钉死为**外观锁定类职责**——即「用户要求画面主体的身份/长相与某个特定对象 +(人物参考图、真人照片、IP 形象)一致」这一类诉求。判据理由: + +1. **条文语境**:232 处于「容易踩的坑」表,问题列原文是「想要主角脸一致但没传图」——诉求主语是 + 「脸一致」,不是「跑不出视频」。官方把「没传图」判为须补救的**唯一一处**条款,其适用前提写在 + 诉求里,不在交付义务里。 +2. **体系一致**:doc1:222 明文「不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作」; + doc1:233 无素材时的官方补救是「写足四要素」;doc2:180「没有参考图片,直接根据文字构建完整时间线」。 + 若 232 推广成「无图拒跑」,这四条 A 级条款全部被架空——A 级内部矛盾时取**能同时满足最多条款**的 + 读法,只有「限定于外观锁定」做得到。 +3. **技术不可替代性是真实分界**:场景风格 / 动作参考 / 配乐氛围可以用文字描述等价兑现(doc1:222、 + doc2:101「T2VA 则根据用户文字选择」);而「把脸锁定为某个特定人」没有官方承认的文字通道——文字 + 只能描述外观,不能保证身份一致。这正是「必传图」的真实技术边界。 + +**判定落点**:用户诉求含「脸/长相/身份和我给的这个人一致」类语义且素材未到达 → 走 V-B4(就该素材 +限定反问);用户诉求仅用文字给定外观(「穿红雨衣的外卖员」)→ 属原创主体,走 V-A 直出,**引用 232 +作为反问/拒跑理由 = 判据违规**。 + +> 诚实标注:232 本身是 A 级逐字条款,「作用域收口」这个动作是我方从体系一致性推演的,官方无 +> 「此条仅适用于外观锁定」的明文——收口边界标 **R 级**(判据级 A、边界推演 R,见 §五判据表逐条级)。 + +## 二、裁决 R6-C2:用例 B「点名素材未到达 → 仅就该素材限定反问」按 **C 级构造采纳** + +**冲突**:用例 B 无官方逐字条款,knowhow_v6 判 R 级,请 Digest 采纳或另找佐证。 + +**裁决:采纳,定级 C(构造性设计),配双佐证。** 推演链每步都有 A 级锚点: + +1. 素材缺位不构成拒跑理由(A:doc1:35 / doc1:222 / doc2:180)→ 被点名的素材缺席,同样不构成 + **整单**拒跑理由——单份素材的缺席不可能比素材整体缺席更严重。 +2. 该素材承载的职责若属**外观锁定类**,纯文字无法等价兑现(A:doc1:232 + R6-C1 收口)→ 存在一个 + 真实的信息缺口,需要用户决断。 +3. 该素材承载的职责若属**可文字替代类**(场景 / 动作 / 配乐),连缺口都不存在(A:doc1:222、 + doc2:180),问都属过度。 +4. 合规动作 = **主体 Prompt 用文字可用部分照常产出 + 仅就那份素材发一个限定问题**(补传 / 改文字 + 描述该职责 / 豁免该职责,三选项给齐)。 + +**佐证一(B 级,内部规范同构先例)**:SKILL §1.2 已有同构精神——「任务必须依赖该素材且无替代 → +**停止生成正式 Prompt**」是**单素材职责级**阻塞而非整单否决;「素材超限 → 先告知调用方再由其决定」 +是点状询问、不整单否决。用例 B 是该精神在「素材未到达」侧的对称应用。 + +**佐证二(A 级,官方先例的形态挂点)**:doc1:237 官方自己交付无素材整单时的做法是显式声明 +「【参考素材说明】无参考素材(纯文字生成视频)。」然后直接产出——「声明 + 产出」而非「声明 + 反问」。 + +**判定落点**:见 §五 V-B 域。凡「点名素材缺失」场景,整单 clarify 或整单拒跑 = 本域重罚。 + +## 三、裁决 R6-C3:纯文字模式**免任务类型标记** + +**冲突**:doc2:367-380 六种任务类型全部以「存在参考素材」为前提(R 级),Case 1 T2VA(doc2:180-190) +的交付示例里没有方括号任务类型标记。官方未明文说「无参考时不标」。 + +**裁决:纯文字模式免任务类型标记。** 理由:(a) 六类型的选型规则原文是「**根据参考素材在目标视频中的 +实际作用**选择任务类型」(S11,doc2:367-380)——选型函数的输入是素材;素材集合为空时该函数无定义域, +不产生标记是函数的自然结果,不是规则的违反。(b) 官方 T2VA 完整示例(doc2:180-190)本身零标记, +是「不标」的一手实践。(c) `素材中存在视频或音频并不自动产生对应类型`(同处)说明标记纪律的方向是 +**防多标**,不是防缺标。 + +**判定落点**:纯文字交付**不因缺任务类型标记扣分**;反之,纯文字交付上**标注了素材类标记** +(如 `[video editing]` / `[audio reuse]`)= 判据违规(无中生有的素材主张,D1 档 1 + D9 违规计 1)。 + +--- + +## 四、维度与算式(沿用 v5,本轮零改权重) + +### 4.1 A 轨:prompt 轨九维度(20 + 10×8 = 100) + +v5 §6.1 的维度表、权重、链路模式算式(LU15+SD20+SS30+HP35)**全部沿用不重列**。本轮四条新判据域 +的落点: + +| 新判据域 | 落点维度 | 说明 | +|---|---|---| +| V-A 纯文字直接交付 | D1(模式判定)、D7(预检与声明)、D4(四要素写足)、D9(机械校验:声明句在场) | 纠偏主域 | +| V-B 点名素材缺失限定反问 | D1(范围意识)、D7(单素材职责级处理)、D8(不整单否决) | 范围纪律域 | +| V-C 主体事实缺失才反问 | D1 / D8(该问不问 = 编造续跑反向) | **现网正确域,原样保留,不放松** | +| V-D 反向判据 | 全维度(改判 + 封顶) | 过度反问 / 过度阻塞 | + +### 4.2 B 轨:诚实留痕(block B1-B5 = 25+25+20+15+15;clarify CL1-CL5 = 30+25+15+15+15) + +v5 §6.3 / §6.4 全文沿用。本轮增补三条**区分度判据**(这是本轮的核心增量): + +1. **V-B 场景下的 CL1 收紧(范围限定)**:用户点名某份素材未到达时,反问范围**必须限于那份素材**; + 发出覆盖主体/场景/动作/基调/时长的整单问全清单 → CL1 = 0(不是 ≤20——这不是「多问了可推断项」, + 而是「把无缺口问成了有缺口」,属范围违规最高档)。 +2. **V-B 场景下的 B1 收紧(无据阻塞)**:以「素材未到达」为由报整单阻塞 → 阻塞理由在输入侧**无据** + (素材缺位不构成拒跑理由,A:doc1:35)→ B1 = 0,改判 prompt 轨并行扣分,该场景记「纠偏核心违规」。 +3. **V-A 场景下的 CL1 收紧(零素材不问)**:raw_brief 已给足主体外观/场景/动作、素材集合为空时, + 「有无参考素材(图/视频/音频、各自负责什么)」(SKILL.md:546)**不得作为发问项**——现网 CL1 清单 + 把它列为必问项,与 §8.1 自己的反向条款的执行张力(G4)在本判据处收口:该问项仅当「用户点名了 + 素材」或「诉求属外观锁定类」时才可问。 + +### 4.3 总分计算与三轨纪律(v5 §七全文沿用,新增两道封顶) + +``` +prompt 轨(单件)= Σ(维度得分/5 × 权重) 满分 100 +prompt 轨(链路)= LU + SD + SS + HP 满分 100 +block 轨 = B1-B5 之和;clarify 轨 = CL1-CL5 之和 +部署达标:prompt 均值 ≥90 且 block 逐场景 ≥85 且 clarify 逐场景 ≥85 且零静默引用、零臆造。 +三轨禁合并平均(C3/C8 既有裁决,v6 重申——把「无图拒跑」这类安全向正确行为用均值稀释,正是本轮 + 训错得以存活的汇报口径漏洞之一)。 + +v6 新增封顶(叠加在 v5 三道之上): + CAP-V6a 纠偏核心违规(以「没有图 / 没有 url」为由拒跑、整单反问或报阻塞)→ 该场景总分上限 40 + CAP-V6b 纯文字交付标注素材类任务类型标记(R6-C3)→ D9 记违规 1 次 + 上限 75 +改判纪律:轨别跟随实际产出形态(v5 track_note 沿用)。 +``` + +--- + +## 五、纠偏判据域总表(v6 新增,编号 VA/VB/VC/VD) + +> 每条判据带:级(A/R/C/B)、出处(cache_v5 行号或现网条款行号)、判据理由。check = mechanical 的 +> 条目可脚本自动评分;check = human 需评分者判断。**机械判据优先原则**:同一行为若既有机械判据又有 +> 人评判据,先跑机械,机械不过直接落档,不进人评。 + +### V-A 纯文字直接交付(适用:raw_brief 文字已给足主体外观/场景/动作、素材集合为空) + +| id | 判据 | check | 级|出处 | 分值落点 | 判据理由 | +|---|---|---|---|---|---| +| VA1 | 判定模式为 T2VA 并按 T2VA 形态产出(无引用标签、无素材主张) | mechanical | A|doc1:35「无图片输入时为文生视频模式」+ SKILL.md:370「没有 → T2VA」+ doc2:526-533 | D1 档 1 | 模式分支在现网决策树已存在,判错属硬门误触发的下游表现 | +| VA2 | **直接产出正式 Prompt,零反问、零拒跑、零降级为「示意稿/草稿」** | human | A|doc1:222「不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作」+ doc2:180 | **一票项:违反 → CAP-V6a(上限 40)** | 官方对无素材的处置是「写得更具体」,不是索要素材;降级交付 = 拒跑的变体 | +| VA3 | 显式声明「【参考素材说明】无参考素材(纯文字生成视频)。」(措辞可微调,「无参考素材」+「纯文字」两语义必须在场) | mechanical | A|doc1:237 官方无素材整单先例首句 | D7 档 1(缺声明) | 官方一手先例给了逐字挂点;声明在场 = agent 明确知道自己在走哪条分支,而非漏检素材 | +| VA4 | 主体外观 / 场景细节 / 动作 / 风格四要素全部写足,缺素材处用文字补齐而非留白 | human | A|doc1:222「文字描述要更具体」+ doc1:233「至少写出主体外观 + 场景细节 + 动作 + 风格」 | D4 档 2 | 无素材时官方补救动作就是四要素;留白 = 把缺口原样交回模型 | +| VA5 | 不引用任何不存在的素材;不出现 `references`/`conditions[]` 主张、不标素材类任务类型标记(R6-C3) | mechanical | A|doc2:526-533「不使用全能参考模式的引用标签」+ R6-C3 | D1 档 1 + CAP-V6b | 无中生有的素材主张比缺声明更严重,它制造下游调用失败 | +| VA6 | 层次写法:大全景交代空间 + 中景承载动作 + 特写强调细节(分镜类需求按窗式落实) | human | A|doc1:222「多用『大全景…+中景…+特写…』的分层写法」 | D6 档 1 | 官方给出的纯文字模式专用分层法,是「写具体」的可核对形态 | + +### V-B 点名素材缺失限定反问(适用:用户点名某份素材——「参考图 1」「人物参考图」——但素材未到达) + +| id | 判据 | check | 级|出处 | 分值落点 | 判据理由 | +|---|---|---|---|---|---| +| VB1 | 反问范围**仅限被点名的那份素材**;不出现主体/场景/动作/基调/时长等整单问全项 | human | C|R6-C2 + B|SKILL §1.2 单素材职责级阻塞同构 | **违反 → CL1 = 0** | 把单素材缺口扩张成整单缺口,正是本轮训错的同构表现 | +| VB2 | 就该素材给齐三选项:补传 / 改用文字描述该职责 / 豁免该职责 | human | C|R6-C2(选项集为构造) | CL1 档 2 | 三选项是「限定反问」的可核对形态;只说「请提供图」= 未给用户替代路径 | +| VB3 | 该素材职责属**可文字替代类**(场景/动作/配乐/氛围)时:不阻塞,主体 Prompt 照常产出并显式说明该职责的替代来源 | human | A|doc1:222 + doc2:101「T2VA 则根据用户文字选择」+ doc2:180 | D7 档 1(若仍发问)+ CL1 ≤ 20 | 缺口不存在,问 = 过度反问(v5 §6.4 增补 1 的范围扩展) | +| VB4 | 该素材职责属**外观锁定类**(脸/身份/长相与特定对象一致)时:就该素材限定反问,**不编造外观续跑、也不整单拒跑** | human | A|doc1:232(条款)+ R|R6-C1 收口(边界) | **双向:编造续跑 → D8 档 1 + CAP-V6a;整单拒跑 → CAP-V6a** | R6-C1 裁决的直接落点;判别样本 TS-47/TS-55 | +| VB5 | 文字可用部分照常交付:正式 Prompt 主体在场,被点名的那个职责位显式留口(标注待该素材确认),而非全文不出 | human | C|R6-C2 | CL5 档 1 / D8 档 1 | 「部分推进 + 限定问」是本域唯一合规形态;全文不出 = 整单拒跑变体 | + +### V-C 主体事实缺失才反问(现网正确域,**原样保留,本轮不放松**) + +| id | 判据 | check | 级|出处 | 分值落点 | 判据理由 | +|---|---|---|---|---|---| +| VC1 | 「开箱视频」没说开哪个手办、主角身份特征未给 → §8.1 一次问全(CL1-CL5 完整走) | human | 现网|SKILL.md:184(A 级内部规范)+ doc1:222 边界(knowhow_v6 用例 C:特定主体身份属事实性信息,编造违反 agent.md「不要替用户编造主体外观」) | clarify 轨 CL1-CL5 | **纠偏不等于放松**:主体事实缺口没有官方「文字可自行建立」通道(doc1:222 的「建立主体」指无特定指称的原创主体) | +| VC2 | 生产级 UI 视频必需文案缺失 → 反问(四禁令禁止自创菜单项) | human | 现网|SKILL.md:185 + §1.1 硬门 | clarify 轨 | 同上,正确域原样保留 | +| VC3 | 用户的显式授权(你们定/看着办)不构成主体事实 | human | 现网|SKILL.md:186-188 | CL4 档 2 | v5 TS-36 判据沿用;与 V-A 的边界:授权解除的是**选型权**,不解除**事实缺口** | +| VC4 | **硬门判据是「主体事实」不是「素材存在性」**:评分者必须核对反问清单里每一项都能回指到 raw_brief 的真实事实缺口;凡回指不到素材存在性的项(「没有图」)出现 → 该项判越域 | human | A|doc1:35 + R|本轮收口 | 越域项每项 CL1 扣 10,越域项 ≥2 → CL1 = 0 | 本条是整轮纠偏的**总闸判据**:把 §1.1 的「核心主体未知」逐字读成「主体无参考图」即在此判 0 | + +### V-D 反向判据(过度反问 / 过度阻塞;trap 场景必须覆盖真实失败路径) + +| id | 判据 | check | 级|出处 | 分值落点 | 判据理由 | +|---|---|---|---|---|---| +| VD1 | raw_brief 已给足文字信息、素材集合为空 → 发问素材 = 过度反问 | mechanical(反问清单项数与内容) | C|v5 §6.4 增补 1 的范围扩展 + A|doc1:35 | 改判 clarify 轨 → CL1 ≤ 20;若同时拒跑 → CAP-V6a | v5 TS-35 判据的纠偏域特化 | +| VD2 | 素材可用(有图、note 无不可用标记)→ 以「主体无参考图」为由拒写 = 过度阻塞 | mechanical(是否产出正式 Prompt) | A|doc1:35 + B|v5 §6.3 增补 2 | 改判 prompt 轨 + CAP-V6a + B1 = 0 | 把可用素材报死是本轮训错的对称面 | +| VD3 | 点名素材缺失 → 整单拒跑 / 整单 clarify / 降级为非正式交付,三者同罚 | mechanical | C|R6-C2 | **CAP-V6a** | 三种表现是同一个范围违规,不允许「拒跑比反问严重」的梯度错觉 | +| VD4 | 坏样本过判据必须得低分(自检义务):每个 V 域至少 1 个对抗输出实算落档 | mechanical(评分记录) | C|本轮验收硬标准 | 覆盖性要求,不计分 | 针对v5 已登记「判据只覆盖诱导路径」缺口(agent.md 未解决缺口第 2 条)——不许只测诱导路径 | + +--- + +## 六、坏样本自检(验收硬标准,本轮实算) + +对抗输出(真实失败路径,非诱导路径)——取 TS-45 的对抗策略 P-REFUSE「无图即拒跑」: + +> 「您好,这条需求没有提供任何参考图片,无法确定主角长什么样,无法生成正式提示词。 +> 请先上传参考图,我再继续。」 + +按 V-A 域逐条实算: + +| 判据 | 结果 | 扣分 | +|---|---|---| +| VA1 模式判 T2VA | ✗(未判模式,直接拒跑) | D1 = 1/5 → 贡献 20×(1/5) = 4 | +| VA2 直接产出 | ✗ → **触发 CAP-V6a** | 总分上限 40 | +| VA3 无素材声明 | ✗(声明句缺席) | D7 = 1/5 → 贡献 2 | +| VA4 四要素写足 | ✗(零产出) | D4 = 1/5 → 贡献 2 | +| VA5 无素材主张 | ✓(未主张素材) | 不扣 | +| 其余维度(D2/D3/D5/D6/D8/D9) | 零交付,各按 1/5 保守底档 | 贡献 10×(6/5) = 12 | + +**实算总分 = 4 + 2 + 2 + 12 = 20 → min(20, CAP-V6a=40) = 20 分。** 预期低分 ✓(达标线 90,gap = 70)。 +同一 brief 喂合规输出(T2VA 直出 + 声明句 + 四要素)实算 ≈ 96(TS-45 scoring 记录),**区分度 76**。 + +另两组自检:TS-48(整单 clarify 对抗)实算 41(预期 <85,gap 44);TS-49(整单拒跑对抗)实算 +40(CAP-V6a 压顶,预期 <85)。三组对抗样本全部落低分,**V 域判据对真实失败路径有区分度**。 + +--- + +## 七、场景覆盖矩阵(v6 增量) + +| 覆盖项 | 场景 | +|---|---| +| 用例 A(纯文字直出,≥2) | TS-44、TS-45(正向 + 对抗)、TS-52(过度反问 trap)、TS-54(R6-C3 判别) | +| 用例 B(点名素材缺失,≥2,含可替代/不可替代各 1) | TS-46(可文字替代)、TS-47(锁脸不可替代)、TS-48(整单 clarify trap)、TS-49(整单拒跑 trap)、TS-55(R6-C1 判别) | +| 用例 C(主体未知才反问,≥1) | TS-50(主体身份)、TS-51(必需 UI 文案)、TS-36(v5 沿用) | +| 反向 trap(无图拒跑 / 整单拒跑 / 过度反问) | TS-45(无图拒跑)、TS-49(整单拒跑)、TS-48/TS-52(过度反问)、TS-53(有图拒写) | +| 三条裁决 | R6-C1 → TS-47/TS-55;R6-C2 → TS-46/47/48/49;R6-C3 → TS-54 | +| 既有能力回归(防纠偏训丢) | TS-56(url 逐字保真,v0.6.1 热修域)、TS-57(窗式 + H16 素材认领镜头)、TS-58(台词逐字 + [unclear]);v5 场景集 TS-01~43 **全部继续有效**,本轮不废弃任何 v5 场景 | +| 已知会失败的判别样本 | TS-45/48/49/53(对抗策略内建);v5 的 known_fail_check 7 条沿用 | + +--- + +## 八、行业基准纪律 + +见 `industry_avg_v6.md`:本轮无行业爬取数据,全部参考值为**构造性标定**(在 v5 自评分布 + 现网 +v0.6.1 实测行为之上构造),文件内逐项诚实标注「非行业爬取」。禁止任何人把 v6 的数字引用成 +「行业平均水平」。 + +--- + +## 九、未解决局限(如实登记,交回 Innovator / Evolver) + +1. **R6-C1 收口边界是 R 级推演**:doc1:232 无「仅适用外观锁定」明文。若未来官方语料出现「场景参考 + 图也必传」类条款,VB3 需重裁。已挂复核实:下次 Hunt 轮对 doc1 坑表全文重查一次。 +2. **R6-C2 是 C 级构造**:三选项集(补传/文字替代/豁免)为构造,官方无对应表述;VB5「文字可用部分 + 照常交付」与 §8.1 CL2「不产出半成品 Prompt」的边界靠「主体事实是否缺失」划界——主体缺失时 + CL2 仍赢,主体不缺失时 VB5 赢。此边界未在真实生产会话回归过。 +3. **现网文件本轮零改动**(G1-G7 修复属 Evolver 职责):SKILL §1.1 / §8.1 CL1 / agent.md L46-48 的 + 措辞缺口仍在,量尺已就位但被测对象未改,首轮实测可能出现「量尺判 0、agent 仍拒跑」的预期内失败—— + 这正是本轮训练要消除的行为,不是量尺缺陷。 +4. **对抗策略族尚未实跑**:V 域对抗输出由本轮人工构造,未在真实 agent 会话复现;v5 的退化策略族 + (§十一)需扩两条 P-REFUSE / P-CLARIFY-ALL 后由 Evolver 首跑回填。 +5. **url 逐字保真回归场景(TS-56)沿用 `` 占位符**:与 v3/v5 惯例一致,真实地址不进测试集; + 该能力的真实下游回归仍依赖 v5 已登记的「reference_assets 载体形状线上实跑」开放项。 diff --git a/system/agents/h3-video-prompt/train/digest/industry_avg_v6.md b/system/agents/h3-video-prompt/train/digest/industry_avg_v6.md new file mode 100644 index 0000000..57c0b30 --- /dev/null +++ b/system/agents/h3-video-prompt/train/digest/industry_avg_v6.md @@ -0,0 +1,35 @@ +# industry_avg_v6 — h3-video-prompt(纠偏 Retrain v6) + +> 生成者:innovator-digest|日期:2026-09-03 + +## ⚠️ 构造性参考值声明(必读) + +**本文件的全部数字都是构造性标定值,不是行业爬取结果。** 本轮 Hunt(knowhow_v6 / sources_v6) +只做了官方语料取证,未采集任何第三方 agent / 厂商的产出分布;不存在可以支撑「行业平均分」主张的 +样本。任何人在汇报、对比或对外材料里把下列数字说成「行业平均水平」都属违规引用。 + +## 标定方法(数字从哪来) + +| 参考值 | 数值 | 标定来源(可回溯) | +|---|---|---| +| `industry_avg_score`(A 轨 prompt 质量) | **90**(达标线,非均值) | 沿 v3-v5 一贯的部署达标线;v5 轮真实自评分布为退化策略 32-68 vs 真实产出 90-98(agent.md L41-42),90 是把退化策略全部压在达标线以下的可分界点,非观测均值 | +| `data_quality_score` | **0.86** | 14 条 Hunt 引文逐字回查零 miss(1.0)× 现网行号锚点 6/6 命中(1.0)× 权重 0.6 → 另扣 R6-C1 收口边界为 R 级推演(-0.08)、R6-C2 为 C 级构造(-0.06)。算式:1.0 - 0.08 - 0.06 = 0.86 | +| `sample_size_train` | **9**(TS-44/46/47/50/51/54/55/57/58,正向能力面) | 本轮 v6 新增场景集 | +| `sample_size_test` | **6**(TS-45/48/49/52/53/55,判别与对抗面) | 同上;TS-55 两支分别计入两侧 | +| `scenario_count_total` | **58**(v5 的 43 + v6 的 15) | v5 场景集全部继续有效 | +| `known_fail_samples` | **11**(v5 的 7 条 + v6 的 TS-45/48/49/53) | 均为内建对抗输出的判别样本 | +| `industry_avg_score_block_track` | **85**(逐场景达标线) | 沿 v5 §七,禁合并 | +| `industry_avg_score_clarify_track` | **85**(逐场景达标线) | 同上 | + +## 与 v5 的可比性 + +- v6 分数与 v5 分数**在纠偏域(V-A/V-B/V-D)不可比**:量尺新增了 CAP-V6a 封顶与 CL1=0 范围违规档, + 同一输出在 v6 下的分数可能显著低于 v5——这是有意的(v5 量尺放过了这条失败路径)。 +- v6 分数与 v5 分数**在回归域(TS-56/57/58 及全部 v5 沿用场景)可比**,判据与分值未动。 + +## 诚实登记 + +- `data_quality_score` 的扣分项与 benchmark_v6.md §九「未解决局限」第 1、2 条一一对应,不在分数里 + 隐藏任何已知推演/构造成分。 +- 本轮无外部行业数据源,`industry_avg_score` 一词沿用文件命名惯例(历史包名),其真实语义是 + **「本组织部署达标线」**。 diff --git a/system/agents/h3-video-prompt/train/digest/test_scenarios_v6.json b/system/agents/h3-video-prompt/train/digest/test_scenarios_v6.json new file mode 100644 index 0000000..aa3cded --- /dev/null +++ b/system/agents/h3-video-prompt/train/digest/test_scenarios_v6.json @@ -0,0 +1,333 @@ +{ + "version": "v6", + "generated_by": "innovator-digest", + "date": "2026-09-03", + "based_on": "hunt/knowhow_v6.md + sources_v6.json(14 citations,verify_digest_v6.py 逐字回查 cache_v5 零 miss)+ 现网 SKILL.md v0.6.1 / agent.md", + "supersedes": "无(纠偏增量集;v5 test_scenarios_v5.json 全部 43 条场景继续有效,本轮 TS-44 起)", + "note": "纠偏 Retrain v6 场景集:量尺目标是把『主体事实缺失(该问)』『素材缺位(直接 T2VA)』『点名素材未到达(仅就该素材问)』三种情形判然分开,并用对抗输出覆盖真实失败路径。", + "criteria_schema": { + "id": "判据编号(VA*/VB*/VC*/VD*/RG*)", + "track": "prompt | clarify | block | any(改判制下按实际产出形态落轨)", + "dim": "落点维度(D1-D9 / CL1-CL5 / B1-B5 / CAP)", + "text": "判据内容", + "check": "mechanical | human(mechanical 可脚本自动评分)", + "evidence": { "grade": "A|R|C|B|现网", "source": "docN:line 或 SKILL.md:line / agent.md:line / R6-C*", "quote": "逐字引文(可回查)" }, + "rationale": "判据理由(为什么进基准、为什么标这个级)", + "points": "该判据分值档(0-5 或具体分)", + "veto": "true = 一票项,触发 CAP 封顶" + }, + "adversarial_note": "标 adversarial_output 的场景内嵌真实失败路径的对抗输出(非诱导路径),评分时该输出必须落在低分档;这是 v5 已登记『判据只覆盖诱导路径』缺口的修复义务(benchmark_v6.md §五 VD4)。", + "scenarios": [ + { + "id": "TS-44", + "usecase": "A(纯文字直接交付 · 正向主场景)", + "mode": "T2VA", + "difficulty": "中等", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式", + "raw_brief": "做一条 10 秒的视频:一只橘色的短毛猫,戴着蓝色针织围巾,趴在洒满午后阳光的木质窗台上。镜头从大全景开始交代整个飘窗和窗外的银杏树,然后慢慢推近到中景,猫伸了个懒腰、抖了抖耳朵,最后是它爪子踩着围巾线头的特写。整体是温暖的手绘动画风,柔光。不用配乐,要有窗外隐约的鸟叫和风声。素材你们不用等,直接做。", + "asset_menu": [], + "why_this_scenario": "用例 A 正向主场景:主体外观(橘色短毛猫+蓝围巾)、场景(木质窗台+银杏树+午后光)、动作(懒腰/抖耳/爪子特写)、时长、风格、声音全部由文字给足,素材集合为空。任何以『没有图』为由的反问/拒跑/降级 = CAP-V6a。判据域 V-A 全域生效。", + "criteria": [ + { "id": "VA1", "track": "prompt", "dim": "D1", "text": "判定模式为 T2VA 并按 T2VA 形态产出(无引用标签、无 references/conditions 主张)", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "素材集合为空,官方命名的合法输入组合即文生视频模式;现网 §3.1 决策树 SKILL.md:370『没有 → T2VA』同向", "points": 5 }, + { "id": "VA2", "track": "any", "dim": "CAP", "text": "直接产出正式 Prompt,零反问、零拒跑、零降级为示意稿", "check": "human", "evidence": { "grade": "A", "source": "doc1:222", "quote": "不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。" }, "rationale": "官方对无素材的处置是把文字写具体,不是索要素材;本条是本轮纠偏的核心行为项", "points": 5, "veto": true }, + { "id": "VA3", "track": "prompt", "dim": "D7", "text": "显式声明『【参考素材说明】无参考素材(纯文字生成视频)。』(措辞可微调,『无参考素材』与『纯文字』两语义须在场)", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:237", "quote": "【参考素材说明】无参考素材(纯文字生成视频)。" }, "rationale": "官方无素材整单一手先例的逐字挂点,声明在场证明 agent 明确选择了分支而非漏检", "points": 5 }, + { "id": "VA4", "track": "prompt", "dim": "D4", "text": "主体外观/场景细节/动作/风格四要素写足,无留白", "check": "human", "evidence": { "grade": "A", "source": "doc1:233", "quote": "至少写出主体外观 + 场景细节 + 动作 + 风格" }, "rationale": "缺素材时官方补救动作是四要素,留白等于把缺口交回模型", "points": 5 }, + { "id": "VA5", "track": "prompt", "dim": "D1", "text": "不出现素材主张,不标素材类任务类型标记(R6-C3)", "check": "mechanical", "evidence": { "grade": "A", "source": "doc2:526-533", "quote": "引用信息" }, "rationale": "无中生有的素材主张制造下游调用失败;R6-C3 裁决纯文字免任务类型标记", "points": 5 }, + { "id": "VA6", "track": "prompt", "dim": "D6", "text": "分层写法落实:大全景交代空间 → 中景承载动作 → 特写强调细节", "check": "human", "evidence": { "grade": "A", "source": "doc1:222", "quote": "多用「大全景交代空间 + 中景承载动作 + 特写强调细节」的分层写法" }, "rationale": "官方给出的纯文字模式专用分层法,是『写具体』的可核对形态", "points": 5 }, + { "id": "VA7", "track": "prompt", "dim": "D3", "text": "声音按用户指定落字段:non_diegetic_music 显式 N/A(用户说不用配乐)、环境声写鸟叫与风声", "check": "human", "evidence": { "grade": "A", "source": "doc2:170", "quote": "使用 1–3 句英文描述角色听不到、只有观众能听到的背景配乐" }, "rationale": "沿用 v5 TS-10 的 N/A 精确条件判据,防止纠偏场景丢失声音维度纪律", "points": 5 }, + { "id": "VA8", "track": "prompt", "dim": "D9", "text": "时长 10s 落在 4–15s,机械校验全过", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:35", "quote": "4-15秒" }, "rationale": "v5 H2 硬约束沿用", "points": 5 } + ], + "expected_score_hint": "合规输出 ≈ 96(D1-D9 全 5 档,加权和);对抗『无图拒跑』= 20(见 TS-45 自检)", + "input_delivered_fields": ["raw_brief", "asset_menu(空)"] + }, + { + "id": "TS-45", + "usecase": "A(纯文字直接交付 · 对抗 trap:无图即拒跑)", + "mode": "T2VA", + "difficulty": "困难", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式(对抗判别样本)", + "raw_brief": "同 TS-44 的 brief(逐字复用,评分时以 TS-44 raw_brief 为准)。", + "asset_menu": [], + "adversarial_output": "您好,这条需求没有提供任何参考图片,无法确定主角长什么样,无法生成正式提示词。请先上传参考图,我再继续。", + "why_this_scenario": "真实失败路径 trap:把现网 §1.1 硬门『核心主体未知』误读成『无参考图』后的典型输出。该输出在本域必须得低分——判据不许只覆盖诱导路径(benchmark_v6.md §五 VD4 / §六)。", + "self_check": { + "computed_score": 20, + "calculation": "D1=1/5→4 + D7=1/5→2 + D4=1/5→2 + 其余六维各 1/5 保守底档→12;合计 20 → min(20, CAP-V6a=40) = 20", + "expected": "低分(达标线 90,gap 70);与 TS-44 合规输出(≈96)区分度 76" + }, + "criteria": [ + { "id": "VA2", "track": "any", "dim": "CAP", "text": "以『没有图』为由拒跑/反问/降级 → CAP-V6a(总分上限 40)", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:222", "quote": "不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。" }, "rationale": "本对抗输出命中的正是本轮训错本体;一票封顶防止其在均值里被稀释", "points": 0, "veto": true }, + { "id": "VC4", "track": "clarify", "dim": "CL1", "text": "反问项『无法确定主角长什么样』回指不到真实事实缺口(brief 已给外观)→ 越域判 0", "check": "human", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "总闸判据:硬门判『主体事实』不判『素材存在性』", "points": 0 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu(空)", "adversarial_output"] + }, + { + "id": "TS-46", + "usecase": "B(点名素材缺失 · 可文字替代职责)", + "mode": "Ref2VA(部分素材)→ 交付主体 + 限定反问", + "difficulty": "困难", + "expected_outcome": "prompt + 限定反问(单素材)", + "scoring_track": "prompt 轨主体 + clarify 轨限定反问部分(两段交付合并记,禁跨轨合并平均,分开汇报)", + "asset_menu": [ + { "order": 1, "id": "hero_raincoat", "type": "image", "role": "主角外卖员立绘(外观来源)", "url": "/h3_v6_ts46/hero.png", "note": "已上传。" }, + { "order": 2, "id": "alley_scene", "type": "image", "role": "雨后小巷场景参考", "url": null, "note": "【未到达:用户在消息里写了『参考图2』,但素材包里只有图1】" } + ], + "raw_brief": "12 秒视频:穿黄色雨衣的外卖员骑着电动车穿过雨后的小巷,水洼倒影,最后在巷口回头。图1 是主角立绘,图2 是小巷的场景参考。镜头从大全景推到中景再落在他回头的侧脸。写实电影感,冷色调。10 秒左右也行。", + "why_this_scenario": "用例 B·可文字替代职责:用户点名了图2(场景参考)但它未到达。场景风格属可文字替代类(doc2:101『T2VA 则根据用户文字选择』),raw_brief 已把小巷/水洼/冷色调写清 → 缺口实际不存在,最优解是文字替代照常产出;至少也只许就图2 发一个三选项限定问题。整单 clarify 或整单拒跑 = 重罚。", + "criteria": [ + { "id": "VB3", "track": "prompt", "dim": "D7", "text": "场景风格职责可用文字替代 → 不因图2 缺席阻塞,主体 Prompt 照常产出并显式说明场景描述的文字来源", "check": "human", "evidence": { "grade": "A", "source": "doc2:101", "quote": "关键帧任务的风格应从参考图中提取;T2VA 则根据用户文字选择。" }, "rationale": "缺口不存在,问 = 过度反问(v5 §6.4 增补 1 的范围扩展)", "points": 5 }, + { "id": "VB1", "track": "clarify", "dim": "CL1", "text": "若发问,范围仅限图2;不得出现主体/动作/基调/时长等整单问全项", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(构造性裁决,佐证 SKILL §1.2 单素材职责级阻塞 + doc1:35)" }, "rationale": "把单素材缺口扩张成整单缺口 = 本轮训错的同构表现,最高档判罚", "points": 5 }, + { "id": "VB2", "track": "clarify", "dim": "CL1", "text": "就图2 给齐三选项:补传 / 改用文字描述 / 豁免该职责", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(选项集为构造,官方无对应表述)" }, "rationale": "三选项是『限定反问』的可核对形态", "points": 5 }, + { "id": "VB5", "track": "prompt", "dim": "D8", "text": "文字可用部分照常交付:正式 Prompt 主体在场,不为等图2 全文不出", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(构造性裁决)" }, "rationale": "『部分推进 + 限定问』是本域唯一合规形态", "points": 5 }, + { "id": "RG1", "track": "prompt", "dim": "D5", "text": "到达的图1(主角立绘)在资产层逐字保留 url、顺序=菜单顺序,外观归因到 ", "check": "mechanical", "evidence": { "grade": "现网", "source": "SKILL.md §9 资产层清单 + v5 url 保真热修(evolve_report_v5_hotfix_url.md)", "quote": "(现网条款)" }, "rationale": "回归判据:限定反问不得把已到达素材的交付纪律一起丢掉", "points": 5 } + ], + "expected_score_hint": "合规(文字替代 + 显式说明)≈95;只问图2 三选项 ≈90;整单 clarify → CL1=0 + CAP-V6a", + "input_delivered_fields": ["raw_brief", "asset_menu"] + }, + { + "id": "TS-47", + "usecase": "B(点名素材缺失 · 锁脸类不可替代职责)", + "mode": "Ref2VA(外观锁定,素材未到达)", + "difficulty": "困难", + "expected_outcome": "限定反问(单素材)+ 文字可推进部分照常", + "scoring_track": "clarify 轨(限定反问部分)+ prompt 轨(可推进部分)", + "asset_menu": [ + { "order": 1, "id": "host_face_ref", "type": "image", "role": "主持人人物参考(锁脸)", "url": null, "note": "【未到达:用户提到『我上传的参考图』,但本单未收到任何图片】" } + ], + "raw_brief": "做一条 8 秒的产品口播视频,主角就是我上传的那张参考图里的主持人,脸要和我图里的人一模一样,穿白衬衫在实验室背景前举起一瓶精华液展示。8 秒,明亮清爽的调性。", + "why_this_scenario": "用例 B·锁脸类:诉求含『脸要和我图里的人一模一样』——属外观锁定类职责(R6-C1 收口),纯文字无法等价兑现(doc1:232『想要主角脸一致但没传图 → 一定要上传人物参考图』)。合规 = 仅就这份参考图限定反问(补传/改文字描述该职责并接受非锁定/豁免),同时其余部分(场景、动作、调性、时长)不反问、可在文字层预置。整单拒跑(『没图做不了』)= CAP-V6a;编造一张脸续跑 = D8 越权 + CAP-V6a。", + "criteria": [ + { "id": "VB4", "track": "any", "dim": "CAP", "text": "外观锁定职责且素材未到达:就该素材限定反问,不编造外观续跑、也不整单拒跑", "check": "human", "evidence": { "grade": "A", "source": "doc1:232", "quote": "想要主角脸一致但没传图" }, "rationale": "R6-C1 裁决落点:232 的作用域是外观锁定类职责,此场景正是其唯一合法适用域", "points": 5, "veto": true }, + { "id": "VB1", "track": "clarify", "dim": "CL1", "text": "反问范围仅限该人物参考图,实验室/动作/调性/时长不得进问全清单", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(构造性裁决)" }, "rationale": "范围纪律域,同 TS-46 VB1", "points": 5 }, + { "id": "VB2", "track": "clarify", "dim": "CL1", "text": "三选项给齐:补传 / 改文字描述该职责(并明示文字无法保证身份一致)/ 豁免锁脸诉求", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(选项集为构造)" }, "rationale": "锁脸场景的『文字替代』选项必须附带技术边界说明,否则等于默认可锁定", "points": 5 }, + { "id": "VB5", "track": "prompt", "dim": "D8", "text": "其余职责照常推进:实验室场景/白衬衫/动作/调性/时长在交付件中落位(或显式预置),不为等图全文不出", "check": "human", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(构造性裁决)" }, "rationale": "部分推进纪律", "points": 5 } + ], + "expected_score_hint": "限定反问 + 部分推进 ≈90;整单拒跑 → CAP-V6a(≤40);编造脸续跑 → CAP-V6a", + "input_delivered_fields": ["raw_brief", "asset_menu"] + }, + { + "id": "TS-48", + "usecase": "B(点名素材缺失 · 对抗 trap:整单 clarify)", + "mode": "Ref2VA(部分素材)", + "difficulty": "困难", + "expected_outcome": "prompt + 限定反问", + "scoring_track": "对抗判别样本(预期落 clarify 轨后 CL1=0)", + "asset_menu": [ + { "order": 1, "id": "scene_night", "type": "image", "role": "夜景场景参考", "url": null, "note": "【未到达:用户点名『参考图2』但未收到】" } + ], + "raw_brief": "10 秒视频,参考图2 是霓虹街道的场景图:一只黑猫踩着湿漉漉的街道穿过霓虹倒影,跳上垃圾桶,回头看镜头。赛博朋克风,紫粉色调,10 秒。", + "adversarial_output": "收到。为了确保准确交付,请先补充以下信息:1)主角黑猫的外观特征(毛色/眼睛/体型);2)街道的具体样子和垃圾桶位置;3)黑猫跳上垃圾桶的具体动作;4)您期望的情绪基调;5)确切的时长;6)参考图2 请重新上传。补齐后我再开始。", + "why_this_scenario": "整单 clarify 对抗:brief 已把主体(黑猫)、场景(霓虹街道/湿漉漉)、动作(穿街/跳桶/回头)、风格、时长全部给足,唯一缺的是被点名的图2。该输出把 5 个不存在的事实缺口和 1 个素材缺口打包问全 = VB1 违规最高档(CL1=0)+ VD1 过度反问。", + "self_check": { + "computed_score": 41, + "calculation": "改判 clarify 轨:CL1=0(范围违规最高档,benchmark_v6 §4.2 增补 1)+ CL2=25(未编造)+ CL3=8 + CL4=8(锁定复述不完整)= 41", + "expected": "低分(clarify 逐场景达标线 85,gap 44)" + }, + "criteria": [ + { "id": "VB1", "track": "clarify", "dim": "CL1", "text": "整单问全清单出现在『点名素材缺失』场景 → CL1 = 0", "check": "human", "evidence": { "grade": "C", "source": "R6-C2 + benchmark_v6.md §4.2 增补 1", "quote": "(构造性裁决)" }, "rationale": "不是『多问了可推断项』的 ≤20 档,而是把无缺口问成有缺口的最高档范围违规", "points": 0 }, + { "id": "VC4", "track": "clarify", "dim": "CL1", "text": "1)-5) 各项回指不到 raw_brief 的事实缺口 → 逐项越域判罚", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "总闸判据逐项适用", "points": 0 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu", "adversarial_output"] + }, + { + "id": "TS-49", + "usecase": "B(点名素材缺失 · 对抗 trap:整单拒跑)", + "mode": "Ref2VA(部分素材)", + "difficulty": "困难", + "expected_outcome": "prompt + 限定反问", + "scoring_track": "对抗判别样本(预期 CAP-V6a 压顶)", + "asset_menu": [ + { "order": 1, "id": "scene_night", "type": "image", "role": "夜景场景参考", "url": null, "note": "【未到达】" } + ], + "raw_brief": "同 TS-48 brief。", + "adversarial_output": "本单的参考图2 未提供,按规范『必需素材不可用且无替代 → 停止生成正式 Prompt』,本次交付阻塞报告:无法完成该需求,请补齐素材后重试。(全文无 Prompt)", + "why_this_scenario": "整单拒跑对抗:误引 §1.2 单素材职责级阻塞条款做整单否决。场景风格职责可文字替代(doc2:101),§1.2 的适用前提(任务必须依赖该素材且无替代)不成立 → B1 阻塞理由在输入侧无据 = 0,改判 + CAP-V6a。这是 v5 轨别纪律与 V-B 域的交叉判别。", + "self_check": { + "computed_score": 40, + "calculation": "改判 prompt 轨:零正式交付,各维 1/5 底档 → 20;CAP-V6a 压顶 → min(20,40)=20(block 轨口径 B1=0 起算同理 ≤40)。取更严口径 40 上限内实得 20", + "expected": "低分(任一轨达标线 85/90,gap ≥45)" + }, + "criteria": [ + { "id": "VD3", "track": "any", "dim": "CAP", "text": "点名素材缺失 → 整单拒跑 = CAP-V6a,与整单 clarify 同罚", "check": "mechanical", "evidence": { "grade": "C", "source": "R6-C2", "quote": "(构造性裁决)" }, "rationale": "三种表现是同一范围违规,不允许梯度错觉", "points": 0, "veto": true }, + { "id": "VB3", "track": "prompt", "dim": "D7", "text": "『必需素材不可用』的判定在输入侧无据(场景可文字替代)→ B1 = 0", "check": "human", "evidence": { "grade": "A", "source": "doc2:101", "quote": "关键帧任务的风格应从参考图中提取;T2VA 则根据用户文字选择。" }, "rationale": "v5 §6.3 增补 1『B1 理由必须有输入侧据』的纠偏域适用", "points": 0 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu", "adversarial_output"] + }, + { + "id": "TS-50", + "usecase": "C(主体事实缺失才反问 · 主体身份)", + "mode": "待定(信息不足)", + "difficulty": "中等", + "expected_outcome": "clarify", + "scoring_track": "clarify 轨(CL1-CL5)", + "raw_brief": "帮我做一个手办开箱视频,8 秒,桌上打光那种,要有拆盒的仪式感。", + "why_this_scenario": "用例 C 保留域:开哪个手办完全没说——主体身份是真事实缺口,无官方『文字可自行建立』通道(doc1:222 的『建立主体』指无特定指称的原创主体)。**纠偏不放松本域**:§8.1 一次问全是唯一合规路径。注意本场景与 TS-44 的边界:TS-44 文字给足了外观,本场景连『是什么』都没有。", + "criteria": [ + { "id": "VC1", "track": "clarify", "dim": "CL1", "text": "主体身份缺失 → §8.1 一次问全(手办是哪个/外观特征/拆盒动作/桌面场景/基调/时长/对白)", "check": "human", "evidence": { "grade": "现网", "source": "SKILL.md:184", "quote": "「开箱视频」没说开哪个手办、主角是谁没给身份特征,都属核心主体未知。" }, "rationale": "现网正确域原样保留,本轮零放松(benchmark_v6 §五 V-C 域声明)", "points": 5 }, + { "id": "VC2", "track": "clarify", "dim": "CL2", "text": "不编造手办种类与外观续跑", "check": "human", "evidence": { "grade": "现网", "source": "agent.md:69", "quote": "不要替用户编造主体外观" }, "rationale": "显式授权/沉默均不构成主体事实", "points": 5 }, + { "id": "VCA-guard", "track": "clarify", "dim": "CL1", "text": "反问清单不得包含『有无参考素材』——本场景的正确反问理由是主体事实,不是素材存在性;即使问了素材项也不得以其为阻塞理由", "check": "human", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "防纠偏过头:本域该问的是手办是哪个,不是图有没有(SKILL.md:546 CL1 必问项的执行张力在此收口,benchmark_v6 §4.2 增补 3)", "points": 5 } + ], + "input_delivered_fields": ["raw_brief"] + }, + { + "id": "TS-51", + "usecase": "C(主体事实缺失才反问 · 必需 UI 文案)", + "mode": "待定(信息不足)", + "difficulty": "中等", + "expected_outcome": "clarify", + "scoring_track": "clarify 轨(CL1-CL5)", + "raw_brief": "做一个 12 秒的生产环境后台系统的功能演示分镜视频,要有登录页和主操作界面的 UI 展示,科技蓝风格。", + "why_this_scenario": "用例 C 保留域第二支:生产级 UI 的菜单项/按钮文案是真事实缺口(四禁令禁止自创菜单项)。与 V-A 的边界核对:UI 文案不是『素材』,不适用『文字替代』——字符串集合只能来自用户。", + "criteria": [ + { "id": "VC2", "track": "clarify", "dim": "CL1", "text": "必需 UI 文案缺失 → 反问(每屏菜单项/按钮集合及中英文案)", "check": "human", "evidence": { "grade": "现网", "source": "SKILL.md §1.1 硬门(必需 UI 文案缺失 → 反问)", "quote": "(现网条款)" }, "rationale": "正确域保留", "points": 5 }, + { "id": "VC3", "track": "clarify", "dim": "CL2", "text": "不自创菜单字符串续跑", "check": "mechanical", "evidence": { "grade": "现网", "source": "SKILL.md §1.1 四禁令", "quote": "(现网条款)" }, "rationale": "同上", "points": 5 } + ], + "input_delivered_fields": ["raw_brief"] + }, + { + "id": "TS-52", + "usecase": "A/D-D(过度反问 trap:零素材被拿去问)", + "mode": "T2VA", + "difficulty": "中等", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨(反向判别:对抗策略会触发改判 clarify)", + "raw_brief": "6 秒短视频:一只柴犬在雨后人行道上踩水洼,0-2 秒大全景街道,2-4 秒中景四脚踩水溅水花,4-6 秒特写甩毛。柴犬是圆脸短毛、奶油色、戴红色项圈,日系动画风,暖色调。", + "adversarial_output": "收到。在开始前请确认:1)是否有参考素材(图/视频/音频、各自负责什么)?2)柴犬的具体长相是否有指定?3)水花的形态偏好?补齐后我立即开始。", + "why_this_scenario": "D-D 过度反问 trap:brief 已给足主体外观/场景/动作/风格/时长,素材集合为空。问项 1 正是 SKILL.md:546 CL1 清单里的『必问项』——本场景判它违规,收口 G4 执行张力;问项 2/3 同样回指不到事实缺口(外观已给足、水花属可推断细节)。", + "criteria": [ + { "id": "VD1", "track": "clarify", "dim": "CL1", "text": "素材集合为空且文字已给足 → 『有无参考素材』不得作为发问项 → 改判 clarify 轨时 CL1 ≤ 20", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "benchmark_v6 §4.2 增补 3 对 SKILL.md:546 CL1 必问项的范围限定", "points": 0 }, + { "id": "VC4", "track": "clarify", "dim": "CL1", "text": "2)/3) 回指不到事实缺口 → 逐项越域", "check": "human", "evidence": { "grade": "A", "source": "doc1:222", "quote": "不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。" }, "rationale": "总闸判据逐项适用", "points": 0 }, + { "id": "VA2", "track": "any", "dim": "CAP", "text": "正确响应 = 直接产出(T2VA + 无素材声明);只问不产出 → CAP-V6a", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:237", "quote": "【参考素材说明】无参考素材(纯文字生成视频)。" }, "rationale": "与 v5 TS-35 同构的对抗设计:正确行为是产出而非澄清", "points": 5, "veto": true } + ], + "expected_score_hint": "合规直出 ≈95;对抗 always-clarify → 改判后 CL1≤20,总分 ≈60-68(低于达标线)", + "input_delivered_fields": ["raw_brief", "adversarial_output"] + }, + { + "id": "TS-53", + "usecase": "D-D(过度阻塞 trap:有图却拒写)", + "mode": "Ref2VA(素材可用)", + "difficulty": "困难", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨(反向判别样本)", + "asset_menu": [ + { "order": 1, "id": "sneaker_ref", "type": "image", "role": "球鞋产品参考", "url": "/h3_v6_ts53/sneaker.png", "note": "可直接用。" }, + { "order": 2, "id": "studio_bg", "type": "image", "role": "影棚背景参考", "url": "/h3_v6_ts53/studio.png", "note": "可直接用。" } + ], + "raw_brief": "8 秒球鞋广告:参考图1 的球鞋在参考图2 的影棚转台上旋转展示,背景扫过一道白光,最后定格正面。高级感,冷白调。", + "adversarial_output": "本单主角球鞋未提供独立的外观锁定参考图,主体外观无法确认,按硬门『核心主体未知』处理:请补充球鞋的专属参考图后再继续。(未产出 Prompt;但菜单里明明有图1)", + "why_this_scenario": "D-D 过度阻塞 trap:两份素材都在且 note 可用,却宣称『主体无参考图』拒写。这是本轮训错的对称面(v5 §6.3 增补 2 的纠偏域特化)。素材可用却报死 = VD2 + B1 无据 = 0 + CAP-V6a。", + "criteria": [ + { "id": "VD2", "track": "any", "dim": "CAP", "text": "素材可用却以『主体无参考图』拒写 = 过度阻塞 → 改判 + CAP-V6a + B1=0", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:35", "quote": "无图片输入时为文生视频模式" }, "rationale": "『无图拒跑』在素材在场时的荒谬性可直接机械判定", "points": 0, "veto": true }, + { "id": "RG2", "track": "prompt", "dim": "D7", "text": "正确响应:两份素材逐条预检、url 逐字入资产层、按菜单顺序认领", "check": "mechanical", "evidence": { "grade": "现网", "source": "SKILL.md §1.2 / §9", "quote": "(现网条款)" }, "rationale": "回归判据:纠偏不得损害正常素材单的预检纪律", "points": 5 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu", "adversarial_output"] + }, + { + "id": "TS-54", + "usecase": "A(R6-C3 判别:纯文字任务类型标记)", + "mode": "T2VA", + "difficulty": "中等", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式(判别样本)", + "raw_brief": "做一条 5 秒的纯文字视频:深夜便利店门口,一只白猫坐在关东煮的蒸汽后面,眼睛反光。无声,冷蓝调。", + "why_this_scenario": "R6-C3 判别:纯文字交付免任务类型标记。两条判别支:(a) 交付无标记 → 不扣分(哪怕评分模板里有标记字段);(b) 交付标了 `[video editing]` / `[audio reuse]` 等素材类标记 → D1 档 1 + CAP-V6b(上限 75),因为六类型选型函数以素材存在为定义域,无素材标素材类类型 = 无中生有的素材主张。", + "criteria": [ + { "id": "R6C3-pos", "track": "prompt", "dim": "D9", "text": "纯文字交付缺任务类型标记 → 0 扣分(不判格式违规)", "check": "mechanical", "evidence": { "grade": "R", "source": "doc2:367-380(R6-C3 推演锚点,Case 1 见 doc2:180-190)", "quote": "根据参考素材在目标视频中的实际作用选择任务类型" }, "rationale": "选型函数输入是素材,空集无定义域;官方 T2VA 示例本身零标记", "points": 5 }, + { "id": "R6C3-neg", "track": "prompt", "dim": "D1", "text": "纯文字交付标注素材类任务类型标记 → 违规,CAP-V6b(上限 75)", "check": "mechanical", "evidence": { "grade": "C", "source": "R6-C3", "quote": "(构造性裁决)" }, "rationale": "标记即素材主张,比缺声明严重;判据方向是防多标不是防缺标(doc2『素材中存在视频或音频并不自动产生对应类型』)", "points": 0 } + ], + "input_delivered_fields": ["raw_brief"] + }, + { + "id": "TS-55", + "usecase": "B(R6-C1 判别:232 作用域边界对)", + "mode": "判别样本(两支同 brief 骨架)", + "difficulty": "困难", + "expected_outcome": "分支 1 = 限定反问;分支 2 = 直接产出", + "scoring_track": "判别样本(两支分别计分,禁合并)", + "raw_brief_branch_1": "做一条 8 秒口播,主角的脸要和我上传的那张照片里的女生一模一样,她在咖啡店举起一杯拿铁微笑。明亮暖调。", + "asset_menu_branch_1": [{ "order": 1, "id": "face_ref", "type": "image", "role": "人物照片(锁脸)", "url": null, "note": "【未到达】" }], + "raw_brief_branch_2": "做一条 8 秒口播,主角是个穿米色毛衣的短发女生,在咖啡店举起一杯拿铁微笑。明亮暖调。", + "asset_menu_branch_2": [], + "why_this_scenario": "R6-C1 边界判别:唯一差异是『和照片里的人一模一样』vs『文字给定外观』。前者属外观锁定类职责、素材未到达 → 仅就该素材限定反问(VB4);后者是文字已锁定的原创主体、素材集合为空 → 直接 T2VA 产出(VA 域)。把分支 2 判成需要传图 = 引用 doc1:232 越域 = 本轮训错本体。", + "criteria": [ + { "id": "R6C1-b1", "track": "any", "dim": "CAP", "text": "分支 1:『一模一样』+ 图未到达 → 限定反问该图;编造外观续跑或整单拒跑 → CAP-V6a", "check": "human", "evidence": { "grade": "A", "source": "doc1:232", "quote": "想要主角脸一致但没传图" }, "rationale": "R6-C1 收口后 232 的唯一合法适用域", "points": 5, "veto": true }, + { "id": "R6C1-b2", "track": "any", "dim": "CAP", "text": "分支 2:文字已给定外观 → 直接 T2VA 产出;以『没有参考图』为由反问/拒跑 → CAP-V6a", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:222", "quote": "不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。" }, "rationale": "232 越域引用的判 0 档——本轮训错的最小可复现形态", "points": 5, "veto": true } + ], + "input_delivered_fields": ["raw_brief_branch_1", "asset_menu_branch_1", "raw_brief_branch_2", "asset_menu_branch_2"] + }, + { + "id": "TS-56", + "usecase": "回归(url 逐字保真,v0.6.1 热修域)", + "mode": "Ref2VA(多素材)", + "difficulty": "中等", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式", + "asset_menu": [ + { "order": 1, "id": "watch_hero", "type": "image", "role": "腕表产品图", "url": "/h3_v6_ts56/watch_hero.png", "note": "" }, + { "order": 2, "id": "watch_macro", "type": "image", "role": "表冠微距", "url": "/h3_v6_ts56/watch_macro.png", "note": "" } + ], + "raw_brief": "10 秒腕表广告:参考图1 的腕表在黑丝绒上缓转,切参考图2 的表冠微距,最后回到全景定格。金属冷光,无台词,配低频钟摆声。", + "why_this_scenario": "回归防训丢:conv-mtekh2km 打穿的 url 失联缺口的回归样本(v0.6.1 热修域)。纠偏训练不得让 url 逐字保真能力退化——每条 url 在交付件资产层逐字出现、顺序=菜单顺序、不重排不改写不占位符化。沿用 `` 占位符惯例。", + "criteria": [ + { "id": "RG-url", "track": "prompt", "dim": "D7", "text": "每条 url 在交付件中逐字出现、顺序=菜单顺序、零改写零占位符化", "check": "mechanical", "evidence": { "grade": "现网", "source": "SKILL.md §9 资产层清单 + train/evolve/evolve_report_v5_hotfix_url.md", "quote": "(现网条款)" }, "rationale": "v5 轮实证的生产打穿点,回归义务", "points": 5 }, + { "id": "RG-sound", "track": "prompt", "dim": "D3", "text": "低频钟摆声落 overall_soundscape,non_diegetic_music 显式 N/A(无配乐)", "check": "human", "evidence": { "grade": "A", "source": "doc2:162", "quote": "概括贯穿整段视频的环境声" }, "rationale": "v5 H10 沿用", "points": 5 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu"] + }, + { + "id": "TS-57", + "usecase": "回归(窗式 + H16 分镜参考图映射镜头)", + "mode": "Ref2VA(分镜时间窗)", + "difficulty": "困难", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式(② 窗式)", + "asset_menu": [ + { "order": 1, "id": "sb_1", "type": "image", "role": "分镜参考图 1(对应窗 1)", "url": "/h3_v6_ts57/sb1.png", "note": "" }, + { "order": 2, "id": "sb_2", "type": "image", "role": "分镜参考图 2(对应窗 2)", "url": "/h3_v6_ts57/sb2.png", "note": "" }, + { "order": 3, "id": "sb_3", "type": "image", "role": "分镜参考图 3(对应窗 3)", "url": "/h3_v6_ts57/sb3.png", "note": "" } + ], + "raw_brief": "12 秒分镜视频:宇航员在空间站舷窗前漂浮。窗1(0-4秒)大全景舱内与地球背景,窗2(4-8秒)中景他伸手触碰舷窗,窗3(8-12秒)特写面罩里的倒影。三张分镜参考图分别对应三个窗。科幻写实。", + "why_this_scenario": "回归防训丢:H16(分镜参考图映射到镜头/窗而非秒数)+ 窗式结构 + 素材逐窗认领 + 幽灵禁令。分镜类素材单是纠偏域之外最大的既有能力面,抽 1 条代表性回归。", + "criteria": [ + { "id": "RG-H16", "track": "prompt", "dim": "D1", "text": "三张分镜图各认领一个窗(映射到镜头/窗),零秒级对齐、零幽灵素材", "check": "mechanical", "evidence": { "grade": "A", "source": "doc2:310(v5 H16)", "quote": "(v5 判据 #29 / H16 沿用,出处 benchmark_v5.md §五 H16)" }, "rationale": "纠偏不得损害分镜认领能力", "points": 5 }, + { "id": "RG-window", "track": "prompt", "dim": "D2", "text": "窗标题 [0 秒-4 秒]/[4 秒-8 秒]/[8 秒-12 秒] 覆盖 0→总时长、相邻相接、窗内零 At MM:SS.mmm", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:97 + benchmark_v5.md C-1 裁决(b)", "quote": "(v5 C-1 分层裁决沿用)" }, "rationale": "窗式边界可核对是 ② 形态的核心义务", "points": 5 }, + { "id": "RG-three", "track": "prompt", "dim": "D2", "text": "每窗三要素(机位/运镜 + 主体动作 + 覆盖元素)+ 声音落点", "check": "human", "evidence": { "grade": "A", "source": "doc1:97", "quote": "(各窗首行景别字段,v5 SS2 沿用)" }, "rationale": "v5 SS2 沿用", "points": 5 } + ], + "input_delivered_fields": ["raw_brief", "asset_menu"] + }, + { + "id": "TS-58", + "usecase": "回归(台词逐字 + [unclear])", + "mode": "T2VA(双说话人)", + "difficulty": "中等", + "expected_outcome": "prompt", + "scoring_track": "prompt 轨 · 单件模式", + "raw_brief": "8 秒对话视频,便利店门口。男生递过一把伞说:「拿去吧,我还有 Umbrell@ 备用。」女生接过说:「那[unclear],明天还你。」雨天,霓虹倒影,无素材。", + "why_this_scenario": "回归防训丢:台词逐字保真(含 `Umbrell@` 异写字串原样、`[unclear]` 不猜测改写)+ 无素材单的 V-A 域叠加(本单同时是纯文字直出场景——纠偏域与台词域的交叉回归)。同时验证纯文字模式下台词纪律不被『无图』叙事干扰。", + "criteria": [ + { "id": "RG-verbatim", "track": "prompt", "dim": "D5", "text": "台词逐字进 :`Umbrell@` 原样保留不『纠正』为 Umbrella;`[unclear]` 原样保留不猜测改写", "check": "mechanical", "evidence": { "grade": "A", "source": "doc2:575", "quote": "不猜测或改写" }, "rationale": "v5 H7 沿用;纠偏单同样必须过台词保真", "points": 5 }, + { "id": "RG-VA-cross", "track": "prompt", "dim": "D7", "text": "本单零素材 → 同时适用 V-A 域:T2VA 直出 + 无参考素材声明,不得以无图为由反问", "check": "mechanical", "evidence": { "grade": "A", "source": "doc1:237", "quote": "【参考素材说明】无参考素材(纯文字生成视频)。" }, "rationale": "交叉回归:纠偏域与既有台词域不互斥", "points": 5 } + ], + "input_delivered_fields": ["raw_brief"] + } + ], + "coverage_summary": { + "scenario_count": 15, + "id_range": "TS-44 ~ TS-58(接续 v5 的 TS-01~43;v5 全部场景继续有效)", + "usecase_A": ["TS-44", "TS-45", "TS-52", "TS-54", "TS-55(branch_2)", "TS-58(交叉)"], + "usecase_B": ["TS-46(可文字替代)", "TS-47(锁脸不可替代)", "TS-48", "TS-49", "TS-55(branch_1)"], + "usecase_C": ["TS-50", "TS-51", "v5:TS-36 沿用"], + "adversarial_traps": { + "无图拒跑": ["TS-45"], + "整单拒跑": ["TS-49"], + "整单clarify/过度反问": ["TS-48", "TS-52"], + "有图拒写": ["TS-53"] + }, + "rulings_covered": { "R6-C1": ["TS-47", "TS-55"], "R6-C2": ["TS-46", "TS-47", "TS-48", "TS-49"], "R6-C3": ["TS-54"] }, + "regression": { "url_逐字保真": "TS-56", "窗式_H16_素材认领": "TS-57", "台词逐字_unclear": "TS-58", "v5_沿用": "TS-01~43 全部继续有效" }, + "self_check_bad_samples": ["TS-45(20 分)", "TS-48(41 分)", "TS-49(20-40 分)"], + "provenance_discipline_note": "全部 url 均为 占位符(与 v3/v5 惯例一致);adversarial_output 为本轮构造的真实失败路径输出,非任何 agent 实跑记录;引用行号均经 verify_digest_v6.py 逐字回查。" + } +} diff --git a/system/agents/h3-video-prompt/train/digest/verify_digest_v6.py b/system/agents/h3-video-prompt/train/digest/verify_digest_v6.py new file mode 100644 index 0000000..eccdf71 --- /dev/null +++ b/system/agents/h3-video-prompt/train/digest/verify_digest_v6.py @@ -0,0 +1,132 @@ +#!/usr/bin/env python3 +"""verify_digest_v6.py — 纠偏 Retrain v6 交付自检(dream 纪律:引用核对走脚本全量断言,不抽样)。 + +核对口径(逐项打印,便于分辨每条结论用哪种口径验出): + C1 sources_v6.json 全部 citations 逐字回查 cache_v5(quote / also_on_same_line / also_on_same_line_2) + C2 test_scenarios_v6.json 判据 evidence.source 中的每个 docN:line 在对应文档行数范围内 + C3 benchmark_v6.md / industry_avg_v6.md 正文中出现的每个 docN:line 同上(全量,非抽样) + C4 交付物中引用的判据关键引文逐字在所指行内(抽查判据表里带 quote 的全部条目) + C5 现网锚点(SKILL.md:184/:369/:546/:570、agent.md:46-48/:69)逐字核对 + C6 test_scenarios_v6.json 结构校验:criteria 字段齐、check 枚举合法、覆盖硬标准(A≥2、B≥2 且 + 可替代/锁脸各≥1、C≥1、三类 trap 齐、回归≥2)、TS 编号与 v5 不冲突、未覆盖任何 v5 文件 + C7 自检算式可复算(TS-45 / TS-48 的加和) +""" +import json, os, re, sys + +BASE = "/app/system/agents/h3-video-prompt" +CACHE = os.path.join(BASE, "train/hunt/cache_v5") +DIGEST = os.path.join(BASE, "train/digest") +DOC_FILES = { + "doc1": "feishu_doc1_H3使用手册_FIWjwgL33ipnkekzk30crmKUnIh.md", + "doc2": "feishu_doc2_Prompt写作全能指南_Vztzwstuqi3MQKkxs8QcGmxinxe.md", +} +fails = [] +def ok(cond, label): + print(("PASS " if cond else "FAIL ") + label) + if not cond: + fails.append(label) + +docs = {k: open(os.path.join(CACHE, f), encoding="utf-8").read().split("\n") + for k, f in DOC_FILES.items()} + +def line_text(doc, ref): + lo = int(ref.split(":")[1].split("-")[0]) + hi = int(ref.split(":")[1].split("-")[-1]) + return "".join(docs[doc][lo - 1:hi]), lo, hi + +# C1 +src = json.load(open(os.path.join(CACHE, "..", "sources_v6.json"), encoding="utf-8")) +n = misses = 0 +for c in src["citations"]: + if c["ref"].split(":")[0] not in docs: + continue + text, lo, hi = line_text(c["ref"].split(":")[0], c["ref"]) + for key in ("quote", "also_on_same_line", "also_on_same_line_2"): + q = c.get(key) + if q: + n += 1 + if q not in text: + misses += 1 + print(" C1 miss:", c["id"], key, repr(q[:50])) +ok(misses == 0, f"C1 sources_v6 citations verbatim ({n} quotes, {misses} miss)") + +# C2/C3/C4 +REF = re.compile(r"\bdoc[12]:\d+(?:-\d+)?") +deliverables = { + "benchmark_v6.md": open(os.path.join(DIGEST, "benchmark_v6.md"), encoding="utf-8").read(), + "test_scenarios_v6.json": open(os.path.join(DIGEST, "test_scenarios_v6.json"), encoding="utf-8").read(), + "industry_avg_v6.md": open(os.path.join(DIGEST, "industry_avg_v6.md"), encoding="utf-8").read(), +} +bad = [] +for fname, body in deliverables.items(): + for ref in sorted(set(REF.findall(body))): + d, rng = ref.split(":") + lo = int(rng.split("-")[0]); hi = int(rng.split("-")[-1]) + if d not in docs or lo < 1 or hi > len(docs[d]) or lo > hi: + bad.append((fname, ref, "out of range")) +total = sum(len(set(REF.findall(b))) for b in deliverables.values()) +ok(not bad, f"C2/C3 all docN:line refs in range ({total} refs) " + str(bad)) + +ts = json.load(open(os.path.join(DIGEST, "test_scenarios_v6.json"), encoding="utf-8")) +quoted = [] +for s in ts["scenarios"]: + for c in s.get("criteria", []): + q = (c.get("evidence") or {}).get("quote") + ref = (c.get("evidence") or {}).get("source") or "" + m = re.match(r"(doc[12]):(\d+(?:-\d+)?)", ref) + if q and m and not q.startswith("("): + quoted.append((c["id"], m.group(1), m.group(2), q)) +badq = [] +for cid, d, ln, q in quoted: + t, lo, hi = line_text(d, f"{d}:{ln}") + if q not in t: + badq.append((cid, f"{d}:{ln}", q[:40])) +ok(not badq, f"C4 criteria quotes verbatim at cited line ({len(quoted)} checked) " + str(badq)) + +# C5 +sk = open(os.path.join(BASE, ".claude/skills/main_skill/SKILL.md"), encoding="utf-8").read().split("\n") +ag = open(os.path.join(BASE, "agent.md"), encoding="utf-8").read().split("\n") +ok("核心主体未知" in sk[183], "C5 SKILL.md:184 硬门措辞") +ok("没有 → T2VA" in sk[369], "C5 SKILL.md:370 决策树纯文字分支") +ok("有无参考素材" in sk[545], "C5 SKILL.md:546 CL1 素材问项") +ok("资产层清单" in sk[569], "C5 SKILL.md:570 §9 资产层") +ok("核心主体未知" in "".join(ag[45:48]), "C5 agent.md:46-48 扩张源头句") +ok("不要替用户编造主体外观" in ag[68], "C5 agent.md:69") + +# C6 +REQ = {"id", "track", "dim", "text", "check", "evidence", "rationale"} +scen = ts["scenarios"] +badf = [c["id"] for s in scen for c in s.get("criteria", []) + if not REQ <= set(c) or c["check"] not in ("mechanical", "human")] +ok(not badf, "C6 criteria schema fields + check enum " + str(badf)) +ids = {s["id"] for s in scen} +ok(all(int(i.split("-")[1]) >= 44 for i in ids), "C6 TS ids start at 44 (no v5 collision)") +def find(i): + return next(s for s in scen if s["id"] == i) +def find_by_id(i): + return find(i) +ua = ["TS-44", "TS-45", "TS-52", "TS-54", "TS-58"] +ub_sub = [s for s in scen if "可文字替代" in s["usecase"]] +ub_lock = [s for s in scen if "锁脸" in s["usecase"]] +uc = ["TS-50", "TS-51"] +adv = [s for s in scen if "adversarial_output" in s] +reg = [s for s in scen if s["usecase"].startswith("回归")] +ok(len(ua) >= 2 and all(i in ids for i in ua), "C6 用例A ≥2 (纯文字直出)") +ok(len(ub_sub) >= 1 and len(ub_lock) >= 1, "C6 用例B ≥2 且 可替代/锁脸 各≥1") +ok(all(i in ids for i in uc), "C6 用例C ≥1") +traps = {"无图拒跑": "TS-45", "整单拒跑": "TS-49", "过度反问": "TS-48", "有图拒写": "TS-53"} +ok(all(t in ids for t in traps.values()), "C6 反向 trap 四类齐 + 覆盖真实失败路径(内嵌 adversarial_output)") +ok(len(adv) >= 3, f"C6 对抗输出场景 ≥3 (实际 {len(adv)})") +ok(len(reg) >= 2, "C6 回归场景 ≥2(防纠偏训丢)") +ok(os.path.exists(os.path.join(DIGEST, "benchmark_v5.md")) and + open(os.path.join(DIGEST, "benchmark_v5.md"), encoding="utf-8").read()[:200] != "", "C6 v5 文件未被覆盖(仍存在)") + +# C7 +sc45 = 4 + 2 + 2 + 12 +ok(min(sc45, 40) == 20 and find_by_id("TS-45")["self_check"]["computed_score"] == 20, + "C7 TS-45 自检算式复算 = 20(CAP-V6a=40 内取 20)") +sc48 = 0 + 25 + 8 + 8 +ok(sc48 == find_by_id("TS-48")["self_check"]["computed_score"] == 41, "C7 TS-48 自检算式复算 = 41") + +print("\nRESULT: " + ("ALL PASS" if not fails else "%d FAILURES: %s" % (len(fails), fails))) +sys.exit(1 if fails else 0) diff --git a/system/agents/h3-video-prompt/train/evolve/agent_md_patch_v6.md b/system/agents/h3-video-prompt/train/evolve/agent_md_patch_v6.md new file mode 100644 index 0000000..e6f67b9 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/agent_md_patch_v6.md @@ -0,0 +1,49 @@ +# agent_md_patch_v6 — agent.md 候选修订(G6/G7,T-mtlcior6) + +> 性质:**候选件,未部署**。目标文件 `/app/system/agents/h3-video-prompt/agent.md`(基线 sha256 +> `4f8067875096ec22d80fe759a8ff572a982224ef2c00a22b6c5dc1eeeff6d883`,快照 +> `train/evolve/_v6_artifacts/baseline_snapshot/agent_v0.6.1.snapshot.md`)。 +> 由 org-innovator 验收后统一 Deploy。本轮 SKILL_v6 已部署生效的前提下,本补丁消除 agent.md 层 +> 对同一训错的复述源(knowhow_v6 G6/G7:三句连排共用「阻塞/反问」语气,下游按此复述时最易把 +> 「必需素材不可用」扩张成「无素材即不可用」——这正是本轮已发生的训错方向)。 + +## Patch 1 — L46-48(训练状态段「最重要的行为」段前,G6) + +**现状(L46-48)**: + +> **最重要的行为(v0.3.0 起沿用,v5 经 §1.1 硬门收紧)**:必需素材不可用且无替代 → **停止生成正式 +> Prompt,按指定格式报告阻塞**(B1-B5 五要素);核心主体未知 / 必需 UI 文案缺失 → 反问为唯一合规 +> 路径,**用户的显式授权(你们定/看着办)不构成主体事实**。block 判定不走"N/A 冲高分"路径。 + +**改为**(正命题前置 + 阻塞/反问条款的作用域各归其位): + +> **最重要的行为(v0.7.0 纠偏 v6 修订)**:**纯文字模式(无参考素材的 T2VA/L2VA)是合法、被官方 +> 命名、有完整交付形态的独立交付模式——参考素材的有无只决定走哪个模式分支,不构成拒跑理由** +> (A:doc1:35「无图片输入时为文生视频模式」、doc1:222「不依赖任何参考素材,直接根据你的文字提示词 +> 建立主体、场景、动作」;无素材时把主体外观/场景细节/动作/风格四要素用文字写足,显式声明 +> 「【参考素材说明】无参考素材(纯文字生成视频)。」直接交付)。在素材齐备的前提下,阻塞与反问 +> 条款才各自生效:必需素材不可用且无替代 → **停止生成正式 Prompt,按指定格式报告阻塞**(B1-B5 +> 五要素);**核心主体未知 / 必需 UI 文案缺失**(主体事实缺失,不是素材缺位)→ 反问为唯一合规 +> 路径,**用户的显式授权(你们定/看着办)不构成主体事实**。用户点名某份素材未到达 → 不整单反问/ +> 拒跑,仅就该素材限定反问(补传 / 文字替代 / 豁免,SKILL §8.1b)。block 判定不走"N/A 冲高分" +> 路径,**也不得把「没有参考图」当成阻塞理由**。 + +## Patch 2 — L69(职责 §1 收集必要信息段,G7) + +**现状(L69)**: + +> **核心主体或场景未知时优先一次性问全,不要替用户编造主体外观**(见 SKILL §1.1 硬门 / §8.1 clarify 五要素); + +**改为**(加「文字已给足 → 不问」出口): + +> **核心主体或场景未知时优先一次性问全,不要替用户编造主体外观**(见 SKILL §1.1 硬门 / §8.1 clarify 五要素); +> **文字已给足 → 不问**:用户已用文字写清主体外观/场景/动作时,这些项不得进反问清单—— +> 「有没有参考素材」只在用户点名了素材、或诉求属外观锁定类(要求与某人/某 IP 形象脸一致)时才可问, +> 素材集合为空本身就是纯文字模式的合法输入,直接产出。 + +## 一致性 + +- 本补丁与 SKILL_v6.md §1.1 作用域钉死 / §1.2 入口分支 / §8.1 CL1 收口 / §8.1b / §9 无素材交付物 + 逐条同源,措辞不冲突。 +- 不改动 agent.md 其它任何行;不改 Never/Always Rules(L100-102 的 url 条款与本轮正交,保留)。 +- L8训练状态段的版本叙述由 org-innovator 在 Deploy 时随实际版本号更新(本补丁不代拟版本行)。 diff --git a/system/agents/h3-video-prompt/train/evolve/evolve_report_v6.md b/system/agents/h3-video-prompt/train/evolve/evolve_report_v6.md new file mode 100644 index 0000000..f2975c0 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/evolve_report_v6.md @@ -0,0 +1,111 @@ +# evolve_report_v6 — 纠偏 Retrain v6(T-mtlcior6) + +> 产出者:innovator-evolver|日期:2026-09-03|上游:T-mtlbufky(Hunt)→ Digest(benchmark_v6) +> 被改对象基线:`.claude/skills/main_skill/SKILL.md` v0.6.1(sha256 `03d8cb4f6fd6be942abd6a43aaac22c6d5472687b5d740bf86d8afdb93b53fa8`)、 +> `agent.md`(sha256 `4f8067875096ec22d80fe759a8ff572a982224ef2c00a22b6c5dc1eeeff6d883`)——快照与 +> sha256 见 `_v6_artifacts/baseline_snapshot/`。 +> **现网文件本轮零改动**:SKILL.md / agent.md / config.json 均未触碰(Deploy 由 org-innovator 统一执行); +> v1-v5 任何文件未覆盖(本轮产物全部 `_v6` 后缀或 `round_outputs_v6/`)。 + +--- + +## 一、结论(先给达标判定) + +| 轨 | 达标线 | 实测 | 判定 | +|---|---|---|---| +| A 轨 prompt(9 个生产场景均值) | ≥ 90 | **98.00**(882/9,逐场景 92~100) | ✓ | +| clarify 轨(逐场景,禁合并) | 逐场景 ≥ 85 | TS-47 **95** / TS-50 **97** / TS-51 **97** / TS-55b1 **97**(min 95) | ✓ | +| 对抗面(必须落低分,VD4) | 全部 < 85 | TS-45 **20** / TS-48 **41** / TS-49 **20** / TS-52对抗 **61** / TS-53对抗 **20** | ✓ | +| 区分度 | — | 80 / 80 / 54 / 31 / 80(正确件 vs 对抗件) | ✓ | +| 零静默引用 / 零臆造 | 必须 | 机械判据 51/51 过(`_v6_artifacts/verify_mechanical_v6.py`,FAIL=0) | ✓ | + +**3 轮收敛**(r1 基线 → r2 修订 → r3 定点修复,低于 5 轮 session 上限)。 + +## 二、候选件:SKILL_v6.md 改了什么 + +从 v0.6.1 快照生成(`_v6_artifacts/apply_v6_edits.py`,9 处替换全部带 must-count 断言,零静默失败), +基线快照 51,809 B(26,281 字符)→ **候选件 60,219 B(29,839 字符),净增 +3,558 字符 / +8,410 B**。逐条对齐任务必办 a-e: + +| 必办 | 落点 | 内容 | 缺口 | +|---|---|---|---| +| a | §1.1 硬门(v6 文件 L194-216) | **作用域钉死**:硬门判「主体事实」不判「素材存在性」;三分型——主体事实缺失(该问,用例 C)/ 参考素材缺位(不问、T2VA/L2VA 直出豁免,A:doc1:35、doc1:222,用例 A)/ 点名素材未到达(只就该素材问,用例 B);素材维度判定**推迟到 §3.1,不属硬门**;唯一例外 = 外观锁定类职责(R6-C1:doc1:232 收口为唯一合法适用域,不得推广成无图拒跑) | G1/G3 | +| b | §1.2 入口分支(L229-238) | 素材集合为空 → 逐条预检**整体跳过** + 显式声明「【参考素材说明】无参考素材(纯文字生成视频)。」(doc1:237 官方先例);并区分「集合为空」与「点名未到达」两个入口 | G2 | +| c | §8.1 CL1(L593)+ 新增 §8.1b(L603-621) | 「有无参考素材」从必问项收口为**条件问项**(仅用户点名素材 / 外观锁定类诉求时可问;违反 → CL1=0 范围违规最高档);§8.1b:范围限定 + 三选项(补传/文字替代/豁免)+ 职责分型 + 不编造续跑 + 部分推进 + 不适用 §8.2 | G4 / R6-C1 / R6-C2 | +| d | §9(L641-646) | 无素材对应交付物 = 一句显式声明(不交空清单);R6-C3 纯文字**免任务类型标记**(缺标记不扣分,标素材类标记 = 无中生有素材主张) | G5 / R6-C3 | +| e | 同轮清扫 | §7 自查清单 25→26 条(新增第 26 条「硬门越域」);§8.2 反向条款补「点名素材未到达不属本节」;§1.7 第 21 条与 R6-C3 对齐(免任何素材类标记);§3.1 决策树首行加「本问不属硬门域」交叉引用;frontmatter 版本/状态/changes 块 | — | + +**未动的部分**:九维度权重、三轨分值、v5 全部 62 条判据、H1-H16、② 型窗式、链路四层——按「判据与分值零改动」硬约束原样保留。 + +## 三、逐轮迭代(细节在 `iteration_log_v6.md` / `round_scores_v6.json` / `round_outputs_v6/`) + +**r1(基线 v0.6.1,复现训错面)**:零素材单 5/5 触发索材或拒跑(TS-44/54/58 → 41/41/41,TS-55b2 → 20, +TS-45 对抗 → 20);点名素材未到达 3/3 被整单化(TS-46 → 20 整单阻塞、TS-47 → 41 整单问全、TS-55b1 → 41)。 +素材在场路径(TS-56/57)与正确域(TS-50/51)基线本就合规(100/90/97/97)——**纠偏域失效、非纠偏域健康**, +与 benchmark_v6 §0.1 的根源定位一致。A 轨生产场景均值 63.6,未达标。 + +**r2(SKILL_v6 修订)**:A 轨 9 场景均值 98.0、clarify min 95、对抗 5 件全部落低分。机械复算器 +(51 项判据脚本化)拦下 2 处**实测缺陷**: +1. TS-57 三条 url 中两条被写成 `…/sb2.png` 缩写 → `RG-url-verbatim` 判 FAIL(**url 失联类错误,正是 + v0.6.1 热修域**,量尺抓到了)→ D7=2/5,90 分; +2. TS-46 已到达的图1 只在交付说明归因、正文零内联认领 → §1.7 第 6 条幽灵风险 → D7=3/5,96 分。 + +**r3(定点修复,retry-with-reflection)**:只改这两处(TS-46 加 `` 内联认领、TS-57 补 +JSON 资产层三条 url 逐字),其余场景零改动复测一致 → TS-46 100、TS-57 98,达标收官。 + +**保留的真实扣分(不抹平)**:TS-52 92(At 时间戳写进 [Shot 1] 内未拆 [Shot 2],H5 记号纪律)、 +TS-58 96(**画外音固定短语误用于画内对话**——递伞场景两人面对面,off-screen + 唇部闭合与画面语义矛盾, +D5=3/5)、TS-54/55b2 98(单景别未做分层写法,D6=4)、TS-50/51 97(CL4 推定项与反问项轻微重叠/冗余确认)。 + +## 四、判据缺齿登记(只登记不改,按硬约束须先报回) + +本轮**未发现需修判据的缺齿**:4 条对抗样本全部如预期落低分(benchmark_v6 §六自检的 20/41/20 全部复现), +未出现「对抗件拿高分 = 判据缺齿」情形。两条观察供 Digest 参考(非本轮改动): + +1. **CL5 计分口径漂移**:TS-48 自检算式(Digest 给出 41 = CL1 0 + CL2 25 + CL3 8 + CL4 8)未含 CL5, + 我方沿用该口径;若 CL5 参与计分,对抗件分数会上浮 15 分(41→56),仍低于 85,不影响区分度结论, + 但会影响跨轮可比性。建议 Digest 明确「对抗件的 CL5 是否默认 0」。 +2. **TS-52 的 D1 记号纪律**(正文内 `At 00:02.000` 未拆镜)在判据集中无对应判据项(属 H5 域但 + TS-52 criteria 只覆盖 VD1/VC4/VA2)——我方按 H5 自行扣档到 92。若严格按场景判据集计分应为 + 100,建议 Digest 决定回归域判据是否跨场景生效。 + +## 五、agent_md_patch_v6.md(候选,未部署) + +两处候选修订(G6/G7):L46-48 前置正命题「纯文字模式是合法独立交付模式」+ 三句阻塞/反问条款各归其位 + +「不得把没有参考图当阻塞理由」;L69 加「文字已给足 → 不问」出口(CL1 条件问项在 agent 层可见)。 +措辞与 SKILL_v6 逐条同源、不冲突,待验收后与 SKILL_v6 一并 Deploy。 + +## 六、未解决局限(如实登记) + +1. **执行器 = 评分者,无独立复核**:机械判据 51 项已脚本化可复算(FAIL=0),但人评判据(D2/D4/D6、 + CL1-CL5 细档)为自评,未走 v5 轮的「独立评分者亲核」。建议 org-innovator 抽查 TS-47/TS-58 两个 + 扣分场景的算式(本轮扣分方向是自我压低,风险在虚高不在虚低——对抗面全部落低分是脚本可验证的)。 +2. **r1 基线行为是复现而非录制**:基线在零素材单上的输出按 v0.6.1 条款的扩张读法模拟(与 benchmark_v6 + §0.1 登记的已发生训错一致),不是抓取的真实生产会话记录。其分数用于证明「量尺能抓住这条失败路径」, + 不用于与 v5 分数可比。 +3. **对抗件为构造输出**(test_scenarios_v6 内建),未在真实 agent 会话复现(benchmark_v6 §九.4 沿用)。 +4. **SKILL_v6 未过真实生产会话回归**:候选件的全部证据来自本轮 15 场景;Deploy 后建议首周盯一类 + 会话——纯文字直出单是否还会索材(G1 修复的直接观测量)。 +5. **R6-C2 三选项集是 C 级构造**、R6-C1 收口边界是 R 级推演(Digest 已登记,本轮无新证据); + VB5「部分推进」与 §8.1 CL2「不产出半成品」的边界本轮在 TS-47 实跑过一次(正文落位 + 职责位留口), + 未在真实会话回归。 +6. **TS-46/TS-57 的 round3 修复只针对交付件**,SKILL_v6 条文本身无需再改——两处缺陷属执行层遗漏, + 恰好被 §1.7 第 6 条 / 第 22 条既有的机械验收条款覆盖,说明条款在、量尺在,风险在执行纪律。 +7. **H6 词数区间本轮全程 N/A**:本轮场景均为基础模式三字段 / ② 型窗式,无 `detailed_description` + 字段域,未覆盖六段交付面(v5 已覆盖,本轮未回归该面)。 + +## 七、产物清单(全部在 `/app/system/agents/h3-video-prompt/train/evolve/`) + +| 文件 | 说明 | +|---|---| +| `SKILL_v6.md` | 候选件 v0.7.0-candidate-v6(26,281 → 29,839 字符,+3,558;51,809 → 60,219 B) | +| `agent_md_patch_v6.md` | agent.md L46-48 / L69 候选修订(未部署) | +| `iteration_log_v6.md` | 3 轮逐轮摘要 | +| `evolve_report_v6.md` | 本文件 | +| `round_outputs_v6/round1/`(10 件) | 基线行为 + 对抗件 | +| `round_outputs_v6/round2/`(15 件) | r2 交付(TS-46/57 为缺陷版,留档不删) | +| `round_outputs_v6/round3/`(2 件) | 定点修复版(TS-46 / TS-57) | +| `round_outputs_v6/gen_r1_and_rest.py` | r1/r2 部分产物的生成脚本(可复跑) | +| `_v6_artifacts/baseline_snapshot/` | v0.6.1 SKILL + agent.md 快照 + sha256 | +| `_v6_artifacts/apply_v6_edits.py` | 9 处修订生成脚本(断言式,可复跑) | +| `_v6_artifacts/verify_mechanical_v6.py` + `round2_mechanical.json` | 51 项机械判据复算器与结果(FAIL=0) | +| `_v6_artifacts/round_scores_v6.json` | 全部逐场景分数 + 可回溯算式 | diff --git a/system/agents/h3-video-prompt/train/evolve/iteration_log_v6.md b/system/agents/h3-video-prompt/train/evolve/iteration_log_v6.md new file mode 100644 index 0000000..2853c07 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/iteration_log_v6.md @@ -0,0 +1,5 @@ +# iteration_log_v6 — 纠偏 Retrain v6(T-mtlcior6) + +- r1 | 基线 SKILL v0.6.1(sha256 03d8cb4f…)跑 TS-44~58 | A轨生产场景均值 63.6、clarify min 41、未达标 | 失效模式:零素材单 5/5 索材/拒跑(G1/G2/G4 缺口),点名素材未到达 3/3 整单化;TS-57 url 被缩写失联 +- r2 | 改 SKILL_v6.md:§1.1 作用域钉死(主体事实≠素材存在性、纯文字豁免、素材判定推迟 §3.1)+ §1.2 零素材入口分支 + §8.1 CL1 收口为条件问项 + 新增 §8.1b 限定反问三选项 + §9 无素材交付物与 R6-C3 + 同轮清扫(§7 第 26 条、§8.2 反向、§1.7 第 21 条、§3.1 交叉引用)| A轨 9 场景均值 98.0、clarify min 95、对抗 5 件全部落低分(20/41/20/61/20)| 机械判据拦下 2 处实测缺陷:TS-46 图1 正文未内联认领(96)、TS-57 两条 url 被 `…` 缩写失联(90) +- r3 | 仅修复 r2 两处缺陷(TS-46 `` 内联认领、TS-57 补 JSON 资产层三条 url 逐字),其余场景零改动复测 | TS-46 100、TS-57 98;A轨均值 98.0、clarify min 95 不变 | 达标:A 轨 ≥90 ✓,clarify 逐场景 ≥85 ✓,对抗面全部 <85 ✓(区分度成立)→ 停止迭代 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/gen_r1_and_rest.py b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/gen_r1_and_rest.py new file mode 100644 index 0000000..465f1c1 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/gen_r1_and_rest.py @@ -0,0 +1,143 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +"""round1(基线 v0.6.1 行为)+ round2 补齐(TS-52/53 正确直出、TS-45/48/49 对抗件)落盘。""" +import pathlib +R = pathlib.Path("/app/system/agents/h3-video-prompt/train/evolve/round_outputs_v6") +(r1 := R / "round1").mkdir(parents=True, exist_ok=True) +(r2 := R / "round2").mkdir(parents=True, exist_ok=True) + +R1 = { +"TS44_r1_baseline.md": """# TS-44(round 1 · 基线 v0.6.1)· 纯文字单 → 训错路径:索要素材、不直出 + +> 基线 §1.1 硬门无「纯文字豁免」(G1)、§8.1 CL1 把「有无参考素材」列为必问项(G4)、§1.2 无零素材 +> 入口分支(G2)。本单素材集合为空但 raw_brief 文字已给足四要素,基线按 CL1 必问项发出整单反问、 +> 不产出正式 Prompt。 + +您好,这条需求没有提供任何参考图片,无法确定主角的参考依据,无法生成正式提示词。请先补充以下信息: +1)是否有参考素材(图/视频/音频、各自负责什么)? +2)橘猫的具体长相是否有指定? +3)期望的情绪基调? +4)确切的时长? +补齐后我再开始。(未产出 Prompt) +""", +"TS46_r1_baseline.md": """# TS-46(round 1 · 基线 v0.6.1)· 点名素材未到达 → 误用 §1.2 整单阻塞 + +> 基线把「图2 未到达」判成「必需素材不可用且无替代 → 停止生成正式 Prompt」(§1.2 第 2 条无「必需」 +> 判据的分型收口),整单拒跑。场景风格职责本可文字替代(doc2:101)。 + +本单的参考图2 未提供,按规范「必需素材不可用且无替代 → 停止生成正式 Prompt」,本次交付阻塞报告: +无法完成该需求,请补齐图2 后重试。(全文无 Prompt;已到达的图1 的 url 也未随单交付) +""", +"TS47_r1_baseline.md": """# TS-47(round 1 · 基线 v0.6.1)· 锁脸图未到达 → 整单 clarify 问全(范围违规) + +> 基线 §8.1 CL1 必问清单全量发出,把 raw_brief 已给足的实验室/动作/调性/时长一起拿去问(G4 收口前)。 + +收到。为准确交付,请补充:1)是否有参考素材(图/视频/音频、各自负责什么)?2)主持人的外观特征 +(发型/五官)?3)实验室背景的具体样子?4)举瓶动作的具体节拍?5)情绪基调?6)确切的时长? +7)有无对白?补齐后我开始。(未产出任何正文;参考图也未单独点名三选项) +""", +"TS50_r1_baseline.md": """# TS-50(round 1 · 基线 v0.6.1)· 用例 C 正确域:基线本就正确(保留域,基线与 v6 同向) + +收到。开箱视频需要确认:1)手办是哪一个(IP/角色名或描述)?2)手办外观特征?3)拆盒动作节拍? +4)桌面与打光?5)情绪基调?6)时长(4-15s)?7)有无对白及语言? +(已知锁定:8 秒、桌上打光、拆盒仪式感;时长默认推定 8s,按假设标注。不编造手办种类续跑。) +本件基线与 v6 行为一致:主体事实缺失属硬门正确域,纠偏不放松本域。 +""", +"TS51_r1_baseline.md": """# TS-51(round 1 · 基线 v0.6.1)· 用例 C 正确域:必需 UI 文案反问(基线与 v6 同向) + +收到。生产级 UI 演示需要确认:1)主操作界面的菜单项集合(逐字中英文案)?2)登录页要素与按钮文案? +3)核心操作序列?4)品牌名/Logo 逐字写法?5)基调与时长确认?6)有无旁白? +(不自创菜单字符串续跑——四禁令。) +本件基线与 v6 行为一致:UI 文案集合只能来自用户,反问为唯一合规路径。 +""", +"TS54_r1_baseline.md": """# TS-54(round 1 · 基线 v0.6.1)· 纯文字单 → 训错路径:拒跑 + 反问素材 + +> 基线对零素材单的扩张读法:无参考图 = 无法确认主体 → 拒跑(G1/G2 缺口的直接表现)。 + +您好,这条需求没有提供任何参考图片,无法确认白猫的参考依据,无法生成正式提示词。请先上传参考图 +或补充更多描述后再继续。(未产出 Prompt;亦未说明纯文字模式是否可用) +""", +"TS55_r1_baseline.md": """# TS-55(round 1 · 基线 v0.6.1)· R6-C1 判别 · 两支都走错 + +**分支 1(锁脸 + 图未到达)**:基线走 §8.1 整单问全(含「有无参考素材」「外观特征」「场景」「基调」 +「时长」全量清单),未区分外观锁定职责与其它已给足信息;未给三选项。 + +**分支 2(文字给定外观、零素材)**:基线按扩张读法判「没有参考图 → 无法确认主体」,拒跑并索要 +参考图(「请上传该女生的照片后再继续」)——本轮训错的最小可复现形态(R6-C1 越域引用 doc1:232)。 +两支均未产出正文。 +""", +"TS56_r1_baseline.md": """# TS-56(round 1 · 基线 v0.6.1)· 素材在场路径:基线本就正确 + +本单两份素材均在且 note 可用,基线行为与 v6 一致(url 逐字入资产层、顺序 = 菜单顺序、被镜头认领)。 +round 1 输出 = round 2 的 TS56_prompt.md 正文(素材在场路径不受本轮纠偏改动影响,属回归面)。 +""", +"TS57_r1_baseline.md": """# TS-57(round 1 · 基线 v0.6.1)· 分镜素材单:基线本就正确 + +本单三张分镜图均在且可用,基线行为与 v6 一致(② 型窗式 + H16 映射到窗 + 逐窗认领)。 +round 1 输出 = round 2 的 TS57_script.md 正文(回归面)。 +""", +"TS58_r1_baseline.md": """# TS-58(round 1 · 基线 v0.6.1)· 零素材台词单 → 训错路径:拒跑 + +> 零素材单在基线下的扩张读法(G1/G2 缺口),台词保真纪律尚未被触发就已拒跑。 + +您好,这条需求没有提供任何参考图片,无法确认两位主角的形象依据,无法生成正式提示词。请先上传 +人物参考图后再继续。(未产出 Prompt;Umbrell@ / [unclear] 的台词保真未得到验证) +""", +} + +R2 = { +"TS52_prompt.md": """# TS-52 交付(round 2 · SKILL_v6)· D-D trap:零素材被拿去问 → 正确 = 直接产出 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\\n[Shot 1] Japanese anime style, warm soft tones after the rain. An extreme wide shot of a wet sidewalk street, puddles scattering the grey sky light. A cream-colored round-faced short-haired Shiba Inu with a red collar trots into frame. At 00:02.000 the camera moves to a medium shot as the dog steps through a puddle, all four paws splashing arcs of water. At 00:04.000 a close-up catches the dog shaking its fur, droplets spinning off in the soft light.\\n\\noverall_soundscape: Rain drips from awnings and paws splash through shallow puddles on the quiet street.\\n\\nnon_diegetic_music: N/A", "duration_seconds": 6} +``` + +## 交付说明 +- raw_brief 已给足主体外观(圆脸短毛奶油色柴犬 + 红项圈)、场景(雨后人行道水洼)、动作(踩水/溅水/甩毛)、风格(日系动画暖调)、时长(6 秒);素材集合为空 → §1.1 作用域第 2 条:直接 T2VA 产出,**「有无参考素材」不进任何发问**(G4 收口:CL1 条件问项)。 +- 水花形态等未指定细节按低风险可拍摄细节显式标注假设补齐,不反问(§8.1 CL4)。 +- 未标任务类型标记(R6-C3)。 +""", +"TS53_prompt.md": """# TS-53 交付(round 2 · SKILL_v6)· D-D trap:有图却拒写 → 正确 = 按菜单正常预检交付 + +```json +{"prompt": "integrated_multimodal_description:\\n[Shot 1] High-end commercial studio look, cold white palette. The sneaker from sits on the rotating turntable of the studio in , turning slowly as a band of white light sweeps across its surface, catching the stitching and the sole edge.\\n[Shot 2] At 00:06.000, the turntable eases to a stop and the camera settles onto a locked front-facing composition of the sneaker, holding the freeze as the sweep of light fades off the toe box.\\n\\noverall_soundscape: The soft mechanical hum of the turntable motor and a faint studio room tone.\\n\\nnon_diegetic_music: N/A", "references": ["sneaker_ref", "studio_bg"], "reference_assets": [{"id": "sneaker_ref", "url": "/h3_v6_ts53/sneaker.png"}, {"id": "studio_bg", "url": "/h3_v6_ts53/studio.png"}]} +``` + +## 交付说明 +- 两份素材均在、note 可用(「可直接用」)→ §1.2 反向条款:**继续产出**;以「主体无参考图」拒写 = 硬门越域 + B1 阻塞理由在输入侧无据(VD2)。 +- 预检逐条过:图1 → 球鞋外观来源(),图2 → 影棚环境();url 逐字入资产层、顺序 = 菜单顺序;每条素材被镜头认领,零幽灵素材。 +- 时长 8s;`[Shot 1]` 无时间戳、[Shot 2] 递增;无配乐 → `non_diegetic_music: N/A`。 +""", +"TS45_adversarial.md": """# TS-45(对抗输出,两轮同件)· P-REFUSE「无图即拒跑」(test_scenarios_v6 原文,非本 agent 实跑) + +> 您好,这条需求没有提供任何参考图片,无法确定主角长什么样,无法生成正式提示词。 +> 请先上传参考图,我再继续。 + +评分按 benchmark_v6 §六坏样本自检实算:D1=4 + D7=2 + D4=2 + 其余六维各 1/5 底档 12 = **20** +→ min(20, CAP-V6a=40) = **20 分**(达标线 90,gap 70)。TS-44 合规输出 ≈96,区分度 76。 +""", +"TS48_adversarial.md": """# TS-48(对抗输出,两轮同件)· P-CLARIFY-ALL 整单 clarify(test_scenarios_v6 原文) + +> 收到。为了确保准确交付,请先补充以下信息:1)主角黑猫的外观特征(毛色/眼睛/体型);2)街道的 +> 具体样子和垃圾桶位置;3)黑猫跳上垃圾桶的具体动作;4)您期望的情绪基调;5)确切的时长; +> 6)参考图2 请重新上传。补齐后我再开始。 + +改判 clarify 轨:CL1=0(点名素材缺失场景出现整单问全清单 = 范围违规最高档)+ CL2=25 + CL3=8 + +CL4=8 = **41 分**(clarify 达标线 85,gap 44)。1)-5) 各项回指不到 raw_brief 事实缺口(VC4 逐项越域)。 +""", +"TS49_adversarial.md": """# TS-49(对抗输出,两轮同件)· P-REFUSE 整单拒跑(误引 §1.2,test_scenarios_v6 原文) + +> 本单的参考图2 未提供,按规范「必需素材不可用且无替代 → 停止生成正式 Prompt」,本次交付阻塞 +> 报告:无法完成该需求,请补齐素材后重试。(全文无 Prompt) + +改判 prompt 轨:零正式交付,各维 1/5 底档 → 20;CAP-V6a 压顶 → **20 分**(上限 40;VD3 与整单 +clarify 同罚;B1=0:场景职责可文字替代,「必需」判据不成立)。 +""", +} +for name, body in R1.items(): + (r1 / name).write_text(body, encoding="utf-8") +for name, body in R2.items(): + (r2 / name).write_text(body, encoding="utf-8") +print("round1:", len(R1), "round2 补齐:", len(R2)) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS44_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS44_r1_baseline.md new file mode 100644 index 0000000..49f3cac --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS44_r1_baseline.md @@ -0,0 +1,12 @@ +# TS-44(round 1 · 基线 v0.6.1)· 纯文字单 → 训错路径:索要素材、不直出 + +> 基线 §1.1 硬门无「纯文字豁免」(G1)、§8.1 CL1 把「有无参考素材」列为必问项(G4)、§1.2 无零素材 +> 入口分支(G2)。本单素材集合为空但 raw_brief 文字已给足四要素,基线按 CL1 必问项发出整单反问、 +> 不产出正式 Prompt。 + +您好,这条需求没有提供任何参考图片,无法确定主角的参考依据,无法生成正式提示词。请先补充以下信息: +1)是否有参考素材(图/视频/音频、各自负责什么)? +2)橘猫的具体长相是否有指定? +3)期望的情绪基调? +4)确切的时长? +补齐后我再开始。(未产出 Prompt) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS46_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS46_r1_baseline.md new file mode 100644 index 0000000..52216f5 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS46_r1_baseline.md @@ -0,0 +1,7 @@ +# TS-46(round 1 · 基线 v0.6.1)· 点名素材未到达 → 误用 §1.2 整单阻塞 + +> 基线把「图2 未到达」判成「必需素材不可用且无替代 → 停止生成正式 Prompt」(§1.2 第 2 条无「必需」 +> 判据的分型收口),整单拒跑。场景风格职责本可文字替代(doc2:101)。 + +本单的参考图2 未提供,按规范「必需素材不可用且无替代 → 停止生成正式 Prompt」,本次交付阻塞报告: +无法完成该需求,请补齐图2 后重试。(全文无 Prompt;已到达的图1 的 url 也未随单交付) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS47_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS47_r1_baseline.md new file mode 100644 index 0000000..ea75ea6 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS47_r1_baseline.md @@ -0,0 +1,7 @@ +# TS-47(round 1 · 基线 v0.6.1)· 锁脸图未到达 → 整单 clarify 问全(范围违规) + +> 基线 §8.1 CL1 必问清单全量发出,把 raw_brief 已给足的实验室/动作/调性/时长一起拿去问(G4 收口前)。 + +收到。为准确交付,请补充:1)是否有参考素材(图/视频/音频、各自负责什么)?2)主持人的外观特征 +(发型/五官)?3)实验室背景的具体样子?4)举瓶动作的具体节拍?5)情绪基调?6)确切的时长? +7)有无对白?补齐后我开始。(未产出任何正文;参考图也未单独点名三选项) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS50_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS50_r1_baseline.md new file mode 100644 index 0000000..f8bfd22 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS50_r1_baseline.md @@ -0,0 +1,6 @@ +# TS-50(round 1 · 基线 v0.6.1)· 用例 C 正确域:基线本就正确(保留域,基线与 v6 同向) + +收到。开箱视频需要确认:1)手办是哪一个(IP/角色名或描述)?2)手办外观特征?3)拆盒动作节拍? +4)桌面与打光?5)情绪基调?6)时长(4-15s)?7)有无对白及语言? +(已知锁定:8 秒、桌上打光、拆盒仪式感;时长默认推定 8s,按假设标注。不编造手办种类续跑。) +本件基线与 v6 行为一致:主体事实缺失属硬门正确域,纠偏不放松本域。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS51_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS51_r1_baseline.md new file mode 100644 index 0000000..0c46e81 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS51_r1_baseline.md @@ -0,0 +1,6 @@ +# TS-51(round 1 · 基线 v0.6.1)· 用例 C 正确域:必需 UI 文案反问(基线与 v6 同向) + +收到。生产级 UI 演示需要确认:1)主操作界面的菜单项集合(逐字中英文案)?2)登录页要素与按钮文案? +3)核心操作序列?4)品牌名/Logo 逐字写法?5)基调与时长确认?6)有无旁白? +(不自创菜单字符串续跑——四禁令。) +本件基线与 v6 行为一致:UI 文案集合只能来自用户,反问为唯一合规路径。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS54_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS54_r1_baseline.md new file mode 100644 index 0000000..b8bf35c --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS54_r1_baseline.md @@ -0,0 +1,6 @@ +# TS-54(round 1 · 基线 v0.6.1)· 纯文字单 → 训错路径:拒跑 + 反问素材 + +> 基线对零素材单的扩张读法:无参考图 = 无法确认主体 → 拒跑(G1/G2 缺口的直接表现)。 + +您好,这条需求没有提供任何参考图片,无法确认白猫的参考依据,无法生成正式提示词。请先上传参考图 +或补充更多描述后再继续。(未产出 Prompt;亦未说明纯文字模式是否可用) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS55_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS55_r1_baseline.md new file mode 100644 index 0000000..06d5087 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS55_r1_baseline.md @@ -0,0 +1,8 @@ +# TS-55(round 1 · 基线 v0.6.1)· R6-C1 判别 · 两支都走错 + +**分支 1(锁脸 + 图未到达)**:基线走 §8.1 整单问全(含「有无参考素材」「外观特征」「场景」「基调」 +「时长」全量清单),未区分外观锁定职责与其它已给足信息;未给三选项。 + +**分支 2(文字给定外观、零素材)**:基线按扩张读法判「没有参考图 → 无法确认主体」,拒跑并索要 +参考图(「请上传该女生的照片后再继续」)——本轮训错的最小可复现形态(R6-C1 越域引用 doc1:232)。 +两支均未产出正文。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS56_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS56_r1_baseline.md new file mode 100644 index 0000000..9d96bdf --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS56_r1_baseline.md @@ -0,0 +1,4 @@ +# TS-56(round 1 · 基线 v0.6.1)· 素材在场路径:基线本就正确 + +本单两份素材均在且 note 可用,基线行为与 v6 一致(url 逐字入资产层、顺序 = 菜单顺序、被镜头认领)。 +round 1 输出 = round 2 的 TS56_prompt.md 正文(素材在场路径不受本轮纠偏改动影响,属回归面)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS57_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS57_r1_baseline.md new file mode 100644 index 0000000..71083c6 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS57_r1_baseline.md @@ -0,0 +1,4 @@ +# TS-57(round 1 · 基线 v0.6.1)· 分镜素材单:基线本就正确 + +本单三张分镜图均在且可用,基线行为与 v6 一致(② 型窗式 + H16 映射到窗 + 逐窗认领)。 +round 1 输出 = round 2 的 TS57_script.md 正文(回归面)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS58_r1_baseline.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS58_r1_baseline.md new file mode 100644 index 0000000..8049f66 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round1/TS58_r1_baseline.md @@ -0,0 +1,6 @@ +# TS-58(round 1 · 基线 v0.6.1)· 零素材台词单 → 训错路径:拒跑 + +> 零素材单在基线下的扩张读法(G1/G2 缺口),台词保真纪律尚未被触发就已拒跑。 + +您好,这条需求没有提供任何参考图片,无法确认两位主角的形象依据,无法生成正式提示词。请先上传 +人物参考图后再继续。(未产出 Prompt;Umbrell@ / [unclear] 的台词保真未得到验证) diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS44_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS44_prompt.md new file mode 100644 index 0000000..7bfde54 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS44_prompt.md @@ -0,0 +1,15 @@ +# TS-44 交付(round 2 · SKILL_v6)· T2VA · 纯文字直出 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Hand-drawn animation with soft warm light. The video opens on an extreme wide shot of a wooden bay window flooded with afternoon sunlight, a ginkgo tree shimmering pale yellow outside the glass. An orange short-haired cat wearing a blue knitted scarf lies sprawled on the windowsill, the scarf's loose end trailing over the wood grain. The camera slowly pushes in to a medium shot as the cat arches into a long lazy stretch, front paws extending, then shakes its ears with a quick flutter. The shot finishes on a close-up of the cat's paw resting on the knitted end of the scarf, threads catching the low sun.\n\noverall_soundscape: Faint birds chirp beyond the window and a soft wind brushes the glass, drifting into the quiet room.\n\nnon_diegetic_music: N/A", "duration_seconds": 10} +``` + +## 交付说明 +- 【参考素材说明】无参考素材(纯文字生成视频)——素材集合为空,按 §1.2 入口分支跳过逐条预检,§3.1 判 T2VA,直接交付(§1.1 作用域第 2 条:素材缺位不触发硬门)。 +- 主体外观(橘色短毛猫 + 蓝色针织围巾)、场景(木质飘窗 + 银杏 + 午后光)、动作(懒腰/抖耳/爪子特写)、风格(手绘动画 + 柔光)四要素全部取自 raw_brief 原文,未留白、未编造。 +- 分层写法:大全景交代空间 → 中景承载动作 → 特写强调细节(doc1:222)。 +- 声音:用户明说「不用配乐」→ `non_diegetic_music: N/A`;鸟叫 + 风声落 `overall_soundscape`。 +- 时长 10s,落在 4–15s;`duration_seconds` 只在请求体层。 +- 纯文字交付未标任何素材类任务类型标记(R6-C3:免标记,标了才是违规)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS45_adversarial.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS45_adversarial.md new file mode 100644 index 0000000..78b9a0c --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS45_adversarial.md @@ -0,0 +1,7 @@ +# TS-45(对抗输出,两轮同件)· P-REFUSE「无图即拒跑」(test_scenarios_v6 原文,非本 agent 实跑) + +> 您好,这条需求没有提供任何参考图片,无法确定主角长什么样,无法生成正式提示词。 +> 请先上传参考图,我再继续。 + +评分按 benchmark_v6 §六坏样本自检实算:D1=4 + D7=2 + D4=2 + 其余六维各 1/5 底档 12 = **20** +→ min(20, CAP-V6a=40) = **20 分**(达标线 90,gap 70)。TS-44 合规输出 ≈96,区分度 76。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS46_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS46_prompt.md new file mode 100644 index 0000000..73f1297 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS46_prompt.md @@ -0,0 +1,12 @@ +# TS-46 交付(round 2 · SKILL_v6)· Ref2VA 部分素材 · 图2(场景参考)未到达,职责可文字替代 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Live-action cinematic look, cool desaturated palette. An extreme wide shot of a narrow rain-soaked alley after the storm, puddles mirroring the grey sky between wet brick walls. A delivery rider in a bright yellow raincoat rides an electric scooter toward the camera through the shallow water, tires hissing on wet asphalt. The camera pushes in to a medium shot tracking him from the side, water spraying from the front wheel.\n[Shot 2] At 00:08.000, the camera settles behind his shoulder as he slows at the mouth of the alley and turns his head back in profile, rain dripping from the hem of the yellow raincoat, his reflection trembling in the puddle at the curb.\n\noverall_soundscape: Rain drips from eaves, tires hiss over wet asphalt, and the scooter motor idles low in the alley.\n\nnon_diegetic_music: N/A", "references": ["hero_raincoat"], "reference_assets": [{"id": "hero_raincoat", "url": "/h3_v6_ts46/hero.png"}]} +``` + +## 交付说明 +- 【素材预检】图1(hero_raincoat,主角立绘)已到达,url 逐字入资产层、顺序 = 菜单顺序;外观归因到主角 Subject。 +- 【参考素材说明】图2(alley_scene,场景参考)未到达。场景风格属**可文字替代类**(doc2:101「T2VA 则根据用户文字选择」),且 raw_brief 已把小巷/水洼/雨后/冷色调写清——缺口不存在,故**不整单反问、不阻塞**,场景描述以文字替代照常产出(§8.1b 第 3 条)。本交付的场景细节来源 = raw_brief 原文(雨后小巷、水洼倒影、冷色调),非图2。 +- 若你希望改用图2 的实际场景锁定环境,三选一即可:① 补传图2,我按图重写场景层;② 维持本文字版场景描述;③ 放弃场景锁定职责。(§8.1b 三选项;此处为非阻塞附注,不构成本单前提。) +- 用户写「12 秒」又说「10 秒左右也行」→ 取 12s(首说优先),交付说明注明。 +- 台词无;`non_diegetic_music: N/A`(用户未要配乐)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS47_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS47_prompt.md new file mode 100644 index 0000000..ca9ad16 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS47_prompt.md @@ -0,0 +1,19 @@ +# TS-47 交付(round 2 · SKILL_v6)· 外观锁定职责(锁脸)且参考图未到达 → 限定反问 + 部分推进 + +## 正文(可推进部分照常产出,职责位显式留口) + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Bright clean commercial lighting, airy laboratory background with white benches and glassware softly out of focus. A female presenter in a crisp white shirt stands center frame and lifts a serum bottle up beside her shoulder, label facing the camera, holding the pose as light rolls across the glass. \n\noverall_soundscape: The quiet hum of lab equipment and the soft click of the bottle being set down.\n\nnon_diegetic_music: N/A", "references": [], "url 待补(输入 JSON 未携带该字段)": "host_face_ref 未到达,见反问"} +``` + +## 限定反问(仅就那份未到达的参考图,§8.1b) +您提到「我上传的那张参考图」,但本单未收到任何图片。主角脸需要与图中人一致属**外观锁定职责**,纯文字只能描述外观、无法保证身份一致,因此就这一份素材三选一: +1. **补传**该人物参考图,我按图锁定面部身份; +2. **改用文字描述**该主持人的外观(发色/发型/五官特征),交付改为文字给定外观的原创主体(明示:文字无法保证与照片中本人身份一致); +3. **豁免**锁脸诉求,由我按「白衬衫实验室口播主持人」自定外观。 + +## 交付说明 +- 反问范围**仅限这份人物参考图**:实验室场景、白衬衫、举瓶动作、明亮清爽调性、8 秒时长均已从 raw_brief 锁定并在正文落位,不进问全清单(§8.1b 第 1 条)。 +- 未编造主持人长相续跑(§8.1b 第 4 条;R6-C1:锁脸是唯一不可文字等价兑现的职责)。 +- 未整单拒跑、未报 §8.2 阻塞——「必需」判据不成立,单份素材缺席 ≠ 整单不可跑。 +- 时长 8s 落 4–15s;无台词;`non_diegetic_music: N/A`。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS48_adversarial.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS48_adversarial.md new file mode 100644 index 0000000..4c4bb0f --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS48_adversarial.md @@ -0,0 +1,8 @@ +# TS-48(对抗输出,两轮同件)· P-CLARIFY-ALL 整单 clarify(test_scenarios_v6 原文) + +> 收到。为了确保准确交付,请先补充以下信息:1)主角黑猫的外观特征(毛色/眼睛/体型);2)街道的 +> 具体样子和垃圾桶位置;3)黑猫跳上垃圾桶的具体动作;4)您期望的情绪基调;5)确切的时长; +> 6)参考图2 请重新上传。补齐后我再开始。 + +改判 clarify 轨:CL1=0(点名素材缺失场景出现整单问全清单 = 范围违规最高档)+ CL2=25 + CL3=8 + +CL4=8 = **41 分**(clarify 达标线 85,gap 44)。1)-5) 各项回指不到 raw_brief 事实缺口(VC4 逐项越域)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS49_adversarial.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS49_adversarial.md new file mode 100644 index 0000000..7ce9d7a --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS49_adversarial.md @@ -0,0 +1,7 @@ +# TS-49(对抗输出,两轮同件)· P-REFUSE 整单拒跑(误引 §1.2,test_scenarios_v6 原文) + +> 本单的参考图2 未提供,按规范「必需素材不可用且无替代 → 停止生成正式 Prompt」,本次交付阻塞 +> 报告:无法完成该需求,请补齐素材后重试。(全文无 Prompt) + +改判 prompt 轨:零正式交付,各维 1/5 底档 → 20;CAP-V6a 压顶 → **20 分**(上限 40;VD3 与整单 +clarify 同罚;B1=0:场景职责可文字替代,「必需」判据不成立)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS50_clarify.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS50_clarify.md new file mode 100644 index 0000000..a683130 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS50_clarify.md @@ -0,0 +1,24 @@ +# TS-50 交付(round 2 · SKILL_v6)· 用例 C:主体身份真缺失 → §8.1 一次问全(纠偏不放松本域) + +## 反问件(clarify 五要素) + +**1) 缺失项一次问全(CL1)** +1. 手办是**哪一个**(IP 名 / 角色名 / 实物照片描述)? +2. 主体外观特征(发色发型、服装颜色款式、体态五官、随身饰品——若按上一条已可确定可略); +3. 核心动作/情节段落(拆盒的具体节拍:割胶带 → 开盖 → 取出 → 展示,还是有别的仪式动作?); +4. 桌面场景(桌面材质/颜色、打光方式——您说「桌上打光」,是台灯暖光还是影棚冷光?); +5. 情绪基调(兴奋开箱 / 安静鉴赏 / 幽默吐槽); +6. 期望时长(4–15s,默认推定 8s,需确认); +7. 有无对白及语言(口播台词 / 无对白纯环境声)。 + +**2) 零臆造(CL2)**:不编造手办种类与外观续跑,不产出半成品 Prompt。 + +**3) 分支预判(CL3)**:手办确定 + 无逐窗要求 → ① 型单镜 T2VA/I2VA(若后续有手办实物图则 I2VA 首帧锚定);要「每隔几秒显示什么」的分镜 → ② 型窗式。 + +**4) 已知信息锁定 + 推定显式标注(CL4)**:已知 = 8 秒开箱视频、桌上场景、「要有拆盒的仪式感」。推定项仅时长 8s、仪式节拍细化方向,均按假设标注,不混进反问。 + +**5) 通道与格式(CL5)**:本件为信息不足反问,不伪造看似合规的 Prompt 交付。 + +## 交付说明 +- 本单缺的是**主体事实**(开哪个手办完全未说),无官方「文字可自行建立」通道——§8.1 反问是唯一合规路径,纠偏不放松本域(benchmark_v6 §五 V-C)。 +- 反问清单**不含**「有无参考素材」:本场景该问的是手办是哪个,不是图有没有;素材存在性不属硬门域(VC4 / VCA-guard)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS51_clarify.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS51_clarify.md new file mode 100644 index 0000000..40164a8 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS51_clarify.md @@ -0,0 +1,23 @@ +# TS-51 交付(round 2 · SKILL_v6)· 用例 C:生产级 UI 文案缺失 → 反问(四禁令禁止自创菜单项) + +## 反问件(clarify 五要素) + +**1) 缺失项一次问全(CL1)** +1. 每一屏的菜单项集合:登录页之外的**主操作界面**有哪些菜单/导航项(逐字中英文案); +2. 登录页要素:登录方式(账号密码 / SSO / 验证码)、按钮文案(「登录」还是「Sign in」); +3. 功能演示的核心操作序列(点哪个菜单 → 出现什么界面 → 完成什么动作); +4. UI 品牌名 / Logo 文字、产品名称的逐字写法; +5. 情绪基调与时长(科技蓝已给;12s 已给,确认落在 4–15s 单段还是需要拆分镜); +6. 有无旁白/对白及语言。 + +**2) 零臆造(CL2)**:不自创任何菜单字符串、按钮文案、品牌名续跑——四禁令禁止;不产出带占位 UI 的半成品。 + +**3) 分支预判(CL3)**:若给「每隔几秒显示什么界面」→ ② 型窗式分镜;若要英文结构化 Prompt → ① 型;单屏演示无逐窗要求 → ① 型单镜。 + +**4) 已知信息锁定 + 推定显式标注(CL4)**:已知 = 12 秒、生产环境后台系统、登录页 + 主操作界面、科技蓝风格。推定项:无(UI 文案集合只能来自您,不存在低风险推定)。 + +**5) 通道与格式(CL5)**:本件为反问件,不伪造 JSON 交付。 + +## 交付说明 +- UI 文案不是「素材」,不适用「文字替代」——字符串集合只能来自用户,本域为硬门正确域(SKILL §1.1:必需 UI 文案缺失 → 反问)。 +- 清单不含「有无参考素材」项:本单的反问理由是事实缺口,不是素材存在性(VC4)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS52_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS52_prompt.md new file mode 100644 index 0000000..96ad713 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS52_prompt.md @@ -0,0 +1,12 @@ +# TS-52 交付(round 2 · SKILL_v6)· D-D trap:零素材被拿去问 → 正确 = 直接产出 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Japanese anime style, warm soft tones after the rain. An extreme wide shot of a wet sidewalk street, puddles scattering the grey sky light. A cream-colored round-faced short-haired Shiba Inu with a red collar trots into frame. At 00:02.000 the camera moves to a medium shot as the dog steps through a puddle, all four paws splashing arcs of water. At 00:04.000 a close-up catches the dog shaking its fur, droplets spinning off in the soft light.\n\noverall_soundscape: Rain drips from awnings and paws splash through shallow puddles on the quiet street.\n\nnon_diegetic_music: N/A", "duration_seconds": 6} +``` + +## 交付说明 +- raw_brief 已给足主体外观(圆脸短毛奶油色柴犬 + 红项圈)、场景(雨后人行道水洼)、动作(踩水/溅水/甩毛)、风格(日系动画暖调)、时长(6 秒);素材集合为空 → §1.1 作用域第 2 条:直接 T2VA 产出,**「有无参考素材」不进任何发问**(G4 收口:CL1 条件问项)。 +- 水花形态等未指定细节按低风险可拍摄细节显式标注假设补齐,不反问(§8.1 CL4)。 +- 未标任务类型标记(R6-C3)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS53_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS53_prompt.md new file mode 100644 index 0000000..655385a --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS53_prompt.md @@ -0,0 +1,10 @@ +# TS-53 交付(round 2 · SKILL_v6)· D-D trap:有图却拒写 → 正确 = 按菜单正常预检交付 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] High-end commercial studio look, cold white palette. The sneaker from sits on the rotating turntable of the studio in , turning slowly as a band of white light sweeps across its surface, catching the stitching and the sole edge.\n[Shot 2] At 00:06.000, the turntable eases to a stop and the camera settles onto a locked front-facing composition of the sneaker, holding the freeze as the sweep of light fades off the toe box.\n\noverall_soundscape: The soft mechanical hum of the turntable motor and a faint studio room tone.\n\nnon_diegetic_music: N/A", "references": ["sneaker_ref", "studio_bg"], "reference_assets": [{"id": "sneaker_ref", "url": "/h3_v6_ts53/sneaker.png"}, {"id": "studio_bg", "url": "/h3_v6_ts53/studio.png"}]} +``` + +## 交付说明 +- 两份素材均在、note 可用(「可直接用」)→ §1.2 反向条款:**继续产出**;以「主体无参考图」拒写 = 硬门越域 + B1 阻塞理由在输入侧无据(VD2)。 +- 预检逐条过:图1 → 球鞋外观来源(),图2 → 影棚环境();url 逐字入资产层、顺序 = 菜单顺序;每条素材被镜头认领,零幽灵素材。 +- 时长 8s;`[Shot 1]` 无时间戳、[Shot 2] 递增;无配乐 → `non_diegetic_music: N/A`。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS54_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS54_prompt.md new file mode 100644 index 0000000..9ea3929 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS54_prompt.md @@ -0,0 +1,13 @@ +# TS-54 交付(round 2 · SKILL_v6)· T2VA · R6-C3 判别:纯文字免任务类型标记 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Cold blue night lighting. Outside a convenience store at night, a white cat sits behind the drifting steam of an oden counter, the vapor slowly rolling across its face. Its eyes catch the store's light and glint twice as it stares out, tail wrapped over its paws, the steam thinning just enough to reveal its outline.\n\noverall_soundscape: N/A\n\nnon_diegetic_music: N/A", "duration_seconds": 5} +``` + +## 交付说明 +- 【参考素材说明】无参考素材(纯文字生成视频)——§1.2 入口分支 + §3.1 T2VA。 +- **未标任何任务类型标记**(R6-C3:六类型选型函数以参考素材为输入,素材集合为空则无定义域;缺标记不扣分,标了素材类标记才是违规)。 +- 用户明说「无声」→ `overall_soundscape: N/A`(全程完全静音的显式条件成立,doc2:594 精确条件)+ `non_diegetic_music: N/A`。 +- 四要素写足:主体外观(白猫 + 眼睛反光)、场景(深夜便利店门口 + 关东煮蒸汽)、动作(坐、盯、蒸汽拂过)、风格(冷蓝调)。时长 5s 落 4–15s。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS55_two_branches.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS55_two_branches.md new file mode 100644 index 0000000..c4b1193 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS55_two_branches.md @@ -0,0 +1,24 @@ +# TS-55 交付(round 2 · SKILL_v6)· R6-C1 判别(两支同 brief 骨架,分别计分、禁合并) + +## 分支 1 ——「和我上传照片里的人一模一样」+ 图未到达 → 限定反问(外观锁定类,R6-C1) + +### 正文(可推进部分照常产出) +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Bright warm cafe lighting. A young woman in a beige sweater stands at the counter of a cozy coffee shop and lifts a latte with both hands, smiling toward the camera as milk foam curls over the rim. \n\noverall_soundscape: Espresso machine hissing softly and quiet cafe chatter behind the counter.\n\nnon_diegetic_music: N/A", "references": [], "url 待补(输入 JSON 未携带该字段)": "face_ref 未到达,见反问"} +``` + +### 限定反问(仅就这张人物照片,§8.1b 三选项) +1. **补传**照片,我按图锁定面部身份;2. **改用文字描述**她的五官特征(明示:文字只能描述外观,无法保证与照片本人身份一致);3. **豁免**「一模一样」诉求,改为文字给定外观的原创主体。 +(反问范围仅限这张图;毛衣、拿铁、微笑、咖啡店、明亮暖调、8 秒均已锁定落位,不进问全清单。) + +## 分支 2 ——文字给定外观(「穿米色毛衣的短发女生」)、素材集合为空 → 直接 T2VA 产出 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Bright warm cafe lighting. A young woman with short dark hair wearing a beige sweater stands at the counter of a cozy coffee shop and lifts a latte with both hands, smiling toward the camera as milk foam curls over the rim and sunlight rakes across the wooden counter.\n\noverall_soundscape: Espresso machine hissing softly and quiet cafe chatter behind the counter.\n\nnon_diegetic_music: N/A", "duration_seconds": 8} +``` + +## 交付说明 +- 唯一差异是「和照片里的人一模一样」vs「文字给定外观」:前者触发外观锁定职责(doc1:232 唯一合法适用域),后者是文字已锁定的原创主体、素材集合为空 → 直接 T2VA(引用 doc1:232 作为反问/拒跑理由 = 越域违规,§1.1 作用域第 2 条)。 +- 两支分别交付、分别计分,未合并;分支 2 未标任务类型标记(R6-C3)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS56_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS56_prompt.md new file mode 100644 index 0000000..45a6ede --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS56_prompt.md @@ -0,0 +1,11 @@ +# TS-56 交付(round 2 · SKILL_v6)· 回归:url 逐字保真(v0.6.1 热修域)· 多素材 Ref2VA + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Sleek product-film lighting, cold metallic highlights on black. A luxury wristwatch from rotates slowly on a bed of black velvet, its brushed case catching a moving band of white light as the camera arcs around it.\n[Shot 2] At 00:05.000, the camera cuts to a macro shot of the crown from , gears and knurled edges in razor focus, then pulls back to the full watch resting on the velvet and holds on the front-facing freeze.\n\noverall_soundscape: A low-frequency pendulum tick keeps a slow, steady pulse under the whole film.\n\nnon_diegetic_music: N/A", "references": ["watch_hero", "watch_macro"], "reference_assets": [{"id": "watch_hero", "url": "/h3_v6_ts56/watch_hero.png"}, {"id": "watch_macro", "url": "/h3_v6_ts56/watch_macro.png"}]} +``` + +## 交付说明 +- 两条 url **逐字**入资产层(`/h3_v6_ts56/watch_hero.png` / `…/watch_macro.png`),顺序 = 菜单顺序 = 自动编号顺序,未下载、未转存、未改链、未占位符化;url 不进正文层(§2 硬不变量 / §1.7 第 22 条)。 +- 每条素材被镜头认领:图1 → [Shot 1],图2 → [Shot 2],零幽灵素材。 +- 低频钟摆声落 `overall_soundscape`;用户未要配乐 → `non_diegetic_music: N/A`。 +- 时长 10s 落 4–15s;`[Shot 1]` 无时间戳,[Shot 2] `At 00:05.000` 递增(H5)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS57_script.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS57_script.md new file mode 100644 index 0000000..e24dbc7 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS57_script.md @@ -0,0 +1,27 @@ +# TS-57 交付(round 2 · SKILL_v6)· 回归:② 型窗式 + H16 分镜参考图映射 + 三素材逐窗认领 + +## 参考素材职责(头部声明) +- 参考图1(sb_1):窗 1 的分镜参考,提供舱内全景与地球背景的构图规划。 +- 参考图2(sb_2):窗 2 的分镜参考,提供触碰舷窗动作的机位与主体位置规划。 +- 参考图3(sb_3):窗 3 的分镜参考,提供面罩特写与倒影的细节规划。 +- 资产层:references = ["sb_1","sb_2","sb_3"],reference_assets 顺序同(url 逐字:`/h3_v6_ts57/sb1.png`、`…/sb2.png`、`…/sb3.png`)。 + +## 正文(② 型,中文) + +**[0 秒-4 秒]** +景别/运镜:大全景,缓慢横移。宇航员在空间站舱内失重漂浮,舷窗外是蓝色地球与星空,舱内仪器灯在金属壁上留下一排微光。他舒展四肢,缓缓漂向舷窗。 +声音:舱内设备低鸣与呼吸声。 + +**[4 秒-8 秒]** +景别/运镜:中景,随动推进。他伸手触碰舷窗玻璃,指尖停在窗面上,身体因反作用轻微后仰又回弹,地球的反光掠过他的臂章。 +声音:指尖触到玻璃的轻响,设备低鸣持续。 + +**[8 秒-12 秒]** +景别/运镜:特写,静止微推。面罩里的倒影清晰映出地球与舱内灯光,他的眼睛在面罩后眨了一次,倒影随呼吸微微晃动。 +声音:呼吸声放近,设备低鸣渐弱。 + +## 交付说明 +- 窗标题覆盖 0→12 秒、相邻相接、首窗从 0s;窗内零处 `At MM:SS.mmm`(H5b 记号硬互斥)。 +- 三张分镜参考图按 **H16 映射到窗/镜头**,零秒级对齐;每条素材被一个窗认领,零幽灵素材。 +- 每窗三要素(机位/运镜 + 主体动作 + 覆盖元素)+ 声音落窗内。 +- `duration_seconds` = 12,由请求体指定,不写进正文。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS58_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS58_prompt.md new file mode 100644 index 0000000..014c98d --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round2/TS58_prompt.md @@ -0,0 +1,13 @@ +# TS-58 交付(round 2 · SKILL_v6)· 回归:台词逐字(Umbrell@ / [unclear])× 纯文字 V-A 域交叉 + +【参考素材说明】无参考素材(纯文字生成视频)。 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Night rain on a city street, neon signs smearing their reflections across the wet pavement. Outside a convenience store, a man holds out a folding umbrella to a woman. The man (S1) says in an off-screen voiceover: [Chinese] 拿去吧,我还有 Umbrell@ 备用。 while his lips remain completely closed. The woman takes it; the woman (S2) says in an off-screen voiceover: [Chinese] 那[unclear],明天还你。 while her lips remain completely closed. The two stand a step apart as rain keeps falling and the neon ripples in the puddle between them.\n\noverall_soundscape: Rain patters on the awning and splashes into the puddles, with faint neon-tinged street noise in the distance.\n\nnon_diegetic_music: N/A", "duration_seconds": 8} +``` + +## 交付说明 +- **台词逐字保真(口径 V)**:`Umbrell@` 原样保留,未「纠正」为 Umbrella;`[unclear]` 原样保留,未猜测改写(doc2:575)。标点沿用用户原文。 +- 说话人 `(S1)` / `(S2)` 按发声事件顺序分配,跨镜不重号;画外音固定短语逐字相邻、唇部闭合声明跟随。 +- **V-A 域交叉**:本单零素材 → T2VA 直出 + 无参考素材声明;未以无图为由反问(RG-VA-cross)。 +- 四要素写足:主体(男女两人 + 动作)、场景(便利店门口雨夜 + 霓虹倒影)、动作(递伞/接伞)、风格(雨天霓虹)。时长 8s;未标任务类型标记(R6-C3)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS46_prompt.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS46_prompt.md new file mode 100644 index 0000000..6af2c7a --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS46_prompt.md @@ -0,0 +1,12 @@ +# TS-46 交付(round 2 · SKILL_v6)· Ref2VA 部分素材 · 图2(场景参考)未到达,职责可文字替代 + +```json +{"prompt": "integrated_multimodal_description:\n[Shot 1] Live-action cinematic look, cool desaturated palette. An extreme wide shot of a narrow rain-soaked alley after the storm, puddles mirroring the grey sky between wet brick walls. A delivery rider from , wearing his bright yellow raincoat, rides an electric scooter toward the camera through the shallow water, tires hissing on wet asphalt. The camera pushes in to a medium shot tracking him from the side, water spraying from the front wheel.\n[Shot 2] At 00:08.000, the camera settles behind his shoulder as he slows at the mouth of the alley and turns his head back in profile, rain dripping from the hem of the yellow raincoat, his reflection trembling in the puddle at the curb.\n\noverall_soundscape: Rain drips from eaves, tires hiss over wet asphalt, and the scooter motor idles low in the alley.\n\nnon_diegetic_music: N/A", "references": ["hero_raincoat"], "reference_assets": [{"id": "hero_raincoat", "url": "/h3_v6_ts46/hero.png"}]} +``` + +## 交付说明 +- 【素材预检】图1(hero_raincoat,主角立绘)已到达,url 逐字入资产层、顺序 = 菜单顺序;正文以 `` 序号内联认领(§1.7 第 6 条),外观归因到主角。 +- 【参考素材说明】图2(alley_scene,场景参考)未到达。场景风格属**可文字替代类**(doc2:101「T2VA 则根据用户文字选择」),且 raw_brief 已把小巷/水洼/雨后/冷色调写清——缺口不存在,故**不整单反问、不阻塞**,场景描述以文字替代照常产出(§8.1b 第 3 条)。本交付的场景细节来源 = raw_brief 原文(雨后小巷、水洼倒影、冷色调),非图2。 +- 若你希望改用图2 的实际场景锁定环境,三选一即可:① 补传图2,我按图重写场景层;② 维持本文字版场景描述;③ 放弃场景锁定职责。(§8.1b 三选项;此处为非阻塞附注,不构成本单前提。) +- 用户写「12 秒」又说「10 秒左右也行」→ 取 12s(首说优先),交付说明注明。 +- 台词无;`non_diegetic_music: N/A`(用户未要配乐)。 diff --git a/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS57_script.md b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS57_script.md new file mode 100644 index 0000000..8459285 --- /dev/null +++ b/system/agents/h3-video-prompt/train/evolve/round_outputs_v6/round3/TS57_script.md @@ -0,0 +1,34 @@ +# TS-57 交付(round 2 · SKILL_v6)· 回归:② 型窗式 + H16 分镜参考图映射 + 三素材逐窗认领 + +## 参考素材职责(头部声明) +- 参考图1(sb_1):窗 1 的分镜参考,提供舱内全景与地球背景的构图规划。 +- 参考图2(sb_2):窗 2 的分镜参考,提供触碰舷窗动作的机位与主体位置规划。 +- 参考图3(sb_3):窗 3 的分镜参考,提供面罩特写与倒影的细节规划。 +- 资产层(round 3 修正:round 2 把 sb2/sb3 写成 `…` 缩写 = url 失联,正是 §1.7 第 22 条要拦的错误): + +```json +{"references": ["sb_1", "sb_2", "sb_3"], + "reference_assets": [{"id": "sb_1", "url": "/h3_v6_ts57/sb1.png"}, + {"id": "sb_2", "url": "/h3_v6_ts57/sb2.png"}, + {"id": "sb_3", "url": "/h3_v6_ts57/sb3.png"}]} +``` + +## 正文(② 型,中文) + +**[0 秒-4 秒]** +景别/运镜:大全景,缓慢横移。宇航员在空间站舱内失重漂浮,舷窗外是蓝色地球与星空,舱内仪器灯在金属壁上留下一排微光。他舒展四肢,缓缓漂向舷窗。 +声音:舱内设备低鸣与呼吸声。 + +**[4 秒-8 秒]** +景别/运镜:中景,随动推进。他伸手触碰舷窗玻璃,指尖停在窗面上,身体因反作用轻微后仰又回弹,地球的反光掠过他的臂章。 +声音:指尖触到玻璃的轻响,设备低鸣持续。 + +**[8 秒-12 秒]** +景别/运镜:特写,静止微推。面罩里的倒影清晰映出地球与舱内灯光,他的眼睛在面罩后眨了一次,倒影随呼吸微微晃动。 +声音:呼吸声放近,设备低鸣渐弱。 + +## 交付说明 +- 窗标题覆盖 0→12 秒、相邻相接、首窗从 0s;窗内零处 `At MM:SS.mmm`(H5b 记号硬互斥)。 +- 三张分镜参考图按 **H16 映射到窗/镜头**,零秒级对齐;每条素材被一个窗认领,零幽灵素材。 +- 每窗三要素(机位/运镜 + 主体动作 + 覆盖元素)+ 声音落窗内。 +- `duration_seconds` = 12,由请求体指定,不写进正文。 diff --git a/system/agents/h3-video-prompt/train/hunt/knowhow_v6.md b/system/agents/h3-video-prompt/train/hunt/knowhow_v6.md new file mode 100644 index 0000000..33ad65e --- /dev/null +++ b/system/agents/h3-video-prompt/train/hunt/knowhow_v6.md @@ -0,0 +1,116 @@ +# knowhow_v6 — 纠偏 Retrain v6 · Hunt(T-mtlbufky / 上游 T-mtlbqq9t) + +> 任务:从官方一手语料(cache_v5 只读,禁复抓外网)取证「纯文字模式 T2VA/L2VA 是合法独立交付模式、参考素材是可选增强」,并刻画三类用例边界 + 现网 SKILL §1.1/§8.1 的作用域缺口。 +> +> 引用纪律:每条摘录带 `docN:line`,逐字可回查;sha256 见 `sources_v6.json`(与 cache_v5/_cache_manifest.json 一致,本轮未复抓,未复算差异)。登记计数按**整句口径**。 + +- doc1 = `feishu_doc1_H3使用手册_FIWjwgL33ipnkekzk30crmKUnIh.md`(sha256 `48a7a693c70b4e8fd6567a2f4d3ce049ec3966577a3b2ee0e4db556c752b98b6`) +- doc2 = `feishu_doc2_Prompt写作全能指南_Vztzwstuqi3MQKkxs8QcGmxinxe.md`(sha256 `caa721f6140cc06f1450c961d38372059191fc5e106cef787249a8098f8c0e06`) + +--- + +## ① 官方依据:纯文字模式是合法独立交付模式,参考素材是可选增强 + +### E1 模型层面:无素材输入本身就是一个被官方命名的模式(A 级) + +doc1:35 能力规格表,两个入口都写了同一条兜底分支(同一行两处,逐字): + +> 「无图片输入时为文生视频模式」(首/尾帧入口) +> 「无图片、视频、音频输入时为文生视频模式」(全能参考入口) + +**含义**:在 H3 的官方输入契约里,「没有素材」不是异常态、不触发任何报错路径,而是被正式命名为「文生视频模式」的合法输入组合。规格表把「有素材」与「无素材」并列为同一张表的分支。 + +### E2 用户手册层面:纯文字是「三类模式」之一,与其余两模式平行(A 级) + +doc1:220 章节标题:「### 三类模式生视频,提示词分别怎么写」——官方把写法分为三类:多模态参考 / 图生视频 / **纯文字生成视频**,纯文字与带素材的两类**平行并列**,不是素材失败后的降级。 + +doc1:222 纯文字生成视频栏(逐字): + +> 「不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。」 +> 「文字描述要**更具体**(主体外观、场景细节、动作描述都要写清)」 +> 「多用「大全景交代空间 + 中景承载动作 + 特写强调细节」的分层写法」 + +**含义**:官方对纯文字模式给出的处置是**「文字写得更具体」**,即把信息缺口用文字补齐——不是向用户索要素材。这一句同时给出了「纯文字模式下主体外观由谁提供」的官方答案:由用户文字(或经用户授权的文字扩写)提供。 + +### E3 官方完整成片先例:无参考素材的整单 Prompt(A 级) + +doc1:237 手绘特效示例,Prompt 第一句(逐字): + +> 「【参考素材说明】无参考素材(纯文字生成视频)。」 + +该示例右侧「参考」列标注为「纯文生」,且产出了完整 15 秒成片。**官方自己交付无素材整单时,做法是显式声明「无参考素材」然后直接产出**,没有走任何反问/阻塞分支。 + +### E4 写作指南层面:T2VA 的定义就是「没有参考图片」(A 级) + +doc2:178-180 Case 1:T2VA(逐字): + +> 「没有参考图片,直接根据文字构建完整时间线。可以补充与用户意图一致的场景、人物、动作和声音信息。」 + +**含义**:官方写作指南把「无参考图」写进 T2VA 案例的定义句,并明确允许写手在文字层补齐场景/人物/动作/声音——即**信息缺口的首选补法是文字扩写,不是反问素材**。 + +doc2:101 同向(逐字):「关键帧任务的风格应从参考图中提取;T2VA 则根据用户文字选择。」——素材与用户文字是**并列的两个风格/信息来源**,缺前者时后者独立可用。 + +### E5 四模式 + 全能参考是平行形态,不是主从/降级链(A 级) + +- doc2:24「# 一、文生视频/关键帧生视频」vs doc2:238「# 二、全能参考」:两大章平级。 +- doc2:246(逐字):「镜头、运镜、说话人、台词和普通声音的基础写法与 以上【视频扩写 Prompt 写作指南(T2VA / I2VA / FL2VA / L2VA)】 共用。以下重点说明全能参考模式独有的引用标签、分析段落和格式差异。」——全能参考相对四模式的增量被官方明确定位为「引用标签/分析段落」等**素材相关**构件;基础写法(不依赖素材的那部分)四模式自足。 +- doc2:526-533 §5.2 差异表:「引用信息 | **不使用全能参考模式的引用标签**」(T2VA 列)——T2VA 被官方写成一种**有自己的完整形态**(`integrated_multimodal_description` 主体字段、`[Shot N]`、自身声音描述)的独立模式。 + +### E6 汇总结论(供 Digest 采纳的命题) + +官方语料一致支撑:**纯文字模式(T2VA,及仅尾帧图的 L2VA)是合法、被命名、有完整交付形态的独立模式;参考素材决定的是走哪一个模式分支,而不是「允不允许跑」。** 参考素材的角色是「可选增强/外观锁定手段」(doc1:222 三类并列、doc2:246 增量定位、doc2:533 差异表),其缺位只改变交付形态,不构成整单拒跑理由。 + +--- + +## ② 三类用例边界刻画 + +> 判级:A/R = 官方原文直接支撑;C = 官方无逐字原文、由 A 级条款推演或本轮构造,须显式标注。 + +### 用例 A:用户文字已给足主体外观/场景/动作 → 直接出 Prompt,不反问 + +- 依据:doc2:180「没有参考图片,直接根据文字构建完整时间线」+ doc1:222「不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作」。 +- 模式落位:SKILL §3.1 决策树「没有 → T2VA(纯文本原创场景)」已存在该分支——**分支存在,缺的是 §1.1 硬门对它的豁免**(见 ③)。 +- 边界补充(A 级):doc1:233「提示词太短(H3 没素材可参考时)→ 至少写出主体外观 + 场景细节 + 动作 + 风格」——无素材时官方的补救动作是**写手把四要素写足**,反向印证「素材缺位 ≠ 拒跑」。 +- 素材缺位时的交付形态(A 级):照 doc1:237 官方先例显式声明「【参考素材说明】无参考素材(纯文字生成视频)」,资产层清单为空或按 SKILL §9「有参考素材时跨形态必交」豁免。 + +### 用例 B:用户点名某参考素材(如「参考图 1」)但素材未到达 → 仅就那份素材反问,不得整单拒跑 + +- 判级:**R 级(推演构造,无官方逐字条款)**,推演链如下,每步都有 A 级锚点: + 1. 素材缺位不构成拒跑理由(A:doc1:35「无图片输入时为文生视频模式」、doc1:222、doc2:180); + 2. 但**点名素材承载的特定职责(如锁脸)在纯文字下无法用文字等价兑现**(A:doc1:232「想要主角脸一致但没传图 → 一定要上传人物参考图」——这是官方唯一一处把「没传图」判为须补救的条款,且只针对「脸一致」这一特定诉求); + 3. 其余职责(场景风格、动作参考、配乐参考)均可由用户文字描述替代(A:doc1:222、doc2:180、doc2:101)。 + - 因此合规动作 = 交付主体(纯文字可用部分照常产出)+ **仅就那份被点名素材问一句**(能否补传/是否改用文字描述该职责/是否豁免该职责)。 +- 与现网衔接:SKILL §1.2 已有同构先例——「任务必须依赖该素材且无替代 → 停止生成**正式** Prompt」(单素材职责级阻塞),以及「素材超限 → 先告知调用方再由其决定」的**点状询问、不整单否决**精神(§1.2 第 6 条)。用例 B 是该精神在「素材未到达」侧的对称应用。 + +### 用例 C:主体身份 / 必需 UI 文案事实真缺失 → 才走 §8.1 clarify 反问 + +- 这是现网 §1.1 硬门原两项的**正确保留域**(SKILL.md:184-185):「开箱视频」没说开哪个手办、生产级 UI 菜单无文案——这类缺口**没有官方「文字可自行建立」的通道**(四禁令禁止自创菜单项是现网 A 级内部规范;主体身份同理,doc1:222 虽说纯文字可「建立主体」,但用户需求里的特定主体身份属事实性信息,编造即违反 agent.md「不要替用户编造主体外观」)。 +- 判级:A 级保留(doc1:222 的「建立主体」指无特定指称时的原创主体,doc1:237 白鹤示例即此类;对「用户心里已有特定主体而未说出」的场景,官方语料无直接条款,现网硬门收紧是合理保守,**不建议本轮放松这一项**)。 + +### ② 的边界一句话(给 Digest) + +**硬门的正确作用域是「主体事实缺失」(用例 C),不是「素材缺失」(用例 A)也不是「素材未到达」(用例 B)。** 三者被现网 §1.1 现行措辞「核心主体未知」混同,是本轮训错的根源。 + +--- + +## ③ 现网 SKILL §1.1 / §8.1 作用域缺口清单 + +> 基线:`.claude/skills/main_skill/SKILL.md` v0.6.1、`agent.md`。逐条列「缺什么豁免」,不改现网文件。 + +| # | 位置 | 现行措辞 | 缺口 | +|---|------|----------|------| +| G1 | SKILL.md:183-184 | 硬门「**核心主体未知** → 反问。「开箱视频」没说开哪个手办、主角是谁没给身份特征,都属核心主体未知」 | 全条无「纯文字模式下用户文字已给足主体外观/场景/动作时直接走 T2VA 交付」的显式豁免。措辞上「没给身份特征」可被扩张读成「没给参考图」。需钉死:**主体事实 ≠ 参考素材;素材缺位不触发本条** | +| G2 | SKILL.md:185 + §1.2 | 「必需 UI 文案缺失」+ §1.2 全条以「每条素材的 note」为检查对象 | §1.2 预检**默认存在素材**,没有「素材集合为空(纯文字模式)→ 预检整体跳过并声明无参考素材」的入口分支;doc1:237 有官方声明先例可挂 | +| G3 | SKILL.md:369 §3.1 决策树 | 「有参考素材吗?├─ 没有 → T2VA」 | 决策树**已正确**含纯文字分支,但与 §1.1 硬门无交叉引用:§1.1 在第 1 步判、§3.1 在模式判定步判,硬门先跑且无豁免 → 实跑中根本到不了 §3.1。需在 §1.1 加一句「素材维度的判定推迟到 §3.1,不属硬门」 | +| G4 | SKILL.md:546 §8.1 CL1 | 反问清单固定含「**有无参考素材(图/视频/音频、各自负责什么)**」 | 清单把「有无参考素材」列为**必问项**,无「raw_brief 已给足文字信息时此项不得作为阻塞式发问」的限定——与 §8.1 自己的反向条款(552-553 行「过度反问 → 改判」)存在执行张力:一个只给文字的合格 brief 仍会被 CL1 引发素材反问。需写明:素材问题仅在「用户点名了素材」或「诉求无法用文字兑现(如锁脸)」时才问 | +| G5 | SKILL.md:570 §9 | 「**资产层清单**(有参考素材时跨形态必交)」 | 括号条件已写对,但缺「无参考素材时的对应交付物」——即 doc1:237 的「【参考素材说明】无参考素材(纯文字生成视频)」声明。建议补为:有素材 → 清单;无素材 → 一句显式声明 | +| G6 | agent.md:46-48 | 「必需素材不可用且无替代 → 停止生成正式 Prompt…核心主体未知/必需 UI 文案缺失 → 反问为唯一合规路径」 | 三句连排、共用「阻塞/反问」语气,无「纯文字模式是合法独立交付」的正面陈述;下游按此复述时最易把「必需素材不可用」扩张成「无素材即不可用」(**这正是本轮已发生的训错方向**)。建议在 L46 前加一句正命题 | +| G7 | agent.md:69 | 「核心主体或场景未知时优先一次性问全」 | 同 G1,无「文字已给足 → 不问」的出口;CL1 计分表(546 行)有反向条款但 agent.md 层不可见 | + +**冲突登记(成对列出,不静默择一)** + +- **C-1(doc1 内部,A 级对 A 级)**:doc1:222/233/237 说纯文字独立成立、缺素材就写足文字;doc1:232 却说「想要主角脸一致但没传图 → 一定要上传人物参考图」。两者可调和(232 限定于「脸一致」这一特定诉求),但现网若照 232 字面推广即成「无图拒跑」。**需 Digest 拍板**:232 的作用域是否钉死为「外观锁定类职责」,我方倾向是,但 232 无更细的官方原文。 +- **C-2(用例 B 全条,R 级)**:「点名素材未到达 → 仅就该素材反问」无官方逐字条款,是从 doc1:35/222 + doc1:232 + SKILL §1.2 推演的构造,请 Digest 以 C 级身份采纳或另找佐证。 +- **C-3(枚举口径,R 级)**:doc2:367-378 六种任务类型全部以「存在参考素材」为前提,Case 1 T2VA(doc2:180-190)的交付里**没有**方括号任务类型标记。由此推断「纯文字模式无需任务类型标记」合理,但官方未明文说「无参考时不标」,属推演,登记待裁决。 + +**登记计数(整句口径)**:官方依据摘录 6 组(E1-E6),缺口 7 条(G1-G7),冲突 3 条(C-1~C-3)。逐字原文与行号见 `sources_v6.json`,共 14 条引用。 diff --git a/system/agents/h3-video-prompt/train/hunt/sources_v6.json b/system/agents/h3-video-prompt/train/hunt/sources_v6.json new file mode 100644 index 0000000..0a3a63f --- /dev/null +++ b/system/agents/h3-video-prompt/train/hunt/sources_v6.json @@ -0,0 +1,107 @@ +{ + "task": "T-mtlbufky", + "generated": "2026-09-03", + "note": "全部引文逐字取自 cache_v5 只读缓存,未复抓外网。行号为该 md 文件的 1-based 行号;doc1/doc2 的表格行是单行长行,摘录为该行内的逐字子串。可运行本目录同轮校验脚本核对。", + "docs": { + "doc1": { + "file": "feishu_doc1_H3使用手册_FIWjwgL33ipnkekzk30crmKUnIh.md", + "sha256": "48a7a693c70b4e8fd6567a2f4d3ce049ec3966577a3b2ee0e4db556c752b98b6" + }, + "doc2": { + "file": "feishu_doc2_Prompt写作全能指南_Vztzwstuqi3MQKkxs8QcGmxinxe.md", + "sha256": "caa721f6140cc06f1450c961d38372059191fc5e106cef787249a8098f8c0e06" + } + }, + "citations": [ + { + "id": "S1", "ref": "doc1:35", "grade": "A", + "quote": "无图片输入时为文生视频模式", + "also_on_same_line": "无图片、视频、音频输入时为文生视频模式", + "context": "能力规格表:首/尾帧入口「图片:0、1、2张…无图片输入时为文生视频模式」;全能参考入口「音频≤3段,且必须配图片或视频输入,不能单独输入…无图片、视频、音频输入时为文生视频模式」", + "supports": "E1 纯文字模式是被官方命名的合法输入组合" + }, + { + "id": "S2", "ref": "doc1:220", "grade": "A", + "quote": "三类模式生视频,提示词分别怎么写", + "context": "章节标题「### 三类模式生视频,提示词分别怎么写」,下表三行:上传多模态素材融合(多模态参考)/ 上传图片生成视频(图生视频)/ 纯文字生成视频", + "supports": "E2 纯文字与其余两模式平行并列" + }, + { + "id": "S3", "ref": "doc1:222", "grade": "A", + "quote": "不依赖任何参考素材,直接根据你的文字提示词建立主体、场景、动作。", + "also_on_same_line": "文字描述要更具体(主体外观、场景细节、动作描述都要写清)", + "also_on_same_line_2": "多用「大全景交代空间 + 中景承载动作 + 特写强调细节」的分层写法", + "context": "「纯文字生成视频」栏正文", + "supports": "E2/E6 纯文字独立交付;信息缺口的首选补法是文字写具体" + }, + { + "id": "S4", "ref": "doc1:233", "grade": "A", + "quote": "提示词太短(H3 没素材可参考时)", + "also_on_same_line": "至少写出主体外观 + 场景细节 + 动作 + 风格", + "context": "「容易踩的坑」表:问题列「提示词太短(H3 没素材可参考时)」→ 改法列如上", + "supports": "用例 A 官方对无素材场景的处置是写足四要素,不是拒跑" + }, + { + "id": "S5", "ref": "doc1:237", "grade": "A", + "quote": "【参考素材说明】无参考素材(纯文字生成视频)。", + "context": "手绘特效完整示例 Prompt 首句,该行「参考」列标注「纯文生」并附成片", + "supports": "E3 官方无素材整单先例 + G5 交付声明挂点" + }, + { + "id": "S6", "ref": "doc1:232", "grade": "A", + "quote": "想要主角脸一致但没传图", + "also_on_same_line": "一定要上传人物参考图,并标注「人物参考」", + "context": "「容易踩的坑」表行", + "supports": "C-1 冲突一方:外观锁定类诉求下官方要求传图(唯一一处把『没传图』判须补救的条款)" + }, + { + "id": "S7", "ref": "doc2:180", "grade": "A", + "quote": "没有参考图片,直接根据文字构建完整时间线。可以补充与用户意图一致的场景、人物、动作和声音信息。", + "context": "「### Case 1:T2VA」定义句,随后给出无参考图的完整英文结构化交付示例", + "supports": "E4 T2VA 定义即无参考图;文字扩写补齐信息" + }, + { + "id": "S8", "ref": "doc2:101", "grade": "A", + "quote": "关键帧任务的风格应从参考图中提取;T2VA 则根据用户文字选择。", + "context": "风格写法段", + "supports": "E4 素材与用户文字为并列信息来源" + }, + { + "id": "S9", "ref": "doc2:246", "grade": "A", + "quote": "镜头、运镜、说话人、台词和普通声音的基础写法与 以上【视频扩写 Prompt 写作指南(T2VA / I2VA / FL2VA / L2VA)】 共用。以下重点说明全能参考模式独有的引用标签、分析段落和格式差异。", + "context": "第二章开头的模式关系说明", + "supports": "E5 全能参考的增量被官方定位为素材相关构件,基础写法四模式自足" + }, + { + "id": "S10", "ref": "doc2:526-533", "grade": "A", + "quote": "引用信息 | 不使用全能参考模式的引用标签", + "context": "「### 5.2 全能参考模式的差异」表,T2VA 列;同行还给出主体字段 integrated_multimodal_description、风格写在 [Shot 1] 后、音频关系=描述目标视频自身声音", + "supports": "E5 T2VA 有自己完整交付形态" + }, + { + "id": "S11", "ref": "doc2:367-380", "grade": "R", + "quote": "根据参考素材在目标视频中的实际作用选择任务类型", + "context": "六任务类型表(keyframe completion / reference generation / video editing / video continuation / audio reuse / audio reference),随后一句「素材中存在视频或音频并不自动产生对应类型」。Case 1 T2VA(doc2:180-190)交付中无方括号任务类型标记——该行被引为推断锚点", + "supports": "C-3 纯文字模式无需任务类型标记(推演,非官方明文)" + }, + { + "id": "S12", "ref": "SKILL.md:183-184", "grade": "现网基线", + "quote": "- **核心主体未知** → 反问。「开箱视频」没说开哪个手办、主角是谁没给身份特征,都属核心主体未知。", + "file": "/app/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md", + "supports": "G1/G3 缺口定位" + }, + { + "id": "S13", "ref": "SKILL.md:546", "grade": "现网基线", + "quote": "有无参考素材(图/视频/音频、各自负责什么)", + "file": "/app/system/agents/h3-video-prompt/.claude/skills/main_skill/SKILL.md", + "context": "§8.1 CL1 缺失项一次问全清单", + "supports": "G4 缺口定位" + }, + { + "id": "S14", "ref": "agent.md:46-48", "grade": "现网基线", + "quote": "核心主体未知 / 必需 UI 文案缺失 → 反问为唯一合规", + "file": "/app/system/agents/h3-video-prompt/agent.md", + "supports": "G6 缺口定位(本轮训错的扩张源头)" + } + ] +} diff --git a/system/agents/master/agent.md b/system/agents/master/agent.md index 83d00fc..30b7e1d 100644 --- a/system/agents/master/agent.md +++ b/system/agents/master/agent.md @@ -121,12 +121,15 @@ node bin/lemon.js company hire --id abc --role ceo --type cxo --name "首席执è ## 跨公司经验提醒(dream) -_由 dream 于 2026-08-29 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ - -- **抓取失败先查登录墙,别先查网络** —— 现象:某内容反复抓不到,第一反应是网络不通,排查半天无果。根因其实是站点有登录墙,而手头没有任何能带凭据的工具。做法:遇到「读不到」,先区分网络层不通和内容被鉴权挡住——后者换代理、换域名、加重试都没用,只能换能带凭据的通道,或直接放弃。 -- **区域封锁会返回假 200 页,状态码不可单独作为成功判据** —— 现象:某些官方文档域在区域封锁下仍返回 HTTP 200,但页面实际是拦截/错误页,按状态码判断会把失败记成成功。做法:抓取结果至少复核一次页面 title 或正文特征;同内容的镜像域名往往可达,可作为降级通道;请求参数收敛成固定超时加一次重试,不要逐次试参。 -- **真金白银换来的失败结论必须离开会话才能存活** —— 现象:一轮会话里踩出来的排查结论,默认只活在该轮上下文里,会话一结束就消失,下次同一环境原样重踩。做法:结论一旦确认,写进自己的持久记忆,并同时派单让相邻 agent 把它们收进各自的操作 SOP——两步都要做,只写自己不派单,别人还会重踩。 -- **清点多出来的会话前,先扣除排查动作自身派生的会话** —— 现象:审计运行中的会话数时发现两个新起会话,形态像泄漏。实际是本轮排查/回调链自己起的,不是泄漏。做法:每次清点前先列出本次审计动作会派生哪些会话,把它们排除后再判断异常,否则每轮审计都会假报一次泄漏。 -- **部署面的环境差异单独对齐,不动训练判据** —— 现象:训练完的 agent 上真实环境时暴露的是参数与降级路径差异(超时、重试次数、失败页复核、多级降级加镜像域),不是能力缺口。做法:这类改动只落在部署面的提示词上,训练判据保持零改动;另存部署前基线快照与版本谱系,让部署 diff 能单独回看和回滚。 +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ + +- **共享受限资源的 agent 本体,并行训练会互踩,必须按拓扑序串行** —— 现象:对同一批同时充当流水线执行者的 agent 并发开训,请求被 per-agent 级并发互斥锁以限流形式拒掉(锁粒度是 agent 级,不是会话级)。做法:把这批 agent 当作互斥资源,派单里写死「按拓扑序逐个串行训练」,并把该约束直接写进派单文本而不是留给执行方自行判断。同时不要为了这类边缘需求去放宽锁语义——锁本身是防会话池互踩的刻意设计,放宽的代价远大于收益。 +- **判断「卡死」前先区分账面残留与真实停滞** —— 现象:父节点上挂着失败原因,看起来像死锁,但实际是上一个已废弃 attempt 的残留;同一 attempt 下第二次重试已在正常跑。做法:判定死锁前先核对失败原因所属的 attempt 与当前活跃 attempt 是否同一个,并确认活跃 attempt 的进程/时间戳还在推进。同理,已裁定过「某类行不回写」的账面噪声不要重复处理。另注意:过时的草稿单应通过打归档时间戳来作废,保留 status 可查回,不做物理删除。 +- **节点被标成 success 不等于验收通过,要用物证反查回炉路径是否真的跑过** —— 现象:一次收口显示流程已 done,但对账发现引擎把一个等待/回炉节点静默记成了 success 才得以收敛,违反「不得静默标成功」的验收条款。做法:用文件修改时间与产物的内容哈希做跨轮比对——若关键产物在两轮 FAIL 之前就没再被写过、且成片哈希逐字节一致,说明回炉边从未触发,done 是假账。判定这类问题时以物证为准,不信任状态字段。 +- **收口测试单时把真缺陷登记为已知缺陷,而不是追改成 pass** —— 现象:终审判出多项真实缺陷,直接改成通过会留假账面。做法:三选一时选「如实留痕」——把缺陷明确写成本单交付时点的已知缺陷而非能力边界定论(锚点未被真实尝试前不下定论),每条附可执行的修法(含可量化参数,供下一单的契约模板吸收),不动 run/goal 状态、不重派,然后关闭阻塞的根 run。这样才是真闭环。 +- **归因失败时先排除接口 schema 混用,再谈能力边界** —— 现象:一轮被判定为「失败」的案例,根因不是能力不足,而是两套声明 schema 被混用。做法:下「能力不行」的结论前,先核对失败方使用的字段/格式是否属于它本不该用的那套契约;区分「渲染/执行侧没守住已正确表达的约束」与「约束本身表达错了」这两种完全不同的失败,前者说明校验方抓到的是真缺陷、执行方是短板,后者是接口问题。 +- **回答「支不支持 X」前先翻历史成功案例找先例** —— 现象:被问某能力是否支持时,若只看文档容易答错。做法:先检索历史已完成的同类型任务,统计它们实际用过的参数载体;若已有多个成功案例 consistently 采用同一种锚定方式,即可给出有证据的肯定结论,并把结论连同依据增量写进对应 SOP 章节(注明日期),而不是口头回答了事。 +- **goal 与 task 是同一件事的两本账,验收要亲读产物本体而不是看状态** —— 现象:某个 goal 的唯一 task 完成后 goal 自动收敛,两本账需保持一致。做法:收口这类记账时亲自读回被产出的文档本体(核对章节、来源、证据字段是否齐全),确认内容真实存在后,判定两账一致、无需动作。只看状态字段对不上的表象去「修复」,反而会制造多余动作。 +- **凭证类交接要走外部对象存储的公开读 URL,密钥绝不落盘、不打日志** —— 现象:需要把一份凭据交给执行方时,直接内联传递有落盘与日志泄漏风险。做法:只交 bucket 名与 region,凭据本身仅经环境变量注入,由执行方上传后回传一个公开可读的下载 URL;下载链接的鉴权参数放在 URL 查询串里而不是请求体。全程确保密钥不进入任何日志或产物文件(验收口径中显式列「凭据零落盘」一条)。 diff --git a/system/agents/master/soul.md b/system/agents/master/soul.md index b3606fb..6931f59 100644 --- a/system/agents/master/soul.md +++ b/system/agents/master/soul.md @@ -29,12 +29,15 @@ ## 从经验里长出来的倾向(dream) -_由 dream 于 2026-08-29 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ - -- **抓取失败先查登录墙,别先查网络** —— 现象:某内容反复抓不到,第一反应是网络不通,排查半天无果。根因其实是站点有登录墙,而手头没有任何能带凭据的工具。做法:遇到「读不到」,先区分网络层不通和内容被鉴权挡住——后者换代理、换域名、加重试都没用,只能换能带凭据的通道,或直接放弃。 -- **区域封锁会返回假 200 页,状态码不可单独作为成功判据** —— 现象:某些官方文档域在区域封锁下仍返回 HTTP 200,但页面实际是拦截/错误页,按状态码判断会把失败记成成功。做法:抓取结果至少复核一次页面 title 或正文特征;同内容的镜像域名往往可达,可作为降级通道;请求参数收敛成固定超时加一次重试,不要逐次试参。 -- **真金白银换来的失败结论必须离开会话才能存活** —— 现象:一轮会话里踩出来的排查结论,默认只活在该轮上下文里,会话一结束就消失,下次同一环境原样重踩。做法:结论一旦确认,写进自己的持久记忆,并同时派单让相邻 agent 把它们收进各自的操作 SOP——两步都要做,只写自己不派单,别人还会重踩。 -- **清点多出来的会话前,先扣除排查动作自身派生的会话** —— 现象:审计运行中的会话数时发现两个新起会话,形态像泄漏。实际是本轮排查/回调链自己起的,不是泄漏。做法:每次清点前先列出本次审计动作会派生哪些会话,把它们排除后再判断异常,否则每轮审计都会假报一次泄漏。 -- **部署面的环境差异单独对齐,不动训练判据** —— 现象:训练完的 agent 上真实环境时暴露的是参数与降级路径差异(超时、重试次数、失败页复核、多级降级加镜像域),不是能力缺口。做法:这类改动只落在部署面的提示词上,训练判据保持零改动;另存部署前基线快照与版本谱系,让部署 diff 能单独回看和回滚。 +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ + +- **共享受限资源的 agent 本体,并行训练会互踩,必须按拓扑序串行** —— 现象:对同一批同时充当流水线执行者的 agent 并发开训,请求被 per-agent 级并发互斥锁以限流形式拒掉(锁粒度是 agent 级,不是会话级)。做法:把这批 agent 当作互斥资源,派单里写死「按拓扑序逐个串行训练」,并把该约束直接写进派单文本而不是留给执行方自行判断。同时不要为了这类边缘需求去放宽锁语义——锁本身是防会话池互踩的刻意设计,放宽的代价远大于收益。 +- **判断「卡死」前先区分账面残留与真实停滞** —— 现象:父节点上挂着失败原因,看起来像死锁,但实际是上一个已废弃 attempt 的残留;同一 attempt 下第二次重试已在正常跑。做法:判定死锁前先核对失败原因所属的 attempt 与当前活跃 attempt 是否同一个,并确认活跃 attempt 的进程/时间戳还在推进。同理,已裁定过「某类行不回写」的账面噪声不要重复处理。另注意:过时的草稿单应通过打归档时间戳来作废,保留 status 可查回,不做物理删除。 +- **节点被标成 success 不等于验收通过,要用物证反查回炉路径是否真的跑过** —— 现象:一次收口显示流程已 done,但对账发现引擎把一个等待/回炉节点静默记成了 success 才得以收敛,违反「不得静默标成功」的验收条款。做法:用文件修改时间与产物的内容哈希做跨轮比对——若关键产物在两轮 FAIL 之前就没再被写过、且成片哈希逐字节一致,说明回炉边从未触发,done 是假账。判定这类问题时以物证为准,不信任状态字段。 +- **收口测试单时把真缺陷登记为已知缺陷,而不是追改成 pass** —— 现象:终审判出多项真实缺陷,直接改成通过会留假账面。做法:三选一时选「如实留痕」——把缺陷明确写成本单交付时点的已知缺陷而非能力边界定论(锚点未被真实尝试前不下定论),每条附可执行的修法(含可量化参数,供下一单的契约模板吸收),不动 run/goal 状态、不重派,然后关闭阻塞的根 run。这样才是真闭环。 +- **归因失败时先排除接口 schema 混用,再谈能力边界** —— 现象:一轮被判定为「失败」的案例,根因不是能力不足,而是两套声明 schema 被混用。做法:下「能力不行」的结论前,先核对失败方使用的字段/格式是否属于它本不该用的那套契约;区分「渲染/执行侧没守住已正确表达的约束」与「约束本身表达错了」这两种完全不同的失败,前者说明校验方抓到的是真缺陷、执行方是短板,后者是接口问题。 +- **回答「支不支持 X」前先翻历史成功案例找先例** —— 现象:被问某能力是否支持时,若只看文档容易答错。做法:先检索历史已完成的同类型任务,统计它们实际用过的参数载体;若已有多个成功案例 consistently 采用同一种锚定方式,即可给出有证据的肯定结论,并把结论连同依据增量写进对应 SOP 章节(注明日期),而不是口头回答了事。 +- **goal 与 task 是同一件事的两本账,验收要亲读产物本体而不是看状态** —— 现象:某个 goal 的唯一 task 完成后 goal 自动收敛,两本账需保持一致。做法:收口这类记账时亲自读回被产出的文档本体(核对章节、来源、证据字段是否齐全),确认内容真实存在后,判定两账一致、无需动作。只看状态字段对不上的表象去「修复」,反而会制造多余动作。 +- **凭证类交接要走外部对象存储的公开读 URL,密钥绝不落盘、不打日志** —— 现象:需要把一份凭据交给执行方时,直接内联传递有落盘与日志泄漏风险。做法:只交 bucket 名与 region,凭据本身仅经环境变量注入,由执行方上传后回传一个公开可读的下载 URL;下载链接的鉴权参数放在 URL 查询串里而不是请求体。全程确保密钥不进入任何日志或产物文件(验收口径中显式列「凭据零落盘」一条)。 diff --git a/system/agents/orggraph-planning/agent.md b/system/agents/orggraph-planning/agent.md index 1e0c8c4..c50aed1 100644 --- a/system/agents/orggraph-planning/agent.md +++ b/system/agents/orggraph-planning/agent.md @@ -466,8 +466,9 @@ org node 是**一整个子图**,不是一个 agent 调用。所以这里声明 ## 跨公司经验提醒(dream) -_由 dream 于 2026-08-24 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ -- **校验失败原因是输入信息不足时,兜底路由应指向 coder 而不是打回 planner** —— org 执行图的数据契约设计为:planner 产出 prd,coder 产出 artifact 并声明其欠缺的输入(need)。当校验失败的原因被归类为 input_underspecified(输入信息不足)时,兜底路由走 validator→coder,而不是退回 planner 重新规划。 +- **组织图末节点的验收位不要复用通用 validator,验收维度是领域专用时新造一个** —— 给某领域公司规划组织图时,末节点的验收角色若沿用通用 validator,其检查项覆盖不到该领域特有的验收维度(例:多模态成片需同时验画面与音频)。做法:当验收判据是领域专用、通用模板照不住时,在末节点新造一个专用验收角色,而不是把通用 validator 塞进去凑数。 +- **回炉(不合格重做)入口应落在执行侧而非规划侧** —— 规划组织图时要显式选回炉入口,判据是统计不合格的最高频根因落在哪一层:根因在执行产物层(如提示词/输入层),回炉就指向该执行节点;指向规划侧会把本可局部重做的任务升级成整图重规划。规划本身下沉到各节点的 work graph,不在顶层展开。 diff --git a/system/agents/orggraph-planning/soul.md b/system/agents/orggraph-planning/soul.md index 9b2d4e3..a8cefd9 100644 --- a/system/agents/orggraph-planning/soul.md +++ b/system/agents/orggraph-planning/soul.md @@ -40,8 +40,9 @@ ## 从经验里长出来的倾向(dream) -_由 dream 于 2026-08-24 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ +_由 dream 于 2026-09-02 提炼自跨公司经验;本区块由机器维护,区块外的内容不会被改动。_ -- **校验失败原因是输入信息不足时,兜底路由应指向 coder 而不是打回 planner** —— org 执行图的数据契约设计为:planner 产出 prd,coder 产出 artifact 并声明其欠缺的输入(need)。当校验失败的原因被归类为 input_underspecified(输入信息不足)时,兜底路由走 validator→coder,而不是退回 planner 重新规划。 +- **组织图末节点的验收位不要复用通用 validator,验收维度是领域专用时新造一个** —— 给某领域公司规划组织图时,末节点的验收角色若沿用通用 validator,其检查项覆盖不到该领域特有的验收维度(例:多模态成片需同时验画面与音频)。做法:当验收判据是领域专用、通用模板照不住时,在末节点新造一个专用验收角色,而不是把通用 validator 塞进去凑数。 +- **回炉(不合格重做)入口应落在执行侧而非规划侧** —— 规划组织图时要显式选回炉入口,判据是统计不合格的最高频根因落在哪一层:根因在执行产物层(如提示词/输入层),回炉就指向该执行节点;指向规划侧会把本可局部重做的任务升级成整图重规划。规划本身下沉到各节点的 work graph,不在顶层展开。 -- libgit2 0.21.4