Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
13 KiB
TASK · 对话数据卡与报告同源,按领域给出综合判断表(2026-10-07)
2026-10-08 更新(Claude):前序两单都已部署 staging
3b70d1a7:上游同步第六轮、特殊上升点原生计算(BUG-1273)、章动修正(BUG-1275)、完整数据版报告(BUG-1272~1282)。报告单 T7 的资料包取值入口已经存在:scripts/pl9_full_data_export.py::read_full_data_domain(packet, domain)(领域清单FULL_DATA_DOMAINS,测试tests/test_full_data_domain_reader.py)。本单现在可以领取。注意两点:①完整数据版资料包本机生成约 20–27 秒(含渲染),只取资料包时约 8 秒,T1 缓存仍是前提;②年运资料包里tajika_yogas是对话用的候选格局列表,tajika_named_yogas只给报告(BUG-1282),对话卡不得改读后者。与TASK-rashi-dashas-native-20261008可以并行,后合入者 rebase 并重跑全量。
- 基线:
origin/staging@3b70d1a7(开工时以最新为准)。 - 分支 / worktree:
codex/consult-card-full-source-20261007/.worktrees/consult-card-full-source-20261007 - BUG 编号:开工时核对
docs/BUG_HISTORY.md最大号(写作时 BUG-1282)。
1. 事故实证
产品 10-07 反馈:对话里 AI「只看本命盘或 D10」,没有把事业代表星、大运主星和事业的关系、各项分值、KP、功能吉凶、相位、D10 映射回 D1 / D9 综合起来;也没用上资料库和公认技法。
用乔布斯 golden 盘(frontend/tests/fixtures/consult-evidence-card-golden.json)导出事业题的数据卡(buildEvidenceCard),约 7,600 字符:
| 产品说的缺口 | 引擎算了吗 | 卡上有吗(frontend/src/lib/consultation-evidence-card.ts) |
|---|---|---|
| 10 宫、宫主、宫内星、照 10 宫的星 | 算了 | 有 |
| 事业的自然代表星(太阳、土星、水星、木星) | 位置算了 | 没被点名:EVIDENCE_CARD_SPECS.career 的 planets: [],清单只要求看 AmK |
| 大运主星和事业的关系 | 原料分散在各处 | 没有关系表。罗睺、计都当大运主星时没有功能吉凶(判定表只列七星)。样例当前正走罗睺大运,卡上没有一行写罗睺对事业的意义 |
| 分值综合 | 算了 | Shadbala 七星有;八分法只给 10 宫 SAV;没有把各项放在一起的表 |
| D10 映射回 D1 / D9 | 算了(consultation_native_layers.inter_chart_linkage:每星在 D1 / D9 / D10 落第几宫) |
不在卡上,只能补取;D10 段只有星座,没有宫 |
| 卡外补取 | — | MAX_EVIDENCE_LOOKUPS_PER_TURN = 1 |
| 资料库 | 有 190 份 | methodology.further_reading 的 19 条多为 oracle / 治理文件,KP、宫位对照、分盘深读、Argala、Jaimini 等技法书不在列 |
| Avastha、Bhava Bala、Vimsopaka | 报告资料包里有 | 对话链不算 |
| KP | 引擎有宫头 | 09-27 按顾问意见不上卡(observation_only_truth_blocked,原因 licensed_provider_not_terms_safe) |
| 联网 | — | 卡上写死「全网资料核对、真实案例校准:未做,置信度封顶」 |
2. 根因
09-27 数据卡改造时,为了解决「模型可见 13–14 万字符、读不过来」,把每个领域压成约 1.2 万字符,并按当时的清单挑字段。挑法只覆盖必看项,没有「把各因素放到一起比」的结构;对话和报告从两条路取数,深度不同。
3. 决策记录
产品 2026-10-07 已定:
- 同源:对话数据卡的数值取自与报告完整数据版同一个资料包(报告单 T7 的取值入口),按领域挑选。对话链不再单独拼一套。
- 全领域一次做完:12 个领域都改。
- 任务书交 coding agent 执行,Claude 验收。
产品 2026-10-07 第二次回复:
- 已确认:每个领域上卡一张综合判断表(定义见 T2),由卡片构建器从资料包取值组装。模型只负责解读,不再自己从几处拼。
- 已确认并扩大:产品原话是「在顶级印度占星的复杂和丰富技法全量体系下,应该不止 D1 和 D9 盘的联动,还应该有其他的星盘报告信息参与」。因此不再只做「领域分盘 ↔ D1 / D9」,改为按 §3A 的参与清单:每个领域有一个共用层,再加本领域专属的盘与点。清单是 Claude 起草的候选,执行方在 T0 逐条到本仓
references/找出处,找不到出处的写blocked,不自拟。
产品 2026-10-07 第三次回复「都同意」:
- 已确认:卡外补取上限从 1 次改为 3 次(产品知悉:每多补取一次,回答可能慢几秒)。
- 已确认:
further_reading改为按领域的技法资料目录。
决策 1–7 全部确认,本单定稿,可以领取。
明确不做:
- KP 不上卡:产品 10-07 说「先记下」,维持 09-27 决定,补取时仍带
EVIDENCE_LOOKUP_KP_NOTE。 - 不做每轮实时联网。
- 不接上游书籍 / 文章语料(
references/book_corpus、article_corpus、search_jyotish_books.py):第三方作品不随仓库授权,商用前需要产品另行决定。
本单推翻的既有决定(执行方据此可以改,不得拒改):
- 09-27 数据卡 v1 / v2 的「每领域卡 ≤ 12,500 字符、加清单 ≤ 18,500 字符」上限(BUG-1160 / 1161 / 1221)。新上限由 T6 实测后报产品定,在此之前按卡 ≤ 20,000、加清单 ≤ 26,000 执行。
- 09-27 D8「卡外只补取一次」。
3A. 参与清单(决策 5;候选,T0 逐条核出处)
共用层(12 个领域都带,取与本领域相关的宫和星)
| 层 | 说明 |
|---|---|
| 三个参照点(Sudarshana) | 同一件事从上升、月亮、太阳三个起点各看一遍(月亮盘、太阳盘);资料包有 Sudarshana 三盘 |
| D9 | 星的真实力量与 D1 是否互相印证(Vargottama、D1 ↔ D9 尊贵反转) |
| Bhava Chalit | 星是否跨宫,跨宫时按哪一宫读 |
| 力量 | Shadbala(星)、Bhava Bala(宫)、Avastha(星的状态)、Vimsopaka(星在 16 张分盘的综合强弱) |
| 八分法 | 本领域宫的 SAV、相关星的 BAV |
| 功能吉凶 | 每颗相关星;罗计按红线 3 处理 |
| 相位 | Parashari 星照与 Jaimini 星座照,分开列 |
| Argala | 对本领域宫的支撑与阻碍 |
| 定位星链 | 本领域宫主的定位星一路追到终点 |
| 时间 | Vimshottari 与 Narayana 双轨(主),Yogini(第三条线,只作参照);行运与双重过运;问今年时加年盘 |
| 瑜伽 | 只认 hits,按领域标签 |
领域专属
| 领域 | 专属的盘与点 |
|---|---|
| 事业 | D10;A10、AL;AmK 及 Karakamsha;Ghati 上升;太阳、土星、水星、木星 |
| 财富 | D2、D11;Hora 上升、Indu 上升、Sree 上升;AL 起第 2、11 宫;木星、金星、水星 |
| 婚恋 | D9 第 7 宫与 7 宫主;UL 及 UL 起第 2 宫、A7、DK;金星、木星;Vivah Saham;火星煞 |
| 健康 | D6、D8、D30;第 22 个 Drekkana、第 64 个 Navamsa;Badhaka;Gulika / Mandi;Pranapada |
| 子女 | D7;PK;第 5 宫;木星 |
| 父母 | D12;MK、PiK;太阳、月亮;第 4、9 宫 |
| 学业 | D24(及现有 D5);水星、木星;第 4、5、9 宫 |
| 迁居 | D4、D12;第 4、9、12 宫;罗睺 |
| 家庭 | D4、D7、D12 |
| 流年 | 年盘 Tajika、Muntha、年主、Mudda 大运、Sahams |
| 时间 | 同共用层的时间行,加上 Narayana 子运与年盘 |
| 综合 | D1、D9、D10、D2;AL;Karakamsha |
出生时间精度闸:分盘越细,对出生时间越敏感(D10 约每 12 分钟换一次星座,D60 约每 2 分钟)。所以 D16 及以上的分盘,以及 Ghati、Vighati 这类按分钟变化的点,只在出生时间为 confirmed 或校正已交付分钟时参与;否则在卡上写「出生时间精度不够,不参与」。闸门口径沿用生时校正现有的精度判定,不另立一套。
不参与:KP(决策 8)。
4. 硬红线
- 卡上数值一律从资料包原样复制,不改写、不四舍五入、不翻译(现有
consultation-evidence-card.ts的不变式保持)。缺什么写进gaps,不补。 - 综合判断表里的「受冲条数」只是计数,不设门槛、不下结论。产品 10-02 已定:只说压力迹象和现实范围,请用户补充;「≥2 条就判定」是被推翻的设计,不得复活。
- 罗睺、计都的功能吉凶:引擎没有就不填。只列它们的定位星、同宫星与这些星的功能角色,表头注明「罗计不单独定功能吉凶」。该怎么判写进给占星师的下一轮问题。
- 自然代表星表必须有出处:从本仓
references/(如house-domain-planet-mapping.md、event_judgment_*.md、strict-workflow-router.md)逐条引用文件与段落;本仓找不到出处的领域写blocked,不自拟。 - 普通对话的生平回测(
scripts/research/capture_consult_biography_backtest_golden.py一套)严重冲突数不得高于开工基线;对照组误报不得增加。没有模型 key 时写成环境缺口,不得宣称通过。 - 首轮回答的形状、口吻规则(BUG-1244、1245、1255)不改;系统提示不增长(BUG-1256 的 26.6K 为上限)。新增的读法说明进清单,不进系统提示。
- 前端红线照常:tsc 0、lint 0 error、
npm test失败名单与基线相同、build/Static、gzip ±2%。scripts/jyotish_api_server.py不增长。
5. 任务分解
| # | 内容 | 验收标准 |
|---|---|---|
| T0 | 盘点:对话链现在怎么拿数(run-jyotish-consultation → toAgentConsultationContext / toModelOutput → buildEvidenceCard);资料包里每个领域能取到的字段;12 个领域各自的「宫 / 宫主 / 自然代表星 / Jaimini 代表星 / 分盘」清单及出处 |
进度记录里有 12 行领域对照表,每行注明出处或 blocked |
| T1 | 资料包缓存:按「星盘身份 + 计算档(岁差、交点)+ 引擎版本」缓存资料包(放 api_scratch)。星盘新建或修改资料后在后台预热;对话命中缓存直接读;未命中就同步计算 |
命中时每领域取数耗时不高于现状(约 1.66 秒 / 域);未命中时 2 vCPU 档位实测耗时写进进度记录,超过 20 秒就停下报产品;改出生资料后缓存一定失效(参照 BUG-1251) |
| T2 | 综合判断表:每个领域一张,每个因素一行。因素包括本领域的宫、宫主、自然代表星、Jaimini 代表星、当前 Vimshottari MD / AD / PD 主星、当前 Narayana MD 星座及其主星。每行的列:D1 星座 / 宫 / 尊贵;功能角色;Shadbala 与 BPHS 最低要求;该星所落星座的 BAV 与本领域宫的 SAV;受冲条数及各条明细(按 CONDENSED_SHARED_READING_LINES 的规则);D9 星座、尊贵、Vargottama;本领域分盘的落宫;与本领域宫的关系(主管 / 落入 / 照 / 与宫主同宫) |
乔布斯、奥巴马、泰勒三盘 × 12 领域都能生成;每格都能追到资料包里的字段;新增测试逐格对照资料包 |
| T3 | 参与清单上卡:按 §3A 共用层 + 领域专属,从资料包取值;事业的三盘联动用 inter_chart_linkage;精度闸按 §3A |
12 个领域每项都有值、gaps 或 blocked(附出处);精度闸用一张 confirmed 盘和一张未校正盘各测一次 |
| T4 | 补取 3 次:MAX_EVIDENCE_LOOKUPS_PER_TURN = 3;第 4 次仍按现有方式拒绝 |
测试覆盖第 3 次成功、第 4 次拒绝;步数上限 AGENT_MAX_STEPS 是否需要加,按实测决定并写明 |
| T5 | 资料目录:further_reading 改为按领域列出本仓技法资料(每领域 ≤ 8 条,去掉 oracle / 治理文件);清单说明中写「需要时用 skill_read 读对应章节」 |
12 个领域各有目录;路径都真实存在(测试断言) |
| T6 | 体量与耗时:沿用 docs/testing/prompt-slim-20261007-model-runs.md 的 A/B 做法,比较改前改后的输入 token、首字时间、总耗时、空答率 |
数字写进进度记录,供产品定新的卡片上限;没有 key 就写环境缺口 |
| T7 | 回测:生平回测改前改后各跑一次(每份 2 次) | 按红线 5 判定 |
| T8 | 记录 | docs/BUG_HISTORY.md、CHANGELOG.md、docs/tasks/PROGRESS-consult-card-full-source-20261007.md、状态板、docs/testing/ 真机清单(事业、婚恋、财富、健康各问一题,看回答是否引用了综合判断表里的因素) |
6. 让步顺序
T5 → T4 → §3A 共用层里的 Argala 与定位星链 → T3 中事业以外的领域(先保证事业)。T1、T2、红线 1–5 不让步。
7. 开工前置命令
git fetch origin --prune
git worktree add -b codex/consult-card-full-source-20261007 .worktrees/consult-card-full-source-20261007 origin/staging
grep -o "^## BUG-[0-9]*" docs/BUG_HISTORY.md | sed 's/## BUG-//' | sort -n | tail -1