From 5e62ec5d48e9ef654ef9d32eb4dce23b01b56d7a Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Thu, 4 Jun 2026 05:57:38 +0800 Subject: [PATCH] chore: cleanup darakaraka dead code + fix SKILL.md trigger keywords --- SKILL.md | 2 +- scripts/jaimini.py | 215 --------------------------------------------- 2 files changed, 1 insertion(+), 216 deletions(-) diff --git a/SKILL.md b/SKILL.md index db928207..0c62b6bd 100644 --- a/SKILL.md +++ b/SKILL.md @@ -1,7 +1,7 @@ --- name: jyotish-vedic-astrology version: 6.0.15 -description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、PDF星盘、读取PDF、分析PDF星盘、现代解读、误判纠错、Varga分盘、综合分析、过境分析、合盘、婚姻匹配、年运盘、Prashna、Argala、Jaimini、KP系统、Shadbala、Ashtakavarga、HTML报告、深度解盘。 +description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、PDF星盘、读取PDF、分析PDF星盘、现代解读、误判纠错、Varga分盘、综合分析、过境分析、合盘、婚姻匹配、年运盘、Prashna、Argala、Jaimini、Shadbala、Ashtakavarga、HTML报告、深度解盘。 --- # 印度占星专业解盘与推运系统 diff --git a/scripts/jaimini.py b/scripts/jaimini.py index 440e9704..43d0f677 100644 --- a/scripts/jaimini.py +++ b/scripts/jaimini.py @@ -339,220 +339,5 @@ def _karakamsha_interpretations(sign, lord): } -# ============================================================================ -# Darakaraka (DK) 计算 —— v6.0.14 新增 -# ============================================================================ - -def calc_darakaraka(planet_degrees: Dict[str, float], - use_8karaka: bool = False) -> Dict: - """ - 计算 Darakaraka (DK) —— Jaimini 体系中代表配偶/伴侣的行星。 - - 规则(7星制): - - 排除 Rahu/Ketu,剩余7颗行星按度数升序排列 - - 度数最低的行星 = Darakaraka (DK) —— 配偶特质星 - - 度数最高的行星 = Atmakaraka (AK) —— 灵魂星 - - 规则(8星制): - - 含 Rahu,8颗行星按度数升序排列 - - 度数最低的 = DK,度数最高的 = AK - - 参数: - planet_degrees: {行星名: 星座内度数(0-30)} - use_8karaka: 是否使用8星制(含Rahu) - - 返回: - { - 'DK': {'planet': str, 'degree': float, 'rank': 7(7星制)或8(8星制)}, - 'AK': {'planet': str, 'degree': float, 'rank': 1}, - 'all_karaka': {rank: {'planet','degree','name'}}, - 'dk_interpretation': str, - 'marriage_significator': str, - } - """ - if use_8karaka: - planets = {k: v for k, v in planet_degrees.items() if k != 'Ketu'} - karaka_def = KARAKA_8 - total = 8 - else: - planets = {k: v for k, v in planet_degrees.items() - if k not in ('Rahu', 'Ketu')} - karaka_def = KARAKA_7 - total = 7 - - # 按度数升序排列(度数最低=DK) - sorted_p = sorted(planets.items(), key=lambda x: x[1]) - - all_karaka = {} - dk_info = None - ak_info = None - - for rank, (pname, deg) in enumerate(sorted_p[:total], 1): - karaka_name = karaka_def[rank] - entry = { - 'planet': pname, - 'degree_in_sign': round(deg, 4), - 'rank': rank, - 'name': karaka_name, - 'cn_name': KARAKA_CN.get(karaka_name, karaka_name), - 'domain': KARAKA_DOMAINS.get(karaka_name, ''), - } - all_karaka[rank] = entry - if karaka_name == 'Darakaraka': - dk_info = entry - if karaka_name == 'Atmakaraka': - ak_info = entry - - # 解读 DK - dk_planet = dk_info['planet'] if dk_info else '?' - dk_interp = _dk_interpretation(dk_planet) - marriage_sig = _marriage_significator(dk_planet, ak_info['planet'] if ak_info else '?') - - return { - 'DK': dk_info, - 'AK': ak_info, - 'all_karaka': all_karaka, - 'dk_planet': dk_planet, - 'dk_degree': dk_info['degree_in_sign'] if dk_info else None, - 'dk_interpretation': dk_interp, - 'marriage_significator': marriage_sig, - 'use_8karaka': use_8karaka, - } -def _dk_interpretation(dk_planet: str) -> str: - """Darakaraka 行星的配偶特质解读""" - interpretations = { - 'Sun': '配偶有权威感、领导力强,可能比命主年长或地位高;关系中需要尊重和认可', - 'Moon': '配偶情感丰富、重视家庭,情绪敏感;关系以情感连接为核心', - 'Mars': '配偶行动力强、有魄力,可能性格急躁;关系中需要空间和尊重', - 'Mercury': '配偶聪明、善于沟通,可能从事文书/教育/商业;关系以交流为基础', - 'Jupiter': '配偶有智慧、教导型人格,可能从事教育/法律/宗教;关系有成长导向', - 'Venus': '配偶有魅力、重视美学和享受,浪漫且物质条件好;关系充满爱和美好', - 'Saturn': '配偶成熟稳重、有责任感,可能年龄差距较大;关系需要时间和承诺', - 'Rahu': '配偶背景复杂、有野心,可能来自不同文化/阶层;关系有非常规色彩', - 'Ketu': '配偶有灵性倾向、可能疏离,关系有超脱/宿命感', - } - return interpretations.get(dk_planet, f'DK={dk_planet},需结合全盘分析') - - -def _marriage_significator(dk: str, ak: str) -> str: - """AK-DK 关系对婚姻的综合指示""" - # AK=灵魂,DK=配偶,两者关系反映灵魂与伴侣的互动模式 - relations = { - ('Sun', 'Moon'): '灵魂(Sun)与情感(Moon)结合,婚姻中有父性保护色彩', - ('Moon', 'Sun'): '情感(Moon)与权威(Sun)结合,配偶可能是引导者/权威人物', - ('Venus', 'Jupiter'): '爱(Venus)与智慧(Jupiter)结合,婚姻有成长和教育意义', - ('Jupiter', 'Venus'): '智慧(Jupiter)与爱(Venus)结合,配偶带来美感和快乐', - } - key = (ak, dk) - return relations.get(key, f'AK={ak}与DK={dk}的组合,需结合两者星座/宫位深入分析') - - -def calc_dk_marriage_analysis(dk_planet: str, - dk_sign: str, - dk_house: int, - ak_sign: str, - ak_house: int, - venus_sign: str, - venus_house: int, - seventh_lord: str, - seventh_lord_sign: str) -> Dict: - """ - 综合 DK 信息进行婚姻分析(v6.0.14 新增) - - 参数: - dk_planet: DK行星名 - dk_sign: DK所在星座 - dk_house: DK所在宫位(1-12) - ak_sign: AK所在星座 - ak_house: AK所在宫位 - venus_sign: Venus所在星座 - venus_house: Venus所在宫位 - seventh_lord: 第七宫宫主星 - seventh_lord_sign: 第七宫宫主星所在星座 - - 返回:婚姻分析字典 - """ - # DK 在宫位的解读 - dk_house_meaning = _dk_house_meaning(dk_house) - - # Venus 与 DK 的关系 - venus_dk_relation = _venus_dk_relation(venus_sign, dk_sign, venus_house, dk_house) - - # 第七宫分析 - seventh_analysis = _seventh_house_analysis(seventh_lord, seventh_lord_sign) - - # 综合婚姻时机指示 - marriage_timing = _marriage_timing_indication(dk_planet, venus_sign, seventh_lord) - - return { - 'dk_planet': dk_planet, - 'dk_sign': dk_sign, - 'dk_house': dk_house, - 'dk_house_meaning': dk_house_meaning, - 'venus_dk_relation': venus_dk_relation, - 'seventh_analysis': seventh_analysis, - 'marriage_timing': marriage_timing, - 'summary': f"配偶星DK={dk_planet}在{dk_sign}第{dk_house}宫;{dk_house_meaning}", - } - - -def _dk_house_meaning(house: int) -> str: - """DK所在宫位对婚姻的意义""" - meanings = { - 1: '配偶与命主高度相似,自我认同与伴侣融合', - 2: '配偶带来财富/家庭资源,可能通过婚姻改善经济状况', - 3: '配偶是命主的勇气来源,可能有兄弟姐妹牵线', - 4: '配偶带来情感安全感,家庭和谐,可能有房产', - 5: '配偶与子女/创造力有关,浪漫关系,可能有年龄差', - 6: '配偶可能是工作伙伴/竞争对手,关系中需注意健康/债务', - 7: '配偶是命主的直接伙伴,婚姻关系最直接', - 8: '配偶带来深层转化,可能涉及神秘事务/遗产/危机', - 9: '配偶有灵性/哲学导向,可能来自不同文化背景', - 10: '配偶与事业/社会地位有关,可能因工作相识', - 11: '配偶带来收益/社交网络,朋友变伴侣', - 12: '配偶涉及潜意识/海外/隐秘事务,可能是异地/外籍', - } - return meanings.get(house, '') - - -def _venus_dk_relation(venus_sign: str, dk_sign: str, - venus_house: int, dk_house: int) -> str: - """Venus与DK的关系分析""" - # 简化:看两者是否同一星座或相邻宫位 - venus_idx = SIGNS.index(venus_sign) if venus_sign in SIGNS else -1 - dk_idx = SIGNS.index(dk_sign) if dk_sign in SIGNS else -1 - - if venus_idx >= 0 and dk_idx >= 0: - diff = abs(venus_idx - dk_idx) - if diff <= 1 or diff >= 11: - return 'Venus与DK能量融合,爱与婚姻高度一致' - elif diff <= 3: - return 'Venus与DK有一定张力,爱情与婚姻选择可能有分歧' - else: - return 'Venus与DK度数较远,爱情观与婚姻现实有差距' - - return 'Venus/DK关系需结合全盘确定' - - -def _seventh_house_analysis(seventh_lord: str, seventh_lord_sign: str) -> str: - """第七宫宫主星分析""" - lord_meanings = { - 'Sun': '配偶有领导力,可能从事管理/政府工作', - 'Moon': '配偶情感丰富,可能从事护理/餐饮/海洋相关', - 'Mars': '配偶有行动力,可能从事技术/军事/体育', - 'Mercury': '配偶聪明善辩,可能从事教育/写作/商业', - 'Jupiter': '配偶有智慧,可能从事教育/法律/宗教', - 'Venus': '配偶有魅力,可能从事艺术/娱乐/美容', - 'Saturn': '配偶成熟稳重,可能从事结构/建筑/长期项目', - } - return lord_meanings.get(seventh_lord, f'第七宫主星={seventh_lord},需结合全盘') - - -def _marriage_timing_indication(dk_planet: str, venus_sign: str, - seventh_lord: str) -> str: - """婚姻时机的简化指示(需结合Dasha/Transit使用)""" - return (f"婚姻窗口与DK={dk_planet}、Venus在{venus_sign}、" - f"第七宫主星={seventh_lord}的Dasha/Transit高度相关;" - f"具体应期需结合Vimshottari Dasha和Gochara(过境)确定")