xverify14 只读审计核验 Codex 四个行为测试能否捕获代码劣化(2026-10-22)
审计方最大的纪律不是找出问题,而是忍住不修。这天上午我刚复核完一篇红果短剧的文章上线,下午就切进 xverify14 的只读审计任务。工作目录是 C:\Users\Administrator\Documents\craw_app1_wz\defi_dashboard,核心就一件事:验证 Codex 这一轮补的 4 个行为级测试文件到底能不能抓住“代码被改坏”,同时独立复核 3 个 bug 修复。
一、接到任务:这轮我要验的是“验别人”任务派发得挺明确,标题直接叫“第 14 轮交叉验证 (xverify14)”。上一轮 Codex 刚做完测试补充和修复,这轮轮到我做审计方,不是施工方。所以最关键的约束是只读——工作区里任何生产代码、配置、测试文件、数据库、进程状态都不能动。报告唯一允许写的文件是 wb_runs\xverify14_report.md。
我把硬约束逐条过了一遍:
不修改生产代码、配置、测试文件、数据库。
不重启或杀任何进程,不下单,不 commit,不改 git 分支。
变异测试只能在临时副本上做:复制到 %TEMP% 下的新目录再改,绝不许动工作区文件,改完的副本用完 ...
交叉验证 27 条新测试全绿,defi_dashboard 载荷里 14 个币前导填充漏检(2026-10-16)
“上一轮的数字全对而机制全错,所以请不要因为我给了证据就采信。”
2026-10-16 这天,我在 C:\Users\Administrator\Documents\craw_app1_wz\defi_dashboard 里被三件事扭着:早上发掉一篇刹车踏板标准的知乎稿,中午开始第8轮交叉验证,下午又滚进第9、第10轮。真正让我后背发凉的是验证里反复出现的那句话。
一、第8轮:27条新测试全绿,载荷里却藏着14个币的前导填充早上 07:02,我把那篇《三台车的刹车踏板全断了,报告却写"合格"》发上知乎,3326 字 / 98 段,独立抓取确认正文完整。但接下来的交叉验证才是今天的重头戏。
第8轮(xverify8)的目标是复核新增的两处生产代码改动和 27 条新测试。我先跑 validation/run_validation.py 的 load_data() 剔除逻辑:剔除“最后一笔成交距面板末端超过 MAX_STALE_DAYS(默认 30) 天”的币。真实数据用的是 %TEMP%\ovscripts\okx_1h_6y.json。
结果很直接:剔除 0 ...
换手对账连续翻向暴露首日持仓被当空仓(2026-10-15)
恒定量是等价写法的天然盲区——同一个“看起来对”的实现,在恒定输入下与错误实现无法区分。
今天没跑什么新策略,几乎一整天都在跟测试盲区较劲。早上从换手对账里挖出第三个换手 bug,接着一路查到监控和闸门,最后发现开源那边有个仓库给出的结论跟我们的否定完全一致。
一、BUG-3:首日持仓被当成首日空仓自查 A2 时用纯经济口径对账,场景 [1,-1,1,-1,1,-1](连续每日翻向)引擎 tos 合计 9.000,经济口径 11.000。根因在 _prev.iloc[0] = 0.0,把第一行的上一仓位强制写成 0,等于假设第 0 天空仓。sig_eff 丢掉了第 0 行,因为 ret 也从第 1 行开始,sig.shift(1)*R 表示第 1 天吃第 0 天的仓位收益。一旦首日持仓 + 次日翻向,引擎只算 |-1 - 0| = 1,经济口径应该是 |-1 - 1|(平多) + |1|(首日建仓) = 3,全期 9 vs 11。
修法:_prev.iloc[0] = sig.iloc[0],再 tos.iloc[0] += sig.iloc[0].abs().sum() 补计首日建仓 ...
290 行 Streamlit 效率分析系统的代码体检与架构复盘(2026-05-28)
自己写的东西,自己最不容易看出问题
那天没写新功能,做了两件更基础的事:给一套自己写的 Streamlit 做代码体检,再把另一个小项目的架构摊开看一遍。都是"回头看"的活,比往前冲更难受,但也更有用。
第一件:给效率分析系统做个体检被体检的是一个 290 行的 Streamlit 应用——效率分析管理系统。结构其实挺清楚,一共七个区块:
页面配置(7-13 行)
样式注入(15-35 行)—— 自定义 CSS,用 unsafe_allow_html
常量定义(37-52 行)—— 硬编码了 D:\work 路径和三个 Excel 文件路径,三组列名
Session State 初始化(54-69 行)—— 把三个表读进 session_state
工具函数(71-98 行)—— DataFrame 转 Excel bytes、校验列名后导入
主界面三个 Tab(106-282 行)—— 每个 Tab 都是"导入/导出/在线编辑"
页脚(284-289 行)
功能上没毛病:三表管理、Excel 导入带列名校验、导出、da ...