Files
Jyotisha/docs/tasks/PROGRESS-bug-1061-cross-layer-pairing-20260927.md
T
Jesse_ChenandClaude Opus 5.5 d9c9e714f2
Independent Staging Quality Gate / validate (push) Successful in 11m14s
Independent Staging Quality Gate / publish (push) Successful in 3m47s
docs(tasks): BUG-1061 acceptance
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
2026-09-27 19:08:07 +08:00

5.9 KiB
Raw Blame History

PROGRESS · BUG-1061 双重过运跨层(D1+D9)配对按名字数字比对(2026-09-27)

  • 执行方式:直接执行(产品负责人 2026-09-27 同意修复 BUG-1061,由子代理实现),无单独任务书。
  • 基线:origin/staging = 9aa37197;分支 codex/bug-1061-cross-layer-pairing-20260927,工作树 .worktrees/bug-1061-cross-layer-pairing-20260927;未推送。
  • 开工预检:python3 scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45 退出 0,remote_visibility verified,focused tests ok。
  • 冻结计分清单(ERR-110):scripts/jyotish_engine.py、scripts/run_quality_gate.py 不在 sealed_holdout_rerun.py PRODUCTION_FILES 与 holdout v2/v3 frozen_scoring.files 里;未动 scripts/jyotish_api_server.py、.gitea/**、deploy/**、迁移。

改了什么

文件 改动
scripts/jyotish_engine.py 新增 _double_transit_target_meta(D1 / D9 目标的 layer / kind / house / planet)与 _double_transit_target_identities;cmd_double_transit_pac 跨层两段循环改为身份集合有交集才配对,删掉按名字抽数字的比较。目标名、各层结果、条目格式、摘要文案不变
tests/test_double_transit_cross_layer_pairing.py 新增 8 条回归(三张公开 AA 盘真实引擎)
scripts/run_quality_gate.py 新测试进 CORE_PYTEST_TARGETS
frontend/tests/fixtures/consult-evidence-card-golden.json 用采集脚本重生成(未手改)

配对规则逐条决定与理由见 docs/BUG_HISTORY.md BUG-1061。一句话:只认「同一宫」(D1 第 N 宫 ↔ D9 第 N 宫)与「同为 D1 第 N 宫主这颗星」(D1 宫主 ↔ 它的 D9 星座,以及它恰好也是 D9 第 N 宫主时的那项)。

试算过、未采纳的两种扩大口径(4 组输入 × 12 宫):

口径 跨层条目 摘要句变化 不采纳原因
采纳:同宫 + 同为 D1 第 N 宫主 31 → 38 7 / 48 —
+ 两层第 N 宫主互配(不同星) 31 → 59 14 / 48 不是同一征象星,KN Rao 三点里没有 D9 宫主;扩大技法口径需产品另定
+ 上升主与其 D9 星座互配 31 → 89 24 / 48 与第 N 宫无关,同一对在 12 个宫的调用里重复出现

前后对照(3 张公开 AA 盘 + 报告 golden 虚构输入,各 12 宫;PYTHONHASHSEED=0,chart 缓存 TTL 0)

输入 跨层条目 修复前 修复后 变化
barack_obama 10 10 无
elizabeth_taylor 9 10 +6 宫、+12 宫同宫条目;−9 宫误配 Jupiter(D1)9宫(Cancer) + Saturn(D9)Mars_D9(Capricorn)
steve_jobs 6 9 +2 / 6 / 7 宫同宫条目
虚构输入(报告 golden) 6 9 +1 / 2 / 8 宫同宫条目(报告跑的 7 宫不变,仍 4 条)
合计 31 38 +8 / −1;宫主类条目全部不变

d1、d9、cl、层内(D1 / D9 / CL)条目、stats 48/48 不变;摘要句 7/48 变化(6 处「❌ 无」→「⚠️ 跨层间接」,泰勒 9 宫反向)。

Golden

  • D1 / CL golden:JYOTISH_API_CHART_CACHE_TTL_SECONDS=0 PYTHONHASHSEED=0 python3 tests/test_double_transit_d9_targets.py --capture 重生成,逐字节不变。
  • 数据卡 golden:JYOTISH_API_CHART_CACHE_TTL_SECONDS=0 PYTHONHASHSEED=0 python3 scripts/research/capture_consult_evidence_card_golden.py,两次运行逐字节相同。与原文件比,只有 consultation_native_layers.double_transit 子树变化(其余逐项相同):乔布斯结论 6 → 9、house_7_summary「❌ 无」→「⚠️ 跨层间接」;泰勒 9 → 10;奥巴马不变;family / annual / timing 三路相同。
  • report-density-fictional-reader.json:09-23 冻结快照、无采集脚本,本轮未重生成(报告只跑 7 宫,本轮 7 宫条目数不变)。

测试

项 基线 9aa37197 修复后
Python 门禁集(gate-pytest-args,含 growth contract / privacy markers / validation integrity)+ test_double_transit_d9_targets + test_consultation_native_layers + test_report_reader_main + test_report_density_facts(修复后另加新文件) 978 passed / 1 skipped 986 passed / 1 skipped(+8 新增;同一条 skip)
tests/test_double_transit_cross_layer_pairing.py 在基线引擎上 3 failed / 4 errors(新函数不存在)/ 1 passed(快速门登记) 8 passed
前端受影响 5 个文件(evidence-card v1 / v2 / telemetry、projection native / timing) — 34/34 pass
前端全量(Node 22.14,tsx --test tests/*.test.ts tests/*.test.tsx) 4192 / pass 4138 / fail 24 / skipped 30 / cancelled 0 4192 / pass 4138 / fail 24 / skipped 30 / cancelled 0

前端 24 条失败两边按名字逐条相同(含嵌套子测试比对;全部是需要 Docker / PostgreSQL 的数据库与部署套件),新增失败 0。本轮没有修改任何既有断言。前端基线的做法:同一工作树临时换回基线数据卡 golden 跑全量,再换回新 golden(前端只受这份 fixture 影响)。

未做 / 另记

  • 部署后 chart 缓存(15 分钟 TTL,键不含代码版本)可能短暂返回旧跨层条目。
  • 环境缺口:无 Docker,数据库 / 部署套件以与基线逐条一致的失败清单代替。
  • 无新增缺陷编号。

验收(Claude,2026-09-27)

基于 9aa37197 独立复跑(Node 22.14,顺序执行):tsc 0;lint 0 error;npm test 4192 / 24 fail / 0 cancelled / 30 skip,失败名单与性别单基线逐条一致、无消失测试名;Python 门禁集退出 0;tests/test_double_transit_cross_layer_pairing.py + test_double_transit_d9_targets.py + test_consultation_native_layers.py 通过;build 正常。配对规则只认「同一宫」与「同一个第 N 宫宫主」两种身份,宫主类条目与 D1/D9/CL 各层结果不变;交叉层条目 31→38(8 条新增同宫配对、1 条误配移除)。推送前 rebase 到 037cd1aa(仅文档)。