diff --git a/docs/tasks/README.md b/docs/tasks/README.md index 6e889dc0..8fbd45fe 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -129,7 +129,7 @@ | 任务书 | 进度 | 主题 | 状态 | 落点 | | --- | --- | --- | --- | --- | -| `TASK-consult-card-full-source-20261007.md` | — | **对话数据卡与报告同源 + 领域综合判断表**:事业卡只有约 7,600 字符、无自然代表星、无大运主星关系、D10 联动只能补取、补取上限 1;全 12 领域;综合判断表、参与清单(不止 D1/D9,含精度闸)、补取 3 次、资料目录均已确认;KP 不上卡、不联网、不接书籍语料;排在 sync6 与报告单之后 | 待领取 | — | +| `TASK-consult-card-full-source-20261007.md` | — | **对话数据卡与报告同源 + 领域综合判断表**:事业卡只有约 7,600 字符、无自然代表星、无大运主星关系、D10 联动只能补取、补取上限 1;全 12 领域;综合判断表、参与清单(不止 D1/D9,含精度闸)、补取 3 次、资料目录均已确认;KP 不上卡、不联网、不接书籍语料;排在 sync6 与报告单之后 | 待领取(10-08 更新:前序已部署,取值入口 `read_full_data_domain` 已在) | — | | — (产品 09-27 拍板 D1–D4,直接执行) | [PROGRESS](PROGRESS-home-landing-blank-20260927.md) | **登录后 / 裸 `/` 落空白首页**:真机登录后在「首页」提问其实问进了上一次生时校正。删登录返回存根(401 / 次级页链接写、登录后写回 `?c=` 打开),裸 `/` 不再落最近会话,一律当前人物的空白首页(复用空草稿);`?c=` / `?new=1` / 对话内刷新不变;推翻 BUG-1038 存根与 BUG-599 默认落点 | 已验收(真机欠) | `codex/home-landing-blank-20260927`(BUG-1052,本地未推) | | — (产品 09-26 口头拍板 D1–D3,直接执行) | `PROGRESS-consult-answer-truncation-20260926.md` | **普通咨询回答写到一半被掐断仍扣点(BUG-1051,复发自 BUG-305)**:工具循环与写回答共用 110 秒 signal;Mastra 1.50 超时不抛错(`abort` 块 + `finish(tripwire)` 后正常关流),结算只认抛错与 `length`。D1 写回答自有 70 秒时钟(首用起算,续写 / 回答重试共用,最坏 180 秒,`maxDuration` 240);D2 写回答的最后一个流不是 `stop` 且有正文 → `answer_truncated`、不扣点、记 abort 步、不冲半句,`length` 续写不变;D3 观测加 `composeFinishReason` / `composeAborted` / `answerVisibleChars` | 已验收(真机欠) | `codex/consult-answer-truncation-20260926`(本地,未推送);新回归 15 条用真实 Mastra `Agent`(修复前 11 条红);全量失败名单 0 新增;Python 948/1;`/` ○、gzip 0%;真机清单 `docs/testing/consult-answer-truncation-20260926.md` | | `TASK-consult-evidence-card-research-20260927.md` | `PROGRESS-consult-evidence-card-research-20260927.md` | **普通对话数据卡调研**:引擎输出逐项分五类计量(现约 4 万 token、父母问题相关约 3.5%);四处领域→技法来源对账并起草各领域数据卡(家庭拆父母/子女);卡体量与逐字一致性;按卡算的提速空间;反馈迭代埋点方案。只调研不改线上 | 已验收(待产品拍板 7 项) | `codex/consult-evidence-card-research-20260927` 快进 staging;报告 `docs/research/consult_evidence_card_research_2026_09_27.md`;投影缺口记 BUG-1054 investigating | @@ -204,6 +204,7 @@ | `TASK-report-full-data-edition-20261007.md` | `PROGRESS-report-full-data-edition-20261007.md` | **报告改为完整数据版、删除阅读版**:网站阅读版中文 7.6 万字符 vs 上游 `pl9_ai_density` 97 万;移植原始数据附录 / 清理器 / 时间补充,中英文;我方报告口径(BUG-1199~1229)全部保持;旧报告仍可打开;排在 sync6 之后 | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未推 staging) | | `TASK-report-full-data-fix-20261008.md` | `PROGRESS-report-full-data-fix-20261008.md` | **完整数据版补齐**(同分支继续):解释段、年运字段、开篇重点、英文汉字清零。Patyayini 不新算。生成按钮文案不改。等验收后再合入 staging | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未合入 staging) | | `TASK-report-full-data-fix2-20261008.md` | `PROGRESS-report-full-data-fix2-20261008.md` | **完整数据版第二轮**(同分支续):年运章投影已有字段,大运解释补「可能」段落,瑜伽作用不再断言寿命,术语不进标识符,罗睺/计都不写「守护第未列出宫」。章动单不在本分支 | 已验收(Claude 补修 BUG-1282 后合入 staging) | `codex/report-full-data-edition-20261007`(未合入) | +| `TASK-rashi-dashas-native-20261008.md` | — | **报告补 7 种星座大运**(Sthira / Drig / Shoola / Navamsha / Niryaana Shoola / Lagna Kendradi / Chara):上游是「显式输入展开器」+「运行候选档案」,起始星座、方向、年数要由我方盘面算;PyJHora 只作冻结对照;只进报告并标口径;Lagna Kendradi 无安全默认值先调研 | 待领取 | — | | `TASK-report-reader-main-fix-20260925.md` | `PROGRESS-report-reader-main-fix-20260925.md` | **读者版修复**:真实年主比较、分字段绑定与未来返照;保留 Bhava Bala 和标题,隔离报告/聊天规则 | 已验收(Claude 09-25:年运表逐年填齐且不同、Bhava Bala 保留、泄漏 0) | `4d801e53`(已部署,health 核对一致) | | `TASK-report-reader-main-20260924.md` | `PROGRESS-report-reader-main-20260924.md` | **报告正文换上游读者版 reader_main + KP / Muntha 计算缺陷 + 投影截断(BUG-1026/1027/1028)**:正文一直是上游审计版(读者版 09-09 才出、从未同步),本仓又自加「结论等级规则」/英文段/异常原文;投影黑名单不认 PL9 词汇且截断半句、删表留说明;KP args `vars()` 拷贝为空恒失败;Muntha 漏合 `birth_asc_sign_idx` → Year Lord 恒火星。产品拍板接入读者版、旧报告不回填。 | 部分通过(Claude 09-25:读者版切换、泄漏 0 命中、KP 已修;年运 Year Lord/Muntha 全为「-」P1、投影误删 Bhava Bala P2 → 修复单) | `3c2f7bd5`(已部署) | | `TASK-report-reader-actions-20260924.md` | — | **报告操作收敛**:列表只留「查看报告」;阅读页删「下载原始附录」「打印」,导出改图标按钮;导出对话框 ≥860 居中、窄屏仍贴底(修订 chapter-export D9/D10)。产品变更,不开 BUG 号 | 基本通过(Claude 09-24:入口收敛、图标、≥860 居中均符合;原始附录三文件因执行方权限未删、PROGRESS/清单未写 → 并入修复单) | `f125fae0`(未部署) | diff --git a/docs/tasks/TASK-consult-card-full-source-20261007.md b/docs/tasks/TASK-consult-card-full-source-20261007.md index 58df5aa4..aa2c6327 100644 --- a/docs/tasks/TASK-consult-card-full-source-20261007.md +++ b/docs/tasks/TASK-consult-card-full-source-20261007.md @@ -1,9 +1,10 @@ # TASK · 对话数据卡与报告同源,按领域给出综合判断表(2026-10-07) -- 基线:`origin/staging` 合入 `TASK-upstream-sync6-20261007` 与 `TASK-report-full-data-edition-20261007` 之后的 SHA(开工时记下)。写作时为 `0ed45a4b`。 +> **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` -- 串行顺序:sync6 → 报告单 → 本单。本单依赖报告单 T7 提供的资料包取值入口。报告单 T0–T3 完成后,本单的 T0 盘点可以先做;改代码要等报告单合入后再 rebase。 -- BUG 编号:与另两份单共用一个序列,开工时核对 `docs/BUG_HISTORY.md` 最大号。 +- BUG 编号:开工时核对 `docs/BUG_HISTORY.md` 最大号(写作时 BUG-1282)。 ## 1. 事故实证 diff --git a/docs/tasks/TASK-rashi-dashas-native-20261008.md b/docs/tasks/TASK-rashi-dashas-native-20261008.md new file mode 100644 index 00000000..55f0ec26 --- /dev/null +++ b/docs/tasks/TASK-rashi-dashas-native-20261008.md @@ -0,0 +1,95 @@ +# TASK · 报告补上 7 种星座大运:Sthira、Drig、Shoola、Navamsha、Niryaana Shoola、Lagna Kendradi、Chara(2026-10-08) + +- 基线:`origin/staging`(写作时 `3b70d1a7`,已部署同一 SHA:章动修正 BUG-1275 与完整数据版报告 BUG-1282 都在内)。 +- 上游参照:`/workspace/yinduzhanxing` `origin/main` @ `0337b77f`。**上游历史在 10-05 之后被重写过,`23be1807` 已不在主线上**,所以本单按文件的 git blob 哈希锁定参照(见 §1 表),不按提交号。 +- 分支 / worktree:`codex/rashi-dashas-native-20261008` / `.worktrees/rashi-dashas-native-20261008` +- 串行:与 `TASK-consult-card-full-source-20261007`(对话数据卡同源)可以并行;两单都动报告资料包。谁后合入,谁 rebase 后重跑 Python 全量与报告定向测试。 +- BUG 编号:开工时核对 `docs/BUG_HISTORY.md` 最大号(写作时 BUG-1282),从 1283 起。 + +## 1. 现状与证据 + +产品 10-08 决定(`TASK-report-full-data-fix-20261008` 决策 4):这 7 种大运另开一单。完整数据版现在只有 Vimshottari、Yogini、Kala Chakra、Tribhagi、Tribhagi 40、Dwisaptatisama、Shattrimshatsama、Narayana;乔布斯盘上游同盘导出另有约 5 万字的这 7 种大运表。 + +我方已有:`scripts/niryaana_shoola_dasha.py`(与上游当前版本不同,上游 9-08 `019aabfd` 起改为有出处的 MD 生成器)、`scripts/extended_dashas.py::calc_shoola_dasha`(简化版)、引擎模块 `chara_dasha`(K.N. Rao 口径,09-27 按顾问意见移出对话卡,报告目前没有单独一节)。 + +上游的实现方式(Claude 10-08 核对): + +| 文件(上游 `scripts/`) | blob | 行数 | 运行时导入 jhora | 说明 | +| --- | --- | --- | --- | --- | +| `rashi_dasha_explicit_contract.py` | `bb2173237e94` | 266 | 否 | 通用星座大运展开器:**只接受显式输入**(起始星座、顺序、年数),拒绝推断缺的部分 | +| `sthira_dasha.py` | `c920d02f9d30` | 92 | 否 | 固定年数展开;Brahma 选择不在本文件 | +| `sthira_brahma_goel_short_method.py` | `6e010b54f5ba` | 112 | 否 | Goel / Rao 简法选 Brahma:取上升与第 7 宫较强者,看 6/8/12 宫主,排除土星;不实现 BPHS 的覆盖条款 | +| `drig_dasha.py` | `b80cf089e2e7` | 254 | 否 | 显式输入展开器 | +| `shoola_dasha.py` | `872817383ecd` | 129 | 否 | 显式输入展开器 | +| `navamsha_dasha.py` | `3efe868685f5` | 119 | 否 | 显式输入展开器(档案 `goel_method_1_v1`) | +| `niryaana_shoola_dasha.py` | `3a86d11b6a0f` | 387 | 否(只有 `pyjhora_*` 档案名字符串) | 档案 `goel_nirayana_shoola_v1` | +| `lagna_kendradi_dasha.py`、`lagna_kendradi_family_contract.py` | `3e472f5e9292`、`eaeb4f6c7610` | — | 否 | 显式输入展开器 | +| `dasha_profile_arbitration.py` | `37ba00a47006` | 316 | 否 | 每种大运选一个「运行候选档案」;自己声明「不是公认标准,也不是 PL9 的标准答案」 | +| `rashi_dasha_named_profile_registry.py`、`source_bounded_child_periods.py` | `04f36a6bd7cc`、`25c20633e8b2` | — | 否 / 待查(后者有 3 处 `jhora` 字样) | 档案注册表、子运规则 | +| `references/oracle/dasha_profile_external_evidence_2026_09_11.json` | `9aea94c9ab25` | — | — | 出处清单:Goel《Predicting through Jaimini Astrology》全文、Rath《Crux of Vedic Astrology》全文、公开 PL9 报告、公开讨论与案例 | + +上游档案选择结果(`build_pl9_compatible_profile_bundle()`): + +| 大运 | 上游状态 | 档案 | +| --- | --- | --- | +| Sthira | 已选候选 | `goel_rao_short_brahma_method_v1` | +| Niryaana Shoola | 已选候选 | `goel_nirayana_shoola_v1` | +| Drig | 已选候选 | `drig_rath_narayana_duration_v1` | +| Shoola | 已选候选 | `shoola_forward_md_direct_ad_v1` | +| Navamsha | 已选候选(引擎直接调) | `goel_method_1_v1` | +| Lagna Kendradi | **没有安全默认值** | — | +| Chara | 我方已有 K.N. Rao 版 | — | + +PyJHora 4.8.7(本机 `jhora.horoscope.dhasa.raasi`)有 `sthira`、`drig`、`shoola`、`navamsa`、`nirayana` / `niryaana`、`lagna_kendraadhi`、`chara` 等模块,可以离线生成对照答案。 + +## 2. 关键难点 + +上游这些模块是「展开器」:起始星座、顺序、年数要调用方给。所以本单不是搬几个文件就完:**每种大运要在我方用自己的盘面算出这些输入**(起始星座怎么选、顺行还是逆行、每段几年),并对照原书与 PyJHora 核实。规则有分歧的地方,要写明选了哪一派、出处在哪一页。 + +## 3. 决策记录 + +产品 2026-10-08 已定:这 7 种大运单独开一单,放在完整数据版之后做;报告里不写占位。 + +Claude 建议的默认做法(执行方按此开工;产品如有不同意见,Claude 会改写本节): + +1. **报告里标明口径**:每种大运的表头写「本站选用的方法:〈档案名〉,出处:〈书名 页码〉;未与外部软件逐一核对」,口径同 BUG-1218 Rath 版 Narayana 的并列展示。 +2. **只进报告,不进对话卡、不进生时校正打分**。打分仍只用 Vimshottari + 旧 Narayana(产品 10-04 定)。 +3. **Lagna Kendradi 上游没有安全默认值**:本单只做调研和对照;若找不到明确出处的规则,就写 `blocked` 不上报告,并把问题加进给占星师的下一轮问题。 +4. **Chara**:我方 K.N. Rao 版进报告,作为独立一节,与 Narayana 分开,标明 K.N. Rao 口径。 + +## 4. 硬红线 + +1. 运行时不得导入 `jhora`(快速门 `tests/test_runtime_jhora_import_scan.py`);PyJHora 只用来离线生成冻结对照答案,测试只读冻结文件。验收要在屏蔽 PyJHora 的环境跑一次报告导出。 +2. 起始星座、方向、年数必须由我方盘面算出,不得手填、不得从 PyJHora 或 PL9 输出抄。规则引用写到书名 + 页码 / 章节;只读上游 `references/book_corpus/`,不得把书籍原文拷进本仓。 +3. 与 PyJHora 不一致时不得调参去凑:逐条记录差在哪一步(起始星座 / 方向 / 年数 / 子运),说明哪边符合所选出处。 +4. 不改生时校正打分,不升算法身份;不改对话卡。 +5. 引擎数值不变(新增模块只读已有盘面);Python 全量失败名单 ⊆ 基线;`npm test` 失败名单与基线相同。 +6. 报告口径红线(BUG-1199~1229、1272~1282)继续有效;英文版仍须 0 汉字。 + +## 5. 任务分解 + +| # | 内容 | 验收标准 | +| --- | --- | --- | +| T0 | 盘点:按 §1 表把上游文件、出处 JSON 与我方现有实现逐一对照;列出每种大运「起始星座 / 方向 / 年数 / 子运」四项各自的规则与出处页码;查清 `source_bounded_child_periods.py` 里 3 处 `jhora` 字样是否运行时导入 | 进度记录里有 7 行 × 4 列规则表,每格有出处或 `blocked` | +| T1 | 移植展开器与档案注册表(新模块放 `scripts/`,按 blob 哈希注明来源) | 导入扫描通过;新模块单测覆盖 | +| T2 | 为每种大运写「从我方盘面算输入」的函数:Sthira(Brahma 选择,Goel / Rao 简法)、Drig、Shoola、Navamsha(`goel_method_1_v1`)、Niryaana Shoola(升级到上游当前版)、Chara(接已有模块)、Lagna Kendradi(按决策 3) | 乔布斯、奥巴马、爱因斯坦、虚构盘四张盘都能算出;与 PyJHora 冻结答案逐段对照,差异列表进进度记录 | +| T3 | 原书例题 | 每种大运至少一个原书 worked example 复现(起始星座、方向、各段年数一致);书内自相矛盾的地方照 BUG-1218 先例记录 | +| T4 | 接进完整数据版报告(中英文),表头按决策 1 标口径 | 乔布斯盘报告出现这些大运表;英文 0 汉字;与上游 `0337b77f` 同盘导出逐节对照,差异说明 | +| T5 | 记录 | `docs/BUG_HISTORY.md`(若发现我方 Niryaana Shoola / Shoola 现有实现有错,单独编号)、`CHANGELOG.md`、进度记录、状态板;Lagna Kendradi 等问题写进给占星师的问题清单 | + +## 6. 让步顺序 + +Lagna Kendradi → Navamsha 子运 → Drig 子运。Sthira、Shoola、Niryaana Shoola、Chara 的主运不让步。 + +## 7. 验收口径 + +Linux 或门禁同等环境:ruff、py_compile、快速门、Python 全量 ⊆ 基线、`npm test` 失败名单与基线相同、tsc 0、lint 0 error、`next build` `/` Static;屏蔽 PyJHora 导出一次报告。 + +## 8. 开工前置命令 + +```bash +git fetch origin --prune +git worktree add -b codex/rashi-dashas-native-20261008 .worktrees/rashi-dashas-native-20261008 origin/staging +git -C /workspace/yinduzhanxing fetch origin && git -C /workspace/yinduzhanxing rev-parse origin/main:scripts/drig_dasha.py # 应为 b80cf089e2e7… +grep -o "^## BUG-[0-9]*" docs/BUG_HISTORY.md | sed 's/## BUG-//' | sort -n | tail -1 +```