Freeze finance ashtakavarga bridge audit
This commit is contained in:
@@ -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
|
||||
@@ -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": {
|
||||
|
||||
Reference in New Issue
Block a user