Files
2026-07-08 17:03:04 +08:00

18 KiB
Raw Permalink Blame History

开源印度占星项目整合报告

日期: 2026-06-11 目标目录: <home>/.workbuddy/skills/jyotish-vedic-astrology/references/open_source_sources/


项目1: CNWU16/vedic-astro-skills (MIT, 161 stars)

仓库: https://github.com/CNWU16/vedic-astro-skills 本地路径: vedic-astro-skills/ 许可证: MIT License (Copyright 2026)

目录结构

vedic-astro-skills/
├── .github/
├── .gitignore
├── CHANGELOG.md
├── LICENSE                    # MIT License
├── README.md
├── sync_skills.ps1
├── antigravity/skills/        # Antigravity IDE 版本
│   ├── vedic-calculator/     # 核心计算引擎
│   │   ├── SKILL.md
│   │   ├── requirements.txt
│   │   └── scripts/
│   │       ├── engine.py              # ★ 主计算引擎 (688行)
│   │       ├── ashtakavarga_pyjhora.py
│   │       ├── dasha_pyjhora.py
│   │       ├── divisional_pyjhora.py
│   │       ├── shadbala_pyjhora.py
│   │       ├── transit.py
│   │       ├── extras_pyjhora.py
│   │       ├── formatter.py
│   │       ├── setup_env.py
│   │       └── ephe/                 # 星历文件
│   ├── vedic-core/           # 核心解读引擎
│   │   ├── SKILL.md          # ★ 3000+行,极详细的解读方法论
│   │   ├── scripts/report_builder.py
│   │   └── resources/
│   │       ├── house_framework.md    # ★ 宫位诊断框架
│   │       ├── p1_p12.md             # ★ P1-P12行星审计参数
│   │       ├── qa_rules.md           # Q&A伦理规则
│   │       ├── report_rules.md       # 报告打包规则
│   │       └── yogas.md              # ★ 格局(Yoga)评估方法论
│   ├── vedic-career/SKILL.md
│   ├── vedic-love/SKILL.md
│   ├── vedic-reader/         # 星盘阅读
│   │   ├── SKILL.md
│   │   └── resources/
│   │       ├── chart_reading_rules.md
│   │       ├── data_contract.md
│   │       └── validation_rules.md
│   └── vedic-rectifier/      # 出生时间校正
│       ├── SKILL.md
│       ├── requirements.txt
│       ├── scripts/time_scan.py
│       └── resources/event_house_map.md
├── claude-code/               # Claude Code 版本 (相同结构)
├── codex/                     # Codex 版本 (相同结构)
├── assets/                    # 赞赏二维码
└── scripts/report_builder.py

Python 文件及 main 函数

文件路径 行数 main函数 功能
antigravity/skills/vedic-calculator/scripts/engine.py 768 if __name__ == '__main__': L694 主计算引擎 - 完整星盘计算
antigravity/skills/vedic-calculator/scripts/ashtakavarga_pyjhora.py - - SAV/BAV 计算 (PyJHora)
antigravity/skills/vedic-calculator/scripts/dasha_pyjhora.py - - Vimshottari Dasha (PyJHora)
antigravity/skills/vedic-calculator/scripts/divisional_pyjhora.py - - 分盘计算 D2-D60 (PyJHora)
antigravity/skills/vedic-calculator/scripts/shadbala_pyjhora.py - - Shadbala 六重力量 + 9项bug修正
antigravity/skills/vedic-calculator/scripts/transit.py - - 行运计算 (自建, 非PyJHora)
antigravity/skills/vedic-calculator/scripts/extras_pyjhora.py - - Bhava Bala, Special Lagnas 等
antigravity/skills/vedic-calculator/scripts/formatter.py - - 格式化输出
antigravity/skills/vedic-calculator/scripts/setup_env.py - - 环境安装脚本
antigravity/skills/vedic-core/scripts/report_builder.py - - HTML报告打包工具
antigravity/skills/vedic-rectifier/scripts/time_scan.py - - 出生时间扫描校正

核心技术特性

