From d74760b10abd5a0a6bc1d61ca181d873f63ccb60 Mon Sep 17 00:00:00 2001 From: jesse-ux Date: Fri, 23 Oct 2026 10:40:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E4=B8=8B=E5=AE=8C=E6=95=B4=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=89=88=20B=20=E6=AE=B5=E7=9A=84=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=97=B6=E9=95=BF=E3=80=81=E6=B2=A1=E5=81=9A=E6=BB=A1=E7=9A=84?= =?UTF-8?q?=E9=A1=B9=EF=BC=8C=E4=BB=A5=E5=8F=8A=E7=9C=9F=E6=9C=BA=E9=AA=8C?= =?UTF-8?q?=E6=94=B6=E6=B8=85=E5=8D=95=E3=80=82Yogi=20=E7=9A=84=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=97=A5=E5=BF=97=E7=BC=96=E5=8F=B7=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=20BUG-1421=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Grok (agent loop) --- CHANGELOG.md | 2 +- .../PROGRESS-full-data-parity-1-b-20261023.md | 61 +++++++++++++++++++ docs/tasks/README.md | 2 +- docs/testing/full-data-parity-1-20261021.md | 32 ++++++++++ 4 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 docs/tasks/PROGRESS-full-data-parity-1-b-20261023.md create mode 100644 docs/testing/full-data-parity-1-20261021.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 25a88868..a8fd6ef5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,7 +23,7 @@ ## 2026-10-22 — 完整数据版写出 Jaimini Yogi 与 Ava Yogi 坐标 - 这一节以前因为找不到计算模块,每张盘都是 blocked。现在用本命太阳、月亮黄经按 93°20′ 和 186°40′ 算出两点,中英附录各有一张表。空的 Tajika 候选改成一句「本年没有候选」;Goel 星座强度里没有落入行星时写「无」。 -- Skill 版本不变(BUG-1420)。 +- Skill 版本不变(BUG-1421)。 ## 2026-10-22 — 星盘大运右栏可以切到 Yogini diff --git a/docs/tasks/PROGRESS-full-data-parity-1-b-20261023.md b/docs/tasks/PROGRESS-full-data-parity-1-b-20261023.md new file mode 100644 index 00000000..0306a355 --- /dev/null +++ b/docs/tasks/PROGRESS-full-data-parity-1-b-20261023.md @@ -0,0 +1,61 @@ +# PROGRESS:完整数据版补齐(一)B 段 + +- 分支:`codex/full-data-parity-1-20261021` +- 范围:T4–T10。A 段已在 `origin/staging` 的 `c1aa72fc`。 +- 合并:实现提交之后再 `git merge origin/staging`(当时远端是 `d72adb575`)。没有 rebase,没有强推。 +- 状态:B 段交验收。下面写明没做满的项。 + +## 这一段用户能看到什么 + +- Yogi / Ava Yogi 用本命日、月黄经算出坐标。Tajika 没有候选时只写一句「本年没有候选 / No candidates this year」。Goel 没有落入行星时写「无 / None」。 +- 已有规则的大运子运写入标准大运表。没有规则的写「本体系未提供子运」。Kalachakra 子运标「简化模型」,主运不换。 +- 年运整宫、Tripataki、特殊点公式轨迹。黄经抄已算好的盘,不另算一套。 +- 当年和后两年:月返照、原生 Patyayini、Tithi Pravesha、年度大运结果。出生地八年总览出一次。 +- 从报告日期所在月起 36 个月:报告口径九星、KP 岁差口径九星、五级大运月采样。 +- 行星解释的六维力量合计改读已经算出的 rupa 总分。 + +## 没做满(让步) + +| 项 | 处理 | 原因 | +| --- | --- | --- | +| 72 年生命周期年返 | 不做,函数留着但不在报告路径调用 | 任务书让步顺序允许先放。一次要多算几十张年返盘 | +| Saturn / KP 结果段,以及行星、宫主解释补到上游约 8,970 英文字 | 不做 | 让步顺序第一项。只修了「六维力量合计为未列出」 | +| 现居地八年总览 | 只有资料包里已经带了现居地坐标才出 | `_annual_payload_from_args` 在 `return` 之后才读现居地,那段代码到不了。打开它会改年返地点,已有年运数值就不能保持原样。这一版不动 | +| 年度北印度图盘面板 `pl9_annual_visual_panels` | 不新做面板 | 阅读页在没有面板时,已经用算好的黄经印成文字表。放上面板对象后,阅读页只印标题、不再印这张表 | +| 王者格 raj / dhana 排序 | 不动 | 不能证明对话卡和校正打分不受影响(BUG-1415) | +| 三年星历没有调用 `kp_monthly_transits` | 改走本系统恒星黄经 | 那条旧路径是视位置。新黄经必须和排盘函数差 ≤ 1e-6°,所以用同一套真恒星计算。KP 表只换岁差名,不改成视位置 | + +## 和上游数字不同的原因 + +- 黄经是 Swiss Ephemeris 真恒星(真岁差),不是视位置,也不是 Moshier。 +- 本轮没有重跑上游导出,所以不列具体度数差。口径差就是上面这一条。 + +## 一张虚构盘的生成(先英文,后中文,屏蔽 PyJHora) + +| 项 | 数字 | +| --- | --- | +| 排盘加资料包 | 11.69 秒 | +| 英文渲染 | 2.34 秒 | +| 中文渲染 | 10.38 秒 | +| 合计 | 24.42 秒,低于 180 秒,没有截断 | +| 中文 | 753,561 字符,1,316,062 字节,48 个二级标题,最大一章 230,555 字符 | +| 英文 | 1,263,804 字符,1,264,696 字节,汉字 0,48 个二级标题,最大一章 572,937 字符 | +| 资料包 JSON | 14,085,147 字节(中英都渲染之后) | +| 中文 `.md` | 1,316,062 字节 | +| 星历 | 报告口径 324 行,等于 36 个月 × 9 星 | + +工作树没有自己的 `.venv`,用的是 agent-loop 工作树里的 Python。没有改前端,所以没跑 `tsc` 和 `npm run lint`。 + +## 自测 + +| 检查 | 命令 | 结果 | +| --- | --- | --- | +| B 段定向测试 | 见下 | 退出码 0,约 367 秒 | +| 200 张英文扫描 | `pytest tests/test_report_english_sweep.py`,屏蔽 PyJHora,最多 4 个进程 | 退出码 0,1247 秒 | +| 快速门、全量 pytest、前端全量 | 不跑 | 交给验收 | + +定向测试文件:`test_report_ephemeris`、`test_annual_expansion`、`test_annual_native_geometry`、`test_yogi_sphuta_native`、`test_dasha_master_children`、`test_full_data_parity_chapters`、`test_report_english_edition`、`test_report_full_data_fix`、`test_full_data_domain_reader`、`test_python_hygiene_budget`、`test_api_server_growth_contract`、`test_runtime_jhora_import_scan`、`test_sidereal_nutation_frame`、`test_rashi_dashas_native`、`test_bhava_bala_formal`、`test_year_lord_blocked_no_fallback`、`test_year_lord_basis_label`、`test_repo_privacy_markers`、`test_consult_card_full_source`。 + +## 编号 + +Yogi 记录在本分支曾写成 BUG-1420。staging 上 BUG-1420 已是「Bug 历史整份重复」。合并后 Yogi 改为 BUG-1421。更新日志里的编号一并改掉。 diff --git a/docs/tasks/README.md b/docs/tasks/README.md index f0cadaaf..969113d3 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -522,7 +522,7 @@ | `TASK-chart-ascendant-slash-20261021.md` | `PROGRESS-chart-ascendant-slash-20261021.md` | #87 上升状态格「不适用」改「/」+ 悬停 / 点按说明;报告上升行同改并在表下加说明(推翻 10-15 口径) | 已合入 staging | `codex/chart-ascendant-slash-20261021` | | `TASK-report-english-han-leak-20261021.md` | `PROGRESS-report-english-han-leak-20261021.md` | #89 个人报告英文版约 4 成整份丢弃:漏译汉字源头补英文孪生字段、修吃空格;200 张固定种子回归 + 快速门 smoke(复发自 BUG-1272);中文逐字节不变 | 已合入 staging | `codex/report-english-han-leak-20261021` | | `TASK-chart-dasha-yogini-20261021.md` | — | #88 星盘页大运右栏切换 Chara / Yogini,Yogini 补小运(按比例,内部核对,页面注明未经外部软件核对);Ashtottari 另立单(起运表与 PyJHora 8/12 宿不一致) | 已合入 staging | `codex/chart-dasha-yogini-20261021` | -| `TASK-full-data-parity-1-20261021.md` | — | #91 完整数据版补齐(一):A 段渲染(中文附录改中文源、71 小节归 6 章、导出星座名)→ B 段引擎(Yogi 点、标准大运子运、Kalachakra 简化子运、年运三年全展开、36 个月星历、解释补长);不设大小上限 | A 段第 1 次打回,修复单见下行 | `codex/full-data-parity-1-20261021` | +| `TASK-full-data-parity-1-20261021.md` | `PROGRESS-full-data-parity-1-b-20261023.md` | #91 完整数据版补齐(一):A 段渲染已在 staging;B 段补 Yogi、大运子运、当年和后两年的月返照与 Tithi、36 个月星历。72 年年返和解释补长未做满 | B 段本地完成,待验收 | `codex/full-data-parity-1-20261021` | | `TASK-goel-jaimini-strength-20261022.md` | `PROGRESS-goel-jaimini-strength-20261022.md` | #94 搬上游公开的 Goel Jaimini 强度与 Brahma / Maheshwara / Rudra(4 个上游原样文件,按 #81 决策 A 先例根目录预算 448→452;来源串改书目引用);只做计算、不改报告;冻结身份不变 | 已合入 staging | `codex/goel-jaimini-strength-20261022` | | `TASK-chart-subject-table-fix-20261022.md` | `PROGRESS-chart-subject-table-fix-20261022.md` | **#86 第 1 次打回**:报告所有表被强制单行(打印跑出纸面);保存他人复制了档案页代码且已分叉;点编辑框内边距会丢修改 | 已合入 staging | `codex/chart-subject-table-20261021` | | `TASK-full-data-parity-3-20261022.md` | — | #93 完整数据版补齐(三):「独立年度方法参考」正式环境调 PyJHora(子进程隔离;装上后其余输出逐字节不变,7 个换路径开关钉死);输入默认用本地时间与正确年份(D6 待产品确认) | 待领取(等 #91 合入) | `codex/full-data-parity-3-20261022` | diff --git a/docs/testing/full-data-parity-1-20261021.md b/docs/testing/full-data-parity-1-20261021.md new file mode 100644 index 00000000..b756cf95 --- /dev/null +++ b/docs/testing/full-data-parity-1-20261021.md @@ -0,0 +1,32 @@ +# 完整数据版补齐(一)真机清单 + +对照任务书 `docs/tasks/TASK-full-data-parity-1-20261021.md`。用虚构盘或公开名人,不要把真实用户的出生资料写进记录。 + +## 生成新报告 + +1. 打开一个人的星盘,生成完整数据版。 +2. 等待结束。本机一张虚构盘中英合计约 24 秒。若超过 3 分钟还在转,停下来记下时间,不要反复重试把队列打满。 +3. 报告能打开,末尾能翻到计算口径。 + +## 中英切换 + +1. 切到英文。整份英文都在,不出现整段中文。 +2. 切回中文。年运里能看到月返照、Tithi Pravesha、出生地八年总览。 +3. Tajika 若这一年没有候选,只有一句「本年没有候选」。英文是 “No candidates this year”。 + +## 逐章翻到底 + +1. 年运章有当年和后两年。 +2. 行运章末尾有「三年逐月星历」。中文写「报告口径」和「KP 岁差口径」。 +3. 特殊点里有 Yogi 和 Ava Yogi,不是整节「未判定」。 + +## 导出 + +1. 导出中文 `.md`。 +2. 分盘宫位列表里的星座名是中文。 +3. 文件能用文本编辑器打开,章节能对上报告。 + +## 旧报告 + +1. 打开一份这次上线前已经生成的报告。 +2. 它仍能打开。新的月返照和星历要重新生成才出现。