Freeze finance ashtakavarga bridge audit

This commit is contained in:
732642856
2026-06-28 15:09:05 +08:00
parent a39830a2af
commit ae89ce2303
3 changed files with 146 additions and 0 deletions
+1
View File
@@ -24,6 +24,7 @@ This file is the small index for the current engineering fronts that still drive
- `/Users/wuyongnaren/Documents/印度占星/docs/research/wealth_adjudicator_fifth_pass_audit_2026_06_28.md`
- `/Users/wuyongnaren/Documents/印度占星/docs/research/wealth_adjudicator_sixth_pass_audit_2026_06_28.md`
- `/Users/wuyongnaren/Documents/印度占星/docs/research/wealth_adjudicator_sixth_pass_avayogi_boundary_2026_06_28.md`
- `/Users/wuyongnaren/Documents/印度占星/docs/research/wealth_adjudicator_seventh_pass_ashtakavarga_bridge_2026_06_28.md`
- `/Users/wuyongnaren/Documents/印度占星/references/event_judgment_wealth.md`
## Oracle Closure
@@ -0,0 +1,103 @@
# Wealth Adjudicator Seventh Pass Ashtakavarga Bridge (2026-06-28)
## What This Pass Freezes
This pass does not invent a new finance scoring path.
It locks an already-landed bridge in `/Users/wuyongnaren/Documents/印度占星/mcp_server.py` with an explicit regression test and puts it back into the audit trail.
The bridge is:
- `present_evidence.ashtakavarga_finance_support`
- `event_judgement.secondary_context += ["ashtakavarga_wealth_support"]`
when `Ashtakavarga house_scores` show supportive SAV values on wealth houses.
## Boundary
This bridge remains a secondary modifier.
It does:
- read native `modules.ashtakavarga.house_scores`
- inspect wealth houses `2` and `11`
- emit a compact evidence block
- append context for downstream finance adjudication
It does not:
- recalculate Ashtakavarga
- override `wealth_promise_strength`
- mint a new payout label
- bypass D2 / Dasha / convergence requirements
## Contract
The frozen structure is:
```json
{
"ashtakavarga_finance_support": {
"level": "supportive | none",
"source": "ashtakavarga_house_scores_bridge_v1",
"target_houses": [2, 11],
"signals": ["wealth_sav_support"],
"raw_scores": {
"2": 33,
"11": 35
}
}
}
```
And the finance event judgement can add:
```json
{
"secondary_context": ["ashtakavarga_wealth_support"]
}
```
## Regression Locked
Test file:
- `/Users/wuyongnaren/Documents/印度占星/tests/test_mcp_strict_workflow_finance.py`
Locked case:
- supportive SAV score on house `2`
- supportive SAV score on house `11`
- native Dhana support already present
Expected:
- `present_evidence.ashtakavarga_finance_support.level == "supportive"`
- `secondary_context` includes `ashtakavarga_wealth_support`
## Why This Matters
This closes a small but important gap:
- the code path was present
- the strict workflow test suite had started to expect it
- but the bridge had not yet been frozen into the research trail
That is exactly how high-value logic turns back into an underused fragment. This pass prevents that drift.
## Verification
Ran:
```bash
python3 -m pytest tests/test_mcp_strict_workflow_finance.py -q
python3 -m pytest tests/test_mcp_strict_workflow_career.py tests/test_mcp_strict_workflow_relationship.py tests/test_mcp_strict_workflow_finance.py -q
```
## Still Open After This Pass
- richer wealth use of Ashtakavarga beyond simple supportive bridge
- Vimsopaka semantic mapping for `NEECHA_BHANGA / GREAT_FRIEND / GREAT_ENEMY`
- functional-role guardrail
- VedAstro adapter MVP
- oracle pending packets and benchmark closure
+42
View File
@@ -186,6 +186,48 @@ def test_collect_strict_evidence_finance_derives_wealth_promise_from_dhana_yogas
assert strict["event_judgement"]["payout_label"] == "public_wealth_status"
def test_collect_strict_evidence_finance_folds_wealth_ashtakavarga_support() -> None:
result = {
"modules": {
"varga_full": {"D2_Hora": {"summary": "ok"}, "D10_Dasamsa": {"summary": "ok"}},
"shadbala": {"planets": {"Venus": {"total_rupa": 8.2}}},
"ashtakavarga": {
"house_scores": {
"2": 33,
"11": 35,
"10": {"sav": 32},
}
},
"dasha": {"current_dasha": {"mahadasha": "Venus", "antardasha": "Mercury"}},
"narayana_dasha": {"current_dasha": {"sign": "Taurus", "lord": "Venus"}},
"dasa_convergence": {
"domain_activations": {
"wealth_family": {"convergence_level": "L1", "probability": "+15-20%"},
"gains_wishes": {"convergence_level": "L1", "probability": "+15-20%"},
"career_status": {"convergence_level": "L1", "probability": "+15-20%"},
}
},
"yogas_doshas": {
"dhana_yogas": {
"yogas": [{"type": "Dhana Yoga", "strength": "moderate"}],
"summary": "Dhana Yoga检测:共1个格局",
}
},
}
}
strict = _collect_strict_evidence("finance", result)
assert strict["present_evidence"]["ashtakavarga_finance_support"] == {
"level": "supportive",
"source": "ashtakavarga_house_scores_bridge_v1",
"target_houses": [2, 11],
"signals": ["wealth_sav_support"],
"raw_scores": {"2": 33, "11": 35},
}
assert "ashtakavarga_wealth_support" in strict["event_judgement"]["secondary_context"]
def test_collect_strict_evidence_finance_combines_dhana_and_lakshmi_hooks() -> None:
result = {
"modules": {