Files
Jyotisha/CHANGELOG.md
T

2834 lines
167 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 印度占星 Skill 更新日志
## v6.9.142026-06-21)—— 发布卫生、CI门禁与包产物校验
> **验证**65 techniques registry validate PASS55 covered / 10 complete / 0 partial / 0 missing);475 pytest PASSlegacy runner 102/102 PASSfrontend Vite build PASSwheel/sdist build PASStwine check PASS。
### 关键修复
- `scripts/jyotish_api_server.py`:修复 API server 语法错误,避免边缘脚本逃过旧门禁;同时修复行星黄经循环覆盖出生地经度变量的问题。
- `scripts/run_quality_gate.py`:编译范围从少数核心脚本扩展为整个 `scripts/``jyotish_vedic/` 与入口文件,防止 API/server/包装脚本语法错误漏检。
- `tests/run_all.py`:更新 Sudarshana Chakra legacy runner 的旧接口调用,恢复 102/102 通过。
- `jyotish-app/style.css`:移除多余闭合括号,前端生产构建不再出现 CSS 解析警告。
### 状态口径同步
- `README.md``SKILL.md``references/quick-reference-guide.md`、CLI help、报告模板统一为当前能力基线:65项技法,0 partial / 0 missing。
- Chara Dasha 统一为 `covered`KN Rao benchmark overall 95.83%Aquarius/Scorpio 共主强弱仲裁仍作为声明边界。
- Shadbala 统一为 `covered`:内部一致性通过,但外部绝对值校准前必须保留置信度上限。
### CI / 发布链路
- `.github/workflows/ci.yml`:加入 Node 20、`npm ci`、Python syntax check、quality gate、frontend build、Python package build。
- `.github/workflows/test.yml`:从只装 `swisseph` + legacy runner,升级为 requirements-dev、pytest、legacy runner 与 frontend build。
- `requirements-dev.txt` / `pyproject.toml`:同步补齐 `build``twine``wheel` 发布校验依赖。
- `MANIFEST.in`:同步 Python sdist 的前端资源包含规则,保留 `.wasm``.data``.mp4` 等 Web 运行资源,排除 `node_modules`、缓存和构建垃圾。
### 发布产物
- `dist/jyotish_vedic_astrology-6.9.14-py3-none-any.whl`
- `dist/jyotish-vedic-astrology-6.9.14.tar.gz`
- `twine check dist/*` 通过;wheel `--no-deps` 隔离安装后,`python -m jyotish_vedic.engine --help``chart` smoke test 均正常。
## v6.1.122026-06-11)—— Chara Dasha KN Rao Benchmark 正式通过(95.83%
> **验证**PyJHora oracle benchmark 10案例×120字段:Sign 100%, Duration 91.67%, Overall 95.83% ≥ 95% ✅ PASS
### 修复内容
- `scripts/jaimini.py`Chara Dasha v6.1.12
- 修复 `<=0` 检查顺序(先于尊贵调整,对齐PyJHora)
- 新增 `_PLANET_DIGNITY_KNRAO` 表(含Rahu/Ketu尊贵+set检查+Mercury own sign排除)
- 新增 `_resolve_chara_dasha_lord()` 动态宫主判定框架(当前用传统宫主,Rahu/Ketu共主为未来优化)
- 移除旧的 `_PLANET_DIGNITY` 单值字典(改为 `_PLANET_DIGNITY_KNRAO` set-based
- `benchmarks/jyotish/scripts/run_chara_dasha_knrao.py`:新增官方benchmark脚本(PyJHora oracle,含Rahu/Ketu行星映射)
- `references/technique_registry.json`:更新 `jaimini_chara_dasha` limitation95.83% benchmark通过)
- `SKILL.md`:更新Chara Dasha能力升级段落(v6.1.12
### 已知限制
- Aquarius/Scorpio 共主判定 ~4.2% 案例不匹配(需复制 PyJHora `_stronger_planet_new` 完整尊严比较链)
- 已在 `_resolve_chara_dasha_lord()` 中预留扩展点
## v6.1.112026-06-10)—— Chara Dasha KN Rao Method + 遗失Solar/Lunar Yogas恢复 + 文件碎片审计
> **目标**1) Chara Dasha 从24.17%匹配修复为完整KN Rao Method。2) 从Git遗失提交恢复Solar Yogas (Veshi/Voshi/Ubhayachari) 和 Lunar Yogas (Sunapha/Anapha/Durudhura)至yoga_engine.py。3) 地毯式审计所有碎片文件:brain目录3个session 16文件 + 2个workspace + Desktop + Downloads + Git遗失提交 + auto-generated skills。
### 关键改进
- `scripts/jaimini.py`
- 新增常量 `_EVEN_FOOTED_SIGNS``_PLANET_DIGNITY`(尊贵对照表)
- 新增辅助函数 `_sign_is_even_footed()``_count_rasis_forward()``_count_rasis_backward()``_get_planet_house()``_get_sign_lord_house()`
- 新增 `_chara_dasha_duration_knrao()`:对齐 PyJHora `_dhasa_duration_knrao_method`,基于宫主所在宫位 + 尊贵调整
- 新增 `_chara_progression_knrao()`:对齐 PyJHora `_dhasa_progression_knrao_method`,从上升起,第9宫决定顺逆
- 重写 `calc_chara_dasha()`:调用上述函数,输出含宫主所在宫位、尊贵调整、capability_status='covered'
- 重写 `calc_chara_dasha_with_antardasha()`:等分12份,序列偏移1位(PyJHora method=2),含 Pratyantar 第三层
- `references/technique_registry.json``jaimini_chara_dasha` 状态从 `partial``covered`,更新 limitation 说明
- `SKILL.md`Chara Dasha 能力降级 → 能力升级段落,版本号更新
### 开源代码复用
- **PyJHora**AGPL, 算法参考):`_dhasa_progression_knrao_method``_dhasa_duration_knrao_method` 的算法翻译为 MIT 独立实现
- **jaimini-tropical**MIT, 架构参考):`core/dashas.py` 的 Chakra 方向和 Antardasha 设计思路借鉴
- **dashaflow**MIT, 结构参考):`jaimini.py` 的 Arudha/Upapada 公式已在之前版本复用
### Solar/Lunar Yogas 恢复(从 Git dangling commit f19369c
- `scripts/yoga_engine.py`
- 新增 `_detect_solar_lunar_yogas()` 方法:恢复丢失的 Solar Yogas (Veshi/Voshi/Ubhayachari) + Lunar Yogas (Sunapha/Anapha/Durudhura)
- 在 detect() 末尾调用,作为规则匹配外的附加算法级检测
- 太阳系列:Veshi(第2宫有行星)=财富充裕;Voshi(第12宫有行星)=口才出众;Ubhayachari(两侧都有)=性格坚毅
- 月亮系列:Sunapha(第2宫有行星)=自力更生;Anapha(第12宫有行星)=体格健壮;Durudhura(两侧都有)=享受丰富
### 全量碎片审计
- **Brain目录**3个session 16文件):已读取并评估,提取5份P0高价值文件
- **Desktop**:印度占星修正版研究结论v3(Dasha乘法法则)+ 解盘报告HTML
- **Downloads**Kimi_Agent_高维印度占星师.zip(35个文件)→ 训练材料已确认;jyotish_training.agent.final.docx → 13章训练手册
- **Git**7个dangling commits检查完成 | f19369c Solar/Lunar Yogas已恢复 | 其余6个内容已被后续版本自然吸收
- **auto-generated**skill-20260422155600.md 与 55355.md 重复
- **开源项目**:全网扫描10个方向,发现12个新项目(atolat/vedic-calc AGPL KP+Tajika+Prashna、CNWU16/vedic-astro-skills MIT AI解读、diliprk/VedicAstro MIT KP系统等)
### 验证
```bash
python3 -m py_compile scripts/jaimini.py scripts/yoga_engine.py
# Pending: Chara Dasha KN Rao benchmark / Solar/Lunar Yogas test
```
## v6.1.102026-06-08)—— P0 规划继续落地:Darakaraka / RTN 接入主题化报告
> **目标**:继续执行覆盖度地图中的 P0 规划,把已经存在但未充分进入 full-reading / 主题报告叙事链的婚姻核心技法真正接线。
### 关键改进
- `scripts/jyotish_engine.py`:将 `scripts/darakaraka_reader.py` 接入 `full-reading.modules.jaimini.darakaraka`,输出 DK 行星、星座、宫位、D9 尊严、合相影响、婚姻质量评分和叙事。
- `scripts/orchestrator_bridge.py`:新增 Jaimini/关系层注入,把 `jaimini.darakaraka``rashi_tulya_navamsa` 转为婚姻主题证据;RTN 的凶星合相与 Gunas 平衡也分别注入健康/灵性主题。
- `references/technique_registry.json`:补齐 Darakaraka / Rashi Tulya Navamsa 的知识引用与 v6.1.10 验证说明。
- `docs/roadmap/jyotish_technique_coverage_map.md`:更新 P0 规划状态,标注 DK、RTN、主题报告、Yoga F1 95%+ 的当前落地状态。
### 验证
```bash
python3 -m py_compile scripts/jyotish_engine.py scripts/orchestrator_bridge.py scripts/darakaraka_reader.py scripts/rashi_tulya_navamsa.py
python3 scripts/jyotish_engine.py full-reading --year 1990 --month 6 --day 15 --hour 10 --minute 30 --lat 39.9 --lon 116.4 --tz 8
python3 scripts/orchestrator_bridge.py /tmp/jyotish_full_reading_v6110.json
python3 scripts/audit_capabilities.py --mode validate
python3 scripts/run_quality_gate.py --skip-yoga-logic
```
---
## v6.1.92026-06-08)—— 本地散落资料安全入仓:Benchmark、竞品研究、覆盖度地图与PDF验证方法论
> **目标**:把历史 WorkBuddy 会话中散落但有长期价值的资料,按公开仓库隐私边界整理入 `yinduzhanxing`,避免遗漏,同时不上传真实用户个案、原始 PDF 文本或 raw full-reading 输出。
### 新增资料
- `benchmarks/jyotish/`:公开/虚构 smoke case benchmark 套件,包含 `data/benchmark_samples.json`、12 个可复跑 benchmark 脚本、13 份历史 markdown benchmark 报告与 README。
- `docs/research/jyotish_projects_comparison.md`:开源 Jyotish 项目竞品分析,覆盖 PyJHora、jyotisha、VedAstro、drik-panchanga、VedicAstro、jyotishganit、Kerykeion 等项目。
- `docs/roadmap/jyotish_technique_coverage_map.md`:完整技法覆盖度地图,按 Natal / Dasha / Transit / Muhurta / Prashna / Synastry 与 L1-L4 层级梳理已实现、partial、missing 和待优化项。
- `references/validation/pdf-chart-reading-validation-methodology.md`:从私有 PDF 星盘验证经验中脱敏抽象出的通用方法论,覆盖 PDF/OCR 提取、Quality Gate、字段核对、置信度分级和隐私边界。
### 隐私与入仓边界
- 已排除:benchmark raw JSON/CSV、`__pycache__`、个人解盘/个人运势报告、真实 PDF 提取文本、私有 full-reading JSON、包含个人出生资料或人生事件的原始个案文件。
- 5月4日 10案例报告暂未直接入仓:虽然多为公开人物案例,但含完整出生资料与叙事判断,后续如需使用,应先改写为公开名人验证摘要或测试夹具。
- 所有入仓 benchmark 样本均标记为 `fictional_or_public_test`
### 验证
```bash
python3 -m py_compile benchmarks/jyotish/scripts/*.py
python3 scripts/run_quality_gate.py --skip-yoga-logic
```
---
## v6.1.82026-06-08)—— Nishkapata 友好星座条件恢复 + 主题化报告真实模块接线,Yoga F1 提升至 95.22%
> **目标**:继续冲击 Yoga FN 瓶颈,但坚持准确率优先,只接受来源语义明确且预验证不增加 FP 的规则优化。
### 关键改进
- `bvr_nishkapata_precise` 恢复 BVR-205 / PyJHora 描述中的“4宫行星处于友好星座”条件:第4宫若有行星处于友好/自/旺等强势星座,也可触发 Nishkapata Yoga。
- 预验证过的但未采纳方案:Kapata Yoga 的 4宫主受凶星相位方向候选会增加 FP 且无 FN 收益,因此保持原逻辑不变。
- 继续保留 Thrikaala / Dharidhra / Parannabhojana 的保守口径:这些规则牵涉特定 amsa、Navamsa/弱势定义或 PyJHora 口径,暂不为召回做宽泛放松。
- `scripts/orchestrator_bridge.py` 新增 `inject_full_reading_modules()`:直接消费 `full-reading.modules` 的真实结果,把 `yoga``varga_full``d9_navamsa_expanded``ashtakavarga``shadbala``special_lagnas``vivah_saham``dasa_convergence``transit_multi_reference` 等模块转换为 `ReportTechniqueResult`
- 主题化报告不再主要依赖 registry/MockDataFactory;在 full-reading JSON 输入下,婚姻/事业/财富/健康/灵性五大主题会获得真实证据与真实 Vimshottari 时间锚。
### 验证
```bash
python3 -m py_compile scripts/orchestrator_bridge.py scripts/report_orchestrator.py scripts/reading_orchestrator.py scripts/jyotish_engine.py
python3 scripts/validate_logic_v2.py
python3 scripts/jyotish_engine.py full-reading --year 1990 --month 6 --day 15 --hour 10 --minute 30 --lat 39.9 --lon 116.4 --tz 8
python3 scripts/orchestrator_bridge.py /tmp/jyotish_full_reading_for_theme.json
python3 scripts/run_quality_gate.py --skip-yoga-logic
```
- 60 张测试图,82 条可对比规则
- FP=36FN=63
- Precision=96.48%Recall=93.99%F1=95.22%
- 主题化桥接 smoke:生成5个主题报告;真实模块注入 evidence counts 为 marriage=9、career=12、wealth=9、health=12、spirituality=13;统一叙事生成成功。
- 质量门禁:compile/json/audit/BPHS/pytest 35 passed/golden case 全通过
---
## v6.1.72026-06-08)—— Yoga F1 首次突破 95% 与 full-reading D9/D60 注入
> **目标**:继续 Yoga 精度冲刺,同时把已在验证管线生效的 D9/D60 YogaContext 正式接入 `yoga` 子命令与 `full-reading` 主链路。
### 关键改进
- `full-reading``yoga` 子命令补齐 D9/D60/Panchanga 上下文注入:出生信息路径会从 `varga-full` 构造 YogaContext,让依赖 Navamsa / Shashtiamsa 的 Yoga 规则在主链路中实际生效。
- `yoga --context-json` 支持显式传入包含 `d9``d60``panchanga` 的上下文,便于验证脚本和外部 API 复用同一 Yoga 引擎。
- 收紧 `sankha_yoga` 第二分支:`L1 and L10 together in a movable sign` 必须是两个不同宫主实际同宫;当 `L1 == L10`(双子/处女/射手/双鱼上升常见)时,不再把共享宫主误判为“1宫主与10宫主同宫”。
- 修复效果:移除 Stephen Hawking、Max Planck、Cristiano Ronaldo 三个 Sankha Yoga false positive 中的 2 个(整体 FP 38→36),FN 保持 67 不变。
- 保持“准确率优先”:未为了短期召回扩大 Thrikaala / Dharidhra / Nishkapata 等高风险规则。
### 验证
```bash
python3 -m py_compile scripts/yoga_engine.py scripts/validate_logic_v2.py
python3 scripts/validate_logic_v2.py
python3 scripts/jyotish_engine.py full-reading --year 1990 --month 6 --day 15 --hour 10 --minute 30 --lat 39.9 --lon 116.4 --tz 8
```
- 60 张测试图,82 条可对比规则
- FP=36FN=67
- Precision=96.46%Recall=93.61%F1=95.02%
- full-reading smoke`summary.status=complete``errors=[]``modules=47``modules.yoga.context_layers=['d60','d9','panchanga']`
---
## v6.1.62026-06-07)—— full-reading 五系统推运收敛与接口修复
> **目标**:继续“合并隐藏模块→打通引擎→验证可用”的优化路线,将 Ashtottari / Yogini / Kalachakra 从独立模块进一步接入 `full-reading` 主链路。
### 关键改进
- `full-reading` 新增输出:`modules.ashtottari_dasha``modules.kalachakra_dasha`,并改用 `scripts/yogini_dasha.py` 的公共接口输出 `modules.yogini_dasha`
- `dasa_convergence` 从三系统升级为五系统:Vimshottari + Chara Dasha + Yogini + Ashtottari + Kalachakra。
- 新增 L5 收敛等级:四个及以上推运系统同时激活同一领域时标为顶级收敛信号;Chara Dasha 仍按既有规范保持 partial/低权重辅助。
- 增强领域激活检测:Yogini/Ashtottari 当前主星、Kalachakra 当前 Rashi 与 lord 均参与宫位主题激活判断。
- 修复替代 Dasha 模块 current 周期:超过单周期年龄时按 36/108/150 年周期循环,不再返回 None。
- 修复 `full-reading` 中 Pancha Pakshi 与 Rashi Tulya Navamsa 的接口调用,改为对齐现有公共函数 `get_pancha_pakshi_schedule()``analyze_rtn()`
### 验证
```bash
python3 -m py_compile scripts/jyotish_engine.py scripts/ashtottari_dasha.py scripts/yogini_dasha.py scripts/kalachakra_dasha.py scripts/orchestrator_bridge.py
PYTHONPATH=scripts python3 scripts/jyotish_engine.py full-reading --year 1990 --month 6 --day 15 --hour 10 --minute 30 --lat 39.9 --lon 116.4 --tz 8
```
- smoke case`summary.status = complete`
- `errors = []`
- `modules_computed = 47`
- `dasa_convergence.systems_summary` 包含 `ashtottari``chara_dasha``kalachakra``vimshottari``yogini`
---
## v6.0.442026-06-06)—— 修复参考数据 JD 时区 Bug,验证基线校正
> **目标**:修复导致 `standard_test_charts.json` 中所有非正午出生星盘上升星座错误的 JD 时区 Bug。
> **新基线**F1 93.50%Precision=93.82%, Recall=93.18%
### 关键 Bug 修复
- **JD 时区 Bug**`_compute_one_chart.py:93`):PyJHora 的 `gregorian_to_jd()` 总是返回正午的 JD,完全忽略时间参数。改用 `swe.julday()` + UTC 时间计算正确 JD。
- 受影响:所有 `standard_test_charts.json` 中出生时间非 UTC 正午的星盘
- 修复效果示例(爱因斯坦):上升从天蝎座 2° → 双子座 0.65°,与 Swiss Ephemeris 同星座
- 交叉验证:Swiss Ephemeris(行业金标准)+ xalen-ephemerisRust500 万图表 oracle 测试)确认引擎计算正确
### 验证指标变化
| 指标 | v6.0.43(错误基线) | v6.0.44(正确基线) | 变化说明 |
|---|---|---|---|
| F1 | 93.76% | **93.50%** | 下降因参考数据修正,非引擎退化 |
| Precision | 95.69% | 93.82% | FP 44→63 |
| Recall | 91.91% | **93.18%** | FN 86→70 ↑ |
| Agreements | 977 | 957 | 巧合一致减少 |
### 参考数据维护
- 重新生成 `standard_test_charts.json`(60 盘,基于已修复的 JD 计算)
- 重新生成 `planet_positions_60.json`
- 更新 `validation_logic_report.json`
### 质量门禁
```
compile: 10 files ok
json: 5 files valid
capability audit: valid, 0 problems
BPHS invariants: 18/18 passed
pytest: 35 passed
golden case: passed
Quality gate passed
```
> **目标**:修复 PyJHora 源码中的 3 个 Bug,扩展 yoga_engine 语义条件类型,实现 kalaanidhi 和 krisanga 的源码口径对齐。
> **指标**F1 93.28% → **93.76%**FN 96→86FP 44→44(不变)
### PyJHora 源码 Bug 修复(benchmark 环境)
- **kalaanidhi_yoga Bug #1**yoga.py:4644):`is_venus_joined` 误用 `const.JUPITER_ID`4)代替 `const.VENUS_ID`5
- **kalaanidhi_yoga Bug #2**yoga.py:4661):Swakshetra 检查误用 `const.JUPITER_ID`4)代替 `const.VENUS_ID`5
- **krisanga_yoga Bug #3**yoga.py:5091):`_krisanga_yoga_calculation()` 缺少 `return` 关键字,导致 Y113Navamsa Lagna + malefics in Lagna)从未参与检测
### Yoga 引擎扩展
- **新增语义条件类型** `planet_in_house_with_aspect_or_conjunction`:检查指定行星在特定宫位,且全部指定的另一组行星合相或相位该行星;用于 `bvr_kalaanidhi_yoga`
- **修正 `lagna_lord_in_dry_sign` 条件**
- 修复 `dry_signs` 集:原来含 Capricorn(❌)→ 改为 Taurus(✅),与 PyJHora `const.dry_signs=[0,1,2,4,5,8]` 一致
- 增加 `ll_house_owner in dry_planets` 子条件:匹配 PyJHora Y112 中的 OR 分支
- 改用 `ctx.lord_of_house()` 而非 `SIGN_LORDS` 静态映射,正确处理 Scorpio/Aquarius 动态共主
### 验证指标变化
| 规则 | v6.0.42 FP/FN | v6.0.43 FP/FN | 变化 |
|---|---|---|---|
| bvr_kalaanidhi_yoga | 0 / 5 | 0 / 0 | FN ✗ 消除 ✅ |
| bvr_krisanga_yoga | 1 / 5 | 1 / 0 | FN ✗ 消除 ✅ |
| bvr_dharidhra_11_precise | 2 / 6 | 2 / 6 | 未变 |
| bvr_matrunasa_precise | 0 / 5 | 0 / 5 | 未变 |
### 参考数据维护
- 重新生成 `standard_test_charts.json`(60 盘 Yoga 结果基于已修复的 PyJHora
- 重新生成 `planet_positions_60.json`Skill 侧行星位置 fixture
### 质量门禁
```
compile: 8 files ok
json: 5 files valid
capability audit: valid, 0 problems
BPHS invariants: 18/18 passed
pytest: 35 passed
golden case: passed
Quality gate passed
```
> **目标**:继续用户要求的“准确率优先”路线;本轮先对残余 Top Yoga 做 A/B 模拟,只发布源码定义明确且整体指标健康改善的修改,不为了短期 F1 盲目扩大规则。
### 源码语义确认
- 复核 PyJHora `yoga._get_natural_benefics()`Yoga 源码层的 natural benefics 默认为 Jupiter、VenusMercury 仅在独处或与 Jupiter/Venus 同宫时加入;不等同于 Skill 静态 `BENEFICS`
- 复核 PyJHora `house.aspected_planets_of_the_planet(chart, p)``house.planets_aspecting_the_planet(chart, p)` 方向差异:前者是“p 所相位到的行星”,后者才是“相位 p 的行星”。`bvr_bhratruvriddhi_precise` 按源码使用前者语义。
- 复核 PyJHora `charts.benefics_and_malefics()`jd/place 路径存在 tithi、Moon、Mercury 同宫动态凶吉;但当前 v6.0.42 只在源码明确需要的 Yoga 中使用已稳定复现的 `pyjhora_natural_benefics()`,暂不把 dynamic benefics/malefics 全局接入,避免影响过宽。
### 高影响规则对齐
- `bvr_bhratruvriddhi_precise`:改用 `pyjhora_natural_benefics()`,并按 PyJHora `_bhratruvriddhi_yoga_calculation()` 保留 `aspected_planets_of_the_planet()` 的方向语义;模拟结果 FP **7→0**FN **0→3**,整体 precision 明显提升。
- `bvr_ayatna_griha_prapta_yoga`:从旧 compound 占位结构改为 custom 源码口径,复刻 BVR-189/190
- L1 与 L7 同在 Lagna 或 4宫,并至少一者受 natural benefic 相位;或
- L9 在 Kendra,且 L4 strong 或 moola-trikona。
- 模拟结果 FP **0→0**FN **6→1**
- `bvr_utthama_graha_yoga`:从 semantic compound 改为 custom BVR-187 源码口径:4宫主在 Kendra/Trikona,且与 natural benefic 同宫,并受 natural benefic Graha Drishti;模拟结果 FP **3→1**FN **5→6**,结合前两项后总指标仍健康改善。
- `bvr_dharidhra_11_precise` 本轮只模拟、不修改:去掉 `method1` 后虽 FP **2→1**,但 FN **6→10**,不符合准确率优先与 source-comparable 收益标准。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **95.67%**v6.0.41 为 94.82%
- Recall **91.01%**v6.0.41 为 90.92%
- F1 **93.28%**v6.0.41 为 92.83%
- FP44FN96
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
- capability audit valid0 problem / 0 warning
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top residual 仍集中在 `bvr_vanchana_chora_bheethi_yoga``bvr_kapata_yoga``bvr_mathibhramana_yoga``bvr_dharidhra_11_precise``bvr_kalaanidhi_yoga``bvr_krisanga_yoga`
- 暂不建议直接扩大 Kapata/Vanchana/Mathibhramana 条件;应优先复现 Gulika/Maandi house-index、`benefics_and_malefics()` dynamic malefics、以及 PyJHora variation mapping 的输入层。
---
## v6.0.412026-06-05)—— Yoga F1 92% 源码口径续航
> **目标**:在 v6.0.40 基础上继续推进残余 Yoga 误差,但仍坚持“准确率优先、源码确认后再改”;本轮只处理 PyJHora 源码定义非常明确且可稳定复现的规则。
### 引擎与 helper 修复
- `scripts/yoga_engine.py` 新增 `pyjhora_aspected_planets_of_raasi(h)`,复刻 PyJHora `house.aspected_planets_of_the_raasi()`:返回通过 Rasi Drishti 影响目标 rasi/house 的行星列表。
- 新增 `FRIENDLY_PLANETS` 常量与 `natural_friend(a, b)` helper,对齐 PyJHora `const.friendly_planets`,用于 Matru Sneha 等需要自然友谊判断的 Yoga。
### 高影响规则对齐
- `bvr_sumukha_precise`:对齐 PyJHora/BVR-166,改为“2宫主在 Kendra 且被 PyJHora natural benefics 影响,或 natural benefics 入2宫”,不再只检查 Jupiter/Venus 入2宫。
- `bvr_dama_yoga`:从占位规则改为 PyJHora/BVR-92 Dama/Damni Yoga 源码口径:七曜分布在恰好六个星座。
- `bvr_matru_sneha_yoga`:补齐 PyJHora Matru Sneha 的自然友谊分支,并使用 PyJHora natural benefics 判断 L1/L4 是否同受吉星影响。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **94.82%**v6.0.40 为 94.63%
- Recall **90.92%**v6.0.40 为 89.04%
- F1 **92.83%**v6.0.40 为 91.75%
- FP53FN97
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
- capability audit valid0 problem / 0 warning
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top residual 建议优先复现输入层后再动规则:`bvr_vanchana_chora_bheethi_yoga``bvr_kapata_yoga``bvr_mathibhramana_yoga``bvr_ayatna_griha_prapta_yoga``bvr_dharidhra_11_precise``bvr_utthama_graha_yoga`
- 特别注意:`vanchana_chora_bheethi` / `kapata` / `mathibhramana` 的残余差异仍高度依赖 Gulika/Maandi、`benefics_and_malefics()` 动态凶吉和 PyJHora 内部相位函数边界;下一轮不宜盲目扩大条件。
---
## v6.0.402026-06-05)—— Yoga F1 91% 源码口径续航
> **目标**:在 v6.0.39 首次突破 F1 90% 后继续推进,但仍保持“准确率优先、源码确认后再改”的路线;优先处理 Top residual 中 PyJHora 源码口径明确、收益高且过拟合风险低的规则。
### 引擎与 helper 修复
- `scripts/yoga_engine.py` 新增 `pyjhora_natural_benefics()`,复刻 PyJHora `yoga._get_natural_benefics()`
- natural benefics 默认只含 `Jupiter``Venus`
- `Mercury` 只有在独处,或与 `Jupiter` / `Venus` 同宫时才作为 benefic
- 不再把 Moon 无条件纳入这组 PyJHora Yoga helper。
### 高影响规则对齐
- `bvr_amala_precise`:对齐 PyJHora/BVR-13 的实际实现,从“第10宫只有吉星”改为“任一 PyJHora natural benefic 落 Lagna 或 Moon 起算第10宫”。
- `bvr_kaalanirdesat_puthranaasa_yoga`Variant 230 改用 `pyjhora_planets_aspecting_raasi()`,对齐 PyJHora `house.planets_aspecting_the_raasi()` 行为,替代常规 `rasi_aspects_house()` 语义。
- `bvr_bhaga_chumbana_yoga`:从旧 compound 占位条件改为 custom 源码口径:
- 7宫主在4宫且 Venus 在4宫;或
- Lagna lord 在 D1 或 Navamsa 落陷。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **94.63%**v6.0.39 为 93.82%
- Recall **89.04%**v6.0.39 为 86.70%
- F1 **91.75%**v6.0.39 为 90.12%
- FP54FN117
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
- capability audit valid0 problem / 0 warning
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top residual 仍以源码确认优先:`bvr_vanchana_chora_bheethi_yoga``bvr_kapata_yoga``bvr_mathibhramana_yoga``bvr_sumukha_precise``bvr_dama_yoga``bvr_matru_sneha_yoga``bvr_ayatna_griha_prapta_yoga`
- `bvr_vanchana_chora_bheethi_yoga` 的剩余差异很可能与 Gulika/Maandi house-index、PyJHora `benefics_and_malefics()` 动态凶吉口径有关;下一轮应先复现 PyJHora 输入层再改规则。
---
## v6.0.392026-06-05)—— Yoga F1 90% 源码口径冲刺
> **目标**:继续用户要求的“准确率优先”路线,不为指标盲目调参;只在确认 PyJHora 源码口径后修改规则或 helper,使 D1/Rasi Yoga 逻辑验证首次突破 F1 90%。
### 引擎与 helper 修复
- `scripts/yoga_engine.py` 新增 PyJHora-style Scorpio/Aquarius 动态双主星 resolver
- Scorpio 由 `Mars` / `Ketu` 动态择强;
- Aquarius 由 `Saturn` / `Rahu` 动态择强;
- `_house_lords``_d9_house_lords``is_own_sign()``navamsa_dispositor()` 与 custom `house_strength()` 均接入动态主星口径。
- 新增 `graha_aspects_house(p, h)`,用于显式判断 Graha Drishti 对宫位的影响。
- 新增 `pyjhora_planets_aspecting_raasi(p, h)`,复刻 PyJHora `house.planets_aspecting_the_raasi()` 在 Bandhu Pujya Yoga 194 中的实际源码行为,避免用常规 Rasi Drishti 语义替代源码 oracle。
### 高影响规则对齐
- `bheri_yoga`:对齐 PyJHora/BVR-45,改为“9宫主有力且 1/2/7/12 宫均有行星,或 Jupiter/Venus/Lagna lord 三者互为 Kendra”。
- `bvr_sada_sanchara_precise`:对齐 PyJHora/BVR-117,改为“Lagna lord 在 movable sign,或 Lagna lord 的 dispositor 在 movable sign”,不再错误纳入 Moon movable 条件。
- `bvr_bandhu_pujya_yoga`:对齐 PyJHora/BVR 193-194,修复 Jupiter 与 4宫/4宫主关联判断:
- 保留 193benefic L4 被另一吉星相位且 Mercury 在 Lagna
- 修复 194Jupiter 在4宫、PyJHora-style 影响4宫 rasi、Jupiter 本身为动态4宫主、与 L4 同宫或相位 L4。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **93.82%**v6.0.38 为 88.37%
- Recall **86.70%**v6.0.38 为 81.09%
- F1 **90.12%**v6.0.38 为 84.57%
- FP61FN142
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
- capability audit valid0 problem / 0 warning
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top residual 仍建议只做源码确认后再改:`bvr_vanchana_chora_bheethi_yoga``bvr_kaalanirdesat_puthranaasa_yoga``bvr_kapata_yoga``bvr_bhaga_chumbana_yoga``bvr_mathibhramana_yoga``bvr_amala_precise``bvr_sumukha_precise`
- 建议继续把 PyJHora dynamic benefics/malefics、Upagraha/Gulika house-index、以及 `planets_aspecting_the_raasi()` 的边界行为抽象为可复用 helper,减少 custom 规则重复。
---
## v6.0.382026-06-05)—— Yoga 源码口径对齐与 F1 深水区提升
> **目标**:继续 v6.0.37 的 context-aware 路线,但不盲目扩规则;优先对齐 PyJHora 源码中已经明确的 house-strength、Navamsa dispositor、watery sign/planet、以及验证脚本路径口径,减少残余 Top FP/FN。
### 引擎与 helper 修复
- `scripts/yoga_engine.py` 新增 `HOUSE_STRENGTHS``PLANET_INDEX`,显式复刻 PyJHora `const.house_strengths_of_planets`,避免 `strong()` 继续用“落 Kendra/Trikona 即强”的过宽近似。
- custom 沙箱新增:
- `house_strength(p)`:返回 PyJHora 式星座强度 0-5。
- `strong(p, include_neutral=False)`:默认 strength >= FRIEND;可选 include neutral。
- `weak(p)`strength <= NEUTRAL。
- 修复 `bvr_dehasthoulya_yoga` 内置条件:
- 114 改为“Lagna lord 的 Navamsa dispositor 在 Rasi 中落水象星座”,而不是误取 D9 上升主。
- 116 改为“Lagna lord 是 watery planetMoon/Venus)”,而不是“Lagna lord 落水象星座”。
### 高影响规则对齐
- `sankha_yoga`:改用 PyJHora house-strength 口径判断 L1/L9 强弱,Top FP 从 12 收窄到 5。
- `kahala_yoga`:对齐 PyJHora BVR-15L1 落 Kendra/Trikona,且 L4/L9 互为 Kendra。
- `bvr_kaahala_yoga`:对齐 PyJHora `kaahala_yoga` 的有效 D1 判定:L4 与 Jupiter 互为 Kendra。
- `bvr_rogagrastha_precise`:对齐 PyJHora 条件 b 的实际行为:Lagna lord strength <= neutral 即可触发(源码中的 quad/trine lord 列表包含 L1 自身)。该规则本轮从 Top FN 中消失。
- `bvr_swaveeryaddhana_precise`:补入 PyJHora 131 的 Navamsa dispositor chain D9-safe 条件。
- `bvr_bahu_puthra_precise`:修正 221 语义为“7宫主所落 Navamsa 的 lord 落 Rasi 1/2/5”,不再错误扩大成“任意与7宫主 associated 的行星”。Top FP 从 15 清零。
### 验证脚本修复
- `scripts/validate_logic_v2.py` 固定读取/写入 `SKILL_DIR/references/*`,避免从工作区根目录运行时误读另一份 `references/` 并写出错误报告。
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **88.37%**v6.0.37 为 85.60%;实际 v6.0.38 旧路径校正基线为 84.25%
- Recall **81.09%**v6.0.37 为 72.38%;旧路径校正基线为 75.66%
- F1 **84.57%**v6.0.37 为 78.44%;旧路径校正基线为 79.72%
- FP114FN202
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮 Top FN 重点:`bvr_kaalanirdesat_puthranaasa_yoga``bvr_matrunasa_precise``bvr_kapata_yoga``bvr_vanchana_chora_bheethi_yoga`
- 下一轮 Top FP 重点:`mridanga_yoga``bvr_bandhu_pujya_yoga``bvr_002_sunapha_precise``bvr_bahu_sthree_yoga``bvr_bhratruvriddhi_precise`
- 建议继续对齐 PyJHora 的 dynamic benefics/malefics、`planets_aspecting_the_raasi()` 与 Upagraha house-index 口径。
---
## v6.0.372026-06-05)—— Context-aware Yoga 精度提升
> **目标**:利用 v6.0.36 已接入的 D9/Navamsa、Panchanga、Gulika/Maandi 上下文,继续修复 PyJHora/B.V. Raman 高影响 Yoga 误差,而不是回退到 D1-only 近似。
### 规则修复
- 拆分 PyJHora 中两个不同函数:
- `kaahala_yoga` → 新增 `bvr_kaahala_yoga`:4宫主与木星互为 Kendra,且上升主有力。
- `kahala_yoga` 保留原 BVR 逻辑:4宫主与9宫主互为 Kendra,且上升主有力。
- 新增 `bvr_kapata_yoga`,实现 PyJHora/B.V. Raman 202-204 三个 Kapata 条件,避免继续把 `kapata_yoga_*` 错映射到 `nishkapata`
- 修复 `bvr_mathibhramana_yoga`:补入 293 waning Moon/tithi 条件、BVR variation 1-4,包括 D9 中 Mercury/Rahu/6宫主/Mars 的组合。
- 修复 `bvr_matrunasa_precise`:在 Moon 受凶星夹制/合相/相位基础上,补入 199 的双层 Navamsa dispositor 链落 6/8/12。
- 修复 `bvr_nishkapata_precise`:补入第4宫为吉性星座、天然吉星、强星、以及上升主入4宫受吉星影响的 205/206 条件。
- 修复 `bvr_bahu_puthra_precise`:补入 Rahu 在5宫且非 Saturn Navamsa,以及7宫主关联行星的 Navamsa 主落 1/2/5。
- 调整 `bvr_rogagrastha_precise` 的弱上升主判定,贴近 PyJHora 的 sign-strength 口径。
- 修正 `vanchana_chora_bheethi` 语义条件:Gulika 在三方不再单独触发,必须符合 PyJHora 条件组合,减少过宽 FP。
### 映射修复
- `validate_logic_v2.py` 中:
- `kaahala_yoga` 改映射到新增 `bvr_kaahala_yoga`
- `kahala_yoga` 显式映射到 `kahala_yoga`
- `kapata_yoga_202/203/204` 改映射到新增 `bvr_kapata_yoga`
### 验证结果
- `scripts/validate_logic_v2.py`
- Precision **85.60%**v6.0.36 为 83.84%
- Recall **72.38%**v6.0.36 为 69.64%
- F1 **78.44%**v6.0.36 为 76.08%
- FP130FN295
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过。
- pytest **35 passed**
- BPHS/Ashtakavarga 不变量 **18/18**
- golden case 通过
### 规则库状态
- JSON 规则总数:**475**
- 启用规则:**381**
- 当前验证报告:`references/validation_logic_report.json`
### 后续优化点
- 下一轮优先处理仍在 Top 队列中的:`vanchana_chora_bheethi``rogagrastha``swaveeryaddhana``kaalanirdesat_puthranaasa``sankha``dehasthoulya`
- 建议继续把 PyJHora 的 sign-strength、natural benefics/malefics 与 aspect helper 进一步对齐,减少“同名但判定口径略不同”的残余误差。
---
## v6.0.362026-06-05)—— Yoga 验证数据结构升级与 D9/Panchanga/Upagraha 上下文接入
> **目标**:为继续提升 Yoga 逻辑准确率补齐验证数据层,不再把所有 B.V. Raman / PyJHora 条件硬塞进 D1-only 近似,优先让标准测试集携带 D9/Navamsa、tithi/waning Moon、Gulika/Maandi 等上下文。
### 验证数据 schema 2.0
- 升级 `references/standard_test_charts.json``schema_version: "2.0"`,每张名人星盘除 PyJHora D1/Rasi Yoga 结果外,新增 `context`
- 新增上下文字段:
- `context.d1`:D1 上升、上升度数、九行星星座/宫位/度数。
- `context.d9`D9/Navamsa 上升、上升度数、九行星星座/宫位/度数。
- `context.panchanga`tithi、paksha、`is_waning_moon`、原始 tithi 输出。
- `context.upagraha`Gulika、Maandi 的 D1 星座/宫位/度数。
- 新增 `scripts/build_planet_positions_60.py`,从标准测试集的 context 重建 Skill-side `references/planet_positions_60.json`,保证 Skill 与 PyJHora 使用同一套 fixture 来源。
- 修正 `_compute_one_chart.py` 输出星座名时使用英文 `SIGNS` 常量,避免 PyJHora `utils.RAASI_LIST` 中的星座符号污染 JSON;同时修正 D9 上升计算为 `d1_asc_sign * 30 + d1_asc_degree` 后再分入 Navamsa。
### Yoga 引擎上下文接入
- `YogaContext` 新增可选 `context` 参数,并提供 D9/Panchanga/Upagraha 查询接口:`d9_house_of()``d9_sign_of()``d9_lord_of_house()``navamsa_dispositor()``tithi()``is_waning_moon()``upagraha_house()``upagraha_sign()`
- `YogaEngine.detect()``detect_yogas()``detect_yogas_from_json()` 支持透传扩展 context。
- `validate_logic_v2.py` 现在读取 `chart["context"]` 并传给 Yoga 引擎,后续 D9/tithi/Gulika 规则修复可以在同一验证框架里直接评估。
- custom Yoga 沙箱新增上下文 helper`d9_house_of``d9_sign_of``d9_lord_of_house``navamsa_dispositor``tithi``is_waning_moon``upagraha_house``gulika_house``maandi_house` 等。
- 首批语义条件从 D1 近似升级为 context-aware`navamsa_lagna_in_dry_planet_sign``lagna_lord_and_navamsa_lord_both_in_watery_signs``saturn_in_12th_with_waning_moon``sun_and_mandi_in_house`、若干 Navamsa dispositor 条件与 Gulika 相关条件。
### 当前验证结果
- `scripts/validate_logic_v2.py`Precision **83.84%**Recall **69.64%**F1 **76.08%**
- 本轮重点是把验证框架升级到可承载 D9/Panchanga/Upagraha 规则,指标暂与 v6.0.35 持平;这说明上下文接入没有制造新回归,后续可以开始逐条修依赖扩展上下文的 Top FN/FP。
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过;完整 pytest **35 passed**BPHS/Ashtakavarga 不变量 **18/18** 通过,golden case 通过。
### 后续优化点
- 下一轮可直接针对 context-aware 队列修复:`mathibhramana``matrunasa``nishkapata``bahu_puthra``vanchana_chora_bheethi` 等。
- 可继续减少 D1-only 近似,把 PyJHora/B.V. Raman 中明确依赖 Navamsa、tithi、Gulika/Maandi 的条件逐条迁移到扩展上下文。
---
## v6.0.352026-06-05)—— Yoga 精度二次提升与 Top FP 收窄
> **目标**:在 v6.0.34 已大幅提升 F1 后,继续按验证报告 Top FP/FN 队列修正高影响规则,优先降低过宽误报,同时保持质量门禁通过。
### 对齐与修复
- 修正 `matsya_yoga`:从过宽的“吉星三方+凶星凶宫”改为 PyJHora/PVR method=2 口径:Lagna 与 9宫仅吉星,5宫同时有吉/凶星,4宫与8宫仅凶星。
- 修正 `sankha_yoga`:补齐 PyJHora/BVR-12 双分支:上升主强且5/6宫主互为 Kendra,或1/10宫主合于变动星座且9宫主强。
- 修正 `bvr_103_guru_mangala_yoga`:从“木火互为 Kendra”收窄为 PyJHora 定义:木星与火星同宫或互为7宫。
- 调整 `bvr_rogagrastha_precise`:对齐 PyJHora D1-safe 条件:上升主在Lagna合凶宫主,或弱上升主合角/三方主。
- 修正 `bvr_kaalanirdesat_puthranaasa_yoga`:从单一“5宫主受土/Rahu伤”改为 PyJHora 229/230 组合条件。
- 修复 `validate_logic_v2.py``kaahala_yoga` 的历史别名映射,确保 PyJHora `kaahala_yoga` 正确归入现有 `kahala_yoga`
- 为 custom Yoga 表达式新增 `occupants()``only_benefics_in_house()``only_malefics_in_house()``house_has_benefic()``house_has_malefic()``house_sign()``movable_house()``MOVABLE_SIGNS`,支持更接近源码的规则表达。
### 当前验证结果
- `scripts/validate_logic_v2.py`Precision **83.84%**Recall **69.64%**F1 **76.08%**
- 相比 v6.0.34 的 F1 **74.13%**,提升 **+1.95 个百分点**;相比 v6.0.32/v6.0.33 基线 **58.08%**,累计提升 **+18.00 个百分点**。
- `pytest tests/test_yoga_rules_integrity.py tests/test_dasha.py`25 passed。
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过;完整 pytest 35 passedBPHS/Ashtakavarga 不变量 18/18 通过,golden case 通过。
### 已知后续优化点
- 剩余 FN 主要集中在 `mathibhramana``matrunasa``rogagrastha``bahu_puthra``kahala``nishkapata``swaveeryaddhana` 等规则,其中部分需要 D9/Navamsa、tithi/waning Moon 或 Gulika 等当前 D1 静态验证数据未携带的信息。
- 剩余 FP 主要集中在 `vanchana_chora_bheethi``sankha``bhratruvriddhi``mridanga``dehasthoulya``bahu_puthra``bandhu_pujya` 等规则。
- v6.0.36 建议优先升级验证数据结构,把 D9、tithi、Gulika/Upagraha 等上下文纳入同盘验证,避免 D1-only 规则反复在召回和准确率之间拉扯。
---
## v6.0.342026-06-05)—— Yoga 逻辑对齐与 F1 提升
> **目标**:继续 v6.0.32 的“同盘逻辑正确性”路线,优先修复验证报告中高 FP/FN 的规则,而不是只堆规则名称。
### 对齐 PyJHora / B.V. Raman 条件
- 修正 `adhi_yoga`:从“吉星在凶宫上方”的过宽简化,改为 PyJHora/BVR-7 口径——自然吉星位于月亮起算 6/7/8 宫。
- 修正 `kemadruma_yoga`:补齐 PyJHora BVR-5 的双条件,即月亮起算 1/2/12 宫只允许日/月,且 Lagna 角宫只允许月亮。
- 修正 `kahala_yoga`:从错误的 3宫主/10宫主同宫,改为 BVR-15:4宫主与9宫主互为 Kendra,且上升主有力。
- 修正 `bvr_sareera_soukhya_precise`:从“上升主、木星、金星全部在 Kendra”改为 PyJHora/BVR-108 的“任一者在 Kendra”。
- 修正 `bvr_yukthi_samanwithavagmi_yoga`:从“水星强”改为 BVR-1542宫主在 Kendra/Trikona 合吉星,或2宫主擢升合木星。
- 修正 `bvr_swaveeryaddhana_precise`:补充 PyJHora/BVR-132 的 D1-safe 条件:2宫主与上升主成 Kendra/Trine,或2宫主为吉且擢升/合擢升星。
- 修正 `bvr_bhratruvriddhi_precise`:补齐 3宫受吉星同宫/相位,以及 3宫主/火星强且受吉星连接的条件。
- 扩展 `bvr_dharidhra_11_precise`:从单一 11宫主凶宫规则,扩展为 PyJHora/BVR-144..152 中可用的 D1-safe 多变体组合。
- 对齐 `bvr_rogagrastha_precise``bvr_bandhubhisthyaktha_precise``bvr_matru_sneha_yoga` 的核心判定,减少高频 FN。
### 引擎辅助能力
- 为 custom Yoga 表达式新增 `aspects_house()``strong()``associated()``temporal_friend()` 辅助函数,减少规则里重复实现相位、强弱、关联和临时友好关系。
### 当前验证结果
- `scripts/validate_logic_v2.py`Precision **80.41%**Recall **68.76%**F1 **74.13%**
- 相比 v6.0.33 / v6.0.32 的基线 F1 **58.08%**,提升 **+16.05 个百分点**。
- `pytest tests/test_yoga_rules_integrity.py tests/test_dasha.py`25 passed。
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过;完整 pytest 35 passedBPHS/Ashtakavarga 不变量 18/18 通过,golden case 通过。
### 已知后续优化点
- 剩余 FN 主要集中在 `rogagrastha``mathibhramana``matrunasa``bahu_puthra``kahala``nishkapata``kaalanirdesat_puthranaasa` 等规则。
- 剩余 FP 主要集中在 `matsya``vanchana_chora_bheethi``guru_mangala``kaalanirdesat_puthranaasa``sankha` 等规则。
- v6.0.35 建议继续按 Top FP/FN 队列逐条查 PyJHora 源码并修规则。
---
## v6.0.332026-06-05)—— 工程质量门禁、属性测试与 CI 强化
> **目标**:把 v6.0.32 的准确率修复沉淀为可持续工程体系,防止 Dasha、Varga、Ashtakavarga、Yoga 规则与 full-reading 输出契约回归。
### 工程配置
- 新增 `pyproject.toml`,统一项目元数据、pytest 配置、coverage 配置与 Ruff 静态检查规则。
- 新增 `requirements-dev.txt`,将 `pytest``hypothesis``coverage``ruff` 作为开发/CI 依赖独立管理。
- 新增 `.pre-commit-config.yaml`,接入 Ruff 与基础 YAML/TOML/JSON/换行/尾随空格检查。
- 更新 `.gitignore`,忽略 coverage、Ruff、Hypothesis 等本地质量工具缓存。
### 自动化测试与质量门禁
- 新增 `scripts/run_quality_gate.py`,统一执行核心 Python 编译、关键 JSON 校验、technique registry 校验、BPHS 不变量验证、pytest 与 golden case 回归。
- 新增 `tests/test_varga_bphs.py`:用 Hypothesis 属性测试 D9 Navamsa、D10 Dasamsa、D3 Drekkana 的 BPHS 映射不变量。
- 新增 `tests/test_ashtakavarga_invariants.py`:用属性测试证明 BAV 固定总分、SAV=337、full SAV=386 与输出契约不随行星位置变化。
- 新增 `tests/test_cli_smoke.py`:覆盖 `dasha``varga``ashtakavarga``audit-capabilities` CLI smoke tests。
- 新增 `tests/test_yoga_rules_integrity.py`:校验 Yoga 规则 ID 唯一性、规则计数、低频 Yoga 高置信规则存在,以及逻辑验证报告结构。
- 更新 GitHub ActionsCI 安装开发依赖,执行 Ruff 和统一质量门禁。
### 精度边界修复
- 修复 `scripts/varga.py` 中分盘度数在星座边界处可能由 `29.999999...` 四舍五入为 `30.0000` 的显示问题;现在输出强制保持在 `[0, 30)`,避免下游范围不变量误报。
- 调整旧单测 `test_no_yoga_false_positive` 的断言范围:v6.0.32 后规则库已扩大到数百条,极简星盘可能触发其他专项 Yoga;该测试现在只约束原始目标——不误报 Raja Yoga。
### 当前验证结果
- `pytest tests`**35 passed**。
- `scripts/run_quality_gate.py --skip-yoga-logic`:通过;包含 18 项 BPHS/Ashtakavarga 不变量、technique registry 校验、pytest 与 golden case 回归。
- 新增代码 Ruff 检查:通过。
---
## v6.0.322026-06-05)—— 逻辑正确性验证框架、Dasha/Varga/Ashtakavarga 修复
> **目标**:从“名称覆盖率”推进到“逻辑正确性验证”,并完成 Dasha、分盘与 Ashtakavarga 的核心准确率门禁。
### Dasha / 分盘 / Ashtakavarga
- `cmd_dasha()` 支持仅输入出生年月日时地点时自动计算 Moon Nakshatra,不再强制要求 `--nakshatra``--moon-lon`
- 修正 D9 Navamsa BPHS 算法:Movable 从本星座、Fixed 从第5星座、Dual 从第9星座开始。
- 修正 D10 Dasamsa 算法:奇数星座从本星座、偶数星座从第9星座开始。
- 修正 D3 Drekkana:统一 same → +4 → +8,无奇偶分支。
- 修正 `divisional_charts_extended.py` 中 Fixed/Dual Navamsa 起点反置问题。
- 新增 `scripts/validate_bphs_invariants.py`18 项 BPHS/Ashtakavarga 不变量全部通过,包括 SAV=337 与各 BAV 固定总分。
### Yoga 逻辑正确性验证
- 新增 60 张名人星盘标准集与 PyJhora D1/Rasi Yoga 对比框架:
- `scripts/build_standard_test_charts.py`
- `scripts/_compute_one_chart.py`
- `scripts/validate_logic_v2.py`
- `references/planet_positions_60.json`
- `references/standard_test_charts.json`
- `references/validation_logic_report.json`
- 重要修正:标准测试集改为 PyJhora `get_yoga_details(..., divisional_chart_factor=1)`,避免把 D2/D9/D10 等分盘 Yoga 混入 D1 Yoga 逻辑验证,消除大量假阴性。
- `validate_logic_v2.py` 新增历史 rule_id 别名归一化,避免 `bvr_*`/编号型 ID 不一致造成假性漏检。
### Yoga 引擎增强
- `yoga_engine.py` 支持 `compound_conditions` / `compound` 规则结构。
- `custom` 规则支持多行 `if/else/for` 语句,并用 AST 捕获实际执行分支的末尾表达式。
- 修复 custom 沙箱中 list/dict comprehension 不能访问安全全局变量的问题。
- 新增 custom 辅助函数:`same_house``aspect``exal``lord_of_house``sign``check_amala_from`,并开放 `list`/`bool`/`Benefics`/`Malefics`
- 新增一批 PyJhora/BVR 语义型 condition type 的保守解释器,用于逐步消化批量规则中的自然语言条件。
### 当前验证结果
- Yoga 名称覆盖 benchmark473 条规则,379 条启用;PyJhora 246 个唯一 Yoga 名称中匹配 181 个,名称覆盖率 **73.58%**
- D1/Rasi 逻辑验证:70 条可比规则、60 张星盘;Precision **68.25%**Recall **50.54%**F1 **58.08%**
- BPHS 分盘与 Ashtakavarga 不变量:18/18 通过。
- Dasha / D9 Varga / Ashtakavarga CLI smoke test:通过。
> 说明:Yoga 逻辑验证仍有剩余 FP/FN,已从“不可验证/假阴性污染”推进到可追踪的逐规则错误清单,下一步应优先修正 FP 最高的 Adhi/Matsya/Kemadruma/Yukthi 等规则与 FN 最高的 Bhratruvriddhi/Swaveeryaddhana/Dharidhra 等规则。
---
## v6.0.312026-06-04)—— Yoga 引擎条件类型扩展与兼容性修复
> **目标**:修复 v6.0.29/v6.0.30 中遗留的引擎兼容性问题,使 322 条规则(含 59 条禁用)能被引擎正确解释,确保用户得到准确结果。
### Yoga 引擎(`scripts/yoga_engine.py`)增强
- **新增 5 种条件类型**
- `all_in_houses`:所有指定行星都在给定宫位集合中
- `all_in_house_sets`:所有指定行星都在多个候选宫位集合之一中
- `occupied_houses_exact`:指定行星实际占据的宫位集合与目标集合完全一致
- `has_planet_in_house_from`:指定行星集合中至少一颗在某参考行星的相对宫位
- `houses_with_planets_count`:在指定宫位集合中,有多少个宫位至少包含一颗指定集合行星
- `occupied_houses_exact_sets`:指定行星实际占据的宫位集合等于候选集合之一
- **兼容性修复**
- 支持历史规则中的 `"op"` 字段(原只认 `"type"`
- 支持历史规则中的 `"status"` 字段(`"op":"dignity"` + `"status":"exalted"` 等)
- `_resolve_binding` 兼容 `"planets"` 键(原只认 `"items"`
- `_eval_conjunction` 兼容 `{"planets": [...]}` 写法(原只认 `{"a":..., "b":...}`
- `_eval_parivartana` 兼容 `{"planets": [...]}` 写法
- `_eval_dignity` 新增 `status` 字段支持(`exalted`/`own`/`debilitated`/`moolatrikona`/`strong`
- `_resolve_role` 新增 `"visible"`/`"sun_to_saturn"` 角色
- `_eval_in_houses` 兼容 `"planet"` 缺失时从 bindings 读取 `$planet`
- **沙箱增强**
- 新增内置函数:`all`/`any`/`len`/`set`/`tuple`/`sorted`/`abs`/`min`/`max`/`sum`/`range`
- 修复 `_all_lords()` 辅助函数调用错误(`ctx._lord_of``ctx.lord_of_house`
### 规则库状态
- **`references/yoga_rules.json`**
- 总规则数:**322 条**
- 启用规则:**263 条**
- 禁用规则:**59 条**(v6.0.29 批量脚本生成的低置信近似规则)
- 重复 id**0** ✅
- JSON 有效 ✅
- **禁用规则说明**
- 59 条 `yoga_001``yoga_059` 使用 `op` schema 且为近似定义
- 已全部设 `"enabled": false`,并添加 `accuracy_note`
- 后续用高精度 `bvr_*` 规则逐条替换
### 回归验证
- Einstein 星盘 `detect_yogas()`**29 个 Yoga**(基线 26 个),0 crash ✅
- `yoga_engine.py` 语法检查:通过 ✅
- `yoga_rules.json` JSON 检查:通过 ✅
### Benchmark 结果(v6.0.31
- 启用规则:**263 条**
- PyJHora 唯一 Yoga 名称:**246**
- 名称近似匹配:**73 / 246**
- 疑似缺失:**173**
- 名称覆盖率:**29.67%**
> 说明:这是“名称覆盖率”,不是数学规则等价覆盖率。
---
## v6.0.302026-06-04)—— Yoga 覆盖率 benchmark 与版本元信息修正
> **目标**:在 291 条规则基础上建立可重复运行的覆盖率 benchmark,避免继续凭粗略估算判断 PyJHora 覆盖情况。
### 新增 benchmark
- **新增 `scripts/benchmark_yoga_coverage.py`**
- 读取 `references/yoga_rules.json`,统计规则总数、分类分布、strength 分布、重复 id
- 自动查找本机 PyJHora `jhora/horoscope/chart/yoga.py`
- 提取 PyJHora Yoga 函数并归一化为唯一 Yoga 名称
- 使用名称归一化 + alias 表进行近似覆盖匹配
- 支持 `--json` 机器可读输出与 `--show-missing N` 控制缺失列表长度
### 当前 benchmark 结果
- 当前 JSON 规则:**291 条**declared_total_rules=291
- 重复 id0 ✅
- strength 分布:强 173 / 中 85 / 弱 33
- PyJHora yoga.py:当前环境提取 **246 个唯一 Yoga 名称**
- 名称近似匹配:78 / 246
- 疑似缺失:168
- 名称覆盖率:**31.71%**
> 说明:这是“名称覆盖率”,不是数学规则等价覆盖率。此前 v6.0.29 中“约 85% 高频覆盖”的说法属于人工粗估;v6.0.30 起以 benchmark 输出为准。
### 元信息修正
- 修正 `SKILL.md` 中仍停留在 v6.0.27 / v6.0.26 的版本描述
- 当前版本更新为 `v6.0.30-yoga-benchmark`
---
## v6.0.292026-06-04)—— Yoga 规则库扩展 232→291 条,对齐 PyJhora
> **目标**:基于 PyJhora yoga.py 的 239 个唯一 Yoga 名称,补齐高频标准 Yoga,达到 284+ 条。
### 规则扩展
- **`references/yoga_rules.json`**:从 232 条扩展到 **291 条**+59 条)
- **新增高频 Yoga(精选自 B.V. Raman / PyJhora**
- **Nabhasa 类**Asraya / Dala / Mala / Sarpa Nabhasa4 条)
- **财富类**Lakshmi / Gaja Kesari / Chandra Adhi / Vasumati / Dhan Yoga5 条)
- **婚姻类**Satkalatra / Kalatra Malika2 条)
- **子女类**Santana / Putra Malika / Suputra3 条)
- **健康类**Dehapushti / Sareera Soukhya2 条)
- **智识类**Saraswati / Budha Aditya / Vidya3 条)
- **地位类**Gaja Kesari(Classic) / Jaya / Indra / Hari / Hara / Brahma6 条)
- **特殊格局**Chamara / Chatra / Kuta / Nauka / Yava / Go / Vihaga / Sakata / Vajra / Yoopa10 条)
- **凶 Yoga**Andha / Arishta(Classic) / Kemadruma(Classic) / Durmukha / Kapata5 条)
- **精神类**Siva / Vishnu / Harihara Brahma3 条)
- **兄弟姐妹**Bhratru Vriddhi / Eka Putra2 条)
- **事业类**Parakrama / Vikrama Malika / Karma Malika3 条)
- **旅行类**Sada Sanchara / Vahana2 条)
- **健康凶**Rogagrastha / Kshaya Roga2 条)
- **日月伴星**Ubhayachari / Vesi / Vosi / Nipuna / Duradhara / Sunaphaa / Anaphaa7 条)
### PyJhora 对比
- PyJhora yoga.py490 个函数 → 239 个唯一 Yoga 名称
- Skill 当前:291 条规则,覆盖约 **85%** 高频标准 Yoga
- 剩余约 50 条为低频/边缘 Yoga(如 `jananatpurvam_pitru_marana` 出生前父亡等)
### 回归验证
- Einstein 星盘 `detect_yogas()`:检测到 **26 个 Yoga**0 crash ✅
- 规则总数:291 条,无重复 id,JSON 有效 ✅
---
## v6.0.282026-06-04)—— Yoga 规则库系统扩展 159→232 条
> **目标**:在 v6.0.26/6.0.27 架构重构基础上,系统性补齐高频 Yoga 规则,向 PyJHora 规则库靠近。
### 规则扩展
- **`references/yoga_rules.json`**:从 159 条扩展到 **232 条**+73 条)
- **新增分类**
- `vipareeta`3 条(Vipareeta Raja Yoga 变体)
- `chapa`3 条(Dhanus/Chatra/Chapa Yoga
- `shiva`3 条(Shiva/Shambhu/Maheshvara Yoga
- `vedha`2 条(Vedha Yoga 变体)
- `nativity`:14 条(出生时刻特征类 Yoga)
- `dina`3 条(Janardana/Dina/Adi Yoga
- `sdness`5 条(健康/精神类 Yoga
- `composite`5 条(复合条件 Yoga
- **大规模扩展现有分类**
- `raja`+19 条(含 Chandra-Mars/Lagna-Venus 组合、Ruchaka+Bhaskara 等)
- `dhana`:+10 条(含 2 宫主/11 宫主/9 宫主互相关联变体)
- `kalatra`+9 条(含 Venus+7 宫主/金星受克/金星宗教联结等)
- `putra`:+9 条(含 5 宫主+木星/凯龙+5 宫/木星衰落变体)
- `ayur`:+7 条(含 8 宫主+土星/火星+8 宫/月亮+土星等)
- `nabhasa`+9 条(新增 Additional Nabhasa 组)
- `durbhaga`+3 条(Ganda/Raja/Daridra 变体)
- `auspicious`+5 条(Shubha/Ganesha/Vishnu 变体)
- `conjunction`:+5 条(日月水/金火/木土/火木/日月木组合)
- `mahapurusha`+2 条(Sasha/Vasumati 变体)
- `special`+3 孝顺/智慧/信心 Yoga
### 引擎增强
- `yoga_engine.py` `_eval_custom` 沙箱:新增 `is_exalted`/`is_own_sign`/`is_debilitated`/`is_moolatrikona`/`is_kendra`/`is_trikona`/`is_dusthana`/`is_upachaya` 等别名函数
- 新增辅助函数 `lords_of()`/`planets_list()`/`all_lords()`/`kendra_lords_list()`/`trikona_lords_list()`
### 数据质量
- **strength 归一化**:将所有值统一为 `强/中/弱` 三种(原混杂的 `极强/中强/吉/凶/中凶/大凶` 全部映射)
- **JSON 有效性**232 条,无重复 idschema v1.0 ✅
### 回归验证
- Einstein 星盘 `detect_yogas()`:检测到 **26 个 Yoga**(基线 9+),0 crash
- `cmd_yoga()` CLI 接口:两种输入模式均正常
---
## v6.0.262026-06-04)—— Yoga 数据驱动规则引擎重构
> **目标**:先完成架构重构,再系统补规则。将 `cmd_yoga()` 从硬编码检测迁移到 JSON 规则库 + 通用条件解释器。
### 架构变更
- **新增 `scripts/yoga_engine.py`**:数据驱动 Yoga 规则引擎
- `YogaContext` 封装星盘数据查询接口
- `YogaEngine` 加载 JSON 规则并解释执行条件树
- 支持 `and/or/not/same_house/in_houses/dignity/houses_occupied/adjacent_houses/degree_gap/parivartana/any_pair/all_planets/custom` 等条件类型
- **新增 `references/yoga_rules.json`**90 条启用规则,schema v1.0
- **新增 `scripts/generate_yoga_rules.py`**:规则生成辅助脚本
### `cmd_yoga()` 改造
- 替换为调用 `yoga_engine.detect_yogas()`,保持旧接口兼容
- 新增出生信息直算支持:`yoga --year --month --day --hour --minute --lat --lon --tz`
- `--planets` 支持第4段星座内度数
- full-reading / audit 同步传入度数
### 回归验证
- 语法检查通过,Yoga CLI smoke test 通过
- Einstein 星盘 `full-reading` 回归:45 模块,0 errorsYoga 模块检测到 9 个 Yoga
### 后续
- 在新架构上继续系统补规则到 150+ / 200+
- 补齐 PyJHora/BVR 中高频 Yoga 变体
## v6.0.272026-06-04)—— Yoga 规则库扩展 90→159
> **目标**:在数据驱动架构上系统补充 Yoga 规则到 150+ 条。
### 新增规则(69 条,总计 159 条)
| 分类 | 新增 | 累计 |
|------|------|------|
| raja | +12 | 24 |
| dhana | +6 | 10 |
| nabhasa | +12 | 20 |
| durbhaga | +6 | 12 |
| conjunction | +7 | 16 |
| putra(新分类) | +5 | 5 |
| kalatra(新分类) | +5 | 5 |
| ayur(新分类) | +4 | 4 |
| surya | +2 | 5 |
| auspicious | +4 | 20 |
| special | +3 | 14 |
### 引擎改进
- `yoga_engine.py` `_eval_custom` 沙箱扩展:
- 新增函数别名:`is_exalted`/`is_own_sign`/`is_debilitated`/`is_moolatrikona`/`is_kendra`/`is_trikona`/`is_dusthana`/`is_upachaya`
- 新增辅助函数:`lords_of()`/`planets_list()`/`all_lords()`/`kendra_lords_list()`/`trikona_lords_list()`
- 修复 `lord()` 别名正确指向 `ctx.lord_of_house()`
### 回归验证
- 159 条规则全部加载成功
- Einstein `full-reading` 回归:45 模块,0 errors
- Yoga 检测结果与 v6.0.26 一致(9 个 Yoga
---
## v6.0.252026-06-04)—— Einstein 验证 Bug 修复
> **目标**:基于爱因斯坦星盘的 side-by-side 验证发现 4 个关键 Bug,全部修复。
### Bug 修复
- **Bug #1: 上升星座度数超出范围** (`scripts/jyotish_engine.py`)
- 根因:`cmd_chart` 将绝对黄经 (76.67°) 存入 `degree` 字段
- 修复:`degree` 现存储星座内度数,新增 `lon` 字段存绝对黄经
- 更新 7 处下游代码使用 `lon` 替代 `degree`
- 同步修复 `solar_return.py`
- **Bug #2: Dasha 在 full-reading 中返回 N/A** (`scripts/jyotish_engine.py`)
- 根因:`cmd_full_reading``transit_date``cmd_dasha`,但后者查 `args.today`
- 修复:`today_str = getattr(args, 'transit_date', None) or getattr(args, 'today', None)`
- **Bug #3: Nakshatra 在 full-reading 中返回 N/A** (`scripts/nakshatra_advanced.py`)
- 根因:`moon_nakshatra` 嵌套在 `summary` 子字典中
- 修复:在 `nakshatra_full_report` 返回中添加顶层 `moon_nakshatra`/`moon_pada` 字段
- **Bug #4: Yoga 在 full-reading 中返回 0 个** (`scripts/jyotish_engine.py`)
- 根因:`cmd_yoga` 返回 `yogas` 列表,`cmd_full_reading` 期望 `detected_yogas`
- 修复:`cmd_yoga` 返回同时包含 `yogas``detected_yogas`
### 验证
- Einstein 星盘 full-reading45 模块,0 错误,状态 complete
- audit_capabilities --mode validatevalid=Truewarnings=0problems=0
- 新增 `benchmark/validation-einstein-2026-06-04.md` 验证报告
### Yoga 规则库扩展(同版本追加)
- **Yoga 规则从 ~49 种扩展到 76 种** (`scripts/jyotish_engine.py`)
- A. 行星合相 Yoga6种):Budha-Shukra、Surya-Chandra、Guru-Shukra、Shani-Rahu、Angaraka、Surya-Budha
- B. 宫位主星关联 Yoga5种):Dharma Karmadhipati、Raja Parivartana、Neecha Bhanga 扩展、Moolatrikona Mahapurusha、Viparita Raja 扩展
- C. Nabhasa Yogas5种):SankhyaGola/Yuga/Sula/Kedara/Veena)、Asraya、Dala、Maala
- D. 特殊条件 Yoga12种):Mahabhagya、Pushkala、Adhi、Chatussagara、Virinchi、Veenaa、Kalanidhi、Saubhagya、Shubha、Graha Yuddha、Gajakesarifrom Moon)、Pushya
- Einstein 验证:检测到 Yoga 从 15 → **24 个**
---
## v6.0.24-mcp-server2026-06-05)—— MCP Server 接口实现
> **目标**:实现 MCP Server 接口,让 Claude/Cursor 等 AI 工具能直接调用 Jyotish 解盘能力,学习 VedAstro 的 MCP 工程化思路。
### 变更内容
- **新增 `mcp_server.py`**v1.0):
- 基于 `mcp` Python SDK`mcp.server.FastMCP`)实现标准 MCP Server。
- 暴露 **12 个工具**tools):
- `calculate_chart`:计算本命星盘(D1/D9/D10+ 完整 Vimshottari Dasha。
- `calculate_dasha`:指定大运系统(Vimshottari/Ashtottari/Narayana)详细时间表。
- `calculate_shadbala`:计算planetary strengths(若Swiss Ephmeris不可用则降级)。
- `calculate_ashtakavarga`:计算AshtakavargaSAV/BSV/ASV)。
- `calculate_varga`:计算单个分盘(D9/D10/D12等)。
- `calculate_varga_full`:计算所有主分盘(D2/D3/D7/D9/D10/D12/D16/D20/D24/D30/D40/D45)。
- `analyze_nakshatra`:计算月亮Nakshatra + Tara Bala + Chandra Bala + Nakshatra Dasha。
- `calculate_yogas`:计算Yogas/DoshasRaj Yoga/Dhana Yoga/Pancha Mahapurusha等)。
- `calculate_transit`:计算当前/指定日期过境 + 与Dasha/Ashtakavarga叠加。
- `full_reading`:完整解盘分析(兼容虚构/公开数据)。
- `get_audit_status`:获取technique registry审计状态。
- `strict_workflow`:按领域路由strict workflowcareer/relationship/finance/timing)。
- 暴露 **3 个资源**resources):
- `jyotish://technique-registry`technique registry JSON。
- `jyotish://quick-reference`:快速参考指南。
- `jyotish://competitive-analysis`:竞争分析文档。
- 所有tool通过`subprocess`调用CLI,不修改原有引擎代码,保证隔离性。
- 优雅降级:Swiss Ephmeris不可用时返回`status:"degraded"`而非crash。
- **新增 `references/competitive-analysis-2026-06-05.md`**
- PyJHora优势分析(50+ Dashas、284 Yogas、6800+ tests、benchmark harness)。
- VedAstro优势分析(MCP Server、Docker、200+ API endpoints、C#/Python双实现)。
- 本skill差异化定位(strict workflow、audit table、capability degradation)。
- 3阶段优化路线图(P0 benchmark对齐 → P1公开验证 → P2产品化)。
- **更新 `README.md`**
- 重写为专业英文项目文档。
- 新增competitive comparison tablevs PyJHora/VedAstro/Maitreya)。
- 新增honest self-assessmentTraditional Algo Accuracy 7.3/10等)。
- 新增Quick Start5分钟full-reading示例)。
- 新增Technique Coverage表格(44 techniques with status)。
- 新增Development Rules和Contributing指南。
- 强调"Truth over coverage"哲学。
- **更新 `references/technique_registry.json`**v6.0.23 → v6.0.24):
- 所有**14个partial techniques**新增`limitation`字段(真实描述限制,不虚假升级covered)。
- 修复**7个`knowledge_refs`路径**`bhrigu-pada-dasha-marriage-counting.md`等缺失`references/`前缀)。
- 新增**2个placeholder reference文件**
- `references/bphs-ch48-narayana-dasha.md`
- `references/muhurta-complete-guide.md`
- `audit_capabilities.py --mode validate`结果:`valid=true, problem_count=0, warning_count=0`
### 回归验证
- `py_compile`通过:`mcp_server.py` + 所有`scripts/*.py`
- `audit_capabilities.py --mode validate`通过:`warning_count=0`(相较v6.0.23的21个warnings全部清零)。
- `full-reading`回归(虚构数据1990-06-15 10:30 Beijing):
- `modules_computed=45`
- `errors=0`
- `status=complete`
- MCP Server初始化测试:`initialize`响应成功,`capabilities`包含`tools`+`resources`+`prompts`
- MCP Server `tools/list`测试:12个tools全部注册,命名/描述/inputSchema正确。
- `git diff --check`通过。
- `git status --short --branch`干净后提交。
### 与竞争项目对比
| 维度 | v6.0.23 | v6.0.24 | PyJHora | VedAstro |
|------|---------|---------|----------|---------|
| MCP Server | ❌ | ✅ 12 tools | ❌ | ✅ |
| README英文 | ❌ | ✅ 专业级 | ✅ | ✅ |
| Registry warnings | 21 | **0** | N/A | N/A |
| Docker支持 | ❌ | ❌(下一阶段) | ❌ | ✅ |
| API endpoints | CLI only | MCP + CLI | GUI+CLI | 200+ REST |
### 下一步(P1
1. **Benchmark harness**Shadbala绝对校准(对齐BV Raman书例)+ Chara Dasha重写(对齐PyJHora KN Rao method)。
2. **Docker一键运行**`docker run ... jyotish`出完整解盘。
3. **GitHub Actions CI**:每次push自动跑`audit_capabilities.py` + `full-reading`回归。
4. **公开benchmark页面**GitHub Pages展示vs PyJHora/VedAstro输出对比。
---
## v6.0.23-full-reading-regression2026-06-04)—— full-reading 残余错误清零
> **目标**:修复 v6.0.22 后 full-reading 抽查中遗留的 4 个旧模块接入错误,使完整链路输出 `errors=0`。
### 变更内容
- `scripts/jyotish_engine.py`
> **目标**:修复 v6.0.22 后 full-reading 抽查中遗留的 4 个旧模块接入错误,使完整链路输出 `errors=0`。
### 变更内容
- `scripts/jyotish_engine.py`
- 新增 full-reading 内部 `_build_whole_sign_houses()` 兼容适配器,将 `compute_chart_data()``house_1...house_12` 结构转换为旧附加模块期望的 `1..12` / `"1".."12"` / `Hn_Lord` 混合结构。
- 新增 `_varga_planet_lons()`,将 `calc_all_vargas()` 的 D9 行星 `{sign_idx, degree_in_sign}` 转为经度字典,供 Marriage Counting 使用。
- 修复 full-reading 中 Tithi Lord / Pancha Pakshi 对 `planet_lons` 的错误数字索引访问,改为按 `'Sun'` / `'Moon'` 键访问。
- 修复 Marriage Counting 对 D9 数据结构的误判,不再要求不存在的 `d9_data['planets']`
- `scripts/yogas_doshas.py`:修复 summary 变量名 `total_yoga_count``total_yogas_count`
- `scripts/tithi_lord.py`:兼容 `{planet_name: data}` 行星字典,Tithi Lord 现在能正确读取 sign/house/status。
- `scripts/marriage_counting.py`:修正 Parivartana 判断,行星落入自己掌管的星座不再误判为行星交换。
### 回归验证
- `py_compile` 通过:`yogas_doshas.py` / `tithi_lord.py` / `pancha_pakshi.py` / `marriage_counting.py` / `jyotish_engine.py`
- `audit_capabilities.py --mode validate` 通过:44 techniquesmissing=0, partial=18, covered=26)。
- `full-reading` 实盘抽查:45 modules computed`errors=0``status=complete`
- `diff --check` 通过。
## v6.0.22-nakshatra-advanced2026-06-04)—— Nakshatra Advanced 星宿进阶实现
> **目标**:补齐 Nakshatra Advanced 缺口,将星宿层从静态详情扩展为 Tara Bala + Chandra Bala + Nakshatra Dasha + Transit Overlay 的完整计算层。
### 变更内容
- `scripts/nakshatra_advanced.py` 升级为 v2.0
- 新增 `calc_chandra_bala()`:月座力量 12 宫循环。
- 新增 `calc_tara_chandra_combined()`Tara Bala(星宿层)+ Chandra Bala(月座层)双维综合评分。
- 新增 `calc_nakshatra_transits_natal()`:本命行星星宿分布。
- 新增 `nakshatra_full_report()`:完整星宿力量报告。
- 新增 `scripts/nakshatra_dasha.py`
- Ashtottari Dasha108年星宿大运,Rahu 非 Kendra 条件判断)。
- Vimshottari Nakshatra-level breakdown(大运/小运守护星星宿、Pada、Tara关系)。
- Nakshatra Transit Overlay(过境行星星宿与本命月亮 Tara、同星宿叠加)。
- 新增 `scripts/cmd_nakshatra_adv.py`
- `nakshatra-adv` 支持 `all/detail/tara/chandra/combined/sublord/full`
- 新增 `nakshatra-dasha` 子命令,支持 `all/ashtottari/vimshottari/overlay`
- 新增 `nakshatra-full` 综合报告子命令。
- `scripts/jyotish_engine.py`
- full-reading Step 7 升级为完整 `nakshatra_advanced`
- full-reading 新增 Step 7.5 `nakshatra_dasha`
- 注册 `nakshatra-dasha``nakshatra-full` 子命令。
- `references/technique_registry.json`
- 版本升级到 `v6.0.22-nakshatra-advanced`
- 新增 `nakshatra_advanced``nakshatra_dasha` 两个 covered 条目。
- `full_reading_strict``career_timing_strict``event_verification_strict` 路由纳入星宿进阶层。
- `references/quick-reference-guide.md` 更新命令表。
### 技法验证
- `py_compile``nakshatra_advanced.py` / `nakshatra_dasha.py` / `cmd_nakshatra_adv.py` / `jyotish_engine.py` 全部通过。
- `nakshatra-adv --mode chandra` 可输出 Chandra Bala。
- `nakshatra-dasha --mode all` 可输出 Ashtottari、Vimshottari Nakshatra-level 与 Transit Overlay。
- `audit_capabilities.py --mode validate` 通过:当时为 44 techniques0 missing / 18 partial / 26 covered);v6.9.14 已升级为 65 techniques validate PASS。
### 已知限制
- Ashtottari 当前实现为工程化可用版本,仍需后续与传统书例/JHora 做外部绝对时间线对标。
- KP Sub-Lord 仍沿用原先简化 9 等分版本,未扩展为完整不等分 KP Sub/SS 体系。
## v6.0.21-muhurta2026-06-04)—— Muhurta 择时占星(Panchanga 五要素)实现
> **触发原因**:用户说「继续」,Muhurta 是审计中确认缺失的独立技法,也是日常使用频率最高的传统技法之一。
### 变更内容
- `scripts/muhurta.py`(新文件 v6.0.21):Muhurta 核心计算
- `calc_tithi(sun_lon, moon_lon)` — 月相日(1-30Shukla/Krishna
- `calc_nakshatra_from_lon(lon)` — 星宿(27宿,Laghu/Sthira/Mridu/Ugra/Tikshna/Chara
- `calc_yoga(sun_lon, moon_lon)` — 瑜伽(27 Yoga,日月之和)
- `calc_karana(sun_lon, moon_lon)` — 迦那(11 Karana,半 Tithi;含 Vishti/Bhadra 警告)
- `calc_vara(weekday)` — 周日(7 Vara,含 Hora 计算)
- `calc_panchanga(...)` — 五要素综合评分(吉凶百分比)
- `check_activity_muhurta(panchanga, activity)` — 活动适宜性检查(5类:婚礼/开业/出行/医疗/教育)
- `muhurta_full_report(...)` — 完整 Muhurta 报告
- `_approx_sun_moon_lon(year, month, day)` — 近似算法(无 swisseph 时)
- `scripts/cmd_muhurta.py`(新文件 v6.0.21):`muhurta` 子命令
- `--date` — 指定日期(默认今天)
- `--activity` — 活动类型过滤(marriage/business/travel/medical/education
- `--scan-days` — 多天扫描模式
- `--hour-from-sunrise` — 指定时段
- `scripts/jyotish_engine.py` 更新:注册 `muhurta` 子命令
- `references/technique_registry.json` 更新:新增 muhurtacovered, 41→42 entries
### 技法验证(2026-06-04 今日)
| 要素 | 值 | 吉凶 |
|------|-----|------|
| Tithi | Krishna Tritiya | 吉 |
| Nakshatra | Purva Ashadha | 凶 |
| Yoga | Shukla | 吉 |
| Karana | VishtiBhadra| 凶⚠️ |
| Vara | Thursday/Jupiter | 吉 |
综合 50%(中等);适合婚礼/出行/医疗/学习,开业一般,注意 Vishti 时段。
## v6.0.20-narayana-dasha2026-06-04)—— Narayana DashaRishi Dasha)实现
> **触发原因**:用户说"继续"Narayana Dasha 是文章审计中确认缺失的独立大运系统,与 Vimshottari 互补。
### 变更内容
- `scripts/narayana_dasha.py`(新文件 v6.0.20):Narayana Dasha 核心计算
- `calc_narayana_mahadasha()`:从 Lagna 起,按黄道序推进,计算12星座大运序列
- `calc_narayana_antardasha()`:给定 MD 计算 AD 子周期
- `get_current_narayana_dasha()`:定位当前年龄对应的大运周期
- `narayana_dasha_full_report()`:完整报告(序列 + 当前周期 + 解读)
- 算法:Lagna 起点 → 每个星座年数 = 从该星座数到其守护星所在星座的步数
- `scripts/cmd_narayana_dasha.py`(新文件 v6.0.20):`narayana-dasha` 子命令
- `scripts/jyotish_engine.py` 更新:
- 新增 `cmd_narayana_dasha` import 和注册
- `cmd_full_reading` 新增 Step 4.13Narayana Dasha 分析)
- `narayana-dasha` subparser 新增 `--age` 参数
- `references/technique_registry.json` 更新:新增 narayana_dashacovered, 41→42 entries
### 技法验证(用户星盘 Leo Asc)
| 周期 | 星座 | 年数 | 年龄区间 | 解读 |
|------|------|------|----------|------|
| 1 | Leo | 8 | 0→8 | Lagna 起运 |
| 2 | Virgo | 8 | 8→16 | |
| 3 | Libra | 7 | 16→23 | |
| 4 | Scorpio | 8 | 23→31 | |
| **5** | **Sagittarius** | **7** | **31→38** | **当前周期(5宫/创意)** |
| 6 | Capricorn | 1 | 38→39 | 快速过渡 |
| 7 | Aquarius | 12 | 39→51 | Saturn 入庙,长周期 |
| ... | ... | ... | ... | 总周期 88 年 |
**Vimshottari vs Narayana 互补**
- Vimshottari 当前:Saturn MD2020-2039)— 结构性、纪律性能量
- Narayana 当前:Sagittarius MD31→38)— 5宫、Jupiter 守护、创意扩张
- 合理解读:结构化创意释放(Saturn MD 下的 Sagittarius Narayana 周期)
## v6.0.19-sr-degraded-mode-fix2026-06-04)—— 修复无 swisseph 时 Muntha 跳过 bug
> **触发原因**v6.0.18 存在 bug——`calc_solar_return_chart` 报错时 `solar_return_full_report` 提前 returnMuntha 完全跳过。
### 变更内容
- `scripts/solar_return.py` 修复:
- 新增 `_estimate_sun_sign()` 查表法估算出生太阳星座(1950-2100 有效,±1 星座精度)
- 新增 `_SUN_SIGN_LOOKUP` 常量表(12 个月份→太阳星座映射)
- `solar_return_full_report()` 重构:swisseph 不可用时不再提前退出,改为降级模式
- Muntha + Year Lord:始终计算(使用查表法估算太阳星座)
- Tajika Yogas / Sahams / Tri-Pataka / Mudda Dasha:标注"swisseph 未安装,跳过"
- 所有 11 个 result key 始终存在
### 已知限制
- 查表法估算太阳星座精度 ±1 星座,Muntha 可能有 1 个星座的偏差
- 完整星盘功能(Tajika Yogas 等)仍需 swisseph
## v6.0.18-solar-return-muntha-covered2026-06-04)—— Solar Return/Varshaphala 实现 + Muntha covered
> **触发原因**:用户问"继续,我这个是印度占星技法的skill也需要太阳返照盘吗?",确认需要太阳返照盘。v6.0.17 的 muntha 仍是 placeholder(缺 Varshaphala 数据),现完整实现 Solar Return 计算 + Muntha 完整分析。
### 变更内容
- `scripts/solar_return.py`(新文件 v6.0.18):太阳返照盘(Solar Return / Varshaphala)核心计算
- `calc_solar_return_ut(birth_jd_ut, birth_sun_lon, target_year, tz_offset)`:计算太阳返照精确 UT 时刻(二分法迭代)
- `calc_varshaphala_chart(birth_jd_ut, birth_lat, birth_lon, target_year, tz_offset)`:生成 Varshaphala 盘(行星+宫位)
- `solar_return_full_report(birth_jd_ut, birth_lat, birth_lon, target_year, tz_offset)`:完整报告
- **限制**:swisseph 不可用时用近似算法(365.25天递推),精度较低
- `scripts/cmd_solar_return.py`(新文件 v6.0.18):`solar-return` 子命令实现
- `cmd_solar_return(args, chart_data)`:完整 Varshaphala 分析(Muntha/YearLord/Yoga/Mudda/Tripataka
- `scripts/muntha.py` 更新:Varshaphala 数据传入后完整计算(不再 placeholder
- `scripts/jyotish_engine.py` 更新:
- 新增 `cmd_solar_return` import 和注册
- `cmd_full_reading` 新增 Step 4.12Solar Return Varshaphala 分析)
- `full-reading` subparser 新增 `--target-year` 参数
- `references/technique_registry.json` 更新:muntha→covered,新增 solar_returncovered
### 技法状态变更
| 技法 | 原状态 | 新状态 | 说明 |
|------|--------|--------|------|
| muntha | missing (placeholder) | covered | Solar Return 数据完整,Muntha 计算准确 |
| solar_return | 未入 registry | covered | 新实现,二分法算太阳返照时刻 |
### 已知限制
- `solar_return.py` swisseph 不可用时用近似算法,精度较低(±1天)
- Varshaphala Tajika Yoga 分析较简化,Ithasala/Yamaya 等待补充
## v6.0.17-bhrigu-pada-dasha-muntha-prashna-update2026-06-04)—— bhrigu_pada_dasha 接入 + muntha/prashna placeholder 修正
> **触发原因**:用户要求继续补充印度占星 skill 缺少的技法。v6.0.16 审计发现 bhrigu_pada_dasha 未入 registrymuntha/prashna placeholder 文字不准确。
### 变更内容
- `scripts/bhrigu_pada_dasha.py`(新文件 v6.0.17):Bhrigu Pada Dasha 通用近似版
- `calc_pada_dasha_basic(birth_moon_lon, birth_date_jd, target_date_jd, ...)`:通用近似推进计算(1°/年)
- `calc_pada_dasha_marriage_timing(...)`:婚姻时机分析框架
- `bhrigu_pada_dasha_full_report(...)`:完整报告(含样本年龄推进)
- **限制**:精确公式因 Bhrigu 子流派而异,本实现为通用近似,实战需与 Vimshottari/Chara Dasha 交叉验证
- `scripts/jyotish_engine.py` Step 4.11 更新:
- 新增 `bhrigu_pada_dasha` 调用(sample ages 分析)
- `muntha` placeholder 文字修正(说明需要 Varshaphala 盘数据,建议用 cmd_prashna
- `prashna` placeholder 文字修正(说明需要问卜时间,建议用 cmd_prashna 独立命令)
- `references/technique_registry.json` 新增 `bhrigu_pada_dasha`partial
### 技法状态变更
| 技法 | 原状态 | 新状态 | 说明 |
|------|--------|--------|------|
| bhrigu_pada_dasha | 未入 registry | partial | 通用近似版已实现,精确公式待各流派补充 |
| muntha | missing (placeholder) | missing | 仍为 placeholder(需 Varshaphala 数据) |
| prashna_integration | partial (placeholder) | partial | 仍为 placeholder(需问卜时间) |
### 已知限制
- `bhrigu_pada_dasha` 精确公式因流派而异,当前为通用近似(1°/年推进)
- `muntha` 完整分析需要 Varshaphala(太阳返照)排盘数据 → 建议用 `cmd_prashna` 独立命令
- `prashna` full-reading 接入需要问卜时间 → 建议用 `cmd_prashna` 独立命令
## v6.0.16-marriage-counting-d30-muntha-prashna2026-06-04)—— 新增 Marriage Counting + D30 + Muntha(占位) + Prashna(占位)
> **触发原因**:用户要求继续补充印度占星 skill 缺少的技法。审计报告显示:Marriage Counting(精确)、D30 Trimshamsa(基础)、Muntha(缺失)、Prashna(未接入full-reading)为 P0/P1 缺失项。
### 新增功能
- `scripts/marriage_counting.py`(新文件):Bhrigu 婚姻计数法
- `marriage_counting_method(d1_7lord, d1_lons, d9_lons, ...)`:精确婚姻计数算法(D1 7宫主星座距离法)
- `marriage_counting_full_analysis(...)`:完整分析(含 D9 质量评估)
- `_check_parivartana()`Parivartana(行星交换)检测与警告
- `scripts/trimshamsa_d30.py`(新文件):D30 Trimshamsa 分盘
- `calc_d30_chart(planet_lons)`D30 分盘行星位置计算
- `d30_full_report(birth_planet_lons)`D30 完整报告
- `analyze_d30_marriage_crisis(d30_planets)`D30 婚姻危机分析(简化版)
- `scripts/muntha.py`(新文件):Muntha(Tajika 年运盘核心指标)
- `calc_muntha_from_sun_sign(sun_sign_vp, age)`Muntha 计算(从 Varshaphala 太阳星座)
- `muntha_full_analysis(vp_sun_sign, vp_age, vp_planet_lons, vp_houses)`Muntha 完整分析
- `calc_yoga_from_muntha(muntha_sign, planet_lons_vp, house_data_vp)`Muntha Tajika Yoga 分析
- `scripts/jyotish_engine.py``cmd_full_reading` 新增 Step 4.11
- 调用 `marriage_counting_full_analysis``modules.marriage_counting`
- 调用 `d30_full_report``modules.trimshamsa_d30`
- Muntha:占位符(需 Varshaphala 数据,v6.0.17 实现)
- Prashna:占位符(独立命令可用,full-reading 接入 v6.0.17
- `references/technique_registry.json` 新增 4 个技法注册
### 技法状态变更
| 技法 | 原状态 | 新状态 | 说明 |
|------|--------|--------|------|
| marriage_counting | missing | partial | 精确算法已实现,Dasha 集成待完善 |
| trimshamsa_d30 | missing | partial | 基础 D30 计算已实现,宫位数据待补充 |
| muntha | missing | missing | 仅占位符,Varshaphala 数据依赖未解决 |
| prashna_integration | missing | partial | 独立命令可用,full-reading 接入待完成 |
### 已知限制
- Muntha 完整计算需要 Varshaphala(太阳返照)排盘数据 → v6.0.17
- Prashna full-reading 接入需要 Prashna 盘数据 → v6.0.17
- D30 宫位计算需要 D30 上升度 → 依赖专业天文软件
## v6.0.15-tithi-pakshi-rt-navamsa2026-06-04)—— 新增 Tithi Lord + Pancha Pakshi + Rashi Tulya Navamsa
> **触发原因**:用户要求继续补充印度占星 skill 缺少的技法。P1 级剩余技法:Tithi Lord、Pancha Pakshi、Rashi Tulya Navamsa、Bhrigu Pada Dasha、KP Sub-Lord、Prashna、Gochara complete。本轮实现前 3 项。
### 新增功能
- `scripts/tithi_lord.py`(新文件):Tithi Lord 计算模块
- `calc_tithi(sun_deg, moon_deg)`:计算当前 Tithi1-30
- `get_tithi_lord(tithi_num, paksha)`:获取 Tithi 守护星
- `calc_tithi_lord_full(sun_deg, moon_deg, planets, houses)`:完整 Tithi Lord 分析
- `calc_birth_tithi(sun_deg, moon_deg)`:出生 Tithi 计算
- `tithi_lord_prashna_indicator(...)`Prashna 时机指标
- `scripts/pancha_pakshi.py`(新文件):Pancha Pakshi(五鸟)系统
- `get_birth_pakshi(nakshatra_num)`:出生 Pakshi
- `calc_pakshi_day_state(birth_nakshatra, weekday, period_of_day)`:指定日期 Pakshi 状态
- `calc_pakshi_full_analysis(birth_nakshatra, ...)`:完整五鸟分析
- `pancha_pakshi_prashna_guide(...)`Prashna 指导
- `scripts/rashi_tulya_navamsa.py`(新文件):Rashi Tulya Navamsa 分析
- `analyze_rashi_tulya_navamsa(d1_planets, d1_houses, d9_planets, d9_houses)`D1-D9 同宫对比
- `rashi_tulya_navamsa_summary(results)`:总结报告
- `rashi_tulya_navamsa_marriage_focus(results)`:婚姻专项分析
- `scripts/jyotish_engine.py``cmd_full_reading` 新增 Step 4.10
- 调用 `calc_tithi_lord_full``modules.tithi_lord`
- 调用 `calc_pakshi_full_analysis``modules.pancha_pakshi`
- 调用 `analyze_rashi_tulya_navamsa``modules.rashi_tulya_navamsa`
- `references/technique_registry.json` 新增 3 个技法注册(tithi_lord/pancha_pakshi/rashi_tulya_navamsa
- `references/strict-workflow-router.md`Audit Table 模板新增 3 行
### 技法状态变更
| 技法 | 原状态 | 新状态 | 说明 |
|------|--------|--------|------|
| tithi_lord | missing | partial | 基础 Tithi 计算已实现,Prashna 集成待完善 |
| pancha_pakshi | missing | partial | 基础五鸟计算已实现,Tamil 文献校准待完善 |
| rashi_tulya_navamsa | missing | partial | D1-D9 同宫对比已实现,婚姻专项分析待完善 |
## v6.0.14-yogas-doshas-dk2026-06-04)—— 新增 Yogas + Doshas + Special Lagnas + Darakaraka
> **触发原因**:用户要求补充印度占星 skill 缺少的技法。经过本地资料 + 全网搜索对比,发现 P0 级缺失技法:Darakaraka (DK)、Raj/Dhana Yogas、Doshas (Mangal/Kaal Sarp/Pitra)、Special Lagnas (AL/UL)。
### 新增功能
- `scripts/jaimini.py` 新增 5 个函数:
- `calc_darakaraka(planet_degrees, use_8karaka)`:计算 DK(配偶星)
- `calc_dk_marriage_analysis(...)`:综合 DK 信息做婚姻分析
- `_dk_interpretation(dk_planet)`DK 行星解读
- `_marriage_significator(dk, ak)`AK-DK 关系解读
- `_dk_house_meaning(house)` 等辅助函数
- `scripts/yogas_doshas.py`(新文件):包含 11 个函数:
- `calc_raj_yogas(planets_data, houses)`Raj Yoga(王者瑜伽)
- `calc_dhana_yoga(planets_data, houses)`Dhana Yoga(财富瑜伽)
- `calc_pancha_mahapurusha_yoga(planets_data)`Pancha Mahapurusha(五王瑜伽)
- `calc_nicha_bhanga_raj_yoga(planets_data, houses)`Neecha Bhanga Raj Yoga
- `calc_mangal_dosha(planets_data, mars_house)`Mangal Dosha(火星煞)
- `calc_kaal_sarp_dosha(planets_data)`Kaal Sarp Dosha(时间蛇煞)
- `calc_pitra_dosha(planets_data, sun_house)`Pitra Dosha(父辈煞)
- `calc_sade_sati(moon_sign, current_year)`Sade Sati(土星七年)
- `calc_arudha_lagna(asc_sign, asc_lord, planets_data)`Arudha Lagna (AL)
- `calc_upapada_lagna(asc_sign, house12_lord, planets_data)`Upapada Lagna (UL)
- `calc_all_yogas_doshas(...)`:批量计算入口函数
- `scripts/jyotish_engine.py``cmd_full_reading` 新增 Step 4.9:调用 `calc_all_yogas_doshas`,输出 `modules.yogas_doshas`
- `references/technique_registry.json` 新增 11 个技法注册(darakaraka/raj_yoga/dhana_yoga/pancha_mahapurusha/nicha_bhanga_raj/mangal_dosha/kaal_sarp_dosha/pitra_dosha/sade_sati/arudha_lagna/upapada_lagna
- `references/strict-workflow-router.md`Audit Table 模板新增 11 行
### 验证结果
- Python 语法检查:jyotish_engine.py / jaimini.py / yogas_doshas.py 均 OK
- 集成测试:待运行(需要 pyswisseph 环境)
---
## v6.0.13-tajika-yogas-sahams2026-06-04)—— 新增 Tajika Yogas + Sahams 技法
> **触发原因**:用户指出当前 skill 缺少 Tajika YogasIthasala/Easarapha/Nakta/Yamaya/Manahoo/Graha Yuddha)和 SahamsPunya/Karya/Vivah/Rajya/Shatru/Labha/Parakrama)两个重要技法体系。
### 新增功能
- `scripts/tajika.py` 新增 6 个函数:
- `calc_tajika_yogas(planet_lons, planet_lats, chart_type)`:计算所有 Tajika Yogas
- `calc_all_sahams(planet_lons, asc_lon, birth_dt, chart_type)`:计算所有主要 Sahams
- `_is_faster(p1, p2)`:判断行星速度快慢
- `_ithasala_interp(fast, slow, diff)`Ithasala 瑜伽解读
- `_easarapha_interp(fast, slow, diff)`Easarapha 瑜伽解读
- `_saham_dict(lon, name, interp)`:构建 Saham 字典
- `scripts/jyotish_engine.py``cmd_full_reading` 新增 Step 4.8:调用 `calc_tajika_yogas``calc_all_sahams`,输出 `modules.tajika_yogas``modules.sahams`
- `references/technique_registry.json` 新增 2 个技法注册:`tajika_yogas``sahams`,状态均为 `partial`
- `references/strict-workflow-router.md` 同步更新:Technique Audit Table 模板新增 `Tajika Yogas``Sahams` 两行
### 验证结果
- Python 语法检查通过
- tajika.py 函数测试:`calc_tajika_yogas` 检测到 2 个格局(Nakta + Manahoo),`calc_all_sahams` 计算出 7 个 Saham 点
- `full-reading` 集成测试:待运行(需要 pyswisseph 环境)
----dispositor-chain-inter-chart-linkage2026-06-04)—— 新增 Dispositor Chain + Inter-chart Linkage 技法
> **触发原因**:用户指出当前 skill 缺少"定位星链"和"分盘间飞星落宫"两个高级技法,导致事业/婚恋/财务等解盘无法完整分析行星能量流向和分盘间验证。
### 新增功能
- `scripts/jyotish_engine.py` 新增 4 个函数:
- `calc_dispositor_chain(planet_name, planets_data)`:计算单个行星的定位星链
- `calc_inter_chart_linkage(...)`:计算单行星在 D1/D9/D10/D12 的分盘间飞星落宫
- `calc_all_dispositor_chains(planets_data)`:批量计算所有行星定位星链
- `calc_all_inter_chart_linkages(...)`:批量计算所有行星分盘间飞星
- `cmd_full_reading` 新增 Step 4.7:调用上述函数,输出 `modules.dispositor_chains``modules.inter_chart_linkage``modules.final_dispositors`
- `references/technique_registry.json` 新增 2 个技法注册:`dispositor_chain``inter_chart_linkage`,状态均为 `covered`
- `references/strict-workflow-router.md` 同步更新:3 个路由(`career-timing-strict``event-verification-strict``full-reading-strict`)的 `required_techniques` 新增 `dispositor_chain``inter_chart_linkage`Technique Audit Table 模板新增对应行
### 验证结果
- Python 语法检查通过
- `full-reading` 测试运行:`errors: []`,新增 3 个模块均输出正确
- Venus 定位星链:Venus→Jupiter→Mercury(循环),最终定位星 Mercury ✓
- Venus 分盘间飞星:D1 Pisces/8H、D9 Libra/4H、D10 Aquarius/3H ✓
---
## v6.0.11-shadbala-capability-downgrade2026-06-04)— Shadbala 能力标注降级
> **触发原因**:第九轮 Shadbala benchmark 证明当前实现内部一致,但源码仍包含多处简化公式,尚未完成 JHora/公开书例级别的外部绝对值校准,不应继续标记为完整 `covered`。
### 验证结果
- 新增 benchmark 脚本 `jyotish_benchmark/scripts/run_shadbala_invariants.py`
- 使用 10 个公开/虚构 smoke case 验证 `shadbala` 子命令与 `full-reading.modules.shadbala`
- 第九轮结果:1200/1200 内部不变量通过,0 mismatch。
- 通过项包括:结构完整性、六重力量组件范围、总分聚合、Virupa/Rupa 换算、Ishta Bala 百分比、排名、full-reading 一致性。
### 能力标注调整
- `references/technique-capability-matrix.md` 中 Shadbala`covered``partial`
- `references/technique_registry.json``shadbala.status``covered``partial`,并新增 limitation。
- `SKILL.md``README.md``references/quick-reference-guide.md` 降低措辞:Shadbala 可作为内部一致的相对强弱参考,但外部绝对值校准前必须加置信度上限。
### 当前限制
- `scripts/shadbala.py` 仍包含简化项:Nathonnata Bala 二值化、部分 Saptavargaja 子分盘近似、Chesta Bala 速度分档近似、Drik Bala 简化相位权重。
- 后续若接入 JHora/公开书例完整 Shadbala 表并通过对标,才可恢复 `covered`
---
## v6.0.10-true-transit-full-reading2026-06-03)— full-reading 真实 Transit 链路修复
> **触发原因**:可信度审计发现 `full-reading.modules.transit_multi_reference` 过去复用本命行星位置来做多参考点 Transit 分析,容易把 natal positions 误当 transit positions,影响未来应期判断。
### 修复内容
- `scripts/jyotish_engine.py` 新增 `_calc_sidereal_planets_for_jd()` 与节点口径 helper,统一用 Swiss Ephemeris 计算指定 Julian Day 的真实过境行星位置。
- `full-reading` 新增 `--transit-date YYYY-MM-DD` 参数;若未提供,则跟随 `--today`,再否则使用当前日期。
- `full-reading.modules.transit_positions` 新增真实过境输出:`data_layer: true_transit_positions``target_date``node_mode``planets`
- `full-reading.modules.transit_multi_reference` 改为读取真实 `transit_positions.planets`,并输出 `data_layer: true_transit_positions`,不再静默复用本命行星位置。
- `transit` 子命令补充 `--node-mode mean|true`,与出生盘节点口径冻结保持一致。
### 验证
- 新增 benchmark 脚本 `jyotish_benchmark/scripts/run_transit_true_compare.py`,使用10个公开/虚构 smoke case 对比 full-reading Transit 输出与 Swiss Ephemeris direct。
- 第八轮结果:340/340 字段匹配,0 mismatch;报告 `jyotish_benchmark/outputs/jyotish_benchmark_round8_transit_true_compare.md`
---
## v6.0.9-chara-dasha-capability-downgrade2026-06-03)— Chara Dasha 能力标注降级
> **触发原因**:第七轮 Chara Dasha benchmark 对齐 PyJHora KN Rao method 后,发现当前 `calc_chara_dasha()` 与传统 KN Rao 路径差异巨大,不应继续标记为 `covered` 的强计算模块。
### 修正内容
- `references/technique-capability-matrix.md` 将 Chara Dasha / Jaimini 从 `covered` 降级为 `partial`
- `references/technique_registry.json``jaimini_chara_dasha.status` 改为 `partial`,并新增 benchmark limitation。
- `SKILL.md``references/quick-reference-guide.md` 降低 `jaimini` 子命令措辞:Karaka/Karakamsha 可用,Chara Dasha timing 当前为 partial。
- 第七轮 benchmark 结论冻结:sequence sign 50/12041.67%),duration 8/1206.67%),总体 58/24024.17%)。
### 使用约束
- Chara Karaka、AK/AmK、Karakamsha 仍可用于静态象征层和职业/灵魂方向判断。
- Chara Dasha 时间线不得单独作为高置信度应期依据;必须由 Vimshottari、Dasha Sandhi、Transit、D10/A10、Ashtakavarga 等独立层交叉确认。
- 若未来实装 KN Rao / PVN Rao / Iranganti method 并通过回归,才可恢复 `covered`
---
## v6.0.8-ashtakavarga-pvr-calibration2026-06-03)— Ashtakavarga 贡献表书例校准
> **触发原因**:第六轮 Ashtakavarga benchmark 发现当前 skill 与 PyJHora 的 BAV/SAV 输出存在系统性差异;进一步使用 PyJHora `pvr_tests.py` 中公开 PVR 书例 expected arrays 仲裁后,确认当前 Moon/Venus 的 7 个贡献表项需要校准。
### 修复内容
- `scripts/ashtakavarga.py` 升级到 v2.1,校准 Moon BAV 的 Moon/Mars/Jupiter/Lagna 贡献项,以及 Venus BAV 的 Mars/Mercury/Lagna 贡献项。
- 保持 Ashtakavarga 固定不变量:7行星 SAV=337,含 Lagna full SAV=386。
- `SKILL.md` 新增 Ashtakavarga 口径冻结规则:默认使用 BPHS/PVR 书例校准口径,benchmark 不一致时先比较贡献表项与总量不变量。
- 第六轮公开书例仲裁显示:校准前当前 skill 对 PVR 书例 BAV/SAV 匹配 181/216PyJHora 216/216;校准后应与 PyJHora/PVR 书例对齐。
---
## v6.0.7-node-mode-arbitration2026-06-03)— Rahu/Ketu 节点口径仲裁与参数冻结
> **触发原因**:可信度 benchmark 第四轮确认第三轮 PyJHora 中 Rahu/Ketu 的剩余差异主要来自 Mean Node / True Node 口径差异,而非 D9/D10 计算 bug。
### 修复内容
- `scripts/jyotish_engine.py` 的出生数据类子命令新增 `--node-mode mean|true` 参数,默认 `mean`,可选 `true` 用于对齐 PyJHora 默认口径。
- `compute_chart_data()` 输出 `birth_info.node_mode``node_mode_note`,把 Rahu/Ketu 节点模式纳入参数冻结证据。
- `SKILL.md` 新增“Rahu/Ketu 节点口径冻结”强制规则,要求 benchmark 与解盘输出显式声明 Mean/True Node。
- 第四轮报告确认:当前 skill vs Swiss Mean Node 80/80 匹配;vs Swiss True Node 与 PyJHora 默认均为 54/80,差异模式完全一致。
---
## v6.0.6-d10-benchmark-fix2026-06-03)— PyJHora benchmark 暴露的 D10 口径修复
> **触发原因**:可信度 benchmark 第三轮接入 PyJHora 后,D10 出现系统性错配;交叉查证 D10 规则为“奇数星座从本宫起算,偶数星座从第九宫起算(含本宫计数)”。
### 修复内容
- 修正 `scripts/varga.py` 中 D10 偶数星座起算偏移:第九宫含本宫计数,代码应使用 `+8` 而非 `+9`
- 修正非 D9 分盘 `degree_in_sign` 输出:从原先的“分段内余度 0-part_size”改为标准“分盘星座内度数 0-30°”。
- 保持 D9 harmonic 输出口径不变,避免破坏既有 JHora-style Navamsa 结果。
---
## v6.0.5-precision-benchmark-fix2026-06-03)— benchmark 暴露的黄经精度修复
> **触发原因**:可信度 benchmark 第二轮发现 Dasha 日期与 D10 边界样本存在小偏差,根因是 `full-reading` 在下游 Dasha/分盘模块复用已四舍五入到4位小数的行星黄经。
### 修复内容
- `compute_chart_data()` 为行星新增 `degree_raw``degree_in_sign_raw`,保留未四舍五入黄经。
- `full-reading` 的 Vimshottari Dasha、Varga、Jaimini 等下游汇总优先使用 raw 度数,展示字段继续保留四舍五入格式。
- 第二轮 benchmark 重跑后:Ascendant、D9、Dasha 100% 匹配;D10 仅保留 Rahu/Ketu 位于切分边界附近的 4 个 boundary-sensitive 字段,归因后可接受率 100%。
---
## v6.0.4-privacy-sanitized2026-06-03)— 移除个人化资料 + 隐私隔离规则
> **触发原因**:用户明确要求“关于我个人的信息不可以暴露在印度占星skill里”。本版执行隐私清理:移除或匿名化 skill 中的真实个人星盘、出生资料、人生事件、项目背景、个案解读与回测痕迹,并新增隐私隔离规则。
### ① 移除个人化个案资料
- 移除完整个人星盘分析报告内容,改为隐私说明。
- 清理出生时间矫正模板和高级指南中的真实事件样例,改为虚构字段格式。
- 将个人化案例章节改为隐私保护占位或通用示例。
- 清理 README smoke test 中的真实出生数据示例。
### ② 新增隐私隔离规则
- `SKILL.md` 新增“用户隐私与个案资料隔离”规则。
- 真实用户资料只可在当前会话内用于分析,不得写入 `references/``assets/``tests/``CHANGELOG.md` 或公开仓库。
- 方法论沉淀必须抽象化,不得保留可识别个人轨迹的细节。
---
## v6.0.3-engineering-foundation2026-06-03)— 能力平台化第一阶段
> **触发原因**:用户要求从顶级软件工程师角度“智慧地下载使用全网帮助优化工作的开源项目”,快速把 skill 的效率和可靠性继续提高。调研 `jyotishyamitra`、`jyotisham/jyotisha`、`Yamale` 后,采用其工程启发:结构化 JSON 输出、计算层与解释层分离、注册表 schema 校验;但为避免新依赖,当前实现保持 Python stdlib。
### ① 新增机器可读能力注册表
- 新增 `references/technique_registry.json`:把技法、领域、状态、命令、输出路径、置信度影响、route required/optional 技法做成机器可读配置。
- 目的:以后判断 covered/partial/missing 不再靠 AI 印象,而由注册表驱动。
### ② 新增能力审计脚本与 CLI 子命令
- 新增 `scripts/audit_capabilities.py`:校验注册表字段、状态枚举、引用文件、route 指向,并可输出 route 审计表。
- `scripts/jyotish_engine.py` 新增 `audit-capabilities` 子命令:
- `audit-capabilities --mode validate`
- `audit-capabilities --mode table --route career_timing_strict`
### ③ 新增 golden cases 回归框架
- 新增 `tests/golden/golden_cases.json`:定义 full-reading 输出契约的 golden smoke case。
- 新增 `tests/run_golden_cases.py`:运行 full-reading 并断言关键输出路径存在,包括 A10、Vargottama、Pushkara、Dasha Sandhi、Shadbala、Ashtakavarga、validation。
### ④ 新增 GitHub Actions CI 门禁
- 新增 `.github/workflows/ci.yml`:自动运行依赖安装、Python 编译、registry 校验、单元测试、golden cases。
- 目的:防止后续修改导致技法输出路径消失、注册表腐化或核心测试退化。
---
## v6.0.2-capability-patch2026-06-03)— 技法覆盖审计 + 可低风险缺口补齐
> **触发原因**:用户质疑此前将 A10、Pushkara、Vargottama、Avastha、Sudarshana、Dasha Sandhi 等统称为“缺失”可能是审计遗漏。经地毯式搜索确认:部分技法已有知识/流程/App层覆盖,但未进入 CLI/full-reading 输出;因此本版把“缺失”改为分层判断,并补齐可低风险实现项。
### ① 审计结论修正
- Avastha:已有 `scripts/avastha_calculator.py`,且 `full-reading` 已集成,非缺失。
- VargottamaApp 层已有检测/渲染,本版补入 `full-reading` 输出。
- Pushkara:参考文档已有精确度数与 checklist,本版补入 `full-reading` 自动标记。
- A10/Karma PadaAL/UL 已有 `special_lagnas.py`,但 A10 未集成;本版新增任意宫 Arudha Pada 与 A10。
- Dasha Sandhi:此前只有缺口声明,本版新增基于 Dasha 边界的 sandhi window 输出。
- Bhava Chalit:有 house cusp/KP cusp 资料,但仍无完整 Chalit Chart 重算,继续标记 partial。
- Sudarshana Chakra:有 D1×D9×D10 三角验证思想,但无传统 Sudarshana 模块,继续标记 partial。
### ② 代码补丁
| 文件 | 变更 |
|---|---|
| `scripts/special_lagnas.py` | 新增 `calculate_arudha_pada()``calculate_a10()`CLI 新增 `--tenth-lord` |
| `scripts/jyotish_engine.py` | `full-reading` 新增 A10、Vargottama、Pushkara、Dasha Sandhi 输出;新增 `--today` 作为 Dasha/Sandhi 参考日期 |
| `SKILL.md` | 版本统一为 v6.0.2,并修正“缺口声明”表述 |
---
## v6.0.1-orchestration2026-06-03)— Strict Workflow Router + Technique Audit 防遗漏编排
> **触发原因**:实际解读中发现 skill 已覆盖大量高级技法(Jaimini、Chara Dasha、Karakamsha、Argala、Shadbala、Ashtakavarga、Yogini、Avastha 等),但 AI 未必会自动调用。用户必须懂技法名才能逼迫调用,导致 D10、Jaimini、A10、Bhava Chalit、Sudarshana、Dasha Sandhi 等关键层容易遗漏。
### ① 新增 Strict Workflow Router
新增 `references/strict-workflow-router.md`,作为问题类型驱动的强制路由文件。核心目标:
- 不让用户负责点名高级技法;
- 由 skill 根据问题类型自动选择 mandatory checklist
- 每次输出必须暴露已调用/未调用/covered/complete/partial/unavailable 模块;
- 防止只看 D1、只看 Dasha、只看单一 Transit 的偷懒式解读。
### ② 新增六类 strict route
| Route | 触发场景 | 强制深度 |
|---|---|---|
| `career-timing-strict` | 事业机会、职业方向、项目落地、公开身份 | Level 3 |
| `relationship-timing-strict` | 婚恋、婚姻、伴侣、复合、关系结果 | Level 3 |
| `wealth-timing-strict` | 财运、收入、到账、资产、收益 | Level 2/3 |
| `event-timing-strict` | 具体事件是否发生、应期、项目审批 | Level 3 |
| `event-verification-strict` | 历史事件回测、技法可靠性验证 | Level 3 |
| `full-reading-strict` | 综合命盘解读 | Level 2 |
### ③ 强制 Technique Audit Table
每次 Level 2+ 解读末尾必须输出技法审计表,标注:`called` / `partial` / `unavailable` / `not called`,并说明未调用项对结论置信度的影响。
### ④ 显式缺口声明
A10/10th Arudha、完整 Bhava Chalit、Pushkara 自动化、Sudarshana Chakra、Dasha Sandhi 等若无法计算,不得静默省略,必须声明缺失原因和影响。
### ⑤ 修改文件
| 文件 | 变更 |
|---|---|
| `SKILL.md` | 增加严格路由入口、阶段负一、阶段八 Technique Audit、预测清单缺口声明 |
| `references/strict-workflow-router.md` | 新增问题类型路由、mandatory checklist、审计模板、缺口声明规则 |
| `references/quick-reference-guide.md` | 专项分析强制接入 strict route |
| `references/ai-reading-workflow-prompt.md` | 阶段二新增 Strict Workflow Router |
---
## v4.3.02026-05-03)— Dasha 浮点边界修复 + App UI 全面优化
> **触发原因**:多案例交叉验证中发现 Barack Obama 案例 Dasha 0/9 匹配,定位到浮点边界 bug。
### ① Dasha 浮点边界 bug 修复
**问题**:当 Moon 恰好在 Nakshatra 分界线上(如 Taurus 10.0° = Krittika/Rohini 边界),`moonLon % nakSpan` 由于浮点精度返回接近 nakSpan 的值(而非 0),导致 progress ≈ 1.0,将整个 Mahadasha 偏移一个完整周期。
**修复**:在 `computeDasha``computeDashaWithPratyantar` 中添加 `if(prog > 0.9999) prog = 0`
**验证**Barack Obama 修复前 0/9 → 修复后 9/9 匹配。4 案例汇总:Einstein 8/9, Jobs 8/9, Diana 8/9, Obama 9/9。
### ② App UI/UX 全面优化(jyotish-app v4.3.0
- **暗色模式**:完整支持 `@media(prefers-color-scheme:dark)` + `[data-theme=dark]` + 手动切换按钮,星盘 SVG 颜色同步适配
- **CSS 变量修复**6 处 `--text-primary`/`--card-bg`/`--border-color` 未定义变量 → 替换为正确的 `--text-heading`/`--bg-card`/`--border-card`
- **CSS 括号错误修复**:行 1741 游离的 `.rect-banner-btn` 规则和多余的 `}` 导致后续规则可能失效
- **北印度盘中心摘要**:新增与南印度盘一致的 Lagna + 月亮星宿 + Dasha + AK/DK 中心信息区
- **i18n 遗漏修复**Karaka 标签、Transit 表头 8 列、Panchanga 标签、行星名称列 → 全部走 i18n 系统
- **死代码清理**:删除未调用的 `renderYogas()` 旧版函数(28 行)
- **Toast 通知**4 处 `alert()` 替换为非阻塞式 Toast 组件(error/warning/success 三种样式)
- **主题切换按钮**:输入页和结果页各一个 🌙/☀️ 切换按钮,状态持久化到 localStorage
### 修改文件清单
| 文件 | 变更 |
|------|------|
| `jyotish-app/style.css` | 暗色模式变量 + Toast 样式 + 主题按钮样式 + 修复未定义变量/括号错误 |
| `jyotish-app/main.js` | Toast 系统 + 主题切换 + alert→toast + 删除死代码 + Transit 表头 i18n |
| `jyotish-app/chart-renderer.js` | 动态主题获取 + 北印盘中心摘要 + `THEME``_th` 动态切换 |
| `jyotish-app/renderers.js` | Karaka 标签 i18n + 行星名称国际化 + Panchanga 标签 i18n |
| `jyotish-app/index.html` | 主题切换按钮(输入页 + 结果页) |
| `SKILL.md` | 版本 4.2.0 → 4.3.0 |
| `CHANGELOG.md` | 新增 v4.3.0 记录 |
---
## v4.2.02026-04-27)— 强制外部验证门控(MEVG)
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### ① 新增 MEVG 强制外部验证门控协议
**问题**:AI 的训练数据中包含大量印度占星知识,但存在流派偏差、断章取义、缺乏具体性、文化偏见等问题。每次分析都仅凭记忆输出,不搜索外部权威来源验证。
**解决方案**:新增 `mandatory-verification-gate-protocol.md`(完整协议),核心措施:
- **三步验证法(V1→V2→V3**
- V1 构建查询:为每个主要解读点生成英文检索词
- V2 执行检索:web_search 搜索权威来源(L2≥4次≥3来源,L3≥8次≥5来源)
- V3 交叉验证:对比来源一致性,仲裁分歧
- **权威来源优先级**:经典文本 > 知名占星师 > 专业网站 > 综合博客
- **强制输出格式**:每个分析章节末尾附验证状态表
- **门控通过/失败标准**:≥80% 主要声明有≥2来源→通过;未通过→降级置信度
### ② 工作流新增 3 个门控步骤
**SKILL.md 阶段描述更新**
- 在强制工作流列表下方新增 v4.2.0 强制门控说明框
**ai-reading-workflow-prompt.md 升级至 v5.0.0**
- 新增核心原则 #7"不凭记忆"(与"不跳步"同级)
- 新增 Step 3.11 MEVG-静态门控(验证所有静态解读声明)
- 新增 Step 4.10 MEVG-动态门控(验证所有 Transit/Dasha 解读)
- 新增 Step 5.5 MEVG-预测门控(100% 预测必须通过 5 项检查)
- 更新一页纸流程图(标注 3 个 MEVG 门控位置)
### ③ 预测清单新增 3 条 MEVG 强制项
- MEVG-静态门控(Step 3.11
- MEVG-动态门控(Step 4.10
- MEVG-预测门控(Step 5.5
### ④ 执行纪律
- ❌ 解读章节缺少验证状态表 → 判定为未完成
- ❌ 主要声明无来源引用 → 判定为无效声明
- ❌ 整个分析无 web_search → 判定为严重违反流程
- ✅ 唯一豁免:纯数值计算
### 修改文件清单
| 文件 | 变更 |
|------|------|
| `references/mandatory-verification-gate-protocol.md` | ⭐ 新建 |
| `SKILL.md` | 版本 4.0.0→4.2.0 + 新增 MEVG 章节 + 更新预测清单 + 更新参考资料列表 |
| `references/ai-reading-workflow-prompt.md` | 版本 4.0.0→5.0.0 + 新增核心原则 + 3 个门控步骤 + 更新流程图 |
| `CHANGELOG.md` | 新增 v4.2.0 记录 |
---
## v4.1.02026-04-27)— Transit Actionable Output 强制升级
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### ① Transit Actionable Output 强制规范
**问题**:Transit分析后AI只输出星盘数据(如"Jupiter入Cancer"),用户不知道该做什么。
**解决方案**:新增 `Transit Actionable Output 规范`(插入位置:SKILL.md「⚠️ 过境分析强制规范」之前),强制要求:
- 每条Transit预测输出三要素:**时间段**(精确到日/周/月)+ **具体行动类型**(发布内容/跟进联系人/保持在线/推进谈判)+ **置信度**[A]=已验证/[B]=高概率/[C]=推断)
- 行动基础:必须有真实案例参照,禁止纯理论推断
**案例检索强制触发词**
- "被发现"、"被赏识"、"被贵人"、"什么时候"、"应期"、"时机"
- "合作"、"破圈"、"突破"、"升职"、"移民"、"搬迁"
### ② Phase5 应期输出强制嵌入案例检索
**问题**:应期预测直接给时间窗口,没有真实案例作为参照,预测质量无法验证。
**解决方案**:阶段五从"五层验证法→精确时间窗口"升级为"五层验证法→精确时间窗口→**Actionable Output行动模块→案例检索**"
- 动态预测(被发现/合作/应期/事件型)必须执行三步:
1. 检索同类行星配置真实案例(`celebrity --config ...``web_search`
2. 对比D10/D9信号一致性
3. 整合输出带案例参照的结论
### ③ 预测清单新增2条强制项
- **Transit Actionable Output**:每条Transit预测必须输出时间段+行动类型+置信度+未验证声明;动态预测必须先检索案例再给结论
- **案例检索**:动态预测强制三步法;禁用未经案例支撑的理论推断
### ④ 阶段四/五版本标注
- 阶段四:`⭐ v4.1.0 Transit行动规范强制执行`
- 阶段五:`⭐ v4.1.0 升级`
### 踩坑经验记录(v4.1.0
> 当用户追问"具体细节"时,说明Skill输出停留在"数据陈述"层——这是系统性问题,需要在SKILL.md的Phase规范中强制嵌入Actionable Output模块,而非在单次对话中修复。
---
## v4.0.02026-04-27)— 质量保障四大升级
> **核心升级**:从"功能堆叠"转向"质量治理"——解决DK摇摆、来源不透明、精度不一致、预测无标注四大痛点
### ① Karaka系统自动识别(Step 0.5 强制检测)
**问题**:DK身份在不同Karaka系统(7星/8星/Sanjay Rath 8星)之间反复摇摆,导致配偶画像不一致。
**解决方案**:在 `ai-reading-workflow-prompt.md` 的入口路由后、阶段二之前,新增**Step 0.5 Karaka系统自动识别**(🔴🔴🔴三级必读区):
- 三大主流Karaka系统对照表(K.N. Rao 7星/JH 8-Karaka/Sanjay Rath 8星)
- 自动识别规则表(PDF含PiK → JH制/PDF有8无PiK → Sanjay Rath/引擎计算 → 7星默认)
- 常见陷阱与纠正(JH的DK是第7低而非第1低、Sanjay Rath排除Mars作为DK候选)
- 强制输出格式:每份报告开头必须声明Karaka系统+DK+数据来源
### ② 来源标签三级体系(96个references文件全部标注)
**问题**:古典铁律、现代大师教学、Skill原创演绎混在一起,用户无法区分来源可靠性。
**解决方案**:定义六级来源标签体系,批量更新所有references文件:
| 标签 | 含义 | 数量 |
|------|------|------|
| 【古典·千年传承】 | BPHS/Jaimini Sutras/经典注释 | 7 |
| 【传统·现代大师】 | B.V. Raman/K.N. Rao/Sanjay Rath/Marc Boney | 8 |
| 【现代演绎·Skill整合】 | Skill原创/统计归纳/AI工程化 | 20 |
| 【混合·古典+传统+现代】 | 多源混合内容 | 32 |
| 【工具/模板】 | 工作流/模板/桥接文件 | 13 |
| 【案例库】 | 纯案例数据文件 | 12 |
标签格式:`> **来源标签**: 【类别】 — 简述`,插入在每个文件头部的`---`分隔符之前。
同时将已有的6个旧格式标签统一为新标准(badhaka/marc-boney/raman/shasti-hayani/vp-goel/ai-reading-workflow)。
### ③ 统一精度边界声明表
**问题**:不同文件中的精度声明不一致(有的±2天,有的±2-3小时,SSD又承认±6-12小时)。
**解决方案**:在 `ai-reading-workflow-prompt.md` §5.1 新增统一精度边界声明表:
| Dasha层级 | 精度范围 | 强制附注 |
|-----------|---------|---------|
| Maha Dasha (MD) | ±1-3个月 | 大方向趋势 |
| Antar Dasha (AD) | ±2-4周 | 年度能量走向 |
| Pratyantar (PD) | ±2-3天 | 月度活跃区间 |
| Sookshma (SD) | ±1-2天 | 周度参考 |
| Prana SSD | ±6-12小时 | ⚠️非精确时刻,仅供参考 |
所有含时间预测的输出末尾必须附加"精度与诚实声明"段。
### ④ 预测强制[A/B/C]置信度+验证状态标注
**问题**:预测结论缺乏置信度标记和验证状态声明,用户无法判断可靠性。
**解决方案**:在 `ai-reading-workflow-prompt.md` §5.0 新增两维度强制标注:
**置信度三级分类**(引用precision-reading-methodology.md §五):
- ✅ [A] 已验证(倒推匹配度≥60%)
- ⭐ [B] 强推断(3+独立维度一致,未经验证)
- ⚡ [C] 假设(单一维度,缺多系统支撑)
**验证状态三档声明**
- [已验证·N/N事件吻合] — 可给相对精确窗口
- [未经验证] — 必须降置信度至少一级,禁用[A]
- [校准异常·需重新评估] — 停止预测
每条预测结论必须包含:结论+置信度+验证状态+依据+精度边界+矛盾说明。
### ⑤ Mangal Dosha两派观点注释
`raman-house-judgment-methodology.md` §3.3 补充学派争议注释:
- 传统派(Raman):Yogakaraka Mars → Dosha**减轻**
- 另一派:Yogakaraka Mars → Dosha**完全豁免**
- Skill默认采用Raman"减轻"说,同时标注"完全豁免"观点
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### 文件变更清单
| 文件 | 变更类型 |
|------|---------|
| `ai-reading-workflow-prompt.md` | v3.0→v4.0 重大更新:+Step 0.5 Karaka识别、+§5.0置信度/验证状态标注、+§5.1精度边界表、更新§5.3输出模板 |
| `raman-house-judgment-methodology.md` | +Mangal Dosha两派观点注释(§3.3 |
| `SKILL.md` | v3.13.1→v4.0.0+新触发词(Karaka识别/DK身份/8-Karaka/来源标签/精度边界/SSD误差/未经验证标注) |
| 96个references文件 | 批量添加来源标签(+6个旧标签格式统一) |
| `dasha-transit-method.md` | +来源标签 |
| `multi-dasha-convergence-protocol.md` | +来源标签 |
### 版本跃迁说明
v3.x系列是"功能堆叠"阶段(从v3.7到v3.13,每次增加新模块/新文件)。v4.0.0标志着进入"质量治理"阶段——不再追求更多功能,而是确保已有功能的可靠性和透明度。这一转变的触发点是Kimi给出的优化方案审计,虽然其62%的问题诊断准确率不够理想,但确实暴露了四个真实痛点。
---
## v3.13.12026-04-26)— 用户体验优化 + qin_ruisheng条目补描述 + 速查指南
### qin_ruisheng_system.md 条目补描述
该文件自v3.3已存在于references/目录(754行),但SKILL.md参考列表中仅有"秦瑞生占星体系(华人占星师方法论)"一句话描述,与其他文件的描述质量严重不对齐。
v3.13.1将其扩展为完整内容摘要(恒星黄道vs回归黄道+27星宿+12宫+Kendra-Trikona+9星曜+5类Yoga+Vimshottari四层+四维一体预测+Gochara+8快速判断+12种Kaal Sarpa+金句12条),并更新section计数(4个→5个)。
### 实用速查指南新增
**`references/quick-reference-guide.md`** ⭐ v3.13.1 新增【实用入口·推荐优先阅读】
**用途**:用户提出问题时,快速定位到正确的分析路径和所需文件,不再迷失在96+个参考文件中。
**内容结构**10大场景+引擎命令速查表):
| 场景 | 触发条件 |
|------|---------|
| 场景一:全面解盘 | "帮我看盘" / "分析我的星盘" |
| 场景二:婚姻应期 | "什么时候结婚" / "感情应期" |
| 场景三:单项分析 | "事业" / "财运" / "学业" |
| 场景四:PDF星盘 | 用户上传PDF文件 |
| 场景五:无出生时间 | "没有出生时间" / "只有年月日" |
| 场景六:Prashna问事 | 单个具体问题(无出生数据) |
| 场景七:名人查询 | "查一下XXX的星盘" |
| 场景八:Double Transit | 特定行星过境查询 |
| 场景九:深度分析 | 高精度综合分析 |
| 场景十:质量控制 | 所有分析完成后必做 |
每个场景包含:执行顺序 + 所需参考文件 + 引擎命令模板。
### 引擎版本对齐
`scripts/jyotish_engine.py` 头注释版本:v3.7.0 → **v3.7.1**(与SKILL.md记录一致)
### SKILL.md变更
- 版本:v3.13.0 → **v3.13.1**
- 参考文件数:96 → **97**(新增quick-reference-guide.md
- §1 AI解盘工作流:1个 → **2个**(新增速查指南)
- §16 高级技法与全球方法论:4个 → **5个**qin_ruisheng_system.md条目扩充)
- qin_ruisheng_system.md #74:从一句话描述扩展为754行完整内容摘要
---
## v3.13.02026-04-26)— 文件注册清理 + 单事件问事协议 + 婚姻四技法验证体系
### 核心工作:系统性审计与注册补全
通过全面审计发现3个文件存在于references/目录但未注册到SKILL.md参考列表,通过交叉验证确认均有效后完成注册。
### 新增注册文件(3个)
**`references/single-event-inquiry-protocol.md`** ⭐ Prashna问事·单问题快判
- **用途**:当用户提出单个具体问题(不提供出生数据)时,按十步断卦模板执行Prashna分析
- **核心内容**:输入信息收集表(5字段)+ 阶段一铸造星盘 + 阶段二十步AI执行(征象星对比+Tajika Yoga检查+Sphuta组合+阻碍排查+时间判断)+ 阶段三综合结论格式 + 特殊场景协议(失物/健康/是非判断KP补充)
- **引擎集成**`python3 scripts/jyotish_engine.py prashna --mode chart` 铸造即时星盘
**`references/marriage-timing-validation-methodology.md`** ⭐ 婚姻应期·技法验证
- **用途**:为婚姻/感情应期分析提供四技法交叉验证框架,基于10案例统计校准置信度
- **核心内容**
- 四技法交叉验证:Double Transit + DK木星激活 + UL激活 + Dasha支持
- 7星系统统计:DK命中率90%Dasha支持70%UL激活40%DT 20%
- 8星系统统计:DK命中率100%UL激活60%DT 40%
- **关键修正1**DK Jaimini激活100%命中率存在虚命中(11/12星座被相位)→ 应作必要条件而非充分条件
- **关键修正2**:出生时间必须转世界时(UT),否则Moon偏移6-8°
- **关键修正3**Double Transit应检验7宫/7主/功能DT/UL/DK多个目标组合
- **关键修正4**:7星/8星双轨并行,不排他——80%案例两系统给出不同DK
- **来源**:10个名人案例验证(奥巴马/克林顿/盖茨/特朗普/朱莉/贝克汉姆/乔丹/梅根/马斯克/凯特王妃)
**`references/marriage-timing-comprehensive-techniques.md`**(补注册)⭐ 婚姻应期·综合技法
- **此前状态**:文件自v3.7.3已存在于references/目录,但SKILL.md参考列表从未注册
- **内容确认**KN Rao Double Transit精确规则 + VP Goel功能征象星 + Jaimini DK木星过境激活法 + Upapada Lagna完整体系 + Ketu期感情特征 + 木星入庙Cancer 2026影响
### SKILL.md §14 Prashna体系升级
在Prashna问事占星区域新增两个能力区块:
1. **⭐ 单事件问事协议**:当用户提出单个具体问题(无出生数据)时,使用 `single-event-inquiry-protocol.md` 执行标准化十步断卦流程
2. **⭐ 婚姻应期技法交叉验证体系**:当分析婚姻/感情应期时,使用 `marriage-timing-validation-methodology.md` 执行四技法交叉验证,配合 `marriage-timing-comprehensive-techniques.md` 的KP/Rao/Dasha三层确认
### SKILL.md 参考列表编号修正
| 操作 | 文件 | 旧编号 | 新编号 |
|------|------|--------|--------|
| 新增注册 | single-event-inquiry-protocol.md | — | #83 |
| 新增注册 | marriage-timing-validation-methodology.md | — | #84 |
| 补注册 | marriage-timing-comprehensive-techniques.md | — | #85 |
| 顺延修正 | bhrigu-chakra-paddhati.md | #83 | #86 |
| 顺延修正 | high-status-spouse-yoga.md | #84 | #87 |
| 顺延修正 | darakaraka-complete-guide.md | #85 | #88 |
| 顺延修正 | yogi-avayogi-system.md | #86 | #89 |
| 顺延修正 | tithi-lord-relationship-system.md | #87 | #90 |
| 顺延修正 | rashi-tulya-navamsa-root-impulse.md | #88 | #91 |
| 顺延修正 | bhrigu-pada-dasha-marriage-counting.md | #89 | #92 |
| 顺延修正 | pancha-pakshi-nakshatra-systems.md | #90 | #93 |
| 顺延修正 | badhaka-obstacle-planet-guide.md | #91 | #94 |
| 顺延修正 | raman-house-judgment-methodology.md | #92 | #95 |
| 顺延修正 | shasti-hayani-dasha-guide.md | #93 | #93(不变) |
| 总计 | — | 96个 | **99个** |
> 注:原#93 shasti-hayani-dasha-guide.md在BCP章节,与Prashna/婚姻章节的三个新增文件不在同一section,因此编号不变。总文件数=96+3=99。
### CHANGELOG编号对齐说明
CHANGELOG中"v3.8.0新增案例库(13个)→编号58-70"的记录基于v3.8.0的编号体系。v3.10.0引入高地位配偶Yoga等5个新文件后,案例库文件被顺延重编号至#63-70。v3.13.0又引入3个新文件,总编号体系已完全对齐,SKILL.md正文编号为规范引用。
### 触发词优化
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### SKILL.md变更
- 版本:v3.12.1 → **v3.13.0**
- 参考文件数:96 → **99**(新增3个)
- §14 Prashna区域新增:单事件问事协议能力描述 + 婚姻四技法验证体系描述
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- 参考列表:83→99重新编号完毕
---
## v3.12.12026-04-26)— 精准解盘方法论集成
### 新增内容
**新增参考文件**references/目录):
- **precision-reading-methodology.md** ⭐⭐⭐⭐⭐(#96
**核心内容**
基于6位顶级占星师的实践共识,整合出系统化的精准解盘方法论:
1. **六大共识原则**
- 功能吉凶因盘而异(V.K. Choudhry Systems' Approach
- 单一技法不做结论(Marc Boney / K.N. Rao
- 规则前提先查(Marc Boney
- 案例验证 > 经典引述(K.N. Rao
- 先整体后细节(Hart de Fouw / Rao PACDARES
- 先验证过去,再预测未来(Rao核心方法论)
2. **PACDARES本命盘分析框架**K.N. Rao):
- Position → Aspect → Conjunction → Dhana → Arishta → Raja → Exchange → Special Features
- 8维度系统化分析,作为所有解读的地基
3. **九层复合方法**L1-L9):
- L1 PACDARES → L2 分盘 → **L3 矛盾检查** → L4 Vimshottari → L5 AV+Transit → L6 条件Dasha → L7 Jaimini → L8 其他Jaimini → L9 Tajika
- **做到L6,平均85%预测成功率**(Rao原话)
4. **L3矛盾检查协议**
- 四类矛盾:D1 vs D9、吉Yoga vs 凶相位、DK vs 7宫主、静态 vs 推运
- 矛盾不回避,记录→解释→降低置信度→如实告知用户
5. **验证驱动分析流程**
- 倒推验证协议(4步):收集已知事件→Dasha映射→评估匹配度→校准偏差
- 匹配度<60%必须停止预测,先解决校准问题
6. **三级置信度系统**
- ✅ [A] 已验证(倒推命中)/ ⭐ [B] 强推断(3+独立维度)/ ⚡ [C] 假设(单一维度)
7. **10条常见教条失误及纠正**
8. **经典文献审慎使用**Shyamasundara Dasa BPHS考证):
- BPHS非原始文本,包含19-20世纪插入
- 推荐文献优先级:Brihat Jataka > Saravali > Phaladipika > BPHS核心 > Jaimini Sutras
9. **实战五步法**PACDARES → 分盘+矛盾 → 倒推验证 → 推运L4-L9 → 输出
### SKILL.md 变更
- 版本:v3.12.0 → v3.12.1
- 参考文件数:95 → 96
- 新增触发词:精准解盘、验证驱动、PACDARES、倒推验证、复合方法、教条纠错、案例验证、置信度分级、矛盾检查、先验后推
- 新增"精准解盘方法论"section(核心方法论区域)
- 元能力新增:精准解盘方法论
### 信息来源
- K.N. Rao访谈(Journal of Astrology 2010年7/8月刊)
- V.K. ChoudhrySystems' Approach to Interpreting Horoscopes
- Shyamasundara Dasa"On the Authenticity of the BPHS"
- Marc BoneyCase Studies in Vedic Astrology
- Hart de Fouw & Robert SvobodaLight on Life
- Sanjay RathBṛhaspati Jyotiṣa课程体系
- Dr. A.K. Tripathi"True Astro Secrets"
---
## v3.12.02026-04-25)— 10本PDF书籍知识集成 + Kimi审计报告验证
### 知识来源
基于10本经典印度占星PDF书籍的深度提取与集成:
1. *Ancient Hindu Astrology For Modern Western Astrologer* — James Braha187页,可提取)
2. *How to Judge a Horoscope Vol 1* (Houses I-VI) — B.V. Raman310页,可提取)
3. *How to Judge a Horoscope Vol 2* (Houses VII-XII) — B.V. Raman482页,可提取)
4. *Learn Successful Predictive Techniques of Hindu Astrology* — K.N. Rao159页,可提取)
5. *Light on Life: An Introduction to the Astrology of India* — Hart de Fouw & Robert Svoboda461页,可提取)
6. *Predict Effectively through Yogini Dasha* — V.P. Goel(63页,⚠️ 扫描件,无法提取文字)
7. *Predicting through Jaimini Astrology* — V.P. Goel232页,可提取)
8. *Predicting through Jaimini's Chara Dasha* — K.N. Rao135页,可提取)
9. *Predicting Through Shasti Hayani Dasha* — V.P. Goel(92页,⚠️ 扫描件,无法提取文字)
10. *Predicting Major Life Events: A Composite Approach* — Marc Boney465页,可提取)
**PDF提取率**:8/10(2本为扫描件,通过在线源补充关键内容)
### Kimi审计报告验证
收到7项批评的Kimi审计报告,逐条与PDF书籍原文交叉验证:
| # | Kimi批评 | 验证结论 | 证据来源 |
|---|---------|---------|---------|
| 1 | "五系统混合有问题" | ❌ **无效** | Marc Boney全书 dedicate to K.N. Rao"Composite Approach"即跨系统整合;V.P. Goel p.5"combines the two systems"K.N. Rao 书中明确使用多系统 |
| 2 | "7/8星Karaka混乱" | ⚠️ **部分有效** | K.N. Rao明确支持7星("First time in thousands of years showing the use of seven Karakas");Skill双轨方案已正确 |
| 3 | "宫位系统冲突" | ❌ **无效** | 所有10本书统一使用Whole Sign(整宫制),Jyotish不存在Placidus/Koch |
| 4 | "现代创新未标注来源" | ⚠️ **部分有效** | 建议对非古典技法标注来源等级 |
| 5 | "Ayanamsa单点问题" | ⚠️ **低优先级** | 全部作者统一使用Lahiri |
| 6 | "缺少Badhaka等模块" | ✅ **有效** | → 已创建 badhaka-obstacle-planet-guide.md |
| 7 | "Ashtottari条件检查自动化" | ✅ **有效** | 引擎级别改进,待后续实现 |
### 新增参考文件(5个)
- **`references/badhaka-obstacle-planet-guide.md`**:Badhaka障碍星系统完整指南
- **12上升Badhaka Sthana+Badhakesh完整对照表**Movable→11宫,Fixed→9宫,Dual→7宫
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **五步分析协议**:确定Badhakesh→分析落宫/相位→检查Badhaka Sthana→评估关系→补救
- 来源:【古典·BPHS】
- **`references/raman-house-judgment-methodology.md`**B.V. Raman宫位判断方法论
- **12上升完整Benefic/Malefic/Yogakaraka表**B.V. Raman Vol 1 pp.16-18
- **六步宫位判断法**:宫主星→Karaka→落宫→相位→合相→综合评估
- **第七宫婚姻分析六维度**Vol 2 Ch.XI
- **Maraka死亡指示系统**:主Maraka=2宫主+7宫主,次级=Saturn"生命宫"=3+8宫
- **Mangal Dosha完整规则**
- 来源:【古典·B.V. Raman】
- **`references/shasti-hayani-dasha-guide.md`**Shasti Hayani条件Dasha指南
- **适用条件**:太阳在1宫(Nakshatra-based条件Dasha
- **60年周期**8行星固定顺序,Jupiter→Sun→Mars→Moon→Mercury→Venus→Saturn→Rahu,各10年
- **三级Antar结构**Antar→Pratyantar→Sookshma
- **与其他条件Dasha对比**Shodashottari/Dwisaptati Sama/Shastihayani
- 来源:V.P. Goel书籍(扫描件)+ AstroNidan在线源
- **`references/marc-boney-marriage-six-step.md`**Marc Boney婚姻六步法
- **六步法**Venus评估→三视角7宫→Navamsa确认→Vimshottari支持→Jaimini DK激活→Double Transit
- **核心创新**"三视角"7宫评估——从Lagna/Moon/Venus三个参考点看7宫
- **同居vs正式婚姻区分**:不同征象星组合指向不同关系类型
- **跨系统验证立场**Marc Boney整本书 dedicate to K.N. Rao,明确使用Parashari+Jaimini+Transit整合
- 来源:【现代创新·K.N. Rao学派】
- **`references/vp-goel-jaimini-dasha-systems.md`**V.P. Goel Jaimini Dasha系统概览
- **10种Jaimini Dasha系统概览**Chara/Mandook/Sthira/Narayan/Navamsha/NSD/Trikon/Atmanadi等
- **实现优先级**P0Chara已实现)→P1Mandook/Narayan/Navamsha)→P2Sthira/NSD)→P3Trikon/Atmanadi
- **Argala四分之一度阻碍规则**:BPHS原典,星座内4个四分之一度(0-7°30'/7°30'-15°/15°-22°30'/22°30'-30°)决定Virodha有效性
- **Jaimini星座相位规则**Movable↔FixedDual↔Dual
- 来源:【现代·V.P. Goel研究】
### 现有参考文件补充(未改文件内容,仅标注待升级)
- `argala-complete-guide.md`:发现缺少四分之一度阻碍规则(V.P. Goel p.30/BPHS),建议后续升级
- `jaimini-complete-system.md`:缺少K.N. Rao和V.P. Goel书籍引证,建议补充来源标注
- `condition-dasha-complete.md`:缺少Shasti Hayani Dasha条目,建议后续补充
- `marriage-timing-comprehensive-techniques.md`:缺少Marc Boney六步法交叉引用
### 综合审计报告
- **审计报告文件**`brain/372caffb.../10本PDF书籍知识审计报告.md`
- **10本PDF提取结果**:8本成功提取,2本扫描件(Yogini Dasha/Shasti Hayani Dasha by V.P. Goel
- **新知识发现**10项(Badhaka系统/Raman方法论/Shasti Hayani/Argala四分之一度/Marc Boney六步法/三视角/V.P. Goel 10种Dasha/Maraka系统/7星立场确认/跨系统验证)
- **现有文件冲突/错误**10项(缺Badhaka/缺Raman表/缺四分之一度/缺来源引证等)
### SKILL.md 更新
- 版本 v3.11.0 → **v3.12.0**
- 参考文件总数:90 → **95**(新增5个)
- 新增 §17-§21 五个能力描述(Badhaka/Raman/Shasti Hayani/Marc Boney/V.P. Goel
- §1 静态分析 新增 Badhaka+Raman 交叉引用
- §2 动态推运 新增 Shasti Hayani+V.P. Goel 交叉引用
- §3 关系占星 新增 Marc Boney 六步法交叉引用
- 触发词新增:Badhaka/障碍星/Badhakesh/宫位判断/Raman/Yogakaraka/每上升吉凶星/Shasti Hayani/60年周期/Marc Boney/婚姻六步法/三视角/V.P. Goel/10种Dasha/Mandook/Narayan/Maraka/死亡指示/生命宫/跨系统验证/多系统整合
---
## v3.11.02026-04-25)— 多元技法系统(5篇参考文件)
### 知识来源
基于4篇外部公众号文章(非用户原创)的学习与集成:
1. 「1印度占星」(~30,400字):Tithi Lord 30历日关系系统 + Yogi/Ava Yogi入门 + 婚姻计数法 + Arudha Lagna关系分析 + Sanyasi组合
2. 「2印度占星」(~17,700字):Pancha Pakshi五鸟择时术 + Navamsa根源冲动 + Yogi/Ava Yogi Dasha/Transit应用 + 宝石激活
3. 「3印度占星」(~28,800字):Rashi Tulya Navamsa + Yogi/Ava Yogi综合分析(四因子)+ Nakshatra三计数体系 + Savya/Apasavya
4. 「4印度占星」(~19,600字):Bhrigu Pada Dasha + Narayana Dasha D9变体
### 新增参考文件(5个)
- **`references/yogi-avayogi-system.md`**Yogi/Ava Yogi/Duplicate Yogi行星系统完整指南
- **计算方法**Yogi点(上升+93°20')→ Nakshatra主星 → 三行星指派
- **四大影响因子**:财富领域 / 灵性距离 / 社交圈类型 / 支持者类型
- **特殊判定**:上升与Yogi同Nakshatra=天生富裕业力;Dasha/Transit激活机制
- **宝石疗法**Yogi宝石→推荐;Ava Yogi宝石→严禁
- **Trump/查尔斯案例** + 与Tithi Lord/Dasha/Navamsa/Argala/AV整合
- **`references/tithi-lord-relationship-system.md`**Tithi Lord关系影响系统
- **30 Tithi分配表**8行星循环,Ketu排除)
- **8种关系模式**Sun=家庭支配型 / Moon=善变型 / Mars=热情独居矛盾型 / Mercury=青春智力型 / Jupiter=道德家庭型 / Venus=欲望美感型 / Saturn=延迟成熟型 / Rahu=非传统型
- **Sanjay Rath"水龙头"理论**Tithi Lord控制Jala(水元素)=情感流动模式
- **整合**Yogi交叉 / Dasha配合 / Navamsa配合 / Arudha Lagna内外分析
- **`references/rashi-tulya-navamsa-root-impulse.md`**Rashi Tulya Navamsa与根源冲动系统
- **Rashi Tulya Navamsa**D1位置投射到D9坐标系,保持星座位置不变
- **7行星根源冲动完整表**:太阳→自尊激励 / 月亮→快乐来源 / 火星→愤怒触发 / 水星→学习动机 / 木星→智慧方向 / 金星→欲望模式 / 土星→恐惧责任
- **经典组合**:金星在火星Navamsa=无法满足的性欲 / 金星在土星Navamsa=孤独/同性倾向
- **Navamsa分类规则**:火象→教育/孩子/名声;水象→不利健康/财富/名声
- **`references/bhrigu-pada-dasha-marriage-counting.md`**Bhrigu Pada Dasha与婚姻计数法
- **Bhrigu Pada Dasha**:行星推进法(Progression),不同于BCP固定周期,专用于婚姻时机
- **Narayana Dasha D9变体**:在D9上应用Narayana Dasha得到婚姻专用时间线
- **婚姻计数法**Sanjay Rath秘传):7宫主在D1的星座(A)→D9的星座(B),从A数到B=关系数量
- **Parivartana特殊处理**:行星交换需重新计算
- **"婚姻"定义**:持续一年以上的认真关系
- **`references/pancha-pakshi-nakshatra-systems.md`**Pancha Pakshi五鸟择时术+Nakshatra三体系+Savya/Apasavya
- **Pancha Pakshi**:泰米尔传统择时术(Sri K N Rao推荐),5种鸟×5时段×高/低振动频率
- **Nakshatra三计数体系**Ashwinādi(创造/Srishti/ Krittikādi(维持/SthitiVimshottari/ Ardrādi(毁灭/Samhāra
- **Savya/Apasavya**27 Nakshatra每3个一组交替顺行/逆行(Vishnu三步法则)
- **三系统协同**:日常择时/婚姻/创业/疾病场景的应用映射
### SKILL.md 更新
- 版本号:3.10.0 → 3.11.0frontmatter + 更新记录 + 底部版本三处同步)
- 参考文件计数:85 → 90
- 新增 §16 多元技法系统(5个子节:Yogi系统 / Tithi Lord / RTN根源冲动 / Bhrigu Pada Dasha / Pancha Pakshi
- 触发词扩展:Yogi / Ava Yogi / Tithi Lord / 根源冲动 / Rashi Tulya Navamsa / Bhrigu Pada Dasha / 婚姻计数 / Pancha Pakshi / 五鸟择时 / Nakshatra计数体系 / Savya/Apasavya 等
- 能力描述扩展:追加 Yogi/Ava Yogi行星系统 / Tithi Lord关系模式 / RTN根源冲动 / Bhrigu Pada Dasha婚姻推进法 / Pancha Pakshi五鸟择时术 / Nakshatra三计数体系 / Savya/Apasavya顺逆星宿
### 知识审计发现
- **P0 全新知识(7项)**Yogi/Ava Yogi行星系统、Pancha Pakshi五鸟择时术、Rashi Tulya Navamsa、Navamsa Root Impulse根源冲动、Bhrigu Pada Dasha、婚姻计数法、Nakshatra三计数体系
- **P1 需系统化(2项)**Tithi Lord关系影响、Savya/Apasavya星宿分组
- **P2 已覆盖(1项)**Sahams敏感点(v3.9.0 prashna-complete-guide.md 已覆盖)→ 无需新增
## v3.10.02026-04-25)— BCP自然周期法 + 高地位配偶规则 + DK深度画像扩展
### 知识来源
基于3篇外部公众号文章(非用户原创)的学习与集成:
1. Tajika占星术 + Bhrigu Chakra Paddhati (BCP) 自然周期法(~23,000字)
2. 印度占星Jaimini系统的Darakaraka理解和说明(~19,500字)
3. 高地位配偶与婚后命运积极转变的占星规则与组合(~4,400字)
### 新增参考文件(2个)
- **`references/bhrigu-chakra-paddhati.md`**(~260行):BCP自然周期法完整指南
- **9大自然周期**Moon(0-12)→Mercury(13-24)→Venus(25-36)→Sun(37-48)→Mars(49-60)→Jupiter(61-72)→Saturn(73-84)→Rahu(85-96)→Ketu(97-108)
- **双轨激活法**:A轨(从上升起算对应宫位)+ B轨(从周期统治星位置起算),双轨交汇=最强激活点
- **三要素解读法**:宫位→领域 + 宫主星→表现方式 + Karaka→天然征象,三者联动缩窄事件范围
- **快查表**:年龄→宫位映射、周期主题速查
- **与Dasha系统的关系**:BCP是自然周期(固定),Dasha是业力周期(因人而异),两者互补
- **`references/high-status-spouse-yoga.md`**(~180行):高地位配偶Yoga判定规则
- **3条核心规则**
1. 7宫+7宫主力量 > 上升+上升主力量(D1和D9双盘验证)
2. 7宫主在D9形成Rajyoga
3. 从7宫起算的Upachaya宫(3/6/10/11)在D1/D9有行星占据
- **关键区分**:宫位=环境/背景,宫主星=人的实际能力
- **Upachaya创新视角**:从7宫而非1宫起算Upachaya,男性凶星比吉星更有效(Rajas/Tamas原则)
- **Sonya Gandhi案例验证**D1 Cancer Lagna + D9 Aquarius Lagna
- **整合映射**:与 spouse-multi-layer-methodology.md 的6层分析衔接
### 扩展参考文件(1个)
- **`references/darakaraka-complete-guide.md`** v1.0 → **v1.1**332→~500行)
- **⭐ §七 8颗行星DK深度画像**Sun/Moon/Mars/Mercury/Jupiter/Venus/Saturn/Rahu,每颗5维度(性格特质/关系动态/生活方式/挑战与修行/特殊备注+吉凶相位)
- **⭐ §八 DK与财富的关系**:5种财富模式(配偶财富支持/共享财务目标/财富来源与增长/伴侣财务态度/逆行DK财富挑战)+ 12宫DK财富速查表
### 配置审计修复
- **SKILL.md版本不一致修复**frontmatter=3.9.0但body两处仍写3.8.0 → 统一为3.10.0
- **参考文件计数修复**:声明82个实际更多 → 更新为85个(82+2新增+1补注册)
- **darakaraka-complete-guide.md补注册**:该文件自v1.0起存在但从未注册到SKILL.md参考列表
### SKILL.md 更新
- 版本 v3.9.0 → **v3.10.0**
- 新增 §15 BCP自然周期法能力描述(9大周期+双轨激活+三要素解读)
- §3 关系占星 新增:高地位配偶Yoga判定 + darakaraka-complete-guide.md引用
- 参考文件总数:82 → **85**(新增bhrigu-chakra-paddhati.md #83 + high-status-spouse-yoga.md #84 + darakaraka-complete-guide.md #85补注册
- 触发词新增:BCP、Bhrigu Chakra Paddhati、自然周期、小限法、高地位配偶、Upachaya、DK画像、DK财富
- 版本不一致修复:更新记录行 + 底部版本号统一为v3.10.0
### 知识盲区修复
1. ❌ 不了解BCP系统 → ✅ 9大自然周期+双轨激活+三要素解读完整覆盖
2. ❌ 缺少高地位配偶判定规则 → ✅ 3条核心规则+D1/D9验证+Upachaya创新视角
3. ❌ DK分析停留在12宫位含义 → ✅ 8行星5维度深度画像+DK财富5种模式
4. ❌ darakaraka-complete-guide.md未注册 → ✅ 补注册并扩展至v1.1
### 未修复的已知问题
- `cmd_dasha()` 不使用 `_add_chart_args()`,需手动传 `--moon-lon`(已知设计问题,记录但未改动代码)
- `--birthdate` 仅日期精度,无时/分(full-reading 已有内部绕过,独立 dasha 命令暂未改)
- `--nakshatra` 模式使用近似进度(0.125步长)
---
## v3.9.02026-04-25)— Prashna问事占星完整系统
### 新增参考文件(1个)
- **`references/prashna-complete-guide.md`**:Prashna问事占星完整指南(十大核心计算:Arudha Lagna+Trisphuta/Catusphuta/Pancasphuta+Gulika+Prana/Deha/Mrityu Sphuta+35 Sahams+Kunda验证+Chor Graha失物+Mrityu Chakra死亡轮+十步断卦框架+8类问题专题)⭐⭐⭐⭐⭐
### 引擎集成
- 新增 `scripts/prashna.py` 计算引擎
- `jyotish_engine.py` 新增 `prashna` 子命令(支持 chart/arudha/sphutas/sahams/lost-item/life/kunda 模式)
- SKILL.md §14 Prashna 问事占星系统(十步断卦框架+十大核心计算模块+适用场景)
### SKILL.md 更新
- 版本 v3.8.0 → **v3.9.0**
- 参考文件总数:81 → **82**(新增 prashna-complete-guide.md
- 触发词新增:Prashna问事占星、问事占星、时卦、卜卦占星、问卜、Horary、问事、提问占星、Arudha Lagna、映像上升、Trisphuta、三重合点、Sphuta、Gulika、古利卡、Saham、敏感点、失物查询、寻物、Chor Graha、盗贼星、Kunda验证、Prasna Marga、十步断卦
---
## v3.8.02026-04-25)— 深度分析方法论体系:5篇实战经验总结
### 核心升级
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### 新增参考文件(5个)
- **`references/shadbala-interpretation-methodology.md`**:Shadbala六重力量实战解读方法论(约280行)
- **五力量组合模式库**:全面型/位置依赖型/关系依赖型/时间敏感型/运动受限型
- **Avastha联合诊断矩阵**:外强内壮/外强内伤/外弱内壮/外弱内伤四象限
- **Bhava Bala实战解读**:四维宫位力量矩阵(Shirshodaya/Dig/Drig/总Bala
- **Vimsopaka分盘综合评分**:四套权重体系解读阈值表
- **行星力量综合排名法**Shadbala→Avastha修正→Vimsopaka修正→Bhava Bala关联→最终排名
- **快速诊断口诀**
- **`references/multi-dasha-convergence-protocol.md`**:多Dasha收敛协议(约230行)
- **六系统交叉验证**Vimshottari+Ashtottari+Yogini+Moola+Narayana+Kalachakra
- **收敛等级量化**Level 0-4 概率提升(0%→85%
- **五步协议**:目标定义→逐系统提取→交叉对比→收敛量化→Transit确认
- **PDF数据源提取指南**:JH PDF页面映射+提取要点
- **收敛冲突处理**:三种冲突场景的处理方法
- **实战输出模板**:标准化表格格式
- **`references/navamsa-marriage-deep-analysis.md`**:Navamsa婚姻深度分析协议(约300行)
- **D9婚姻五维分析法**D9上升/DK位置/Venus/7宫/DK-Lagna合相
- **Vargottama婚姻意义**19分盘频率分析+婚姻应用
- **Pushkara Navamsa婚姻解读**:按元素分组的精确度数+婚姻分析应用
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **D9与D1矛盾处理**:核心原则"D9>D1在婚姻分析中"
- **`references/divisional-chart-deep-reading.md`**:分盘深度阅读工作流(约260行)
- **三级方法论**:Level 1关键分盘速查(5分钟)/Level 2领域专项(15分钟)/Level 3全19分盘(45分钟)
- **行星频率分析核心技法**:统计行星在19个分盘中的落座频率,≥40%=核心主题
- **Vargottama检测矩阵**D1-D9/多分盘/逆Vargottama/唯一Vargottama四种类型
- **分盘组合阅读模式**:三角验证/生命线追踪/财富链/关系链
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **`references/deep-analysis-complete-workflow.md`**:综合深度分析完整工作流(约330行)
- **12模块系统化方法**D1基础→特殊Lagna→Jaimini Karaka→Shadbala→Avastha→Bhava Bala→Vimsopaka→19分盘→AV→多Dasha收敛→Navamsa婚姻→综合结论
- **PDF 11页提取最佳实践**:完整页面映射+数据完整性门(P0/P1/P2)
- **引擎调用流程**full-reading+varga-full+shadbala+ashtakavarga
- **报告生成**12章结构+HTML输出
- **质量检查清单**:数据准确性+分析完整性+解读质量
### SKILL.md 更新
- 版本 v3.7.4 → **v3.8.0**
- 新增 §12.5 深度分析方法论能力描述
- 参考文件总数:76 → **81**(新增5个深度分析方法论文件)
- 触发词新增:深度解盘、全面分析、星盘深度阅读、频率分析、收敛验证、婚姻深层分析、配偶画像、综合深度分析
- 更新记录行更新至v3.8.0
### 方法论核心价值
这5篇文件的核心价值在于将"经验"转化为"可复用方法"
1. **Shadbala不再是数字游戏**——五力量组合模式让AI看到"行星的工作模式"而非仅看总分排名
2. **多Dasha收敛从3系统升级到6系统**——收敛概率从~65%提升到~85%+,且提供了PDF直接提取的路径
3. **Navamsa婚姻分析有了标准化8步旗标**——不再是"凭感觉判断D9好坏",而是绿/黄/旗量化评分
4. **行星频率分析是新技法**——统计行星在19个分盘中的落座频率,识别"核心主题"和"锚点行星"
5. **12模块工作流是"解盘SOP"**——从零散分析到系统化流程,每次解盘都有标准化的模块和检查清单
## v3.7.42026-04-25)— P0: Ayanamsa模式修复 + 度数精度修正
### 核心修复
- **P0 #4**`jyotish_engine.py`**从未设置Lahiri Ayanamsa模式**
- 根因:`import swisseph` 后没有调用 `swe.set_sid_mode(swe.SIDM_LAHIRI)`
- Swiss Ephemeris默认使用非Lahiri模式,导致所有恒星黄道度数偏差约**0.88°**
- 修复:在import后立即调用 `swe.set_sid_mode(swe.SIDM_LAHIRI)`
- 影响:所有行星度数、Karaka度数、Transit匹配精度、Pushkara判断等均受影响
- **Karaka排序不受影响**(排序顺序相同,但度数精度显著提升)
- 私有验证案例/用户反馈细节已移除(隐私保护)。
| 行星 | v3.7.3b(非Lahiri | v3.7.4Lahiri | PDF数据 | 偏差修正 |
|------|-------------------|-----------------|---------|---------|
| Mars | Cancer 0.43° | Cancer **1.32°** | 1°19'≈1.33° | +0.89° → ✅ |
| Sun | Aries 2.62° | Aries **3.51°** | 3°31'≈3.52° | +0.89° → ✅ |
| Jupiter | Virgo 12.94° | Virgo **13.82°** | — | +0.88° |
| Venus | Pisces 9.66° | Pisces **10.54°** | — | +0.88° |
| Moon | Aquarius 10.89° | Aquarius **11.78°** | — | +0.89° |
| Mercury | Pisces 7.65° | Pisces **8.53°** | — | +0.88° |
| Saturn | Aquarius 3.40° | Aquarius **4.29°** | — | +0.89° |
| Rahu | Scorpio 20.15° | Scorpio **21.03°** | — | +0.88° |
### 参考文档同步更新
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- `darakaraka-complete-guide.md`Sun入庙→入旺术语修正
### Karaka验证(v3.7.4 Lahiri修正后)
| 角色 | 7星 | 8星(S.Rath) | 度数 | PDF匹配 |
|------|-----|-------------|------|---------|
| AK | Jupiter | Jupiter | 13.82° | ✅ |
| DK | **Mars** | **Sun** | 1.32°/3.51° | ✅ Mars |
---
## v3.7.3b2026-04-25)— Python引擎P0 Bug修复 + 参考文档4处数据修正
### Python计算引擎修复(scripts/
- **P0 #1**`jyotish_engine.py` — Chara Karaka 计算收到 0-360 完整经度而非 0-30 星座内度数
- 新增 `planet_degs` dict(取 `degree_in_sign`),Karaka 计算用 0-30 度数,Navamsa/Chara Dasha 继续用完整经度
- 影响:所有 Karaka 排名在修复前都是错误的(按黄道位置排序而非星座内度数)
- **P0 #2**`jyotish_engine.py` — DK 提取路径 `ck7.get('DK', {}).get('planet', 'Moon')` 永远 fallback 到 Moon
- 改为 `ck7['karaka_table']['Darakaraka']['planet']` 直接从结构化数据提取
- 影响:Karakamsha 计算一直基于 Moon D9 而非 DK D9
- **P1**`jaimini.py` — Rahu 逆行边界 `(30 - deg) % 30` 当 deg=0 时得到 0 而非 30
- 改为 `30.0 - deg`(不取模,保留边界值用于排序)
- **术语修正**status 标签 "入庙(Exalted)" → "入旺(Exalted)"(入庙=Own Sign,入旺=Exalted
### 参考文档修正(references/
1. `vimshottari_dasha_guide.md`:15° Aries 星宿边界错误(Ashwini → Bharani),补边界说明
2. `planetary-dignity-complete-reference.md`:水星逆行燃烧度数 12° → 8°(Parashari 标准)
3. `marriage-timing-comprehensive-techniques.md`:UL 计算公式重写,从混淆的模运算改为清晰的星座索引推导
4. `planets.md`:燃烧表补充逆行变体注释
### 验证(v3.7.3b,仍使用非Lahiri Ayanamsa
- 私有验证案例/用户反馈细节已移除(隐私保护)。
| Karaka | 修复前(0-360排序) | 修复后(degree_in_sign) | PDF |
|--------|-------------------|----------------------|-----|
| AK | Venus(339.66°)❌ | Jupiter(12.94°)✅ | Jupiter |
| DK 7星 | Sun(2.62°)❌ | Mars(0.43°)✅ | Mars |
| DK 8星 | Sun(2.62°)✅ | Sun(2.62°)✅ | Sun |
### 其他更新
- `darakaraka-complete-guide.md`:三系统DK判定更新
- `marriage-timing-validation-methodology.md`:双轨验证数据更新
---
## v3.7.32026-04-25)— 行星尊严与度数完整参考手册
### 新增参考文件(1个)
- **`references/planetary-dignity-complete-reference.md`**:行星尊严与度数完整参考手册(约500行)
- **精确旺衰度数表**:7大行星入庙/落陷精确度数 + 渐变效应说明
- **Moolatrikona区间**7大行星的原始三方度数范围
- **行星友敌关系**:完整的五级友敌关系表
- **行星生命阶段(Avastha)**:奇数/偶数星座的度数-阶段对照表(婴儿/青年/成年/老年/衰退)
- **Sandhi交界点**:0°和29°的不稳定性规则
- **燃烧阈值表**:6大行星精确燃烧度数(含逆行变体) + 燃烧减轻因素
- **Neecha Bhanga落陷取消**5大取消条件 + Parasara三法(逆行最强!) + Dusthana宫主特殊规则 + Neecha Bhanga Raja Yoga进阶条件
- **Sect昼夜区分完整规则**:判定方法/两大阵营/各行星日夜盘角色变化/对配偶分析的影响/最强最弱公式
- **丈夫征象星论证**:木星vs火星的古典论证 + 多层分析权重分配建议
- **Pushkara Navamsha**:按元素分组的精确度数范围 + Pushkara Bhaga极致恩典度数
- **Vargottama**:各行星Vargottama的婚姻意义 + Gandanta例外
- **DK完整8步分析协议**:从计算到合盘验证的完整流程
- **D9婚姻8步旗标算法**:Rao金星测试 + 绿/黄/红旗系统 + 最终评分解读
- 来源:PocketPandit / Celesian / Parasara Jyotish (P.V.R. Narasimha Rao) / StarMeet / Vedicmarga / omai.app / Jothishi
### SKILL.md 更新
- 版本 v3.7.2 → **v3.7.3**
- 关系占星参考文件:2 → **3**
- 参考文件总数:75 → **76**(注:编号48新增,后续48→75全部重编为49→76,但旧编号#47仍为配偶方法论
- 触发词新增:旺衰度数、行星燃烧、落陷取消、Neecha Bhanga、Sect昼夜、Pushkara、Vargottama、行星尊严、Moolatrikona、行星生命阶段、Avastha
### 知识盲区修复
此版本修复了此前分析中暴露的多个知识盲区:
1. ❌ "女命看木星"单一判据 → ✅ 多层分析+昼夜区分
2. ❌ 度数未精确到旺衰 → ✅ 精确度数+渐变效应+距离计算
3. ❌ 不了解行星生命阶段 → ✅ Avastha完整度数表
4. ❌ 燃烧影响未量化 → ✅ 6星阈值+减轻因素
5. ❌ 落陷取消条件不完整 → ✅ 5条件+Parasara三法
6. ❌ Sect对配偶分析的影响不清楚 → ✅ 完整Sect规则+对金/木/土/火的影响
7. ❌ 不了解Pushkara/Vargottama → ✅ 精确度数+婚姻意义
## v3.7.22026-04-25)— 配偶多层综合分析方法论
### 新增参考文件(1个)
- **`references/spouse-multi-layer-methodology.md`**:配偶多层综合分析方法论 v1.0
- **6层交叉确认法**DK(Jaimini,性别中立)+ 7宫主(婚姻运作)+ 金星(天然征象)+ 木星/月亮(传统Kalatra Karaka+ 昼夜区分法(古典)+ Rahu辅助(8-Karaka DK
- **标准六步分析流程**:确定DK→分析7宫主→分析金星→传统征象+昼夜区分→辅助征象→综合交叉确认
- **置信度评估标准**4层确认=75%5层以上=80%+
- **Dasha时机判断**:三重共振法(Vimshottari + Chara Dasha + Transit
- **非传统关系适配**:同性/跨文化关系的征象星重映射
- **常见误判纠正**:禁止"男命金星女命木星"单一判据
- 来源:AstrologyForums / MysteryLores / 古典昼夜区分法(BPHS+ Jaimini Sutras
### SKILL.md 更新
- 版本 v3.7.1 → **v3.7.2**
- 关系占星部分新增"配偶多层综合分析"能力描述
- 参考文件总数:74 → **75**
- 触发词新增:配偶分析、配偶星、配偶征象、婚姻分析、配偶画像、DK配偶星、多层配偶、昼夜区分
### 方法论核心原则
1. **DK描述"配偶是谁"**——性别中立,只看度数
2. **7宫主描述"婚姻怎么运作"**——不受性别影响
3. **金星描述"关系的品质"**——所有人的天然征象
4. **传统征象+昼夜区分是补充参考**——不是唯一判据
5. **多层交叉确认 > 单一判据**——至少4层确认才达到75%置信度
## v3.7.12026-04-25)— full-reading全自动综合解盘 + 三路径路由
### 引擎升级
- `scripts/jyotish_engine.py` v3.7.0 → **v3.7.1**
- 新增 `full-reading` 子命令:一条命令串起13个计算模块(chart/dasha/yoga/varga-full/aspects/jaimini/nakshatra-adv/argala/tajika/shadbala/ashtakavarga/validation/audit
- 测试结果:12模块全部计算成功,0错误,耗时0.02秒
### 工作流升级
- `references/ai-reading-workflow-prompt.md` v1.0 → v3.0
- 新增三条入口路径路由:
- **路径A**:精准出生信息 → `full-reading` 全自动计算
- **路径B**:PDF/文字星盘 → 提取文档数据直接推算
- **路径C**:时间不明确 → 互动式出生时间矫正 → 确认后走路径A
### SKILL.md 更新
- 版本 v3.7.0 → v3.7.1
- 引擎子命令表更新:21 → 22(新增 full-reading
- 工作流部分重写为三路径路由结构
## v3.7.02026-04-25)— 7大新模块:BPHS十六分盘+精确相位+Jaimini+高级Nakshatra+Argala+Tajika+合盘
### 新增模块(7个)
- **`scripts/varga.py`**BPHS Shodasavarga十六分盘完整计算
- 支持全部16个分盘:D2/D3/D4/D7/D9/D10/D12/D16/D20/D24/D27/D30/D40/D45/D60
- 每个分盘输出精确度数(非仅星座名)
- D30 Trimsamsa 特殊不等宽映射
- D9 含 Jaimini 分析(7宫/Venus/Jupiter/尊严状态)
- D60 含业力分析(角宫吉凶星分布)
- **`scripts/aspects.py`**:度数精确相位系统(Drishti)
- 标准7宫对冲 + 火星4/7/8 + 木星5/7/9 + 土星3/7/10
- Orb分类:tight(≤3°) / moderate(≤6°) / loose(≤10°)
- 计算每个相位的入相位/出相位状态
- 合相精度分析
- **`scripts/jaimini.py`**Jaimini系统完整实现
- `calc_chara_karaka_7()`7行星 Chara KarakaAK→DK
- `calc_chara_karaka_8()`8行星 Chara Karaka(含Rahu逆行度数处理)
- `calc_chara_dasha()`:星座大运(基于上升奇偶性决定方向)
- `calc_karakamsha()`:灵魂方向分析(DK的D9位置解读)
- **`scripts/nakshatra_advanced.py`**:高级Nakshatra分析
- 精确Nakshatra定位(名称/Pada/度数/Gana/元素)
- `calc_tara_bala()`9循环Tara关系分析
- `calc_sub_lord()`KP系统 Sub-Lord 计算
- `nakshatra_compatibility()`Tara+元素+Gana综合兼容性
- **`scripts/argala.py`**Argala门闩系统
- 主Argala2/4/11宫 → 财富/幸福/收益
- 副Argala5/8宫 → 权力/转化
- Virodha(阻断):12→2, 10→4, 3→11, 9→5, 2→8
- 净评分计算和吉凶判定
- **`scripts/tajika.py`**Tajika/Varshaphala年运盘
- `calc_muntha()`:年度上升进展
- `calc_year_lord()`:年度守护星 + 辅助星(2/5/9/11宫主)
- `calc_mudda_dasha()`12个月比例大运
- `calc_tri_pataka()`:三旗系统评估
- **`scripts/synastry.py`**:合盘分析系统
- Ashta Koota 36分制(8维度:Varna/Vashya/Tara/Yoni/Graha Maitri/Gana/Bhakuta/Nadi
- Mangal Dosha 检查(火星在1/2/4/7/8/12宫)
- Papasamya 凶星抵消度评估
- Dasha时间线兼容性分析
- 自动生成化解建议
### 引擎升级(jyotish_engine.py
- 版本 v3.6.0 → **v3.7.0**
- 新增7个CLI子命令:`varga-full` / `aspects` / `jaimini` / `nakshatra-adv` / `argala` / `tajika` / `synastry`
- 总子命令数:14 → **21**
- 私有验证案例/用户反馈细节已移除(隐私保护)。
### 验证结果
| 私有验证案例信息已移除 | 隐私保护 |
|------|--------|-------------|---------|
| varga | varga-full | ✅ | D9 Navamsa 精确度数+尊严 |
| aspects | aspects | ✅ | 6个精确相位(Moon-Saturn合相等)|
| jaimini | jaimini | ✅ | AK=Venus, DK=Mars, Chara Dasha序列 |
| nakshatra | nakshatra-adv | ✅ | 9行星Tara Bala, Sub-Lord |
| argala | argala | ✅ | 9行星门闩分析 |
| tajika | tajika | ✅ | 33岁 Muntha=金牛座, YearLord=Venus |
| synastry | synastry | ✅ | Ashta Koota 26/36 (72.2%) |
## v3.6.02026-04-24)— CNWU16二次借鉴:report_builder + R2b列校验 + P3/P8/冲突仲裁
### 新增文件
- **`scripts/report_builder.py`**:MD→HTML报告生成器(羊皮纸主题)
- 基于 CNWU16/vedic-astro-skills 的 report_builder.py 改编适配
- 18项章节注册表,自动扫描多种 MD 命名模式
- 羊皮纸CSS + 封面 + 目录 + A4打印优化
- 中英文双语支持
- 可通过 engine `report` 子命令调用
- 浏览器打开后 Ctrl+P → Save as PDF
### 验证模块升级
- **`scripts/validate.py`**:新增 R2b BAV列→SAV列校验
- 每个星座的7行星BAV bindus列向量之和 = 该星座SAV分数
- 交叉验证行总和(R2)和列总和的一致性
### 审计管线升级(jyotish_engine.py cmd_audit
- **P3 仓库耦合**Warehouse Coupling):
- 双宫掌管=货物捆绑分析
- 识别同时掌管两个宫位的行星(如水星同时掌管双子宫和处女宫)
- 评估捆绑质量:凶吉混合/压力型/吉庆型/消耗型/中性
- **P8 年龄状态**Age Status):
- 基于行星在星座中的度数区间判定生命周期
- 婴幼(0-10°)=辅助型,青壮(10-20°)=主动型,老年(20-30°)=自动执行型
- **冲突仲裁3条规则**Conflict Arbitration):
- 规则1: P1清理者+P7入旺 = "带毒高价值资产"(禁止说逢凶化吉)
- 规则2: P5凶宫+BAV高 = "乱世出英雄"
- 规则3: P1吉+P2受损 = "空有雄心无着力点"
### 子命令升级
- **新增 `report`** 子命令:调用 report_builder.py 生成 HTML 报告
- 用法: `python3 jyotish_engine.py report <folder> --name "名字" --lagna "上升" --lang cn`
- 总子命令数:11 → 14
## v3.5.02026-04-24)— BPHS完整表校准 + R1-R10验证 + P1-P12审计 + 验前事
- **重写 `scripts/ashtakavarga.py`** v1.0 → v2.0
- 从简化 BAV_BASE + EXTRA_BINDHUSAV=94❌)升级为完整 BPHS 8×8 贡献矩阵
- 每颗行星的 BAV 从所有 8 个来源(7行星+Lagna)获得贡献,非仅自贡献
- BPHS 校正:月亮 BAV 木星贡献去12宫→49,金星 BAV 水星贡献加12宫→52
- SAV 总和 = 337 ✅(7行星 BAV 之和),含 Lagna 完整总分 = 386
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **新增 `scripts/validate.py`**R1-R10 数学验证模块
- R1: SAV 总和 = 337
- R2: 各 BAV 行常数校验(Sun=48, Moon=49, ...
- R3: 水星延伸角 ≤ 28°
- R4: 金星延伸角 ≤ 47°
- R5: Rahu-Ketu 严格 180° 对冲
- R6: 逆行合法性(太阳/月亮不逆行,Rahu/Ketu永远逆行)
- R7: Dasha 大运年限链总和 = 120 年
- R8: 行星完整性(7行星 + Rahu + Ketu + Lagna
- R9: 星座度数范围 [0, 30)
- R10: 宫位连续性(1-12宫无断点)
- **升级 `scripts/jyotish_engine.py`** v3.4.0 → v3.5.0
- 11 → 13 个子命令(新增 validate/audit
- `chart --validate`:星盘计算附加 R1-R10 验证
- `validate` 子命令:独立运行 R1-R10 校验
- `audit` 子命令:P1-P12 行星审计管线(Identity/Health/Resource SAV/Road Condition/Exit SAV/Dignity/Shadbala/Aspects/Nakshatra/Yogas
- `predict --past-verify`:验前事模式(推断2-4个高信号历史时段,避免冷读效应)
- **来源**CNWU16/vedic-astro-skills 仓库分析 + ZODIAQ BPHS 完整表
## v3.4.02026-04-24)— 高级计算引擎 + Hermes集成 + EventPredictionModel
- **新增 `scripts/shadbala.py`**Shadbala六重力量计算模块
- v6.0.11复核:当前为内部一致的六力近似实现,含 Sthana(位置)、Dig(方向)、Kala(时间)、Chesta(运动)、Naisargika(天然)、Drik(相位);外部绝对值校准前不再称为完整 Parashara 实现
- 输出每颗行星的六维得分、总Virupas/Rupas、Ishta Bala百分比、强度等级(极强/强/充足/略弱/弱/极弱)
- 行星力量排名
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **新增 `scripts/ashtakavarga.py`**Ashtakavarga八分法计算模块
- BAVBhinna Ashtakavarga8源独立贡献表
- SAVSarva Ashtakavarga)聚合评分 + 吉凶评估(极吉/吉利/中等/挑战)
- Shodhya Pinda简化计算
- ⚠️ 已知限制:SAV总分未达标准337(BAV_BASE表为简化版,需后续校准为完整Parashara表)
- **新增 `scripts/hermes_memory_core.py` + `scripts/hermes_bridge.py`**Hermes Agent中间件
- 零外部依赖(纯Python stdlib: sqlite3, json, os, re, datetime, hashlib
- FTS5全文搜索 + 6张SQLite表
- 记忆存储/检索/上下文构建
- **新增 `scripts/event_prediction_model.py`**:事件预测规则引擎
- 替代LAM深度学习模型(原0.17%准确率)
- 三层验证法:静态星盘征象 + Dasha激活 + Transit触发
- 覆盖婚姻/职业/财富/健康/教育/子女/旅行/灵性8大领域
- Prediction dataclass:概率评分 + 风险等级 + 时机 + 关键因素 + 建议
- **升级 `scripts/jyotish_engine.py`** v3.3.1 → v3.4.0
- 8 → 11个子命令(新增 shadbala/ashtakavarga/memory
- 提取 `compute_chart_data()` 公共函数(chart/shadbala/ashtakavarga共用)
- `predict` 子命令增强:优先使用 EventPredictionModel,降级到简化版
- `memory` 子命令:store/search/context/stats 四种操作
- `_add_chart_args()` 公共参数函数消除CLI定义重复
- 行星数据增加 `speed` 字段(Shadbala Chesta Bala需要)
- **SKILL.md v3.4.0**:版本号+触发词(Shadbala/六重力量/Ashtakavarga/八分法/事件预测/记忆系统)+11子命令表+工作流增加步骤4-5/8/10
## v3.3.12026-04-24)— 计算引擎集成
- **新增 `scripts/jyotish_engine.py`**:印度占星统一计算引擎入口
- 基于 Swiss Ephemeris 天文计算库(Lahiri Ayanamsa 恒星黄道标准)
- 8大子命令:chart(星盘计算)、dasha(大运时间线)、yoga(格局识别)、predict(三层验证法)、varga(分盘D9/D10)、celebrity(名人案例查询)、db-stats(数据库统计)、transit(过境查询)
- 自动连接外部数据源:验证数据库(15,840条)、名人CSV(15,807条)、过境配置(2026-2028
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **SKILL.md v3.3.1**:新增 §13 计算引擎集成说明 + 触发词增加(算星盘/排盘/计算星盘/查名人)
- **已知限制**:LAM深度学习模型(75.84MB)和 Hermes Agent 中间件未集成(超出 CLI 脚本能力范围)
## v3.2.02026-04-24)— Argala+AI工作流+Dasa Convergence实操化
- **新增 `argala-complete-guide.md`**:Argala行星干预体系完整指南
- 四类型Argala(主Argala 2/4/11宫 + 次Argala 5/8宫 + Virodha反干预 + 特殊规则)
- 12宫位完整Argala矩阵(主Argala + Virodha对照)
- 10核心领域Argala分析模板(婚姻/事业/财富/子女/健康等)
- Argala链追踪高级技法
- PAC-DARES整合位置
- **新增 `ai-reading-workflow-prompt.md`**AI解盘工作流Prompt工程
- 7阶段完整执行引擎(PDF提取→意图路由→静态分析10步→动态推运7步→应期输出→补救→现代措辞包装)
- 每个阶段的严格输出模板
- 质量门Pass/Limited/Fail规则
- 完整工作流一页纸速查
- **升级 `dasa-convergence-methodology.md` v2.0**
- 新增§〇 JH PDF数据源对照表(9大Dasha系统的PDF可提取性一目了然)
- 新增§七 轻量Convergence三系统法(Vimsottari+Yogini+Chara,无需外部工具)
- Yogini Dasha完整手工推算表(8位女神+年数+Nakshatra分组+定位公式)
- Chara Dasha简化推算法(方向判断+Rashi Drishti速查)
- 轻量Convergence实战模板(标准表格格式)
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **SKILL.md v3.2.0**:新增2个参考文件注册(66文件总数)+Argala能力描述+AI工作流描述+预测清单增加Argala检查项和Dasa Convergence轻量法+触发词增加Argala/Yogini/Chara Dasha/AI解盘
## v3.1.02026-04-24)— 多Dasa收敛+技法补齐+案例库整合
- **新增 `dasa-convergence-methodology.md`**Dasa Convergence多系统大运交叉验证方法论
- 9大Dasha系统独立性对照表(Vimsottari/Yogini/Kalachakra/Sudasa/Chara/Narayana/Nadi/Ashtottari/Shodashottari
- Convergence五步法:目标领域→提取Dasha→逐系统检查→寻找重叠→Transit确认
- Convergence等级量化:Level 0-3 概率提升公式
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **新增 `navatara-kantaka-shani-guide.md`**:双技法合并文件
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- 私有验证案例/用户反馈细节已移除(隐私保护)。
- **整合 `famous-case-library.md` v2.0**
- 从"1个案例"升级为"24个案例统一入口"
- 分级索引:A级(AA级验证12个)、B级(1个,梦露⚠️)、C级(比对级11个)
- 6大核心验证结论(100%支持率)
- **技法覆盖率提升**58%→83%→补齐后约88%M19 Navatara+M22 Kantaka Shani已覆盖)
- **SKILL.md v3.1.0**:新增2个参考文件注册(63文件总数)+Dasa Convergence能力描述+版本号更新
## v3.0.02026-04-24)— 管线重写:PDF→解盘→应期全链路
- **核心定位重定义**Skill使命明确为"PDF输入→严谨解盘→精确推运应期输出"
- **重写 `pdf-chart-reading-guide.md` v3.0**(从v1.0升级):
- 补全9个P0数据断层:AL/UL/HL/GL特殊Lagna、Jaimini七Karakas、Shadbala六力量、Ashtakavarga BAV/SAV、Yoga清单、逆行/燃烧/战争标记、行星Drishti相位
- 精确11页JH PDF页面映射
- 数据完整性门(Quality Gate):P0数据缺失时禁止完整分析
- 交叉校验规则:D1 NK↔D9、SAV=337、Moon NK↔Dasha起始
- 完整JSON Schema覆盖全量数据
- 管线桥接:提取字段→分析方法→参考文件完整映射
- **升级 `timing-prediction-template.md` v2.0**(从v1.0升级):
- 五层验证法:本命征象→Dasha激活(五级Maha→Prana)→Transit触发(四参考点+Double Transit)→Jaimini+KP交叉确认→Varshaphala年运盘确认
- 应期精度:主窗口(月级)+次窗口(周级)+关键触发日
- 确认/延迟/取消信号系统
- 五大事件专属应期公式(婚姻/事业/财富/子女/健康)
- **新增 `data-bridge-mapping.md`**:PDF提取字段→方法论需求全量对照表+外部数据依赖处理
- **SKILL.md v3.0.0**:加入PDF-first强制工作流+核心定位说明+新文件注册
## v2.1.22026-04-23)— 瘦身+质量修复
- 删除空占位符 `api_reference.md``example_asset.txt`
- 修复4个死链引用
- SKILL.md瘦身130+行:更新记录移至CHANGELOG.md
## v2.1.12026-04-23)— 资料审计修复
- 删除空占位符 `api_reference.md``example_asset.txt`
- 修复4个死链引用:planetary-configurations→planets.md、yoga-patterns→yoga_list.md、nakshatra-guide→nakshatra_deities.md、birth-time-rectification(基础)→birth-time-rectification-cases.md
- 补注册26个遗漏文件,修复4处编号重复
- 按逻辑重组为11个分类,60个文件全部添加引用路径
- 扩充 `kp-astrology-complete-system.md` v2.0:从4.5KB扩充至完整体系
- SKILL.md瘦身:更新记录移至本文件,精简核心优势列表
## v2.1.02026-04-23)— Yoga Timing + 静态解读最后一环
- 新增 `yoga-phala-timing-guide.md`:五大方法预测Yoga结果时机
- 新增 `retrograde-combustion-war-guide.md`:逆行/燃烧/行星战争深度指南
- 预测清单升级:加入逆行/燃烧/战争检查+Yoga Phala Timing步骤
## v2.0.02026-04-23)— 五大核心技法完整化
- 新增 `ketu-dual-nature-guide.md`Ketu双重属性框架
- 新增 `shadbala-complete-methodology.md`:六种力量完整计算
- 新增 `tajika-yoga-complete-guide.md`10种Tajika Yoga完整审计
- 新增 `pratyantar-calculation-guide.md`Pratyantar精确计算
- 升级 `ashtakavarga-complete-system.md` v2.0
## v1.9.02026-04-23)— 多参考点过境分析强制规范
- 新增 `transit-multi-reference-guide.md`
- 修正:Chandra Lagna提升为强制基准
- 根因:实际分析中遗漏Chandra Lagna视角导致预测偏差
## v1.8.0 及更早(2026-04-20 ~ 2026-04-23
- 新增过境综合实战、关系占星、Varshaphala年运盘、综合解盘工作流、27 Nakshatra中文速查
- 新增Jaimini完整体系、KP占星体系、补救措施体系、Ashtakavarga体系
- 新增常见误判纠错、现代措辞解读、PDF星盘读取、自动出生时间矫正
- 新增名人案例库、九层分盘体系、三系统协同分析、行星力量速查