Files
Jyotisha/references/audit-skill-full-test-2026-05-04.md
732642856 6755d4522a feat: v6.0.1 pre-publish - add verification data, audit reports, lessons learned, celebrity cases
- 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
2026-05-05 14:04:40 +08:00

231 lines
11 KiB
Markdown
Raw Permalink 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.
# 印度占星 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=337BAV 全部验证通过 |
| 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 EphemerisLahiri Ayanamsa
- ✅ 宫位系统(Whole Sign
- ✅ 行星尊贵状态(入庙/旺相/落陷等)
- ✅ 逆行检测
- ✅ Nakshatra + Pada 计算
- ✅ Vimshottari Dasha 大运/小运时间线
- ✅ SAV = 337Ashtakavarga 总量验证)
- ✅ 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