# 印度占星 Skill 更新日志 ## v6.9.14(2026-06-21)—— 发布卫生、CI门禁与包产物校验 > **验证**:65 techniques registry validate PASS(55 covered / 10 complete / 0 partial / 0 missing);475 pytest PASS;legacy runner 102/102 PASS;frontend Vite build PASS;wheel/sdist build PASS;twine 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.12(2026-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` limitation(95.83% benchmark通过) - `SKILL.md`:更新Chara Dasha能力升级段落(v6.1.12) ### 已知限制 - Aquarius/Scorpio 共主判定 ~4.2% 案例不匹配(需复制 PyJHora `_stronger_planet_new` 完整尊严比较链) - 已在 `_resolve_chara_dasha_lord()` 中预留扩展点 ## v6.1.11(2026-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.10(2026-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.9(2026-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.8(2026-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=36,FN=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.7(2026-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=36,FN=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.6(2026-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.44(2026-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-ephemeris(Rust,500 万图表 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→86,FP 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` 关键字,导致 Y113(Navamsa 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、Venus,Mercury 仅在独处或与 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%) - FP:44;FN:96 - `scripts/run_quality_gate.py --skip-yoga-logic`:通过。 - pytest **35 passed** - BPHS/Ashtakavarga 不变量 **18/18** - golden case 通过 - capability audit valid,0 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.41(2026-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%) - FP:53;FN:97 - `scripts/run_quality_gate.py --skip-yoga-logic`:通过。 - pytest **35 passed** - BPHS/Ashtakavarga 不变量 **18/18** - golden case 通过 - capability audit valid,0 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.40(2026-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%) - FP:54;FN:117 - `scripts/run_quality_gate.py --skip-yoga-logic`:通过。 - pytest **35 passed** - BPHS/Ashtakavarga 不变量 **18/18** - golden case 通过 - capability audit valid,0 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.39(2026-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宫主关联判断: - 保留 193:benefic L4 被另一吉星相位且 Mercury 在 Lagna; - 修复 194:Jupiter 在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%) - FP:61;FN:142 - `scripts/run_quality_gate.py --skip-yoga-logic`:通过。 - pytest **35 passed** - BPHS/Ashtakavarga 不变量 **18/18** - golden case 通过 - capability audit valid,0 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.38(2026-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 planet(Moon/Venus)”,而不是“Lagna lord 落水象星座”。 ### 高影响规则对齐 - `sankha_yoga`:改用 PyJHora house-strength 口径判断 L1/L9 强弱,Top FP 从 12 收窄到 5。 - `kahala_yoga`:对齐 PyJHora BVR-15:L1 落 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%) - FP:114;FN:202 - `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.37(2026-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%) - FP:130;FN:295 - `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.36(2026-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.35(2026-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 passed,BPHS/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.34(2026-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-154:2宫主在 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 passed,BPHS/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.33(2026-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 Actions:CI 安装开发依赖,执行 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.32(2026-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 名称覆盖 benchmark:473 条规则,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.31(2026-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.30(2026-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 - 重复 id:0 ✅ - 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.29(2026-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 Nabhasa(4 条) - **财富类**:Lakshmi / Gaja Kesari / Chandra Adhi / Vasumati / Dhan Yoga(5 条) - **婚姻类**:Satkalatra / Kalatra Malika(2 条) - **子女类**:Santana / Putra Malika / Suputra(3 条) - **健康类**:Dehapushti / Sareera Soukhya(2 条) - **智识类**:Saraswati / Budha Aditya / Vidya(3 条) - **地位类**:Gaja Kesari(Classic) / Jaya / Indra / Hari / Hara / Brahma(6 条) - **特殊格局**:Chamara / Chatra / Kuta / Nauka / Yava / Go / Vihaga / Sakata / Vajra / Yoopa(10 条) - **凶 Yoga**:Andha / Arishta(Classic) / Kemadruma(Classic) / Durmukha / Kapata(5 条) - **精神类**:Siva / Vishnu / Harihara Brahma(3 条) - **兄弟姐妹**:Bhratru Vriddhi / Eka Putra(2 条) - **事业类**:Parakrama / Vikrama Malika / Karma Malika(3 条) - **旅行类**:Sada Sanchara / Vahana(2 条) - **健康凶**:Rogagrastha / Kshaya Roga(2 条) - **日月伴星**:Ubhayachari / Vesi / Vosi / Nipuna / Duradhara / Sunaphaa / Anaphaa(7 条) ### PyJhora 对比 - PyJhora yoga.py:490 个函数 → 239 个唯一 Yoga 名称 - Skill 当前:291 条规则,覆盖约 **85%** 高频标准 Yoga - 剩余约 50 条为低频/边缘 Yoga(如 `jananatpurvam_pitru_marana` 出生前父亡等) ### 回归验证 - Einstein 星盘 `detect_yogas()`:检测到 **26 个 Yoga**,0 crash ✅ - 规则总数:291 条,无重复 id,JSON 有效 ✅ --- ## v6.0.28(2026-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 条,无重复 id,schema v1.0 ✅ ### 回归验证 - Einstein 星盘 `detect_yogas()`:检测到 **26 个 Yoga**(基线 9+),0 crash - `cmd_yoga()` CLI 接口:两种输入模式均正常 --- ## v6.0.26(2026-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 errors,Yoga 模块检测到 9 个 Yoga ### 后续 - 在新架构上继续系统补规则到 150+ / 200+ - 补齐 PyJHora/BVR 中高频 Yoga 变体 ## v6.0.27(2026-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.25(2026-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-reading:45 模块,0 错误,状态 complete - audit_capabilities --mode validate:valid=True,warnings=0,problems=0 - 新增 `benchmark/validation-einstein-2026-06-04.md` 验证报告 ### Yoga 规则库扩展(同版本追加) - **Yoga 规则从 ~49 种扩展到 76 种** (`scripts/jyotish_engine.py`) - A. 行星合相 Yoga(6种):Budha-Shukra、Surya-Chandra、Guru-Shukra、Shani-Rahu、Angaraka、Surya-Budha - B. 宫位主星关联 Yoga(5种):Dharma Karmadhipati、Raja Parivartana、Neecha Bhanga 扩展、Moolatrikona Mahapurusha、Viparita Raja 扩展 - C. Nabhasa Yogas(5种):Sankhya(Gola/Yuga/Sula/Kedara/Veena)、Asraya、Dala、Maala - D. 特殊条件 Yoga(12种):Mahabhagya、Pushkala、Adhi、Chatussagara、Virinchi、Veenaa、Kalanidhi、Saubhagya、Shubha、Graha Yuddha、Gajakesari(from Moon)、Pushya - Einstein 验证:检测到 Yoga 从 15 → **24 个** --- ## v6.0.24-mcp-server(2026-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`:计算Ashtakavarga(SAV/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/Doshas(Raj Yoga/Dhana Yoga/Pancha Mahapurusha等)。 - `calculate_transit`:计算当前/指定日期过境 + 与Dasha/Ashtakavarga叠加。 - `full_reading`:完整解盘分析(兼容虚构/公开数据)。 - `get_audit_status`:获取technique registry审计状态。 - `strict_workflow`:按领域路由strict workflow(career/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 table(vs PyJHora/VedAstro/Maitreya)。 - 新增honest self-assessment(Traditional Algo Accuracy 7.3/10等)。 - 新增Quick Start(5分钟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-regression(2026-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 techniques(missing=0, partial=18, covered=26)。 - `full-reading` 实盘抽查:45 modules computed,`errors=0`,`status=complete`。 - `diff --check` 通过。 ## v6.0.22-nakshatra-advanced(2026-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 Dasha(108年星宿大运,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 techniques(0 missing / 18 partial / 26 covered);v6.9.14 已升级为 65 techniques validate PASS。 ### 已知限制 - Ashtottari 当前实现为工程化可用版本,仍需后续与传统书例/JHora 做外部绝对时间线对标。 - KP Sub-Lord 仍沿用原先简化 9 等分版本,未扩展为完整不等分 KP Sub/SS 体系。 ## v6.0.21-muhurta(2026-06-04)—— Muhurta 择时占星(Panchanga 五要素)实现 > **触发原因**:用户说「继续」,Muhurta 是审计中确认缺失的独立技法,也是日常使用频率最高的传统技法之一。 ### 变更内容 - `scripts/muhurta.py`(新文件 v6.0.21):Muhurta 核心计算 - `calc_tithi(sun_lon, moon_lon)` — 月相日(1-30,Shukla/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` 更新:新增 muhurta(covered, 41→42 entries) ### 技法验证(2026-06-04 今日) | 要素 | 值 | 吉凶 | |------|-----|------| | Tithi | Krishna Tritiya | 吉 | | Nakshatra | Purva Ashadha | 凶 | | Yoga | Shukla | 吉 | | Karana | Vishti(Bhadra)| 凶⚠️ | | Vara | Thursday/Jupiter | 吉 | 综合 50%(中等);适合婚礼/出行/医疗/学习,开业一般,注意 Vishti 时段。 ## v6.0.20-narayana-dasha(2026-06-04)—— Narayana Dasha(Rishi 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.13(Narayana Dasha 分析) - `narayana-dasha` subparser 新增 `--age` 参数 - `references/technique_registry.json` 更新:新增 narayana_dasha(covered, 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 MD(2020-2039)— 结构性、纪律性能量 - Narayana 当前:Sagittarius MD(31→38)— 5宫、Jupiter 守护、创意扩张 - 合理解读:结构化创意释放(Saturn MD 下的 Sagittarius Narayana 周期) ## v6.0.19-sr-degraded-mode-fix(2026-06-04)—— 修复无 swisseph 时 Muntha 跳过 bug > **触发原因**:v6.0.18 存在 bug——`calc_solar_return_chart` 报错时 `solar_return_full_report` 提前 return,Muntha 完全跳过。 ### 变更内容 - `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-covered(2026-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.12(Solar Return Varshaphala 分析) - `full-reading` subparser 新增 `--target-year` 参数 - `references/technique_registry.json` 更新:muntha→covered,新增 solar_return(covered) ### 技法状态变更 | 技法 | 原状态 | 新状态 | 说明 | |------|--------|--------|------| | 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-update(2026-06-04)—— bhrigu_pada_dasha 接入 + muntha/prashna placeholder 修正 > **触发原因**:用户要求继续补充印度占星 skill 缺少的技法。v6.0.16 审计发现 bhrigu_pada_dasha 未入 registry,muntha/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-prashna(2026-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-navamsa(2026-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)`:计算当前 Tithi(1-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-dk(2026-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-sahams(2026-06-04)—— 新增 Tajika Yogas + Sahams 技法 > **触发原因**:用户指出当前 skill 缺少 Tajika Yogas(Ithasala/Easarapha/Nakta/Yamaya/Manahoo/Graha Yuddha)和 Sahams(Punya/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-linkage(2026-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-downgrade(2026-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-reading(2026-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-downgrade(2026-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/120(41.67%),duration 8/120(6.67%),总体 58/240(24.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-calibration(2026-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/216,PyJHora 216/216;校准后应与 PyJHora/PVR 书例对齐。 --- ## v6.0.7-node-mode-arbitration(2026-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-fix(2026-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-fix(2026-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-sanitized(2026-06-03)— 移除个人化资料 + 隐私隔离规则 > **触发原因**:用户明确要求“关于我个人的信息不可以暴露在印度占星skill里”。本版执行隐私清理:移除或匿名化 skill 中的真实个人星盘、出生资料、人生事件、项目背景、个案解读与回测痕迹,并新增隐私隔离规则。 ### ① 移除个人化个案资料 - 移除完整个人星盘分析报告内容,改为隐私说明。 - 清理出生时间矫正模板和高级指南中的真实事件样例,改为虚构字段格式。 - 将个人化案例章节改为隐私保护占位或通用示例。 - 清理 README smoke test 中的真实出生数据示例。 ### ② 新增隐私隔离规则 - `SKILL.md` 新增“用户隐私与个案资料隔离”规则。 - 真实用户资料只可在当前会话内用于分析,不得写入 `references/`、`assets/`、`tests/`、`CHANGELOG.md` 或公开仓库。 - 方法论沉淀必须抽象化,不得保留可识别个人轨迹的细节。 --- ## v6.0.3-engineering-foundation(2026-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-patch(2026-06-03)— 技法覆盖审计 + 可低风险缺口补齐 > **触发原因**:用户质疑此前将 A10、Pushkara、Vargottama、Avastha、Sudarshana、Dasha Sandhi 等统称为“缺失”可能是审计遗漏。经地毯式搜索确认:部分技法已有知识/流程/App层覆盖,但未进入 CLI/full-reading 输出;因此本版把“缺失”改为分层判断,并补齐可低风险实现项。 ### ① 审计结论修正 - Avastha:已有 `scripts/avastha_calculator.py`,且 `full-reading` 已集成,非缺失。 - Vargottama:App 层已有检测/渲染,本版补入 `full-reading` 输出。 - Pushkara:参考文档已有精确度数与 checklist,本版补入 `full-reading` 自动标记。 - A10/Karma Pada:AL/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-orchestration(2026-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.0(2026-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.0(2026-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.0(2026-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.0(2026-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.1(2026-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.0(2026-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.1(2026-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. Choudhry:Systems' Approach to Interpreting Horoscopes - Shyamasundara Dasa:"On the Authenticity of the BPHS" - Marc Boney:Case Studies in Vedic Astrology - Hart de Fouw & Robert Svoboda:Light on Life - Sanjay Rath:Bṛhaspati Jyotiṣa课程体系 - Dr. A.K. Tripathi:"True Astro Secrets" --- ## v3.12.0(2026-04-25)— 10本PDF书籍知识集成 + Kimi审计报告验证 ### 知识来源 基于10本经典印度占星PDF书籍的深度提取与集成: 1. *Ancient Hindu Astrology For Modern Western Astrologer* — James Braha(187页,可提取) 2. *How to Judge a Horoscope Vol 1* (Houses I-VI) — B.V. Raman(310页,可提取) 3. *How to Judge a Horoscope Vol 2* (Houses VII-XII) — B.V. Raman(482页,可提取) 4. *Learn Successful Predictive Techniques of Hindu Astrology* — K.N. Rao(159页,可提取) 5. *Light on Life: An Introduction to the Astrology of India* — Hart de Fouw & Robert Svoboda(461页,可提取) 6. *Predict Effectively through Yogini Dasha* — V.P. Goel(63页,⚠️ 扫描件,无法提取文字) 7. *Predicting through Jaimini Astrology* — V.P. Goel(232页,可提取) 8. *Predicting through Jaimini's Chara Dasha* — K.N. Rao(135页,可提取) 9. *Predicting Through Shasti Hayani Dasha* — V.P. Goel(92页,⚠️ 扫描件,无法提取文字) 10. *Predicting Major Life Events: A Composite Approach* — Marc Boney(465页,可提取) **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等 - **实现优先级**:P0(Chara已实现)→P1(Mandook/Narayan/Navamsha)→P2(Sthira/NSD)→P3(Trikon/Atmanadi) - **Argala四分之一度阻碍规则**:BPHS原典,星座内4个四分之一度(0-7°30'/7°30'-15°/15°-22°30'/22°30'-30°)决定Virodha有效性 - **Jaimini星座相位规则**:Movable↔Fixed,Dual↔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.0(2026-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(维持/Sthiti,Vimshottari)/ Ardrādi(毁灭/Samhāra) - **Savya/Apasavya**:27 Nakshatra每3个一组交替顺行/逆行(Vishnu三步法则) - **三系统协同**:日常择时/婚姻/创业/疾病场景的应用映射 ### SKILL.md 更新 - 版本号:3.10.0 → 3.11.0(frontmatter + 更新记录 + 底部版本三处同步) - 参考文件计数: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.0(2026-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.0(2026-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.0(2026-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.4(2026-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.4(Lahiri) | 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.3b(2026-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.3(2026-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.2(2026-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.1(2026-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.0(2026-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 Karaka(AK→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门闩系统 - 主Argala:2/4/11宫 → 财富/幸福/收益 - 副Argala:5/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.0(2026-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 --name "名字" --lagna "上升" --lang cn` - 总子命令数:11 → 14 ## v3.5.0(2026-04-24)— BPHS完整表校准 + R1-R10验证 + P1-P12审计 + 验前事 - **重写 `scripts/ashtakavarga.py`** v1.0 → v2.0: - 从简化 BAV_BASE + EXTRA_BINDHU(SAV=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.0(2026-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八分法计算模块 - BAV(Bhinna Ashtakavarga)8源独立贡献表 - SAV(Sarva 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.1(2026-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.0(2026-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.0(2026-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.0(2026-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.2(2026-04-23)— 瘦身+质量修复 - 删除空占位符 `api_reference.md`、`example_asset.txt` - 修复4个死链引用 - SKILL.md瘦身130+行:更新记录移至CHANGELOG.md ## v2.1.1(2026-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.0(2026-04-23)— Yoga Timing + 静态解读最后一环 - 新增 `yoga-phala-timing-guide.md`:五大方法预测Yoga结果时机 - 新增 `retrograde-combustion-war-guide.md`:逆行/燃烧/行星战争深度指南 - 预测清单升级:加入逆行/燃烧/战争检查+Yoga Phala Timing步骤 ## v2.0.0(2026-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.0(2026-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星盘读取、自动出生时间矫正 - 新增名人案例库、九层分盘体系、三系统协同分析、行星力量速查