返回正文目录

第十一章时间分析实操记录

历史记录:以下为 Launcher 0.1.24 初轮结果。2026-10-20 教学入口已切到 0.1.25,timeWindow 与 LAG 的当前验证和复跑方式见更新记录。旧失败证据不表示新版仍有这些问题。

日期:2026-10-20。正文:按时间分析。本轮真实调用公开 CLI,新增时间分析 TM/QM,验证自然月分组、跨年、年度与期间比较。

环境与模型

原账单模型只有普通日期属性,尝试年月字段的校验返回 FIELD_NOT_FOUND,未执行该错误请求。随后按 Skill 的自维度模式建模:日期维度没有 tableName,从主表 InvoiceDate 取值;year、month、yearMonth 由作者控制的 SQLite dialectFormulaDef 定义。没有创建日历表或假造维表关联。

模型校验沿用本教学版本对已注册目录的处理:确认自己的 chinook-teaching Bundle 后,移除登记,校验六文件全部通过,再登记原目录、刷新并 describe。顺序及响应见 *-time-model-*.json;摘要和六文件哈希见 model-validation.json。查询在加载完成后单独运行。

实时元数据确认 invoiceDate$id 为 DATETIME,年份/月序号为 INTEGER,yearMonth 为 STRING。查询说明由引擎根据加载的代码生成,不需预先维护 Markdown。这里的 $id 是日期值,不是 InvoiceId。

五个通过用例

请求位于 queries/chapter-11,执行清单见 query-manifest.json。所有用例对相同 payload 先 validate、后 execute,并检查未被分页截断。

请求 已核对的结果
01-monthly-totals.json 2012 年 12 个月金额与张数逐项匹配第七章基线,合计 477.53、83 张
02-october-november.json 日期范围 [2012-10-01, 2012-12-01),两个月各 7 张,金额分别为 42.62、37.62
03-cross-year-months.json 2011-11 至 2012-02 保留四个年月组,金额依次为 23.76、37.62、37.62、37.62
04-annual-totals.json 2011 年 469.58、83 张;2012 年 477.53、83 张;年度与月度合计一致
05-empty-months.json 1990 年无记录,返回空列表,没有自动生成零值月份

calculate-chapter-11.py读取第二个用例的已校验、已执行响应,用 Python Decimal 计算十一月减十月,差额 -5.00,相对十月变化 -0.1173158141717503519474425153,展示为 -11.73%。工具产物见 comparison.json。这是查询结果上的工具运算,不是 Foggy timeWindow 的执行结果,也不是让 LLM 心算。

初轮未通过的窗口探查

后续按用户要求完成了原因排查:简单 lag(invoiceAmount, 1) 已独立核对通过,不能将初轮失败概括为 LAG 不可用;原嵌套 SUM 有重复聚合问题,复合表达式与同层窗口依赖还涉及引擎分层/校验缺陷。timeWindow 同比的命名空间传递、月度环比计划及范围参数也已定位。详见专项排查。以下保留初轮证据,原五用例验收范围不变。

失败响应及命令保留,正常五用例复跑不包含这些探查。没有切换数据源、复制 Invoice 到默认库、调用私有接口或修改产品源码来掩盖错误。

探查 校验 执行与边界
probe-yoy.json 通过 QUERY_EXECUTE_FAILED,query.execute;比较计划执行出现 no such table: Invoice。普通聚合在命名数据源上正常,此现象提示比较计划的数据源处理需排查,尚未定位修复
probe-mom.json 通过 QUERY_EXECUTE_FAILED,query.execute;派生查询引用源输出中不存在的 invoiceDate$id
probe-monthly-lag.json 通过 QUERY_EXECUTE_FAILED,query.execute;生成语句中 OVER 附着到复合表达式并出现 SQL 语法错误,不能据此宣称整套窗口计算已可用

三个错误均返回 safeToAutoRepair=false,没有自动修改数据或模型权限,未重试相同错误请求。timeWindow.value 的实际期间裁剪、上期缺失/零分母、跨年环比及滚动窗口等均没有因此获得验收。失败响应路径汇总于 acceptance 的 failedWindowProbes。

本章交付收敛为已通过的自然年月聚合与工具计算期间变化;原规划中的时间窗口能力保留待发行包修复后单独验收。不是把暂缓的 Text-to-SQL 与语义层多次生成对比换个名字执行。

独立核对与复跑

verify-chapter-11.py以只读、immutable 方式读取 Chinook 原件的 Invoice 行,用日期字符串分组和 Decimal 核算五用例,再与由 CLI 结果计算的期间变化比较。原件与练习副本 SHA256 均保持固定值,既有四模型哈希与第十章验收一致。数值容许误差 1E-12,仅展示时舍入。

结果见 baseline.json 与 acceptance.json。acceptance 的 success 仅指上述五个查询、建模和计算范围;两个窗口能力标记均为 false,三个失败未计为通过用例。

在 lab 目录、模型已加载的前提下运行:

python -X utf8 .\checks\collect-chapter-11.py
python -X utf8 .\checks\calculate-chapter-11.py
python -X utf8 .\checks\verify-chapter-11.py

当前 Codex 会话实际编写模型、构造请求并执行 CLI;未另开干净会话只发正文三个短提示词做独立问答验收。未执行两路线正确性评测、生产权限或浏览器/FAP 验收。