Files
Jyotisha/docs/tasks/PROGRESS-consult-card-full-source-20261007.md
T
jesse-ux 3874a328a5 feat(consult): copy the full-data packet into a per-domain judgment table
Dialogue cards now take numbers from the same packet as the full-data report. Each of the twelve domains gets one table the card builder assembles. Lookups allow three calls a turn. further_reading is a per-domain technique index. BUG-1293, BUG-1294, BUG-1295.
2026-10-09 10:00:45 +08:00

97 lines
9.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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。