engine.py 核心功能 (calculate_full_chart)

  • 基于 swisseph (pysweph) + dashaflow + PyJHora 混合架构
  • 17个数据板块: ayanamsa, lagna, 9行星, SAV/BAV, D9/D10/D4/D5分盘, Vargottama, Dignity(Panchadha Maitri), Combustion, Chara Karakas, Aspects, House Lords, Dasha, Shadbala, Moon Phase, Digbala, Special Points(AL/UL), Transits(Sade Sati + Double Transit)
  • fail-fast 策略: PyJHora 核心模块必须全部加载
  • BPHS Panchadha Maitri 算法自建实现 (L576-596)
  • Sade Sati 判定位于 calc_transits() L409-418
  • 支持 Gandhi 测试用例

vedic-core SKILL.md 解读方法论

  • Step 1: P1-P12 行星审计 (信号分诊 A/B/C 级 + PAC 联合判定)
  • Step 2: 分盘交叉分析 (D9生命矩阵继承铁律 + D10/D4/D5)
  • Step 3: 宫位诊断 (管理者/租客/相位/硬件四维度 + Dasha事件关联)
  • Step 4: 十大板块总结 (人格/财富/事业/感情/健康/教育/家庭/社交/灵性/赛道)
  • Step 5: 技术附录
  • 盲审原则(Step 1-3纯盲审,禁止反推)
  • 语言风格规则(70%通俗+20%数据+10%技术注释)
  • Q&A模式(完成报告后答疑)

resource/yogas.md 格局列表

24种Yoga: Dharma-Karma, Dhana, Raja, Viparita Raja, Gajakesari, Chandra-Mangala, Kemadruma, Pancha Mahapurusha (Ruchaka/Bhadra/Hamsa/Malavya/Shasha)

与当前 yinduzhanxing Skill 对比

功能 vedic-astro-skills 当前 jyotish-vedic-astrology
计算引擎 swisseph + PyJHora + dashaflow swisseph + dashaflow
核心解读 极详细 (3000行SKILL.md, KN Rao体系) 分散在各模块
P1-P12体系 完整定义
格局列表 24种Yoga + 评估框架 基本Yoga
宫位诊断 管理者/租客/相位/硬件四维度 基础宫位分析
报告生成 HTML打包工具 (report_builder.py)
出生时间校正 time_scan.py
解读方法论 盲审原则/信号分诊/PAC联合判定 基础解读规则

项目2: diliprk/VedicAstro (MIT, 63 stars)

仓库: https://github.com/diliprk/VedicAstro 本地路径: VedicAstro/ 许可证: MIT (需确认,仓库无LICENSE文件,但README标注MIT)

目录结构

VedicAstro/
├── vedicastro/
│   ├── __init__.py            # 空文件
│   ├── VedicAstro.py         # ★ 主类 VedicHoroscopeData (615行)
│   ├── horary_chart.py       # KP Horary 方法
│   ├── utils.py              # 工具函数
│   └── data/
│       └── KP_SL_Divisions.csv  # KP SubLord 度数表 (249条)
└── test_suite/
    ├── horary_functions_test.py
    └── swe_const.py

Python 文件及 main函数

文件路径 行数 main函数 功能
vedicastro/VedicAstro.py 615 - KP Sublord/Subsublord 计算引擎
vedicastro/horary_chart.py 149 L131 KP Horary 上升校正
vedicastro/utils.py 162 - UTC/DMS/日期工具
test_suite/horary_functions_test.py - - 测试

KP Sublord/Subsublord 计算逻辑 ★★★

核心函数: VedicHoroscopeData.get_rl_nl_sl_data() (L241-288)

