Clean fragment residue and surface functional audit details

This commit is contained in:
732642856
2026-06-28 18:46:25 +08:00
parent 2994970da2
commit cf5ed67645
15 changed files with 3924 additions and 18 deletions
@@ -0,0 +1,32 @@
# Raman Dasha Oracle Draft - 2026-06-28
This draft preserves an untracked pytest-style scratch file that was found
during workspace residue cleanup. It is not an executable benchmark yet.
## Source Claim
- Source: B. V. Raman, *Hindu Predictive Astrology*.
- Birth data noted in the scratch file: 1912-08-08, 19:43 IST, Bangalore.
- Ayanamsa noted in the scratch file: Raman, approximately 21 deg 10 min 23 sec.
## Claimed Vimshottari Boundaries
| Boundary | Target date |
|----------|-------------|
| Mars MD start | 1912-08-08 |
| Rahu MD start | 1918-09-21 |
| Jupiter MD start | 1936-09-21 |
| Saturn MD start | 1952-09-21 |
| Mercury MD start | 1971-09-21 |
| Ketu MD start | 1988-09-21 |
## Promotion Boundary
Do not move this into `tests/` until:
- the exact book passage or external artifact is cited;
- Raman ayanamsa mode and dasha-year policy are frozen;
- the engine call is real, not a mock;
- the tolerance is explicit and reviewed.
Until then it is a benchmark/oracle draft only.
@@ -0,0 +1,14 @@
# Legacy Marriage Benchmark v6.1
This folder preserves the May 2026 marriage validation artifacts that were
previously left under `tests/` as untracked residue.
These files are research and benchmark evidence, not executable pytest tests:
- `verify-results-v6.1.json` contains the 18-case structured validation output.
- `印度占星实战案例综合验证报告-v6.1-2026-05-03.md` contains the corresponding Rao
8-parameter marriage validation report.
Keep this folder as a historical benchmark source. Promote individual rules into
tracked tests only after the target oracle fields, input data, and acceptance
tolerances are explicitly frozen.
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,139 @@
# 印度占星 Skill 实战案例综合验证报告 v6.1 (Rao 8参数+多维度)
> **日期**: 2026-05-03 | **案例**: 18名人 | **核心**: Rao 8参数体系 + 多维度交叉验证
> **v6.0→v6.1**: 补全18项遗漏(Rao P1-P8, UL/Argala/D7/D60/Vivah Saham等)
## 一、Rao 8参数命中率统计
**总婚姻事件**: 26
| 参数 | 描述 | 命中数 | 命中率 | Rao原始命中率 |
|------|------|--------|--------|-------------|
| P1 | Vimshottari PAC连接 | 25 | 25/26=96% | 100% |
| P2 | Chara Dasha+Jaimini | 19 | 19/26=73% | 96% |
| P3 | Vivah Saham | 15 | 15/26=58% | 77% |
| P4 | Double Transit PAC | 17 | 17/26=65% | 85% |
| P5 | Transit LL-7L连接 | 17 | 17/26=65% | 98% |
| P6 | Jupiter激活性别星 | 18 | 18/26=69% | 68% |
| P7 | 行星聚集Lagna/7H | 4 | 4/26=15% | 70% |
| P8 | Transit LL/7L互换 | 4 | 4/26=15% | 59% |
**累积命中分布**:
- 6+参数: 5/26 = 19.2% (Rao: 85.78%)
- 5+参数: 13/26 = 50.0% (Rao: 94.50%)
- 4+参数: 22/26 = 84.6% (Rao: 100%)
## 二、逐案例 Rao 8参数得分
| 名人 | 配偶 | 日期 | P1 | P2 | P3 | P4 | P5 | P6 | P7 | P8 | 总计 |
|------|------|------|----|----|----|----|----|----|----|----|------|
| Tom Cruise | Katie Holmes | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | **7/8** |
| Elon Musk | Justine Wilson | | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | ✓ | **7/8** |
| Britney Spears | Kevin Federline | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✓ | **7/8** |
| Albert Einstein | Mileva Maric | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | **6/8** |
| Nelson Mandela | Winnie Madikizela | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | **6/8** |
| Albert Einstein | Elsa Einstein | | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✓ | **5/8** |
| Princess Diana | Prince Charles | | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | **5/8** |
| Michael Jackson | Debbie Rowe | | ✓ | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | **5/8** |
| Tom Cruise | Mimi Rogers | | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | **5/8** |
| Tom Cruise | Nicole Kidman | | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | **5/8** |
| Elon Musk | Talulah Riley | | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | **5/8** |
| Shah Rukh Khan | Gauri Khan | | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | **5/8** |
| Amitabh Bachchan | Jaya Bhaduri | | ✓ | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | **5/8** |
| Steve Jobs | Laurene Powell | | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | **4/8** |
| Barack Obama | Michelle Robinson | | ✓ | ✗ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | **4/8** |
| Bill Gates | Melinda French | | ✓ | ✗ | ✓ | ✗ | ✓ | ✓ | ✗ | ✗ | **4/8** |
| Nelson Mandela | Evelyn Mase | | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | **4/8** |
| Oprah Winfrey | Stedman Graham | | ✓ | ✗ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | **4/8** |
| Jeff Bezos | MacKenzie Scott | | ✓ | ✓ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | **4/8** |
| Britney Spears | Jason Alexander | | ✓ | ✓ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | **4/8** |
| Mark Zuckerberg | Priscilla Chan | | ✓ | ✓ | ✗ | ✓ | ✗ | ✓ | ✗ | ✗ | **4/8** |
| Narendra Modi | Jashodaben Modi | | ✓ | ✓ | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | **4/8** |
| Michael Jackson | Lisa Marie Presley | | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | **3/8** |
| Nelson Mandela | Graca Machel | | ✓ | ✗ | ✓ | ✗ | ✗ | ✓ | ✗ | ✗ | **3/8** |
| Prince Harry | Meghan Markle | | ✗ | ✗ | ✓ | ✓ | ✗ | ✗ | ✗ | ✗ | **2/8** |
| Priyanka Chopra | Nick Jonas | | ✓ | ✗ | ✗ | ✗ | ✓ | ✗ | ✗ | ✗ | **2/8** |
## 三、多维度交叉验证摘要
### 3.1 UL (Upapada Lagna) 婚姻稳定性
| 名人 | UL | UL主 | UL第2宫 | 吉星 | 凶星 | 稳定性 | DK-UL关系 |
|------|-----|------|---------|------|------|--------|----------|
| Albert Einstein | Pisces | Jupiter | Aries | - | - | neutral | UL=DK sign |
| Steve Jobs | Pisces | Jupiter | Aries | - | Mars | weak | no direct link |
| Princess Diana | Taurus | Venus | Gemini | Mercury | Sun | neutral | UL=DK sign |
| Barack Obama | Capricorn | Saturn | Aquarius | - | Ketu | weak | UL=DK sign |
| Bill Gates | Virgo | Mercury | Libra | Venus | Sun,Saturn | weak | no direct link |
| Michael Jackson | Cancer | Moon | Leo | Mercury | Sun | neutral | no direct link |
| Nelson Mandela | Virgo | Mercury | Libra | Moon | - | strong | no direct link |
| Tom Cruise | Taurus | Venus | Gemini | - | Sun | weak | UL=DK sign |
| Elon Musk | Taurus | Venus | Gemini | Mercury | Sun | neutral | no direct link |
| Oprah Winfrey | Scorpio | Mars | Sagittarius | - | - | neutral | UL=DK sign |
| Prince Harry | Scorpio | Mars | Sagittarius | Jupiter | - | strong | no direct link |
| Jeff Bezos | Aquarius | Saturn | Pisces | Jupiter | - | strong | no direct link |
| Priyanka Chopra | Gemini | Mercury | Cancer | - | Sun | weak | no direct link |
| Shah Rukh Khan | Capricorn | Saturn | Aquarius | - | Saturn | weak | no direct link |
| Britney Spears | Virgo | Mercury | Libra | Jupiter | - | strong | no direct link |
| Mark Zuckerberg | Taurus | Venus | Gemini | - | - | neutral | UL=DK sign |
| Narendra Modi | Virgo | Mercury | Libra | - | - | neutral | UL=DK sign |
| Amitabh Bachchan | Taurus | Venus | Gemini | - | - | neutral | no direct link |
### 3.2 Argala 7宫净评估
| 名人 | 支持(Argala) | 阻碍(Virodha) | 净分 | 评估 |
|------|------------|-------------|------|------|
| Albert Einstein | Ketu(H2) | Sun(H10),Mercury(H10),Venus(H10),Saturn(H10) | -3 | block |
| Steve Jobs | Jupiter(H11),Ketu(H11) | Saturn(H3) | 1 | support |
| Princess Diana | Moon(H4),Ketu(H4) | Mars(H10),Jupiter(H3),Saturn(H3),Rahu(H10) | -2 | block |
| Barack Obama | Ketu(H2) | - | 1 | support |
| Bill Gates | Sun(H4),Jupiter(H2),Venus(H4),Saturn(H4),Ketu(H11) | Mars(H3),Mercury(H3) | 3 | support |
| Michael Jackson | Mars(H11),Venus(H2),Ketu(H11) | Sun(H3),Mercury(H3) | 1 | support |
| Nelson Mandela | Jupiter(H2) | Sun(H3),Mercury(H3),Saturn(H3) | -2 | block |
| Tom Cruise | Saturn(H4),Ketu(H4) | Moon(H10),Venus(H10),Rahu(H10) | -1 | block |
| Elon Musk | Ketu(H2) | Moon(H3),Venus(H12),Saturn(H12) | -2 | block |
| Oprah Winfrey | Sun(H2),Mercury(H2),Venus(H2),Saturn(H11),Rahu(H2) | Moon(H12),Mars(H12) | 3 | support |
| Prince Harry | Saturn(H11) | Mars(H12),Venus(H10),Ketu(H12) | -2 | block |
| Jeff Bezos | Sun(H2),Moon(H2),Mercury(H2),Venus(H4),Ketu(H2) | Mars(H3),Saturn(H3) | 3 | support |
| Priyanka Chopra | Mars(H11),Saturn(H11),Ketu(H2) | Jupiter(H12) | 2 | support |
| Shah Rukh Khan | Mars(H4),Mercury(H4),Jupiter(H11),Ketu(H4) | Sun(H3),Rahu(H10) | 2 | support |
| Britney Spears | Moon(H11),Venus(H11),Ketu(H11) | - | 3 | support |
| Mark Zuckerberg | Moon(H2),Mars(H2),Jupiter(H4),Saturn(H2) | Ketu(H3) | 3 | support |
| Narendra Modi | Moon(H2),Mars(H2),Venus(H11),Saturn(H11) | Sun(H12),Mercury(H12),Ketu(H12) | 1 | support |
| Amitabh Bachchan | Saturn(H4) | - | 1 | support |
### 3.3 Vipareeta Raja Yoga 检测
- **Albert Einstein**: 6L(Mars)在H8 → Vipareeta
- **Steve Jobs**: 12L在8宫: 死亡征象
- **Michael Jackson**: 8L(Saturn)在H6 → Vipareeta
- **Tom Cruise**: 12L在8宫: 死亡征象
- **Elon Musk**: 6L(Mars)在H8 → Vipareeta, 8L(Saturn)在H12 → Vipareeta
- **Oprah Winfrey**: 8L(Moon)在H12 → Vipareeta
- **Priyanka Chopra**: 12L在8宫: 死亡征象
## 四、置信度评估 [A/B/C]
### [A] 已验证
1. DK Nakshatra → 配偶深层特质: 100%
2. D9 DK → 配偶本质属性: 100%
3. Vimshottari Dasha计算: 100%
4. Rao P1 (Vimshottari PAC): 100% (218案例)
5. Rao P5 (Transit LL-7L): 98% (214/218)
### [B] 可验证
1. Rao P2 (Chara Dasha): 96%
2. Rao P4 (Double Transit PAC): 85%
3. Rao P3 (Vivah Saham): 77%
4. 7宫主落宫 → 相遇方式: ~75%
5. Yogakaraka → 事业高峰
6. UL第2宫 → 婚姻稳定性
### [C] 待验证
1. Rao P6/P7/P8: 59-70%
2. Vipareeta Raja Yoga: 少案例
3. 12宫主落8宫死亡征象: 少案例
---
*报告生成: 2026-05-03 | 验证脚本: verify-jyotish-v6.1.py*
*数据源: Swiss Ephemeris (Lahiri Ayanamsa) | 18名人案例*
+13
View File
@@ -10,6 +10,19 @@
- Round 25 副手任务已发布,扫描时已看到部分 `antigravity_round25_*` 报告开始生成,但未满 18+ 前不能视为完成。
- Ashtakoot 结论边界:Round 24 “全 0/瞎编”属于需纠正的过强说法;当前 `scripts/ashtakoot.py` 有非零本地规则,但外部 oracle 仍 0/5,不能声称与 JHora/AstroSage/VedAstro 完全一致。
## 2026-06-28 全仓工作流遗漏扫描结论
- 当前排除 venv/build/dist/cache 后仍有约 1528 个文件;主风险区是 `docs/``references/``scripts/``tests/``jyotish-app/``scratch/`
- `python3 scripts/audit_fragments.py --strict` 当前返回 `valid: true``problem_count: 0`,注册表 89 技法均有引擎/API/前端/测试/脚本中的至少一种产品表面;这说明“registry 声称但完全无入口”的大类问题暂未发现。
- 扫描发现真实遗漏:Functional Benefic/Malefic 后端和 MCP 已接入,但前端 `Technique Audit Table`/Skill Map 一度缺少可见审计行;已通过 `tests/test_frontend_productization.py::test_skill_map_surfaces_functional_benefic_malefic_audit_row` 守门。
- `audit_fragments` 仍标记 3 个脚本候选碎片:`oracle_functional_benefics.py``patch_api_tz.py``patch_engine_tz.py`。其中 `oracle_functional_benefics.py` 是功能性吉凶 CLI 包装器,应决定是否纳入 registry/quality gate`patch_api_tz.py``patch_engine_tz.py` 是会改源码的一次性补丁脚本,不应作为产品工作流留在 `scripts/` 默认面。
- 当前 Git 未跟踪残留 11 个:个人/临时输出 `full_chart_data.json``test_dasha.json``test_output.json``scratch_extract.py``scratch_mcp_eval.py`;一次性补丁 `scripts/patch_api_tz.py``scripts/patch_engine_tz.py`;个人同步工具 `scripts/sync_to_workbuddy.sh`;测试候选 `tests/test_dasha_raman_truth.py`;测试/研究 artifact `tests/verify-results-v6.1.json``tests/印度占星实战案例综合验证报告-v6.1-2026-05-03.md`
- `docs/research/ACTIVE_FRONTS.md` 当前仍列出未闭合项:Vimsopaka semantic mapping for `NEECHA_BHANGA / GREAT_FRIEND / GREAT_ENEMY`,以及 functional role 的 Technique Audit Table rendering 跟进。
- `docs/research/vedastro_parity_matrix_latest.md` 当前 13 行中 `partial=8``covered=4``missing=1`。P0 未闭合集中在 Tajika Annual、Ayanamsa parity、Report Rendering、MCP/API VedAstro live adapter smoke、Ashtakavarga/Shadbala parity、EventsAtRange/Life Event GraphNumerology/Non-Jyotish Tools 为 P2 adjacent missing,不属于 Jyotish 主工作流。
- 验证命令:`python3 scripts/run_quality_gate.py --profile quick --skip-frontend-runtime` 通过;`npm run build` 通过;`python3 -m pytest tests/ -q` 通过;`git diff --check` 通过。
- 后续收口结论:`oracle_functional_benefics.py` 已通过 CLI JSON 合同测试进入正式测试表面;`patch_api_tz.py``patch_engine_tz.py` 与个人 scratch/output 已归入 ignored `scratch/local`v6.1 婚恋验证资产已转入 `docs/benchmark/legacy-marriage-v6.1/`Raman Dasha 草稿保留为 benchmark draft,不再伪装成 pytest。
- 新发现的真实遗漏:relationship strict bridge 原先只识别字符串 `"BadConstellations": "good"`,不识别 nested dict 形态,也不读取 `exceptions` mitigation 文本;已补 `exception_mitigated_match` 与 nested Kuta 归一化,避免 Synastry/Ashtakoot 资产被浅层解析吞掉。
## 开源与本地基线
- `references/open-source-jyotish-scan-2026.md` 已记录可直接复用/对标项目:dashaflow、jyotishganit、panchanga_api、jaimini-tropical、VedicAstro、KPAstroDashboard、vedic_astro_npm、PyJHora、VedAstro、xalen-ephemeris。
-1
View File
@@ -37,7 +37,6 @@ const TECHNIQUES = [
['Functional Benefic/Malefic / 功能吉凶星', '已接入', '按 Lagna 输出功能吉星、功能凶星、Yogakaraka 与中性星,并进入 Technique Audit Table'],
['Argala', '已接入', '综合深度 Tab 已展示 Argala/Virodhargala 支持、阻挡和净分'],
['Shadbala', '已接入', '六维力量表;保留绝对值校准边界'],
['Functional Benefic/Malefic', '已接入', '功能吉凶星判定已进入高严谨工作流,并在 Technique Audit Table 中影响结论置信度'],
['Ashtakavarga', '已接入', 'SAV/BAV、Transit AV'],
['KP / Sub-lord', '已接入', 'KP页已支持问题域筛选、重点宫位 ABCD significator、高权重证据解释、Sublord 表格与使用边界'],
['Synastry / Ashtakoot', '已接入', '合盘页已支持对方完整出生资料排盘、36分Ashtakoot、D9专题、Kuja Dosha平衡与Dasha同步;保留月亮黄经快算'],
+13 -2
View File
@@ -494,10 +494,21 @@ def _derive_synastry_relationship_support(modules: Dict[str, Any]) -> Dict[str,
signals.append("ashtakoot_approved")
if total_score is not None and total_score >= 27:
signals.append("ashtakoot_high_score")
exceptions = synastry.get("exceptions")
if isinstance(exceptions, list):
exception_text = " ".join(str(item).lower() for item in exceptions)
if "mitigat" in exception_text or "exception" in exception_text:
signals.append("exception_mitigated_match")
additional_kutas = synastry.get("additional_kutas")
if isinstance(additional_kutas, dict):
vedha_good = additional_kutas.get("Vedha") == "good"
bad_constellations_good = additional_kutas.get("BadConstellations") == "good"
def _kuta_result(value: Any) -> str | None:
if isinstance(value, dict):
result = value.get("result")
return str(result).lower() if result is not None else None
return str(value).lower() if value is not None else None
vedha_good = _kuta_result(additional_kutas.get("Vedha")) == "good"
bad_constellations_good = _kuta_result(additional_kutas.get("BadConstellations")) == "good"
rajju = additional_kutas.get("Rajju")
rajju_good = isinstance(rajju, dict) and rajju.get("result") == "good"
if vedha_good and bad_constellations_good and rajju_good:
+18
View File
@@ -405,3 +405,21 @@
- 更新 `docs/research/ACTIVE_FRONTS.md` 的 Oracle Closure 入口,要求后续修改 oracle-dependent adjudicator 或 benchmark claims 前先运行 `python3 scripts/oracle_benchmark_inventory.py --format json`
- 收口上一轮遗留的 finance Shadbala 组件审计:`mcp_server.py``shadbala.planets` 要求 `sthana/dig/kala/chesta/naisargika/drik` 六分量,缺失时 `confidence_cap = low` 且进入 `secondary_context += ["shadbala_component_gap"]`;补文档 `docs/research/shadbala_component_confidence_cap_v1_2026_06_28.md`
- 验证:`python3 -m pytest tests/test_oracle_benchmark_inventory.py -q` 通过;`python3 -m pytest tests/test_mcp_strict_workflow_finance.py -q` 24 项通过;`python3 -m json.tool docs/research/oracle_benchmark_inventory_latest.json` 通过。
## 2026-06-28T18:27:42+08:00 - 全仓工作流遗漏扫描
- 读取并恢复 `task_plan.md``findings.md``progress.md`,确认当前已有“整机与 Git 云端地毯式遗漏审计”上下文。
- 执行仓库规模扫描:排除 venv/build/dist/cache 后约 1528 个文件,重点检查 docs/references/scripts/tests/jyotish-app/scratch。
- 执行 `python3 scripts/audit_fragments.py --strict`:注册表 89 技法的产品表面审计通过,问题数 0;候选碎片仍为 `oracle_functional_benefics.py``patch_api_tz.py``patch_engine_tz.py`
- 执行 quick quality gate 时发现 `test_skill_map_surfaces_functional_benefic_malefic_audit_row` 红灯,根因为功能性吉凶层未在前端 Skill Map / Technique Audit Table 可见化;补齐后聚焦测试通过。
- 分类未跟踪残留 11 个,其中多数为 scratch/个人输出;`tests/test_dasha_raman_truth.py` 是未纳入 CI 的测试候选;`tests/verify-results-v6.1.json` 和中文报告应移出 tests 或明确接入测试。
- 复核 `ACTIVE_FRONTS.md``vedastro_parity_matrix_latest.md`:仍有 Vimsopaka 高阶语义映射、Functional role 审计表渲染后续、VedAstro adapter endpoint smoke、Life Event Graph、报告渲染等未闭合工作。
- 验证:`python3 scripts/run_quality_gate.py --profile quick --skip-frontend-runtime` 通过;`npm run build` 通过;`python3 -m pytest tests/ -q` 通过;`git diff --check` 通过。
## 2026-06-28T18:58:00+08:00 - 碎片残留与 Functional/Synastry 桥接收口
- 将散落在根目录和 `scripts/` 的临时输出、scratch 脚本、一次性 timezone patch 脚本移动到 ignored `scratch/local/...`,不再污染产品脚本面。
- 将旧 `tests/verify-results-v6.1.json` 与中文婚恋验证报告移动到 `docs/benchmark/legacy-marriage-v6.1/`,新增 README 标明它们是历史 benchmark evidence,不是 pytest。
- 将未成熟的 Raman Dasha oracle pytest 草稿改写为 `benchmarks/jyotish/reports/drafts/raman_dasha_oracle_draft_2026_06_28.md`,保留目标日期但明确 promotion boundary,避免被误纳入 CI。
- `oracle_functional_benefics.py` 新增 CLI JSON 合同测试;`python3 scripts/audit_fragments.py --strict` 显示 candidate_count 从 3 降到 0。
- Functional Benefic/Malefic 的 `Technique Audit Table` 与 real-reading checklist 现在显式要求/输出 `functional_neutrals``yogakarakas`
- 合婚 strict bridge 修复 `additional_kutas.BadConstellations` 的 nested dict 形态,并把 mitigation exceptions 折叠成 `exception_mitigated_match`,防止已有 Ashtakoot 细节资产在 relationship adjudicator 中被吞掉。
+9
View File
@@ -428,6 +428,15 @@ AI不应该凭空假设一个时间,而应该通过结构化互动帮助用户
在使用下方意图路由表之前,先读取 `strict-workflow-router.md`。凡涉及事业、婚恋、财务、事件应期、历史回测、技法可靠性或高级分析,必须选择对应 strict route,并在最终输出附 Technique Audit Table。
在 Technique Audit Table 中,`Functional Benefic/Malefic` 不得只写“已使用”。必须显式列出:
- functional benefics
- functional malefics
- functional neutrals
- yogakarakas
- 对结论置信度的影响
若缺少其中任一层,不得伪装成高严谨完成态,应降级置信度或标记 `blocked`
| 用户意图 | Strict route | 必须额外完成 |
|----------|-------------|-------------|
| 事业机会/职业方向/项目落地 | `career-timing-strict` | D1+D9+D10+Vimshottari+Jaimini+AmK/Karakamsha+AL/A10+Shadbala+AV+Argala |
+16 -15
View File
@@ -26,33 +26,34 @@
11. 是否显式给出 `Functional Benefic/Malefic`
12. 是否区分了自然属性、功能属性、题目域角色、当前激活结果?
13. `Saturn / Mars / Rahu / Ketu` 是否避免了“天然负面”式偷懒断法
13. 是否显式列出 `functional neutrals``Yogakaraka`,避免它们在最终报告中被折叠丢失
14.`Saturn / Mars / Rahu / Ketu` 是否避免了“天然负面”式偷懒断法?
## E. 分盘层
14. 婚恋是否至少展开 `D9 / UL / DK`
15. 事业是否至少展开 `D10 / A10 / AmK/Karakamsha`
16. 财富是否至少展开 `D2/D11`,并回看 D1/D9/D10 的变现链?
17. 若使用 `D30 / D60`,是否明确说明这是高敏后置层而非主裁判?
15. 婚恋是否至少展开 `D9 / UL / DK`
16. 事业是否至少展开 `D10 / A10 / AmK/Karakamsha`
17. 财富是否至少展开 `D2/D11`,并回看 D1/D9/D10 的变现链?
18. 若使用 `D30 / D60`,是否明确说明这是高敏后置层而非主裁判?
## F. Timing 层
18. 是否至少执行 `Vimshottari + Narayana` 双轨交叉?
19. 若做具体事件判断,是否加入 `Transit / Double Transit / annual / KP or Chara support`
20. 如果 timing 只做到窗口级,而不是日期级,是否说清了边界?
19. 是否至少执行 `Vimshottari + Narayana` 双轨交叉?
20. 若做具体事件判断,是否加入 `Transit / Double Transit / annual / KP or Chara support`
21. 如果 timing 只做到窗口级,而不是日期级,是否说清了边界?
## G. 外部真值与诚信边界
21. 是否清楚声明 `production_tuning_allowed` 的当前状态?
22. 是否把外部 oracle 未闭环的前线(Dasha boundary / Shadbala absolute / Tajika annual)说清楚?
23. 是否避免把内部一致性伪装成传统软件级真值冻结?
22. 是否清楚声明 `production_tuning_allowed` 的当前状态?
23. 是否把外部 oracle 未闭环的前线(Dasha boundary / Shadbala absolute / Tajika annual)说清楚?
24. 是否避免把内部一致性伪装成传统软件级真值冻结?
## H. 输出层
24. 是否输出 `Technique Audit Table` 或等价审计表?
25. 是否给出 `used / partial / blocked / not used` 级别说明?
26. 是否给出置信度,而不是只给断语?
27. 是否把 must-not-overclaim 边界说清楚?
25. 是否输出 `Technique Audit Table` 或等价审计表?
26. 是否给出 `used / partial / blocked / not used` 级别说明?
27. 是否给出置信度,而不是只给断语?
28. 是否把 must-not-overclaim 边界说清楚?
## 一句话用法
+2
View File
@@ -893,6 +893,8 @@ def _build_technique_audit_table(functional_layer, oracle_progress, modules):
'note': (
f"关键功能吉星={functional_layer.get('functional_benefics', [])}; "
f"关键功能凶星={functional_layer.get('functional_malefics', [])}; "
f"功能中性星={functional_layer.get('functional_neutrals', [])}; "
f"Yogakaraka={functional_layer.get('yogakarakas', [])}; "
f"{functional_layer.get('effect_on_confidence', '高严谨模式缺少功能性吉凶星判定。')}"
),
},
+2
View File
@@ -285,6 +285,8 @@ def test_full_reading_reports_ayanamsa_metadata_and_ai_prompt_pack() -> None:
assert "高严谨" in functional_rows[0]["note"]
assert "关键功能吉星=" in functional_rows[0]["note"]
assert "关键功能凶星=" in functional_rows[0]["note"]
assert "功能中性星=" in functional_rows[0]["note"]
assert "Yogakaraka=" in functional_rows[0]["note"]
dasha_rows = [row for row in audit_table if row["technique"] == "Vimshottari + Narayana Cross-check"]
assert dasha_rows
assert dasha_rows[0]["status"] == "used"
@@ -3,6 +3,10 @@
from __future__ import annotations
import json
import subprocess
import sys
from mcp_server import _collect_strict_evidence
from scripts.functional_benefics import derive_functional_benefic_malefic
@@ -74,3 +78,27 @@ def test_relationship_functional_layer_uses_ascendant_even_when_planets_missing(
assert "Sun" in functional["functional_benefics"]
assert "Venus" in functional["functional_malefics"]
assert "functional_benefic_malefic_used" in strict["event_judgement"]["secondary_context"]
def test_oracle_functional_benefics_cli_exposes_json_contract() -> None:
completed = subprocess.run(
[
sys.executable,
"scripts/oracle_functional_benefics.py",
"--ascendant",
"Leo",
"--format",
"json",
],
check=True,
capture_output=True,
text=True,
)
report = json.loads(completed.stdout)
assert report["status"] == "used"
assert report["ascendant"] == "Leo"
assert "Sun" in report["functional_benefics"]
assert "Venus" in report["functional_malefics"]
assert "Mars" in report["yogakarakas"]
assert report["source"] == "strict_functional_benefic_malefic_v1"
@@ -167,6 +167,34 @@ def test_relationship_synastry_bridge_cannot_lift_label_when_core_marriage_layer
assert "upapada_lagna" in strict["missing_evidence"]
def test_relationship_synastry_bridge_understands_nested_bad_constellations_and_exception_mitigation() -> None:
result = _base_relationship_result()
result["modules"]["synastry"] = {
"total_score": 18.0,
"max_score": 36.0,
"is_approved": True,
"exceptions": ["Nadi Dosha mitigated by good Bhakoot and Rajju."],
"additional_kutas": {
"Mahendra": "good",
"StreeDeergha": "good",
"Vedha": "good",
"Rajju": {"result": "good", "group": None, "effect": ""},
"BadConstellations": {"result": "good", "issues": []},
},
}
strict = _collect_strict_evidence("relationship", result)
assert strict["present_evidence"]["synastry_relationship_support"] == {
"level": "moderate",
"source": "synastry_relationship_bridge_v1",
"signals": ["ashtakoot_approved", "exception_mitigated_match", "kuta_exception_clean"],
"total_score": 18.0,
"approved": True,
}
assert "synastry_support" in strict["event_judgement"]["secondary_context"]
def test_relationship_dignity_guardrail_ignores_non_relevant_planets() -> None:
result = _base_relationship_result()
result["modules"]["chart"] = {
@@ -20,6 +20,8 @@ def test_real_reading_quality_checklist_exists_and_covers_structural_gaps() -> N
"covered",
"complete",
"Functional Benefic/Malefic",
"Yogakaraka",
"functional neutrals",
"Vimshottari + Narayana",
"production_tuning_allowed",
"Technique Audit Table",