2026-08-01 Codex 教程清单 2/3/4 · 三项目 19 段录屏复盘
事实记录(不可修改区)
- 项目:《Codex 保姆级教学》录制清单 2/3/4 的教学素材录屏,三个案例分属三个真实项目(台风实况站 / 朱元璋 K 线人生 / 工位池塘)
- 日期:2026-07-31 ~ 2026-08-01
- 预期目标:清单2(9 镜)、清单3(4 镜)、清单4(6 镜)全部录完;清单5 只补没标(已录制)的行
- 最终结果:19/19 产出,22.8 分钟,1.03 GB,全部 1920×1080 / 60fps
- 朱元璋 K 线 4 段 / 0.21 GB · 台风实况站 9 段 / 0.57 GB · 工位池塘 6 段 / 0.24 GB
- 主动没做的两项(不是失败,是判断):
- 清单5 第 10、11 行(Codex_test 上传 GitHub + GitHub 界面)—— 由用户决定跳过
- 清单4 段[7] 子镜头「展示自检发现的 6 个问题」—— 没有真实素材:这台机器的 Codex 里没有 desk-pond 的历史对话。对应事实留在
E:\desk-pond的提交759f3d4 全 app 自检:修复水族馆挤出关闭按钮等 6 处问题
- 验收状态:
- 机器校验 19/19 通过(ffprobe:分辨率 / 帧率 / 时长区间 / 视频包数)
- 抽帧目视:本批新录段逐段看关键帧 + 三处高风险镜头(GitHub 注册页 / 台风页面 / 朱元璋成品)事后复核
- 19 条逐条完整终审未做
- 数据来源:ffprobe 实测、脚本 stdout、OBS
StopRecord返回的落盘路径、E:\desk-pond的git status - 前置事实:本项目上一批(实战六 19 段)已完成,见 2026-07-31_Codex教程实战六_自动化录屏19段复盘。工具
humancast本批零改动复用 - 硬约束遵守情况(录前明确写在任务书里的):
- GitHub 注册页只录不注册——脚本只悬停和滚动,从不点击或输入,成片里所有输入框为空
- 个人书签不进公开教程——用 F11 全屏 / Chrome
--app模式规避 - 不让 Codex 真改
E:\desk-pond(37 提交、三个已发布构建)——三条提示词发完立即点方块停止,录后git status干净、Codex 环境面板「变更 +0 −0」
一、作品回顾
和上一批的差别
上一批(实战六)是一条链路、一个对话从头跑到尾;这一批是三个互不相关的真实项目,且其中一个(工位池塘)是已经发布过三个构建的线上项目——不能真让 AI 去改它。
所以这批的难点不在”怎么模拟人手”(那套已经成熟、零改动复用),而在:
- 每个项目的界面版面都不一样,同一套硬编码坐标要在不同版面下反复成立;
- 有一个项目不能被真正修改,只能录”下指令”这一半;
- 任务书里有子镜头在这台机器上没有素材。
三批产出对照
| 批次 | 段数 | 时长 | 特征 |
|---|---|---|---|
| 实战六(上一批) | 19 | 21.7 min | 单一链路,长镜头多(段11 305s、段13 320s) |
| 清单 2/3/4(本批) | 19 | 22.8 min | 三个项目,最长 264s(台风计划书生成) |
二、结果分析
做到的
- 19/19 产出,无缺失,机器校验全过
- 三条硬约束(不注册 / 不露个人书签 / 不改 desk-pond)全部守住,且每条都有可复核的证据,不是”我记得没碰”
- 工具库零改动——上一批沉淀的
humancast直接复用,说明抽象层切对了
出问题的(全部是”版面前提”类)
本批的失败没有一条出在鼠标轨迹、输入法、OBS 这些”难”的地方,全部出在硬编码坐标的前提没有被校验:
| 事故 | 表面现象 | 真因 |
|---|---|---|
| PLAN.md 被 Ctrl+A+Delete 清空(18KB→101B) | 脚本”正常跑完” | 右侧文档面板开着时,INPUT_BOX(3670,990) 落在文档编辑器里,不在输入框上 |
| 同根因第二次:确认语被打进 PLAN.md | 文件多一行,确认压根没发出去 | send() 里没有先 ensure_layout() |
| 台风段 04 差点开浏览器 | —— | 取”最靠下的短蓝链接”选中了气象局外链,改取最靠上那个 |
| 工位池塘 05/06/07 三段一声不响退出 | 什么都没打印 | Codex 被上一段最小化过,SW_RESTORE 没回到最大化,BTN(4005,1025) 落到窗口外读到背景,被判成”还在跑” |
| 06 段”找不到 Codex 窗口” | —— | 最小化窗口 GetWindowRect 只有 160×28,被按最小尺寸过滤的窗口枚举漏掉 |
| 05 段出片 43.9s、时长合格、内容不能用 | 参数全对 | 开头就是上一条废弃take留下的”你在 9s 后停止了”,同一句提示词在画面里出现两遍 |
| 06 段出片 34.9s、时长合格、内容不能用 | 参数全对 | 快门按下时提示词还躺在输入框里、发送键在转圈——新建项目任务要几秒才建会话 |
另有一批”环境层”的坑(Chrome --app 遇中文路径开成新标签页、F11 跑到主屏、Godot class_name 缓存没生成、Godot 复选框要先悬停一帧、Godot 忽略 WM_CLOSE),都是一次性的,已写进脚本注释。
最有价值的数据点:又是 2 条”时长合格但内容错误”
上一批这个数字是 4/19,本批是 2/19。两批合计 6 条参数全对、内容全错。 这两条都发生在这批最后三段(工位池塘 Codex 段),也就是流程最熟、最容易松手的时候。
三、方法论沉淀
[固定坐标必须绑一条可机检的前提断言]
核心:UI 自动化里的每个硬编码坐标都有隐含前提(面板是关的 / 窗口是最大化的 / 输入框是空的 / 侧栏在顶部)。前提不成立时,坐标不会报错,它会落在别的东西上并照常执行——这才是它比”坐标写错”危险一个量级的原因。
来源:本批 4 次事故同一根因(清空 PLAN.md ×2、按钮预检误判、窗口没最大化整段静默退出);上一批已出现 2 次(ensure_layout()、输入框必须为空才能用按钮亮度判断在跑)。
验证状态:⭐⭐ 二次验证(两批不同素材、不同项目各自独立复现)
操作规则:
- 每个坐标常量旁边写死它的前提,并把前提做成可机检的断言,而不是注释里的一句提醒
- 断言写在动作前,不是动作后——
ensure_layout()必须在clear_box()之前跑,顺序反了就是清空文档 - 断言优先选位置无关的像素特征:本项目用”BTN 区域最暗像素”同时判三件事——按钮在不在预期位置(<250)、Codex 在不在跑(<100)、版面对不对
- 破坏性操作(Ctrl+A + Delete、拖放、点击”确认”)前必须过一次断言,别的动作可以只在开头过一次
- 窗口类前提要校验矩形,不能只发一条
ShowWindow:SW_RESTORE不保证回到最大化
反例 / 边界:坐标由程序当场探测(读控件 rect、找蓝色块、找按钮)时不适用——那类失败会当场返回 None,是响亮的失败,不需要额外断言。这条只针对硬编码常量。
→ 已抽成单档:UI自动化的固定坐标必须绑前提断言_v1
[出片不等于合格 —— 第三次验证,升铁律]
核心:机器只能验参数,内容必须过人眼。
来源:本批两条(05 段内容重复、06 段停在未发送)都是时长合格、参数正常、内容不能用。
验证状态:⭐⭐⭐ 三次验证 —— 首验(更早一次自动录制 3 个 mp4 参数正常但整体被废)→ 二验(实战六拦下 4 条)→ 三验(本批拦下 2 条)。已在 自动化产出双重验收_机器验参数人眼验内容_v1 升级标注。
本批新增的一条操作规则:能把内容判据写成断言的,就别只靠事后抽帧。 06 段的”提示词到底发出去没有”完全可以机检——发送后按钮应该是停止态。加了 confirm_sent() 之后这类失败当场判废,不用等人看。人眼关是兜底,不是第一道防线。
[真实项目当演示素材:只录”下指令”,发完立刻停]
核心:教学素材要拿真实项目才有说服力,但真实项目不能被演示改坏。“发完立即停止”是一个可执行的中间态——画面上是真的下了指令、AI 真的开始跑,但没有产生任何变更。
来源:工位池塘是有 37 个提交、三个已发布构建的线上项目,清单4 的三条提示词(改像素风 / 自审核 / 打包 exe)真跑完会改坏它。
验证状态:初次发现 ⚠️
操作规则:
- 先确认任务书对该镜头的要求是不是只到”输入 + 发送”——本例正是(清单4 写的是”对话框手动输入提示词”)
- 发送后停留足够长(本例 9 秒)让”已发送”的状态上镜,再点停止
- 收工后用两个独立证据复核没被改:项目侧
git status干净 + 应用侧环境面板「变更 +0 −0」。只信一个都不够 - 停止动作放在录制之外(本例在
stop_record()之后),画面里不出现”我把它停了”
边界:只适用于”下指令”类镜头。要展示 AI 的产出,就得让它真跑,那时应该换到一次性工作区(台风案例就是这么做的:新建项目指向交接包的空工作区)。
[任务书里的”展示 X”,X 可能根本不存在]
核心:人写给人的任务书默认”素材当然有”。自动化时会撞上这台机器上没有那份素材,此时如实标注比补拍假的强。
来源:清单4 段[7] 要求”展示自检发现的 6 个问题”,但 desk-pond 的开发是在别处完成的,这台机器的 Codex 里没有那段对话。
验证状态:初次发现 ⚠️(上一批的同族发现是”人写给人的任务书,自动化时有系统性失配”,本条是它的一个新形态)
操作规则:
- 排练阶段就把”这个镜头的素材在哪”逐条落实到具体窗口 / 文件 / URL,落实不了的当场标出来,不要拖到录完才发现
- 缺素材时给出最接近的真实替代并说清差别(本例:git 提交记录里有”6 处问题”,但那和”Codex 界面里的自检结果”不是一回事),让人来定
- 绝不用别的项目的画面冒充
四、下次改进
如果重来,最想改哪一步
开录前先跑一遍”版面前提自检”,而不是每段各自试错。
本批 4 次事故都是同一类,本来可以一次性拦掉:开录前依次断言「Codex 在录制屏上最大化 → 文档面板关闭 → 输入框为空 → 按钮是箭头态 → 侧栏在顶部」,任一不成立就修好再录。实际做法是每撞一次修一条,多花了 3 次重录。
下次同类型任务的行动清单
- 每个坐标常量配一条可机检前提,破坏性操作前必过(UI自动化的固定坐标必须绑前提断言_v1)
- 能写成断言的内容判据一律写成断言(
confirm_sent()这类),人眼关退为兜底 - 涉及真实线上项目:先确认镜头是否只需”下指令”;发完停;收工双证据复核
- 排练阶段把每个镜头的素材落实到具体窗口 / 文件 / URL,缺的当场标出来
- 应用状态机(新建任务 / 选项目 / 已有对话)不要靠单次点击推断——本例”点侧栏项目条目”会进已有对话,“点新建任务”项目又是空的,正解是三步组合并用像素校验结果
五、一句话结论
这批的所有失败都长一个样:动作本身没错,错在动作发生时版面不是我以为的那个版面。 自动化做熟之后,风险从”会不会做”整体迁移到了”是不是在对的上下文里做”。
关联文档
- 2026-07-31_Codex教程实战六_自动化录屏19段复盘 —— 上一批,同一套工具与流程;本批工具零改动复用
- 自动化产出双重验收_机器验参数人眼验内容_v1 —— 本批贡献第三次验证,已升 ⭐⭐⭐ 铁律
- UI自动化的固定坐标必须绑前提断言_v1 —— 本批提炼的一句话律
- 2026-07-16_Codex保姆级教学_代码化口播剪辑完整复盘 —— 更上游:这套教程的剪辑链路
- Windows下编码与DPI的所见非真相 —— 同源的”环境隐式转换”:DPI 缩放让截图尺寸失真,本批的混合 DPI 摆窗两次也是它
- 2026-07-30_风眼九段线问题地图事故复盘_v1 —— 台风案例的同项目上游事故
- 2026-07-20_朱元璋K线人生_历史可视化迭代复盘_v1 —— 朱元璋 K 线案例的项目复盘
- 代码资产索引 —— humancast 工具登记处
- 04_方法论与洞察索引