docs: sync vedicastro node blocker evidence
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
{
|
||||
"scope": "d10_rahu_ketu_node_mode_attribution",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "attributed_to_node_longitude_boundary",
|
||||
"claim_status": "partial",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"source_comparison": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json",
|
||||
"resolved_schema_issue": {
|
||||
"issue": "D4 local key alias",
|
||||
"local_aliases": ["D4_Chaturthamsa", "D4_Turyamsa"],
|
||||
"effect": "D4 mismatches dropped after alias normalization; no formula rewrite was made."
|
||||
},
|
||||
"formula_observation": {
|
||||
"local_d10_formula": "Odd sign: sign + part; even sign: sign + 8 + part, 3° per part.",
|
||||
"jyotishganit_d10_formula": "Odd sign: sign + part; even sign: sign + 8 + part, 3° per part.",
|
||||
"formula_delta_status": "same_observed_formula_shape"
|
||||
},
|
||||
"raw_node_boundary": {
|
||||
"local": {
|
||||
"node_mode": "mean",
|
||||
"Rahu": {
|
||||
"d1_sign": "Sagittarius",
|
||||
"degree_in_sign": 9.274293923324649,
|
||||
"d10_part_index_zero_based": 3,
|
||||
"d10_sign": "Pisces"
|
||||
},
|
||||
"Ketu": {
|
||||
"d1_sign": "Gemini",
|
||||
"degree_in_sign": 9.274293923324649,
|
||||
"d10_part_index_zero_based": 3,
|
||||
"d10_sign": "Virgo"
|
||||
}
|
||||
},
|
||||
"jyotishganit": {
|
||||
"node_mode": "unspecified_in_probe",
|
||||
"Rahu": {
|
||||
"d1_sign": "Sagittarius",
|
||||
"degree_in_sign": 8.653881856647075,
|
||||
"d10_part_index_zero_based": 2,
|
||||
"d10_sign": "Aquarius"
|
||||
},
|
||||
"Ketu": {
|
||||
"d1_sign": "Gemini",
|
||||
"degree_in_sign": 8.653881856647104,
|
||||
"d10_part_index_zero_based": 2,
|
||||
"d10_sign": "Leo"
|
||||
}
|
||||
},
|
||||
"boundary_degrees": [0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30],
|
||||
"delta_explanation": "Both nodes sit near the 9° D10 boundary. A ~0.62° D1 longitude delta changes part index 2→3, producing the one-sign D10 mismatch."
|
||||
},
|
||||
"remaining_rows": [
|
||||
{
|
||||
"section": "D10",
|
||||
"body": "Rahu",
|
||||
"probable_reason": "node_longitude_boundary_crossing",
|
||||
"next_evidence_needed": ["node longitude raw", "mean_vs_true_node setting", "D10 shadow-planet varga formula", "jyotishganit source line attribution"]
|
||||
},
|
||||
{
|
||||
"section": "D10",
|
||||
"body": "Ketu",
|
||||
"probable_reason": "node_longitude_boundary_crossing",
|
||||
"next_evidence_needed": ["node longitude raw", "mean_vs_true_node setting", "D10 shadow-planet varga formula", "jyotishganit source line attribution"]
|
||||
}
|
||||
],
|
||||
"boundary": "Do not tune Rahu/Ketu D10 to either engine until node longitude source, ayanamsa, and mean/true node settings are explicitly pinned."
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
"production_tuning_allowed": false,
|
||||
"boundary": "Index of current governance packets only. Raw oracle artifacts remain in references/oracle/artifacts and are not all duplicated here.",
|
||||
"summary": {
|
||||
"packet_count": 46,
|
||||
"packet_count": 50,
|
||||
"blocked_or_partial_count": 40,
|
||||
"human_review_required_count": 1
|
||||
},
|
||||
@@ -377,6 +377,38 @@
|
||||
"claim_status": "source_intake_only",
|
||||
"consumer_policy": "pin_hash_license_gate_before_runtime_use",
|
||||
"claim_boundary": "Open-source Jyotish projects may provide source candidates, probes, raw artifacts, and worked-example leads; they are not final truth until license, commit/hash, input contract, and field-level oracle gates close."
|
||||
},
|
||||
{
|
||||
"packet_id": "d10_rahu_ketu_node_mode_attribution",
|
||||
"path": "references/oracle/d10_rahu_ketu_node_mode_attribution_2026_07_19.json",
|
||||
"domain": "varga_node_mode",
|
||||
"claim_status": "partial",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "D10 Rahu/Ketu mismatch is attributed to node longitude and boundary crossing; do not tune formulas or assert engine truth until node mode/settings are pinned."
|
||||
},
|
||||
{
|
||||
"packet_id": "public_worked_example_candidate_numeric_audit",
|
||||
"path": "references/oracle/public_worked_example_candidate_numeric_audit_2026_07_19.json",
|
||||
"domain": "worked_example_collection",
|
||||
"claim_status": "open_queue",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Candidate public pages are triaged only; no row is oracle-ready until exact input, settings, expected numeric values, raw/hash and replay are archived."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_flatlib_sidereal_install_probe",
|
||||
"path": "references/oracle/vedicastro_flatlib_sidereal_install_probe_2026_07_19.json",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "blocked",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "VedicAstro KP runtime probe is blocked by reproducible sidereal flatlib dependency; source/API surface evidence remains observation-only."
|
||||
},
|
||||
{
|
||||
"packet_id": "vedicastro_kp_api_probe_flatlib_polars_tmp",
|
||||
"path": "references/oracle/vedicastro_kp_api_probe_flatlib_polars_tmp_2026_07_19.json",
|
||||
"domain": "kp_precision_timing_dependency",
|
||||
"claim_status": "observation_only",
|
||||
"consumer_policy": "research_to_commercial_contract_only",
|
||||
"claim_boundary": "Temporary flatlib/polars VedicAstro KP probe captures dependency/import state only; no runtime truth upgrade."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"scope": "public_worked_example_candidate_numeric_audit",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "candidate_audit_complete_no_oracle_ready_rows",
|
||||
"claim_status": "open_queue",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"boundary": "Candidate URLs are triaged for numeric-field potential only. No row is oracle_ready until exact input, settings, expected values, capture date, raw text/hash, and replay comparison are archived.",
|
||||
"candidates": [
|
||||
{
|
||||
"topic": "KP cusp star/sub/sub-sub",
|
||||
"url": "https://www.astrosage.com/kp/cuspal-sub-lord.asp",
|
||||
"candidate_type": "tool_or_reference_page",
|
||||
"numeric_packet_status": "candidate_tool_not_replayable_yet",
|
||||
"missing_for_oracle": ["fixed public input case", "raw output hash", "cusp longitude", "star_lord", "sub_lord", "sub_sub_lord", "method settings"]
|
||||
},
|
||||
{
|
||||
"topic": "KP sub-lord table",
|
||||
"url": "https://www.aryabhatt.com/astrology/krishnamurti-paddhati/kp-sub-lords-table",
|
||||
"candidate_type": "reference_table_candidate",
|
||||
"numeric_packet_status": "table_hash_candidate_pending_capture",
|
||||
"missing_for_oracle": ["captured table raw", "table hash", "license/copyright boundary", "worked example link"]
|
||||
},
|
||||
{
|
||||
"topic": "Tarabala/Chandrabala",
|
||||
"url": "https://www.mypanchang.com/tarabalam.php",
|
||||
"candidate_type": "worked_example_candidate",
|
||||
"numeric_packet_status": "worked_example_candidate_pending_raw_capture",
|
||||
"missing_for_oracle": ["stable date/location/person input", "captured raw hash", "rule weights", "expected factor table"]
|
||||
},
|
||||
{
|
||||
"topic": "Rahu Kalam",
|
||||
"url": "https://www.drikpanchang.com/muhurat/rahu-kalam.html",
|
||||
"candidate_type": "calculation_reference_candidate",
|
||||
"numeric_packet_status": "calculation_reference_pending_fixture",
|
||||
"missing_for_oracle": ["date/location fixture", "sunrise/sunset source", "expected interval", "raw capture hash"]
|
||||
},
|
||||
{
|
||||
"topic": "Shadbala Virupa",
|
||||
"url": "https://www.astrojyoti.com/shadbala.htm",
|
||||
"candidate_type": "formula_reference_candidate",
|
||||
"numeric_packet_status": "formula_reference_only",
|
||||
"missing_for_oracle": ["complete birth input", "per-component Virupa expected values", "formula variant", "raw capture hash"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"scope": "vedicastro_flatlib_sidereal_install_probe",
|
||||
"created_at": "2026-07-19",
|
||||
"status": "blocked_timeout",
|
||||
"claim_status": "blocked",
|
||||
"production_tuning_allowed": false,
|
||||
"truth_matrix_allowed": false,
|
||||
"temporary_target": "/tmp/vedicastro_sidereal_flatlib_probe",
|
||||
"attempted_package": "git+https://github.com/flatangle/flatlib.git@sidereal",
|
||||
"observed_blocker": "pip install exceeded 120s command budget",
|
||||
"previous_pypi_flatlib_blocker": "PyPI flatlib 0.2.3 has no flatlib.const AY_* attributes required by local VedicAstro source.",
|
||||
"next_action": "Pin a prebuilt sidereal-compatible flatlib wheel or cache the Git checkout before runtime API proof.",
|
||||
"boundary": "VedicAstro KP source/API surface remains pinned, but runtime readiness is blocked until sidereal flatlib dependency is reproducible."
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"api_surface": {
|
||||
"class": "VedicHoroscopeData",
|
||||
"fields": [
|
||||
"Nakshatra",
|
||||
"NakshatraLord",
|
||||
"SubLord",
|
||||
"SubSubLord",
|
||||
"house_sub_lord",
|
||||
"house_ss_lord"
|
||||
],
|
||||
"methods": [
|
||||
"get_rl_nl_sl_data",
|
||||
"get_planets_data_from_chart",
|
||||
"get_houses_data_from_chart",
|
||||
"generate_chart"
|
||||
]
|
||||
},
|
||||
"boundary": "Source/API surface hash only unless runtime dependencies and public numeric KP worked examples are both available.",
|
||||
"claim_status": "observation_only",
|
||||
"created_at": "2026-07-19",
|
||||
"production_tuning_allowed": false,
|
||||
"runtime_probe": {
|
||||
"attempted": true,
|
||||
"error": "module 'flatlib.const' has no attribute 'AY_LAHIRI'",
|
||||
"error_type": "AttributeError",
|
||||
"import_status": "blocked"
|
||||
},
|
||||
"scope": "vedicastro_kp_api_probe",
|
||||
"source_path": "references/open_source_sources/VedicAstro/vedicastro/VedicAstro.py",
|
||||
"source_sha256": "1469c89a28dd4de6e576c2c4bd907902ee45d8a261b22836ea45503af369fa1d",
|
||||
"status": "blocked_runtime_import",
|
||||
"truth_matrix_allowed": false,
|
||||
"dependency_probe": {
|
||||
"temporary_path": "/tmp/vedicastro_flatlib_probe",
|
||||
"installed_for_probe": [
|
||||
"flatlib",
|
||||
"pyswisseph",
|
||||
"polars"
|
||||
],
|
||||
"project_runtime_dependency_allowed": false,
|
||||
"dependency_boundary": "Import progressed past polars; current blocker is flatlib.const AY_* attribute mismatch, likely package-version/API incompatibility."
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
|
||||
|
||||
|
||||
def test_d10_node_attribution_keeps_rahu_ketu_partial():
|
||||
data = json.loads((ROOT / "references/oracle/d10_rahu_ketu_node_mode_attribution_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["claim_status"] == "partial"
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
assert {row["body"] for row in data["remaining_rows"]} == {"Rahu", "Ketu"}
|
||||
assert data["status"] == "attributed_to_node_longitude_boundary"
|
||||
assert data["formula_observation"]["formula_delta_status"] == "same_observed_formula_shape"
|
||||
assert data["raw_node_boundary"]["local"]["Rahu"]["d10_part_index_zero_based"] == 3
|
||||
assert data["raw_node_boundary"]["jyotishganit"]["Rahu"]["d10_part_index_zero_based"] == 2
|
||||
assert all(row["probable_reason"] == "node_longitude_boundary_crossing" for row in data["remaining_rows"])
|
||||
|
||||
|
||||
def test_vedicastro_flatlib_polars_probe_records_next_dependency_blocker():
|
||||
data = json.loads((ROOT / "references/oracle/vedicastro_kp_api_probe_flatlib_polars_tmp_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["claim_status"] == "observation_only"
|
||||
assert data["dependency_probe"]["project_runtime_dependency_allowed"] is False
|
||||
assert "flatlib.const" in data["runtime_probe"]["error"]
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
|
||||
|
||||
def test_vedicastro_sidereal_flatlib_install_probe_records_timeout_blocker():
|
||||
data = json.loads((ROOT / "references/oracle/vedicastro_flatlib_sidereal_install_probe_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["claim_status"] == "blocked"
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert "sidereal" in data["attempted_package"]
|
||||
assert data["status"] == "blocked_timeout"
|
||||
|
||||
|
||||
def test_public_worked_example_numeric_audit_has_no_oracle_ready_rows():
|
||||
data = json.loads((ROOT / "references/oracle/public_worked_example_candidate_numeric_audit_2026_07_19.json").read_text(encoding="utf-8"))
|
||||
assert data["claim_status"] == "open_queue"
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert all(row["numeric_packet_status"] != "oracle_ready" for row in data["candidates"])
|
||||
assert {row["topic"] for row in data["candidates"]} >= {"KP cusp star/sub/sub-sub", "Tarabala/Chandrabala", "Shadbala Virupa"}
|
||||
|
||||
|
||||
def test_evidence_index_registers_current_blocker_artifacts():
|
||||
index = json.loads(INDEX.read_text(encoding="utf-8"))
|
||||
packets = {row["packet_id"]: row for row in index["packets"]}
|
||||
for packet_id in [
|
||||
"d10_rahu_ketu_node_mode_attribution",
|
||||
"vedicastro_kp_api_probe_flatlib_polars_tmp",
|
||||
"public_worked_example_candidate_numeric_audit",
|
||||
]:
|
||||
assert packet_id in packets
|
||||
Reference in New Issue
Block a user