docs: sync vedicastro node blocker evidence

This commit is contained in:
732642856
2026-07-19 20:53:44 +08:00
parent eefec455ed
commit 8410421005
6 changed files with 259 additions and 1 deletions
@@ -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