# PROGRESS · 对话数据卡与报告同源(2026-10-09) 分支 `codex/consult-card-full-source-20261007`。基线 HEAD `e1c7383c`。本地未推送。状态:待验收。 ## 做了什么 对话卡的新数字从完整数据版同一个资料包来,入口是 `read_full_data_domain`。12 个领域一次做完。每个领域一张综合判断表,由卡片构建器组装,模型只解读。旧的基础投影留着,所以首轮回答的字段名不变;新的权威数字是领域段上的表。表是资料包里的挑选,不是第二套计算。 卡版本仍是 `evidence-card-v2`。没有事实时不上表,golden 的 `meta.gaps` 仍为空。年运对话继续读 `tajika_yogas`,不读 `tajika_named_yogas`。KP 不上卡,补取仍带参考说明。不做每轮联网,不接书籍语料。 `scripts/jyotish_api_server.py` 只在原有的咨询计算入口上薄薄包了一层,主体在 `scripts/consult_full_data_cache.py` 与 `scripts/consult_card_domain_facts.py`。类方法数仍是 218。文件换行数 10,956,粗护栏上限 11,224。`page.tsx` 的 useState / useRef 没有增加。没有第二个聊天输入框。 ## T0 · 12 领域对照 共用层里,Parashari 星照在 `references/strict-workflow-router.md` 找不到「单独列为参与层」的段落,12 个领域都是 `blocked`。表上的「照」因此记在关系缺口里,不重算。KP 按产品决定写「不参与」。其余共用层有出处:Sudarshana、D9、Bhava Chalit、Shadbala、Bhava Bala、Avastha、Vimsopaka、八分法、功能吉凶、Jaimini 星照、Argala、定位星链、Vimshottari、Narayana、Yogini、行运、双重过运、瑜伽 hits。 | 领域 | 专属项出处 | blocked | | --- | --- | --- | | 事业 | D10、A10、AL、AmK、Karakamsha、Ghati、太阳/土星/水星/木星、10 宫、D1/D9/D10 联动:`strict-workflow-router.md`、`event_judgment_career.md`、`jaimini-complete-system.md`、`deep-analysis-complete-workflow.md`、`pdf-chart-reading-guide.md` | Parashari 星照;Vighati(`references/` 无条目) | | 财富 | D2、D11、Hora、Sree、木星/金星/水星、2/11/5/9/10 宫:`event_judgment_wealth.md`、`deep-analysis-complete-workflow.md`、`promise-assessment-templates.md` | Parashari 星照;Indu;从 AL 起第 2 宫;从 AL 起第 11 宫 | | 婚恋 | D9 第 7 宫、UL、DK、金星、木星、Vivah Saham、火星、7 宫:`event_judgment_marriage.md`、`jaimini-complete-system.md` | Parashari 星照;UL 起第 2 宫;A7 | | 健康 | D6、D8、D30、第 22 个 Drekkana、Badhaka、太阳/月亮/土星/火星、1/6/8/12 宫:`strict-workflow-router.md`、`shodasavarga-complete-guide.md`、`badhaka-obstacle-planet-guide.md` | Parashari 星照;第 64 个 Navamsa;Gulika;Mandi;Pranapada(问事章有,未列入本命健康) | | 子女 | D7、PK、木星、5 宫:`strict-workflow-router.md`、`jaimini-complete-system.md`、`house-domain-planet-mapping.md` | Parashari 星照 | | 父母 | D12、MK、PiK、太阳、月亮、4 宫、9 宫:同上三份 | Parashari 星照 | | 学业 | D24、水星、木星、4/5/9 宫:`strict-workflow-router.md`、`house-domain-planet-mapping.md` | Parashari 星照;D5(未找到标成学业分盘的段落) | | 迁居 | D4、罗睺、4/9/12 宫:`birth-time-rectification-decision-tree.md`、`house-domain-planet-mapping.md` | Parashari 星照;D12(路由器标给家族,未标给迁居) | | 家庭 | D12:`strict-workflow-router.md` | Parashari 星照;D4(出处是搬迁,不是家庭);D7(出处是子女);自然代表星整组 | | 流年 | Tajika、Muntha、年主、Mudda、Sahams:`varshaphala-annual-chart-guide.md` | Parashari 星照;单独的自然代表星;单一本命宫 | | 时间 | Narayana 子运、年盘:`bphs-ch48-narayana-dasha.md`、`varshaphala-annual-chart-guide.md` | Parashari 星照;单独的自然代表星;单一本命宫 | | 综合 | D1、D9、AL、Karakamsha、1 宫:`strict-workflow-router.md`、`pdf-chart-reading-guide.md`、`jaimini-complete-system.md`、`house-domain-planet-mapping.md` | Parashari 星照;D10(标给事业);D2(标给财富);自然代表星整组 | 自然代表星没有出处的领域是家庭、流年、时间、综合,写的是 `blocked`,没有自拟。家庭领域的分盘列仍是 D4,参与清单里的家庭 D4 是 `blocked`:出处说的是搬迁,不是家庭。这是故意分开的。 Argala 与定位星链有出处,卡上放的是路径引用,不在对话卡里重算。若以后要把 `argala.houses` 的净结果抄上卡,那是另一次叶子复制。 ## T1 · 缓存 键是年月日时分秒、经纬度、时区、岁差、交点模式、引擎版本、schema `consult-full-data-cache-v1`。文件名是 sha256,放在 `scratch/local/consult_full_data_cache`(服务器上这块目录就是 `api_scratch` 卷)。键里没有「今天」,所以当前大运冻在第一次计算的那天。改出生资料会换成另一把键(BUG-1251)。精度闸在取事实时做,不进缓存键。未命中同步计算,没有另加超时绕过。超过 20 秒会标 `slow`,本机没有出现。 | 情况 | 未命中整包 | 领域取数 | | --- | --- | --- | | 虚构盘 | 7.342 秒 | — | | 乔布斯公开盘 | 7.075 秒 | 0.145 秒 | | 奥巴马公开盘 | 4.668 秒 | 0.118 秒 | | 泰勒公开盘 | 4.421 秒 | 0.104 秒 | | 乔布斯同一身份再取 | 命中,装入 0.044 秒 | 十二领域合计 0.552 秒,约 0.046 秒/域 | 都低于 20 秒,命中后的领域取数也低于约 1.66 秒/域。没有另做事实侧车缓存。 ## T2–T5 综合判断表:每个因素一行。列按任务书。宫主另起一行。受冲是计数加明细,表里没有门槛,也没有「两个及以上」。Vargottama 由抄来的 D1 星座和 D9 星座是否相同推导。罗计功能角色为空。大层 JSON 超过 800 字符或含 `tajika_named_yogas` 时只留路径、检查记 `nonempty`;判断表上的标量格子是全文复制。 乔布斯、奥巴马、泰勒三张公开盘 × 12 领域,以及虚构密度盘 × 12 领域,叶子对照通过。 精度闸:`declared_accuracy` 为 `rectified`,或 `birth_time_status` 为 accepted / confirmed,或请求里明确带了 `birth_time_accuracy=confirmed`,并且有时、分,才放行 D16 及以上与 Ghati。只申报了分钟、尚未接受,仍然不放行。 补取上限 3。测试:前三次成功,第四次 `lookup_limit_reached`。`AGENT_MAX_STEPS` 仍是 8。一次计算加三次成功补取、一次被拒绝的第四次、再写回答,测试跑完了,所以不加步数。 `further_reading` 每领域 1–8 条,形如 `领域: references/...`,无 oracle、无治理文件。索引上限 24 改为 48。共享方法正文没有加长。 临时上限:卡 ≤ 20,000 字符,加清单 ≤ 26,000。最终上限等 T6,本单不定。 ## T6 / T7 · 环境缺口 本机没有模型 key。没有寻找、没有读取、没有发明 key。没有输入 token、首字时间、总耗时、空答率,也没有生平回测的冲突数。这两项不能写成通过。 ## 系统提示 BUG-1256 修完后的本命系统提示是 26,591 字符,上限 26.6K。本单只把「补取一次」那句改成「最多三次」,新句短 20 字符。按 Linux 上真实技能文件(本机该文件是一行相对指针)用同一套摘录规则测量:26,571 字符,仍 ≤ 26,600。方法块仍小于 4,000。首轮形状与口吻没有改。新增读法在清单里。 ## 本机验证 - `tsc --noEmit`:退出码 0。 - `npm run lint`:退出码 0,0 error。既有 warning 未动。 - 相关前端测试:综合判断表、补取 3/4、清单、资料目录、口吻、预算断言通过。 - `skill-binding.test.ts` 开头两条在本机失败:`skills/jyotish-vedic-astrology/SKILL.md` 在 Windows 上是一行 `../../SKILL.md`,不是符号链接。该文件本单没有改。Linux 上 `readFileSync` 会跟到真文件。其余该文件测试通过,方法块长度断言通过。 - Python:`tests/test_consult_card_full_source.py`(不含三张公开盘的快测)与 `tests/test_api_server_growth_contract.py` 通过。三张公开盘的未命中耗时见上表,通过。 - 未跑:Linux 全量、快速门、`npm test` 全套、`next build`、浏览器走查。不能声称这些通过。 ## 改过的既有断言 | 位置 | 原值 | 新值 | 原因 | | --- | --- | --- | --- | | 补取上限 | 1 | 3 | 产品 2026-10-08,BUG-1294 | | 补取测试 | 第二次拒绝 | 第三次成功、第四次拒绝 | 同上 | | 系统提示句子 | once | at most three times | 同句短 20 字符,BUG-1256 | | 共用清单条数 | 8 | 9 | 受冲只计数、资料用 skill_read,BUG-1293 | | 清单字段扫描 | 只放过 blocked | 再放过 skill_read、further_reading | 这两个词是工具和目录名 | | 卡预算三处 | 12,500 / 18,500 | 20,000 / 26,000 | 产品临时上限,最终等 T6 | 资料目录测试改为按 12 个领域检查真实路径。行走源码的测试在 Windows 上改用 `fileURLToPath`,期望的相对路径名单没变。 ## 明确没做 没有 `git push`,没有推 `staging`,没有改 workflow,没有提升 `main`。没有模型 key。