# C9-90 交叉核查与最小修复记录

日期：2026-10-29。接管范围仅本目录；未改G90正文、模型、数据、份额精度、输出含义、共享索引或依赖锁文件，未提交。原作者的来源、合成材料与未验范围保留。

## 修复范围

初始实际执行`pnpm exec biome check docs/education/investment-research-book/articles/cases/c9-90`报8项：index.html导出处理有4处useIterableCallbackReturn；browser-check.cjs、expected.json、manifest.json、spec.json有格式项。

仅把导出处理内两层forEach的4个表达式回调改为带花括号、无返回值的回调，rows.push和遍历顺序不变。对本目录运行Biome格式化，模型拟合、排序、费用BigInt计算和输入均未改。

新增verify-manifest.py，并用明确混合算法重建manifest.json：所有非PNG文件按UTF-8-sig解码去可选BOM，将CRLF与裸CR统一LF，再UTF-8无BOM编码后SHA256；不裁尾空白。PNG按原字节SHA256。manifest自身不列入；运行时耗时与截图来自最新真实headless运行，重新运行可能改变其内容，不能指望不同运行字节完全相同。

## 浏览器隔离审查

运行前通读browser-check.cjs：使用chromium.launch(headless:true, executablePath)，随后新建browser.newContext(offline:true,acceptDownloads:true)，仅打开本目录file://index.html。没有launchPersistentContext、用户profile路径、connectOverCDP、用户本地浏览器连接或桌面输入工具。HTML自带CSP，connect-src 'none'且无外部脚本/样式。测试结束browser.close。

实际使用预装的chromium_headless_shell-1228/chrome-headless-shell-win64/chrome-headless-shell.exe，不打开普通浏览器窗口。Node与Playwright均来自bundled运行时，不安装包、不改锁文件。没有Computer Use/CUA、用户鼠键、窗口焦点、交易/账户或外网服务操作。

## 实际命令与结果

1. `python -X utf8 docs/education/investment-research-book/articles/cases/c9-90/audit.py`：退出0。从inputs.csv以Fraction独立拟合、排序和算费，OLS预测−.004/.012/.028/.044，树0/0/.04/.04；两原例终值10389.605193552000；变式OLS10189.805095576000、树不变。
2. bundled Node命令：`node.exe docs/education/investment-research-book/articles/cases/c9-90/browser-check.cjs <bundled dependencies/node/node_modules> <ms-playwright/chromium_headless_shell-1228/chrome-headless-shell-win64/chrome-headless-shell.exe>`。退出0，实际Chromium149.0.7827.55，约1074ms；base/variant两情景均核预测、选择、MAE/MSE和全部费用/现金字符串；隐藏/揭示、键盘启动、切换后禁旧导出、CSV实际下载和390px页面无横向溢出断言通过。
3. 独立Python csv.DictReader重新读取浏览器实际下载的export-base.csv及export-variant.csv，各64条数据行；按expected.json比较两模型全部result字段，数值容差1e-12、金融字符串完全相同，全部通过。没有以Python伪造浏览器下载文件。
4. browser-verification.json记录headless=true、offline=true、external_requests=0、page_errors=[]。这是本轮作者隔离浏览器检查，不是真人、新电脑、CoTrading或真实C9验收。
5. 实际查看headless生成的preview-base.png与preview-mobile.png，桌面双列结果及390px单列可见。移动预测表为内部横向滚动区域，页面本身未横向溢出；未在用户本地桌面上打开这些文件。
6. `pnpm exec biome check --write .../c9-90`退出0；审计和浏览器重写的JSON再格式化，冻结含义不变。
7. `python -X utf8 .../c9-90/verify-manifest.py --write`生成新清单，格式化manifest后用默认命令核所有文件匹配；额外在内存模拟文本转CRLF并加BOM，规范化后摘要仍匹配。PNG直接按原字节比对，不进行文本规范化。

## 全仓范围与限制

本轮只读执行`pnpm exec biome check . --max-diagnostics=12`检查739文件：C9-90无错误；全仓当时剩C2-B的spec.json和failure-log.json两项换行/格式错误，因此当时全仓未通过。当前所有权不含C2-B，未顺手修改，已报告主编。最终全仓状态以本轮结束时再次检查结果及主编后续复验为准。

本次不验证学习效果、真实数据、机构模型能力或产品交付。未改变README原有事实和未验范围；更新的截图/CSV/JSON只是同一合成规格的新一次作者headless产物，耗时不作为长期基准或GPU采购依据。

最终只读复验`pnpm exec biome check . --max-diagnostics=0`仍检查739文件、退出1、2项错误；本目录单独check退出0。全仓本轮未通过的结论不变，不将主编未来修复结果提前写入本记录。
