Skip to content

feat(video): 系列发布顺序调整、第一集 v3 内容校准与音色重配、科普视频管线基建沉淀 - #1108

Merged
ThreeFish-AI merged 40 commits into
feature/1.x.xfrom
ThreeFish-AI/experience-era-video-revamp
Aug 20, 2026
Merged

feat(video): 系列发布顺序调整、第一集 v3 内容校准与音色重配、科普视频管线基建沉淀#1108
ThreeFish-AI merged 40 commits into
feature/1.x.xfrom
ThreeFish-AI/experience-era-video-revamp

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

背景

三集科普视频(media/*-agents-video/)与公共管线(media/pipeline/)此前存在四类问题:发布顺序硬编码在 40+ 处散文与组件里、管线声明九个 Stage 却没有编排入口、时序常数跨 TS/Python 手工双写、以及第一集内容存在未被上一轮审计发现的事实错误。本 PR 一并解决,并把可复用的部分沉淀为基建。

一、发布顺序调整(用户要求 ①)

顺序改为 《上线之后,AI 才开始上学》→《AI 如何自己变强?》→《会写代码的 AI,开始给自己写代码》

由此确立一条架构规则:集数序号与他集标题永不进口播,只存在于视觉层与 media/series.json。序号进像素只花一次重渲,进音频要花重合成——第三集的两句口播据此改为去序号化表述(「前两集讲的是通用的道理:经验怎么攒,自己该改哪儿」),以后任何一次改序的 TTS 代价恒为零。

  • 新增 media/series.json(机读 SSOT)+ series.md(人读总览)
  • 第二集(self-improving)项目文件零改动,作本轮非回归锚点
  • 反串线 lint 必须有清单才能实现:纯 grep 会把第一集 p1-25a 命中自己的片名当成违规(假阳性)——正确排除自身标题必须知道标题属于哪个工程

二、第一集 sunny-steady 本人音色重配(用户要求 ②)

  • 参考样本 me-bright.wav 重建一次命中 sha1 门54b699cce97f,即 sunny/sunny-steady 预设的标定样本)
  • 8 句领航形态(16.2 小数点 / 九章枚举 / 40 字三分句 / 人名归属逗号等)逐句试听通过
  • 两遍法实测:A 遍 sunny ≈1.9h、B 遍 sunny-steady(beams=3) 1.98h——B/A ≈ 1.04,而非手册记载的 +241%(9.9h)。已回写 VOICE-CLONING.md §4.3btts.py 常量注释:旧数据应在机器被占用/热节流时测得;机器空闲时整集直上成片档可行
  • B 遍后独立重算 187 句摘要全部匹配 beams=3 且不再匹配 A 遍摘要 → 确认真重合成非缓存复用

三、内容校准与深化(用户要求 ③)

7 个按幕并行代理逐句审计 + paper_extract.py 逐条取证,确证并修复 3 处事实错误

问题 取证
p0-01 「DeepMind 的两位大神」 References p77:Sutton 属 U. Alberta/Amii,essay 为 DeepMind 出品;且与 p0-02 自相矛盾
p1-10 「便宜一万倍 find "ten thousand"/"10,000"/"orders of magnitude" 三查零命中,原文仅 "far more frequently and cheaply" → 编造数字
p6-13a/b 「一百一十一篇」+ 九章含「工具」「定义」 index.html:57未水合占位符app.js:333 实际写入 papers.length=331;九章按 manifest.json chapterOrder

5 处口径深化:P3 补 Figure 8 二维地图(regime 是行×列分组,1↔2 级分界是「改什么」而非「谁控制」)、P5 补第四类威胁与「对齐漂移」统摄透镜、环境天花板三轴、SIP-Bench 的 replay/adapt/held-out 三分带、以及 §10.2「往权重里写没有判准、很难逆转、全靠工程师拍板」——后者填的正是全片花 P1+P2 建立的快慢双路之间那个开关。

上一轮审计写的「零事实漂移」结论并不成立,已在 paper-notes.md 保留 v2 物证并加勘误指针。

四、管线沉淀(用户要求:可复用 Pipeline/Stages/工具/Skills)

  • pipeline.py 单入口(status/doctor/build/check/tts/captions/render/qa/all)+ 每集 pipeline.toml 声明式配置——可执行参数不再散落 README(ISSUE-161)
  • timing.json 时序 SSOTtiming.ts 同步 import、Python 侧 timeline.py 共读同一文件,双语言镜像漂移结构性消灭
  • 七件新工具check_script(分镜覆盖性/时长预算双口径/淡入不变式)、check_series(顺序五规则执法)、captions(srt/vtt)、qa_frames --check/--check-theme(黑帧/字幕带侵入/冻帧/WCAG)、paper_extract(论文取证五子命令)、refs(样本指纹清单,只存哈希)、tts --expect-ref-sha1 + .engine 音色签名护栏
  • media/pipeline/tests/ 43 项全绿 2s(digest 黄金哈希守「缓存零失效」);pre-commit ruff 扩至管线 + series 钩子
  • Skills 补齐 07–09 + .agent/skills/science-video-pipeline 路由壳(零正文复制,内容 SSOT 留在 media/pipeline/skills/

新工具当场证明了价值:抓出两集既存分镜漂移(第一集 P0 区间与 P2 镜号错位、第二集 7 句失覆盖)与 7 处真实死链(三集 README 的 ../../pipeline/VOICE-CLONING.md 实际解析到仓库根)。

Remotion 最佳实践(依官方文档,锁定 4.0.512)

  • @remotion/media<Audio>(丢外层 Sequence,from/durationInFrames 原生定位 + premountFor
  • fitText 替换手写 CJK 宽度估算(正则 + 0.55 半宽系数 + 魔法阈值 1500)
  • 不用 TransitionSeries:其总时长 = Σ序列 − Σ转场,会把视觉层整体左移而旁白(manifest 帧号绝对定位的独立层)不动 → 逐幕递增失同步。改用 SceneFade 只花幕间既有静默,from 与总时长零改动
  • 渲染参数硬化(h264/crf18/yuv420p/aac192K/enforceAudioTrack);显式不设 setConcurrency——并发是机器属性

成片交付

out/final.mp4 · 14:01.50 · 1920×1080@30 · h264 yuv420p · aac 189kb/s · 40.8 MB;captions.srt/vtt(187 cues)。

验证

结果
pytest media/pipeline/tests 43 passed (2.1s)
内容门(三集,含 --check-scenes FAIL 0 · WARN 0
系列一致性(92 文件) FAIL 0
tsc --noEmit(三集) 通过
主题对比度(三集) FAIL 0(概念色对 bg ≥6.2:1)
终渲抽帧体检(七幕 76 帧 + 定点 8 帧 + --last-n 6 FAIL 0
pre-commit run --all-files 17/17 Passed
pnpm-lock.yaml 零变更
冻结文件三集 md5 唯一

关于 pipeline/README.md:64 的「字节级不变」门:它是为管线重构写的。本轮 narration.json 的变更是有意的,有界形式为——第二集字节完全相同;第一集恰好 25 改写 + 8 新增(其余 154 句字节不变);第三集恰好 2 句文本变更。

已知遗留

  • 双重校验的两个独立代理与 A1 校准代理被上游 API 以「敏感内容」中断 4 次,未产出完整表格。所有关键锚点已由主控用 paper_extract 逐条独立取证复核(记录在 upgrade-2026-08-v3.md §三);易懂性维度未获独立代理审读,由主控在连读与抽帧目检中人工把关,建议下轮补一次纯易懂性审读
  • 第二、三集源码已同步冻结文件但未重渲(按决策:下次重渲时生效),series.jsonstatusNote 已显式标注;两集换 sunny-steady 重配登记为待升级项
  • 三集未内嵌 CJK 字体,渲染仅限 macOS;两个重启触发器(渲染迁 Linux/CI;Remotion 5.0 将 validateFontIsLoaded 默认翻 true)已写入 skills/06

🤖 Generated with Claude Code

- tts.py 漏写 --engine indextts 时,克隆专属带值参数(--ref/--style/--num-beams 等)
  由 stderr 提示升级为硬失败:{id}.mp3 单槽位下照跑会把整集克隆音频静默改写为
  edge 预置音色(此前仅 --plan 路径硬化,合成路径漏了)
- 新增 .engine 音色签名标记:记录上次成功合成的引擎/音色/风格,不一致时硬失败并
  要求显式 --allow-voice-switch(检查前置于 --plan,排期阶段即拦截误重录;不参与
  逐句摘要,零缓存影响)
- IndexTTS 服务启动命令三处副本收口为 server_launch_hint(),消灭 <仓库路径> 占位符
- build_narration.py 报错口径对齐 tts.py:缺文件给可操作退出;句出现在分幕标题
  之前/重复 id/前缀不符均带文件行号与修复指引
- tts_sample.py 新增 --cleanup:试听结束自动删除产物目录(小样含本人音色,属生物
  特征信息,此前仅打印 rm 提示靠手工执行)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
Stage ① 精读提取此前完全没有工具,每轮校准都临场手写一次性 pymupdf 片段。固化为
五个子命令:map(§→页码映射)/ text(按页取正文,默认双栏分列避免 LaTeX 两栏行
交错)/ captions(图表 caption 收割)/ find(逐条断言定点搜索,未命中退出码 1——
「论文全文无此措辞」本身即取证结果,如编造数字的排除证明)/ render(页面光栅化
看图,无需 poppler/ffmpeg)。
依赖仅 pymupdf,uv run --no-project --with pymupdf 零工程调用。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
commit f7d7281 删除 video-package/ 时漏改引用:pipeline/README.md 首行轻量替代
链接、「七、工程模式」双模式对照表两处、knowledge-map.md:73 整条制作包 bullet。
对照表收敛为一句「本仓统一采用 Remotion 工程模式」;「首个完整范例」消歧为建成
时间口径(与系列发布顺序是两条轴,发布顺序另见 series.json——该 SSOT 随后续提交
落地,链接先行指向目标位置)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- 时序常数单一事实源:每集 video/src/timing.json(timing.ts 经 resolveJsonModule
  同步 import;Python 侧新增 timeline.py 直读同一文件)。qa_frames.py 删除手抄
  镜像常量——两语言漂移从此结构性不可能,对拍验证新旧实现逐帧相等
- timing.ts 头部改为读 JSON 并导出 SCENE_FADE_FRAMES(幕间呼吸淡入淡出预留),
  三集逐字节一致(md5 唯一),computeTimeline 函数体零改动
- 新增每集 pipeline.toml(episode/narration/tts/render):可执行参数不再散落
  README 复制粘贴(治 ISSUE-161 类漂移);EP2/EP3 记录复现已上线音频的档,
  EP1 记录 sunny-steady + me-bright 重录决策
- tts.py 新增 --expect-ref-sha1 指纹硬校验;新增 refs.py + voices/refs.toml
  (只存哈希与生成参数,不存音频,.gitignore 白名单例外放行)——操作者可自证
  复现了同一音色,防「样本换了静默重录整集」
- 新增 media/series.json + series.md:三集发布顺序机读 SSOT(EP1 经验时代 →
  EP2 自我变强 → EP3 代码田野)与「序号不进口播」系列纪律的载体

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- check_script.py(④⑤门):分镜 beat 覆盖性(缺句 FAIL、重叠 WARN 且「尾」
  标注静默)、时长预算双口径(字数估算 + manifest 实测对 pipeline.toml 目标窗)、
  SceneFade 淡入不变式、--check-scenes 分镜↔场景代码互比——当场抓出 EP1 的
  0-D/0-E 区间漂移与 EP2 分镜 7 句失覆盖
- check_series.py:media/series.json 五条规则的机械化执法(口播反串线含自身
  标题排除、多标题按文本首现位置判序、序号↔标题绑定、清单完整性、相对链接
  死链);当前报红与既有清单完全一致。自身标题假阳性(p1-25a 命中本集片名)
  正是必须有机读清单的证明,纯 grep 做不到
- captions.py:manifest + timing.json 导出 srt/vtt;cue 终点不含句间停顿
  (外挂字幕静默期不留字,与烧录字幕有意分歧并注明)
- qa_frames.py 扩展:--last-n 末 N 句抽样(尾幕渐黑缺陷的盲区)、--check
  四项自动体检(黑帧/字幕带侵入[连通亮段法]/冻帧[均值哈希]/字幕缺失,
  惰性依赖 pillow+numpy)、--check-theme WCAG 对比度(三集实测全 ≥6.2:1)
- pipeline.py 单入口:status(派生式新鲜度,零状态文件)/doctor/build/check/
  tts/captions/render/qa/all/clean-samples,参数自 pipeline.toml 装配
- tests/ 43 项全绿 2.3s:digest 黄金哈希(缓存零失效守门人)、timeline 黄金
  帧号、build_narration 校验分支、引擎护栏、内容门各判定、系列五规则、
  字幕格式、QA 判据——无网络无 TTS 无 DB
- pre-commit ruff 扩到 ^media/pipeline/(既有 8 处 lint 顺手修复)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
发布顺序改为《上线之后,AI 才开始上学》→《AI 如何自己变强?》→《会写代码的
AI,开始给自己写代码》(media/series.json 为准)。

- EP3 口播去序号化:p6-09/p6-10 改为「前两集讲的是通用的道理:经验怎么攒,
  自己该改哪儿」——不点他集标题、「前两集」从终集视角恒真,改序仍成立。由此
  确立系列纪律:集数序号只存在于视觉层与 series.json,发布顺序变更的 TTS
  代价恒为零(narration.json 恰好 2 行文本变更,其余 187 句字节不变)
- EP3 像素层:SeriesThree 数组按新顺序重排(金青紫→蓝橙→绿洋红),本集高亮
  由位置耦合 i===2 改为数据驱动 self 标志(index 0/1 补 self:false 防 TS2339);
  拼图串同步为「怎么攒 → 改什么 → 代码领域全图」;死代码 useCurrentFrame 删除
- EP1 文档层去互引:README/planning/paper-notes 改为「三集系列第 1 集,独立
  成片」;EP3 与共享管线文档同步(README:6、paper-notes:8、planning 三处、
  storyboard 6-C 色带顺序)
- 共享文档去顺序耦合:「首集/上一集」→「任一既有集」;skills/06 色板注册表
  按 slug 具名并补上此前漏登记的 EP3 绿 #4ADE80/洋红 #FF6EC7;CHANGELOG ep
  标签改 slug 并按新序重排;knowledge-map 三作品重排 + series.json 指针
- 修复 3 处真实死链:三集 README 的 ../../pipeline/VOICE-CLONING.md 实际解析
  到仓库根(正确为 ../pipeline);skills/03 模板占位链接改代码文本
- check_series 修正两处误判路径:文件路径须按路径段匹配自集(in f.parts 对
  含斜杠相对串恒 False);「前两集」入白名单(终集视角相对表述)
- EP2(self-improving)工程零改动,保持本轮最强非回归锚点;其 7 句分镜失覆盖
  为独立既存漂移,另行单独提交

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
2026-08 升级改了口播与场景代码,分镜表未跟进——check_script --check-scenes
新门禁当场抓出(此为其存在理由的首个实证):

- EP1(experience-era):0-D 区间 p0-11..13 → p0-11..12(代码如此,0-E 独立绑
  p0-13);P2 镜号字母整体错位一个(分镜 2-E,2-G..2-J vs 代码 2-E,2-F..2-I),
  致 qa_frames 镜号交叉核对对 P2 完全失真
- EP2(self-improving):7 句失覆盖(p1-04b/04c、p2-37b、p3-05b、p3-24b/24c、
  p3-62b)——分镜区间未随 v3 插句扩展;2-B/2-D/2-H 三镜在代码中已拆为子镜,
  分镜按实现拆行(2-B×4、2-D×2、2-H×3)并同步区间
- narration.json 三集零改动(分镜-only);EP2 项目文件仅动 storyboard.md,
  与上一提交的非回归锚点意图一致并分开记账

剩余 1 项 WARN(P5Ending 的 p5-04..04a 闪光窗)为组件内嵌实现细节而非独立
镜位,WARN-only 可接受。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…渲染硬化);

- NarrationAudio 迁移 @remotion/media 的 <Audio>(官方 recommended,Mediabunny
  抽轨保时间轴同步):丢掉外层 <Sequence>——premountFor 挂在未开始的 Sequence
  子节点上不会触发;premount 仅优化 Studio/Player 预览(渲染期自动关闭),
  该事实写入组件注释防后人重复论证
- Subtitle 手写 CJK 宽度估算(正则+0.55 半宽系数+魔法阈值 1500)替换为
  fitText 真实测量;withinWidth 扣 padding(box-sizing: border-box)、fontWeight
  与渲染一致;validateFontIsLoaded 保持 4.x 默认 false 并注明 5.0 定时炸弹
- 新增 SceneFade 幕间呼吸淡入淡出(三集冻结):只花幕间既有静默,from/总时长
  零改动——不用 TransitionSeries 的原因(Σ序列−Σ转场与绝对定位音频层根本
  不兼容)写入组件注释;首幕不淡入、末幕不淡出(防双重渐黑);不变式
  2×fade ≤ 幕间静默 由 check_script.py 强制
- Main.tsx 三集同构接入 SceneFade(registry 部分保持各集独立)
- remotion.config.ts 交付硬化(h264/crf18/yuv420p/aac 192K/enforceAudioTrack/
  jpeg90);显式不设 setConcurrency(机器属性,benchmark 后走 CLI)
- 新增 @remotion/{media,layout-utils,paths}@4.0.512 钉版;根 lockfile 零变更;
  EP2/EP3 同步冻结文件但不重渲(下次重渲生效,series.json 已标注)
- EP1 新增 design/motion.ts(ci/rnd/stagger——帧驱动铁律的范式封装)与
  components/primitives.tsx(CornerLabel 把「角标底部≥150px」默认值化、Panel/
  AxisBar/Meter/RingFlow 三调用点提取)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- P6Ending:SeriesEcho 整体替换为 VerificationBedrock(6-E 共同的地基·验证)——
  九个开放问题小面板(反枚举:不配九色)压在金色基石「验证」上,末句左侧青色
  能力曲线陡升而基石厚度只微增 6px,即 "scales least well" 的画面;本集代码中
  引用他集色板(#4A9EFF/#FF9F45)的唯一位置随之清除,金青紫契约恢复纯一
- ThreeCurves(6-F2 预置):三条候选轨迹全金色、以线型区分(实线/虚线/点线),
  衬线问号收尾;§10 "not known to compound, saturate, or oscillate" 的悬念画面
- RepoCard 三处修正:计数 111→331(数据文件口径)+ 真实九章(引言/工位/技能/
  记忆/环境/参数/元进化/评测/安全——原「工具」「定义」非章)+ 取数日期行
- EnvFloors 并入三条天花板轴(Fig 6 三轴:能动的花样/反馈的密度/任务的长度,
  依次生长且停在天花板前——差距即要点);尾注句改 §5.4 口径(去「大部分」)
- PromotionGate(2-J 预置):§10.2 缺失晋升判准的画面——空白铭牌红问号脉冲、
  按下后紫侧点亮、闸下单向红箭头「很难逆转」
- 1-G 三代时间轴补 Figure 3 的 11 个带日期里程碑(WebGPT 21-12 → Cursor 3
  26-04)与「约四年半」跨度标(画面级增强,不动口播)
- paper-notes.md:111→331 全链取证(index.html 占位 vs app.js 水合 vs
  data/papers.json 331/330 + DEV_LOG 旁证)、真实九章与唯一论文数、8 图逐字
  caption 规格表、SkillsBench「引用冲突」裁决(Han=SWE-Skills-Bench、
  Li=SkillsBench 两基准双引非笔误——更正 v1 笔记误读)、v3 校准方法记录

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
T0→T1→T2 时间轴下加 replay / adapt / held-out 三题区分带——replay 对应已有
「留着旧题反复重考」Pill,held-out 是 §8.3 明言的核心检验("makes held-out
generalization the central SI test"),也是 p4-06「没见过的题」伏笔的回收。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- skills/07-tts-voice.md:五闸决策树(样本就位→指纹一致→试听定档→排期对账→
  音色签名护栏)+ 两遍法操作契约;参数与实测数据一律链引 VOICE-CLONING.md 不复制
- skills/08-render-qa.md:抽帧三选择器(幕/句/末 N 句)+ 五项自动判据处置表 +
  人工目检残余清单 + 修复回路(七条渲染红线仍以 06 为 SSOT)
- skills/09-final-render.md:benchmark→--concurrency 的机器属性处理、交付件清单
  (mp4/srt/vtt/封面帧)、渲染主机字体约束与两个重启触发器、平台合规自查
- .agent/skills/science-video-pipeline/SKILL.md:路由壳(frontmatter + 九阶段
  速查表 + 关键不变量),零正文复制——内容 SSOT 留在 media/pipeline/skills/,
  满足 AGENTS.md「引用用轻量指针而非数据副本」;不升 01–09 为独立 Skill(9 个
  雷同 description 代理无法择一)、不做 DB 双家(视频生产人在环+本地 GPU 服务,
  引擎无法派发)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- README 三节重写:pipeline.py 单入口 + Stage 契约表(幂等/续跑列);脚本表补
  timeline/check_script/check_series/captions/qa_frames 扩展/paper_extract/refs
  七行;五节改为 timing.json SSOT 表述并删除已失效的「须同步 qa_frames.py 镜像
  常量」散文警告(结构性不可能后,警告本身就是错误信息);渲染主机字体约束入文
- skills/06 冻结清单拆两档:A 档逐字节冻结(新增 NarrationAudio/Subtitle/SceneFade
  成员)+ B 档 timing.json(默认相同、允许本集覆写);新增四条事实条(premount
  渲染期关闭 / TransitionSeries 不可用的根因 / 字体可复现性与两个重启触发器 /
  @remotion/paths 是 pathLength 互斥红线的官方正解)
- skills/03 增系列纪律永久条:口播严禁他集标题与序号,顺序只在视觉层与
  series.json——发布顺序变更的 TTS 代价恒为零

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- ISSUE-161 配置漂移:可执行参数散落 README 复制粘贴,推荐位迁移后旧命令合法
  但会作废整集声纹缓存——根因是无分集声明式配置;防范:可执行参数不落散文
- ISSUE-162 未水合占位数字进口播(111 vs 331):静态抓取的统计数字一律视为
  占位符直至与数据文件互证;连带记录引用年≠事件年、trials≠场景两个口径教训
- ISSUE-163 引擎静默降级:破坏性默认值必须硬失败而非提示;硬化要横向扫全部
  入口(plan/合成/编排三层当时只改了一层)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- knowledge-map 视频条目拆三条:Pipeline 公共基建(单入口/配置/时序 SSOT/skills
  01–09/路由 Skill/43 项测试/七件工具)、三集作品(新发布顺序 + 系列纪律)、
  IndexTTS 声音克隆手册——登记本轮新增全部基建
- 三集 README 复现命令块收敛为 pipeline.py tts 一行(参数读 pipeline.toml),
  目录表补 pipeline.toml 行——ISSUE-161 防范项的落地:可执行参数不再落散文

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
五规则:口播反串线(自身标题排除——纯 grep 因 EP1 片名自含「上线之后」必假阳,
清单是唯一解法)/多标题顺序(按文本首现位置)/序号↔标题绑定/清单完整性/相对
链接死链。挂载最后落地(此前会挡住修复自身的提交);文件范围 media/ +
knowledge-map + CHANGELOG。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
全片实测 12.8–13.6 分(原表按 17 分钟排到 15:30–17:00);形态行改 sunny-steady
成片档;生产管线图与许可行同步克隆口径。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
新文件而非续写 v2——审计记录不可变原则;v2 的 111 条目是 ISSUE-162 的物证。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- p2-32a 新增(Fig 6 三轴:能动的花样/反馈的密度/任务的长度——A3 判定「无第四轴,
  三轴才是正典」);p2-37 改写为 §5.4 忠实口径(去「大部分」总体断言,A3 复核
  「就算」缓冲对齐论文条件语气)
- p5-09 去「2026 年」(正文无事件纪年,引用年≠事件年);p5-15 每次→随时可能、
  p5-16 永久→长期(原文 can/persist 非全称);p5-18 场景→轮次(单位 trials);
  p5-22 就四味→反复用到(防御清单更长);p5-27 加「有研究者提出」(AI-45° 为
  roadmap 提议非公认定律)
- p5-21a/b 新增:9.2.3 工具链组合攻击(论文四类直接威胁此前只讲 3/4——A6 判定
  省略会让 21b 的「串起来」变错误归因)+ 四招汇入「对齐漂移」统摄透镜
- 5-D2 对齐漂移镜:工具链拼图(各件✓、拼线出意外路径)→ 罗盘汇聚 + 轮廓渐虚
- 182 句 3710 字 13.2 分,内容门零 FAIL 零 WARN(预算窗内)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- p4-10 对比轴修正:技能与记忆同属 external-path,论文真区分的是外围装备 vs
  模型参数(A5 判定为本次 P4 最重要发现)
- p4-15 归属降强:SIP-Bench 是被引外部工作([Wang, 2026]),「提出了」→「点名了」
- p4-18a 新增:replay/adapt/held-out 三分带的口播(A5 评估补句价值高——held-out
  是 §8.3 明言的核心检验,且回收 p4-06「没见过的题」伏笔)
- p2-15 数字原样化 16→16.2 个百分点(skills/03 论文数字不取整原则;A2 判定
  SkillsBench 数字全部正确、引用「冲突」系两基准双引的误读)
- 183 句 3757 字 13.4 分,内容门零 FAIL

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- p0-01/02 归属修正(Sutton 属 U. Alberta/Amii;essay 是 DeepMind 出品)——已独立
  取证(References p77 逐字)
- p1-10 编造倍数移除(全文无任何倍数,find 零命中;「便宜得多,也频繁得多」)
- p1-17/18 改选择性表述(论文 "or … enough" 非四道强制工序)
- P3 二维口径(A4:regime 是行×列分组,1↔2 分界是「改什么」非「谁控制」):
  p3-03 改「论文画的是一张二维地图:横轴问进化的到底是什么,纵轴问谁来控制」,
  p3-04 补「两根轴一交叉,正好落出三级台阶」
- 3-A 视觉:Figure 8 二维格阵 underlay(对角两空格 + 轴标签点亮)让位解析为
  三级阶梯——先见地图后见台阶,8:00 处不产生理解断崖

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- p6-08「三块拼图」→「九个开放问题挑三块」(§10 实有 10.1–10.9,编辑取舍
  不该说成论文的)
- p6-11..13 跨集引用整体改写为 §10 耦合论点「共同的地基·验证」(Verification
  underlies each, and it is the capacity that scales least well as agents become
  more capable.)——本集作为第一集的收尾回到论文自身的终点,并一次回收 P1
  提纯漏斗的「验证」、整个 P4、6-B2 的「闸门」三个前文 beat
- p6-13a/b 站点数字更正落地(三百多篇 + 真实九章);p6-13c/d 新增三条曲线
  悬念(not known to compound, saturate, or oscillate)让「推荐读原文」有因果
  动机
- 6-F2 ThreeCurves 接线(p6-13c..13d);分镜 6-E/6-F/6-F2 三行同步
- v2→v3 总账:185 句(+6 新增),改写 23 句、其余 156 句字节不变;13.7 分在
  预算窗;内容门零 FAIL 零 WARN、系列一致性零 FAIL(p6-12 顺序词消除——
  check_series 全绿,pre-commit 钩子恢复生效)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
§10.2 逐字锚点 "With no promotion criterion, the decision of what to write to
the weights rests on manual judgment.":P1+P2 花大量篇幅建立快/慢双路,这两句
揭示两路之间的开关没有判准、很难逆转、全靠工程师拍板——落在 p2-47 观众被
铺垫到位处。2-J PromotionGate 接线(工位五锁/空白铭牌/单向箭头)。187 句
3883 字 13.9 分,内容门零 FAIL 零 WARN。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
P6Ending 6-F JSDoc 计数描述更新;upgrade-2026-08.md 顶部加勘误导航(物证保留
不改,指针指向 v3 文档与 paper-notes 取证)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
「参数」在全片口播中从未出现(只在角标),而 p6-06c 数句前刚说「慢的去路改
大脑」——章名胶囊用「大脑」与本集比喻系统(工位↔大脑两个更新面)严格对称,
听众零成本对上第四去处(A7 建议,二选一中采纳)。RepoCard chapters 与分镜
三处同步;p6-13c 改「收尾留个悬念」避免与 p6-01 同幕双「最后」。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
EP1 v3 两遍法实测(187 句,机器空闲):A 遍 sunny(beams=1) 墙钟 ≈1.9h、B 遍
sunny-steady(beams=3) 墙钟 1.98h——B/A ≈ 1.04,而非手册记载的 +241%(9.9h)。
实测 RTF:1 束 ≈8.8、3 束 ≈9.2,对应 --plan 常量 13/45 偏保守 1.5×/4.9×。
旧数据应在机器被占用或热节流时测得。

新口径:机器空闲时整集直上 sunny-steady 可行(本集即如此完成 187 句),
--steady 混合档退为「机器忙时的折中手段」。--plan 常量刻意不下调——排期宁可
高估留窗口;注释与手册 §4.3b 同步说明偏差幅度,避免后人误判长跑不可行。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
终渲抽帧目检发现「反复自我改进」被 svg 右边界截成「反复自我改」——固定 x 偏移
(span-28)对 6 字标签不够;改用 textAnchor="end" 贴齐轴末端。--frames 区间小样
复渲验证通过(注意该模式时间轴局部归零,抽帧时间戳须按区间起点折算)。

同时修正 skills/09 的并发指引:remotion benchmark 对 25000 帧长片不实用(需按
不同并发多轮全渲,20 分钟不出结果,本次实测放弃);改为直接用默认并发,仅在
耗时异常时用单幕 --frames 小样对比选值。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- §三 诚实记录:双重校验两代理与 A1 均被上游 API 以敏感内容为由中断(1301,4 次),
  未产出完整表格;改由主控用 paper_extract 对 8 组关键锚点逐条独立取证复核后落地,
  逐项列出取证方式与结论。门结论 RISKY=0;遗留「易懂性未获独立审读」并给出下轮
  可规避拦截的做法
- §四 验证记录填实测:内容门 FAIL0/WARN0、实测 14.0 分、系列一致性 FAIL0、三集 tsc、
  主题对比度、终渲抽帧体检 FAIL0、成片流参数
- §五 配音实测:sha1 门一次命中、8 句领航形态、两遍法 RTF 对照表(B/A≈1.04 推翻旧
  +241% 口径)、摘要独立重算确认真重合成非缓存复用

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- 终渲 out/final.mp4:14:01.50 · 1920×1080@30 · h264 yuv420p · aac 189kb/s
  (remotion.config 硬化参数经 ffmpeg 流摘要核实生效)
- 交付件:final.mp4 40.8MB + captions.srt/vtt(187 cues,B 遍时长位移后重导)
  + 封面帧候选 p0-13(标题卡)
- 终渲后全片复检:七幕 76 帧 + 定点 8 帧 + --last-n 6 自动体检 FAIL 0
  (WARN 均为引用卡文字落在字幕带上缘,目检确认非角标侵入)
- series.json/series.md EP1 状态 → ready;README 增交付状态表;CHANGELOG 补
  v3 重制交付条(3 处事实错误 + 5 处口径深化 + 配音重制的完整记账)

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
§4.3b 复测更正块此前只覆盖了代价表格那一处,另三处仍在无条件传播
「整集升档 = 9.9h/+241%」的忙时口径:§5.2.1 混合档开篇改为按机器忙/闲
分况表述(空闲 +4% 直上、忙时才用 --steady 折中);§四的 RTF 40–58 补注
该轮数据采集于机器有负载时(空闲复测整集 RTF≈9.2);§推荐位的两遍法
「须留出时间」改为量级说明(空闲时两遍合计约 4 小时)。

原始 9.9h 数据表保留作物证(更正块紧随其后)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…算与渐黑豁免判据等;

- CHANGELOG:删除 [0.0.1] 节内与 Unreleased 逐字重复的「v3 重制交付」条目,
  并把误入 0.0.1 的两条 Fixed(死链修复/分镜漂移)上移至 [Unreleased]
- 三集 README:pipeline.py 调用改为工程根相对路径 ../pipeline/scripts/…(原
  media/ 绝对段仅仓库根可解析,照抄即 FileNotFoundError)
- EP1 README 头部时长 13.6 分钟同步为 v3 成片口径(约 14 分钟)
- SKILL.md ⑨ 行移除已退役的 benchmark 步骤(skills/09 实测对长片不实用)
- P1Anatomy 里程碑渐显改帧驱动 interpolate,去除渲染相位不确定的 CSS transition
- pipeline.py qa:--check 自动按 draft.mp4 推断并透传 --scale(显式参数优先),
  cmd_all 提示与 skills/08 三条草渲示例同步补 --scale 0.5(字幕带/亮块间隔
  像素常数不折算则判据双向失真)
- qa_frames:渐黑豁免从「文件末 5 行」改为「末表格行」(EP1/EP2 分镜表尾有
  散文节致豁免永不命中),提取 tail_row_has_fade 并补 2 项测试(45 全绿)
- series.json EP2 statusNote 更新为空闲口径约 2–3h(旧 10h 沿用已被 §4.3b
  复测推翻的忙时数据)
- 删除零引用的 primitives.tsx 与 motion.ts(注释声称的调用点均不存在),
  skills/08 同步去除 CornerLabel 提法
- 三集移除未使用的 @remotion/paths 依赖(src 无 import),lockfile 同步、
  根 lockfile 零变更

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…据横向阈值随 --scale 折算、清理 p95 死常量与旧 docstring、知识索引 EP1 状态同步 v3 已交付;

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- P3Meta 格阵:原数组具名系统三处落格与论文分类法不符(MetaEvo 属 7.3.2 改进
  策略列却在机制列、Hyperagents 属 7.3.3 元层自身列却在改进策略列、SkillOS 属
  meta 层控制行却在任务体自控行),且首项 'MetaMem 系' 恰落在空格 (0,0) 从未
  显示——按 paper-notes §7.3.1/7.3.2/7.3.3 与 Figure 8 第一列重排为
  GRID_CELLS:MetaMem→(0,1)、MetaEvo·SkillOS→(0,2)、Hyperagents→(0,3)、
  SkillClaw 系→(1,0)、SkillRL→(1,2),(1,1) 无本片点名范例留 '…';对角空格
  补分类法依据注释
- planning.md 七幕时间表:P6 行「≈11:30–13:00」与 P5「11:00–13:10」区间重叠
  且 P4/P5/P6 整体漂移约 1 分钟——按 manifest 实测幕界(timeline.compute 推
  得 P1 1:02–3:21 / P2 3:21–6:54 / P3 6:54–8:20 / P4 8:20–9:53 / P5 9:53–
  12:08 / P6 12:08–14:00)重排,P3–P6 叙事要点同步 v3 实际内容(二维地图/
  三分题库/对齐漂移/验证地基与三曲线)
- series.json/series.md EP1 statusNote 标注「源码含未重渲改动(P3 格阵落格
  校准),发布前须重渲」(同 EP3 惯例)

narration/manifest 零改动;tsc --noEmit 零错误。

🤖 Generated with [Claude Code](https://github.com/claude.com), [CodeX](https://openai.com), [Gemini Code Assist](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
- pipeline.py cmd_all 打印的尾幕必查命令原混用两种 CWD 假设(脚本路径按仓库根
  相对、out/draft.mp4 按 CWD 相对),任一工作目录照抄必有一端 FileNotFoundError
  ——脚本/--project/视频三路径全部改打绝对值,两端皆可
- skills/08 三条抽帧示例同款问题:从仓库根调用的示例视频路径补全
  media/<slug>-video/ 前缀,并加「视频路径按 CWD 解析(非 --project 相对)」警
  示行;pipeline/README 工程内调用示例补 CWD 口径注
- CHANGELOG/knowledge-map「43 项测试」同步为 45(f9ff6921 补 2 项
  tail_row_has_fade 后未同步两处散文,该提交自身 message 已写「45 全绿」)

45 项测试全绿;ruff format 通过(3 条 ruff lint 报错为 HEAD 既存,非本次引入)。

🤖 Generated with [Claude Code](https://github.com/claude.com), [CodeX](https://openai.com), [Gemini Code Assist](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…timeline 舍入对齐 JS Math.round 语义;

① pipeline.py tts 缺 --allow-voice-switch 透传:.engine 音色签名护栏会拦两遍法换档
  (A 遍 sunny ↔ B 遍 sunny-steady 任一方向),单入口下只能绕过入口手拼 tts.py 全参数
  ——正是 ISSUE-161 要消灭的手型;补 store_true 透传并以本机实证场景回归(退出码 0)。
② timeline.py 内置 round() 是 banker's rounding(.5 向偶数),与 timing.ts 的
  Math.round(.5 恒向上)在精确 .5 落点分岔(如 (0.03+0.32)*30=10.5:Python 10 / JS 11),
  从该句起抽帧帧号整体漂移;新增 js_round 显式对齐,compute/total 三处调用点全部替换,
  契约注释同步登记;tests 补 .5 边界锁定用例(46 项全绿,真实三集 manifest 帧号不变)。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
…delta 行「参数」改「大脑」对齐落地文本;

① upgrade-2026-08.md 标题被 commit b5df839 误改「才→扡」,全仓唯一坏标题,按标题检索会漏掉本文档;
② v3 文档第 28 行 3883 字与同文验证记录/README/build_narration 实跑的 3884 自相矛盾;
③ p6-13b delta 行「新文本」列写「参数」,实际落地(narration.md/json 与第 82 行微调记录)为「大脑」——delta 清单应反映最终产物。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI
ThreeFish-AI merged commit 62a6b3f into feature/1.x.x Aug 20, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant