返回正文目录

第 30—34 章实操与回归

2026-10-25,Launcher 0.1.42 / 项目 CLI 0.1.25,Java 17.0.12,Python 3.11.5,openpyxl 3.1.5。沿用文件实验的独立 127.0.0.1:18368,匿名开发测试,Console/FAP 关闭。原 18067、Chinook 原库、第 29 章输入与模型保持不变。

输入、口径与隔离

本系列用原始 2012 年 83 张账单作为可核对基线。第 30 章的格式问题与三条待确认记录、第 31 章的重叠/追加/更正、第 32 章的旧字段与状态、第 33—34 章的目标都明确为教学改编。来源说明与第 29 章原始行保留。

本批金额统一标为教学元,不声明 Chinook 原币种。第 30 章按元/分规范化;第 32 章 v0 存分,在模型定义中除以 100。后续查询不再重复换算。第 31 章更新只改变独立文件案例,不进入第 32、33 章的原始实际账单。

章 Namespace 数据与模型
30 file-cleaning 不规范报表 → chapter-30/data/analysis.sqlite;TM / QM
31 file-monthly 文件清单 → chapter-31/data/analysis.sqlite;TM / QM
32 file-legacy ../series-data/legacy.sqlite,模型内只读视图;TM / QM
33 file-target-analysis 系统 QM 有界提取+v1 目标,同库准备;实际 TM / QM,目标 TM / QM
34 file-regression-current 候选数据源和 Namespace 按运行分目录;当前验收记录指向已验收 v2,保留第 33 章 v1 入口

模型校验、加载后获取的实时 Markdown 放在各章 evidence 下;这些是本次证据快照,不是手工维护的元数据输入。

各章验收

章 实际执行与边界
30 4 项语义查询通过;83 条可确认记录 / 477.53,20 国、全量明细及前导零核对;3 条待确认单列,1 个空行和1个合计排除。默认存在待确认记录时不发布,只有明确允许部分接入才处理已确认部分
31 7 项语义查询通过;去重后 83 / 477.53,追加后 84 / 487.53,更正后 84 / 488.53,重复运行不增加记录;84 条最终明细独立核对。无声明冲突与缺月两项准备层拒绝,数据库不变
32 3 项语义查询通过;原表 85 条,模型只含 83 条有效账单 / 477.53,客户汇总一致,作废/草稿不入结果;未公开 v1 字段校验拒绝,未执行。源库摘要不变
33 6 项查询通过,含通过系统 QM 提取的 83 行;实际 47 位客户、目标 5 位、匹配4位、实际未匹配43位、目标未匹配1位。0 目标客户 00002 的完成率为空,未匹配 00999 的实际为空;重复目标在写入前拒绝
34 两轮完整成功流程各 8 项执行,目标 v1 合计85、v2合计90,实际均83 / 477.53;另验证输入版本拒绝、切换后模拟复查失败的恢复,最后再查询目标仍90

第 34 章故障注入流程在失败前执行了7项候选检查,独立保存于失败运行报告,不将其计为第三轮成功发布;另有1项失败后读取。早期在第 33 章入口试跑的原型报告也保留,不计入最终独立发布入口的两轮成功计数。

复审后补清第30章“仅包含已确认部分”和第32章“仅有效账单、金额已换算”的 QM 说明,刷新实时 Markdown 后各复查总量1次,结果不变;这两项另计为元数据调整后的复验,不混入上表核心用例数。

30—33 章验收汇总 · 30 整理审计 · 31 拒绝记录 · 32 验收 · 33 验收 · 34 流程与失败验收。各章 queries 保存实际请求,evidence 保存 JSON/Markdown、命令、退出码和执行结果。

独立核对与失败分类

公开 CLI 为唯一引擎查询入口,全部请求先 validate,Compose 再 preview 后 execute。Oracle 使用只读原始 Invoice 行和 Decimal;第 31 章只按已声明的教学新增/更正构造独立预期,第 33 章同时读取已确认教学目标,不拿引擎生成 SQL 当作独立答案。源字段、行粒度、金额、顺序、缺失与真实零分别核对。

第 32 章初写模型时同时配置 tableName 与 viewSql,文档规定 tableName 优先,导致查询旧表字段失败。已去掉 tableName,按正确 viewSql 写法重验通过;最初调用快照保留,归为调用写法问题,未报引擎 BUG。

不规范报表中的 =1+1 有缓存值2,见公式核对。本例导入合同仍拒绝所有公式行;没有在本机 Excel 中进行依赖重算。Artifact Tool 预览对数字文本的前导零显示可能与保存文件不同,正式验证使用保存后的 XLSX、实际解析和语义查询,不以预览替代数据证据。

没有新增引擎问题。此前直接跨源校验缺口仍单独保留,未提交 GitHub;第 33 章使用准备层同库快照,不是原生跨源 JOIN。WWI 未引入,Memory Grid、任意文件自动推断、生产身份及性能未列为通过范围。没有另开干净 AI 会话只凭正文提示词验收。

复跑

使用带 openpyxl 3.1.5 的 Python,文件服务在 18368 运行。以下从资料项目根目录执行,先确保对应输入和旧库已经准备;不会操作18067。

python -X utf8 lab/checks/prepare-file-series-fixtures.py
python -X utf8 lab/checks/verify-file-series-30-33.py
python -X utf8 lab/checks/prepare-file-pipeline-current.py
python -X utf8 lab/files/tools/run-file-regression.py --target lab/files/series-inputs/Targets2012-v1.xlsx --version v1
python -X utf8 lab/files/tools/run-file-regression.py --target lab/files/series-inputs/Targets2012-v2.xlsx --version v2
python -X utf8 lab/checks/verify-file-pipeline-failures.py

第 30 章样例与目标工作簿由 Artifact Tool 构建器制作,已保存输入,不是分析运行依赖。准备层代码与查询核对是样例专用实现;更换文件必须先确认新的类型、键、范围与单位。

第 34 章脚本按已审核 v1/v2 基线运行候选验证;成功后切换绑定并复查,再记录最新已验收运行。故障验证脚本在当前会话故意注入切换后失败,不要把该脚本当成日常发布入口。更改业务基线须人工审核,不得让回归脚本用本次结果自动覆盖期望。

历史输入、快照、候选注册和日志本轮均保留,没有递归删除或后台清理。当前绑定使用哪个快照,以 latest-accepted 和 CLI binding 为准。清理时先排除仍被引用的运行,按公开 Bundle/数据源接口解除本隔离实验的注册,再处理明确属于该运行的目录。