def get_rl_nl_sl_data(self, deg: float):
    """
    返回: Rashi Lord, Nakshatra, Nakshatra Pada, Nakshatra Lord, 
          Sub Lord, Sub Sub Lord
    """
    duration = [7, 20, 6, 10, 7, 18, 16, 19, 17]  # Vimshottari年份
    lords = ["Ketu", "Venus", "Sun", "Moon", "Mars", "Rahu", "Jupiter", "Saturn", "Mercury"]
    star_lords = lords * 3  # 27 Nakshatras
    
    # 1. 星座主 (Sign Lord): 每30度一个星座
    sign_index = int(sign_deg // 30)
    
    # 2. Nakshatra: 每13.332度一个星宿
    nakshatra_index = int(sign_deg // 13.332)
    pada = int((nakshatra_deg % 13.332) // 3.325) + 1
    
    # 3. KP SubLord/SubSubLord 算法 (KP经典三段嵌套)
    deg = deg - 120 * int(deg / 120)  # 归化到[0,120)
    degcum = 0
    i = 0
    while i < 9:
        deg_nl = 360 / 27           # Nakshatra跨度
        j = i
        while True:
            deg_sl = deg_nl * duration[j] / 120  # Sublord跨度
            k = j
            while True:
                deg_ss = deg_sl * duration[k] / 120  # SubSubLord跨度
                degcum += deg_ss
                if degcum >= deg:
                    return {
                        "Nakshatra": ..., "Pada": ...,
                        "NakshatraLord": ..., "RasiLord": ...,
                        "SubLord": lords[j],
                        "SubSubLord": lords[k]
                    }
                k = (k + 1) % 9
                if k == j: break
            j = (j + 1) % 9
            if j == i: break
        i += 1

KP三段嵌套算法说明:

  1. 外层循环: 9个Nakshatra主星 (i=0..8)
  2. 中层循环: 该Nakshatra下的9个SubLord (j从i开始循环)
  3. 内层循环: 该SubLord下的9个SubSubLord (k从j开始循环)
  4. 每个SubLord跨度 = (Nakshatra跨度 × Dasha年数) / 120
  5. 每个SubSubLord跨度 = (SubLord跨度 × Dasha年数) / 120
  6. 当累积度数 >= 目标度数时,返回对应的lords[j]和lords[k]

其他KP功能:

  • get_planet_wise_significators(): 行星级别ABCD significator表
  • get_house_wise_significators(): 宫位级别ABCD significator表
  • get_consolidated_chart_data(): 按星座汇总的星盘数据
  • get_transit_details(): 行运数据含 RL/NL/SL
  • horary_chart.py: KP Horary上升时间查找算法 (逐秒扫描)

依赖

  • flatlib: 天文计算 (基于Swiss Ephemeris)
  • polars: 数据处理
  • timezonefinder, pytz: 时区管理
  • prettytable: 表格输出

与当前 yinduzhanxing Skill 对比

功能 VedicAstro 当前 jyotish-vedic-astrology
KP Sublord 完整实现 (三段嵌套) 未实现
KP SubSubLord 完整实现 未实现
KP ABCD Significators 完整实现 未实现
KP Horary 上升时间查找 + KP_SL_Divisions.csv 未实现
基础星盘 flatlib (Whole Sign/Placidus) swisseph
Vimshottari Dasha 自建实现 dashaflow

项目3: rishi-ai-mcp (MIT, PyPI v1.1.0)

仓库: https://github.com/adarshj322/rishi-ai-mcp PyPI: https://pypi.org/project/rishi-ai-mcp/ 本地路径: rishi-ai-mcp/ 许可证: MIT License (Copyright (c) 2026 Adarsh J)

目录结构

rishi-ai-mcp/
├── rishi_ai_mcp.py            # ★ MCP Server 主文件 (223行)
├── test_rishi_ai_mcp.py
├── pyproject.toml
├── LICENSE
├── README.md
├── AGENTS.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── system_prompt.md
├── kilo.json
├── .agents/
│   ├── rules/rishi-ai.md
│   ├── skills/               # 15个 Skill 目录
│   │   ├── career-analysis/SKILL.md
│   │   ├── children-analysis/SKILL.md
│   │   ├── education-analysis/SKILL.md
│   │   ├── finance-analysis/SKILL.md
│   │   ├── full-reading/SKILL.md     # ★ 最完整的分析流程
│   │   ├── geopolitics-analysis/SKILL.md
│   │   ├── health-analysis/SKILL.md
│   │   ├── marriage-analysis/SKILL.md
│   │   ├── muhurtha-analysis/SKILL.md  # ★ Muhurtha 工作流
│   │   ├── past-life-analysis/SKILL.md
│   │   ├── physicalintimacy-analysis/SKILL.md
│   │   ├── relationship-analysis/SKILL.md
│   │   ├── spiritual-analysis/SKILL.md
│   │   └── spouse-profiling/SKILL.md
│   └── workflows/             # 对应每个 Skill 的 workflow 文档
├── .cursor/                   # Cursor IDE 配置
├── .kilo/                     # Kilo IDE 配置
└── .vscode/                   # VS Code 配置

Python 文件

文件路径 行数 main函数 功能
rishi_ai_mcp.py 223 L216 main() MCP Server 入口,5个工具

架构说明

rishi-ai-mcp 是一个 薄封装层,核心计算全部委托给 dashaflow 库:

from dashaflow import (
    cast_chart,          # cast_vedic_chart 工具
    cast_transit,        # cast_transit_chart 工具 (含 Sade Sati)
    calculate_compatibility,  # calculate_compatibility_tool 工具
    check_muhurtha,      # check_muhurtha_tool 工具
    analyze_career,      # analyze_career_chart 工具
)

5个MCP工具:

  1. cast_vedic_chartdashaflow.cast_chart() - 完整出生星盘
  2. cast_transit_chartdashaflow.cast_transit() - 行运 + Sade Sati
  3. calculate_compatibility_tooldashaflow.calculate_compatibility() - 16因素合婚
  4. check_muhurtha_tooldashaflow.check_muhurtha() - 择时评估
  5. analyze_career_chartdashaflow.analyze_career() - D10职业分析

Sade Sati 判定逻辑 (位于 dashaflow/vedic_calculator.py) ★★★

# vedic_calculator.py L646-668
sade_sati_active = False
sade_sati_phase = None
dist = (saturn_sign_idx - natal_moon_idx) % 12
if dist == 11:
    sade_sati_active = True
    sade_sati_phase = "rising (12th from Moon)"
elif dist == 0:
    sade_sati_active = True
    sade_sati_phase = "peak (over Moon)"
elif dist == 1:
    sade_sati_active = True
    sade_sati_phase = "setting (2nd from Moon)"
# 输出: { "active": bool, "phase": str, "saturn_transit_sign": str, "natal_moon_sign": str }

Sade Sati三阶段:

  • Phase 1 (上升期): Saturn在月亮星座前一个星座 (第12宫)
  • Phase 2 (高峰期): Saturn在月亮星座同宫
  • Phase 3 (衰退期): Saturn在月亮星座后一个星座 (第2宫)
  • 仅基于月亮星座(sign)判定,不含degree精度

Muhurtha 选择逻辑 (位于 dashaflow/muhurtha.py) ★★★

支持的6种活动: marriage, travel, business, education, house_entry, medical

每个活动有独立配置:

  • good_nakshatras: 吉星宿集合
  • good_tithis: 吉月相日集合
  • good_lagnas / good_weekdays / moon_signs: 条件字段

评估算法 (evaluate_muhurtha()):

  1. Panchang Suddhi (通用): 排除不吉的Tithi/Nakshatra/Yoga
  2. 活动专属Nakshatra检查: 当前星宿是否在活动吉星宿列表中
  3. 活动专属Tithi检查: 当前月相日是否在活动吉日中
  4. Weekday检查: 星期是否符合活动要求
  5. Lagna检查: 上升星座是否在活动吉升星座中
  6. Moon sign检查: (仅business活动)
  7. 婚姻特殊Doshas检查:
    • Sagraha Dosha: Moon合相任何行星
    • Shashtashta Dosha: Moon在6/8/12宫
    • Bhrigupta Shatka: Venus在6宫
    • Kujaasthama: Mars在8宫
  8. 第8宫检查: (marriage/medical/house_entry) 第8宫不应有行星

评分: score = positive × 10 - negative × 15 判定: auspicious / mixed_favorable / mixed / inauspicious

Muhurtha SKILL.md 额外规则 (rishi-ai-mcp/.agents/skills/muhurtha-analysis/SKILL.md):

  • Tarabala: 行运月亮星宿不能是出生星宿的第3/5/7个Tara
  • Chandrabala: 行运月亮不能落在出生月亮星座的6/8/12宫
  • Lagna Shuddhi: 行运上升宫不应有凶星
  • Gandanta Moon 检查
  • Kaal Sarpa 检查

与当前 yinduzhanxing Skill 对比

功能 rishi-ai-mcp 当前 jyotish-vedic-astrology
Sade Sati dashaflow 内置 (含三阶段判定) engine.py 内置 (L409-418, 同样三阶段)
Muhurtha dashaflow 完整实现 (6活动+评分) 未实现
MCP Server FastMCP 标准实现 panchanga_api 有部分实现
解读Skill 15个领域SKILL.md 分散在各模块
婚姻合盘 16因素 Ashtakoot + Kuja Dosha 部分实现
职业分析 D10 + 10宫分析 基础分析

可复用代码提取建议

优先级最高 ★★★

1. KP Sublord/Subsublord 计算算法

来源: VedicAstro/vedicastro/VedicAstro.py L241-288 方法: get_rl_nl_sl_data() 可直接复制: 三段嵌套循环的 KP 经典算法,输入度数输出 RL/NL/SL/SSL 需要适配: flatlib → swisseph 天文接口;polars → 标准 Python 数据结构

2. Panchadha Maitri (五重友谊) 尊贵度算法

来源: vedic-astro-skills/engine.py L528-596 方法: 自建 BPHS Panchadha Maitri 实现 可直接复制: NATURAL_REL表 + COMPOUND_TABLE + 判定逻辑 注意: 不依赖 dashaflow 的 dignity 模块,是独立实现

优先级高 ★★

3. Muhurtha 择时评估系统

来源: dashaflow/muhurtha.py (已在 references 中) 方法: evaluate_muhurtha() + ACTIVITY_RULES 可直接复用: 6活动规则字典 + 评分算法 + 婚姻Doshas检查 可增强: 集成 rishi-ai-mcp SKILL.md 中的 Tarabala/Chandrabala 规则

4. vedic-core 解读方法论

来源: vedic-astro-skills/antigravity/skills/vedic-core/ 价值: 极详细的 SKILL.md + 5个resource文件 可复用:

  • house_framework.md: 宫位诊断四维度 + Dasha事件推导硬约束
  • p1_p12.md: P1-P12行星审计参数体系
  • yogas.md: 24种Yoga定义 + 评估框架 + 赛道合成
  • report_rules.md: HTML报告打包规则

优先级中 ★

5. rishi-ai-mcp 领域Skill MD

来源: rishi-ai-mcp/.agents/skills/ (15个目录) 价值: 15个领域的专业占星解读工作流 亮点: full-reading/SKILL.md (最完整分析流程), muhurtha-analysis/SKILL.md (择时工作流)

6. KP Horary 上升时间查找

来源: VedicAstro/horary_chart.py 方法: find_exact_ascendant_time() + KP_SL_Divisions.csv 适配工作量大: 依赖 flatlib 天文库,需迁移到 swisseph


已有基础对比总结

所有三个项目的核心计算能力(dashaflow)已经存在于 references/open_source_sources/dashaflow/ 目录中:

  • dashaflow/vedic_calculator.py: 含 Sade Sati L646-668
  • dashaflow/muhurtha.py: 完整 Muhurtha 评估系统
  • dashaflow/dignity.py: 尊贵度计算
  • dashaflow/jaimini.py: Jaimini Karakas
  • dashaflow/matchmaking.py: 合婚
  • dashaflow/career.py: 职业分析

新获得的增量价值:

  1. KP Sublord/Subsublord (VedicAstro) - 核心算法级新增
  2. 解读方法论 (vedic-astro-skills) - 人话解读框架级新增
  3. 15个领域 Skill MD (rishi-ai-mcp) - 工作流级别新增
  4. Panchadha Maitri 自建 (vedic-astro-skills) - 可替代dashaflow依赖