6755d4522a
- Add 15+ references: audit reports, lessons learned, verified celebrity cases - Add test data: v6.1 verification results, large-scale results JSON - Update jyotish_engine.py and shadbala.py with latest fixes - Prepare for ClawdHub marketplace publication
231 lines
11 KiB
Markdown
231 lines
11 KiB
Markdown
# 印度占星 Skill 全面测试报告
|
||
|
||
**测试日期**: 2026-05-04
|
||
**测试方式**: 从 GitHub 仓库 https://github.com/732642856/yinduzhanxing 克隆最新代码,模拟普通用户通过云端 git 仓库调用
|
||
**测试数据**: 1990-01-15 10:30 北京 (lat=39.9, lon=116.4, tz=+8)
|
||
**测试环境**: macOS, Python 3.11.9, pyswisseph 2.08
|
||
|
||
---
|
||
|
||
## 一、总体结论
|
||
|
||
**引擎核心计算功能基本可用**,27 个子命令全部能正常启动、接受参数、返回 JSON 输出。full-reading 综合解盘 19 个模块全部返回正常数据。SAV=337、R1-R10 验证全通过、Dasha 总年数=120 等关键数学验证均无误。
|
||
|
||
**主要问题集中在文档与代码不一致**——quick-reference-guide.md 中的多个示例命令无法直接执行,部分功能声称但未实现,版本号管理混乱。
|
||
|
||
---
|
||
|
||
## 二、27 个子命令逐项测试结果
|
||
|
||
| # | 子命令 | 状态 | 测试命令 | 问题 |
|
||
|---|--------|------|---------|------|
|
||
| 1 | `chart` | ✅ 正常 | `chart --year 1990 --month 1 --day 15 --hour 10 --minute 30 --lat 39.9 --lon 116.4 --tz 8` | 无 |
|
||
| 2 | `chart --validate` | ✅ 正常 | 同上 + `--validate` | 无,R1-R10 全通过 |
|
||
| 3 | `full-reading` | ✅ 正常 | `full-reading --year 1990 ... --age 35` | 返回 19 模块全 OK |
|
||
| 4 | `dasha` | ✅ 正常 | `dasha --birthdate '1990-01-15' --moon-lon 138.8151` | ⚠ 参数接口与文档场景二不一致 |
|
||
| 5 | `yoga` | ✅ 运行 | `yoga --ascendant Pisces --planets '...'` | ⚠ 检测到 0 个 Yoga(可能误判);参数格式不直观 |
|
||
| 6 | `predict` | ✅ 运行 | `predict --year ... --event-type career` | ⚠ 输出质量低(key_factors=[], timing_windows=[]) |
|
||
| 7 | `predict --past-verify` | ✅ 运行 | `predict --year ... --past-verify` | 输出泛化,仅有 4 个推断期 |
|
||
| 8 | `varga` | ✅ 正常 | `varga --year ... --d9` | ⚠ 文档中 `varga -d 24` 参数不存在 |
|
||
| 9 | `varga-full` | ✅ 正常 | `varga-full --year ... --divisions 'D2,D9,D10,D60'` | 无 |
|
||
| 10 | `transit` | ✅ 运行 | `transit --year 2026 --month 5` | ⚠ 仅接受 --year --month,文档声称有 7 个参数全不存在 |
|
||
| 11 | `shadbala` | ✅ 正常 | `shadbala --year ...` | 6 种力量完整输出 |
|
||
| 12 | `ashtakavarga` | ✅ 正常 | `ashtakavarga --year ...` | SAV=337,BAV 全部验证通过 |
|
||
| 13 | `validate` | ✅ 正常 | `validate --year ...` | 11 项全通过 |
|
||
| 14 | `audit` | ✅ 正常 | `audit --year ...` | P1-P12 审计正常输出 |
|
||
| 15 | `aspects` | ✅ 正常 | `aspects --year ...` | 度数精确相位正常 |
|
||
| 16 | `jaimini` | ✅ 正常 | `jaimini --year ...` | 7 Karaka + 8 Karaka 双输出 |
|
||
| 17 | `nakshatra-adv` | ✅ 正常 | `nakshatra-adv --year ...` | 含 Tara Bala + Sub-Lord |
|
||
| 18 | `argala` | ✅ 正常 | `argala --year ...` | 含 Virodha 反向门闩 |
|
||
| 19 | `tajika` | ✅ 正常 | `tajika --year ... --age 35` | Muntha + YearLord + Mudda Dasha |
|
||
| 20 | `synastry` | ✅ 正常 | `synastry --moon1 ... --moon2 ...` | 36 分制 + Mangal Dosha |
|
||
| 21 | `prashna` | ✅ 正常 | `prashna --datetime ... --lat ... --lon ...` | 多模式均正常 |
|
||
| 22 | `prashna --mode lost-item` | ✅ 正常 | 同上 | 失物查询正常 |
|
||
| 23 | `prashna --mode kunda` | ✅ 正常 | 同上 | 仅返回 derived nakshatra(输出过于简单) |
|
||
| 24 | `double-transit-pac` | ✅ 正常 | `double-transit-pac --year ... --date 2026-05-04 --house 7` | D1+D9+CL 三层 |
|
||
| 25 | `transit-ll7l` | ✅ 正常 | `transit-ll7l --year ... --date 2026-05-04` | 输出较简单 |
|
||
| 26 | `planetary-congregation` | ✅ 正常 | `planetary-congregation --year ... --transit-date 2026-05-04` | 本命+过境聚集检测 |
|
||
| 27 | `vivah-saham` | ✅ 正常 | `vivah-saham --year ... --transit-date 2026-05-04` | 含 Double Transit 激活判断 |
|
||
| 28 | `celebrity` | ✅ 正常 | `celebrity --name Einstein` | 返回 7 条匹配 |
|
||
| 29 | `db-stats` | ✅ 正常 | `db-stats` | 15840 案例 |
|
||
| 30 | `memory` (store) | ✅ 正常 | `memory --action store --content ...` | 存储成功 |
|
||
| 31 | `memory` (search) | ✅ 正常 | `memory --action search --query test` | 检索正常 |
|
||
| 32 | `memory` (context) | ✅ 运行 | `memory --action context --query test` | 输出全空(无历史数据属正常) |
|
||
| 33 | `report` | ⚠ 报错 | `report /tmp/test_report --name ...` | 需要预生成的 MD 文件夹 |
|
||
|
||
---
|
||
|
||
## 三、发现的问题分类
|
||
|
||
### 🔴 严重问题(按文档执行必定失败)
|
||
|
||
#### P1: `transit` 子命令文档与实现完全不一致
|
||
|
||
**文档声称**(quick-reference-guide.md 多处):
|
||
```bash
|
||
transit --target-date YYYY-MM-DD --target-planets "Jupiter,Venus" --reference-points "Lagna,Moon" --lat LAT --lon LON --tz TZ
|
||
```
|
||
|
||
**实际参数**:
|
||
```bash
|
||
transit --year 2026 --month 5 # 仅有这两个参数
|
||
```
|
||
|
||
引擎从预编译的 JSON 文件读取过境数据,不支持指定目标行星、参考点或出生信息。按文档执行直接报错。
|
||
|
||
#### P2: `cmd_rectify` 子命令完全不存在
|
||
|
||
文档 quick-reference-guide.md 第 157-158 行描述了 `cmd_rectify` 命令用于出生时间矫正:
|
||
```bash
|
||
python3 scripts/jyotish_engine.py cmd_rectify --events "..."
|
||
```
|
||
|
||
**引擎中完全没有这个子命令**。grep 搜索全文,`rectify` 出现次数为零。
|
||
|
||
#### P3: 版本号体系混乱
|
||
|
||
| 位置 | 版本 |
|
||
|------|------|
|
||
| SKILL.md | v6.0.0 |
|
||
| quick-reference-guide.md | v6.0.0 |
|
||
| jyotish_engine.py 文件头 | v3.7.1 |
|
||
| full-reading 输出 | 4.4.0-full-reading |
|
||
| ashtakavarga 输出 | 2.0 |
|
||
| audit 输出 | 3.5 |
|
||
| synastry 输出 | 3.7 |
|
||
| predict 输出 | 3.5 |
|
||
|
||
v6.0.0 是 Skill 文档层面的版本号,但引擎代码从未更新到 6.0.0。用户看到的输出中没有任何 6.0.0 标识。
|
||
|
||
### 🟡 中等问题(影响使用体验)
|
||
|
||
#### P4: `dasha` 子命令不使用标准出生信息参数
|
||
|
||
大部分子命令使用 `--year --month --day --hour --minute --lat --lon --tz`,但 dasha 使用 `--birthdate --moon-lon`。文档场景二的示例用了标准参数格式,直接执行会报错。
|
||
|
||
#### P5: `yoga` 子命令设计不直观
|
||
|
||
yoga 是唯一一个不使用标准出生信息参数的子命令,要求手动传 `--ascendant` 和 `--planets` 字符串(如 `'Sun:Aries:9,Moon:Aquarius:7,...'`)。
|
||
|
||
**问题**:
|
||
- 文档未说明如何从 `chart` 输出中提取 yoga 所需格式
|
||
- 不传参数时默认 ascendant=Aries、planets 为空,静默返回空结果(yogas_detected=0)而非报错
|
||
- 用户需要手动查 chart 输出再拼接字符串,工作流断裂
|
||
|
||
#### P6: `varga` 子命令文档中 `-d` 参数不存在
|
||
|
||
文档提到 `varga -d 24` 和 `varga -d 10`,但引擎只支持 `--d9`、`--d10`、`--all` 三个开关。
|
||
|
||
#### P7: `predict` 子命令输出质量低
|
||
|
||
predict 的 career 事件预测输出中:
|
||
- `key_factors: []` — 空数组
|
||
- `timing_windows: []` — 空数组
|
||
- `dasha_signals: []` — 空数组
|
||
- `transit_signals: []` — 空数组
|
||
- 所有事件类型(包括未请求的 marriage/wealth/health)都输出,概率全部为 30%
|
||
|
||
这表明 predict 模块的预测逻辑非常粗浅,几乎只是占位输出。
|
||
|
||
#### P8: `celebrity` 子命令数据库中 latitude/longitude 全为 null
|
||
|
||
所有 15840 个案例的 `latitude`、`longitude`、`ascendant_sign`、`ascendant_degree`、`lagna_lord` 等字段全部为 null,数据未被完整导入。但 `person_list_matches` 中包含完整坐标信息。
|
||
|
||
#### P9: `yoga` 检测灵敏度过低
|
||
|
||
测试用例中 Pisces 上升、Mars 在天蝎座入庙 9 宫、Jupiter 逆行在 Gemini 4 宫(形成 4-9 轴的 Saraswati Yoga 候选),但 yoga 检测到 0 个 Yoga。可能 Yoga 规则库过于保守或有 bug。
|
||
|
||
### 🟢 轻微问题
|
||
|
||
#### P10: `report` 子命令依赖预生成的 MD 文件夹
|
||
|
||
report 需要一个包含 p1_data.md、p2a_planets.md 等预生成文件的文件夹。普通用户不知道如何生成这些文件,文档也未说明。
|
||
|
||
#### P11: `prashna --mode kunda` 输出过于简单
|
||
|
||
仅返回 `{"derived_nakshatra": "Rohini", "index": 3}`,缺少解读内容。
|
||
|
||
#### P12: `full-reading` 模块数与文档不一致
|
||
|
||
SKILL.md 说"13模块一键出",实际返回 19 个模块。文档需要更新。
|
||
|
||
#### P13: `celebrity --config` 参数不存在
|
||
|
||
文档提到 `celebrity --config`,但引擎中只有 `--name` 和 `--limit`。
|
||
|
||
#### P14: full-reading 的 `--age` 参数文档未说明
|
||
|
||
引擎支持 `--age` 可选参数,但 quick-reference-guide.md 未提及。
|
||
|
||
#### P15: prashna 的 7 种 mode 文档不完整
|
||
|
||
引擎支持 chart/arudha/sphutas/sahams/lost-item/life/kunda 共 7 种模式,文档仅列了部分。
|
||
|
||
---
|
||
|
||
## 四、编码问题
|
||
|
||
**中文输出全部为乱码**(在终端 JSON 输出中显示为 `逐逐逐` 等不可读字符)。这是因为 JSON 输出中中文被 escape 为 `\uXXXX` 格式,但终端编码处理异常。实际在 Python 中解析后中文是正确的,但**直接阅读 JSON 输出时不可读**。
|
||
|
||
这个问题对 AI 调用者(程序化解析 JSON)影响不大,但对人类用户直接查看输出很痛苦。
|
||
|
||
---
|
||
|
||
## 五、AI 调用工作流中的关键断裂点
|
||
|
||
从普通用户/AI 的角度,以下工作流路径存在断裂:
|
||
|
||
### 路径 A(精准出生信息)断裂点:
|
||
1. **chart → yoga**:chart 输出的行星数据无法直接喂给 yoga,需要手动拼接字符串
|
||
2. **chart → dasha**:chart 输出月亮经度后需要手动传给 dasha,且 dasha 不接受标准参数
|
||
3. **chart → predict**:predict 的 `--chart` 参数需要整个 chart 的 JSON 字符串,但传参方式不直观
|
||
4. **full-reading 已解决大部分断裂**:full-reading 内部自动串联了大部分模块
|
||
|
||
### 路径 B(PDF/文字星盘)断裂点:
|
||
1. 引擎没有任何 PDF 读取能力,完全依赖 AI 手动提取后拼凑参数
|
||
2. `yoga` 需要手动传参,对 AI 来说需要额外转换逻辑
|
||
|
||
### 路径 C(出生时间矫正)断裂点:
|
||
1. `cmd_rectify` 子命令完全不存在
|
||
2. 矫正功能纯靠 AI 文档推理,无引擎支持
|
||
|
||
---
|
||
|
||
## 六、建议优先级
|
||
|
||
| 优先级 | 问题编号 | 建议操作 |
|
||
|--------|---------|---------|
|
||
| **P0** | P1, P2 | 修正 quick-reference-guide.md 中 transit 和 cmd_rectify 的文档,或实现对应功能 |
|
||
| **P1** | P3 | 统一版本号,或在 SKILL.md 中明确区分"Skill文档版本"与"引擎版本" |
|
||
| **P1** | P4, P5 | 为 dasha 和 yoga 增加标准出生信息参数支持(`_add_chart_args`) |
|
||
| **P2** | P6 | 修正 varga 文档中的 `-d` 参数说明 |
|
||
| **P2** | P7 | 增强 predict 模块的实际预测逻辑,填充 key_factors 和 timing_windows |
|
||
| **P2** | P9 | 排查 Yoga 检测灵敏度过低的问题 |
|
||
| **P3** | P8, P10-P15 | 修补文档细节、补充 report 使用说明、完善 celebrity 数据导入 |
|
||
|
||
---
|
||
|
||
## 七、测试通过确认的功能
|
||
|
||
以下核心计算能力验证通过:
|
||
- ✅ 行星位置计算(Swiss Ephemeris,Lahiri Ayanamsa)
|
||
- ✅ 宫位系统(Whole Sign)
|
||
- ✅ 行星尊贵状态(入庙/旺相/落陷等)
|
||
- ✅ 逆行检测
|
||
- ✅ Nakshatra + Pada 计算
|
||
- ✅ Vimshottari Dasha 大运/小运时间线
|
||
- ✅ SAV = 337(Ashtakavarga 总量验证)
|
||
- ✅ BAV 各行星 12 宫 bindus 总量验证
|
||
- ✅ Rahu-Ketu 180° 对冲验证
|
||
- ✅ R1-R10 数学验证全通过
|
||
- ✅ Shadbala 六种力量计算
|
||
- ✅ Jaimini Chara Karaka 7/8 双系统
|
||
- ✅ Tajika Muntha + YearLord + Mudda Dasha
|
||
- ✅ Synastry Ashta Koota 36 分制
|
||
- ✅ Prashna Arudha + Sphutas + Sahams
|
||
- ✅ Double Transit PAC 三层检测
|
||
- ✅ Vivah Saham 婚姻敏感点 + 双激活检测
|
||
- ✅ Argala 门闩 + Virodha 反门闩
|
||
- ✅ 名人数据库 15840 案例
|
||
- ✅ Hermes 记忆系统 store/search
|