sync: import prashna sphuta validation packets

This commit is contained in:
732642856
2026-07-20 18:40:02 +08:00
parent d757602e7c
commit c7b09fd1a9
35 changed files with 2332 additions and 503 deletions
+16
View File
@@ -8,6 +8,7 @@ from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
HASH_SCRIPT = ROOT / "scripts/kp_external_table_hash_manifest.py"
HASH_ARTIFACT = ROOT / "references/oracle/kp_external_table_hash_manifest_2026_07_20.json"
QUEUE = ROOT / "references/oracle/kp_cusp_worked_example_oracle_queue_2026_07_19.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
@@ -49,4 +50,19 @@ def test_kp_hash_and_oracle_queue_are_indexed() -> None:
data = json.loads(INDEX.read_text(encoding="utf-8"))
packets = {packet["packet_id"]: packet for packet in data["packets"]}
assert packets["kp_external_table_hash_manifest"]["path"] == "scripts/kp_external_table_hash_manifest.py"
assert packets["kp_external_table_hash_manifest_2026_07_20"]["path"] == "references/oracle/kp_external_table_hash_manifest_2026_07_20.json"
assert packets["kp_cusp_worked_example_oracle_queue"]["claim_status"] == "blocked"
def test_kp_external_table_hash_artifact_records_current_fixture_blocker() -> None:
data = json.loads(HASH_ARTIFACT.read_text(encoding="utf-8"))
assert data["scope"] == "kp_external_table_hash_manifest"
assert data["table_id"] == "VedicAstro_KP_SL_Divisions"
assert data["status"] in {"fixed_hash", "fixture_missing"}
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
if data["status"] == "fixture_missing":
assert data["claim_status"] == "blocked_fixture_missing"
assert data["next_action"] == "pin legal source table file or keep KP exact cusp oracle blocked"
else:
assert len(data["sha256"]) == 64
@@ -0,0 +1,42 @@
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
MATRIX = ROOT / "references/oracle/oss_worked_example_source_matrix_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_oss_worked_example_source_matrix_tracks_reusable_sources_and_boundaries():
data = json.loads(MATRIX.read_text(encoding="utf-8"))
assert data["scope"] == "oss_worked_example_source_matrix"
assert data["claim_status"] == "source_intake_only"
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
rows = {row["source_id"]: row for row in data["sources"]}
for source_id in [
"pyjhora_pvr_tests",
"jyotishganit_github",
"vedicastro_kp_runtime",
"fusionstrings_panchangam",
"bidyashish_panchang",
"kp_sub_lord_boundary_tables",
]:
assert source_id in rows
assert rows[source_id]["license_status"]
assert rows[source_id]["case_usefulness"]
assert rows[source_id]["promotion_boundary"]
assert rows["pyjhora_pvr_tests"]["reuse_policy"] == "black_box_observation_only"
assert rows["vedicastro_kp_runtime"]["candidate_domains"] == ["kp_precision_timing"]
assert rows["fusionstrings_panchangam"]["license_status"] == "permissive_candidate_verify_repo_license"
assert rows["kp_sub_lord_boundary_tables"]["numeric_packet_status"] == "candidate_requires_raw_capture_hash"
def test_oss_worked_example_source_matrix_is_indexed_without_truth_upgrade():
index = json.loads(INDEX.read_text(encoding="utf-8"))
packet = {
row["packet_id"]: row for row in index["packets"]
}["oss_worked_example_source_matrix_2026_07_20"]
assert packet["claim_status"] == "source_intake_only"
assert packet["consumer_policy"] == "research_observation_only"
@@ -0,0 +1,32 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_marga_excerpt_locator_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_marga_excerpt_locator_finds_keyword_windows_without_vendoring_text():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_marga_excerpt_locator.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_marga_excerpt_locator"
assert data["claim_status"] == "source_intake_only"
assert data["summary"]["located_window_count"] >= 1
assert data["summary"]["oracle_ready_count"] == 0
row = data["located_windows"][0]
assert row["window_hash"]
assert row["line_start"] > 0
assert row["line_end"] >= row["line_start"]
assert len(row["short_context"]) < 260
def test_prashna_marga_excerpt_locator_keeps_mismatch_queue_open():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["upgrade_status"] == "candidate_not_oracle"
assert "raw excerpt capture" in data["next_steps"][0]
assert "complete_prashna_input" in data["missing_for_oracle"]
def test_prashna_marga_excerpt_locator_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_marga_excerpt_locator_2026_07_20"]["claim_status"] == "source_intake_only"
@@ -0,0 +1,31 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_marga_raw_capture_packet_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_marga_raw_capture_packet_pins_internet_archive_files():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_marga_raw_capture_packet.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_marga_raw_capture_packet"
assert data["claim_status"] == "source_intake_only"
assert data["summary"]["ia_item_count"] >= 2
assert data["summary"]["oracle_ready_count"] == 0
ids = {row["identifier"] for row in data["internet_archive_items"]}
assert "PrasnaMargaBVR" in ids
bvr = next(row for row in data["internet_archive_items"] if row["identifier"] == "PrasnaMargaBVR")
assert any(file["format"] == "DjVuTXT" and file["sha1"] for file in bvr["files"])
def test_prashna_marga_raw_capture_packet_preserves_no_truth_upgrade_boundary():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert all(row["upgrade_status"] == "candidate_not_oracle" for row in data["internet_archive_items"])
assert "Trisphuta" in data["field_locator_terms"]
assert "raw excerpt capture" in data["next_steps"][0]
def test_prashna_marga_raw_capture_packet_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_marga_raw_capture_packet_2026_07_20"]["claim_status"] == "source_intake_only"
@@ -0,0 +1,32 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_closure_dashboard_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_closure_dashboard_summarizes_chain_and_blockers():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_closure_dashboard.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_closure_dashboard"
assert data["claim_status"] == "blocked_until_human_labels"
assert data["summary"]["packet_chain_count"] >= 9
assert data["summary"]["truth_upgrade_count"] == 0
assert data["summary"]["blocked_gate_count"] >= 2
gates = {gate["gate_id"]: gate for gate in data["gates"]}
assert gates["human_line_review"]["status"] == "blocked"
assert gates["complete_prashna_input"]["status"] == "blocked"
def test_prashna_sphuta_closure_dashboard_preserves_commercial_boundary():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["commercial_sync_status"] == "research_observation_only"
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
assert "do_not_use_for_deterministic_prashna_verdict" in data["forbidden_uses"]
def test_prashna_sphuta_closure_dashboard_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_closure_dashboard_2026_07_20"]["claim_status"] == "blocked_until_human_labels"
@@ -0,0 +1,33 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_line_review_queue_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_line_review_queue_creates_human_review_tasks():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_line_review_queue.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_line_review_queue"
assert data["claim_status"] == "open_queue"
assert data["summary"]["review_task_count"] >= 2
assert data["summary"]["truth_upgrade_count"] == 0
task = data["review_tasks"][0]
assert task["review_status"] == "needs_human_or_second_source_review"
assert "chatusphuta" in task["fields_to_check"]
assert task["window_hash"]
def test_prashna_sphuta_line_review_queue_has_explicit_acceptance_criteria():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
criteria = data["acceptance_criteria"]
assert "do_not_copy_long_text" in criteria
assert "record_line_coordinates" in criteria
assert "classify_formula_variant_or_transcription" in criteria
assert all(len(task["short_context"]) < 260 for task in data["review_tasks"])
def test_prashna_sphuta_line_review_queue_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_line_review_queue_2026_07_20"]["claim_status"] == "open_queue"
@@ -0,0 +1,30 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_oss_case_probe_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_oss_case_probe_runs_pyjhora_case_in_isolation():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_oss_case_probe.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_oss_case_probe"
assert data["claim_status"] == "tooling_observation_only"
assert data["license_boundary"] == "agpl_observation_only_do_not_vendor"
assert data["case"]["source"] == "jhora.tests.pvr_tests.sphuta_tests"
assert {r["field"] for r in data["rows"]} >= {"tri_sphuta", "chatur_sphuta", "pancha_sphuta"}
assert data["raw_hash"]
def test_prashna_sphuta_oss_case_probe_does_not_upgrade_oracle_truth():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["oracle_ready"] is False
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
assert all(row["status"] in {"observed", "runtime_error"} for row in data["rows"])
def test_prashna_sphuta_oss_case_probe_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_oss_case_probe_2026_07_20"]["claim_status"] == "tooling_observation_only"
@@ -0,0 +1,31 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_review_result_template_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_review_result_template_is_blank_and_schema_complete():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_review_result_template.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_review_result_template"
assert data["claim_status"] == "blocked_until_human_labels"
assert data["summary"]["template_count"] >= 2
assert data["summary"]["completed_review_count"] == 0
row = data["templates"][0]
assert row["review_result"] is None
assert row["allowed_results"] == ["formula_variant", "source_transcription", "naming_variant", "insufficient_evidence"]
assert "reviewer_id" in row["required_human_fields"]
def test_prashna_sphuta_review_result_template_has_no_truth_upgrade():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
assert data["upgrade_policy"] == "no_upgrade_until_completed_review_and_replay"
def test_prashna_sphuta_review_result_template_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_review_result_template_2026_07_20"]["claim_status"] == "blocked_until_human_labels"
@@ -0,0 +1,31 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_review_result_validation_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_review_result_validator_blocks_blank_templates():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_review_result_validator.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_review_result_validation"
assert data["claim_status"] == "blocked_until_human_labels"
assert data["summary"]["template_count"] >= 2
assert data["summary"]["valid_completed_review_count"] == 0
assert data["summary"]["replay_gate_ready_count"] == 0
row = data["validation_rows"][0]
assert row["validation_status"] == "blocked_missing_human_review"
assert "review_result" in row["missing_fields"]
def test_prashna_sphuta_review_result_validator_preserves_allowed_result_contract():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["allowed_results"] == ["formula_variant", "source_transcription", "naming_variant", "insufficient_evidence"]
assert data["replay_gate_policy"] == "requires_valid_completed_review_and_complete_prashna_input"
assert data["truth_matrix_allowed"] is False
def test_prashna_sphuta_review_result_validator_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_review_result_validation_2026_07_20"]["claim_status"] == "blocked_until_human_labels"
@@ -0,0 +1,31 @@
import json
import subprocess
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
ARTIFACT = ROOT / "references/oracle/prashna_sphuta_source_comparison_matrix_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_prashna_sphuta_source_comparison_matrix_classifies_each_field():
data = json.loads(subprocess.check_output(["python3", "scripts/prashna_sphuta_source_comparison_matrix.py", "--date", "2026-07-20"], cwd=ROOT, text=True))
assert data["scope"] == "prashna_sphuta_source_comparison_matrix"
assert data["claim_status"] == "open_queue"
fields = {row["field"]: row for row in data["field_rows"]}
assert fields["trisphuta"]["local_vs_vedastro_status"] == "match"
assert fields["chatusphuta"]["local_vs_vedastro_status"] == "mismatch"
assert fields["panchasphuta"]["local_vs_vedastro_status"] == "mismatch"
assert fields["gulika"]["local_vs_vedastro_status"] == "input_value_only"
assert data["summary"]["truth_upgrade_count"] == 0
def test_prashna_sphuta_source_comparison_matrix_links_ia_windows():
data = json.loads(ARTIFACT.read_text(encoding="utf-8"))
assert data["ia_excerpt_window_count"] >= 1
assert all(row["ia_excerpt_status"] in {"located_context", "not_field_specific"} for row in data["field_rows"])
assert data["next_evidence"] == ["line-level transcription review", "complete Prashna input", "legal external replay"]
def test_prashna_sphuta_source_comparison_matrix_is_indexed():
packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]}
assert packets["prashna_sphuta_source_comparison_matrix_2026_07_20"]["claim_status"] == "open_queue"
@@ -0,0 +1,36 @@
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
REGISTRY = ROOT / "references/oracle/research_web_skill_commercial_gap_registry_2026_07_20.json"
def test_research_web_skill_commercial_gap_registry_separates_research_and_commercial_runtime():
data = json.loads(REGISTRY.read_text(encoding="utf-8"))
assert data["scope"] == "research_web_skill_commercial_gap_registry"
assert data["claim_status"] == "open_queue"
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
commercial = data["current_state"]["commercial_repo_patterns_to_learn"]
assert commercial["source_status"] == "read_only_dirty_worktree_do_not_copy_directly"
blocked = set(commercial["must_not_import"])
assert "Supabase runtime" in blocked
assert "credits/payment/subscription logic" in blocked
assert "commercial user data" in blocked
def test_research_web_skill_gap_registry_orders_numeric_packets_before_ui_truth_upgrade():
data = json.loads(REGISTRY.read_text(encoding="utf-8"))
order = data["recommended_order"]
assert order[:3] == [
"worked_examples_to_numeric_packets",
"component_closure",
"claim_gate_upgrade",
]
tracks = {row["track"]: row for row in data["delivery_queue"]}
assert tracks["research_web_profile_flow"]["status"] == "planned"
assert "localStorage only" in tracks["research_web_profile_flow"]["next_delivery"]
assert "exploratory" in tracks["research_web_rectification_journey"]["gate_for_upgrade"]
assert "skill_truth_overlay" in tracks["skill_to_web_sync"]["next_delivery"]
@@ -0,0 +1,43 @@
import json
from pathlib import Path
ROOT = Path(__file__).resolve().parents[1]
PACKET = ROOT / "references/oracle/shadbala_naisargika_closure_packet_2026_07_20.json"
INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json"
def test_naisargika_packet_closes_same_unit_observation_without_truth_upgrade():
data = json.loads(PACKET.read_text(encoding="utf-8"))
assert data["scope"] == "shadbala_naisargika_closure_packet"
assert data["component"] == "naisargika"
assert data["claim_status"] == "partial"
assert data["closure_classification"] == "within_tolerance_observation"
assert data["absolute_parity_ready"] is False
assert data["production_tuning_allowed"] is False
assert data["truth_matrix_allowed"] is False
assert data["summary"] == {
"component_row_count": 7,
"max_delta_virupa": 0.0,
"source_count_per_row": 5,
"within_tolerance_count": 7,
}
def test_naisargika_packet_has_all_visible_planets_and_unit_contract():
data = json.loads(PACKET.read_text(encoding="utf-8"))
rows = {row["planet"]: row for row in data["rows"]}
assert set(rows) == {"Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"}
for row in rows.values():
values = row["normalized_values_virupa"]
assert set(values) == {"local", "jyotishganit", "xalen", "vp_jain_local", "vp_jain_published"}
assert max(values.values()) - min(values.values()) == 0
assert row["unit_contract"] == "Virupa fixed natural-strength table; 60 Virupa = 1 Rupa."
assert row["closure_status"] == "same_unit_observation_frozen"
def test_naisargika_packet_is_indexed_as_partial_component_closure():
index = json.loads(INDEX.read_text(encoding="utf-8"))
packets = {row["packet_id"]: row for row in index["packets"]}
packet = packets["shadbala_naisargika_closure_packet_2026_07_20"]
assert packet["claim_status"] == "partial"
assert packet["domain"] == "shadbala_component_closure"