Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017eEAG8HD3mm8gsKXgk8uU8
136 lines
12 KiB
Markdown
136 lines
12 KiB
Markdown
# TASK · 对话数据卡与报告同源,按领域给出综合判断表(2026-10-07)
|
||
|
||
- 基线:`origin/staging` 合入 `TASK-upstream-sync6-20261007` 与 `TASK-report-full-data-edition-20261007` 之后的 SHA(开工时记下)。写作时为 `0ed45a4b`。
|
||
- 分支 / worktree:`codex/consult-card-full-source-20261007` / `.worktrees/consult-card-full-source-20261007`
|
||
- 串行顺序:sync6 → 报告单 → 本单。本单依赖报告单 T7 提供的资料包取值入口。报告单 T0–T3 完成后,本单的 T0 盘点可以先做;改代码要等报告单合入后再 rebase。
|
||
- BUG 编号:与另两份单共用一个序列,开工时核对 `docs/BUG_HISTORY.md` 最大号。
|
||
|
||
## 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 已定:
|
||
|
||
1. **同源**:对话数据卡的数值取自与报告完整数据版**同一个资料包**(报告单 T7 的取值入口),按领域挑选。对话链不再单独拼一套。
|
||
2. **全领域一次做完**:12 个领域都改。
|
||
3. 任务书交 coding agent 执行,Claude 验收。
|
||
|
||
产品 2026-10-07 第二次回复:
|
||
|
||
4. **已确认**:每个领域上卡一张**综合判断表**(定义见 T2),由卡片构建器从资料包取值组装。模型只负责解读,不再自己从几处拼。
|
||
5. **已确认并扩大**:产品原话是「在顶级印度占星的复杂和丰富技法全量体系下,应该不止 D1 和 D9 盘的联动,还应该有其他的星盘报告信息参与」。因此不再只做「领域分盘 ↔ D1 / D9」,改为按 §3A 的**参与清单**:每个领域有一个共用层,再加本领域专属的盘与点。清单是 Claude 起草的候选,执行方在 T0 逐条到本仓 `references/` 找出处,找不到出处的写 `blocked`,不自拟。
|
||
|
||
产品 2026-10-07 第三次回复「都同意」:
|
||
|
||
6. **已确认**:卡外补取上限从 1 次改为 3 次(产品知悉:每多补取一次,回答可能慢几秒)。
|
||
7. **已确认**:`further_reading` 改为按领域的技法资料目录。
|
||
|
||
决策 1–7 全部确认,本单定稿,可以领取。
|
||
|
||
明确不做:
|
||
|
||
8. **KP 不上卡**:产品 10-07 说「先记下」,维持 09-27 决定,补取时仍带 `EVIDENCE_LOOKUP_KP_NOTE`。
|
||
9. **不做每轮实时联网**。
|
||
10. **不接上游书籍 / 文章语料**(`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. 硬红线
|
||
|
||
1. 卡上数值一律从资料包原样复制,不改写、不四舍五入、不翻译(现有 `consultation-evidence-card.ts` 的不变式保持)。缺什么写进 `gaps`,不补。
|
||
2. 综合判断表里的「受冲条数」只是计数,**不设门槛、不下结论**。产品 10-02 已定:只说压力迹象和现实范围,请用户补充;「≥2 条就判定」是被推翻的设计,不得复活。
|
||
3. 罗睺、计都的功能吉凶:引擎没有就不填。只列它们的定位星、同宫星与这些星的功能角色,表头注明「罗计不单独定功能吉凶」。该怎么判写进给占星师的下一轮问题。
|
||
4. 自然代表星表必须有出处:从本仓 `references/`(如 `house-domain-planet-mapping.md`、`event_judgment_*.md`、`strict-workflow-router.md`)逐条引用文件与段落;本仓找不到出处的领域写 `blocked`,不自拟。
|
||
5. 普通对话的生平回测(`scripts/research/capture_consult_biography_backtest_golden.py` 一套)严重冲突数不得高于开工基线;对照组误报不得增加。没有模型 key 时写成环境缺口,不得宣称通过。
|
||
6. 首轮回答的形状、口吻规则(BUG-1244、1245、1255)不改;系统提示不增长(BUG-1256 的 26.6K 为上限)。新增的读法说明进清单,不进系统提示。
|
||
7. 前端红线照常: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. 开工前置命令
|
||
|
||
```bash
|
||
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
|
||
```
|