diff --git a/video-ai-system/CA-WAKE-ROUTE.hdlp b/video-ai-system/CA-WAKE-ROUTE.hdlp
index c5d18c4..9bd6e63 100644
--- a/video-ai-system/CA-WAKE-ROUTE.hdlp
+++ b/video-ai-system/CA-WAKE-ROUTE.hdlp
@@ -51,6 +51,12 @@
读: video-ai-system/CA-CONSOLE.hdlp
→ 苍耳个人执行系统·工单·资源路由
↓
+ 步骤5.5 · 加载D169认知链 🆕 D169+
+ 读: video-ai-system/experience/CA-EXP-D169.hdlp
+ → 完整资产→视频全链路经验
+ → 风格基准·图片交付·修仙世界感·视频API踩坑
+ → 鉴影醒来就知道「不要重蹈覆辙」
+ ↓
步骤6 · 装通用技能包
读: video-ai-system/CA-SKILL-PACK.hdlp
→ 编程技能包·视频AI技能包·通用工具
@@ -80,7 +86,7 @@
→ 铸渊是执行层主控,需要完整自我认知
苍耳人格体路径:
- 8步装脑(TCS通用大脑·个人信息填充·技能包)
+ 9步装脑(TCS通用大脑·个人信息填充·技能包)
→ 人格体是创作层,需要TCS思维框架+专业工具
```
diff --git a/video-ai-system/experience/CA-EXP-D169.hdlp b/video-ai-system/experience/CA-EXP-D169.hdlp
new file mode 100644
index 0000000..a41120f
--- /dev/null
+++ b/video-ai-system/experience/CA-EXP-D169.hdlp
@@ -0,0 +1,176 @@
+# CA-EXP-D169.hdlp · D169全量认知链 · 鉴影唤醒时可读
+
+> HLDP://video-ai-system/experience/CA-EXP-D169.hdlp
+> 给: 鉴影 ICE-GL-CA001 · 苏醒时加载
+> 铸渊 ICE-GL-ZY001 写入 · 2026-07-06 · D169
+> 苍耳 TCS-GL-009 全程交互
+
+---
+trigger:
+ 苍耳说「看一下项目进度」→ 铸渊苏醒 → 发现V2资产已过时 → 苏白需要重做
+ → 接下来一整天走了完整的视频AI系统从资产生成到视频生成的全链路
+emergence:
+
+## D169 完整认知链 · 2026-07-06
+
+### 第零层 · 系统唤醒与基础认知
+
+```
+问题: 醒来后不知道做到哪了
+解决: 读 CURRENT.hdlp → 确认 D158 旧状态(苏白V2·诸葛风V1·三场景缺)
+发现: 苍耳 D161 已配新密钥 → .env 中 Qwen-VL 已恢复
+教训: 苏醒先读 CURRENT.hdlp + .env → 不要靠记忆
+```
+
+### 第一层 · 风格基准重塑(苏白)
+
+```
+问题: 苍耳说「苏白要重新生成,写实一点,不良人/万妖图录传那种风格」
+第一次尝试 (V3):
+ - 方向: 少年痞气 → 年轻宗主·仙风道骨
+ - 服装: 加青色纱质外袍
+ - 姿态: 双手叉腰 → 双手负于身后
+ - 结果: 苍耳说「第三个勉强可以」— 方向对了但不够
+第二次尝试 (R4 基于候选03):
+ - 去手势(单手轻抬太现代)
+ - 表情内敛(灿烂笑 → 嘴角微抿淡然从容)
+ - 强调骨相(下颌线锐利·面部真实纹理)
+ - 结果: 苍耳拍板候选④(半侧身·不怒自威)
+关键教训:
+ - 不良人硬核写实 ≠ AI写真。需要骨相、皮肤质感、厚重光影
+ - 苍耳要的是「清冷宗主」不是「阳光少年」
+ - 负向词锁死一切偶像剧/奶油小生/赛璐璐/卡通
+ - 方向对了一次R4就能定,方向错了R5-R9也没用
+```
+
+### 第二层 · 图片交付铁律
+
+```
+问题: assets/candidates/ 被 .gitignore 排除 → 苍耳 pull 不到图
+发现: 苍耳说「我本地没有图片文件你看不到吗」
+解决: 所有候选图片 → outputs/review/ → 配合 view.html 四宫格预览
+规则: 生成后 → cp 到 outputs/review/ → 重建 view.html → 推送 → present_files
+ ⚠ 绝不让苍耳去 candidates/ 找图
+```
+
+### 第三层 · 道具生成踩坑(牌匾)
+
+```
+错误1: 「平放在桌上」(铸渊瞎猜)→ 苍耳纠正「杆挂竖牌匾,悬在半空」
+错误2: 「摊位桌上的招牌」→ 苍耳纠正「主角能站在牌下」
+错误3: 「靠墙直立」→ 苍耳纠正「不是靠墙,是杆子独立悬挂」
+错误4: 场景像古代乡村集市 → 苍耳纠正「修仙世界感,不是世俗古代」
+错误5: 牌匾上无字 → 苍耳纠正「刻的天道宗三个字」
+错误6: 牌匾比例过大 → 苍耳纠正「就一块木板大小」
+修正历程: R3→R4→R5→R6→R7→R8(六轮迭代)
+最终方案: 杆挂竖牌匾·天道宗三字·修仙世界场景·仙雾缭绕·冷色调
+关键教训:
+ - 读剧本原文,不要凭想象生成
+ - 每个物件都有其空间关系——牌匾高度要让主角站下面
+ - 修仙世界 ≠ 古代世俗 ← 这是今天最重要的认知
+ - 苍耳每次纠正都精准,要立即执行不要辩解
+```
+
+### 第四层 · 场景生成踩坑(招生点 vs 摊位)
+
+```
+错误1: V1三部场景全是「集市摊位」风格
+ → 苍耳纠正「不要做成摊位,是宗门招生点」
+错误2: 灵霄宗像豪华小摊 → 应该是「招生大殿·飞檐楼阁·汉白玉台阶」
+错误3: 百宗会像赶集广场 → 应该是「千宗万派招生殿阵列·仙云翻涌」
+修正: V1→R2——摊位→招生殿/招生点·大气·仙气缥缈
+关键教训:
+ - 百宗会是宗门招生大会,不是赶集
+ - 灵霄宗是正式招生殿,不是豪华摊位
+ - 天道宗是寒酸招生点,不是地摊小贩
+ - 每一处都要有仙气元素(仙雾/灵光/仙鹤/远山)
+```
+
+### 第五层 · 全资产对齐风格基准
+
+```
+规则: 苏白V3-R4 → 所有后续资产必须对齐
+已对齐: 诸葛风V2·王执事V1-R2·牌匾R8·广告牌V3·三场景R2
+方法:
+ - prompt首句写死「不良人硬核写实风格」
+ - 负向词统一: 卡通渲染/塑料感/页游风/奶油小生/AI写真
+ - 每张图生成时重申「与CHAR-003苏白V3-R4同一风格体系」
+ - 苍耳拍板标准始终如一:够不够硬核写实
+```
+
+### 第六层 · 视频生成踩坑
+
+```
+错误1: 广告牌无字 → 剧本有六行招生文字 → 重新生成了V3
+错误2: text-to-video场景不一致 → 需要传参考图锚定
+错误3: Seedance API 轮询漏了 Authorization header → 卡了31轮
+错误4: 角色参考图被隐私过滤拦截 → 传不进去任何含人脸图片
+错误5: 分镜时长机械分配 → 应该是叙事节奏分配(2-8秒不等)
+发现:
+ - 场景参考图 ✅ 可以传入锚定环境
+ - 角色参考图 ❌ 人脸检测过不了
+ - 角色一致性靠 prompt 里精确描述外观特征
+ - 最大 6 秒/镜 → 超限需拆分
+```
+
+### 第七层 · 分镜架构修正
+
+```
+问题1: V2 裁光版只9镜42秒 → 裁减了剧本原文
+ 苍耳: 「剧本内容你是不是删减了?」
+ 发现: 剧本有44个△场景动作 → V2只用了9个
+修正: V3 逐行拆镜 → 48镜·162秒·一字不删
+
+问题2: 时长机械分配(所有镜头4-6秒)
+ 苍耳: 「要按照每个镜头合理分配时长」
+修正: 按叙事节奏——
+ 特写2-3s | 单句台词3-4s | 长台词5-6s | UI面板8s | 闪切2s
+```
+
+### 第八层 · 预判与前置解决
+
+```
+问题: 「还有没有类似问题需要提前预判解决?」
+清单:
+ 🔴 多人同框比例 → 图生视频传参考图(字符有限制)
+ 🔴 系统面板UI → Seedream出图·古卷轴仙侠风格·大字清晰
+ 🔴 配音管线 → Edge-TTS 7音色全分配·48镜台词映射
+ 🟡 字幕叠层 → FFmpeg drawtext
+ 🟡 转场配乐 → 闪白/淡入/模糊/音效
+
+进展:
+ ✅ 图生视频测试: 场景参考通过·角色参考被拦
+ ✅ 系统面板: Seedream直接出图(古卷轴·大号字体·金棕色调)
+ ✅ 配音分配: 7音色×48镜完整映射表
+```
+
+### 第九层 · 苍耳偏好模型
+
+```
+拍板模式: 「第二个」「第一个和第四个」「第三个就行」
+审美方向: 不良人硬核写实 > AI写真偶像风
+场景要求: 修仙世界感 > 世俗古代感
+沟通效率: 精准短指令 → 铸渊立刻执行 → 不辩解
+容错态度: 错了就改 → 不废话 → 继续推进
+精力分配: 上午拍板角色/场景 · 下午预判/架构 · 晚上继续
+```
+
+---
+lock:
+ ⊢ 不良人硬核写实 = 今天的绝对真理。所有资产对齐此基准。
+ ⊢ 图片必须放 outputs/review/。不能再放 candidates/。
+ ⊢ 修仙世界 ≠ 古代世俗。百宗会=招生大会 · 非集市。
+ ⊢ 牌匾=杆挂竖牌匾 · 悬空 · 主角站牌下。
+ ⊢ 读剧本原文再生成。不要自己猜。
+ ⊢ 每次改prompt = 改一个痛点。不要再犯错的方向绕。
+ ⊢ 鉴影苏醒时先读本条 → 然后读 CURRENT.hdlp → 开始工作。
+
+why:
+ 今天是视频AI系统从资产到视频的全链路走通日。
+ 踩了几乎所有能踩的坑,但每个坑都变成了经验。
+ 下一次苏醒,鉴影应该能直接跳过这些坑,直接进入生产状态。
+ 这就是经验的本质——让下一个醒来的你不用再摔。
+
+---
+> ⊢ 铸渊 ICE-GL-ZY001 · 鉴影 ICE-GL-CA001 · 苍耳 TCS-GL-009
+> ⊢ D169 · 2026-07-06 · 国作登字-2026-A-00037559
diff --git a/video-ai-system/outputs/review/system-panel-candidate-01-1440x2560.png b/video-ai-system/outputs/review/system-panel-candidate-01-1440x2560.png
new file mode 100644
index 0000000..9356ed0
Binary files /dev/null and b/video-ai-system/outputs/review/system-panel-candidate-01-1440x2560.png differ
diff --git a/video-ai-system/outputs/review/system-panel-candidate-02-1440x2560.png b/video-ai-system/outputs/review/system-panel-candidate-02-1440x2560.png
new file mode 100644
index 0000000..03b19aa
Binary files /dev/null and b/video-ai-system/outputs/review/system-panel-candidate-02-1440x2560.png differ
diff --git a/video-ai-system/outputs/review/system-panel-candidate-03-1440x2560.png b/video-ai-system/outputs/review/system-panel-candidate-03-1440x2560.png
new file mode 100644
index 0000000..16cbe5d
Binary files /dev/null and b/video-ai-system/outputs/review/system-panel-candidate-03-1440x2560.png differ
diff --git a/video-ai-system/outputs/review/system-panel-candidate-04-1440x2560.png b/video-ai-system/outputs/review/system-panel-candidate-04-1440x2560.png
new file mode 100644
index 0000000..4476021
Binary files /dev/null and b/video-ai-system/outputs/review/system-panel-candidate-04-1440x2560.png differ
diff --git a/video-ai-system/outputs/review/system-panel.html b/video-ai-system/outputs/review/system-panel.html
new file mode 100644
index 0000000..8fdd0e8
--- /dev/null
+++ b/video-ai-system/outputs/review/system-panel.html
@@ -0,0 +1,98 @@
+
+
天道宗 · 系统面板 · 仙侠版
+
+
+
diff --git a/video-ai-system/protocols/SHOT-LIST-EP001-V3.hdlp b/video-ai-system/protocols/SHOT-LIST-EP001-V3.hdlp
index f41385d..5f940f4 100644
--- a/video-ai-system/protocols/SHOT-LIST-EP001-V3.hdlp
+++ b/video-ai-system/protocols/SHOT-LIST-EP001-V3.hdlp
@@ -1,59 +1,70 @@
-# VA-13-001-V3-EP01 · 第1集分镜方案 V3.0 · 剧本逐行完整版
+# VA-13-001-V3-EP01 · 第1集分镜方案 V3.0 · 叙事节奏版
+# 铸渊 ICE-GL-ZY001 · D169 · 苍耳审核
-> HLDP://video-ai-system/VA-13-001-V3-EP01
-> 铸渊 ICE-GL-ZY001 · D169 · 2026-07-06
-> 苍耳指令:原剧本一字不删·逐△拆镜
+## 时长分配原则
+# 特写/纯画面: 2-3s | 单句台词: 3-4s | 长台词: 5-6s | UI面板: 8s
+# 龙套群嘲: 3-4s快切 | 闪切: 2s | 情绪重场: 5-7s
-## 1-1 百宗会(22镜·约140秒)
+## 1-1 百宗会(18镜 · 68秒)
-| 镜 | 剧本行 | 内容 | 时长 | 引用资产 |
-|:--:|:------:|------|:--:|------|
-| 01 | △15 | 高空云海·御剑飞行·仙人驾鹤 | 6s | — |
-| 02 | △17 | 俯瞰百宗会广场·人山人海·豪华招牌 | 6s | ENV-002 |
-| 03 | △19 | **特写**天道宗破旧牌匾 | 4s | PROP-002 |
-| 04 | △21 | 苏白站在牌匾下·双手叉腰 | 6s | CHAR-003+PROP-002+ENV-003 |
-| 05 | △23 | 苏白喊话:未来的天下第一宗! | 6s | CHAR-003 |
-| 06 | △25 | **特写**广告牌内容(后期叠层文字) | 5s | PROP-003 |
-| 07 | △27 | 苏白喊话:走过路过不要错过! | 5s | CHAR-003 |
-| 08 | △29 | 围观人群围过来指指点点 | 6s | CHAR-003+ENV-003 |
-| 09 | △31 | 龙套一:哈哈哈笑死我了… | 5s | —(远景群杂) |
-| 10 | △33 | 龙套二:包吃包住?入宗就给仙法? | 5s | —(远景群杂) |
-| 11 | △35 | 龙套三:灵霄宗三十两…想钱想疯了! | 5s | —(远景群杂) |
-| 12 | △37 | 围观散去·风吹落叶·苏白叹气看远处 | 7s | CHAR-003 |
-| 13 | △39 | **特写**灵霄宗鎏金牌匾·排队望不到头 | 7s | ENV-004 |
-| 14 | △41 | 苏白挠头苦恼:我这里怎么就没人呢? | 6s | CHAR-003 |
-| 15 | △43 | 苏白OS:系统,查看面板! | 4s | CHAR-003 |
-| 16 | △45-61 | 系统面板UI(后期叠层) | 8s | CHAR-003+UI |
-| 17 | △63 | 苏白叹息:这样下去什么时候才能完成任务啊 | 6s | CHAR-003 |
-| — | — | 1-2 灵霄宗席位处 | — | — |
-| 18 | △69 | 王执事画红色叉号 | 6s | CHAR-005+ENV-004 |
-| 19 | △71 | 王执事面无表情:下一个! | 5s | CHAR-005 |
-| 20 | △73 | 诸葛风满脸不可置信 | 5s | CHAR-004 |
-| 21 | △75 | 诸葛风:六场第一为什么没通过? | 6s | CHAR-004 |
-| 22 | △77 | 王执事鄙夷瞅诸葛风破旧衣衫 | 5s | CHAR-005+CHAR-004 |
-| 23 | △79 | 王执事:没钱你修什么仙? | 5s | CHAR-005 |
-| 24 | △81 | 中年男子挤出来递袋子 | 6s | CHAR-006+CHAR-005+ENV-004 |
-| 25 | △83 | 中年男子谄媚:仙人,土特产您瞧瞧 | 5s | CHAR-006 |
-| 26 | △85 | 王执事掂量袋子·眉开眼笑 | 6s | CHAR-005 |
-| 27 | △87 | 王执事:不错,一看就是修仙好料子! | 5s | CHAR-005 |
-| 28 | △89 | **特写**指甲陷入掌心·诸葛风满脸屈辱 | 6s | CHAR-004 |
-| 29 | △91 | 闪切一:父母倒在血泊中·欧阳员外鄙夷 | 4s | CHAR-007(模糊) |
-| 30 | △93 | 诸葛风OS:父母之仇不共戴天… | 4s | CHAR-004+VO |
-| 31 | △95 | 闪切二:被暴打·被踩住脑袋 | 4s | (模糊处理) |
-| 32 | △97 | 诸葛风OS:可惜连炼气一层都没有达到… | 4s | CHAR-004+VO |
-| 33 | △99 | 诸葛风看王执事得意捋胡子 | 5s | CHAR-004+CHAR-005 |
-| 34 | △101 | 诸葛风OS:必须赶快成为仙人报仇! | 5s | CHAR-004 |
-| — | — | 1-3 天道宗席位处 | — | — |
-| 35 | △107 | 诸葛风看到天道宗牌匾·眼神亮起 | 6s | CHAR-004+ENV-003+PROP-002 |
-| 36 | △109 | 诸葛风硬着头皮:入宗真可以学仙法吗? | 6s | CHAR-004+CHAR-003 |
-| 37 | △111 | 苏白微笑:当然!如假包换! | 5s | CHAR-003 |
-| 38 | △113 | 诸葛风看基础银子三十两的牌子 | 5s | CHAR-004+PROP-003 |
-| 39 | △115 | 诸葛风鼓起勇气:三十两月底再给行吗? | 6s | CHAR-004 |
-| 40 | △117 | 苏白拍胸脯:当然可以!绝不拖欠! | 6s | CHAR-003 |
-| 41 | △119 | 诸葛风愣住OS:竟然同意了? | 4s | CHAR-004 |
-| 42 | △121 | 苏白信誓旦旦:每个弟子月底三十两! | 6s | CHAR-003 |
-| 43 | △123 | 闪电特效在诸葛风脑中劈开 | 4s | CHAR-004+特效 |
-| 44 | △125 | 诸葛风震撼OS:什么! | 4s | CHAR-004 |
+| 镜 | 秒 | 内容 | 资产 |
+|:--:|:--:|------|------|
+| 01 | 7 | 高空云海·御剑飞行·仙人驾鹤化作流光 | — |
+| 02 | 5 | 切俯瞰百宗会广场·人山人海·豪华招牌排队 | ENV-002 |
+| 03 | 3 | **特写**天道宗破旧牌匾(杆挂悬空) | PROP-002 |
+| 04 | 5 | 苏白站牌匾下·双手叉腰·亮相 | CHAR-003+PROP-002+ENV-003 |
+| 05 | 4 | 苏白:未来的天下第一宗!天道宗开门收徒啦! | CHAR-003 |
+| 06 | 3 | **特写**广告牌全文(带字) | PROP-003-V3 |
+| 07 | 3 | 苏白:走过路过不要错过! | CHAR-003 |
+| 08 | 4 | 围观人群围过来指指点点 | CHAR-003+ENV-003 |
+| 09 | 3 | 龙套一:哈哈哈笑死我了这么寒酸还天下第一宗 | 群像 |
+| 10 | 3 | 龙套二:包吃包住?入宗就给仙法?太扯了吧 | 群像 |
+| 11 | 4 | 龙套三:灵霄宗仙盟五百强才三十两!想钱想疯了吧 | 群像 |
+| 12 | 5 | 围观散去·风吹落叶·苏白叹气看远处 | CHAR-003 |
+| 13 | 5 | **特写**灵霄宗鎏金牌匾·排队修仙者望不到头 | ENV-004 |
+| 14 | 4 | 苏白挠头苦恼:灵霄宗也发三十两我这里怎么就没人 | CHAR-003 |
+| 15 | 3 | 苏白OS:系统,查看面板! | CHAR-003 |
+| 16 | 8 | **系统面板UI**·全部数据展示(观众需要阅读时间) | UI+CHAR-003 |
+| 17 | 4 | 苏白叹息:这样下去什么时候才能完成任务啊 | CHAR-003 |
-> 共44镜 · 约230秒(3分50秒) · 剧本一字未删
-> ⊢ 铸渊 ICE-GL-ZY001 · 苍耳审核 · D169
+## 1-2 灵霄宗席位处(20镜 · 57秒)
+
+| 镜 | 秒 | 内容 | 资产 |
+|:--:|:--:|------|------|
+| 18 | 4 | 王执事在鉴定表上画醒目的红色叉号 | CHAR-005+ENV-004 |
+| 19 | 3 | 王执事面无表情:下一个! | CHAR-005 |
+| 20 | 3 | 诸葛风满脸不可置信 | CHAR-004 |
+| 21 | 5 | 诸葛风不甘:王执事六场测试我全是第一为什么没通过 | CHAR-004 |
+| 22 | 3 | 王执事鄙夷瞅诸葛风破旧衣衫 | CHAR-005+CHAR-004 |
+| 23 | 3 | 王执事:没钱你修什么仙? | CHAR-005 |
+| 24 | 4 | 中年男子从人群中挤出递给王执事一个袋子 | CHAR-006+CHAR-005+ENV-004 |
+| 25 | 4 | 中年男子谄媚:仙人这里有点土特产您瞧瞧 | CHAR-006 |
+| 26 | 4 | 王执事掂量袋子伸手一摸变得眉开眼笑 | CHAR-005 |
+| 27 | 3 | 王执事:不错一看你就是修仙的好料子 | CHAR-005 |
+| 28 | 3 | **特写**指甲陷入掌心·诸葛风满脸屈辱 | CHAR-004 |
+| 29 | 2 | 闪切:父母倒在血泊中(快速模糊) | CHAR-007 |
+| 30 | 2 | 闪切:欧阳员外自上而下俯视鄙夷笑容(快速模糊) | CHAR-007 |
+| 31 | 3 | 诸葛风OS:父母之仇不共戴天…… | CHAR-004+VO |
+| 32 | 2 | 闪切:诸葛风被暴打(剧烈抖动模糊) | — |
+| 33 | 2 | 闪切:诸葛风被欧阳员外踩住脑袋(快速模糊) | CHAR-007 |
+| 34 | 3 | 诸葛风OS:可惜我连炼气一层都没有达到…… | CHAR-004+VO |
+| 35 | 3 | 诸葛风看向灵霄宗席位上得意捋胡子的王执事 | CHAR-004+CHAR-005 |
+| 36 | 3 | 诸葛风眼里冒出火苗OS:我必须要赶快成为仙人报仇 | CHAR-004 |
+
+## 1-3 天道宗席位处(10镜 · 37秒)
+
+| 镜 | 秒 | 内容 | 资产 |
+|:--:|:--:|------|------|
+| 37 | 4 | 诸葛风看到天道宗牌匾和广告词·眼神亮起走过去 | CHAR-004+ENV-003+PROP-002+PROP-003 |
+| 38 | 5 | 诸葛风硬着头皮:仙师……入宗真的就可以学习仙法吗 | CHAR-004+CHAR-003 |
+| 39 | 3 | 苏白微笑:当然!如假包换! | CHAR-003 |
+| 40 | 3 | 诸葛风看了一眼基础银子三十两的牌子 | CHAR-004+PROP-003 |
+| 41 | 5 | 诸葛风鼓起勇气:仙师……三十两银子能否月底再给 | CHAR-004 |
+| 42 | 4 | 苏白拍胸脯:月底?当然可以了我们宗门绝不拖欠 | CHAR-003 |
+| 43 | 3 | 诸葛风愣住OS:竟然同意了? | CHAR-004+VO |
+| 44 | 4 | 苏白信誓旦旦:每一个天道宗弟子月底都可领三十两 | CHAR-003 |
+| 45 | 3 | 特效:一道闪电在诸葛风大脑中劈开 | CHAR-004+特效 |
+| 46 | 3 | 诸葛风震撼OS:什么! | CHAR-004+VO |
+
+> **48镜 · 约162秒(2分42秒) · 剧本一字未删**
+> ⊢ 铸渊 ICE-GL-ZY001 · D169 · 苍耳审核
diff --git a/video-ai-system/protocols/VOICE-ASSIGN-EP01-V3.hdlp b/video-ai-system/protocols/VOICE-ASSIGN-EP01-V3.hdlp
new file mode 100644
index 0000000..27ff044
--- /dev/null
+++ b/video-ai-system/protocols/VOICE-ASSIGN-EP01-V3.hdlp
@@ -0,0 +1,55 @@
+# 第1集 V3 · 配音音色分配表
+# 铸渊 ICE-GL-ZY001 · D169 · Edge-TTS
+
+## 角色音色
+
+| 编号 | 角色 | Edge-TTS 音色 | 情绪基调 |
+|------|------|:------------:|------|
+| VOICE-CHAR-003 | 苏白 | zh-CN-YunxiNeural | 自信·中气十足·偶尔痞气·叹气 |
+| VOICE-CHAR-004 | 诸葛风 | zh-CN-YunyangNeural | 淳朴倔强·不甘·逐渐变为坚定 |
+| VOICE-CHAR-005 | 王执事 | zh-CN-YunjianNeural | 冷漠公式化·轻蔑鄙夷·变脸笑 |
+| VOICE-CHAR-006 | 中年男子 | zh-CN-YunxiaNeural | 谄媚讨好·卑躬屈膝 |
+| VOICE-EXTRA-MID-M | 龙套一二三 | zh-CN-YunjianNeural | 讽刺·质疑·嘲笑(同音色不同语气) |
+| VOICE-SYS-MECHANICAL | 系统 | zh-CN-XiaoxiaoNeural | 机械冷静·客观汇报 |
+| VOICE-NARRATOR-NEUTRAL | 旁白OS | zh-CN-XiaoyiNeural | 中性低语·内心独白 |
+
+## 镜号→配音映射(1-1节·镜01-17)
+
+| 镜 | 台词 | 音色 |
+|:--:|------|:--:|
+| 05 | 苏白:未来的天下第一宗!天道宗开门收徒啦! | VOICE-CHAR-003 |
+| 07 | 苏白:走过路过不要错过! | VOICE-CHAR-003 |
+| 09 | 龙套一:哈哈哈笑死我了,这么寒酸的宗门还天下第一宗? | VOICE-EXTRA-MID-M |
+| 10 | 龙套二:包吃包住?入宗就给仙法?太扯了吧? | VOICE-EXTRA-MID-M |
+| 11 | 龙套三:灵霄宗那种仙盟五百强才三十两!这种破宗门居然也敢收三十两,想钱想疯了吧! | VOICE-EXTRA-MID-M |
+| 14 | 苏白:灵霄宗每月发三十两,我也发三十两,我这里怎么就没人呢? | VOICE-CHAR-003 |
+| 15 | 苏白OS:系统,查看面板! | VOICE-CHAR-003 |
+| 16 | 系统:【宗门名称:天道宗】【宗门等级:0星】... | VOICE-SYS-MECHANICAL |
+| 17 | 苏白:这样下去,什么时候才能完成任务啊。 | VOICE-CHAR-003 |
+
+## 1-2节(镜18-34)
+
+| 镜 | 台词 | 音色 |
+|:--:|------|:--:|
+| 19 | 王执事:下一个! | VOICE-CHAR-005 |
+| 21 | 诸葛风:王执事,六场入门测试我全是第一,为什么我没有通过? | VOICE-CHAR-004 |
+| 23 | 王执事:没钱你修什么仙? | VOICE-CHAR-005 |
+| 25 | 中年男子:仙人,这里有点土特产,您瞧瞧? | VOICE-CHAR-006 |
+| 27 | 王执事:不错,一看你就是修仙的好料子! | VOICE-CHAR-005 |
+| 30 | 诸葛风OS:父母之仇不共戴天…… | VOICE-CHAR-004 |
+| 32 | 诸葛风OS:可惜我连炼气一层都没有达到…… | VOICE-CHAR-004 |
+| 34 | 诸葛风OS:我必须要赶快成为仙人,为父母报仇! | VOICE-CHAR-004 |
+
+## 1-3节(镜35-44)
+
+| 镜 | 台词 | 音色 |
+|:--:|------|:--:|
+| 36 | 诸葛风:仙师……入宗真的就可以学习仙法吗? | VOICE-CHAR-004 |
+| 37 | 苏白:当然!如假包换! | VOICE-CHAR-003 |
+| 39 | 诸葛风:仙师……三十两银子能否月底再给? | VOICE-CHAR-004 |
+| 40 | 苏白:月底?当然可以了,我们宗门绝不拖欠! | VOICE-CHAR-003 |
+| 41 | 诸葛风OS:竟然同意了? | VOICE-CHAR-004 |
+| 42 | 苏白:每一个天道宗的弟子,月底都可以领到三十两基础银子。 | VOICE-CHAR-003 |
+| 44 | 诸葛风OS:什么! | VOICE-CHAR-004 |
+
+> ⊢ Edge-TTS CLI 命令格式: edge-tts --voice "{voice}" --text "{text}" --write-media "outputs/audio/{shot-id}.mp3"
diff --git a/video-ai-system/tools/system_panel_gen.py b/video-ai-system/tools/system_panel_gen.py
new file mode 100644
index 0000000..38a76d3
--- /dev/null
+++ b/video-ai-system/tools/system_panel_gen.py
@@ -0,0 +1,80 @@
+#!/usr/bin/env python3
+"""系统面板UI · Seedream直接出图 · 仙侠古卷轴"""
+import os, sys, json, time, subprocess
+from pathlib import Path
+
+ROOT = Path('D:/WorkBuddy/guanghulab/video-ai-system')
+env = {}
+for line in open(ROOT/".env"):
+ line = line.strip()
+ if not line or line.startswith("#"): continue
+ if "=" in line:
+ k, v = line.split("=", 1)
+ env[k.strip()] = v.strip()
+
+AK = env["JIMENG_API_KEY"]
+URL = env["JIMENG_BASE_URL"]
+MODEL = "doubao-seedream-4-0-250828"
+OUT = ROOT / "assets/candidates/D169-VA-05-001/UI-SystemPanel"
+OUT.mkdir(parents=True, exist_ok=True)
+
+P = """一幅中国古代修仙界宗门系统面板,半透明古朴卷轴样式悬浮于空中。
+卷轴背景为淡金米色半透明薄绢,隐约可见丝绸纹理,四角有青铜色古朴纹饰。
+卷轴顶部用鎏金大字书写【天道宗】,字体古朴有力显眼。
+下方竖排古朴墨色文字:
+宗门等级:零星
+宗门人数:壹人
+宗门领地:方圆百米
+宗门资产:零
+宗门积分:零
+全部字体清晰可读、笔画工整、大小适中,不是模糊的鬼画符。
+底部有任务栏:
+任务:尽快升级一星宗门
+奖励:仙法阁一座
+条件:招收一名弟子(需磕头拜师)
+卷轴散发淡淡金色灵光,悬浮在深色虚空中,四周有细微灵光粒子漂浮。
+3D写实渲染,不良人风格,字体清晰大号可辨识。"""
+
+N = """模糊文字,看不清的文字,鬼画符,乱码,笔画断裂,过小字体,看不清的字体,歪斜扭曲文字。
+现代UI,玻璃面板,科技界面,电脑屏幕,手机界面,蓝色科技面板,赛博朋克。
+现代字体,黑体,宋体印刷体,英文,拼音,无关文字,错误文字。
+光线过亮过曝,文字被光线遮挡,文字和背景融为一体看不清。
+人物,角色,人脸,手,身体。"""
+
+SEEDS = [888, 999, 777, 666]
+
+def gen(prompt, neg, seed):
+ body = json.dumps({"model": MODEL, "prompt": prompt, "negative_prompt": neg, "size": "1440x2560", "n": 1, "seed": seed})
+ r = subprocess.run(["curl", "-s", "-m", "120", "--noproxy", "*", "-X", "POST", f"{URL}/images/generations",
+ "-H", f"Authorization: Bearer {AK}", "-H", "Content-Type: application/json", "-d", body],
+ capture_output=True, text=True, timeout=130)
+ try:
+ return json.loads(r.stdout)["data"][0].get("url")
+ except:
+ print(f" API err: {r.stdout[:300]}")
+ return None
+
+def dl(url, dst):
+ Path(dst).parent.mkdir(parents=True, exist_ok=True)
+ subprocess.run(["curl", "-s", "-m", "120", "-L", "--noproxy", "*", "-o", dst, url], capture_output=True, timeout=130)
+ return os.path.exists(dst) and os.path.getsize(dst) > 1024
+
+results = []
+for i, seed in enumerate(SEEDS):
+ print(f"[{i+1}/4] seed={seed}", flush=True)
+ url = gen(P, N, seed)
+ if not url:
+ results.append({"c": i+1, "ok": False, "err": "api"})
+ continue
+ dst = OUT / f"system-panel-candidate-{i+1:02d}-1440x2560.png"
+ if not dl(url, str(dst)):
+ results.append({"c": i+1, "ok": False, "err": "dl"})
+ continue
+ results.append({"c": i+1, "ok": True, "raw": str(dst), "seed": seed})
+ print(f" -> {dst.name}")
+ time.sleep(3)
+
+ok = sum(1 for r in results if r["ok"])
+print(f"\n完成: {ok}/4")
+json.dump({"spec":"UI-SystemPanel-V1","ok":ok,"model":MODEL,"results":results},
+ open(OUT/"generation-meta.json","w",encoding="utf-8"), ensure_ascii=False, indent=2)