Files
Jyotisha/skills/jyotish-engine-modules/SKILL.md
T
2026-07-08 17:03:04 +08:00

222 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: jyotish-engine-modules
description: 印度占星排盘引擎历史模块集成说明(供审计与迁移参考,当前真源以主 SKILL.md 与 registry 为准)
version: 1.0.0
author: 助手
tags: [jyotish, vedic-astrology, calculation-engine, karaka, special-lagnas, vimsopaka, avastha, divisional-charts]
related_skills: [jyotish-full-reading-integration, jyotish-vedic-astrology]
---
# 印度占星排盘引擎历史模块说明
本 skill 记录了 5 个核心计算模块的历史集成背景,主要用于审计、迁移和对照旧工作流。
本 Skill 的 `scripts/` 副本仅作为独立分发包与历史迁移参考;主仓当前计算真源、成熟度判断、外部 oracle 边界和发布口径一律以主 `SKILL.md``references/technique_registry.json` 与主仓测试为准。
当前项目的唯一对外真源以以下文件为准:
1. `<repo>/SKILL.md`
2. `<repo>/references/technique_registry.json`
3. `<repo>/references/strict-workflow-router.md`
本文件不得单独作为“当前能力完整性”依据;若与主 skill 描述冲突,以主 skill 与 registry 为准。
## 当前使用边界
本文件的定位是:
1. 说明历史模块曾如何并入主仓
2. 便于审计、迁移、回收旧碎片
3. 为“是否已有实现可复用”提供线索
本文件**不是**当前 skill 完成度、成熟度或精度闭环的直接依据。
## 判断原则(与主 skill 保持一致)
1. 若主仓 `scripts/``references/``skills/` 已有主体实现,优先判断为“补成熟度/补入口”,不要在旧模块层面重写。
2. 若外部来源是 MIT / Apache / BSD,可优先考虑复用结构、常数、映射与文档资产;GPL / AGPL / 闭源仅允许黑盒对照。
3. 涉及 `Dasha` 精确边界、`Shadbala` 绝对值、传统软件口径冻结时,必须以外部 oracle 闭环为准,不能仅凭历史模块说明认定“已完成”。
4. 若本文件的历史调用链与主仓当前真相源不一致,以主仓真相源为准,不沿用旧版本表述。
## 历史模块清单
1. **karaka_calculator.py** - Karaka分配计算器(支持BPHS/JH兼容模式)
2. **special_lagnas.py** - 特殊上升点计算(Bhava/Hora/Ghati Lagna等)
3. **vimsopaka_calculator.py** - Vimsopaka Bala分盘力量计算
4. **avastha_calculator.py** - Avasthas行星状态计算(年龄/警觉/情绪)
5. **divisional_charts_extended.py** - D2-D60完整分盘宫位图
## 使用方法
### 1. 创建本地工作目录
```bash
mkdir -p ~/Projects/yinduzhanxing-local/scripts
cd ~/Projects/yinduzhanxing-local
```
### 2. 复制模块代码
从本skill的 `scripts/` 目录复制5个Python文件到本地工作目录。
### 3. 同步到GitHub
```bash
# 克隆GitHub仓库
cd ~/Projects
git clone https://github.com/732642856/yinduzhanxing.git
cd yinduzhanxing
# 复制新模块
cp ~/Projects/yinduzhanxing-local/scripts/*.py ./scripts/
# 提交并推送
git add scripts/
git commit -m "feat: 新增5个核心排盘引擎模块
- karaka_calculator.py: Karaka分配计算器(BPHS/JH兼容模式)
- special_lagnas.py: 特殊上升点计算
- vimsopaka_calculator.py: Vimsopaka Bala分盘力量
- avastha_calculator.py: Avasthas行星状态
- divisional_charts_extended.py: D2-D60完整分盘"
git push origin main
```
## 模块详细说明
### 1. karaka_calculator.py
**核心功能:**
- 计算Jaimini Chara Karaka7大可变象征星)
- 支持3种模式:
- BPHS 8-Karaka(标准)
- BPHS 7-Karaka(不含Rahu
- JH兼容模式(Rahu限制在MK
**关键特性:**
- 自动识别Karaka模式
- 星座内度数排序(0-30度)
- 详细的Karaka象征意义
- 完整的验证机制
**命令行使用:**
```bash
python3 scripts/karaka_calculator.py --mode bphs --planets "Sun:45.5,Moon:120.3,Mars:200.1,Mercury:50.8,Jupiter:180.5,Venus:90.2,Saturn:250.7,Rahu:150.4"
```
### 2. special_lagnas.py
**核心功能:**
- Bhava Lagna(宫位上升)
- Hora Lagna(时辰上升)
- Ghati LagnaGhati上升)
- Arudha Lagna(映像上升)
- Upapada Lagna(配偶映像上升)
**计算公式:**
- Bhava Lagna = Asc + (Sun - Moon)
- Hora Lagna = Asc + (Sun位置 × 时间因子)
- Ghati Lagna = 基于Ghati单位的上升点推进
### 3. vimsopaka_calculator.py
**核心功能:**
- 16分盘权重系统(Shodasavarga
- Varga Dignity尊严等级判定
- 分盘综合力量评分
- Vimsopaka Bala总分计算
**权重体系:**
- D1 (Rasi): 3.5
- D2 (Hora): 1.0
- D3 (Drekkana): 1.0
- D9 (Navamsa): 3.5
- D12 (Dwadasamsa): 0.5
- ... (共16个分盘)
### 4. avastha_calculator.py
**核心功能:**
- Bala Avastha(年龄状态):婴儿/少年/青年/老年/死亡
- Jagrat Avastha(警觉状态):清醒/梦境/深睡
- Deeptadi Avastha(情绪状态):15种状态
**判定规则:**
- 基于行星度数位置
- 基于行星与其他行星的关系
- 基于行星在星座中的位置
### 5. divisional_charts_extended.py
**核心功能:**
- D1-D60完整计算
- 每个分盘的12宫位行星分布
- 分盘上升点精确计算
- 分盘宫位图可视化输出
**支持的分盘:**
- D1-D12(基础分盘)
- D16, D20, D24, D27, D30(特殊分盘)
- D40, D45, D60(高级分盘)
## 集成到主引擎
`jyotish_engine.py` 中导入这些模块:
```python
from karaka_calculator import KarakaCalculator, KarakaMode
from special_lagnas import SpecialLagnasCalculator
from vimsopaka_calculator import VimsopakaBalaCalculator
from avastha_calculator import AvasthaCalculator
from divisional_charts_extended import DivisionalChartsCalculator
```
> **注意**:这 5 个模块现已并入主仓库维护。本 Skill 的 `scripts/` 副本只作为历史分发包/迁移参考,不代表当前能力边界。
> **AI Native 注意**:主仓库 `full-reading` 与 `/api/chart` 已输出 `ai_prompt_pack` 和 Ayanamsa 元数据;独立分发时若调用主引擎,应优先消费这些字段作为解读上下文,不要在 Raman/KP 等非 Lahiri 设置下硬编码默认口径。
## 验证测试
```bash
# 测试Karaka计算器
python3 scripts/karaka_calculator.py --mode bphs
# 测试特殊上升点
python3 scripts/special_lagnas.py --asc 45.5 --sun 120.3 --moon 200.1
# 测试Vimsopaka
python3 scripts/vimsopaka_calculator.py --planet Sun --d1 Aries --d9 Leo
# 测试Avastha
python3 scripts/avastha_calculator.py --planet Sun --degree 15.5
# 测试分盘
python3 scripts/divisional_charts_extended.py --asc 45.5 --divisions all
```
## 注意事项
1. **Karaka模式选择**
- 与Jagannatha Hora保持一致时使用 `--mode jh`
- 标准BPHS使用 `--mode bphs`
2. **精度要求**
- 所有度数计算精确到小数点后4位
- 分盘计算使用Swiss Ephemeris标准
3. **依赖项**
```bash
pip install swisseph numpy
```
4. **性能优化**
- 分盘计算支持批量模式
- 缓存机制减少重复计算
## 更新日志
### v1.0.0 (2026-05-03)
- 初始版本
- 5个核心模块完整实现
- 支持命令行和Python API两种调用方式