diff --git a/CHANGELOG.md b/CHANGELOG.md index 4c786d28..66f74e3f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,15 @@ # 印度占星 Skill 更新日志 +## 2026-11-04 — 上游同步第十轮:研究快照移到上游最新版,三处计算按上游修正 + +- 上游研究版 Skill 的只读快照更新到上游 main 最新提交 `5fb8379c`;新快照不再带私人样例的说法。 +- 解读流程、PDF 读盘说明和两个命令的用法里残留的私人出生样例,换成上游用的公开名人样例。 +- 五份参考说明按上游的原文更正:Argala 次级看 5 宫、由 9 宫阻挡;Saham 用表 74 全部 36 项;十六分盘权重 D27 为 0.5、D30 为 1;Yogi 点说明标明当前公式;解读流程加上「开场也要有条件、没查到不等于不成立」的全文证据边界。 +- 分盘联动里 D12 一列现在有宫位(以前一直是空的);星座名异常时报错,不再当成白羊(BUG-1541)。 +- 指定日期的完整解读里,Narayana 当前段、星宿大运年龄、年运备用年龄都按那一天算;年运备用年龄到公历生日才加一岁(BUG-1542)。 +- KP 子主星和宫头用原始度数和含秒的时刻,不再用显示用的四舍五入值;只影响贴着分界的行星(BUG-1543)。 +- 网页对话的提示词没有变化。Skill 版本不变;没有数据库变更。 + ## 2026-11-03 — 输入框:单行起步,字多了变两层(产品定的方案 2) - 空着或只有一行字时,输入框是一条圆胶囊:电脑上 64px 高,手机上 56px 高,左边「常用问题」,中间输入,右边一颗 40px 的圆形发送键(可点区域 44px)。占位字仍是「想聊什么都可以」。 diff --git a/docs/research/upstream_notice_2026_10_03.md b/docs/research/upstream_notice_2026_10_03.md index efc3e686..d2166e55 100644 --- a/docs/research/upstream_notice_2026_10_03.md +++ b/docs/research/upstream_notice_2026_10_03.md @@ -25,3 +25,8 @@ - **事件映射(甲8)**:在 77 例上,±10 / ±30 / ±60 分钟三档的回放头名分别下降 13~17、10~16、8~21 个百分点,主要来自事业一行扩到 10、6、9、11 宫。 - **月亮行运(甲9)**:按 0.25 权重加入月亮起点,结果不变;按 1.0 权重,±60 分钟档降 1.3 个百分点。 - 详细记录:`affliction_weight_trial_2026_10_03.md`、`rectification_mapping_trial_2026_10_03.md`。 + +## 2026-11-04 复核(上游 main `5fb8379c`) + +1. Narayana:上游 `narayana_dasha_full_report` 已把 seed / sequence / duration / dual-lord profile 传给 `calc_narayana_mahadasha`,另加 `cycle_count` 与 AD `strength_profile`。用虚构行星位置在三个上升上实跑,`kn_rao` 与 `legacy_local` 的大运序列不同,第 1 条已修。命令行默认仍叫 `kn_rao`,这个名字指什么仍未说明。我方默认 legacy,标为旧算法,另给 Rath 视图(BUG-1215、BUG-1218)。我方没有第二周期,也没有 AD 强度口径(`6859b263`,第九轮决定不做)。 +2. 8 星制 Karaka:上游 `jaimini.KARAKA_8` 已改为 BPHS 次序,罗睺按 30 减星座内度数排;我方同样已修,两边一致。 diff --git a/docs/tasks/PROGRESS-upstream-sync10-20261104.md b/docs/tasks/PROGRESS-upstream-sync10-20261104.md new file mode 100644 index 00000000..85ec7eab --- /dev/null +++ b/docs/tasks/PROGRESS-upstream-sync10-20261104.md @@ -0,0 +1,55 @@ +# PROGRESS · 上游同步第十轮(2026-11-04) + +- 分支:`codex/upstream-skill-sync-20261104`;基线 `origin/staging` `db2fc3fc` +- 上游:`732642856/yinduzhanxing` main `5fb8379c4f3e649cb4804065c9a3059e4bf633fe`(2026-10-21,到 11-04 仍是 HEAD) +- 上次镜像:`b9a0ef8f`(已被上游改写,提交时间对应 `dc3b8fef`);第九轮甲 / 乙批已按语义移植到 `5fb8379c`,但没有动镜像 +- 范围:本轮查 skill 文档层(SKILL.md、references/)和第九轮没有核对过的引擎修正;不推送,不碰 staging / main +- 预检:`scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45` 全部通过(外部引擎适配、远端可见性、碎片扫描、聚焦测试) + +## 做了什么 + +| 提交 | 内容 | 风险 | +| --- | --- | --- | +| `3bae79fb` | 用导入器 `--apply` 从干净克隆镜像上游 `SKILL.md` 到 `references/upstream/yinduzhanxing/`;`source-manifest.json`、`import-plan.json`、导入记录 `commit-5fb8379c….json` 改钉 `5fb8379c`;b9a0ef8f 的导入记录和测试留作历史 | 仅文档 | +| `297e27e0` | 把残留的私人样例(4 月 17 日 14:45、约北纬 36.5 东经 114.2)换成上游用的公开样例(1935-06-21 Cajarc):`ai-reading-workflow-prompt.md`、`pdf-chart-reading-guide.md`、`cmd_narayana_dasha.py` / `cmd_solar_return.py` 的用法说明 | 仅文档 | +| `2539d57f` | 五份参考文档按上游的原文更正:Argala 次级为 5 / 9 宫、Saham 表 74 全 36 项、十六分盘 D27 0.5 / D30 1、Yogi 公式说明(路径改成我方 `scripts/annual_native/yogi_sphuta.py`)、解读流程加 10-02 全文证据边界;`finance-timing-strict` 别名对齐 | 仅文档 | +| `4b6aa087` | BUG-1541:D12 分盘联动按 D12 上升算宫位;坏星座名报错,不再当白羊(上游 `cf6c316d`、`f60568a0`) | 改对外输出 | +| `8137c692` | BUG-1542:完整解读 Narayana 当前段、星宿大运年龄、年运备用年龄统一按 `transit_date → today → now` 取日期;备用年龄按公历生日(上游 `933f254e`) | 改计算 | +| `9d69cd56` | BUG-1543:KP 用原始宫头、原始行星度数和含秒的儒略日(上游 `26d5a52d` 的 KP 部分) | 改计算(仅分界附近) | + +三处引擎文件都不在校正冻结清单(`sealed_holdout_rerun.PRODUCTION_FILES`、dataset `frozen_scoring.files`)里,不需要按 ERR-110 重冻。 + +## 没有搬的 + +| 上游 | 原因 | +| --- | --- | +| `SKILL.md` 正文(真源索引 09-15、分类 skill 联用、技法查漏编译链、PL9 / VedAstro 长段、P0/P1 回填长段、Shadbala / Dasha 升格门槛措辞) | 我方 `SKILL.md` 是商业入口,导入策略把它列为保护路径;这些段落指向我方没有的文件(`skills//`、`technique_ontology.json`、`current_capability_truth_index_2026_09_15.md` 等),或已有更短的商业版。研究原文已在快照里 | +| `references/strict-workflow-router.md`:MEVG 改成「可选」、外部 oracle 缺口不再 `blocked`、新增 `interpretation_status_contract.md` | 与本仓 AGENTS.md §3、§4(MEVG 必做、缺口必须 blocked 或降级)冲突;路由章节会进对话提示词 | +| `bphs-ch48-narayana-dasha.md` 新版 | 描述的第二周期(`cycle_count`)与 AD 强度口径我方没有;我方默认是标为旧算法的 legacy 加 Rath 视图(BUG-1215、BUG-1218) | +| `quick-reference-guide.md`、`technique-capability-matrix.md`、`functional-role-profile.md` 的差异 | 我方较新(`marriage-match` 七项、#163 盘面说明) | +| 上游独有的 113 个顶层 references(rangacharya / raman 研究包、web intake、skill family router、MEVG 审计等)和 1 600 多个 oracle / 书籍 / 案例文件 | 研究资产或依赖上游分类 skill;不进商业包 | +| `26d5a52d` 的 Vivaha Saham 昼夜公式 | 需要在完整解读 Step 16 之前算昼夜,还要改 `consultation_native_layers.build_vivah_saham`(没有出生地时刻);夜生盘的婚姻点会变,需要产品与数据核对 | +| `26d5a52d` 的 Yoga 燃烧状态透传 | 我方 `cmd_yoga` 已分叉(第 5 字段 `R` 逆行),要另核 | +| `0acf7833`、`01f53764`(报告表格与英文报告) | 上游 PL9 渲染器,我方报告链不同 | +| `b4dada9a`、`7e5498f6`(年运计算缓存范围) | 依赖上游 `annual_calculation_cache.py` 等研究回放 | +| `6859b263`(Narayana 小运强度口径)、`2f52cfca`(karaka_calculator)、33 个未接入大运模块 | 第九轮已决定不做或另评估,原因不变 | + +## 跑过的检查 + +见本文件末尾「验证」一节。 + +## 两处 10-03 上游问题的现状 + +1. Narayana 的 K.N. Rao profile:上游 `narayana_dasha_full_report` 现在会把 seed / sequence / duration / dual-lord 传给 `calc_narayana_mahadasha`(另加 `cycle_count`、`strength_profile`)。拿虚构行星位置在三个上升上实跑,`kn_rao` 与 `legacy_local` 的大运序列不同,机制上已修。上游命令行默认仍是 `variant_profile='kn_rao'`,「K.N. Rao 版 Narayana」这个名字指什么仍未说明。我方:默认 legacy 并标为旧算法,另给 Rath 视图,已删 `--variant-profile`;非 legacy profile 同样会传进去。我方没有第二周期和 AD 强度口径。 +2. 8 星制 Chara Karaka:上游 `jaimini.KARAKA_8` 已改为 BPHS 次序(第 5 位 PiK、第 8 位 DK),并有罗睺倒数度数(`974403a6`);我方同样已修。两边一致。 + +## 验证 + +| 检查 | 命令 | 结果 | +| --- | --- | --- | +| 预检 | `scripts/pre_work_check.py --remote-timeout 8 --command-timeout 45` | 全部通过 | +| Python 快速门 | `python scripts/run_quality_gate.py --profile quick --skip-frontend-runtime`(在第 6 个提交 `9d69cd56` 上) | 通过(py_compile 448 个文件,pytest 395 秒) | +| 新测试 | `tests/test_upstream_sync10_*.py` 三个文件 | 31 条通过;改前 D12 18 条失败、日期 10 条失败、KP 1 条失败 | +| 快照与导入 | `test_upstream_import_plan.py`、`test_upstream_git_import_{b9a0ef8f,5fb8379c}.py`、`test_report_orchestrator_reader_contract.py`、`test_repo_privacy_markers.py`、`test_cross_project_contract.py`、`test_import_yinduzhanxing.py` | 通过 | +| 联动相关 | `test_consultation_native_layers.py`、`test_flying_star_audit.py`、`test_full_reading_module_parity.py` | 20 条通过(台账里提到的不稳定用例这次没有失败) | +| 前端 skill | `npx tsx --test tests/skill-*.test.ts tests/consultation-methodology.test.ts` | 48 条:47 通过、1 跳过(本机没有 docker) | diff --git a/docs/tasks/README.md b/docs/tasks/README.md index d5aac2b8..12ddb031 100644 --- a/docs/tasks/README.md +++ b/docs/tasks/README.md @@ -552,3 +552,4 @@ | — | — | **#163 星盘页术语与盘上标注(占星师答复 4–8)**:六力达标线、大运 / 小运 / 细运、运主落宫边框与「从运主起算」、Chara 运主、敌友默认上升主星与三种关系、瑜伽不连线、八分法 / Arudha 映射(Claude 直接执行) | 待验收 | `codex/163-terms-overlays` | | `TASK-birth-time-source-intake-20261102.md` | `PROGRESS-birth-time-source-intake-20261102.md` | **#144 第一单(jesse 选 A)**:建档六个出生时间来源选项;不再把来源换成固定误差,改填最早 / 最晚或「不清楚误差」;加列 `id_document`、记录方式、误差是否已知、时辰(只加不删);第二单(分项算稳定性)另开排队 | 待验收(Claude 11-02 完成 T1–T7;T5 原句仓内 0 处;迁移在本机 PostgreSQL 16 跑通,门禁 PG17 待复核;顺带 BUG-1513、1514) | `codex/birth-time-intake-144` | | —(issue #165,Claude 直接执行) | `PROGRESS-birth-time-stability-20261103.md` | **#144 第二单**:星盘页按用户给的出生时间范围逐分钟算九项(上升星座 / 度数 / 宫头、D9、D10 上升、月亮星座 / 星宿 / pada / 宫位),各说一致 / 有变化;先核实原始资料的提示(日期有疑问、时区未确认、上升或月亮星宿变化);大运周期边界原文;上升预检与两个扫描脚本显式传岁差与交点(BUG-1515);只记得时辰第三问,不改数据库 | 本地提交,待验收 | `codex/birth-time-stability-165` | +| —(Claude 直接执行) | `PROGRESS-upstream-sync10-20261104.md` | **上游同步第十轮**:研究快照镜像移到上游 main `5fb8379c`;私人样例换成公开样例;五份参考文档按上游原文更正;引擎三处修正(BUG-1541 D12 联动宫位、BUG-1542 同一观察日期、BUG-1543 KP 原始输入)。Vivaha Saham 昼夜公式与 Yoga 燃烧透传未搬,待产品决定 | 待验收 | `codex/upstream-skill-sync-20261104` | diff --git a/references/cross_project_contract/sync_ledger.json b/references/cross_project_contract/sync_ledger.json index 7a49c416..d488bbd6 100644 --- a/references/cross_project_contract/sync_ledger.json +++ b/references/cross_project_contract/sync_ledger.json @@ -208,6 +208,36 @@ ], "hash_contract_result": "pass: pinned mirror remains b9a0ef8f; batch A is a semantic port of upstream main 5fb8379c; b9a0ef8f was rewritten and its timestamp matches dc3b8fef; SKILL.md was not re-mirrored; importer --apply was not run", "rollback": "git revert 8aed605a43ad8e235cd341ebcaeb7675503325e6 bd09485243000ea7012b865dbee04fc00c535005 c1bd59e97a76e914b884b650cae1adfb13b1e858 7bede9c99a056446648aa1e8fa36b3a4734a36eb 96312893b7ad7660e72081c81bf4bf031f0b38a0 b35c424945e578abe95fca69de5eff1a8e14c0e1 16bae006158aad8b493362ce1a51391626a95dca 9d3f59a87206d4b7f6c10f94c56565bbd98089a6 d226b0e5388cc3606272956bc5b9c2072685210d on branch codex/upstream-sync9-20261028" + }, + { + "source_repository": "732642856/yinduzhanxing", + "source_commit": "5fb8379c4f3e649cb4804065c9a3059e4bf633fe", + "target_repository": "jesse-ux/Jyotisha", + "target_commit": "9d69cd5625456c452949da2e47c7ad68332b2b46", + "change_class": "calculation_contract", + "copied_files": [ + "references/upstream/yinduzhanxing/SKILL.md", + "references/upstream/yinduzhanxing/source-manifest.json", + "references/upstream/yinduzhanxing/import-plan.json", + "references/cross_project_contract/imports/commit-5fb8379c4f3e649cb4804065c9a3059e4bf633fe.json", + "references/ai-reading-workflow-prompt.md", + "references/pdf-chart-reading-guide.md", + "references/argala-complete-guide.md", + "references/sahams-execution-guide.md", + "references/shodasavarga-complete-guide.md", + "references/yogi-avayogi-system.md", + "references/event_judgment_wealth.md", + "scripts/cmd_narayana_dasha.py", + "scripts/cmd_solar_return.py", + "scripts/jyotish_engine.py" + ], + "dependency_delta": "none", + "privacy_review": "pass: mirrored SKILL.md drops the private sample wording; the leftover private sample date, time and place in two references and two usage strings are replaced with upstream's public example; no production configuration, secret, or user data", + "focused_tests": [ + "python -m pytest tests/test_upstream_import_plan.py tests/test_upstream_git_import_b9a0ef8f.py tests/test_upstream_git_import_5fb8379c.py tests/test_report_orchestrator_reader_contract.py tests/test_repo_privacy_markers.py tests/test_upstream_sync10_d12_linkage.py tests/test_upstream_sync10_observation_date.py tests/test_upstream_sync10_kp_unrounded_inputs.py" + ], + "hash_contract_result": "pass: git-mode mirror moved to 5fb8379c with scripts/import_yinduzhanxing.py --apply from a clean clone; semantic-merge paths stay review_required; three engine fixes are semantic ports of cf6c316d/f60568a0, 933f254e and the KP part of 26d5a52d", + "rollback": "git revert 9d69cd5625456c452949da2e47c7ad68332b2b46 8137c692b1bbe862bef83b13910437cb2549eb05 4b6aa08726cb5ec4c179c7ad89ec3e25ecfbe7d6 2539d57fee9da72f97045577279aaa3bdb3796fc 297e27e0bda9232d7de1c5747e1a14be3845db62 3bae79fbcae80a8db644f7f0252fadb1c9a5c4bc on branch codex/upstream-skill-sync-20261104" } ] }