v3.9.0: Prashna问事占星完整系统
- 新增 prashna-complete-guide.md (350行, 10大计算体系+十步断卦+35 Sahams) - 新增 prashna.py 引擎 (240行, 8种CLI模式) - 新增 single-event-inquiry-protocol.md 单事推理模板 - jyotish_engine.py 新增第23子命令 prashna - SKILL.md v3.8.0→v3.9.0, 新增§14 Prashna能力表+触发词
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
---
|
||||
name: jyotish-vedic-astrology
|
||||
version: 3.8.0
|
||||
description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。覆盖行星配置、Yoga格局、Nakshatra解读、宫位分析、现代生活场景映射、现代措辞解读、案例对比分析、自动出生时间矫正、常见误判纠错、Dasha+Transit推运、精确预测、PDF星盘读取、Swiss Ephemeris计算引擎、星盘计算、分盘计算、名人案例查询、Shadbala六重力量、Ashtakavarga八分法(BPHS完整表SAV=337)、Hermes记忆系统、事件预测、R1-R10数学验证(含R2b BAV列→SAV列校验)、P1-P12行星审计(含P3仓库耦合+P8年龄状态+冲突仲裁3条规则)、验前事、MD→HTML报告生成(羊皮纸主题)、BPHS十六分盘精确计算(D2-D60)、度数精确相位系统(Drishti)、Jaimini完整系统(Chara Karaka 7/8+Chara Dasha+Karakamsha)、高级Nakshatra分析(Tara Bala+Sub-Lord KP系统)、Argala门闩系统(Virodha反干预)、Tajika年运盘(Muntha+YearLord+Mudda Dasha+Tri-Pataka三旗)、合盘分析(Ashta Koota 36分制+Mangal Dosha+Papasamya+Dasha兼容性)、配偶多层综合分析(DK+7宫主+金星+木星+昼夜区分+Rahu辅助六层交叉确认)、行星度数精确旺衰判定(精确度数+渐变效应+Moolatrikona区间+行星生命阶段+Sandhi交界点)、燃烧阈值、落陷取消Neecha Bhanga、Sect昼夜区分法、Pushkara Navamsha、Vargottama。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、吠陀占星、印占、PDF星盘、读取PDF、分析PDF星盘、矫正出生时间、出生时间验证、生时矫正、现代解读、现代措辞、误判纠错、错题本、Varga分盘、全球占星师方法论、三合盘、综合分析、过境分析、Double Transit、Sade Sati、合盘、婚姻匹配、关系分析、Koota、Mangal Dosha、年运盘、Varshaphala、太阳返照、Tajika、星宿速查、综合解盘工作流、应期预测、推运应期、事件时机、什么时候结婚、什么时候升职、什么时候发财、Argala、门闩、行星干预、Dasa收敛、Yogini大运、Chara Dasha、AI解盘、算星盘、排盘、计算星盘、查名人、Shadbala、六重力量、Ashtakavarga、八分法、行星力量、记忆系统、事件预测、验证、校验、审计、验前事、R1-R10、P1-P12、仓库耦合、冲突仲裁、报告生成、HTML报告、精确相位、Drishti、Jaimini、Chara Karaka、Atmakaraka、Darakaraka、Karakamsha、Tara Bala、Sub-Lord、KP系统、Navamsa、D9、D60、Shashtyamsa、十六分盘、门闩分析、Muntha、年主星、三旗系统、合盘评分、Nadi Koota、Gana、Yoni、Papasamya、Dasha兼容、配偶分析、配偶星、配偶征象、婚姻分析、配偶画像、DK配偶星、多层配偶、昼夜区分、旺衰度数、行星燃烧、落陷取消、Neecha Bhanga、Sect昼夜、Pushkara、Vargottama、行星尊严、Moolatrikona、行星生命阶段、Avastha、深度解盘、全面分析、星盘深度阅读、频率分析、收敛验证、婚姻深层分析、配偶画像、综合深度分析。
|
||||
version: 3.9.0
|
||||
description: 印度占星(Jyotish)专业解盘与推运系统。核心能力:PDF星盘输入→严谨解盘→精确推运应期输出。覆盖行星配置、Yoga格局、Nakshatra解读、宫位分析、现代生活场景映射、现代措辞解读、案例对比分析、自动出生时间矫正、常见误判纠错、Dasha+Transit推运、精确预测、PDF星盘读取、Swiss Ephemeris计算引擎、星盘计算、分盘计算、名人案例查询、Shadbala六重力量、Ashtakavarga八分法(BPHS完整表SAV=337)、Hermes记忆系统、事件预测、R1-R10数学验证(含R2b BAV列→SAV列校验)、P1-P12行星审计(含P3仓库耦合+P8年龄状态+冲突仲裁3条规则)、验前事、MD→HTML报告生成(羊皮纸主题)、BPHS十六分盘精确计算(D2-D60)、度数精确相位系统(Drishti)、Jaimini完整系统(Chara Karaka 7/8+Chara Dasha+Karakamsha)、高级Nakshatra分析(Tara Bala+Sub-Lord KP系统)、Argala门闩系统(Virodha反干预)、Tajika年运盘(Muntha+YearLord+Mudda Dasha+Tri-Pataka三旗)、合盘分析(Ashta Koota 36分制+Mangal Dosha+Papasamya+Dasha兼容性)、配偶多层综合分析(DK+7宫主+金星+木星+昼夜区分+Rahu辅助六层交叉确认)、行星度数精确旺衰判定(精确度数+渐变效应+Moolatrikona区间+行星生命阶段+Sandhi交界点)、燃烧阈值、落陷取消Neecha Bhanga、Sect昼夜区分法、Pushkara Navamsha、Vargottama。触发词:印度占星、吠陀占星、Jyotish、解盘、推运、星盘分析、Dasha、Transit、Nakshatra、Yoga、出生时间矫正、吠陀占星、印占、PDF星盘、读取PDF、分析PDF星盘、矫正出生时间、出生时间验证、生时矫正、现代解读、现代措辞、误判纠错、错题本、Varga分盘、全球占星师方法论、三合盘、综合分析、过境分析、Double Transit、Sade Sati、合盘、婚姻匹配、关系分析、Koota、Mangal Dosha、年运盘、Varshaphala、太阳返照、Tajika、星宿速查、综合解盘工作流、应期预测、推运应期、事件时机、什么时候结婚、什么时候升职、什么时候发财、Argala、门闩、行星干预、Dasa收敛、Yogini大运、Chara Dasha、AI解盘、算星盘、排盘、计算星盘、查名人、Shadbala、六重力量、Ashtakavarga、八分法、行星力量、记忆系统、事件预测、验证、校验、审计、验前事、R1-R10、P1-P12、仓库耦合、冲突仲裁、报告生成、HTML报告、精确相位、Drishti、Jaimini、Chara Karaka、Atmakaraka、Darakaraka、Karakamsha、Tara Bala、Sub-Lord、KP系统、Navamsa、D9、D60、Shashtyamsa、十六分盘、门闩分析、Muntha、年主星、三旗系统、合盘评分、Nadi Koota、Gana、Yoni、Papasamya、Dasha兼容、配偶分析、配偶星、配偶征象、婚姻分析、配偶画像、DK配偶星、多层配偶、昼夜区分、旺衰度数、行星燃烧、落陷取消、Neecha Bhanga、Sect昼夜、Pushkara、Vargottama、行星尊严、Moolatrikona、行星生命阶段、Avastha、深度解盘、全面分析、星盘深度阅读、频率分析、收敛验证、婚姻深层分析、配偶画像、综合深度分析、Prashna问事占星、问事占星、时卦、卜卦占星、问卜、Horary、问事、提问占星、Arudha Lagna、映像上升、Trisphuta、三重合点、Sphuta、Gulika、古利卡、Saham、敏感点、失物查询、寻物、Chor Graha、盗贼星、Kunda验证、Prasna Marga、十步断卦。
|
||||
---
|
||||
|
||||
# 印度占星专业解盘与推运系统
|
||||
@@ -208,6 +208,48 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力
|
||||
- **分盘深度阅读**:19分盘系统化三级方法论(Level 1-3)+行星频率分析核心技法(≥40%=核心主题)+Vargottama检测矩阵+分盘组合阅读模式(三角/生命线/财富链/关系链)+Swiss Ephemeris交叉验证 → 详见 `references/divisional-chart-deep-reading.md`
|
||||
- **综合深度分析工作流**:12模块完整工作流(D1→特殊Lagna→Karaka→Shadbala→Avastha→Bhava Bala→Vimsopaka→19分盘→AV→Dasha收敛→D9婚姻→综合结论)+PDF 11页提取最佳实践+引擎调用流程+报告生成+质量检查清单 → 详见 `references/deep-analysis-complete-workflow.md`
|
||||
|
||||
### 14. Prashna 问事占星系统 ⭐ v3.9.0
|
||||
|
||||
**核心原理:** 基于提问时刻铸造即时星盘,通过共时性原则(Synchronicity)回答具体问题。不需要出生数据。
|
||||
|
||||
**十大核心计算模块:**
|
||||
|
||||
| 模块 | 功能 | 说明 |
|
||||
|------|------|------|
|
||||
| Prashna星盘 | 基于提问时间/地点铸造 | Swiss Ephemeris精确计算 |
|
||||
| Arudha Lagna | 映像上升点(真实vs表象) | BPHS经典法+1/7宫例外规则 |
|
||||
| Trisphuta | 三重合点(日+月+Gulika) | Prasna Marga Ch.5 |
|
||||
| Catusphuta/Pancasphuta | 四重/五重组合 | 递进式综合判断 |
|
||||
| Gulika | 古利卡(土星暗影子星) | 八等分法计算 |
|
||||
| Prana/Deha/Mrityu | 生命三维度Sphuta | 寿命/危险判断 |
|
||||
| 35 Sahams | 敏感点体系 | B.V. Raman公式+30°修正 |
|
||||
| Kunda验证 | 上升点正确性验证 | 81常数法 |
|
||||
| Chor Graha | 失物/窃贼分析 | 方向+窃贼+恢复概率 |
|
||||
| Mrityu Chakra | 死亡轮(重病专用) | Navamsa+Mrityu Rashi |
|
||||
|
||||
**十步断卦框架:**
|
||||
1. 评估星盘活力(上升+月亮)
|
||||
2. 对比 Lagna vs Arudha Lagna
|
||||
3. 检验相关宫位
|
||||
4. 比较征象星力量
|
||||
5. 检查 Tajika Yoga(Ithasala等)
|
||||
6. 计算 Sphuta 组合
|
||||
7. 排查阻碍因素
|
||||
8. 权衡吉凶证词
|
||||
9. 时间判断
|
||||
10. 大运/过境辅助验证
|
||||
|
||||
**引擎命令:**
|
||||
```bash
|
||||
python3 scripts/prashna.py chart --datetime "2026-04-25 14:30" --lat 39.9 --lon 116.4
|
||||
python3 scripts/jyotish_engine.py prashna --datetime "2026-04-25 14:30" --lat 39.9 --lon 116.4 --mode chart
|
||||
# --mode: chart|arudha|sphutas|sahams|lost-item|life|kunda
|
||||
```
|
||||
|
||||
**参考资料:** `references/prashna-complete-guide.md`(完整方法论)+ `references/kp-astrology-complete-system.md`(KP 1-249法)+ `references/tajika-yoga-complete-guide.md`(Tajika Yoga)
|
||||
|
||||
**适用场景:** 是非判断、时机选择、失物寻人、婚姻结果、事业方向、健康预后、旅行安全、诉讼胜负、财务投资
|
||||
|
||||
### 13. 计算引擎集成(Swiss Ephemeris + 数据库)⭐ v3.4.0
|
||||
|
||||
**统一引擎入口**:`scripts/jyotish_engine.py` v3.7.1(基于 Swiss Ephemeris 天文计算库)
|
||||
@@ -247,6 +289,7 @@ $PYTHON $SCRIPT <子命令> [参数]
|
||||
| `tajika` | v3.7 Tajika年运盘(Muntha + YearLord + Mudda Dasha + Tri-Pataka) | `tajika --year REDACTED_YEAR --month 4 --day 17 --hour 14 --minute 45 --lat 36.6 --lon 114.5 --tz 8 --age 33` |
|
||||
| `synastry` | v3.7 合盘分析(Ashta Koota 36分 + Mangal Dosha + Papasamya) | `synastry --moon1 310.89 --moon2 45.5 --mars1 90.43 --mars2 120.3` |
|
||||
| `report` | MD→HTML报告生成(羊皮纸主题) | `report ./report_folder --name 一楠 --lagna Leo` |
|
||||
| **`prashna`** | **⭐ v3.9 Prashna问事占星(提问时刻星盘+Arudha Lagna+Sphuta组合+Sahams+失物查询)** | `prashna --datetime "2026-04-25 14:30" --lat 39.9 --lon 116.4 --mode chart` |
|
||||
|
||||
**外部数据源**(引擎自动读取):
|
||||
- 验证数据库:`~/WorkBuddy/Claw/vedic_astrology_validation.db`(15,840条案例,10种技法准确率)
|
||||
@@ -425,7 +468,7 @@ $PYTHON $SCRIPT full-reading --year YYYY --month MM --day DD --hour HH --minute
|
||||
|
||||
## 参考资料
|
||||
|
||||
本Skill包含以下参考资料(存储在references/目录),共81个文件:
|
||||
本Skill包含以下参考资料(存储在references/目录),共82个文件:
|
||||
|
||||
### AI解盘工作流(1个)⭐ v3.2 新增
|
||||
0. **ai-reading-workflow-prompt.md**:AI解盘工作流Prompt工程(7阶段完整执行引擎:PDF提取→意图路由→静态分析10步→动态推运7步→应期输出→补救→现代措辞包装)⭐⭐⭐⭐⭐
|
||||
@@ -538,6 +581,7 @@ $PYTHON $SCRIPT full-reading --year YYYY --month MM --day DD --hour HH --minute
|
||||
79. **navamsa-marriage-deep-analysis.md**:Navamsa婚姻深度分析协议(D9婚姻五维分析法+Vargottama婚姻意义+19分盘频率分析+Pushkara Navamsa婚姻解读+D9婚姻8步旗标算法实操版+D9与D1矛盾处理)⭐⭐⭐⭐⭐ v3.8.0 新增
|
||||
80. **divisional-chart-deep-reading.md**:分盘深度阅读工作流(19分盘系统化分析法:三级方法论+行星频率分析核心技法+Vargottama检测矩阵+分盘组合阅读模式+Swiss Ephemeris交叉验证)⭐⭐⭐⭐⭐ v3.8.0 新增
|
||||
81. **deep-analysis-complete-workflow.md**:综合深度分析完整工作流(12模块系统化方法:D1基础→特殊Lagna→Jaimini Karaka→Shadbala→Avastha→Bhava Bala→Vimsopaka→19分盘→Ashtakavarga→多Dasha收敛→Navamsa婚姻→综合结论+PDF提取最佳实践+引擎调用流程+报告生成+质量检查清单)⭐⭐⭐⭐⭐ v3.8.0 新增
|
||||
82. **prashna-complete-guide.md**:Prashna问事占星完整指南(十大核心计算:Arudha Lagna+Trisphuta/Catusphuta/Pancasphuta+Gulika+Prana/Deha/Mrityu Sphuta+35 Sahams+Kunda验证+Chor Graha失物+Mrityu Chakra死亡轮+十步断卦框架+8类问题专题)⭐⭐⭐⭐⭐ v3.9.0 新增
|
||||
|
||||
## 模板文件
|
||||
|
||||
@@ -568,4 +612,4 @@ $PYTHON $SCRIPT full-reading --year YYYY --month MM --day DD --hour HH --minute
|
||||
|
||||
**版本**:3.8.0
|
||||
**创建日期**:2026-04-20
|
||||
**最后更新**:2026-04-25(v3.8.0 新增深度分析方法论5篇——Shadbala实战解读方法论(五力量组合模式库+Avastha联合诊断+Bhava Bala实战解读+Vimsopaka解读+行星力量排名法)+多Dasha收敛协议(六系统交叉验证+PDF提取指南+收敛冲突处理)+Navamsa婚姻深度分析协议(D9五维分析法+Vargottama婚姻+频率分析+Pushkara+8步旗标实操)+分盘深度阅读工作流(19分盘系统化+频率分析核心技法+Vargottama检测+Swiss Ephemeris验证)+综合深度分析完整工作流(12模块方法+PDF提取最佳实践+引擎调用+报告生成+质量清单);v3.7.4 Ayanamsa修复;v3.7.3 行星尊严与度数完整参考手册;v3.7.2 配偶多层综合分析方法论;v3.7.1 full-reading全自动综合解盘+三路径路由;v3.7.0 7大新计算模块)
|
||||
**最后更新**:2026-04-25(v3.9.0 新增Prashna问事占星完整系统——prashna-complete-guide.md参考文件+prashna.py计算引擎+SKILL.md §14十步断卦框架+十大核心计算模块+引擎prashna子命令集成+失物查询Chor Graha+35 Sahams敏感点+Arudha Lagna+Trisphuta组合+Gulika计算+Mrityu Chakra死亡轮+Kunda验证法);v3.8.0 深度分析方法论5篇;v3.7.4 Ayanamsa修复;v3.7.3 行星尊严与度数完整参考手册;v3.7.2 配偶多层综合分析方法论;v3.7.1 full-reading全自动综合解盘+三路径路由;v3.7.0 7大新计算模块)
|
||||
|
||||
@@ -0,0 +1,461 @@
|
||||
# Prashna Shastra(问事占星/时卦)完整指南
|
||||
|
||||
> **版本**: v1.0 | **更新**: 2026-04-25
|
||||
> **来源经典**: Prasna Marga (Harihara), Tajika Neelakanthi, BPHS, Phaladeepika
|
||||
> **互补文件**: KP Prashna 见 `kp-astrology-complete-system.md`;Tajika Yoga 见 `tajika-yoga-complete-guide.md`
|
||||
|
||||
---
|
||||
|
||||
## 目录
|
||||
|
||||
1. [核心原理](#1-核心原理)
|
||||
2. [星盘铸造与Kunda验证](#2-星盘铸造与kunda验证)
|
||||
3. [十大核心计算体系](#3-十大核心计算体系)
|
||||
4. [征象星识别体系](#4-征象星识别体系)
|
||||
5. [十步断卦框架](#5-十步断卦框架)
|
||||
6. [问题类型专题](#6-问题类型专题)
|
||||
7. [35 Sahams 敏感点](#7-35-sahams-敏感点)
|
||||
8. [Tajika Yoga 快速参考](#8-tajika-yoga-快速参考)
|
||||
9. [死亡轮(Mrityu Chakra)](#9-死亡轮mrityu-chakra)
|
||||
10. [公式速查表](#10-公式速查表)
|
||||
|
||||
---
|
||||
|
||||
## 1. 核心原理
|
||||
|
||||
**Prashna** = 梵语"提问"。在提问瞬间铸造星盘,基于**共时性原则**——内在关切与天象的对应。《Prashna Marga》称之为 **"prashna shakti"(提问之力)**。
|
||||
|
||||
| 维度 | 本命盘 | Prashna 盘 |
|
||||
|------|--------|------------|
|
||||
| 时间基准 | 出生时刻 | 提问时刻 |
|
||||
| 覆盖范围 | 一生模式 | 单一具体问题 |
|
||||
| 出生数据 | 必需 | 不需要 |
|
||||
|
||||
**权威经典:**
|
||||
|
||||
| 经典 | 核心贡献 |
|
||||
|------|---------|
|
||||
| Prasna Marga (Nilakantha, 17世纪) | Prashna 最高权威,32章 |
|
||||
| Tajika Neelakanthi | Tajika Yoga 系统 |
|
||||
| Shatpanchasika | 古典 Prashna 经典 |
|
||||
| Krishneeyam | 喀拉拉邦 Prashna 流派 |
|
||||
|
||||
---
|
||||
|
||||
## 2. 星盘铸造与Kunda验证
|
||||
|
||||
### 2.1 铸造五要素
|
||||
|
||||
1. **精确时间** — 上升点约每2小时变化一次
|
||||
2. **精确地点** — 经纬度影响上升点
|
||||
3. **可靠计算** — Swiss Ephemeris
|
||||
4. **Kunda验证** — 验证上升点正确性
|
||||
5. **记录原话** — 问题措辞影响解读方向
|
||||
|
||||
### 2.2 Kunda 验证法(Prasna Marga Ch.5)
|
||||
|
||||
1. Lagna 经度 → 弧分
|
||||
2. × 81(Kunda 常数)
|
||||
3. ÷ 12 取余
|
||||
4. 余数 → Nakshatra
|
||||
5. 若与出生 Nakshatra(或三合)一致 → 正确
|
||||
6. 不一致 → 每差1个 Nakshatra 修正10弧分
|
||||
|
||||
**示例:** Lagna 11°34' = 694' × 81 = 56,214 ÷ 12 → 余6 = Ārdrā
|
||||
|
||||
---
|
||||
|
||||
## 3. 十大核心计算体系
|
||||
|
||||
### 3.1 Arudha Lagna(映像上升点)
|
||||
|
||||
**概念:** 揭示"表象"而非"真实"。对比 Lagna(真实)vs AL(感知)。
|
||||
|
||||
**计算(BPHS 法):**
|
||||
1. 从上升数到上升主星所在宫位,记录宫数 N
|
||||
2. 从上升主星位置数 N 个宫位 → **Arudha Lagna**
|
||||
3. **例外:若落在1宫或7宫,再数10个宫位**
|
||||
|
||||
**速查表:**
|
||||
|
||||
| 上升主星宫位 | AL宫位 | 上升主星宫位 | AL宫位 |
|
||||
|---|---|---|---|
|
||||
| 1宫 | **10宫** | 7宫 | **10宫** |
|
||||
| 2宫 | 3宫 | 8宫 | 3宫 |
|
||||
| 3宫 | 5宫 | 9宫 | 5宫 |
|
||||
| 4宫 | 4宫 | 10宫 | 4宫 |
|
||||
| 5宫 | 9宫 | 11宫 | 9宫 |
|
||||
| 6宫 | 11宫 | 12宫 | 11宫 |
|
||||
|
||||
> AL 不可能出现在 1、2、6、7、8、12 宫
|
||||
|
||||
**双主星(天蝎/水瓶)判断优先级:**
|
||||
1. 不在该星座中的行星优先
|
||||
2. 伴星更多者更强
|
||||
3. 被木星/水星 Drishti 者更强
|
||||
4. 擢升 > Mulatrikona > 本宫
|
||||
|
||||
**解读:**
|
||||
|
||||
| Lagna | AL | 解读 |
|
||||
|-------|----|------|
|
||||
| 强 | 受克 | 实际好,但感到焦虑 |
|
||||
| 弱 | 强 | 看似好,实际有问题 |
|
||||
| 强 | 强 | 内外一致,清晰 |
|
||||
| 弱 | 弱 | 实际和感知都有问题 |
|
||||
|
||||
**Bhava Pada:** 每个宫都有 Arudha(Pada),用该宫主星替代上升主星,算法相同。
|
||||
|
||||
### 3.2 Trisphuta(三重合点)
|
||||
|
||||
**公式:**
|
||||
```
|
||||
Trisphuta = 太阳经度 + 月亮经度 + 上升经度 (若≥360°则减360°)
|
||||
```
|
||||
|
||||
**Prasna Marga 修正版(更精确):**
|
||||
```
|
||||
Trisphuta = Lagna + 月亮 + Gulika
|
||||
```
|
||||
|
||||
| 落位 | 含义 |
|
||||
|------|------|
|
||||
| 吉星星座/宫位 | 正面流动 |
|
||||
| 被凶星折磨 | 内在冲突,健康问题 |
|
||||
| 6/8/12 宫 | 苦难、疾病、隐藏挣扎 |
|
||||
| 木星联系 | 保护与智慧 |
|
||||
|
||||
### 3.3 五大 Sphuta 组合(Prasna Marga 第17-18颂)
|
||||
|
||||
| 名称 | 公式 | 用途 |
|
||||
|------|------|------|
|
||||
| **Trisphuta** | Lagna + 月亮 + Gulika | 三因子 |
|
||||
| **Catusphuta** | Trisphuta + 太阳 | 四因子 |
|
||||
| **Pancasphuta** | Catusphuta + Rahu | 五因子终极 |
|
||||
|
||||
**示例:** Lagna 43°9' + 月亮 18°29' + Gulika 64°26' = **126°4'** (Trisphuta)
|
||||
|
||||
### 3.4 Prana / Deha / Mrityu Sphuta
|
||||
|
||||
| Sphuta | 含义 | 公式 |
|
||||
|--------|------|------|
|
||||
| **Prana** | 生命之息 | (Lagna × 5) + Gulika |
|
||||
| **Deha** | 身体 | (月亮 × 8) + Gulika |
|
||||
| **Mrityu** | 死亡指标 | (Gulika × 7) + 太阳 |
|
||||
|
||||
**判断:** Prana + Deha > Mrityu → 寿命长;Prana + Deha < Mrityu → 危险
|
||||
|
||||
**基于时间的替代法:** `Y = (提问 Ghatika × 35) ÷ 日长`
|
||||
|
||||
| 星期 | Mrityu (Y+) | Kala (Y−) |
|
||||
|------|---|---|
|
||||
| 日 | +30° | −30° |
|
||||
| 一 | +300° | −300° |
|
||||
| 二 | +75° | −75° |
|
||||
| 三 | +155° | −155° |
|
||||
| 四 | +120° | −120° |
|
||||
| 五 | +210° | −210° |
|
||||
| 六 | +255° | −255° |
|
||||
|
||||
### 3.5 Gulika(古利卡)
|
||||
|
||||
**概念:** 土星的暗影子行星,与业力相关。
|
||||
|
||||
**计算:** 白昼(或夜晚)均分8份 → 土星份额结束时的上升经度 = Gulika
|
||||
|
||||
| 星期 | 白天(日出后Ghatika) | 夜间(日落后Ghatika) |
|
||||
|------|---|---|
|
||||
| 日 | 26 | 10 |
|
||||
| 一 | 22 | 6 |
|
||||
| 二 | 18 | 2 |
|
||||
| 三 | 14 | 26 |
|
||||
| 四 | 10 | 22 |
|
||||
| 五 | 6 | 18 |
|
||||
| 六 | 2 | 14 |
|
||||
|
||||
> 若实际日长 ≠ 30 Ghatika,按比例调整。1 Ghatika = 24分钟。
|
||||
|
||||
### 3.6 Chor Graha(盗贼行星——失物专用)
|
||||
|
||||
| 宫位 | 代表 |
|
||||
|------|------|
|
||||
| 2宫 | 失物本身 |
|
||||
| 4宫 | 位置/安全 |
|
||||
| 7宫 | **窃贼** |
|
||||
| 8宫 | 隐藏 |
|
||||
| 11宫 | **恢复** |
|
||||
|
||||
**窃贼识别:**
|
||||
|
||||
| 条件 | 判断 |
|
||||
|------|------|
|
||||
| 7宫主凶星 + 联系Lagna | 熟人/附近人 |
|
||||
| 7宫主在 Trikasthana(6,8,12) | 隐秘/远方人 |
|
||||
| 7宫主在 Kendra(1,4,7,10) | 已知/附近人 |
|
||||
| 7宫凶星 | 有预谋盗窃 |
|
||||
| 7宫吉星 | 意外/无意拿走 |
|
||||
|
||||
**物品行星对应:** 水星=文件/手机、金星=珠宝、月亮=个人物品、火星=工具/车辆、木星=书籍/黄金、土星=旧物/家具、Rahu=欺诈/网络、Ketu=疏忽遗失
|
||||
|
||||
**方向(月亮或指标星星座元素):** 火象→东、土象→南、风象→西、水象→北
|
||||
|
||||
### 3.7 Sneha / Viraha 组合
|
||||
|
||||
- **Sneha(友善):** 征象星互相友好星座/相位 → 有利
|
||||
- **Viraha(敌对):** 征象星互相敌对星座/无相位 → 不利
|
||||
|
||||
### 3.8 Arudha Sphuta
|
||||
|
||||
```
|
||||
Arudha Sphuta = Arudha Rashi + Lagna的度数(仅度数)
|
||||
```
|
||||
|
||||
### 3.9 Pranapada(替代计算)
|
||||
|
||||
1. 提问 Ghatika × 120 ÷ 日长 + 太阳经度
|
||||
2. 调整:固定星座−120°、双体星座+120°、本位星座不变
|
||||
|
||||
### 3.10 Mandi vs Gulika
|
||||
|
||||
| 学派 | 观点 |
|
||||
|------|------|
|
||||
| 南印度(喀拉拉) | 更重视 **Mandi**(Gulika 时段中点的上升度数) |
|
||||
| 北印度 | 更重视 **Gulika**(时段端点的上升度数) |
|
||||
| Prasna Marga | 视二者为同一点 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 征象星识别体系
|
||||
|
||||
| 角色 | 征象星 |
|
||||
|------|--------|
|
||||
| **提问者** | ① 上升主星 ② 月亮(共同征象星) |
|
||||
| **所问事物** | 对应宫位的主星 + 自然 Karaka |
|
||||
|
||||
**自然 Karaka:** 太阳=权威/父亲、月亮=母亲/心智、火星=兄弟/房产、水星=沟通/商业、木星=智慧/子女/丈夫(女盘)、金星=婚姻/妻子(男盘)、土星=长寿/延迟、Rahu=执念/海外、Ketu=超脱/损失
|
||||
|
||||
**行星特殊状态 Prashna 解读:**
|
||||
|
||||
| 状态 | Prashna 含义 |
|
||||
|------|-------------|
|
||||
| 逆行 | 延迟、重返、重新考虑 |
|
||||
| 燃烧 | 混乱、行星功能减弱 |
|
||||
| 落陷 | 脆弱/失败(除非 Neecha Bhanga) |
|
||||
|
||||
---
|
||||
|
||||
## 5. 十步断卦框架
|
||||
|
||||
| 步骤 | 操作 |
|
||||
|------|------|
|
||||
| **1** | 评估星盘活力(上升+月亮强弱) |
|
||||
| **2** | 对比 Lagna vs Arudha Lagna(真实vs感知) |
|
||||
| **3** | 检验相关宫位(吉星/凶星影响) |
|
||||
| **4** | 比较征象星(提问者 vs 所问事物的力量对比) |
|
||||
| **5** | 检查 Tajika Yoga(Ithasala/Ishrafa/Nakta/Mani) |
|
||||
| **6** | 计算 Trisphuta/Sphuta 组合(综合能量) |
|
||||
| **7** | 排查阻碍(燃烧/煞星阻隔/落陷/月亮空亡) |
|
||||
| **8** | 权衡吉凶证词(清点正负因素) |
|
||||
| **9** | 时间判断(度数差→时间;本位=短,固定=长) |
|
||||
| **10** | 大运/过境辅助验证 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 问题类型专题
|
||||
|
||||
### 6.1 事业/工作
|
||||
- **宫位:** 10宫(事业)、6宫(日常工作)、11宫(收益)
|
||||
- **征象星:** 10宫主 + 太阳
|
||||
- **成功:** 上升主与10宫主 Ithasala + 木星相位10宫
|
||||
- **失败:** 土星/Rahu 影响10宫 + Ishrafa
|
||||
|
||||
### 6.2 婚姻/关系
|
||||
- **宫位:** 7宫(伴侣)、5宫(爱情)
|
||||
- **征象星:** 7宫主 + 金星 + 木星(女盘丈夫)
|
||||
- **和谐:** 金星强旺 + 7宫主与上升主 Ithasala
|
||||
|
||||
### 6.3 财务/投资
|
||||
- **宫位:** 2宫(积蓄)、11宫(收益)
|
||||
- **征象星:** 2宫主 + 11宫主 + 木星
|
||||
- **有利:** 木星强 + 2/11宫受吉星影响
|
||||
|
||||
### 6.4 健康/疾病
|
||||
- **宫位:** 1宫(身体)、6宫(疾病)、8宫(危险)
|
||||
- **好转:** 强上升主 + 6宫主弱
|
||||
- **恶化:** 参考 Mrityu Chakra(§9)
|
||||
|
||||
### 6.5 遗失物品/盗窃
|
||||
- **宫位:** 2宫(物品)、4宫(位置)、7宫(窃贼)、11宫(恢复)
|
||||
- **找回指标:** 11宫主相位 Lagna/2宫;月亮强旺;Ithasala
|
||||
- **方向:** 按指标星星座元素(火=东、土=南、风=西、水=北)
|
||||
- **操作流程:** 记录时刻→铸盘→定指标星→分析位置→评估找回概率→方向搜索
|
||||
|
||||
### 6.6 旅行/出国
|
||||
- **宫位:** 3宫(短途)、9宫(长途)、12宫(海外)
|
||||
- **征象星:** 9宫主 + 木星
|
||||
|
||||
### 6.7 诉讼/纠纷
|
||||
- **宫位:** 6宫(诉讼)、7宫(对手)
|
||||
- **胜诉:** 上升主星力量 > 7宫主
|
||||
|
||||
### 6.8 子女
|
||||
- **宫位:** 5宫(子女)、9宫(福气)
|
||||
- **征象星:** 5宫主 + 木星
|
||||
|
||||
---
|
||||
|
||||
## 7. 35 Sahams 敏感点
|
||||
|
||||
> 来源:B.V. Raman《Varshaphala》第8章
|
||||
|
||||
### 7.1 30° 修正规则
|
||||
|
||||
> 计算后,若上升点不在被减数和减数之间 → **加30°**。夜间出生互换减数和被减数(标注"日夜相同"的除外)。
|
||||
|
||||
### 7.2 最可靠的 5 个 Saham(Raman 推荐)
|
||||
|
||||
| Saham | 用途 | 公式(白天) |
|
||||
|-------|------|-------------|
|
||||
| **Punya** | 福德 | 月亮 − 太阳 + 上升 |
|
||||
| **Putra** | 子女 | 木星 − 月亮 + 上升 |
|
||||
| **Vivaha** | 婚姻 | 金星 − 土星 + 上升 |
|
||||
| **Roga** | 疾病 | 上升 − 月亮 + 上升 |
|
||||
| **Mrityu** | 死亡 | 8宫宫头 − 月亮 + 上升 |
|
||||
|
||||
### 7.3 完整 35 Saham 列表
|
||||
|
||||
**通用公式:** `Saham = 被减数 − 减数 + 上升点`
|
||||
|
||||
#### 个人与精神(9个)
|
||||
|
||||
| # | Saham | 含义 | 公式 |
|
||||
|---|-------|------|------|
|
||||
| 1 | Punya | 福德 | 月亮−太阳+上升 |
|
||||
| 2 | Vidya | 学业 | 太阳−月亮+上升 |
|
||||
| 3 | Yasa | 名声 | 木星−Punya+上升 |
|
||||
| 5 | Mahatmya | 伟大 | Punya−火星+上升 |
|
||||
| 6 | Asha | 愿望 | 土星−火星+上升 |
|
||||
| 7 | Samartha | 能力 | 火星−上升主+上升 |
|
||||
| 9 | Gaurava | 尊重 | 木星−月亮+太阳 |
|
||||
| 28 | Sraddha | 虔诚 | 金星−火星+上升 |
|
||||
| 29 | Preeti | 爱 | Sastra−Punya+上升 |
|
||||
|
||||
#### 家庭与关系(8个)
|
||||
|
||||
| # | Saham | 含义 | 公式 | 备注 |
|
||||
|---|-------|------|------|------|
|
||||
| 4 | Mitra | 朋友 | 木星−Punya+金星 | |
|
||||
| 8 | Bhratru | 兄弟 | 木星−土星+上升 | ⭐日夜相同 |
|
||||
| 10 | Pitru | 父亲 | 土星−太阳+上升 | |
|
||||
| 12 | Matru | 母亲 | 月亮−金星+上升 | |
|
||||
| 13 | Putra | 子女 | 木星−月亮+上升 | |
|
||||
| 19 | Bandhu | 亲属 | 水星−月亮+上升 | |
|
||||
| 23 | Paradara | 婚外情 | 金星−太阳+上升 | |
|
||||
| 26 | Vivaha | 婚姻 | 金星−土星+上升 | |
|
||||
|
||||
#### 事业与财富(6个)
|
||||
|
||||
| # | Saham | 含义 | 公式 | 备注 |
|
||||
|---|-------|------|------|------|
|
||||
| 11 | Raja | 权力 | 土星−太阳+上升 | |
|
||||
| 15 | Karma | 职业 | 火星−水星+上升 | |
|
||||
| 22 | Artha | 财富 | 2宫头−2宫主+上升 | |
|
||||
| 24 | Vanik | 贸易 | 月亮−水星+上升 | |
|
||||
| 25 | Karyasiddhi | 事业成功 | 土星−太阳+太阳星座主 | |
|
||||
| 31 | Vyapara | 商业 | 火星−土星+上升 | ⭐日夜相同 |
|
||||
|
||||
#### 健康、危险与死亡(5个)
|
||||
|
||||
| # | Saham | 含义 | 公式 |
|
||||
|---|-------|------|------|
|
||||
| 14 | Jeeva | 生计 | 土星−木星+上升 |
|
||||
| 16 | Roga | 疾病 | 上升−月亮+上升 |
|
||||
| 20 | Mrityu | 死亡 | 8宫头−月亮+上升 |
|
||||
| 30 | Jadya | 慢性病 | 火星−土星+水星 |
|
||||
| 35 | Apamrityu | 意外死亡 | 8宫头−火星+上升 |
|
||||
|
||||
#### 其他(7个)
|
||||
|
||||
| # | Saham | 含义 | 公式 |
|
||||
|---|-------|------|------|
|
||||
| 17 | Kali | 冲突 | 木星−火星+上升 |
|
||||
| 18 | Sastra | 学问 | 木星−土星+水星 |
|
||||
| 21 | Paradesa | 出国 | 9宫头−9宫主+上升 |
|
||||
| 27 | Santapa | 悲伤 | 土星−月亮+6宫头 |
|
||||
| 32 | Satru | 敌人 | 火星−土星+上升 |
|
||||
| 33 | Jalapathana | 航行 | 巨蟹15°−土星+上升 |
|
||||
| 34 | Bandhana | 监禁 | Punya−土星+上升 |
|
||||
|
||||
---
|
||||
|
||||
## 8. Tajika Yoga 快速参考
|
||||
|
||||
> 完整体系见 `tajika-yoga-complete-guide.md`
|
||||
|
||||
| Yoga | 含义 | Prashna 用途 |
|
||||
|------|------|-------------|
|
||||
| **Ithasala** | 入相位 | ✅ 成功 |
|
||||
| **Ishrafa** | 出相位 | ❌ 机会已过 |
|
||||
| **Nakta** | 光线传递 | 🔄 中间人成功 |
|
||||
| **Yamaya** | 慢速传递 | 🔄 延迟但成功 |
|
||||
| **Manahoo** | 煞星阻隔 | ⛔ 障碍 |
|
||||
| **Kamboola** | 月亮参与 | 🌙 情绪加强 |
|
||||
|
||||
**Ithasala 要点:** 快速行星趋近慢速行星;容许度按行星不同(月12°/日15°/火8°/木金12°/水7°/土9°)
|
||||
|
||||
---
|
||||
|
||||
## 9. 死亡轮(Mrityu Chakra)
|
||||
|
||||
> ⚠️ 仅用于重病/生命危险类 Prashna
|
||||
|
||||
### 计算流程
|
||||
|
||||
1. 提问时间 → Vighatika → **÷ 15** = Mrityu Rashi 经度
|
||||
2. 求太阳、月亮、Gulika 的 Navamsa 位置
|
||||
3. 组合:
|
||||
- Mrityu 太阳 = 太阳 Navamsa + Mrityu Rashi
|
||||
- Mrityu 月亮 = 月亮 Navamsa + Mrityu Rashi
|
||||
- Mrityu Gulika = Gulika Navamsa **−** Mrityu Rashi
|
||||
|
||||
### 断命规则
|
||||
|
||||
| 条件 | 结论 |
|
||||
|------|------|
|
||||
| Mrityu Gulika 合相 Mrityu 太阳 | ⚠️ **确定死亡** |
|
||||
| Mrityu Gulika 合相 Mrityu 月亮 | 🔶 **极大危险** |
|
||||
| Mrityu Gulika 独立 | ✅ **病情好转** |
|
||||
|
||||
---
|
||||
|
||||
## 10. 公式速查表
|
||||
|
||||
| # | 名称 | 公式 | 用途 |
|
||||
|---|------|------|------|
|
||||
| 1 | Arudha Lagna | 从上升数到主星N → 从主星数N | 真实vs表象 |
|
||||
| 2 | Trisphuta | Lagna + 月亮 + Gulika | 三因子综合 |
|
||||
| 3 | Catusphuta | Trisphuta + 太阳 | 四因子综合 |
|
||||
| 4 | Pancasphuta | Catusphuta + Rahu | 五因子终极 |
|
||||
| 5 | Prana Sphuta | (Lagna × 5) + Gulika | 生命之息 |
|
||||
| 6 | Deha Sphuta | (月亮 × 8) + Gulika | 身体 |
|
||||
| 7 | Mrityu Sphuta | (Gulika × 7) + 太阳 | 死亡指标 |
|
||||
| 8 | Mrityu Sphuta(时间) | (Ghatika×35÷日长) + 星期附加值 | 基于时间 |
|
||||
| 9 | Kala Sphuta | (Ghatika×35÷日长) − 星期附加值 | 时间指标 |
|
||||
| 10 | Mrityu Rashi | Vighatika ÷ 15 | 死亡星座 |
|
||||
| 11 | Arudha Sphuta | Arudha Rashi + Lagna度数 | 仪式-数学桥 |
|
||||
| 12 | Gulika | 土星时段末的上升经度 | 暗影子星 |
|
||||
| 13 | Pranapada | (Ghatika×120÷日长)+太阳±调整 | 生命点替代 |
|
||||
| 14 | Saham通用 | 被减数 − 减数 + 上升 | 35敏感点 |
|
||||
| 15 | Kunda验证 | Lagna(弧分)×81 mod 12 | Lagna正确性 |
|
||||
|
||||
---
|
||||
|
||||
## 附录:与现有 Skill 的关系
|
||||
|
||||
| 模块 | 文件 | Prashna 中的角色 |
|
||||
|------|------|-----------------|
|
||||
| KP Prashna (1-249法) | `kp-astrology-complete-system.md` | 快速是/否判断 |
|
||||
| KP Ruling Planets | `kp-practical-event-timing.md` | 5因子活跃行星期 |
|
||||
| Tajika Yoga | `tajika-yoga-complete-guide.md` | Ithasala 等是/否判断 |
|
||||
| Tajika 年运盘 | `scripts/tajika.py` | Muntha/YearLord 等 |
|
||||
| Dasha 系统 | `alternative-dasha-systems.md` | 大运辅助验证 |
|
||||
@@ -0,0 +1,175 @@
|
||||
# Prashna 单事件问事协议模板
|
||||
|
||||
> 版本: v1.0 | 2026-04-25
|
||||
> 用途:当用户提出一个具体问题时,AI按此模板执行 Prashna 分析
|
||||
|
||||
---
|
||||
|
||||
## 输入信息收集
|
||||
|
||||
当用户提出具体问题时,记录以下信息:
|
||||
|
||||
| 字段 | 必需 | 说明 |
|
||||
|------|------|------|
|
||||
| **问题原文** | ✅ | 用户原始提问措辞(影响宫位选择) |
|
||||
| **提问时间** | ✅ | 问题完全成型的精确时刻 |
|
||||
| **提问地点** | ✅ | 经纬度 |
|
||||
| **问题类型** | ✅ | 事业/婚姻/财务/健康/失物/旅行/诉讼/子女 |
|
||||
| **出生信息** | ❌ | 若有,用于大运/过境辅助验证 |
|
||||
|
||||
---
|
||||
|
||||
## 执行流程
|
||||
|
||||
### 阶段一:铸造星盘
|
||||
|
||||
```bash
|
||||
# 调用引擎
|
||||
python3 scripts/jyotish_engine.py prashna \
|
||||
--datetime "YYYY-MM-DD HH:MM" \
|
||||
--lat XX.XX --lon XX.XX --mode chart
|
||||
```
|
||||
|
||||
### 阶段二:十步断卦(AI执行)
|
||||
|
||||
按以下十步逐步分析,每步输出结论:
|
||||
|
||||
#### Step 1: 星盘活力评估
|
||||
- [ ] 上升星座、上升主星位置和力量
|
||||
- [ ] 月亮位置和状态
|
||||
- [ ] 结论:星盘基础强弱
|
||||
|
||||
#### Step 2: Arudha Lagna 对比
|
||||
- [ ] 计算AL
|
||||
- [ ] 对比 Lagna(真实) vs AL(感知)
|
||||
- [ ] 结论:认知偏差程度
|
||||
|
||||
#### Step 3: 相关宫位分析
|
||||
- [ ] 确定问题对应的宫位(见下表)
|
||||
- [ ] 检查宫内行星
|
||||
- [ ] 检查宫主星位置和状态
|
||||
- [ ] 结论:该领域有利/不利
|
||||
|
||||
| 问题类型 | 主宫 | 辅助宫 | 自然Karakā |
|
||||
|---------|------|--------|-----------|
|
||||
| 事业 | 10 | 6, 11 | 太阳 |
|
||||
| 婚姻 | 7 | 5, 2 | 金星/木星(女盘) |
|
||||
| 财务 | 2, 11 | 9 | 木星 |
|
||||
| 健康 | 1, 6 | 8 | — |
|
||||
| 失物 | 2, 4 | 7, 11 | — |
|
||||
| 旅行 | 3, 9 | 12 | 木星 |
|
||||
| 诉讼 | 6, 7 | 12 | — |
|
||||
| 子女 | 5 | 9 | 木星 |
|
||||
|
||||
#### Step 4: 征象星力量对比
|
||||
- [ ] 提问者征象星 = 上升主星 + 月亮
|
||||
- [ ] 所问事物征象星 = 对应宫主星 + 自然Karakā
|
||||
- [ ] 力量对比:谁更强?
|
||||
- [ ] 结论:征象星偏向何方
|
||||
|
||||
#### Step 5: Tajika Yoga 检查
|
||||
- [ ] 两个征象星之间是否有 Ithasala(入相位)?
|
||||
- [ ] 是否有 Ishrafa(出相位)?
|
||||
- [ ] 是否有 Nakta(中间人传递)?
|
||||
- [ ] 是否有 Mani(煞星阻隔)?
|
||||
- [ ] 结论:Yoga 支持成功/失败
|
||||
|
||||
#### Step 6: Sphuta 组合
|
||||
- [ ] Trisphuta 落在哪个星座/宫位?
|
||||
- [ ] 是否与凶宫/凶星关联?
|
||||
- [ ] 结论:综合能量走向
|
||||
|
||||
#### Step 7: 阻碍排查
|
||||
- [ ] 征象星是否燃烧?
|
||||
- [ ] 征象星是否落陷?
|
||||
- [ ] 月亮是否空亡?
|
||||
- [ ] 是否有 Rahu/Ketu 干扰?
|
||||
- [ ] 结论:阻碍因素列表
|
||||
|
||||
#### Step 8: 证词权衡
|
||||
- [ ] 清点有利证词数量
|
||||
- [ ] 清点不利证词数量
|
||||
- [ ] 结论:多数方向
|
||||
|
||||
#### Step 9: 时间判断
|
||||
- [ ] 入相位度数差 → 时间单位
|
||||
- [ ] 本位/固定/双体星座 → 快/慢/中
|
||||
- [ ] 结论:预计应期范围
|
||||
|
||||
#### Step 10: 大运辅助(如有出生数据)
|
||||
- [ ] 当前大运主星
|
||||
- [ ] Prashna 指示是否与大运主题一致
|
||||
- [ ] 结论:交叉验证结果
|
||||
|
||||
### 阶段三:综合结论
|
||||
|
||||
输出格式:
|
||||
|
||||
```
|
||||
## Prashna 问事占星结论
|
||||
|
||||
**问题:** [用户原始提问]
|
||||
**提问时刻:** YYYY-MM-DD HH:MM @ 地点
|
||||
|
||||
### 核心结论
|
||||
[一句话明确回答:是/否/时机/方向]
|
||||
|
||||
### 分析依据
|
||||
1. **征象星分析**:[Step 4 结论]
|
||||
2. **Tajika Yoga**:[Step 5 结论]
|
||||
3. **宫位状态**:[Step 3 结论]
|
||||
4. **Sphuta 组合**:[Step 6 结论]
|
||||
5. **阻碍因素**:[Step 7 结论]
|
||||
|
||||
### 时间判断
|
||||
[Step 9 结论:具体时间范围]
|
||||
|
||||
### 注意事项
|
||||
[Step 10 交叉验证 + Kunda 验证结果]
|
||||
|
||||
### 综合评估
|
||||
| 维度 | 评估 |
|
||||
|------|------|
|
||||
| 星盘活力 | 强/中/弱 |
|
||||
| 成功概率 | 高/中/低 |
|
||||
| 时间范围 | [范围] |
|
||||
| 关键阻碍 | [阻碍] |
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 特殊场景协议
|
||||
|
||||
### 失物查询专用
|
||||
|
||||
额外输出:
|
||||
1. 物品指标星及位置
|
||||
2. 窃贼分析(已知/未知)
|
||||
3. 方向指引(火=东、土=南、风=西、水=北)
|
||||
4. 找回概率评估
|
||||
5. 建议搜索区域
|
||||
|
||||
### 健康查询专用
|
||||
|
||||
额外输出:
|
||||
1. Prana/Deha/Mrityu Sphuta 判断
|
||||
2. 若涉及重病:Mrityu Chakra 分析
|
||||
3. 不输出确定性的死亡判断,只输出"风险等级"
|
||||
|
||||
### 是非判断专用
|
||||
|
||||
使用 KP Prashna(1-249法)作为补充:
|
||||
1. 用户报数(1-249)
|
||||
2. 确定上升点 Sub-Lord
|
||||
3. 检查相关宫 Cuspal Sub-Lord
|
||||
4. 给出 是/否/延迟 判断
|
||||
|
||||
---
|
||||
|
||||
## 原则提醒
|
||||
|
||||
1. **问题必须真诚** — Prashna shakti 仅在真实需求时激活
|
||||
2. **同一问题不重复问** — 重复提问使第一个盘失效
|
||||
3. **不替代专业建议** — 健康/法律等问题需声明"仅供参考"
|
||||
4. **措辞影响结果** — 始终记录原始问题
|
||||
5. **综合多方证词** — 不依赖单一因素
|
||||
@@ -1474,6 +1474,56 @@ def cmd_full_reading(args):
|
||||
return report
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# 23. Prashna 问事占星 (v3.9新增)
|
||||
# ============================================================================
|
||||
def cmd_prashna(args):
|
||||
"""Prashna 问事占星:基于提问时刻的即时星盘分析"""
|
||||
try:
|
||||
from prashna import cast_prashna, calc_arudha, calc_sphutas, calc_life_sphutas, calc_sahams, analyze_lost_item, kunda_verify, calc_gulika_simple
|
||||
except ImportError:
|
||||
# 尝试从同目录导入
|
||||
import importlib.util, os
|
||||
spec = importlib.util.spec_from_file_location("prashna", os.path.join(os.path.dirname(__file__), "prashna.py"))
|
||||
prashna_mod = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(prashna_mod)
|
||||
cast_prashna = prashna_mod.cast_prashna
|
||||
calc_arudha = prashna_mod.calc_arudha
|
||||
calc_sphutas = prashna_mod.calc_sphutas
|
||||
calc_life_sphutas = prashna_mod.calc_life_sphutas
|
||||
calc_sahams = prashna_mod.calc_sahams
|
||||
analyze_lost_item = prashna_mod.analyze_lost_item
|
||||
kunda_verify = prashna_mod.kunda_verify
|
||||
calc_gulika_simple = prashna_mod.calc_gulika_simple
|
||||
|
||||
if args.mode == 'chart':
|
||||
return cast_prashna(args.datetime, args.lat, args.lon)
|
||||
|
||||
# 其他模式需要先铸盘获取行星位置
|
||||
chart = cast_prashna(args.datetime, args.lat, args.lon)
|
||||
if 'error' in chart:
|
||||
return chart
|
||||
|
||||
asc_lon = chart['ascendant']['lon']
|
||||
p_lons = {n: d['lon'] for n, d in chart['planets'].items()}
|
||||
|
||||
if args.mode == 'arudha':
|
||||
return {'arudha_lagna': calc_arudha(asc_lon, p_lons),
|
||||
'ascendant': chart['ascendant']}
|
||||
elif args.mode == 'sphutas':
|
||||
return calc_sphutas(p_lons, 0)
|
||||
elif args.mode == 'sahams':
|
||||
return calc_sahams(p_lons, asc_lon)
|
||||
elif args.mode == 'lost-item':
|
||||
return analyze_lost_item(p_lons, asc_lon)
|
||||
elif args.mode == 'life':
|
||||
return calc_life_sphutas(asc_lon, p_lons.get('Moon',0), p_lons.get('Sun',0), 0)
|
||||
elif args.mode == 'kunda':
|
||||
return kunda_verify(asc_lon)
|
||||
else:
|
||||
return cast_prashna(args.datetime, args.lat, args.lon)
|
||||
|
||||
|
||||
# ============================================================================
|
||||
# CLI入口
|
||||
# ============================================================================
|
||||
@@ -1608,6 +1658,13 @@ def main():
|
||||
_add_chart_args(p)
|
||||
p.add_argument('--age', type=int, default=None, help='当前年龄(不提供则自动计算)')
|
||||
|
||||
# 23. prashna (v3.9新增)
|
||||
p = sub.add_parser('prashna', help='Prashna问事占星(提问时刻星盘+Arudha+Sphuta+Sahams)')
|
||||
p.add_argument('--datetime', required=True, help='提问时间 YYYY-MM-DD HH:MM')
|
||||
p.add_argument('--lat', type=float, required=True, help='纬度')
|
||||
p.add_argument('--lon', type=float, required=True, help='经度')
|
||||
p.add_argument('--mode', default='chart', choices=['chart','arudha','sphutas','sahams','lost-item','life','kunda'], help='分析模式')
|
||||
|
||||
args = parser.parse_args()
|
||||
if not args.command:
|
||||
parser.print_help(); sys.exit(1)
|
||||
@@ -1618,7 +1675,7 @@ def main():
|
||||
'validate': cmd_validate, 'audit': cmd_audit, 'report': cmd_report,
|
||||
'varga-full': cmd_varga_full, 'aspects': cmd_aspects, 'jaimini': cmd_jaimini,
|
||||
'nakshatra-adv': cmd_nakshatra_adv, 'argala': cmd_argala, 'tajika': cmd_tajika,
|
||||
'synastry': cmd_synastry, 'full-reading': cmd_full_reading}
|
||||
'synastry': cmd_synastry, 'full-reading': cmd_full_reading, 'prashna': cmd_prashna}
|
||||
result = cmds[args.command](args)
|
||||
output_json(result)
|
||||
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Prashna Shastra(问事占星)计算引擎 v1.0
|
||||
Jyotish Vedic Astrology Skill - Prashna Module
|
||||
依赖: pyswisseph
|
||||
"""
|
||||
|
||||
import math, json, argparse
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
SIGN_NAMES = ['Aries','Taurus','Gemini','Cancer','Leo','Virgo',
|
||||
'Libra','Scorpio','Sagittarius','Capricorn','Aquarius','Pisces']
|
||||
SIGN_CN = ['白羊座','金牛座','双子座','巨蟹座','狮子座','处女座',
|
||||
'天秤座','天蝎座','射手座','摩羯座','水瓶座','双鱼座']
|
||||
SIGN_LORDS = ['Mars','Venus','Mercury','Moon','Sun','Mercury',
|
||||
'Venus','Mars','Jupiter','Saturn','Saturn','Jupiter']
|
||||
PLANET_CN = {'Sun':'太阳','Moon':'月亮','Mars':'火星','Mercury':'水星',
|
||||
'Jupiter':'木星','Venus':'金星','Saturn':'土星','Rahu':'罗睺','Ketu':'计都'}
|
||||
|
||||
GULIKA_DAY = {'Sunday':26,'Monday':22,'Tuesday':18,'Wednesday':14,'Thursday':10,'Friday':6,'Saturday':2}
|
||||
GULIKA_NIGHT = {'Sunday':10,'Monday':6,'Tuesday':2,'Wednesday':26,'Thursday':22,'Friday':18,'Saturday':14}
|
||||
|
||||
SAHAM_DEFS = {
|
||||
'Punya':('福德','Moon','Sun','Asc'), 'Vidya':('学业','Sun','Moon','Asc'),
|
||||
'Bhratru':('兄弟','Jupiter','Saturn','Asc'), 'Pitru':('父亲','Saturn','Sun','Asc'),
|
||||
'Putra':('子女','Jupiter','Moon','Asc'), 'Vivaha':('婚姻','Venus','Saturn','Asc'),
|
||||
'Karma':('职业','Mars','Mercury','Asc'), 'Roga':('疾病','Asc','Moon','Asc'),
|
||||
'Raja':('权力','Saturn','Sun','Asc'), 'Asha':('愿望','Saturn','Mars','Asc'),
|
||||
'Matru':('母亲','Moon','Venus','Asc'), 'Jeeva':('生计','Saturn','Jupiter','Asc'),
|
||||
'Kali':('冲突','Jupiter','Mars','Asc'), 'Satru':('敌人','Mars','Saturn','Asc'),
|
||||
'Paradesa':('出国','H9','H9Lord','Asc'), 'Mrityu':('死亡','H8','Moon','Asc'),
|
||||
'Vidya':('学业','Sun','Moon','Asc'), 'Artha':('财富','H2','H2Lord','Asc'),
|
||||
'Vyapara':('商业','Mars','Saturn','Asc'), 'Bandhana':('监禁','Punya','Saturn','Asc'),
|
||||
}
|
||||
|
||||
def sign_of(lon): return int((lon % 360) / 30)
|
||||
def norm(lon): return lon % 360
|
||||
def lon_cn(lon):
|
||||
s, d = sign_of(lon), lon % 30
|
||||
return f"{SIGN_CN[s]} {int(d)}°{int((d%1)*60)}'"
|
||||
|
||||
# ── Arudha Lagna ──
|
||||
def calc_arudha(asc_lon, planet_lons):
|
||||
asc_s = sign_of(asc_lon)
|
||||
lord = SIGN_LORDS[asc_s]
|
||||
lord_lon = planet_lons.get(lord, 0)
|
||||
lord_s = sign_of(lord_lon)
|
||||
count = ((lord_s - asc_s) % 12) or 12
|
||||
al_s = (lord_s + count) % 12
|
||||
if al_s == asc_s or al_s == (asc_s + 6) % 12:
|
||||
al_s = (al_s + 10) % 12
|
||||
al_lon = al_s * 30 + (asc_lon % 30)
|
||||
return {'longitude': norm(al_lon), 'sign_cn': SIGN_CN[al_s], 'lord': lord}
|
||||
|
||||
# ── Gulika ──
|
||||
def calc_gulika_simple(dt_str):
|
||||
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M")
|
||||
dn = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'][dt.weekday()]
|
||||
is_day = 6 <= dt.hour < 18
|
||||
gh = GULIKA_DAY.get(dn, 14) if is_day else GULIKA_NIGHT.get(dn, 14)
|
||||
return {'ghatika': gh, 'minutes': gh*24, 'day': dn, 'is_daytime': is_day}
|
||||
|
||||
# ── Sphuta 组合 ──
|
||||
def calc_sphutas(planet_lons, gulika_lon=0):
|
||||
sun, moon = planet_lons.get('Sun',0), planet_lons.get('Moon',0)
|
||||
rahu = planet_lons.get('Rahu',0)
|
||||
tri = norm(sun + moon + gulika_lon)
|
||||
catu = norm(tri + sun)
|
||||
pancha = norm(catu + rahu)
|
||||
return {'trisphuta': {'lon': tri, 'cn': lon_cn(tri)},
|
||||
'catusphuta': {'lon': catu, 'cn': lon_cn(catu)},
|
||||
'pancasphuta': {'lon': pancha, 'cn': lon_cn(pancha)}}
|
||||
|
||||
# ── Prana/Deha/Mrityu ──
|
||||
def calc_life_sphutas(asc_lon, moon_lon, sun_lon, gulika_lon):
|
||||
prana = norm(asc_lon * 5 + gulika_lon)
|
||||
deha = norm(moon_lon * 8 + gulika_lon)
|
||||
mrityu = norm(gulika_lon * 7 + sun_lon)
|
||||
danger = norm(prana + deha) < mrityu
|
||||
return {'prana_cn': lon_cn(prana), 'deha_cn': lon_cn(deha), 'mrityu_cn': lon_cn(mrityu),
|
||||
'judgment': '⚠️ 生命能量<死亡指标' if danger else '✅ 生命能量>死亡指标'}
|
||||
|
||||
# ── Sahams ──
|
||||
def calc_sahams(planet_lons, asc_lon):
|
||||
asc_s = sign_of(asc_lon)
|
||||
vals = dict(planet_lons)
|
||||
vals['Asc'] = asc_lon
|
||||
vals['AscLord'] = planet_lons.get(SIGN_LORDS[asc_s], 0)
|
||||
vals['H2'] = (asc_s+1)%12*30+15; vals['H2Lord'] = planet_lons.get(SIGN_LORDS[(asc_s+1)%12], 0)
|
||||
vals['H8'] = (asc_s+7)%12*30+15; vals['H9'] = (asc_s+8)%12*30+15
|
||||
vals['H9Lord'] = planet_lons.get(SIGN_LORDS[(asc_s+8)%12], 0)
|
||||
|
||||
results = {}
|
||||
for name, (cn, m, s, b) in SAHAM_DEFS.items():
|
||||
mv = vals.get(m, 0); sv = vals.get(s, 0); bv = vals.get(b, asc_lon)
|
||||
if name == 'Punya':
|
||||
pass # Punya always computable
|
||||
elif isinstance(mv, str) or isinstance(sv, str):
|
||||
continue
|
||||
try:
|
||||
v = norm(mv - sv + bv)
|
||||
results[name] = {'cn': cn, 'longitude': round(v,4), 'sign_cn': SIGN_CN[sign_of(v)]}
|
||||
except: pass
|
||||
return results
|
||||
|
||||
# ── Kunda 验证 ──
|
||||
def kunda_verify(asc_lon):
|
||||
mins = int(asc_lon * 60)
|
||||
idx = (mins * 81) % 12
|
||||
naks = ['Ashwini','Bharani','Krittika','Rohini','Mrigashira','Ardra',
|
||||
'Punarvasu','Pushya','Ashlesha','Magha','P.Phalguni','U.Phalguni']
|
||||
return {'derived_nakshatra': naks[idx] if idx < len(naks) else '?', 'index': idx}
|
||||
|
||||
# ── 失物分析 ──
|
||||
def analyze_lost_item(planet_lons, asc_lon):
|
||||
asc_s = sign_of(asc_lon)
|
||||
h2_lord = SIGN_LORDS[(asc_s+1)%12]
|
||||
h7_lord = SIGN_LORDS[(asc_s+6)%12]
|
||||
h11_lord = SIGN_LORDS[(asc_s+10)%12]
|
||||
h2_lon = planet_lons.get(h2_lord, 0)
|
||||
h7_lon = planet_lons.get(h7_lord, 0)
|
||||
h2_elem = (asc_s+1) % 4
|
||||
dirs = {0:'东方(火象)', 1:'南方(土象)', 2:'西方(风象)', 3:'北方(水象)'}
|
||||
h7_house = (sign_of(h7_lon) - asc_s) % 12 + 1
|
||||
return {
|
||||
'item_lord': h2_lord, 'item_cn': PLANET_CN.get(h2_lord,''),
|
||||
'direction': dirs.get(h2_elem, '未知'),
|
||||
'thief_lord': h7_lord, 'thief_cn': PLANET_CN.get(h7_lord,''),
|
||||
'thief_in_house': h7_house,
|
||||
'thief_type': '已知/附近' if h7_house in [1,4,7,10] else '隐秘/远方' if h7_house in [6,8,12] else '待定',
|
||||
'recovery_lord': h11_lord, 'recovery_cn': PLANET_CN.get(h11_lord,'')
|
||||
}
|
||||
|
||||
# ── 完整 Prashna 星盘 ──
|
||||
def cast_prashna(dt_str, lat, lon):
|
||||
try:
|
||||
import swisseph as swe
|
||||
swe.set_sid_mode(swe.SIDM_LAHIRI)
|
||||
except ImportError:
|
||||
return {'error': '需要 pip install pyswisseph'}
|
||||
|
||||
dt = datetime.strptime(dt_str, "%Y-%m-%d %H:%M")
|
||||
jd = swe.julday(dt.year, dt.month, dt.day, dt.hour + dt.minute/60.0)
|
||||
cusps, ascmc = swe.houses_ex(jd, lat, lon, b'W', swe.FLG_SIDEREAL)
|
||||
asc_lon = ascmc[0]
|
||||
|
||||
p_lons = {}
|
||||
se_map = {0:'Sun',1:'Moon',2:'Mars',3:'Mercury',4:'Jupiter',5:'Venus',6:'Saturn'}
|
||||
for sid, name in se_map.items():
|
||||
r = swe.calc_ut(jd, sid, swe.FLG_SIDEREAL)
|
||||
p_lons[name] = r[0][0]
|
||||
rahu = swe.calc_ut(jd, 8, swe.FLG_SIDEREAL)[0][0]
|
||||
p_lons['Rahu'] = rahu; p_lons['Ketu'] = norm(rahu + 180)
|
||||
|
||||
arudha = calc_arudha(asc_lon, p_lons)
|
||||
gulika = calc_gulika_simple(dt_str)
|
||||
sphutas = calc_sphutas(p_lons, 0) # 简化无精确Gulika经度
|
||||
life = calc_life_sphutas(asc_lon, p_lons['Moon'], p_lons['Sun'], 0)
|
||||
sahams = calc_sahams(p_lons, asc_lon)
|
||||
kunda = kunda_verify(asc_lon)
|
||||
|
||||
return {
|
||||
'time': dt_str, 'lat': lat, 'lon': lon,
|
||||
'ascendant': {'lon': round(asc_lon,4), 'cn': lon_cn(asc_lon),
|
||||
'lord': SIGN_LORDS[sign_of(asc_lon)]},
|
||||
'planets': {n: {'lon': round(l,4), 'cn': lon_cn(l)} for n,l in p_lons.items()},
|
||||
'arudha_lagna': arudha,
|
||||
'sphutas': sphutas,
|
||||
'life_sphutas': life,
|
||||
'sahams': sahams,
|
||||
'kunda': kunda,
|
||||
'gulika_info': gulika
|
||||
}
|
||||
|
||||
# ── CLI ──
|
||||
def main():
|
||||
p = argparse.ArgumentParser(description='Prashna Shastra Engine')
|
||||
sub = p.add_subparsers(dest='cmd')
|
||||
|
||||
# chart
|
||||
ch = sub.add_parser('chart', help='铸造Prashna星盘')
|
||||
ch.add_argument('--datetime', required=True, help='提问时间 YYYY-MM-DD HH:MM')
|
||||
ch.add_argument('--lat', type=float, required=True)
|
||||
ch.add_argument('--lon', type=float, required=True)
|
||||
|
||||
# arudha
|
||||
ar = sub.add_parser('arudha', help='计算Arudha Lagna')
|
||||
ar.add_argument('--asc-lon', type=float, required=True)
|
||||
ar.add_argument('--planet-lons', required=True, help='JSON: {"Sun":123.4,...}')
|
||||
|
||||
# sphutas
|
||||
sp = sub.add_parser('sphutas', help='计算Sphuta组合')
|
||||
sp.add_argument('--planet-lons', required=True, help='JSON')
|
||||
sp.add_argument('--gulika-lon', type=float, default=0)
|
||||
|
||||
# sahams
|
||||
sa = sub.add_parser('sahams', help='计算Sahams')
|
||||
sa.add_argument('--planet-lons', required=True, help='JSON')
|
||||
sa.add_argument('--asc-lon', type=float, required=True)
|
||||
|
||||
# lost-item
|
||||
li = sub.add_parser('lost-item', help='失物查询')
|
||||
li.add_argument('--planet-lons', required=True, help='JSON')
|
||||
li.add_argument('--asc-lon', type=float, required=True)
|
||||
|
||||
# life-sphutas
|
||||
ls = sub.add_parser('life', help='生命Sphuta')
|
||||
ls.add_argument('--asc-lon', type=float, required=True)
|
||||
ls.add_argument('--moon-lon', type=float, required=True)
|
||||
ls.add_argument('--sun-lon', type=float, required=True)
|
||||
ls.add_argument('--gulika-lon', type=float, required=True)
|
||||
|
||||
args = p.parse_args()
|
||||
if args.cmd == 'chart':
|
||||
print(json.dumps(cast_prashna(args.datetime, args.lat, args.lon), ensure_ascii=False, indent=2))
|
||||
elif args.cmd == 'arudha':
|
||||
pl = json.loads(args.planet_lons)
|
||||
print(json.dumps(calc_arudha(args.asc_lon, pl), ensure_ascii=False, indent=2))
|
||||
elif args.cmd == 'sphutas':
|
||||
pl = json.loads(args.planet_lons)
|
||||
print(json.dumps(calc_sphutas(pl, args.gulika_lon), ensure_ascii=False, indent=2))
|
||||
elif args.cmd == 'sahams':
|
||||
pl = json.loads(args.planet_lons)
|
||||
print(json.dumps(calc_sahams(pl, args.asc_lon), ensure_ascii=False, indent=2))
|
||||
elif args.cmd == 'lost-item':
|
||||
pl = json.loads(args.planet_lons)
|
||||
print(json.dumps(analyze_lost_item(pl, args.asc_lon), ensure_ascii=False, indent=2))
|
||||
elif args.cmd == 'life':
|
||||
r = calc_life_sphutas(args.asc_lon, args.moon_lon, args.sun_lon, args.gulika_lon)
|
||||
print(json.dumps(r, ensure_ascii=False, indent=2))
|
||||
else:
|
||||
p.print_help()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user