sync: add pyjhora boundary matrix
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
"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": 180,
|
||||
"blocked_or_partial_count": 77,
|
||||
"packet_count": 181,
|
||||
"blocked_or_partial_count": 165,
|
||||
"human_review_required_count": 4
|
||||
},
|
||||
"packets": [
|
||||
@@ -1449,6 +1449,14 @@
|
||||
"claim_status": "reuse_plan_only",
|
||||
"consumer_policy": "no_truth_upgrade_without_numeric_or_human_labels",
|
||||
"claim_boundary": "Open-source and local fragments can reduce implementation/replay effort, but cannot replace missing terms, expected numeric values, raw/hash capture, or independent human labels."
|
||||
},
|
||||
{
|
||||
"packet_id": "pyjhora_traditional_branch_oracle_boundary_2026_07_23",
|
||||
"path": "references/oracle/pyjhora_traditional_branch_oracle_boundary_2026_07_23.json",
|
||||
"domain": "tajika_kp_advanced_av_boundary",
|
||||
"claim_status": "observation_boundary_matrix",
|
||||
"consumer_policy": "sync_matrix_only_do_not_vendor_agpl_implementation",
|
||||
"claim_boundary": "Tajika, KP exact cusp and advanced AV fields are mapped for local calculation, PyJHora observation, jyotishganit/VedicAstro reference, public worked-example status and commercial output allowance; no PyJHora implementation is synced."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -0,0 +1,112 @@
|
||||
{
|
||||
"scope": "pyjhora_traditional_branch_oracle_boundary",
|
||||
"created_at": "2026-07-23",
|
||||
"claim_status": "observation_boundary_matrix",
|
||||
"consumer_policy": "sync_matrix_only_do_not_vendor_agpl_implementation",
|
||||
"license_boundary": "PyJHora/JHora traditional branch is AGPL/reference observation only; commercial repo may sync raw/hash/boundary matrices, not implementation.",
|
||||
"truth_matrix_allowed": false,
|
||||
"production_tuning_allowed": false,
|
||||
"matrices": {
|
||||
"tajika": [
|
||||
{
|
||||
"field": "varsha_pravesha_datetime",
|
||||
"local_repo_can_calculate": true,
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": false,
|
||||
"public_worked_example_status": "partial_source_candidates_only",
|
||||
"commercial_output_allowed": "boundary_only"
|
||||
},
|
||||
{
|
||||
"field": "muntha",
|
||||
"local_repo_can_calculate": true,
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": false,
|
||||
"public_worked_example_status": "not_closed",
|
||||
"commercial_output_allowed": "allowed_with_variant_boundary"
|
||||
},
|
||||
{
|
||||
"field": "saham_day_night_formulas",
|
||||
"local_repo_can_calculate": true,
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": false,
|
||||
"public_worked_example_status": "formula_reference_not_numeric_oracle",
|
||||
"commercial_output_allowed": "allowed_as_reference_not_verdict"
|
||||
},
|
||||
{
|
||||
"field": "tajika_yogas",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": false,
|
||||
"public_worked_example_status": "blocked_named_yoga_examples_missing",
|
||||
"commercial_output_allowed": "blocked_as_final_prediction"
|
||||
}
|
||||
],
|
||||
"kp_exact_cusp": [
|
||||
{
|
||||
"field": "12_house_cusp_longitudes",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": "unknown_or_partial",
|
||||
"jyotishganit_or_vedicastro_can_reference": "VedicAstro_reference_candidate",
|
||||
"public_worked_example_status": "candidate_ezine159_not_full_truth",
|
||||
"commercial_output_allowed": "boundary_only"
|
||||
},
|
||||
{
|
||||
"field": "star_lord_sub_lord",
|
||||
"local_repo_can_calculate": true,
|
||||
"pyjhora_can_observe": "unknown_or_partial",
|
||||
"jyotishganit_or_vedicastro_can_reference": "VedicAstro_csv_reference",
|
||||
"public_worked_example_status": "partial_fixture_reference",
|
||||
"commercial_output_allowed": "allowed_with_reference_boundary"
|
||||
},
|
||||
{
|
||||
"field": "significator_workflow",
|
||||
"local_repo_can_calculate": "workflow_gate_only",
|
||||
"pyjhora_can_observe": "not_primary",
|
||||
"jyotishganit_or_vedicastro_can_reference": "public_workflow_reference_only",
|
||||
"public_worked_example_status": "no_complete_event_outcome_oracle",
|
||||
"commercial_output_allowed": "explain_method_not_claim_event_truth"
|
||||
}
|
||||
],
|
||||
"advanced_ashtakavarga": [
|
||||
{
|
||||
"field": "bav_sav_totals",
|
||||
"local_repo_can_calculate": true,
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": "jyotishganit_candidate",
|
||||
"public_worked_example_status": "component_variants_not_fully_arbitrated",
|
||||
"commercial_output_allowed": "allowed_with_component_boundary"
|
||||
},
|
||||
{
|
||||
"field": "prastara_av",
|
||||
"local_repo_can_calculate": "partial_or_registry",
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "not_closed",
|
||||
"commercial_output_allowed": "reference_only"
|
||||
},
|
||||
{
|
||||
"field": "trikona_ekadhipatya_shodhana",
|
||||
"local_repo_can_calculate": "partial_or_registry",
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "formula_variant_gap",
|
||||
"commercial_output_allowed": "boundary_only"
|
||||
},
|
||||
{
|
||||
"field": "transit_kakshya_av_application",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": true,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "real_case_holdout_missing",
|
||||
"commercial_output_allowed": "blocked_as_precise_timing_truth"
|
||||
}
|
||||
]
|
||||
},
|
||||
"summary": {
|
||||
"domain_count": 3,
|
||||
"field_count": 11,
|
||||
"commercial_final_truth_allowed_count": 0,
|
||||
"commercial_blocked_or_boundary_count": 11
|
||||
},
|
||||
"boundary": "Use PyJHora as a traditional-technique radar and black-box observation source for Tajika, KP and advanced AV. Do not promote observed agreement to final truth without public worked examples, raw/hash replay and license-safe adapters."
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build a field-level boundary matrix for PyJHora traditional-branch reuse."""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
OUT = ROOT / "references/oracle/pyjhora_traditional_branch_oracle_boundary_2026_07_23.json"
|
||||
|
||||
MATRICES: dict[str, list[dict[str, Any]]] = {
|
||||
"tajika": [
|
||||
{
|
||||
"field": "varsha_pravesha_datetime",
|
||||
"local_repo_can_calculate": True,
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": False,
|
||||
"public_worked_example_status": "partial_source_candidates_only",
|
||||
"commercial_output_allowed": "boundary_only",
|
||||
},
|
||||
{
|
||||
"field": "muntha",
|
||||
"local_repo_can_calculate": True,
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": False,
|
||||
"public_worked_example_status": "not_closed",
|
||||
"commercial_output_allowed": "allowed_with_variant_boundary",
|
||||
},
|
||||
{
|
||||
"field": "saham_day_night_formulas",
|
||||
"local_repo_can_calculate": True,
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": False,
|
||||
"public_worked_example_status": "formula_reference_not_numeric_oracle",
|
||||
"commercial_output_allowed": "allowed_as_reference_not_verdict",
|
||||
},
|
||||
{
|
||||
"field": "tajika_yogas",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": False,
|
||||
"public_worked_example_status": "blocked_named_yoga_examples_missing",
|
||||
"commercial_output_allowed": "blocked_as_final_prediction",
|
||||
},
|
||||
],
|
||||
"kp_exact_cusp": [
|
||||
{
|
||||
"field": "12_house_cusp_longitudes",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": "unknown_or_partial",
|
||||
"jyotishganit_or_vedicastro_can_reference": "VedicAstro_reference_candidate",
|
||||
"public_worked_example_status": "candidate_ezine159_not_full_truth",
|
||||
"commercial_output_allowed": "boundary_only",
|
||||
},
|
||||
{
|
||||
"field": "star_lord_sub_lord",
|
||||
"local_repo_can_calculate": True,
|
||||
"pyjhora_can_observe": "unknown_or_partial",
|
||||
"jyotishganit_or_vedicastro_can_reference": "VedicAstro_csv_reference",
|
||||
"public_worked_example_status": "partial_fixture_reference",
|
||||
"commercial_output_allowed": "allowed_with_reference_boundary",
|
||||
},
|
||||
{
|
||||
"field": "significator_workflow",
|
||||
"local_repo_can_calculate": "workflow_gate_only",
|
||||
"pyjhora_can_observe": "not_primary",
|
||||
"jyotishganit_or_vedicastro_can_reference": "public_workflow_reference_only",
|
||||
"public_worked_example_status": "no_complete_event_outcome_oracle",
|
||||
"commercial_output_allowed": "explain_method_not_claim_event_truth",
|
||||
},
|
||||
],
|
||||
"advanced_ashtakavarga": [
|
||||
{
|
||||
"field": "bav_sav_totals",
|
||||
"local_repo_can_calculate": True,
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": "jyotishganit_candidate",
|
||||
"public_worked_example_status": "component_variants_not_fully_arbitrated",
|
||||
"commercial_output_allowed": "allowed_with_component_boundary",
|
||||
},
|
||||
{
|
||||
"field": "prastara_av",
|
||||
"local_repo_can_calculate": "partial_or_registry",
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "not_closed",
|
||||
"commercial_output_allowed": "reference_only",
|
||||
},
|
||||
{
|
||||
"field": "trikona_ekadhipatya_shodhana",
|
||||
"local_repo_can_calculate": "partial_or_registry",
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "formula_variant_gap",
|
||||
"commercial_output_allowed": "boundary_only",
|
||||
},
|
||||
{
|
||||
"field": "transit_kakshya_av_application",
|
||||
"local_repo_can_calculate": "partial",
|
||||
"pyjhora_can_observe": True,
|
||||
"jyotishganit_or_vedicastro_can_reference": "not_closed",
|
||||
"public_worked_example_status": "real_case_holdout_missing",
|
||||
"commercial_output_allowed": "blocked_as_precise_timing_truth",
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
def build() -> dict[str, Any]:
|
||||
rows = [row for matrix in MATRICES.values() for row in matrix]
|
||||
return {
|
||||
"scope": "pyjhora_traditional_branch_oracle_boundary",
|
||||
"created_at": "2026-07-23",
|
||||
"claim_status": "observation_boundary_matrix",
|
||||
"consumer_policy": "sync_matrix_only_do_not_vendor_agpl_implementation",
|
||||
"license_boundary": "PyJHora/JHora traditional branch is AGPL/reference observation only; commercial repo may sync raw/hash/boundary matrices, not implementation.",
|
||||
"truth_matrix_allowed": False,
|
||||
"production_tuning_allowed": False,
|
||||
"matrices": MATRICES,
|
||||
"summary": {
|
||||
"domain_count": len(MATRICES),
|
||||
"field_count": len(rows),
|
||||
"commercial_final_truth_allowed_count": 0,
|
||||
"commercial_blocked_or_boundary_count": len(rows),
|
||||
},
|
||||
"boundary": "Use PyJHora as a traditional-technique radar and black-box observation source for Tajika, KP and advanced AV. Do not promote observed agreement to final truth without public worked examples, raw/hash replay and license-safe adapters.",
|
||||
}
|
||||
|
||||
|
||||
def main() -> int:
|
||||
data = build()
|
||||
OUT.write_text(json.dumps(data, ensure_ascii=False, indent=2) + "\n", encoding="utf-8")
|
||||
print(json.dumps(data, ensure_ascii=False, indent=2))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
@@ -0,0 +1,38 @@
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
PACKET = ROOT / "references/oracle/pyjhora_traditional_branch_oracle_boundary_2026_07_23.json"
|
||||
|
||||
|
||||
def test_pyjhora_traditional_boundary_is_matrix_only_not_runtime_copy() -> None:
|
||||
data = json.loads(
|
||||
subprocess.check_output(
|
||||
["python3", "scripts/pyjhora_traditional_branch_oracle_boundary.py"],
|
||||
cwd=ROOT,
|
||||
text=True,
|
||||
)
|
||||
)
|
||||
assert data["claim_status"] == "observation_boundary_matrix"
|
||||
assert data["consumer_policy"] == "sync_matrix_only_do_not_vendor_agpl_implementation"
|
||||
assert data["truth_matrix_allowed"] is False
|
||||
assert data["production_tuning_allowed"] is False
|
||||
assert data["summary"]["commercial_final_truth_allowed_count"] == 0
|
||||
|
||||
|
||||
def test_pyjhora_traditional_boundary_covers_tajika_kp_and_advanced_av_fields() -> None:
|
||||
data = json.loads(PACKET.read_text(encoding="utf-8"))
|
||||
assert set(data["matrices"]) == {"tajika", "kp_exact_cusp", "advanced_ashtakavarga"}
|
||||
for rows in data["matrices"].values():
|
||||
for row in rows:
|
||||
assert {
|
||||
"field",
|
||||
"local_repo_can_calculate",
|
||||
"pyjhora_can_observe",
|
||||
"jyotishganit_or_vedicastro_can_reference",
|
||||
"public_worked_example_status",
|
||||
"commercial_output_allowed",
|
||||
} <= set(row)
|
||||
assert data["matrices"]["kp_exact_cusp"][0]["commercial_output_allowed"] == "boundary_only"
|
||||
assert data["matrices"]["advanced_ashtakavarga"][-1]["commercial_output_allowed"] == "blocked_as_precise_timing_truth"
|
||||
Reference in New Issue
Block a user