{ "scope": "vedastro_parity_matrix", "schema_version": 1, "generated_at": "2026-07-16T11:53:05.440396+00:00", "summary": { "row_count": 13, "p0_count": 11, "status_counts": { "partial": 8, "covered": 4, "missing": 1 }, "recommended_path_counts": { "hybrid_local_plus_vedastro": 7, "local_native": 4, "new_local_impl": 1, "external_evidence_only": 1 }, "fastest_path_lane_counts": { "official_python_bridge": 3, "hybrid_router": 1, "local_native_preferred": 5, "official_mcp": 1, "rest_adapter": 2, "external_evidence_only": 1 }, "local_registry_technique_count": 91 }, "boundary": { "not_a_clone_claim": true, "external_outputs_are_adapter_evidence_until_promoted": true, "local_adjudicator_remains_final_reasoning_layer": true }, "rows": [ { "vedastro_capability": "Tajika Annual", "category": "annual_prediction", "local_status": "partial", "local_assets": [ "tajika.py", "varshaphala.py", "sahams", "solar_return" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "official_python_bridge", "priority": "P0", "license_boundary": "local_native_or_external_oracle", "adjudicator_use": "secondary", "gap_notes": "Annual modules exist; yearly career/wealth/month windows need stronger strict-workflow integration.", "route_notes": "Use Python bridge for breadth, but keep year-chart reasoning and labels local." }, { "vedastro_capability": "Ayanamsa Selection", "category": "ephemeris_policy", "local_status": "partial", "local_assets": [ "ayanamsa_utils", "ephemeris_adapter_contract" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "hybrid_router", "priority": "P0", "license_boundary": "external_service_or_clean_room_only", "adjudicator_use": "oracle_only", "gap_notes": "Local Lahiri path is usable, but broad ayanamsa parity and public comparison artifacts remain incomplete.", "route_notes": "Prefer local ayanamsa controls for production and use VedAstro only as parity/oracle evidence." }, { "vedastro_capability": "Prashna / Horary", "category": "horary", "local_status": "covered", "local_assets": [ "prashna.py", "kp_system.py", "upagraha_gulika_maandi", "sphuta_trisphuta_family" ], "can_call_vedastro": true, "recommended_path": "local_native", "fastest_path_lane": "local_native_preferred", "priority": "P0", "license_boundary": "local_native_or_clean_room", "adjudicator_use": "secondary", "gap_notes": "Horary modules exist but are not yet a first-class question adjudicator route.", "route_notes": "No need to outsource core horary math while local modules already exist." }, { "vedastro_capability": "Jaimini / Chara Dasha", "category": "jaimini", "local_status": "covered", "local_assets": [ "jaimini.py", "AK", "DK", "UL", "Chara Dasha", "Jaimini marriage bridge v1" ], "can_call_vedastro": true, "recommended_path": "local_native", "fastest_path_lane": "local_native_preferred", "priority": "P0", "license_boundary": "local_native_mit_attribution_for_reused_parts", "adjudicator_use": "secondary", "gap_notes": "Core Jaimini exists; mission/career/marriage quality adjudicator folding is not yet exhaustive.", "route_notes": "Keep Jaimini native; external engines help only as spot-check evidence." }, { "vedastro_capability": "Report Rendering", "category": "presentation", "local_status": "partial", "local_assets": [ "report_artifact API", "report_builder.py", "chart_renderer.py", "jyotish-app export" ], "can_call_vedastro": false, "recommended_path": "new_local_impl", "fastest_path_lane": "local_native_preferred", "priority": "P0", "license_boundary": "local_native", "adjudicator_use": "not_used", "gap_notes": "HTML/PDF artifact path exists; polished SVG/PDF chart rendering and cloud-scale report production are not finished.", "route_notes": "Rendering is a local product concern, not a VedAstro dependency." }, { "vedastro_capability": "Synastry / Ashtakoot", "category": "relationship_matching", "local_status": "covered", "local_assets": [ "synastry.py", "ashtakoot.py", "36-point Ashtakoot", "16-factor compatibility" ], "can_call_vedastro": true, "recommended_path": "local_native", "fastest_path_lane": "local_native_preferred", "priority": "P0", "license_boundary": "local_native_mit_attribution_for_reused_parts", "adjudicator_use": "secondary", "gap_notes": "Matching modules exist and API-backed; relationship adjudicator still needs a formal bridge.", "route_notes": "Local matching is already stronger than a thin external call unless you need an oracle comparison." }, { "vedastro_capability": "MCP / API Surface", "category": "service_surface", "local_status": "partial", "local_assets": [ "mcp_server.py", "jyotish_api_server.py", "strict workflows", "vedastro_service_adapter.py", "vedastro_official_mcp_bridge.py" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "official_mcp", "priority": "P0", "license_boundary": "external_service_or_local_native", "adjudicator_use": "primary", "gap_notes": "Local API/MCP surfaces exist and the official public MCP bridge is live; REST adapter official endpoint smoke still depends on configured endpoint-backed execution.", "route_notes": "If official MCP is available, that is the fastest direct agent path; otherwise fall back to local REST adapter." }, { "vedastro_capability": "Ashtakavarga", "category": "strength", "local_status": "partial", "local_assets": [ "ashtakavarga", "ashtakavarga_pav", "ashtakavarga_sodhita", "finance_ashtakavarga_bridge" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "official_python_bridge", "priority": "P0", "license_boundary": "local_native_or_external_oracle", "adjudicator_use": "secondary", "gap_notes": "SAV/BAV is in production; PAV/Sodhita/Kakshya bridges need continued regression before being dominant labels.", "route_notes": "Use the Python bridge for broad calculator access while local strict workflows stay authoritative." }, { "vedastro_capability": "Shadbala", "category": "strength", "local_status": "partial", "local_assets": [ "shadbala", "shadbala_advanced", "shadbala_component_cap", "oracle_shadbala_queue" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "official_python_bridge", "priority": "P0", "license_boundary": "local_native_or_external_oracle", "adjudicator_use": "secondary", "gap_notes": "Local component-aware cap exists; absolute external oracle closure is still incomplete.", "route_notes": "Broad strength calculators are easiest through the Python bridge, then folded back as oracle evidence." }, { "vedastro_capability": "EventsAtRange / Life Event Graph", "category": "timing_range_scan", "local_status": "partial", "local_assets": [ "transit_trigger", "dasha", "narayana_dasha", "vedastro_service_adapter.range_scan" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "rest_adapter", "priority": "P0", "license_boundary": "external_service_or_clean_room_only", "adjudicator_use": "oracle_only", "gap_notes": "Local timing modules exist, but a high-frequency day/hour event graph is not yet a local productized radar.", "route_notes": "Use official REST adapter first for range scans; keep local adjudicator as the reasoning layer." }, { "vedastro_capability": "D1-D60 Divisional Charts", "category": "varga", "local_status": "covered", "local_assets": [ "varga", "varga_full", "shodasavarga", "divisional_charts_extended" ], "can_call_vedastro": true, "recommended_path": "local_native", "fastest_path_lane": "local_native_preferred", "priority": "P0", "license_boundary": "local_native_or_clean_room", "adjudicator_use": "primary", "gap_notes": "Local varga coverage is strong; keep VedAstro/PyJHora as benchmark evidence rather than replacing local math.", "route_notes": "Do not pay external-call cost here; local engine is already the primary route." }, { "vedastro_capability": "Birth Time ML / Rectification Assistant", "category": "birth_time_rectification", "local_status": "partial", "local_assets": [ "birth_time_rectifier.py", "rectification_gate", "jyotish-app rectification" ], "can_call_vedastro": true, "recommended_path": "hybrid_local_plus_vedastro", "fastest_path_lane": "rest_adapter", "priority": "P1", "license_boundary": "external_service_or_local_native", "adjudicator_use": "secondary", "gap_notes": "Local rectification exists; ML parity with VedAstro-style service behavior is not established.", "route_notes": "Use VedAstro externally only as supporting evidence; local rectification gate stays in control." }, { "vedastro_capability": "Numerology / Non-Jyotish Tools", "category": "adjacent_tools", "local_status": "missing", "local_assets": [], "can_call_vedastro": true, "recommended_path": "external_evidence_only", "fastest_path_lane": "external_evidence_only", "priority": "P2", "license_boundary": "external_service_only", "adjudicator_use": "not_used", "gap_notes": "Adjacent product feature; not required for Jyotish adjudicator depth.", "route_notes": "Do not implement locally unless it becomes product-critical." } ] }