From 6d4d22630c994263ae1ceea3f75bd474aac340f3 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Mon, 20 Jul 2026 00:03:56 +0800 Subject: [PATCH] feat: sync mismatch progress evidence closure --- ...art_adhana_niseka_registry_2026_07_19.json | 41 + .../evidence_packet_index_2026_07_19.json | 672 +++++++------ ...hganit_field_closure_queue_2026_07_19.json | 61 ++ ...nit_field_probe_steve_jobs_2026_07_19.json | 539 ++++++++++ ...mismatch_attribution_queue_2026_07_19.json | 40 + ...it_node_source_attribution_2026_07_19.json | 65 ++ ...ield_comparison_steve_jobs_2026_07_19.json | 315 ++++++ ...a_api_observation_manifest_2026_07_19.json | 23 + ...ss_worked_example_registry_2026_07_19.json | 105 ++ ...duct_skill_source_boundary_2026_07_19.json | 23 + .../profile_schema_contract_2026_07_19.json | 90 ++ ...ublic_worked_example_queue_2026_07_19.json | 91 ++ ...tions_rule_family_registry_2026_07_19.json | 46 + ...enshot_technique_gap_audit_2026_07_19.json | 62 ++ ...chnique_fragment_inventory_2026_07_19.json | 142 +++ ...n_audit_kp_gochara_muhurta_2026_07_19.json | 65 ++ ...omotion_audit_varga_karaka_2026_07_19.json | 92 ++ ...ine_mismatch_closure_queue_2026_07_19.json | 934 ++++++++++++++++++ ...e_mismatch_progress_ledger_2026_07_19.json | 34 + .../vedicastro_kp_api_probe_2026_07_19.json | 34 + scripts/claim_audit_runtime_gate.py | 83 ++ scripts/evidence_packet_index_integrity.py | 98 ++ .../jyotishganit_vs_local_field_comparison.py | 13 +- scripts/local_oss_observation_inventory.py | 118 +++ .../three_engine_mismatch_progress_ledger.py | 58 ++ scripts/vedicastro_kp_surface_locator.py | 75 ++ tests/test_evidence_packet_index_integrity.py | 63 ++ ...jyotishganit_mismatch_attribution_queue.py | 31 + ...est_three_engine_mismatch_closure_queue.py | 38 + ...t_three_engine_mismatch_progress_ledger.py | 41 + 30 files changed, 3766 insertions(+), 326 deletions(-) create mode 100644 references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json create mode 100644 references/oracle/jyotishganit_field_closure_queue_2026_07_19.json create mode 100644 references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json create mode 100644 references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json create mode 100644 references/oracle/jyotishganit_node_source_attribution_2026_07_19.json create mode 100644 references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json create mode 100644 references/oracle/panchanga_api_observation_manifest_2026_07_19.json create mode 100644 references/oracle/permissive_oss_worked_example_registry_2026_07_19.json create mode 100644 references/oracle/product_skill_source_boundary_2026_07_19.json create mode 100644 references/oracle/profile_schema_contract_2026_07_19.json create mode 100644 references/oracle/public_worked_example_queue_2026_07_19.json create mode 100644 references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json create mode 100644 references/oracle/screenshot_technique_gap_audit_2026_07_19.json create mode 100644 references/oracle/technique_fragment_inventory_2026_07_19.json create mode 100644 references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json create mode 100644 references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json create mode 100644 references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json create mode 100644 references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json create mode 100644 references/oracle/vedicastro_kp_api_probe_2026_07_19.json create mode 100644 scripts/claim_audit_runtime_gate.py create mode 100644 scripts/evidence_packet_index_integrity.py create mode 100644 scripts/local_oss_observation_inventory.py create mode 100644 scripts/three_engine_mismatch_progress_ledger.py create mode 100644 scripts/vedicastro_kp_surface_locator.py create mode 100644 tests/test_evidence_packet_index_integrity.py create mode 100644 tests/test_jyotishganit_mismatch_attribution_queue.py create mode 100644 tests/test_three_engine_mismatch_closure_queue.py create mode 100644 tests/test_three_engine_mismatch_progress_ledger.py diff --git a/references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json b/references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json new file mode 100644 index 00000000..94c37b9d --- /dev/null +++ b/references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json @@ -0,0 +1,41 @@ +{ + "scope": "conception_chart_adhana_niseka_registry", + "created_at": "2026-07-19", + "status": "research_only_registry_v1", + "runtime_status": "partial_scaffold_present", + "production_tuning_allowed": false, + "medical_or_fertility_claims_allowed": false, + "copyright_boundary": "labels_and_short_notes_only_no_fulltext", + "source_manifest": "references/source_ingestion_manual_classifications_2026_07_17.json", + "source_images": ["受孕/IMG_3216.JPG", "受孕/IMG_3219.JPG", "受孕/IMG_3221.JPG"], + "local_artifacts": ["scripts/adhana.py"], + "formula_family": { + "id": "conception_chart", + "aliases": ["Adhana", "Niseka", "Adhana Lagna", "conception chart"], + "observed_scope": "Conception-chart construction and Adhana/Niseka lagna inference from classical source snippets and screenshot notes." + }, + "subtopics": [ + { + "id": "adhana_lagna_inference", + "status": "source_family_identified", + "required_evidence": "Classical formula source, time-unit convention, birth-to-conception interval rule, worked example." + }, + { + "id": "niseka_conception_rules", + "status": "source_family_identified", + "required_evidence": "Public worked example and source edition metadata." + }, + { + "id": "privacy_safety_gate", + "status": "required_before_runtime", + "required_evidence": "No medical/fertility guarantee, sensitive personal-data handling, and user-facing safety wording." + } + ], + "required_next_steps": [ + "Create source packet with exact formula IDs and edition metadata.", + "Find at least one public worked example with numeric longitudes/time units.", + "Compare scripts/adhana.py outputs against the worked example.", + "Add medical/fertility safety gate before any user-facing interpretation." + ], + "claim_boundary": "Research-only. Do not use for fertility, pregnancy, child sex, medical, or deterministic conception claims." +} diff --git a/references/oracle/evidence_packet_index_2026_07_19.json b/references/oracle/evidence_packet_index_2026_07_19.json index e5c07b9f..68a56152 100644 --- a/references/oracle/evidence_packet_index_2026_07_19.json +++ b/references/oracle/evidence_packet_index_2026_07_19.json @@ -1,550 +1,574 @@ { - "scope": "evidence_packet_index", - "created_at": "2026-07-19", - "status": "active_index_v1", - "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": 67, - "blocked_or_partial_count": 40, - "human_review_required_count": 1 - }, + "created_at": "2026-07-19", "packets": [ { - "packet_id": "formula_source_kb", - "path": "references/oracle/formula_source_knowledge_base_2026_07_19.json", - "domain": "formula_sources", + "claim_boundary": "Source/formula/unit registry exists; absolute numeric parity still requires worked examples and oracle comparison.", "claim_status": "partial", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Source/formula/unit registry exists; absolute numeric parity still requires worked examples and oracle comparison." + "domain": "formula_sources", + "packet_id": "formula_source_kb", + "path": "references/oracle/formula_source_knowledge_base_2026_07_19.json" }, { - "packet_id": "profile_schema_contract", - "path": "references/oracle/profile_schema_contract_2026_07_19.json", + "claim_boundary": "Profile schema contract is ready; UI/API adoption must prove gender optional fields do not affect core chart math.", + "claim_status": "ready_contract", + "consumer_policy": "research_to_commercial_contract_only", "domain": "profile_schema", - "claim_status": "ready_contract", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Profile schema contract is ready; UI/API adoption must prove gender optional fields do not affect core chart math." + "packet_id": "profile_schema_contract", + "path": "references/oracle/profile_schema_contract_2026_07_19.json" }, { + "claim_boundary": "Gender affects only optional relationship/birth-context interpretation, not chart calculation.", + "claim_status": "ready_contract", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "relationship_interpretation", "packet_id": "gender_interpretation_contract", - "path": "references/oracle/gender_interpretation_contract_2026_07_19.json", - "domain": "relationship_interpretation", - "claim_status": "ready_contract", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Gender affects only optional relationship/birth-context interpretation, not chart calculation." + "path": "references/oracle/gender_interpretation_contract_2026_07_19.json" }, { + "claim_boundary": "Technique registry only; no predictive truth upgrade.", + "claim_status": "ready_contract", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "relationship_interpretation", "packet_id": "relationship_gender_role_registry", - "path": "references/relationship_gender_role_technique_registry_2026_07_19.json", - "domain": "relationship_interpretation", - "claim_status": "ready_contract", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Technique registry only; no predictive truth upgrade." + "path": "references/relationship_gender_role_technique_registry_2026_07_19.json" }, { - "packet_id": "day_level_human_annotation_packet", - "path": "references/real_case_calibration/day_level_holdout_v3_human_annotation_packet_2026_07_19.json", - "domain": "timing_holdout", + "claim_boundary": "Final labels are blank; blind evaluation must not run until independent human review and freeze.", "claim_status": "blocked", "consumer_policy": "human_review_required", - "claim_boundary": "Final labels are blank; blind evaluation must not run until independent human review and freeze." + "domain": "timing_holdout", + "packet_id": "day_level_human_annotation_packet", + "path": "references/real_case_calibration/day_level_holdout_v3_human_annotation_packet_2026_07_19.json" }, { - "packet_id": "prashna_tajika_oracle_packet", - "path": "references/oracle/prashna_tajika_saham_gulika_sphuta_oracle_packet_2026_07_19.json", + "claim_boundary": "Registry exists; public worked examples and field-level numeric oracle comparison still missing.", + "claim_status": "blocked", + "consumer_policy": "research_only", "domain": "horary_annual_sensitive_points", - "claim_status": "blocked", - "consumer_policy": "research_only", - "claim_boundary": "Registry exists; public worked examples and field-level numeric oracle comparison still missing." + "packet_id": "prashna_tajika_oracle_packet", + "path": "references/oracle/prashna_tajika_saham_gulika_sphuta_oracle_packet_2026_07_19.json" }, { - "packet_id": "vedastro_identity_evidence_audit", - "path": "references/oracle/vedastro_identity_evidence_audit_2026_07_19.json", + "claim_boundary": "Local NuGet candidate is pinned; hosted API identity/source commit remains blocked.", + "claim_status": "blocked", + "consumer_policy": "research_only", "domain": "external_oracle_identity", - "claim_status": "blocked", - "consumer_policy": "research_only", - "claim_boundary": "Local NuGet candidate is pinned; hosted API identity/source commit remains blocked." + "packet_id": "vedastro_identity_evidence_audit", + "path": "references/oracle/vedastro_identity_evidence_audit_2026_07_19.json" }, { - "packet_id": "xalen_shadbala_av_delta_report", - "path": "references/oracle/xalen_shadbala_av_component_delta_report_2026_07_19.json", - "domain": "shadbala_ashtakavarga", + "claim_boundary": "Deltas grouped by component; formulas/units/school variants remain open.", "claim_status": "partial", "consumer_policy": "research_only", - "claim_boundary": "Deltas grouped by component; formulas/units/school variants remain open." + "domain": "shadbala_ashtakavarga", + "packet_id": "xalen_shadbala_av_delta_report", + "path": "references/oracle/xalen_shadbala_av_component_delta_report_2026_07_19.json" }, { - "packet_id": "three_engine_mismatch_closure_queue", - "path": "references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json", - "domain": "three_engine_parity", + "claim_boundary": "60 tickets remain open; no majority-vote truth.", "claim_status": "open_queue", "consumer_policy": "research_only", - "claim_boundary": "60 tickets remain open; no majority-vote truth." + "domain": "three_engine_parity", + "packet_id": "three_engine_mismatch_closure_queue", + "path": "references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json" }, { - "packet_id": "technique_fragment_inventory", - "path": "references/oracle/technique_fragment_inventory_2026_07_19.json", + "claim_boundary": "Inventory prevents missed fragments; files are not capability closure by themselves.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "technique_fragments", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Inventory prevents missed fragments; files are not capability closure by themselves." + "packet_id": "technique_fragment_inventory", + "path": "references/oracle/technique_fragment_inventory_2026_07_19.json" }, { - "packet_id": "varga_karaka_promotion_audit", - "path": "references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json", + "claim_boundary": "Runtime coverage exists; entry/display/source/oracle contracts remain.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "varga_jaimini", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Runtime coverage exists; entry/display/source/oracle contracts remain." + "packet_id": "varga_karaka_promotion_audit", + "path": "references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json" }, { - "packet_id": "vimsopaka_avastha_promotion_audit", - "path": "references/oracle/technique_promotion_audit_vimsopaka_avastha_2026_07_19.json", + "claim_boundary": "Runtime usage exists; formula source/oracle/display contracts remain.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "strength_state_layers", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Runtime usage exists; formula source/oracle/display contracts remain." + "packet_id": "vimsopaka_avastha_promotion_audit", + "path": "references/oracle/technique_promotion_audit_vimsopaka_avastha_2026_07_19.json" }, { - "packet_id": "kp_gochara_muhurta_promotion_audit", - "path": "references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json", + "claim_boundary": "Panchanga runtime exists; KP/Muhurta/Gochara remain reference-only or need license/source/oracle closure.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "kp_gochara_muhurta_panchanga", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Panchanga runtime exists; KP/Muhurta/Gochara remain reference-only or need license/source/oracle closure." + "packet_id": "kp_gochara_muhurta_promotion_audit", + "path": "references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json" }, { - "packet_id": "claim_audit_runtime_gate", - "path": "scripts/claim_audit_runtime_gate.py", + "claim_boundary": "Runtime gate can block or degrade high claims from blocked/partial/open evidence packets; production tuning remains false.", + "claim_status": "ready_contract", + "consumer_policy": "research_to_commercial_contract_only", "domain": "claim_governance", - "claim_status": "ready_contract", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Runtime gate can block or degrade high claims from blocked/partial/open evidence packets; production tuning remains false." + "packet_id": "claim_audit_runtime_gate", + "path": "scripts/claim_audit_runtime_gate.py" }, { - "packet_id": "screenshot_technique_gap_audit", - "path": "references/oracle/screenshot_technique_gap_audit_2026_07_19.json", + "claim_boundary": "Screenshot labels identify missing conception-chart and relationship-combination families, but unreadable images and source packets remain unresolved.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "source_ingestion", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Screenshot labels identify missing conception-chart and relationship-combination families, but unreadable images and source packets remain unresolved." + "packet_id": "screenshot_technique_gap_audit", + "path": "references/oracle/screenshot_technique_gap_audit_2026_07_19.json" }, { - "packet_id": "conception_chart_adhana_niseka_registry", - "path": "references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json", - "domain": "conception_chart", + "claim_boundary": "Research-only Adhana/Niseka registry; no medical/fertility/user-facing claim until source, worked example, privacy, and safety gates close.", "claim_status": "blocked", "consumer_policy": "research_only", - "claim_boundary": "Research-only Adhana/Niseka registry; no medical/fertility/user-facing claim until source, worked example, privacy, and safety gates close." + "domain": "conception_chart", + "packet_id": "conception_chart_adhana_niseka_registry", + "path": "references/oracle/conception_chart_adhana_niseka_registry_2026_07_19.json" }, { - "packet_id": "relationship_combinations_rule_family_registry", - "path": "references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json", - "domain": "relationship_rule_families", + "claim_boundary": "Relationship/children/hostility combination families are indexed but require source packets, deduplication, tests, and claim gates before runtime use.", "claim_status": "partial", "consumer_policy": "research_only", - "claim_boundary": "Relationship/children/hostility combination families are indexed but require source packets, deduplication, tests, and claim gates before runtime use." + "domain": "relationship_rule_families", + "packet_id": "relationship_combinations_rule_family_registry", + "path": "references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json" }, { - "packet_id": "skill_truth_overlay", - "path": "references/oracle/skill_truth_overlay_2026_07_19.json", - "domain": "skill_capability_truth", + "claim_boundary": "Corrects optimistic technique_registry statuses before any skill completeness claim.", "claim_status": "partial", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Corrects optimistic technique_registry statuses before any skill completeness claim." + "domain": "skill_capability_truth", + "packet_id": "skill_truth_overlay", + "path": "references/oracle/skill_truth_overlay_2026_07_19.json" }, { - "packet_id": "rectification_technique_usage_audit", - "path": "references/oracle/rectification_technique_usage_audit_2026_07_19.json", - "domain": "birth_time_rectification", + "claim_boundary": "Rectification now exposes candidate sweep, Vimshottari scoring, Varga sensitivity, Narayana/Jaimini/Vimsopaka cross gates, and Shadbala-AV/Gochara observation gates; all remain candidate-only and cannot confirm birth-time truth.", "claim_status": "partial", "consumer_policy": "research_only", - "claim_boundary": "Rectification now exposes candidate sweep, Vimshottari scoring, Varga sensitivity, Narayana/Jaimini/Vimsopaka cross gates, and Shadbala-AV/Gochara observation gates; all remain candidate-only and cannot confirm birth-time truth." + "domain": "birth_time_rectification", + "packet_id": "rectification_technique_usage_audit", + "path": "references/oracle/rectification_technique_usage_audit_2026_07_19.json" }, { - "packet_id": "effective_skill_capability_view", - "path": "references/oracle/effective_skill_capability_view_2026_07_19.json", - "domain": "skill_capability_truth", + "claim_boundary": "Effective skill view applies the truth overlay before capability claims; raw technique_registry status is not sufficient.", "claim_status": "ready_contract", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Effective skill view applies the truth overlay before capability claims; raw technique_registry status is not sufficient." + "domain": "skill_capability_truth", + "packet_id": "effective_skill_capability_view", + "path": "references/oracle/effective_skill_capability_view_2026_07_19.json" }, { - "packet_id": "rectification_missing_layer_integration_plan", - "path": "references/oracle/rectification_missing_layer_integration_plan_2026_07_19.json", + "claim_boundary": "All planned rectification layers have partial guarded runtime surfaces; Shadbala-AV remains formula/unit partial and Gochara remains negative-holdout blocked, so outputs stay exploratory.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "birth_time_rectification", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "All planned rectification layers have partial guarded runtime surfaces; Shadbala-AV remains formula/unit partial and Gochara remains negative-holdout blocked, so outputs stay exploratory." + "packet_id": "rectification_missing_layer_integration_plan", + "path": "references/oracle/rectification_missing_layer_integration_plan_2026_07_19.json" }, { + "claim_boundary": "KP precision timing gap registry exists; star/sub-lord, ruling planets and significator tables remain blocked until source/oracle/holdout gates close.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing", "packet_id": "kp_precision_timing_gap_registry", - "path": "references/oracle/kp_precision_timing_gap_registry_2026_07_19.json", - "domain": "kp_precision_timing", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "KP precision timing gap registry exists; star/sub-lord, ruling planets and significator tables remain blocked until source/oracle/holdout gates close." + "path": "references/oracle/kp_precision_timing_gap_registry_2026_07_19.json" }, { + "claim_boundary": "Panchanga base exists, but full Muhurta scoring remains blocked until Tarabala/Chandrabala/Panchaka/Rahu Kalam examples and source contracts close.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "muhurta", "packet_id": "muhurta_full_system_gap_registry", - "path": "references/oracle/muhurta_full_system_gap_registry_2026_07_19.json", - "domain": "muhurta", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Panchanga base exists, but full Muhurta scoring remains blocked until Tarabala/Chandrabala/Panchaka/Rahu Kalam examples and source contracts close." + "path": "references/oracle/muhurta_full_system_gap_registry_2026_07_19.json" }, { - "packet_id": "ashtakavarga_advanced_usage_gap_registry", - "path": "references/oracle/ashtakavarga_advanced_usage_gap_registry_2026_07_19.json", + "claim_boundary": "Core BAV/SAV exists; Kakshya transit, sensitive transit signs/nakshatras and annual SAV timing remain observation-only until oracle/holdout gates close.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "domain": "ashtakavarga_advanced_usage", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Core BAV/SAV exists; Kakshya transit, sensitive transit signs/nakshatras and annual SAV timing remain observation-only until oracle/holdout gates close." + "packet_id": "ashtakavarga_advanced_usage_gap_registry", + "path": "references/oracle/ashtakavarga_advanced_usage_gap_registry_2026_07_19.json" }, { - "packet_id": "compatibility_full_system_gap_registry", - "path": "references/oracle/compatibility_full_system_gap_registry_2026_07_19.json", + "claim_boundary": "Ashtakoota core exists; extended planet/Lagna Kuta, relationship AV overlay and rule-family combinations remain partial/research-only.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "domain": "compatibility", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Ashtakoota core exists; extended planet/Lagna Kuta, relationship AV overlay and rule-family combinations remain partial/research-only." + "packet_id": "compatibility_full_system_gap_registry", + "path": "references/oracle/compatibility_full_system_gap_registry_2026_07_19.json" }, { + "claim_boundary": "KP star/sub-lord and significator probe exposes raw fields and hash, but cannot drive precise event timing without exact KP cusp oracle and independent negative holdout validation.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing", "packet_id": "kp_precision_timing_probe", - "path": "scripts/kp_precision_timing_probe.py", - "domain": "kp_precision_timing", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "KP star/sub-lord and significator probe exposes raw fields and hash, but cannot drive precise event timing without exact KP cusp oracle and independent negative holdout validation." + "path": "scripts/kp_precision_timing_probe.py" }, { - "packet_id": "local_oss_reuse_sweep_kp_muhurta_av_compat", - "path": "references/oracle/local_oss_reuse_sweep_kp_muhurta_av_compat_2026_07_19.json", + "claim_boundary": "Records local/OSS reusable candidates for KP, Muhurta, AV and compatibility; discovery only, no runtime truth upgrade.", + "claim_status": "partial", + "consumer_policy": "research_only", "domain": "reuse_governance", - "claim_status": "partial", - "consumer_policy": "research_only", - "claim_boundary": "Records local/OSS reusable candidates for KP, Muhurta, AV and compatibility; discovery only, no runtime truth upgrade." + "packet_id": "local_oss_reuse_sweep_kp_muhurta_av_compat", + "path": "references/oracle/local_oss_reuse_sweep_kp_muhurta_av_compat_2026_07_19.json" }, { + "claim_boundary": "Exact KP cusp contract is defined, but numeric cusp oracle and negative timing holdout are missing; current runtime remains supporting probe only.", + "claim_status": "blocked", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing", "packet_id": "kp_cusp_precision_contract", - "path": "references/oracle/kp_cusp_precision_contract_2026_07_19.json", - "domain": "kp_precision_timing", - "claim_status": "blocked", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Exact KP cusp contract is defined, but numeric cusp oracle and negative timing holdout are missing; current runtime remains supporting probe only." + "path": "references/oracle/kp_cusp_precision_contract_2026_07_19.json" }, { - "packet_id": "high_rigor_closure_gate", - "path": "scripts/high_rigor_closure_gate.py", + "claim_boundary": "Aggregates external numeric oracle, independent negative holdout, exact KP cusp and full scoring gates; blocks production tuning, verified timing and birth-time truth while any gate remains partial/blocked.", + "claim_status": "blocked", + "consumer_policy": "research_to_commercial_contract_only", "domain": "closure_governance", - "claim_status": "blocked", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Aggregates external numeric oracle, independent negative holdout, exact KP cusp and full scoring gates; blocks production tuning, verified timing and birth-time truth while any gate remains partial/blocked." + "packet_id": "high_rigor_closure_gate", + "path": "scripts/high_rigor_closure_gate.py" }, { + "claim_boundary": "KP external sub-lord table hash runner fixes fixture hash when present and reports fixture_missing when absent; no timing truth upgrade.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing", "packet_id": "kp_external_table_hash_manifest", - "path": "scripts/kp_external_table_hash_manifest.py", - "domain": "kp_precision_timing", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "KP external sub-lord table hash runner fixes fixture hash when present and reports fixture_missing when absent; no timing truth upgrade." + "path": "scripts/kp_external_table_hash_manifest.py" }, { - "packet_id": "kp_cusp_worked_example_oracle_queue", - "path": "references/oracle/kp_cusp_worked_example_oracle_queue_2026_07_19.json", - "domain": "kp_precision_timing", + "claim_boundary": "Exact KP cusp worked-example queue defines required oracle fields; remains awaiting public numeric examples.", "claim_status": "blocked", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Exact KP cusp worked-example queue defines required oracle fields; remains awaiting public numeric examples." + "domain": "kp_precision_timing", + "packet_id": "kp_cusp_worked_example_oracle_queue", + "path": "references/oracle/kp_cusp_worked_example_oracle_queue_2026_07_19.json" }, { - "packet_id": "muhurta_factor_probe", - "path": "scripts/muhurta_factor_probe.py", - "domain": "muhurta", + "claim_boundary": "Muhurta factor probe exposes Tarabala/Chandrabala/Rahu Kalam/Abhijit observations only; no verified Muhurta verdict.", "claim_status": "partial", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Muhurta factor probe exposes Tarabala/Chandrabala/Rahu Kalam/Abhijit observations only; no verified Muhurta verdict." + "domain": "muhurta", + "packet_id": "muhurta_factor_probe", + "path": "scripts/muhurta_factor_probe.py" }, { - "packet_id": "day_level_holdout_intake", - "path": "scripts/day_level_holdout_intake.py", - "domain": "timing_holdout", + "claim_boundary": "Human annotation intake appends frozen independent labels; production tuning remains blocked until frozen gate passes.", "claim_status": "partial", "consumer_policy": "research_only", - "claim_boundary": "Human annotation intake appends frozen independent labels; production tuning remains blocked until frozen gate passes." + "domain": "timing_holdout", + "packet_id": "day_level_holdout_intake", + "path": "scripts/day_level_holdout_intake.py" }, { + "claim_boundary": "Permissive OSS candidates and worked-example queues are registered for probes only; no truth-matrix or production-tuning upgrade.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", + "domain": "oss_reuse_and_worked_examples", "packet_id": "permissive_oss_worked_example_registry", - "path": "references/oracle/permissive_oss_worked_example_registry_2026_07_19.json", - "domain": "oss_reuse_and_worked_examples", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "Permissive OSS candidates and worked-example queues are registered for probes only; no truth-matrix or production-tuning upgrade." + "path": "references/oracle/permissive_oss_worked_example_registry_2026_07_19.json" }, { + "claim_boundary": "Local OSS fragments are inventoried with hash/license/API hints only; no runtime dependency or truth upgrade.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", + "domain": "oss_reuse_and_worked_examples", "packet_id": "local_oss_observation_inventory", - "path": "scripts/local_oss_observation_inventory.py", - "domain": "oss_reuse_and_worked_examples", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "Local OSS fragments are inventoried with hash/license/API hints only; no runtime dependency or truth upgrade." + "path": "scripts/local_oss_observation_inventory.py" }, { - "packet_id": "panchanga_api_observation_manifest", - "path": "references/oracle/panchanga_api_observation_manifest_2026_07_19.json", + "claim_boundary": "panchanga_api local snapshot is docs-only; no numeric parity claim.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", "domain": "muhurta_panchanga", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "panchanga_api local snapshot is docs-only; no numeric parity claim." + "packet_id": "panchanga_api_observation_manifest", + "path": "references/oracle/panchanga_api_observation_manifest_2026_07_19.json" }, { - "packet_id": "jyotishganit_field_closure_queue", - "path": "references/oracle/jyotishganit_field_closure_queue_2026_07_19.json", + "claim_boundary": "Field-level closure queue only; does not resolve mismatch rows.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", "domain": "three_engine_field_closure", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "Field-level closure queue only; does not resolve mismatch rows." + "packet_id": "jyotishganit_field_closure_queue", + "path": "references/oracle/jyotishganit_field_closure_queue_2026_07_19.json" }, { - "packet_id": "vedicastro_kp_surface_locator", - "path": "scripts/vedicastro_kp_surface_locator.py", + "claim_boundary": "Locates KP source surface and missing/candidate table paths; no cusp truth upgrade.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", "domain": "kp_precision_timing", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "Locates KP source surface and missing/candidate table paths; no cusp truth upgrade." + "packet_id": "vedicastro_kp_surface_locator", + "path": "scripts/vedicastro_kp_surface_locator.py" }, { - "packet_id": "product_skill_source_boundary", - "path": "references/oracle/product_skill_source_boundary_2026_07_19.json", - "domain": "skill_product_reference", + "claim_boundary": "rishi-ai-mcp and vedic-astro-skills stay out of numeric truth layer.", "claim_status": "reference_only", "consumer_policy": "skill_prompt_reference_only", - "claim_boundary": "rishi-ai-mcp and vedic-astro-skills stay out of numeric truth layer." + "domain": "skill_product_reference", + "packet_id": "product_skill_source_boundary", + "path": "references/oracle/product_skill_source_boundary_2026_07_19.json" }, { - "packet_id": "jyotishganit_field_probe", - "path": "references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json", + "claim_boundary": "jyotishganit D2/D4/D9/D10 Panchanga AV raw/hash attached; Shadbala missing remains partial.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", "domain": "three_engine_field_closure", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "jyotishganit D2/D4/D9/D10 Panchanga AV raw/hash attached; Shadbala missing remains partial." + "packet_id": "jyotishganit_field_probe", + "path": "references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json" }, { - "packet_id": "vedicastro_kp_api_probe", - "path": "references/oracle/vedicastro_kp_api_probe_2026_07_19.json", + "claim_boundary": "VedicAstro KP API/source hash captured; exact cusp truth still requires public numeric worked examples.", + "claim_status": "observation_only", + "consumer_policy": "research_observation_only", "domain": "kp_precision_timing", - "claim_status": "observation_only", - "consumer_policy": "research_observation_only", - "claim_boundary": "VedicAstro KP API/source hash captured; exact cusp truth still requires public numeric worked examples." + "packet_id": "vedicastro_kp_api_probe", + "path": "references/oracle/vedicastro_kp_api_probe_2026_07_19.json" }, { - "packet_id": "public_worked_example_queue", - "path": "references/oracle/public_worked_example_queue_2026_07_19.json", - "domain": "worked_example_collection", + "claim_boundary": "Public worked-example queue only; URLs/search terms are not oracle-ready until numeric fields and hashes are captured.", "claim_status": "open_queue", "consumer_policy": "research_queue_only", - "claim_boundary": "Public worked-example queue only; URLs/search terms are not oracle-ready until numeric fields and hashes are captured." + "domain": "worked_example_collection", + "packet_id": "public_worked_example_queue", + "path": "references/oracle/public_worked_example_queue_2026_07_19.json" }, { - "packet_id": "d1_d60_varga_mapping_registry", - "path": "references/oracle/d1_d60_varga_mapping_registry_2026_07_19.json", - "domain": "varga_mapping", + "claim_boundary": "D1-D60 rows are enumerated; generic fallback rows are not verified formal varga support.", "claim_status": "partial", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "D1-D60 rows are enumerated; generic fallback rows are not verified formal varga support." + "domain": "varga_mapping", + "packet_id": "d1_d60_varga_mapping_registry", + "path": "references/oracle/d1_d60_varga_mapping_registry_2026_07_19.json" }, { - "packet_id": "jyotishganit_vs_local_field_comparison", - "path": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json", - "domain": "three_engine_field_closure", + "claim_boundary": "Local vs jyotishganit D2/D4/D9/D10 sign comparison with hash; mismatch attribution still pending.", "claim_status": "observation_only", "consumer_policy": "research_observation_only", - "claim_boundary": "Local vs jyotishganit D2/D4/D9/D10 sign comparison with hash; mismatch attribution still pending." + "domain": "three_engine_field_closure", + "packet_id": "jyotishganit_vs_local_field_comparison", + "path": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json" }, { - "packet_id": "d1_d60_generic_gap_queue", - "path": "references/oracle/d1_d60_generic_gap_queue_2026_07_19.json", - "domain": "varga_mapping", + "claim_boundary": "40 generic-only Dn rows require source/formula/oracle closure or remain hidden generic fallback.", "claim_status": "partial", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "40 generic-only Dn rows require source/formula/oracle closure or remain hidden generic fallback." + "domain": "varga_mapping", + "packet_id": "d1_d60_generic_gap_queue", + "path": "references/oracle/d1_d60_generic_gap_queue_2026_07_19.json" }, { - "packet_id": "authoritative_oss_jyotish_source_intake", - "path": "references/oracle/authoritative_oss_jyotish_source_intake_2026_07_19.json", - "domain": "oss_source_reuse_governance", + "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.", "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." + "domain": "oss_source_reuse_governance", + "packet_id": "authoritative_oss_jyotish_source_intake", + "path": "references/oracle/authoritative_oss_jyotish_source_intake_2026_07_19.json" }, { - "packet_id": "d10_rahu_ketu_node_mode_attribution", - "path": "references/oracle/d10_rahu_ketu_node_mode_attribution_2026_07_19.json", + "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.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "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": "d10_rahu_ketu_node_mode_attribution", + "path": "references/oracle/d10_rahu_ketu_node_mode_attribution_2026_07_19.json" }, { - "packet_id": "public_worked_example_candidate_numeric_audit", - "path": "references/oracle/public_worked_example_candidate_numeric_audit_2026_07_19.json", + "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.", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", "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": "public_worked_example_candidate_numeric_audit", + "path": "references/oracle/public_worked_example_candidate_numeric_audit_2026_07_19.json" }, { + "claim_boundary": "Sidereal flatlib dependency is reproducibly installable in a temporary isolated path and the VedicAstro KP API surface is callable; this remains observation_only and must not enter truth matrix until numeric worked-example replay closes.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "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": "observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Sidereal flatlib dependency is reproducibly installable in a temporary isolated path and the VedicAstro KP API surface is callable; this remains observation_only and must not enter truth matrix until numeric worked-example replay closes." + "path": "references/oracle/vedicastro_flatlib_sidereal_install_probe_2026_07_19.json" }, { + "claim_boundary": "Temporary flatlib/polars VedicAstro KP probe captures dependency/import state only; no runtime truth upgrade.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "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." + "path": "references/oracle/vedicastro_kp_api_probe_flatlib_polars_tmp_2026_07_19.json" }, { + "claim_boundary": "VedicAstro KP lord/sub/sub-sub runtime surface is callable in isolated sidereal flatlib environment; no precision-timing truth upgrade until public numeric KP worked-example replay closes.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "packet_id": "vedicastro_kp_runtime_surface_probe", - "path": "references/oracle/vedicastro_kp_runtime_surface_probe_2026_07_19.json", - "domain": "kp_precision_timing_dependency", - "claim_status": "observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "VedicAstro KP lord/sub/sub-sub runtime surface is callable in isolated sidereal flatlib environment; no precision-timing truth upgrade until public numeric KP worked-example replay closes." + "path": "references/oracle/vedicastro_kp_runtime_surface_probe_2026_07_19.json" }, { - "packet_id": "kp_muhurta_shadbala_numeric_packet_queue", - "path": "references/oracle/kp_muhurta_shadbala_numeric_packet_queue_2026_07_19.json", + "claim_boundary": "Queue tracks KP cusp, KP sub-lord table, Tarabala/Chandrabala, Rahu Kalam, and Shadbala numeric packets. Runtime KP raw exists, but no row is numeric_oracle_ready yet.", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", "domain": "kp_muhurta_shadbala_numeric_oracle_queue", - "claim_status": "open_queue", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Queue tracks KP cusp, KP sub-lord table, Tarabala/Chandrabala, Rahu Kalam, and Shadbala numeric packets. Runtime KP raw exists, but no row is numeric_oracle_ready yet." + "packet_id": "kp_muhurta_shadbala_numeric_packet_queue", + "path": "references/oracle/kp_muhurta_shadbala_numeric_packet_queue_2026_07_19.json" }, { + "claim_boundary": "VedicAstro KP house cusp star/sub/sub-sub raw for Steve Jobs fixture; observation-only until public worked-example replay closes.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "packet_id": "vedicastro_kp_house_cusp_probe_steve_jobs", - "path": "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json", - "domain": "kp_precision_timing_dependency", - "claim_status": "observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "VedicAstro KP house cusp star/sub/sub-sub raw for Steve Jobs fixture; observation-only until public worked-example replay closes." + "path": "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json" }, { + "claim_boundary": "Probe script can collect VedicAstro KP cusp raw in isolated sidereal flatlib environment; not a production prediction engine.", + "claim_status": "tooling_observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "packet_id": "vedicastro_kp_house_cusp_probe", - "path": "scripts/vedicastro_kp_house_cusp_probe.py", - "domain": "kp_precision_timing_dependency", - "claim_status": "tooling_observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Probe script can collect VedicAstro KP cusp raw in isolated sidereal flatlib environment; not a production prediction engine." + "path": "scripts/vedicastro_kp_house_cusp_probe.py" }, { - "packet_id": "four_engine_comparison_queue", - "path": "references/oracle/four_engine_comparison_queue_2026_07_19.json", + "claim_boundary": "Unified local/Xalen/jyotishganit/VedicAstro queue; same input/fields/hash/mismatch attribution only, no majority vote truth.", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", "domain": "four_engine_parity", - "claim_status": "open_queue", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Unified local/Xalen/jyotishganit/VedicAstro queue; same input/fields/hash/mismatch attribution only, no majority vote truth." + "packet_id": "four_engine_comparison_queue", + "path": "references/oracle/four_engine_comparison_queue_2026_07_19.json" }, { + "claim_boundary": "VedicAstro KP cusp batch raw exists for runtime observation; public worked-example oracle closure remains open.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "kp_precision_timing_dependency", "packet_id": "vedicastro_kp_cusp_batch_probe", - "path": "references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json", - "domain": "kp_precision_timing_dependency", - "claim_status": "observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "VedicAstro KP cusp batch raw exists for runtime observation; public worked-example oracle closure remains open." + "path": "references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json" }, { - "packet_id": "jyotishganit_shadbala_surface_probe", - "path": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json", + "claim_boundary": "jyotishganit Shadbala raw surface is captured for Steve Jobs fixture; component closure remains open until field mapping and worked-example arbitration.", + "claim_status": "observation_only", + "consumer_policy": "research_to_commercial_contract_only", "domain": "shadbala_component_closure", - "claim_status": "observation_only", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "jyotishganit Shadbala raw surface is captured for Steve Jobs fixture; component closure remains open until field mapping and worked-example arbitration." + "packet_id": "jyotishganit_shadbala_surface_probe", + "path": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json" }, { - "packet_id": "vedicastro_kp_cusp_batch_probe_script", - "path": "scripts/vedicastro_kp_cusp_batch_probe.py", - "domain": "kp_precision_timing_dependency", + "claim_boundary": "Batch probe script collects KP cusp raw/hash in isolated runtime; not a production truth source.", "claim_status": "tooling_observation_only", "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Batch probe script collects KP cusp raw/hash in isolated runtime; not a production truth source." + "domain": "kp_precision_timing_dependency", + "packet_id": "vedicastro_kp_cusp_batch_probe_script", + "path": "scripts/vedicastro_kp_cusp_batch_probe.py" }, { - "packet_id": "d1_d60_public_source_candidate_queue", - "path": "references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json", + "claim_boundary": "D1-D60 public source candidates fill names/use cases only; generic-only Dn remains hidden where authority is missing.", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", "domain": "divisional_chart_source_queue", - "claim_status": "open_queue", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "D1-D60 public source candidates fill names/use cases only; generic-only Dn remains hidden where authority is missing." + "packet_id": "d1_d60_public_source_candidate_queue", + "path": "references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json" }, { - "packet_id": "muhurta_oss_factor_scoring_queue", - "path": "references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json", + "claim_boundary": "Muhurta OSS factor queue records candidates; no production scoring upgrade without source, raw/hash, and worked examples.", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", "domain": "muhurta_factor_scoring", - "claim_status": "open_queue", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Muhurta OSS factor queue records candidates; no production scoring upgrade without source, raw/hash, and worked examples." + "packet_id": "muhurta_oss_factor_scoring_queue", + "path": "references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json" }, { + "claim_boundary": "Maps Shadbala components across local/Xalen/jyotishganit/VedicAstro observations. Closed components can inform provenance; open/method-variant rows must not be treated as absolute error.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "shadbala_component_closure", "packet_id": "shadbala_component_closure_matrix", - "path": "references/oracle/shadbala_component_closure_matrix_2026_07_19.json", - "domain": "shadbala_component_closure", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Maps Shadbala components across local/Xalen/jyotishganit/VedicAstro observations. Closed components can inform provenance; open/method-variant rows must not be treated as absolute error." + "path": "references/oracle/shadbala_component_closure_matrix_2026_07_19.json" }, { + "claim_boundary": "Normalizes local/Xalen/jyotishganit/VP Jain Shadbala rows into Virupa/Rupa where available; classifications are arbitration queues, not absolute truth.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "shadbala_component_closure", "packet_id": "shadbala_same_unit_normalizer", - "path": "references/oracle/shadbala_same_unit_normalizer_2026_07_19.json", - "domain": "shadbala_component_closure", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Normalizes local/Xalen/jyotishganit/VP Jain Shadbala rows into Virupa/Rupa where available; classifications are arbitration queues, not absolute truth." + "path": "references/oracle/shadbala_same_unit_normalizer_2026_07_19.json" }, { - "packet_id": "deep_fragment_oss_reuse_gate_round2", - "path": "references/oracle/deep_fragment_oss_reuse_gate_round2_2026_07_19.json", - "domain": "fragment_oss_reuse_governance", + "claim_boundary": "Current whole-machine fragment and OSS reuse guardrail is recorded; no numeric truth or production capability is upgraded by this packet.", "claim_status": "ready_contract", "consumer_policy": "pre_work_required_before_sync", - "claim_boundary": "Current whole-machine fragment and OSS reuse guardrail is recorded; no numeric truth or production capability is upgraded by this packet." + "domain": "fragment_oss_reuse_governance", + "packet_id": "deep_fragment_oss_reuse_gate_round2", + "path": "references/oracle/deep_fragment_oss_reuse_gate_round2_2026_07_19.json" }, { - "packet_id": "shadbala_component_closure_ledger", - "path": "references/oracle/shadbala_component_closure_ledger_2026_07_19.json", + "claim_boundary": "Classifies all 42 same-unit Shadbala rows into closed observation, method variant, or open mismatch; does not assert absolute formula truth.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "domain": "shadbala_component_closure", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Classifies all 42 same-unit Shadbala rows into closed observation, method variant, or open mismatch; does not assert absolute formula truth." + "packet_id": "shadbala_component_closure_ledger", + "path": "references/oracle/shadbala_component_closure_ledger_2026_07_19.json" }, { - "packet_id": "muhurta_factor_scoring_readiness", - "path": "references/oracle/muhurta_factor_scoring_readiness_2026_07_19.json", + "claim_boundary": "Classifies Muhurta factors as supporting-context only; no scored verdict readiness until formulas, weights, public examples, and replay hashes close.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "domain": "muhurta_factor_scoring", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Classifies Muhurta factors as supporting-context only; no scored verdict readiness until formulas, weights, public examples, and replay hashes close." + "packet_id": "muhurta_factor_scoring_readiness", + "path": "references/oracle/muhurta_factor_scoring_readiness_2026_07_19.json" }, { - "packet_id": "d1_d60_source_use_readiness", - "path": "references/oracle/d1_d60_source_use_readiness_2026_07_19.json", + "claim_boundary": "Classifies D1-D60 sources for names/use notes only; generic-only Dn remains hidden until formula/source/oracle gates close.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", "domain": "varga_mapping", - "claim_status": "partial", - "consumer_policy": "research_to_commercial_contract_only", - "claim_boundary": "Classifies D1-D60 sources for names/use notes only; generic-only Dn remains hidden until formula/source/oracle gates close." + "packet_id": "d1_d60_source_use_readiness", + "path": "references/oracle/d1_d60_source_use_readiness_2026_07_19.json" }, { - "packet_id": "day_level_holdout_readiness_ledger", - "path": "references/real_case_calibration/day_level_holdout_readiness_ledger_2026_07_19.json", - "domain": "timing_holdout", + "claim_boundary": "Reports frozen-label gap for day-level timing holdout; current pilot candidates are not independent labels and cannot unlock day/month claims.", "claim_status": "blocked", "consumer_policy": "human_review_required", - "claim_boundary": "Reports frozen-label gap for day-level timing holdout; current pilot candidates are not independent labels and cannot unlock day/month claims." + "domain": "timing_holdout", + "packet_id": "day_level_holdout_readiness_ledger", + "path": "references/real_case_calibration/day_level_holdout_readiness_ledger_2026_07_19.json" + }, + { + "claim_boundary": "Tracks explanation progress for mismatch rows; does not close original queue or allow majority-vote truth.", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "three_engine_parity", + "packet_id": "three_engine_mismatch_progress_ledger", + "path": "references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json" + }, + { + "claim_boundary": "Validates indexed packet paths/statuses/required fields; does not upgrade oracle claims.", + "claim_status": "ready_contract", + "consumer_policy": "research_to_commercial_contract_only", + "domain": "evidence_index_governance", + "packet_id": "evidence_packet_index_integrity", + "path": "scripts/evidence_packet_index_integrity.py" + }, + { + "packet_id": "jyotishganit_mismatch_attribution_queue", + "path": "references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json", + "domain": "three_engine_parity", + "claim_status": "partial", + "consumer_policy": "research_to_commercial_contract_only", + "claim_boundary": "Queues formula/ayanamsa/node/rounding attribution for jyotishganit mismatches; no majority-vote truth." } - ] + ], + "production_tuning_allowed": false, + "scope": "evidence_packet_index", + "status": "active_index_v1", + "summary": { + "packet_count": 70, + "blocked_or_partial_count": 45, + "human_review_required_count": 2 + } } diff --git a/references/oracle/jyotishganit_field_closure_queue_2026_07_19.json b/references/oracle/jyotishganit_field_closure_queue_2026_07_19.json new file mode 100644 index 00000000..c5fd5b2e --- /dev/null +++ b/references/oracle/jyotishganit_field_closure_queue_2026_07_19.json @@ -0,0 +1,61 @@ +{ + "scope": "jyotishganit_field_closure_queue", + "created_at": "2026-07-19", + "status": "probe_and_local_comparison_attached", + "claim_status": "observation_only", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "local_project": "references/open_source_sources/jyotishganit", + "engine_role": "existing_external_engine_observation", + "closure_rows": [ + { + "field_family": "panchanga", + "local_source_hint": "jyotishganit/components/panchanga.py", + "target_fields": [ + "tithi", + "nakshatra", + "yoga", + "karana", + "vara" + ], + "closure_status": "raw_hash_attached_needs_external_comparison", + "claim_boundary": "Can compare field labels/indices; not Muhurta verdict." + }, + { + "field_family": "divisional_charts", + "local_source_hint": "jyotishganit/components/divisional_charts.py", + "target_fields": [ + "D2", + "D4", + "D9", + "D10" + ], + "closure_status": "raw_hash_attached_needs_field_level_comparison", + "claim_boundary": "Observation-only until ayanamsa/node/rounding and house mapping are pinned." + }, + { + "field_family": "ashtakavarga", + "local_source_hint": "jyotishganit/components/ashtakavarga.py", + "target_fields": [ + "BAV", + "SAV" + ], + "closure_status": "raw_hash_attached_needs_component_unit_mapping", + "claim_boundary": "Do not merge with Shadbala/AV truth matrix until unit and bindu rules match." + }, + { + "field_family": "strengths", + "local_source_hint": "jyotishganit/components/strengths.py", + "target_fields": [ + "Shadbala", + "component_strengths" + ], + "closure_status": "missing_in_probe_needs_formula_variant_attribution", + "claim_boundary": "Known high-rigor Shadbala component mismatch; observation only." + } + ], + "boundary": "Queue gives next evidence owner per field. It does not resolve the 60 mismatch rows by itself.", + "latest_probe": "references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json", + "latest_local_comparison": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json", + "latest_mismatch_attribution": "references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json" +} diff --git a/references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json b/references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json new file mode 100644 index 00000000..955da92c --- /dev/null +++ b/references/oracle/jyotishganit_field_probe_steve_jobs_2026_07_19.json @@ -0,0 +1,539 @@ +{ + "boundary": "Raw/hash observation only. Missing Shadbala field or matching signs do not prove formula truth or production timing readiness.", + "claim_status": "observation_only", + "coverage": { + "BAV_SAV": true, + "D10": true, + "D2": true, + "D4": true, + "D9": true, + "Shadbala": false, + "panchanga": true, + "Shadbala_object_surface": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json" + }, + "created_at": "2026-07-19", + "engine": { + "local_path": "references/open_source_sources/jyotishganit", + "name": "jyotishganit" + }, + "production_tuning_allowed": false, + "raw_hash": "4c2356efedf61e1b6736754a754ba76fe0cf9d6b43050f1f8367a919a2b64cd0", + "request": { + "datetime": "1955-02-24T19:15:00", + "latitude": 37.3382, + "location": "San Francisco, CA", + "longitude": -122.0383, + "name": "Steve Jobs public", + "timezone": -8.0 + }, + "schema_fingerprint": { + "ashtakavarga": { + "@type": "str", + "jupiterBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "marsBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "mercuryBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "moonBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "saturnBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "sav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "sunBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + }, + "venusBhav": { + "Aquarius": "int", + "Aries": "int", + "Cancer": "int", + "Capricorn": "int", + "Gemini": "int", + "Leo": "int", + "Libra": "int", + "Pisces": "int", + "Sagittarius": "int", + "Scorpio": "int", + "Taurus": "int", + "Virgo": "int" + } + }, + "panchanga": { + "@type": "str", + "karana": "str", + "nakshatra": "str", + "tithi": "str", + "vaara": "str", + "yoga": "str" + }, + "shadbala": "NoneType", + "strengths": "NoneType", + "varga_sign_table": { + "D10": { + "ascendant_sign": "str", + "planet_signs": [ + { + "d1HousePlacement": "int", + "planet": "str", + "sign": "str" + } + ], + "status": "str" + }, + "D2": { + "ascendant_sign": "str", + "planet_signs": [ + { + "d1HousePlacement": "int", + "planet": "str", + "sign": "str" + } + ], + "status": "str" + }, + "D4": { + "ascendant_sign": "str", + "planet_signs": [ + { + "d1HousePlacement": "int", + "planet": "str", + "sign": "str" + } + ], + "status": "str" + }, + "D9": { + "ascendant_sign": "str", + "planet_signs": [ + { + "d1HousePlacement": "int", + "planet": "str", + "sign": "str" + } + ], + "status": "str" + } + } + }, + "scope": "jyotishganit_field_probe", + "selected_hash": "4709b8ade84efdea4d0a67c15f3e32cea516a5aa2e8abe3885578feda20cb3f4", + "selected_raw": { + "ashtakavarga": { + "@type": "Ashtakavarga", + "jupiterBhav": { + "Aquarius": 5, + "Aries": 7, + "Cancer": 3, + "Capricorn": 6, + "Gemini": 3, + "Leo": 4, + "Libra": 4, + "Pisces": 3, + "Sagittarius": 4, + "Scorpio": 5, + "Taurus": 5, + "Virgo": 7 + }, + "marsBhav": { + "Aquarius": 1, + "Aries": 4, + "Cancer": 4, + "Capricorn": 4, + "Gemini": 4, + "Leo": 3, + "Libra": 4, + "Pisces": 2, + "Sagittarius": 1, + "Scorpio": 5, + "Taurus": 7, + "Virgo": 0 + }, + "mercuryBhav": { + "Aquarius": 2, + "Aries": 5, + "Cancer": 4, + "Capricorn": 8, + "Gemini": 5, + "Leo": 4, + "Libra": 6, + "Pisces": 3, + "Sagittarius": 5, + "Scorpio": 5, + "Taurus": 5, + "Virgo": 2 + }, + "moonBhav": { + "Aquarius": 3, + "Aries": 4, + "Cancer": 2, + "Capricorn": 5, + "Gemini": 4, + "Leo": 6, + "Libra": 3, + "Pisces": 5, + "Sagittarius": 5, + "Scorpio": 2, + "Taurus": 5, + "Virgo": 5 + }, + "saturnBhav": { + "Aquarius": 3, + "Aries": 1, + "Cancer": 0, + "Capricorn": 3, + "Gemini": 3, + "Leo": 6, + "Libra": 4, + "Pisces": 3, + "Sagittarius": 3, + "Scorpio": 5, + "Taurus": 5, + "Virgo": 3 + }, + "sav": { + "Aquarius": 22, + "Aries": 28, + "Cancer": 19, + "Capricorn": 35, + "Gemini": 28, + "Leo": 30, + "Libra": 31, + "Pisces": 24, + "Sagittarius": 27, + "Scorpio": 32, + "Taurus": 37, + "Virgo": 24 + }, + "sunBhav": { + "Aquarius": 3, + "Aries": 3, + "Cancer": 3, + "Capricorn": 4, + "Gemini": 4, + "Leo": 3, + "Libra": 6, + "Pisces": 2, + "Sagittarius": 4, + "Scorpio": 7, + "Taurus": 7, + "Virgo": 2 + }, + "venusBhav": { + "Aquarius": 5, + "Aries": 4, + "Cancer": 3, + "Capricorn": 5, + "Gemini": 5, + "Leo": 4, + "Libra": 4, + "Pisces": 6, + "Sagittarius": 5, + "Scorpio": 3, + "Taurus": 3, + "Virgo": 5 + } + }, + "panchanga": { + "@type": "Panchanga", + "karana": "Gara", + "nakshatra": "Uttara Bhadrapada", + "tithi": "Shukla Tritiya", + "vaara": "Thursday", + "yoga": "Shubha" + }, + "shadbala": null, + "strengths": null, + "varga_sign_table": { + "D10": { + "ascendant_sign": "Taurus", + "planet_signs": [ + { + "d1HousePlacement": 11, + "planet": "Jupiter", + "sign": "Pisces" + }, + { + "d1HousePlacement": 11, + "planet": "Ketu", + "sign": "Leo" + }, + { + "d1HousePlacement": 9, + "planet": "Mars", + "sign": "Taurus" + }, + { + "d1HousePlacement": 6, + "planet": "Mercury", + "sign": "Aries" + }, + { + "d1HousePlacement": 8, + "planet": "Moon", + "sign": "Pisces" + }, + { + "d1HousePlacement": 5, + "planet": "Rahu", + "sign": "Aquarius" + }, + { + "d1HousePlacement": 3, + "planet": "Saturn", + "sign": "Cancer" + }, + { + "d1HousePlacement": 7, + "planet": "Sun", + "sign": "Gemini" + }, + { + "d1HousePlacement": 5, + "planet": "Venus", + "sign": "Virgo" + } + ], + "status": "present" + }, + "D2": { + "ascendant_sign": "Cancer", + "planet_signs": [ + { + "d1HousePlacement": 11, + "planet": "Jupiter", + "sign": "Cancer" + }, + { + "d1HousePlacement": 11, + "planet": "Ketu", + "sign": "Leo" + }, + { + "d1HousePlacement": 9, + "planet": "Mars", + "sign": "Leo" + }, + { + "d1HousePlacement": 6, + "planet": "Mercury", + "sign": "Leo" + }, + { + "d1HousePlacement": 8, + "planet": "Moon", + "sign": "Cancer" + }, + { + "d1HousePlacement": 5, + "planet": "Rahu", + "sign": "Leo" + }, + { + "d1HousePlacement": 3, + "planet": "Saturn", + "sign": "Cancer" + }, + { + "d1HousePlacement": 7, + "planet": "Sun", + "sign": "Leo" + }, + { + "d1HousePlacement": 5, + "planet": "Venus", + "sign": "Cancer" + } + ], + "status": "present" + }, + "D4": { + "ascendant_sign": "Taurus", + "planet_signs": [ + { + "d1HousePlacement": 11, + "planet": "Jupiter", + "sign": "Pisces" + }, + { + "d1HousePlacement": 11, + "planet": "Ketu", + "sign": "Virgo" + }, + { + "d1HousePlacement": 9, + "planet": "Mars", + "sign": "Aries" + }, + { + "d1HousePlacement": 6, + "planet": "Mercury", + "sign": "Cancer" + }, + { + "d1HousePlacement": 8, + "planet": "Moon", + "sign": "Gemini" + }, + { + "d1HousePlacement": 5, + "planet": "Rahu", + "sign": "Pisces" + }, + { + "d1HousePlacement": 3, + "planet": "Saturn", + "sign": "Cancer" + }, + { + "d1HousePlacement": 7, + "planet": "Sun", + "sign": "Taurus" + }, + { + "d1HousePlacement": 5, + "planet": "Venus", + "sign": "Virgo" + } + ], + "status": "present" + }, + "D9": { + "ascendant_sign": "Sagittarius", + "planet_signs": [ + { + "d1HousePlacement": 11, + "planet": "Jupiter", + "sign": "Gemini" + }, + { + "d1HousePlacement": 11, + "planet": "Ketu", + "sign": "Sagittarius" + }, + { + "d1HousePlacement": 9, + "planet": "Mars", + "sign": "Taurus" + }, + { + "d1HousePlacement": 6, + "planet": "Mercury", + "sign": "Cancer" + }, + { + "d1HousePlacement": 8, + "planet": "Moon", + "sign": "Scorpio" + }, + { + "d1HousePlacement": 5, + "planet": "Rahu", + "sign": "Gemini" + }, + { + "d1HousePlacement": 3, + "planet": "Saturn", + "sign": "Gemini" + }, + { + "d1HousePlacement": 7, + "planet": "Sun", + "sign": "Capricorn" + }, + { + "d1HousePlacement": 5, + "planet": "Venus", + "sign": "Sagittarius" + } + ], + "status": "present" + } + } + }, + "status": "complete", + "truth_matrix_allowed": false +} diff --git a/references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json b/references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json new file mode 100644 index 00000000..1077a989 --- /dev/null +++ b/references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json @@ -0,0 +1,40 @@ +{ + "boundary": "This queue classifies mismatch work; it does not settle formula truth.", + "claim_status": "partial", + "created_at": "2026-07-19", + "production_tuning_allowed": false, + "rows": [ + { + "attribution_status": "queued", + "body": "Ketu", + "claim_boundary": "Do not tune local formula to jyotishganit until source formula, ayanamsa, node mode, and schema aliases are pinned.", + "jyotishganit_sign": "Leo", + "local_sign": "Virgo", + "next_evidence_owner": "node_mode_mapping", + "probable_reason": "node_mode_or_shadow_planet_handling", + "section": "D10", + "status": "mismatch" + }, + { + "attribution_status": "queued", + "body": "Rahu", + "claim_boundary": "Do not tune local formula to jyotishganit until source formula, ayanamsa, node mode, and schema aliases are pinned.", + "jyotishganit_sign": "Aquarius", + "local_sign": "Pisces", + "next_evidence_owner": "node_mode_mapping", + "probable_reason": "node_mode_or_shadow_planet_handling", + "section": "D10", + "status": "mismatch" + } + ], + "scope": "jyotishganit_mismatch_attribution_queue", + "source_comparison": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json", + "status": "queue_ready", + "summary": { + "by_reason": { + "node_mode_or_shadow_planet_handling": 2 + }, + "mismatch_count": 2 + }, + "truth_matrix_allowed": false +} diff --git a/references/oracle/jyotishganit_node_source_attribution_2026_07_19.json b/references/oracle/jyotishganit_node_source_attribution_2026_07_19.json new file mode 100644 index 00000000..7575e1f2 --- /dev/null +++ b/references/oracle/jyotishganit_node_source_attribution_2026_07_19.json @@ -0,0 +1,65 @@ +{ + "scope": "jyotishganit_node_source_attribution", + "created_at": "2026-07-19", + "status": "attributed", + "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", + "remaining_mismatches": ["D10 Rahu", "D10 Ketu"], + "local_engine": { + "ephemeris": "Swiss Ephemeris", + "ayanamsa": "Lahiri", + "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" + } + }, + "local_true_node_control": { + "node_mode": "true", + "Rahu": { + "d1_sign": "Sagittarius", + "degree_in_sign": 10.180747656 + }, + "Ketu": { + "d1_sign": "Gemini", + "degree_in_sign": 10.180747656 + }, + "control_result": "true node moves farther from jyotishganit 8.6539°, so mismatch is not solved by switching local mean→true node." + }, + "jyotishganit_engine": { + "ephemeris": "Skyfield/JPL DE421", + "ayanamsa": "True Chitra Paksha from Spica", + "node_mode": "mean_lunar_node_formula", + "source_hint": "references/open_source_sources/jyotishganit/jyotishganit/core/astronomical.py", + "source_formula": "rahu_tropical = (125.04452 - 1934.136261 * T) % 360; sidereal = tropical - true_chitra_ayanamsa", + "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" + } + }, + "attribution": { + "formula_delta": "not_d10_formula_shape", + "primary_delta": "node_longitude_source_plus_ayanamsa_boundary_crossing", + "boundary_degree": 9.0, + "effect": "A ~0.62° D1 node longitude delta crosses the 9° D10 part boundary, changing D10 sign by one." + }, + "boundary": "Do not tune local nodes to jyotishganit unless the project explicitly switches ephemeris/ayanamsa/node-source contract." +} diff --git a/references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json b/references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json new file mode 100644 index 00000000..d8db2a80 --- /dev/null +++ b/references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json @@ -0,0 +1,315 @@ +{ + "boundary": "Sign-level comparison only. Mismatch rows require field-level formula/ayanamsa/node/rounding attribution; do not majority-vote truth.", + "claim_status": "observation_only", + "comparison_hash": "76558f3067672a5fcaf8d587ae5f6957d1b6eedff066d3aa244ae76b15cbfbe0", + "coverage": { + "BAV_SAV_jyotishganit": true, + "Shadbala_jyotishganit": false, + "panchanga_jyotishganit": true + }, + "created_at": "2026-07-19", + "production_tuning_allowed": false, + "request": { + "day": 24, + "hour": 19, + "latitude": 37.3382, + "location": "San Francisco, CA", + "longitude": -122.0383, + "minute": 15, + "month": 2, + "name": "Steve Jobs public", + "output": "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json", + "timezone": -8.0, + "year": 1955 + }, + "rows": [ + { + "body": "Ascendant", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D2", + "status": "match" + }, + { + "body": "Jupiter", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D2", + "status": "match" + }, + { + "body": "Ketu", + "jyotishganit_sign": "Leo", + "local_sign": "Leo", + "section": "D2", + "status": "match" + }, + { + "body": "Mars", + "jyotishganit_sign": "Leo", + "local_sign": "Leo", + "section": "D2", + "status": "match" + }, + { + "body": "Mercury", + "jyotishganit_sign": "Leo", + "local_sign": "Leo", + "section": "D2", + "status": "match" + }, + { + "body": "Moon", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D2", + "status": "match" + }, + { + "body": "Rahu", + "jyotishganit_sign": "Leo", + "local_sign": "Leo", + "section": "D2", + "status": "match" + }, + { + "body": "Saturn", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D2", + "status": "match" + }, + { + "body": "Sun", + "jyotishganit_sign": "Leo", + "local_sign": "Leo", + "section": "D2", + "status": "match" + }, + { + "body": "Venus", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D2", + "status": "match" + }, + { + "body": "Ascendant", + "jyotishganit_sign": "Taurus", + "local_sign": "Taurus", + "section": "D4", + "status": "match" + }, + { + "body": "Jupiter", + "jyotishganit_sign": "Pisces", + "local_sign": "Pisces", + "section": "D4", + "status": "match" + }, + { + "body": "Ketu", + "jyotishganit_sign": "Virgo", + "local_sign": "Virgo", + "section": "D4", + "status": "match" + }, + { + "body": "Mars", + "jyotishganit_sign": "Aries", + "local_sign": "Aries", + "section": "D4", + "status": "match" + }, + { + "body": "Mercury", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D4", + "status": "match" + }, + { + "body": "Moon", + "jyotishganit_sign": "Gemini", + "local_sign": "Gemini", + "section": "D4", + "status": "match" + }, + { + "body": "Rahu", + "jyotishganit_sign": "Pisces", + "local_sign": "Pisces", + "section": "D4", + "status": "match" + }, + { + "body": "Saturn", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D4", + "status": "match" + }, + { + "body": "Sun", + "jyotishganit_sign": "Taurus", + "local_sign": "Taurus", + "section": "D4", + "status": "match" + }, + { + "body": "Venus", + "jyotishganit_sign": "Virgo", + "local_sign": "Virgo", + "section": "D4", + "status": "match" + }, + { + "body": "Ascendant", + "jyotishganit_sign": "Sagittarius", + "local_sign": "Sagittarius", + "section": "D9", + "status": "match" + }, + { + "body": "Jupiter", + "jyotishganit_sign": "Gemini", + "local_sign": "Gemini", + "section": "D9", + "status": "match" + }, + { + "body": "Ketu", + "jyotishganit_sign": "Sagittarius", + "local_sign": "Sagittarius", + "section": "D9", + "status": "match" + }, + { + "body": "Mars", + "jyotishganit_sign": "Taurus", + "local_sign": "Taurus", + "section": "D9", + "status": "match" + }, + { + "body": "Mercury", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D9", + "status": "match" + }, + { + "body": "Moon", + "jyotishganit_sign": "Scorpio", + "local_sign": "Scorpio", + "section": "D9", + "status": "match" + }, + { + "body": "Rahu", + "jyotishganit_sign": "Gemini", + "local_sign": "Gemini", + "section": "D9", + "status": "match" + }, + { + "body": "Saturn", + "jyotishganit_sign": "Gemini", + "local_sign": "Gemini", + "section": "D9", + "status": "match" + }, + { + "body": "Sun", + "jyotishganit_sign": "Capricorn", + "local_sign": "Capricorn", + "section": "D9", + "status": "match" + }, + { + "body": "Venus", + "jyotishganit_sign": "Sagittarius", + "local_sign": "Sagittarius", + "section": "D9", + "status": "match" + }, + { + "body": "Ascendant", + "jyotishganit_sign": "Taurus", + "local_sign": "Taurus", + "section": "D10", + "status": "match" + }, + { + "body": "Jupiter", + "jyotishganit_sign": "Pisces", + "local_sign": "Pisces", + "section": "D10", + "status": "match" + }, + { + "body": "Ketu", + "jyotishganit_sign": "Leo", + "local_sign": "Virgo", + "section": "D10", + "status": "mismatch" + }, + { + "body": "Mars", + "jyotishganit_sign": "Taurus", + "local_sign": "Taurus", + "section": "D10", + "status": "match" + }, + { + "body": "Mercury", + "jyotishganit_sign": "Aries", + "local_sign": "Aries", + "section": "D10", + "status": "match" + }, + { + "body": "Moon", + "jyotishganit_sign": "Pisces", + "local_sign": "Pisces", + "section": "D10", + "status": "match" + }, + { + "body": "Rahu", + "jyotishganit_sign": "Aquarius", + "local_sign": "Pisces", + "section": "D10", + "status": "mismatch" + }, + { + "body": "Saturn", + "jyotishganit_sign": "Cancer", + "local_sign": "Cancer", + "section": "D10", + "status": "match" + }, + { + "body": "Sun", + "jyotishganit_sign": "Gemini", + "local_sign": "Gemini", + "section": "D10", + "status": "match" + }, + { + "body": "Venus", + "jyotishganit_sign": "Virgo", + "local_sign": "Virgo", + "section": "D10", + "status": "match" + } + ], + "scope": "jyotishganit_vs_local_field_comparison", + "status": "mismatch", + "summary": { + "match_count": 38, + "mismatch_count": 2, + "row_count": 40 + }, + "truth_matrix_allowed": false +} diff --git a/references/oracle/panchanga_api_observation_manifest_2026_07_19.json b/references/oracle/panchanga_api_observation_manifest_2026_07_19.json new file mode 100644 index 00000000..fccd8810 --- /dev/null +++ b/references/oracle/panchanga_api_observation_manifest_2026_07_19.json @@ -0,0 +1,23 @@ +{ + "scope": "panchanga_api_observation_manifest", + "created_at": "2026-07-19", + "status": "docs_source_registered", + "claim_status": "observation_only", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "local_project": "references/open_source_sources/panchanga_api", + "source_files": [ + "references/open_source_sources/panchanga_api/README.md", + "references/open_source_sources/panchanga_api/MCP.md", + "references/open_source_sources/panchanga_api/SKILL.md", + "references/open_source_sources/panchanga_api/LICENSE" + ], + "available_runtime_code": false, + "observation_use": [ + "Panchanga/Muhurta API contract vocabulary", + "tool boundary comparison", + "factor checklist only" + ], + "blocked_runtime_adapter_reason": "Local snapshot contains documentation/skill metadata only; no executable panchanga_api source module is present.", + "boundary": "Use as docs/contract reference only. Do not claim independent numeric Panchanga or Muhurta parity from this source." +} diff --git a/references/oracle/permissive_oss_worked_example_registry_2026_07_19.json b/references/oracle/permissive_oss_worked_example_registry_2026_07_19.json new file mode 100644 index 00000000..3af6290c --- /dev/null +++ b/references/oracle/permissive_oss_worked_example_registry_2026_07_19.json @@ -0,0 +1,105 @@ +{ + "scope": "permissive_oss_worked_example_registry", + "created_at": "2026-07-19", + "status": "observation_sources_registered", + "claim_status": "observation_only", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "boundary": "Permissive/open sources and public worked-example candidates may be used for adapters, probes, and gap discovery only. They do not upgrade KP cusp, Muhurta verdict, Shadbala/AV component parity, or precise timing claims until raw artifacts, hashes, formula provenance, and independent validation pass.", + "license_policy": { + "allowed_for_code_reuse": ["MIT", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "ISC"], + "quarantine_or_adapter_only": ["AGPL", "GPL", "proprietary", "no_license", "unknown"], + "copy_policy": "Do not copy implementation unless license, commit, package hash, and source file are fixed. Prefer adapter/probe first." + }, + "candidate_projects": [ + { + "project_id": "rajsanjib_jyotish_flutter_library", + "name": "jyotish / jyotish-flutter-library", + "url": "https://github.com/rajsanjib/jyotish-flutter-library", + "package_url": "https://pub.dev/packages/jyotish/versions/1.0.1", + "reported_license": "MIT", + "language": "Dart/Flutter", + "reported_capabilities": ["Swiss Ephemeris", "Lahiri ayanamsa", "nakshatra", "birth chart analysis"], + "reuse_mode": "adapter_probe_candidate", + "local_code_present": false, + "next_probe": "Pin Git commit and pub package hash; inspect API schema; compare D1/nakshatra only as observation." + }, + { + "project_id": "vedastro_python", + "name": "VedAstro.Python", + "url": "https://github.com/VedAstro/VedAstro.Python", + "docs_url": "https://vedastro.org/PythonVedicAstrologyLibrary.html", + "reported_license": "MIT", + "language": "Python", + "reported_capabilities": ["Python wrapper", "VedAstro API calls", "596 calculations"], + "reuse_mode": "api_wrapper_contract_probe_only", + "local_code_present": false, + "next_probe": "Pin PyPI/wheel hash and method list; do not use hosted output as truth until deployment identity is resolved." + }, + { + "project_id": "roxyapi_astrology_api_benchmark", + "name": "RoxyAPI astrology-api-benchmark", + "url": "https://github.com/RoxyAPI/astrology-api-benchmark", + "reported_license": "MIT", + "language": "benchmark", + "reported_capabilities": ["JPL Horizons DE441 benchmark", "210 planet positions", "21 charts"], + "reuse_mode": "ephemeris_benchmark_candidate", + "local_code_present": false, + "next_probe": "Pin commit and benchmark fixture hashes; use for independent ephemeris mode only, not Jyotish formula truth." + }, + { + "project_id": "roxyapi_jyotish_vedic_astrology_app", + "name": "RoxyAPI jyotish-vedic-astrology-app", + "url": "https://github.com/RoxyAPI/jyotish-vedic-astrology-app", + "reported_license": "unknown_from_search_result", + "language": "Next.js/TypeScript", + "reported_capabilities": ["kundli", "daily Panchang", "Vimshottari Dasha", "Ashtakoot", "dosha", "transits"], + "reuse_mode": "ui_contract_reference_only_until_license_verified", + "local_code_present": true, + "local_path_hint": "references/open_source_sources/vedic-astro-skills", + "next_probe": "Verify repository LICENSE and API contract; do not import UI/runtime into research truth layer." + }, + { + "project_id": "northtara_jyotishganit", + "name": "jyotishganit", + "url": "https://github.com/northtara/jyotishganit", + "reported_license": "permissive_candidate_already_local", + "language": "Python", + "reported_capabilities": ["birth chart", "panchanga", "JPL ephemeris claims"], + "reuse_mode": "existing_external_engine_observation", + "local_code_present": true, + "local_path_hint": "references/open_source_sources/jyotishganit", + "next_probe": "Continue same-chart field comparison; keep mismatch rows method-attributed." + }, + { + "project_id": "vedicastro_pypi_kp", + "name": "VedicAstro PyPI", + "url": "https://pypi.org/project/vedicastro/", + "reported_license": "requires_local_metadata_verification", + "language": "Python", + "reported_capabilities": ["KP system", "planetary positions", "Swiss Ephemeris via flatlib/pyswisseph"], + "reuse_mode": "kp_table_and_cusp_probe_candidate", + "local_code_present": true, + "local_path_hint": "references/open_source_sources/VedicAstro", + "next_probe": "Locate/fix KP sub-lord table hash if present; exact cusp still requires worked example." + } + ], + "worked_example_queues": [ + { + "queue_id": "kp_cusp_public_worked_examples", + "target_packet": "references/oracle/kp_cusp_worked_example_oracle_queue_2026_07_19.json", + "needed_fields": ["source_url", "birth_or_query_datetime", "location", "ayanamsa", "house_system", "cusp_longitude", "star_lord", "sub_lord", "sub_sub_lord"], + "status": "awaiting_public_numeric_examples" + }, + { + "queue_id": "muhurta_factor_public_worked_examples", + "needed_fields": ["source_url", "date", "location", "sunrise", "sunset", "tarabala", "chandrabala", "rahu_kalam", "abhijit_muhurta", "rule_weighting"], + "status": "awaiting_public_numeric_examples" + }, + { + "queue_id": "shadbala_av_component_worked_examples", + "needed_fields": ["source_url", "case_input", "component_name", "formula_variant", "unit", "expected_value"], + "status": "awaiting_component_numeric_examples" + } + ] +} diff --git a/references/oracle/product_skill_source_boundary_2026_07_19.json b/references/oracle/product_skill_source_boundary_2026_07_19.json new file mode 100644 index 00000000..a451b721 --- /dev/null +++ b/references/oracle/product_skill_source_boundary_2026_07_19.json @@ -0,0 +1,23 @@ +{ + "scope": "product_skill_source_boundary", + "created_at": "2026-07-19", + "status": "registered_reference_only", + "claim_status": "reference_only", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "sources": [ + { + "project_id": "rishi-ai-mcp", + "local_path": "references/open_source_sources/rishi-ai-mcp", + "role": "skill_prompt_product_flow_reference", + "truth_layer_allowed": false + }, + { + "project_id": "vedic-astro-skills", + "local_path": "references/open_source_sources/vedic-astro-skills", + "role": "skill_prompt_product_flow_reference", + "truth_layer_allowed": false + } + ], + "boundary": "These sources may inform UX/skill wording and workflow taxonomy only. They must not enter numeric oracle, formula truth, or production tuning gates." +} diff --git a/references/oracle/profile_schema_contract_2026_07_19.json b/references/oracle/profile_schema_contract_2026_07_19.json new file mode 100644 index 00000000..00757c49 --- /dev/null +++ b/references/oracle/profile_schema_contract_2026_07_19.json @@ -0,0 +1,90 @@ +{ + "scope": "profile_schema_contract", + "created_at": "2026-07-19", + "status": "research_profile_schema_v1", + "runtime_policy": "research_local_storage_only", + "supabase_required": false, + "credits_or_billing_allowed": false, + "privacy_boundary": "Research repo stores profile data locally only; no Supabase, payment, credits, or commercial account entitlement dependency.", + "required_fields": [ + { + "name": "display_name", + "type": "string", + "purpose": "user-facing salutation and local chart library label" + }, + { + "name": "birth_date", + "type": "YYYY-MM-DD", + "purpose": "core chart calculation" + }, + { + "name": "birth_time", + "type": "HH:MM[:SS]", + "purpose": "core chart calculation; precision affects Lagna, varga, Dasha boundary and rectification confidence" + }, + { + "name": "birth_place", + "type": "string", + "purpose": "human-readable birthplace" + }, + { + "name": "timezone", + "type": "UTC offset or IANA timezone", + "purpose": "local time conversion" + }, + { + "name": "latitude", + "type": "number", + "purpose": "core chart houses, sunrise/sunset, Kala and local calculations" + }, + { + "name": "longitude", + "type": "number", + "purpose": "core chart houses, sunrise/sunset, Kala and local calculations" + } + ], + "optional_interpretation_fields": [ + { + "name": "gender", + "allowed_values": ["male", "female", "nonbinary", "prefer_not_to_say", null], + "default": null, + "affects_chart_math": false, + "purpose": "optional traditional spouse-significator weighting and wording only" + }, + { + "name": "relationship_role_mode", + "allowed_values": ["neutral_partner_a_b", "traditional_gendered"], + "default": "neutral_partner_a_b", + "affects_chart_math": false, + "purpose": "choose neutral relationship language by default; traditional gendered layer only when requested" + }, + { + "name": "partner_interest", + "allowed_values": ["male", "female", "any", "unspecified"], + "default": "unspecified", + "affects_chart_math": false, + "purpose": "relationship interpretation context only" + } + ], + "calculation_boundary": { + "gender_changes_core_chart": false, + "gender_changes_dasha": false, + "gender_changes_shadbala_av": false, + "gender_changes_varga": false, + "gender_changes_yoga": false + }, + "allowed_gender_use_domains": [ + "relationship_spouse_interpretation", + "marriage_timing_weighting", + "children_birth_context_language" + ], + "forbidden_gender_use_domains": [ + "core_chart_math", + "career_prediction", + "wealth_prediction", + "medical_or_fertility_guarantee", + "personality_stereotyping" + ], + "interpretation_boundary_contract": "references/oracle/gender_interpretation_contract_2026_07_19.json", + "technique_registry": "references/relationship_gender_role_technique_registry_2026_07_19.json" +} diff --git a/references/oracle/public_worked_example_queue_2026_07_19.json b/references/oracle/public_worked_example_queue_2026_07_19.json new file mode 100644 index 00000000..73bd4383 --- /dev/null +++ b/references/oracle/public_worked_example_queue_2026_07_19.json @@ -0,0 +1,91 @@ +{ + "scope": "public_worked_example_queue", + "created_at": "2026-07-19", + "status": "candidate_sources_registered", + "claim_status": "open_queue", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "boundary": "URLs are candidate public references only. A source becomes oracle_ready only after numeric inputs, method settings, expected values, citation, and replay artifact hash are captured.", + "queues": [ + { + "topic": "KP exact cusp star/sub/sub-sub lord", + "status": "needs_numeric_worked_example", + "candidate_search_queries": [ + "KP astrology cusp sub lord worked example", + "KP astrology cusp sub sub lord example", + "Krishnamurti Paddhati cusp sub lord example" + ], + "required_fields": [ + "source_url", + "datetime", + "location", + "ayanamsa", + "house_system", + "cusp_longitude", + "star_lord", + "sub_lord", + "sub_sub_lord" + ], + "candidate_urls": [ + "https://www.astrosage.com/kp/cuspal-sub-lord.asp", + "https://kpastrology.astrosage.com/kp-horary-astrology.asp", + "https://www.aryabhatt.com/astrology/krishnamurti-paddhati/kp-sub-lords-table" + ], + "oracle_ready": false, + "runtime_observation_available": true, + "blocking_reason": "Runtime house cusp raw exists, but no public numeric worked example with exact input/settings has been captured." + }, + { + "topic": "Muhurta Tarabala/Chandrabala/Rahu Kalam/Abhijit", + "status": "needs_numeric_worked_example", + "candidate_search_queries": [ + "Tarabala Chandrabala worked example", + "Rahu Kalam Abhijit Muhurta worked example", + "Muhurta Panchanga example Tarabala Chandrabala" + ], + "required_fields": [ + "source_url", + "date", + "location", + "sunrise", + "sunset", + "birth_moon_nakshatra", + "tarabala", + "chandrabala", + "rahu_kalam", + "abhijit" + ], + "candidate_urls": [ + "https://www.mypanchang.com/tarabalam.php", + "https://www.jyotish.com/abhi-muhurta.html", + "https://www.drikpanchang.com/muhurat/rahu-kalam.html" + ], + "oracle_ready": false + }, + { + "topic": "Shadbala Virupa and Ashtakavarga component", + "status": "needs_component_numeric_worked_example", + "candidate_search_queries": [ + "Shadbala Virupa worked example", + "Ashtakavarga bindu worked example", + "Bhinna Ashtakavarga SAV worked example" + ], + "required_fields": [ + "source_url", + "case_input", + "component_name", + "formula_variant", + "unit", + "expected_value" + ], + "candidate_urls": [ + "https://www.astrojyoti.com/shadbala.htm", + "https://www.astrojyoti.com/ashtakavarga.htm", + "https://www.barbarapijan.com/bpa/Graha/ShadBala.htm" + ], + "oracle_ready": false + } + ], + "candidate_source_status": "candidate_urls_collected_not_oracle_ready", + "latest_runtime_observation": "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json" +} diff --git a/references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json b/references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json new file mode 100644 index 00000000..62b92c77 --- /dev/null +++ b/references/oracle/relationship_combinations_rule_family_registry_2026_07_19.json @@ -0,0 +1,46 @@ +{ + "scope": "relationship_combinations_rule_family_registry", + "created_at": "2026-07-19", + "status": "rule_family_registry_v1", + "production_tuning_allowed": false, + "copyright_boundary": "labels_and_short_notes_only_no_fulltext", + "source_manifest": "references/source_ingestion_manual_classifications_2026_07_17.json", + "source_images": ["260716/IMG_3506.PNG", "260716/IMG_3507.PNG", "占星印度1/IMG_3229.JPG", "占星印度1/IMG_3230.JPG"], + "claim_boundary": "Relationship-combination screenshot families must remain source/rule registry entries until separated, sourced, tested, and cross-checked with D1/D9/UL/DK/Dasha context.", + "rule_families": [ + { + "family_id": "upapada_arudha_spouse_rules", + "status": "source_family_identified", + "local_overlap": ["scripts/jaimini.py", "relationship_gender_role_technique_registry_2026_07_19.json"], + "observed_scope": "Upapada, Pada/Arudha and spouse-related relationship indications.", + "required_evidence": "Map each rule to formula/source line, inputs, exception rules, and local output field." + }, + { + "family_id": "children_relationship_combinations", + "status": "source_family_identified", + "local_overlap": ["D7/Saptamsa support via scripts/varga.py", "Putrakaraka via Jaimini"], + "observed_scope": "Children timing/relationship combinations from screenshot notes.", + "required_evidence": "Separate children rules from spouse rules; require D7, 5th house, Jupiter, Putrakaraka and Dasha context." + }, + { + "family_id": "hostility_sixth_house_mars_rules", + "status": "source_family_identified", + "local_overlap": ["mangal_dosha", "functional benefic/malefic", "relationship risk layers"], + "observed_scope": "Mars and sixth-house hostility or conflict combinations.", + "required_evidence": "Define whether rule is natal relationship conflict, litigation/hostility, Kuja variant, or functional malefic rule." + }, + { + "family_id": "house_lord_malefic_relationship_rules", + "status": "source_family_identified", + "local_overlap": ["functional benefic/malefic", "D1/D9 relationship workflow"], + "observed_scope": "House-lord and malefic combination rules affecting relationship outcomes.", + "required_evidence": "Break into house-lord, graha, aspect, dignity, D9 and Dasha conditions before runtime use." + } + ], + "required_next_steps": [ + "Create source packet for each rule family.", + "Deduplicate against existing Jaimini/Upapada/D9/Ashtakoot relationship stack.", + "Add tests proving these rules are supplemental, not single-factor truth.", + "Attach claim gate: no deterministic marriage/children outcome from one combination." + ] +} diff --git a/references/oracle/screenshot_technique_gap_audit_2026_07_19.json b/references/oracle/screenshot_technique_gap_audit_2026_07_19.json new file mode 100644 index 00000000..8b00abbc --- /dev/null +++ b/references/oracle/screenshot_technique_gap_audit_2026_07_19.json @@ -0,0 +1,62 @@ +{ + "scope": "screenshot_technique_gap_audit", + "created_at": "2026-07-19", + "source_manifest": "references/source_ingestion_manual_classifications_2026_07_17.json", + "status": "gap_audit_v1", + "production_tuning_allowed": false, + "copyright_boundary": "labels_and_short_notes_only_no_fulltext", + "boundary": "This audit compares manually classified screenshot formula families against the skill technique registry. It does not quote or republish source screenshots.", + "summary": { + "classified_image_count": 34, + "formula_family_identified_count": 10, + "manual_unreadable_count": 23, + "manual_no_formula_verified_count": 1, + "missing_registry_family_count": 2 + }, + "covered_or_partial_families": [ + { + "formula_id": "arudha", + "source_images": ["260716/IMG_3503.PNG"], + "registry_matches": ["arudha_lagna"], + "status": "covered_or_partial", + "next_action": "link screenshot source family to existing Arudha/Jaimini source packet" + }, + { + "formula_id": "jaimini", + "source_images": ["260716/IMG_3505.PNG"], + "registry_matches": ["jaimini_chara_dasha", "rangacharya_jaimini_variant"], + "status": "covered_or_partial", + "next_action": "map screenshot karaka/divisional-combination notes to Jaimini source packet" + }, + { + "formula_id": "badhaka", + "source_images": ["占星印度1/IMG_3226.JPG"], + "registry_matches": ["badhaka"], + "status": "covered_or_partial", + "next_action": "link Badhaka sign/lord rules to source packet" + } + ], + "missing_registry_families": [ + { + "formula_id": "conception_chart", + "source_images": ["受孕/IMG_3216.JPG", "受孕/IMG_3219.JPG", "受孕/IMG_3221.JPG"], + "observed_family": "Adhana/Niseka conception-chart construction and lagna inference methods", + "registry_matches": [], + "promotion_action": "add_research_only_registry_and_source_packet", + "claim_boundary": "Research-only until classical source, worked example, privacy boundary, and medical/fertility safety gate are complete." + }, + { + "formula_id": "relationship_combinations", + "source_images": ["260716/IMG_3506.PNG", "260716/IMG_3507.PNG", "占星印度1/IMG_3229.JPG", "占星印度1/IMG_3230.JPG"], + "observed_family": "Relationship, spouse, children and hostility combinations involving Arudha/Upapada/Pada/house-lord/malefic rules", + "registry_matches": [], + "promotion_action": "add_relationship_rule_registry", + "claim_boundary": "Must be separated into relationship, children, hostility and Upapada/Arudha rule packets before runtime claims." + } + ], + "unreadable_policy": { + "image_count": 23, + "status": "manual_unreadable", + "next_action": "Do not infer formulas. Reprocess only with better source image or human transcription." + } +} diff --git a/references/oracle/technique_fragment_inventory_2026_07_19.json b/references/oracle/technique_fragment_inventory_2026_07_19.json new file mode 100644 index 00000000..91732592 --- /dev/null +++ b/references/oracle/technique_fragment_inventory_2026_07_19.json @@ -0,0 +1,142 @@ +{ + "scope": "technique_fragment_inventory", + "created_at": "2026-07-19", + "status": "audit_inventory_not_runtime_truth", + "production_tuning_allowed": false, + "copy_policy": "reuse_local_project_code_only_after_current-source audit; external AGPL/proprietary/no-license remains oracle-only", + "boundary": "This inventory identifies local/OSS technique fragments that may already exist outside the current main runtime. It does not claim those techniques are production-ready or externally calibrated.", + "local_fragments": [ + { + "technique_id": "jaimini_chara_karaka", + "system": "vedic", + "found_in": [ + "skills/jyotish-engine-modules/scripts/karaka_calculator.py", + "/Users/wuyongnaren/.workbuddy/backups/jyotish-vedic-astrology-20260711-154109/skills/jyotish-engine-modules/scripts/karaka_calculator.py" + ], + "current_call_status": "not_formally_in_main_runtime", + "reuse_value": "Chara Karaka assignment with BPHS/JH compatibility modes; useful for Darakaraka, Atmakaraka, Putrakaraka, Amatyakaraka and Jaimini relationship/career layers.", + "next_action": "promote_with_tests_and_contract", + "claim_boundary": "Must compare against current scripts/jaimini.py and external Jaimini examples before claim upgrade." + }, + { + "technique_id": "special_lagnas_bhava_hora_ghati", + "system": "vedic", + "found_in": [ + "skills/jyotish-engine-modules/scripts/special_lagnas.py", + "scripts/jaimini.py" + ], + "current_call_status": "partially_in_main_runtime", + "reuse_value": "Bhava Lagna, Hora Lagna, Ghati Lagna and related special ascendants; useful for wealth, power, timing and Adhana/Gulika workflows.", + "next_action": "compare_against_main_implementation", + "claim_boundary": "Need timezone/local-time and formula-source audit before using as high-rigor evidence." + }, + { + "technique_id": "vimsopaka_bala", + "system": "vedic", + "found_in": [ + "skills/jyotish-engine-modules/scripts/vimsopaka_calculator.py" + ], + "current_call_status": "not_formally_in_main_runtime", + "reuse_value": "Divisional dignity weighting across varga groups; useful as a strength layer beyond Shadbala.", + "next_action": "promote_with_tests_and_contract", + "claim_boundary": "Needs varga set, weight table, dignity model and worked example before runtime use." + }, + { + "technique_id": "avastha_states", + "system": "vedic", + "found_in": [ + "skills/jyotish-engine-modules/scripts/avastha_calculator.py" + ], + "current_call_status": "not_formally_in_main_runtime", + "reuse_value": "Baladi/Jagradadi/Diptadi/Shayanadi style planet states; useful as interpretive condition layer.", + "next_action": "promote_with_tests_and_contract", + "claim_boundary": "Interpretation-only until formula and source variants are mapped." + }, + { + "technique_id": "d2_d60_extended_vargas", + "system": "vedic", + "found_in": [ + "skills/jyotish-engine-modules/scripts/divisional_charts_extended.py", + "scripts/varga.py" + ], + "current_call_status": "partially_in_main_runtime", + "reuse_value": "Extended D2-D60 varga mapping; useful for D7, D12, D16, D20, D24, D30, D60 expansion.", + "next_action": "compare_against_main_implementation", + "claim_boundary": "Must not duplicate or override current varga.py without formula/fixture parity." + }, + { + "technique_id": "gochara_event_timing_template", + "system": "vedic", + "found_in": [ + "/tmp/jyotisha-optimize/assets/event_timing_template.md" + ], + "current_call_status": "not_formally_in_main_runtime", + "reuse_value": "Transit trigger checklist for event timing; useful for Gochara + Dasha + Varga scoring design.", + "next_action": "keep_reference_only", + "claim_boundary": "Template is not numeric oracle; use only after source/privacy review." + }, + { + "technique_id": "kp_astrology_reference", + "system": "vedic_kp", + "found_in": [ + "/Users/wuyongnaren/.workbuddy/backups/jyotish-vedic-astrology-20260711-154109/references/kp-astrology-complete-system.md", + "/tmp/jyotisha-commercial-readonly.adiUr0/skills/jyotish-engine-modules/SKILL.md" + ], + "current_call_status": "not_formally_in_main_runtime", + "reuse_value": "KP star lord/sub lord/cusp workflow reference; separate branch from classical Jyotish.", + "next_action": "keep_reference_only", + "claim_boundary": "Needs Placidus/KP cusp, ayanamsa, star/sub-lord oracle and license/privacy audit before integration." + } + ], + "oss_candidates": [ + { + "name": "VedAstro", + "url": "https://github.com/VedAstro/VedAstro", + "license_status": "MIT", + "technique_value": "broad Vedic API/oracle candidate including chart, dasha, panchanga, some specialized methods", + "reuse_boundary": "local source/NuGet can be referenced under MIT; hosted identity remains blocked until build metadata is pinned" + }, + { + "name": "jyotishganit", + "url": "https://github.com/northtara/jyotishganit", + "license_status": "MIT", + "technique_value": "panchanga and Jyotish calculation reference", + "reuse_boundary": "permissive candidate after input/output contract and field parity audit" + }, + { + "name": "PyJHora", + "url": "https://github.com/naturalstupid/PyJHora", + "license_status": "AGPL-3.0", + "technique_value": "large JHora-compatible Jyotish technique surface: varga, dasha, shadbala, tajika, sahams and more", + "reuse_boundary": "black-box oracle/reference only; do not copy implementation into runtime" + }, + { + "name": "Kerykeion", + "url": "https://github.com/g-battaglia/kerykeion", + "license_status": "AGPL-3.0", + "technique_value": "western natal, synastry, transits, returns and relationship score reference", + "reuse_boundary": "oracle/reference only unless AGPL obligations are acceptable" + }, + { + "name": "logicAstroKPCharts", + "url": "https://github.com/logicAstro/logicAstroKPCharts", + "license_status": "must_verify_before_reuse", + "technique_value": "KP chart/cusp/star/sub-lord reference candidate", + "reuse_boundary": "do not copy until license, formulas and input/output contract are verified" + }, + { + "name": "vedicpanchanga / panchangam candidates", + "url": "multiple GitHub projects found by OSS scan", + "license_status": "must_verify_per_repo", + "technique_value": "Muhurta/Panchanga/Tarabala/Chandrabala/Rahu Kalam reference candidates", + "reuse_boundary": "only permissive code after license and formula audit; otherwise source/oracle reference" + } + ], + "promotion_order": [ + "compare d2_d60_extended_vargas against scripts/varga.py and add missing D7/D12/D16/D20/D24/D30/D60 contracts", + "promote karaka_calculator into Jaimini contract if current scripts/jaimini.py lacks equivalent modes", + "promote vimsopaka_bala as strength layer after weight-table source closure", + "promote avastha_states as interpretation-only layer after formula source registry", + "keep KP and Gochara templates reference-only until oracle/source/privacy audit" + ] +} diff --git a/references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json b/references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json new file mode 100644 index 00000000..19f41750 --- /dev/null +++ b/references/oracle/technique_promotion_audit_kp_gochara_muhurta_2026_07_19.json @@ -0,0 +1,65 @@ +{ + "created_at": "2026-07-19", + "items": [ + { + "claim_boundary": "Panchanga is runtime-visible but still needs field-level external oracle examples for high-rigor claims.", + "current_call_status": "formally_called_in_api_and_web", + "external_or_reference_artifacts": [ + "references/open_source_sources/panchanga_api" + ], + "main_artifacts": [ + "scripts/jyotish_api_server.py", + "jyotish-app/main.js", + "jyotish-app/index.html" + ], + "next_action": "add panchanga claim/display contract and source/oracle packet for tithi/nakshatra/yoga/karana/rahu-kalam outputs", + "reuse_decision": "do_not_duplicate_runtime", + "source_or_license_boundary": "Existing runtime/UI present; panchanga_api license observed as Copyright (c) 2026 moon-bot. All rights reserved.. Treat external panchanga_api as reference unless license/API contract is separately audited.", + "technique_id": "panchanga_calendar" + }, + { + "claim_boundary": "Muhurta remains reference-only until license, formula, and worked examples close.", + "current_call_status": "oss_reference_not_main_runtime", + "external_or_reference_artifacts": [ + "references/open_source_sources/dashaflow/muhurtha.py" + ], + "main_artifacts": [], + "next_action": "audit dashaflow license, extract formula surface, then compare Tarabala/Chandrabala/Rahu Kalam against local Panchanga.", + "reuse_decision": "license_audit_before_reuse", + "source_or_license_boundary": "dashaflow/muhurtha.py exists under references/open_source_sources; verify license and formula sources before adapting.", + "technique_id": "muhurta_dashaflow_candidate" + }, + { + "claim_boundary": "KP is not part of current main Jyotish runtime truth.", + "current_call_status": "reference_only_not_main_runtime", + "external_or_reference_artifacts": [ + "/Users/wuyongnaren/.workbuddy/backups/jyotish-vedic-astrology-20260711-154109/references/kp-astrology-complete-system.md" + ], + "main_artifacts": [], + "next_action": "create KP separate track: cusp system, ayanamsa, star lord/sub lord, ruling planets, public oracle examples.", + "reuse_decision": "reference_only", + "source_or_license_boundary": "KP backup/reference may contain useful notes but must pass privacy/license/source audit; do not copy blindly.", + "technique_id": "kp_astrology" + }, + { + "claim_boundary": "Transit template is not a calibrated timing engine.", + "current_call_status": "template_reference_not_main_runtime", + "external_or_reference_artifacts": [ + "/tmp/jyotisha-optimize/assets/event_timing_template.md" + ], + "main_artifacts": [], + "next_action": "turn Gochara template into scoring contract only after Dasha+Varga+Transit features and negative holdout are ready.", + "reuse_decision": "reference_only", + "source_or_license_boundary": "Template in /tmp must be privacy/source reviewed before promotion.", + "technique_id": "gochara_event_timing_template" + } + ], + "production_tuning_allowed": false, + "scope": "technique_promotion_audit_kp_gochara_muhurta", + "summary": { + "formally_called_count": 1, + "items_checked": 4, + "reference_only_count": 3 + }, + "truth_policy": "runtime_presence_not_oracle_closure" +} diff --git a/references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json b/references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json new file mode 100644 index 00000000..b2b2043e --- /dev/null +++ b/references/oracle/technique_promotion_audit_varga_karaka_2026_07_19.json @@ -0,0 +1,92 @@ +{ + "created_at": "2026-07-19", + "items": [ + { + "claim_boundary": "Core mapping exists; still needs endpoint/display contracts and external fixtures before claiming all D2-D60 interpretation parity.", + "historical_artifacts": [ + "skills/jyotish-engine-modules/scripts/divisional_charts_extended.py" + ], + "historical_symbols": [ + "DivisionalChartsCalculator", + "VargaType" + ], + "main_artifacts": [ + "scripts/varga.py" + ], + "main_runtime_status": "covered", + "main_supported_vargas": [ + "D2", + "D3", + "D4", + "D7", + "D9", + "D10", + "D12", + "D16", + "D20", + "D24", + "D27", + "D30", + "D40", + "D45", + "D60" + ], + "promotion_action": "promote_entry_tests_and_display_contract", + "technique_id": "d2_d60_extended_vargas" + }, + { + "claim_boundary": "Main code already covers core Chara Karaka; historical BPHS/JH mode details should become tests/contracts, not duplicate runtime.", + "historical_artifacts": [ + "skills/jyotish-engine-modules/scripts/karaka_calculator.py" + ], + "historical_symbols": [ + "KarakaCalculator", + "KarakaMode", + "KarakaType", + "main" + ], + "main_artifacts": [ + "scripts/jaimini.py" + ], + "main_runtime_status": "covered", + "main_supported_functions": [ + "calc_chara_karaka_7", + "calc_chara_karaka_8", + "calc_arudha_padas", + "calc_upapada", + "calc_darapada", + "calc_chara_dasha", + "calc_chara_dasha_with_antardasha", + "calc_karakamsha", + "calc_special_lagnas_precise", + "calc_special_lagnas" + ], + "promotion_action": "compare_modes_then_promote_contract", + "technique_id": "jaimini_chara_karaka" + }, + { + "claim_boundary": "Formula/source/timezone audit required before using special lagnas as high-rigor evidence.", + "historical_artifacts": [ + "skills/jyotish-engine-modules/scripts/special_lagnas.py" + ], + "main_artifacts": [ + "scripts/jaimini.py" + ], + "main_runtime_status": "covered", + "main_supported_functions": [ + "calc_special_lagnas", + "calc_special_lagnas_precise" + ], + "promotion_action": "compare_current_vs_fragment", + "technique_id": "special_lagnas" + } + ], + "production_tuning_allowed": false, + "scope": "technique_promotion_audit_varga_karaka", + "summary": { + "fragment_items_checked": 3, + "main_jaimini_function_count": 10, + "main_varga_supported_count": 15 + }, + "truth_policy": "promotion_audit_not_oracle_closure" +} diff --git a/references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json b/references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json new file mode 100644 index 00000000..88dd3562 --- /dev/null +++ b/references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json @@ -0,0 +1,934 @@ +{ + "production_tuning_allowed": false, + "queue": [ + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Sun.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-001" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-002" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Mars.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-003" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Mercury.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-004" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Jupiter.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-005" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Venus.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-006" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Saturn.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D2", + "ticket_id": "TEMCQ-007" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D4", + "ticket_id": "TEMCQ-008" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D9", + "ticket_id": "TEMCQ-009" + }, + { + "category": "endpoint_or_varga_semantics", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Moon.sign", + "owner_track": "endpoint_contract", + "priority": "P0", + "required_evidence": "identified endpoint/method contract with ayanamsa, node mode, varga, timezone semantics", + "section": "D10", + "ticket_id": "TEMCQ-010" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Sun", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-011" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-012" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Mars", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-013" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Mercury", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-014" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Jupiter", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-015" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-016" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro" + ], + "field": "Saturn", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_bav", + "ticket_id": "TEMCQ-017" + }, + { + "category": "ashtakavarga_table_or_contributor_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "12_sign_scores", + "owner_track": "worked_example", + "priority": "P1", + "required_evidence": "public worked BAV/SAV table with contributor set, shodhana state, and Lagna inclusion", + "section": "ashtakavarga_sav", + "ticket_id": "TEMCQ-018" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-019" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-020" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-021" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-022" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Sun.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-023" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Sun.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-024" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-025" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-026" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-027" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-028" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Moon.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-029" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Moon.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-030" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-031" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-032" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-033" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-034" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mars.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-035" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mars.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-036" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-037" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-038" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-039" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-040" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-041" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Mercury.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-042" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-043" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-044" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-045" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-046" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-047" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Jupiter.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-048" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-049" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-050" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-051" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-052" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Venus.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-053" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Venus.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-054" + }, + { + "category": "derived_total_from_component_variants", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn", + "owner_track": "unit_schema", + "priority": "P1", + "required_evidence": "component closure before total recomputation; explicit Rupa/Virupa total rule", + "section": "shadbala_total", + "ticket_id": "TEMCQ-055" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.sthana", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-056" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.kala", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-057" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.dig", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-058" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "PyJHora_JHora", + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.chesta", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-059" + }, + { + "category": "shadbala_formula_variant", + "closure_status": "open", + "commercial_visibility": "do_not_expose_raw", + "differing_engines": [ + "VedAstro", + "jyotishganit" + ], + "field": "Saturn.drik", + "owner_track": "formula_source", + "priority": "P0", + "required_evidence": "public formula source + unit/cap/floor evidence for the component", + "section": "shadbala_components", + "ticket_id": "TEMCQ-060" + } + ], + "scope": "three_engine_mismatch_closure_queue", + "source_arbitration": "references/oracle/three_engine_mismatch_arbitration_2026_07_19.json", + "status": "open", + "summary": { + "owner_track_counts": { + "endpoint_contract": 10, + "formula_source": 35, + "unit_schema": 7, + "worked_example": 8 + }, + "priority_counts": { + "P0": 45, + "P1": 15 + }, + "queue_count": 60, + "source_mismatch_count": 60 + }, + "truth_policy": "no_majority_vote" +} diff --git a/references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json b/references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json new file mode 100644 index 00000000..daa9b5e8 --- /dev/null +++ b/references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json @@ -0,0 +1,34 @@ +{ + "attributed_rows": [ + { + "closure_state": "attributed_no_tuning", + "effect": "A ~0.62° D1 node longitude delta crosses the 9° D10 part boundary, changing D10 sign by one.", + "field": "Rahu", + "reason": "node_longitude_source_plus_ayanamsa_boundary_crossing", + "section": "D10" + }, + { + "closure_state": "attributed_no_tuning", + "effect": "A ~0.62° D1 node longitude delta crosses the 9° D10 part boundary, changing D10 sign by one.", + "field": "Ketu", + "reason": "node_longitude_source_plus_ayanamsa_boundary_crossing", + "section": "D10" + } + ], + "attribution_sources": [ + "references/oracle/jyotishganit_node_source_attribution_2026_07_19.json" + ], + "boundary": "Attribution closes explanation work only. The original mismatch queue stays open for formula/endpoint/worked-example evidence, and no engine majority vote is allowed.", + "claim_status": "partial", + "created_at": "2026-07-19", + "production_tuning_allowed": false, + "scope": "three_engine_mismatch_progress_ledger", + "source_queue": "references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json", + "status": "progress_ledger_ready", + "summary": { + "attributed_no_tuning_count": 2, + "remaining_open_count": 58, + "source_queue_count": 60 + }, + "truth_matrix_allowed": false +} diff --git a/references/oracle/vedicastro_kp_api_probe_2026_07_19.json b/references/oracle/vedicastro_kp_api_probe_2026_07_19.json new file mode 100644 index 00000000..758db2a9 --- /dev/null +++ b/references/oracle/vedicastro_kp_api_probe_2026_07_19.json @@ -0,0 +1,34 @@ +{ + "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": "No module named 'flatlib'", + "error_type": "ModuleNotFoundError", + "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 +} diff --git a/scripts/claim_audit_runtime_gate.py b/scripts/claim_audit_runtime_gate.py new file mode 100644 index 00000000..a83f7376 --- /dev/null +++ b/scripts/claim_audit_runtime_gate.py @@ -0,0 +1,83 @@ +#!/usr/bin/env python3 +"""Runtime claim gate backed by evidence_packet_index.""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path + +HIGH_CLAIMS = {"verified_precise_prediction", "complete_absolute_truth", "production_ready", "external_verified"} + + +def evaluate_claim(index_path: Path, domain: str, requested_claim: str) -> dict: + index = json.loads(index_path.read_text(encoding="utf-8")) + packets = [row for row in index["packets"] if row["domain"] == domain] + if not packets: + return { + "decision": "block", + "domain": domain, + "requested_claim": requested_claim, + "allowed_claim_status": "blocked_unknown_domain", + "production_tuning_allowed": False, + "blocking_packets": [], + "boundaries": [f"No evidence packet indexed for domain: {domain}"], + } + + bad = [row for row in packets if row["claim_status"] in {"blocked", "open_queue"}] + partial = [row for row in packets if row["claim_status"] in {"partial", "observation_only"}] + ready = [row for row in packets if row["claim_status"] == "ready_contract"] + + if bad and requested_claim in HIGH_CLAIMS: + return { + "decision": "block", + "domain": domain, + "requested_claim": requested_claim, + "allowed_claim_status": "exploratory_unvalidated", + "production_tuning_allowed": False, + "blocking_packets": [row["packet_id"] for row in bad], + "boundaries": [row["claim_boundary"] for row in bad], + } + if partial and requested_claim in HIGH_CLAIMS: + return { + "decision": "degrade", + "domain": domain, + "requested_claim": requested_claim, + "allowed_claim_status": "partial_method_variant", + "production_tuning_allowed": False, + "blocking_packets": [row["packet_id"] for row in partial], + "boundaries": [row["claim_boundary"] for row in partial], + } + if ready and requested_claim == "ready_contract" and not bad and not partial: + return { + "decision": "allow", + "domain": domain, + "requested_claim": requested_claim, + "allowed_claim_status": "ready_contract", + "production_tuning_allowed": False, + "blocking_packets": [], + "boundaries": [row["claim_boundary"] for row in ready], + } + return { + "decision": "degrade" if partial or bad else "allow", + "domain": domain, + "requested_claim": requested_claim, + "allowed_claim_status": "limited_research_claim", + "production_tuning_allowed": False, + "blocking_packets": [row["packet_id"] for row in bad + partial], + "boundaries": [row["claim_boundary"] for row in bad + partial + ready], + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--index", type=Path, default=Path("references/oracle/evidence_packet_index_2026_07_19.json")) + parser.add_argument("--domain", required=True) + parser.add_argument("--claim", required=True) + args = parser.parse_args() + print(json.dumps(evaluate_claim(args.index, args.domain, args.claim), ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/evidence_packet_index_integrity.py b/scripts/evidence_packet_index_integrity.py new file mode 100644 index 00000000..e31fceb3 --- /dev/null +++ b/scripts/evidence_packet_index_integrity.py @@ -0,0 +1,98 @@ +#!/usr/bin/env python3 +"""Validate evidence packet index paths, ids, claim statuses, and boundaries.""" + +from __future__ import annotations + +import argparse +import json +from collections import Counter +from pathlib import Path +from typing import Any + + +ROOT = Path(__file__).resolve().parents[1] +DEFAULT_INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" +VALID_CLAIM_STATUSES = { + "blocked", + "blocked_until_human_labels", + "blocked_until_oracle", + "open_queue", + "observation_only", + "partial", + "ready_contract", + "reference_only", + "source_intake_only", + "tooling_observation_only", +} + + +def repo_path(path: str) -> Path: + candidate = Path(path) + return candidate if candidate.is_absolute() else ROOT / candidate + + +def build(index_path: Path) -> dict[str, Any]: + index = json.loads(index_path.read_text(encoding="utf-8")) + packets = index.get("packets", []) + ids = [row.get("packet_id") for row in packets] + id_counts = Counter(ids) + duplicate_ids = sorted(packet_id for packet_id, count in id_counts.items() if packet_id and count > 1) + + missing_paths = [ + {"packet_id": row.get("packet_id"), "path": row.get("path")} + for row in packets + if not row.get("path") or not repo_path(row["path"]).exists() + ] + invalid_claim_statuses = [ + {"packet_id": row.get("packet_id"), "claim_status": row.get("claim_status")} + for row in packets + if row.get("claim_status") not in VALID_CLAIM_STATUSES + ] + missing_required_fields = [ + { + "packet_id": row.get("packet_id"), + "missing": [ + field + for field in ("packet_id", "path", "domain", "claim_status", "consumer_policy", "claim_boundary") + if not row.get(field) + ], + } + for row in packets + ] + missing_required_fields = [row for row in missing_required_fields if row["missing"]] + + status = "pass" + if missing_paths or duplicate_ids or invalid_claim_statuses or missing_required_fields: + status = "fail" + + return { + "scope": "evidence_packet_index_integrity", + "created_at": "2026-07-19", + "status": status, + "source_index": str(index_path.relative_to(ROOT)) if index_path.is_relative_to(ROOT) else str(index_path), + "summary": { + "packet_count": len(packets), + "missing_path_count": len(missing_paths), + "duplicate_packet_id_count": len(duplicate_ids), + "invalid_claim_status_count": len(invalid_claim_statuses), + "missing_required_field_count": len(missing_required_fields), + }, + "duplicate_packet_ids": duplicate_ids, + "missing_paths": missing_paths, + "invalid_claim_statuses": invalid_claim_statuses, + "missing_required_fields": missing_required_fields, + "valid_claim_statuses": sorted(VALID_CLAIM_STATUSES), + "boundary": "Integrity pass means indexed packets are present and shaped; it does not upgrade any oracle claim.", + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--index", type=Path, default=DEFAULT_INDEX) + args = parser.parse_args() + print(json.dumps(build(args.index), ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/jyotishganit_vs_local_field_comparison.py b/scripts/jyotishganit_vs_local_field_comparison.py index 9367cfae..677bf1e6 100644 --- a/scripts/jyotishganit_vs_local_field_comparison.py +++ b/scripts/jyotishganit_vs_local_field_comparison.py @@ -16,7 +16,12 @@ from typing import Any ROOT = Path(__file__).resolve().parents[1] -TARGETS = {"D2": "D2_Hora", "D4": "D4_Chaturthamsa", "D9": "D9_Navamsa", "D10": "D10_Dasamsa"} +TARGETS = { + "D2": ["D2_Hora"], + "D4": ["D4_Chaturthamsa", "D4_Turyamsa"], + "D9": ["D9_Navamsa"], + "D10": ["D10_Dasamsa"], +} def stable(data: Any) -> str: @@ -82,7 +87,11 @@ def jyotishganit_signs(raw: dict[str, Any], code: str) -> dict[str, str]: def local_signs(raw: dict[str, Any], code: str) -> dict[str, str]: - section = raw.get(TARGETS[code], {}) + section = {} + for key in TARGETS[code]: + if key in raw: + section = raw[key] + break return { body: value.get("sign") for body, value in section.items() diff --git a/scripts/local_oss_observation_inventory.py b/scripts/local_oss_observation_inventory.py new file mode 100644 index 00000000..2b950ec0 --- /dev/null +++ b/scripts/local_oss_observation_inventory.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python3 +"""Inventory local OSS Jyotish candidates as observation-only sources.""" +from __future__ import annotations + +import hashlib +import json +import subprocess +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[1] +BASE = ROOT / "references" / "open_source_sources" +CANDIDATES = ["VedicAstro", "jyotishganit", "panchanga_api", "rishi-ai-mcp", "jaimini-tropical", "vedic-astro-skills"] + + +def sha256_file(path: Path) -> str: + h = hashlib.sha256() + with path.open("rb") as f: + for chunk in iter(lambda: f.read(1024 * 1024), b""): + h.update(chunk) + return h.hexdigest() + + +def git_commit(path: Path) -> str | None: + try: + return subprocess.check_output(["git", "-C", str(path), "rev-parse", "HEAD"], text=True, stderr=subprocess.DEVNULL).strip() + except Exception: + return None + + +def first_existing(path: Path, names: list[str]) -> Path | None: + for name in names: + p = path / name + if p.exists(): + return p + return None + + +def license_hint(path: Path) -> dict[str, Any]: + p = first_existing(path, ["LICENSE", "LICENSE.md", "LICENSE.txt", "COPYING"]) + if not p: + return {"status": "missing", "file": None, "sha256": None, "hint": "unknown"} + text = p.read_text(encoding="utf-8", errors="ignore")[:3000].lower() + if "mit license" in text or "permission is hereby granted" in text: + hint = "MIT" + elif "apache license" in text: + hint = "Apache-2.0" + elif "bsd" in text: + hint = "BSD-like" + elif "gnu affero" in text: + hint = "AGPL" + elif "gnu general public license" in text: + hint = "GPL" + else: + hint = "unknown" + return {"status": "present", "file": str(p.relative_to(ROOT)), "sha256": sha256_file(p), "hint": hint} + + +def file_manifest(path: Path) -> list[dict[str, Any]]: + wanted = ["README.md", "README.rst", "pyproject.toml", "package.json", "pubspec.yaml", "requirements.txt"] + rows = [] + for name in wanted: + p = path / name + if p.exists(): + rows.append({"path": str(p.relative_to(ROOT)), "sha256": sha256_file(p)}) + return rows + + +def api_hints(path: Path) -> list[str]: + hints = [] + for pattern in ("*.py", "*.ts", "*.js", "*.dart"): + for p in list(path.rglob(pattern))[:200]: + if any(part in {".git", "node_modules", "__pycache__"} for part in p.parts): + continue + rel = str(p.relative_to(path)) + name = p.stem.lower() + if any(k in name or k in rel.lower() for k in ["panch", "muhur", "dasha", "kp", "chart", "asht", "shadbala", "jaimini"]): + hints.append(rel) + if len(hints) >= 30: + return hints + return hints + + +def main() -> int: + rows = [] + for name in CANDIDATES: + path = BASE / name + if not path.exists(): + rows.append({"project_id": name, "status": "missing"}) + continue + rows.append({ + "project_id": name, + "status": "present", + "local_path": str(path.relative_to(ROOT)), + "git_commit": git_commit(path), + "license": license_hint(path), + "manifest_files": file_manifest(path), + "api_surface_hints": api_hints(path), + "claim_status": "observation_only", + "runtime_dependency_allowed": False, + "truth_upgrade_allowed": False, + }) + out = { + "scope": "local_oss_observation_inventory", + "created_at": "2026-07-19", + "status": "complete", + "claim_status": "observation_only", + "production_tuning_allowed": False, + "truth_matrix_allowed": False, + "boundary": "Local OSS candidates are pinned for reuse/probe triage only. License and hash metadata do not validate astrological truth.", + "projects": rows, + } + print(json.dumps(out, ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/three_engine_mismatch_progress_ledger.py b/scripts/three_engine_mismatch_progress_ledger.py new file mode 100644 index 00000000..446fdfd9 --- /dev/null +++ b/scripts/three_engine_mismatch_progress_ledger.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 +"""Summarize three-engine mismatch closure progress without mutating queue.""" +from __future__ import annotations + +import json +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +QUEUE = ROOT / "references/oracle/three_engine_mismatch_closure_queue_2026_07_19.json" +NODE_ATTR = ROOT / "references/oracle/jyotishganit_node_source_attribution_2026_07_19.json" + + +def build() -> dict: + queue = json.loads(QUEUE.read_text(encoding="utf-8")) + node = json.loads(NODE_ATTR.read_text(encoding="utf-8")) + attributed = [ + { + "section": "D10", + "field": body, + "closure_state": "attributed_no_tuning", + "reason": node["attribution"]["primary_delta"], + "effect": node["attribution"]["effect"], + } + for body in ("Rahu", "Ketu") + if f"D10 {body}" in node.get("remaining_mismatches", []) + ] + total = queue["summary"]["queue_count"] + return { + "scope": "three_engine_mismatch_progress_ledger", + "created_at": "2026-07-19", + "status": "progress_ledger_ready", + "claim_status": "partial", + "production_tuning_allowed": False, + "truth_matrix_allowed": False, + "source_queue": str(QUEUE.relative_to(ROOT)), + "attribution_sources": [str(NODE_ATTR.relative_to(ROOT))], + "summary": { + "source_queue_count": total, + "attributed_no_tuning_count": len(attributed), + "remaining_open_count": total - len(attributed), + }, + "attributed_rows": attributed, + "boundary": ( + "Attribution closes explanation work only. The original mismatch queue " + "stays open for formula/endpoint/worked-example evidence, and no " + "engine majority vote is allowed." + ), + } + + +def main() -> int: + print(json.dumps(build(), ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/vedicastro_kp_surface_locator.py b/scripts/vedicastro_kp_surface_locator.py new file mode 100644 index 00000000..1dfa12c4 --- /dev/null +++ b/scripts/vedicastro_kp_surface_locator.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +"""Locate KP star/sub/sub-sub/cusp surface in local VedicAstro source. + +Observation-only. Does not execute or vendor VedicAstro. +""" +from __future__ import annotations + +import hashlib +import json +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +SRC = ROOT / "references/open_source_sources/VedicAstro" +TARGET = SRC / "vedicastro/VedicAstro.py" +PATTERNS = { + "rl_nl_sl_function": "def get_rl_nl_sl_data", + "planet_sub_lord": "planet_sub_lord", + "planet_sub_sub_lord": "planet_ss_lord", + "house_sub_lord": "house_sub_lord", + "house_sub_sub_lord": "house_ss_lord", + "houses_data_function": "def get_houses_data_from_chart", +} + + +def sha256(path: Path) -> str | None: + if not path.exists(): + return None + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def locate(text: str, pattern: str) -> list[int]: + return [i for i, line in enumerate(text.splitlines(), 1) if pattern in line] + + +def main() -> int: + if not TARGET.exists(): + payload = { + "scope": "vedicastro_kp_surface_locator", + "status": "source_missing", + "claim_status": "blocked_source_missing", + "production_tuning_allowed": False, + } + print(json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + text = TARGET.read_text(encoding="utf-8", errors="ignore") + findings = { + key: {"pattern": pattern, "lines": locate(text, pattern)} + for key, pattern in PATTERNS.items() + } + table_candidates = [ + str(p.relative_to(ROOT)) + for p in SRC.rglob("*") + if p.is_file() and any(token in p.name.lower() for token in ["kp", "sub", "lord", "division"]) + ] + payload = { + "scope": "vedicastro_kp_surface_locator", + "created_at": "2026-07-19", + "status": "complete", + "claim_status": "observation_only", + "production_tuning_allowed": False, + "truth_upgrade_allowed": False, + "source_path": str(TARGET.relative_to(ROOT)), + "source_sha256": sha256(TARGET), + "findings": findings, + "external_table_candidates": table_candidates, + "kp_table_status": "fixture_missing" if not table_candidates else "candidate_paths_found", + "boundary": "VedicAstro exposes KP RL/NL/SL/SSL and house cusp fields in source, but no external numeric worked example is validated here.", + } + print(json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/test_evidence_packet_index_integrity.py b/tests/test_evidence_packet_index_integrity.py new file mode 100644 index 00000000..223a15b7 --- /dev/null +++ b/tests/test_evidence_packet_index_integrity.py @@ -0,0 +1,63 @@ +import json +import subprocess +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" + + +def test_evidence_packet_index_integrity_validator_passes_current_index() -> None: + data = json.loads( + subprocess.check_output( + ["python3", "scripts/evidence_packet_index_integrity.py", "--index", str(INDEX)], + cwd=ROOT, + text=True, + ) + ) + assert data["scope"] == "evidence_packet_index_integrity" + assert data["status"] == "pass" + assert data["summary"]["packet_count"] >= 60 + assert data["summary"]["missing_path_count"] == 0 + assert data["summary"]["duplicate_packet_id_count"] == 0 + assert data["summary"]["invalid_claim_status_count"] == 0 + + +def test_evidence_packet_index_integrity_reports_bad_index(tmp_path: Path) -> None: + bad = tmp_path / "bad_index.json" + bad.write_text( + json.dumps( + { + "packets": [ + { + "packet_id": "dup", + "path": "references/oracle/missing_packet.json", + "domain": "timing_holdout", + "claim_status": "done", + "consumer_policy": "research", + "claim_boundary": "", + }, + { + "packet_id": "dup", + "path": "references/oracle/evidence_packet_index_2026_07_19.json", + "domain": "timing_holdout", + "claim_status": "partial", + "consumer_policy": "research", + "claim_boundary": "ok", + }, + ] + } + ), + encoding="utf-8", + ) + data = json.loads( + subprocess.check_output( + ["python3", "scripts/evidence_packet_index_integrity.py", "--index", str(bad)], + cwd=ROOT, + text=True, + ) + ) + assert data["status"] == "fail" + assert data["summary"]["missing_path_count"] == 1 + assert data["summary"]["duplicate_packet_id_count"] == 1 + assert data["summary"]["invalid_claim_status_count"] == 1 diff --git a/tests/test_jyotishganit_mismatch_attribution_queue.py b/tests/test_jyotishganit_mismatch_attribution_queue.py new file mode 100644 index 00000000..c8cbdb58 --- /dev/null +++ b/tests/test_jyotishganit_mismatch_attribution_queue.py @@ -0,0 +1,31 @@ +import json +import subprocess +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +QUEUE = ROOT / "references/oracle/jyotishganit_mismatch_attribution_queue_2026_07_19.json" +INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" + + +def test_comparison_d4_alias_is_not_counted_as_missing_local_schema(): + out = subprocess.check_output(["python3", "scripts/jyotishganit_vs_local_field_comparison.py"], cwd=ROOT, text=True) + data = json.loads(out) + mismatches = [r for r in data["rows"] if r["status"] == "mismatch"] + assert all(not (r["section"] == "D4" and r["local_sign"] is None) for r in mismatches) + + +def test_mismatch_attribution_queue_marks_partial_not_truth(): + data = json.loads(QUEUE.read_text(encoding="utf-8")) + assert data["scope"] == "jyotishganit_mismatch_attribution_queue" + assert data["claim_status"] == "partial" + assert data["production_tuning_allowed"] is False + assert data["truth_matrix_allowed"] is False + assert data["summary"]["mismatch_count"] >= 1 + assert all(row["attribution_status"] == "queued" for row in data["rows"]) + + +def test_evidence_index_registers_mismatch_attribution_queue(): + index = json.loads(INDEX.read_text(encoding="utf-8")) + packets = {row["packet_id"]: row for row in index["packets"]} + assert packets["jyotishganit_mismatch_attribution_queue"]["claim_status"] == "partial" diff --git a/tests/test_three_engine_mismatch_closure_queue.py b/tests/test_three_engine_mismatch_closure_queue.py new file mode 100644 index 00000000..ea020bcf --- /dev/null +++ b/tests/test_three_engine_mismatch_closure_queue.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +import json +from pathlib import Path + +from scripts.three_engine_mismatch_closure_queue import build_queue + +ROOT = Path(__file__).resolve().parents[1] +ARBITRATION = ROOT / "references" / "oracle" / "three_engine_mismatch_arbitration_2026_07_19.json" +QUEUE = ROOT / "references" / "oracle" / "three_engine_mismatch_closure_queue_2026_07_19.json" + + +def test_closure_queue_turns_classified_mismatches_into_actionable_items() -> None: + queue = build_queue(ARBITRATION) + + assert queue["scope"] == "three_engine_mismatch_closure_queue" + assert queue["status"] == "open" + assert queue["truth_policy"] == "no_majority_vote" + assert queue["production_tuning_allowed"] is False + assert queue["summary"]["source_mismatch_count"] == 60 + assert queue["summary"]["queue_count"] == 60 + assert queue["summary"]["priority_counts"]["P0"] >= 1 + + first = queue["queue"][0] + assert first["ticket_id"].startswith("TEMCQ-") + assert first["owner_track"] in {"endpoint_contract", "formula_source", "unit_schema", "worked_example"} + assert first["closure_status"] == "open" + assert first["required_evidence"] + assert first["commercial_visibility"] == "do_not_expose_raw" + + +def test_closure_queue_artifact_matches_mismatch_count() -> None: + data = json.loads(QUEUE.read_text(encoding="utf-8")) + + assert data["summary"]["source_mismatch_count"] == 60 + assert data["summary"]["queue_count"] == 60 + assert data["production_tuning_allowed"] is False + assert all(row["closure_status"] == "open" for row in data["queue"]) diff --git a/tests/test_three_engine_mismatch_progress_ledger.py b/tests/test_three_engine_mismatch_progress_ledger.py new file mode 100644 index 00000000..da7f06a8 --- /dev/null +++ b/tests/test_three_engine_mismatch_progress_ledger.py @@ -0,0 +1,41 @@ +import json +import subprocess +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +ARTIFACT = ROOT / "references/oracle/three_engine_mismatch_progress_ledger_2026_07_19.json" +INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" + + +def test_three_engine_progress_ledger_reports_attributed_node_rows(): + data = json.loads( + subprocess.check_output( + ["python3", "scripts/three_engine_mismatch_progress_ledger.py"], + cwd=ROOT, + text=True, + ) + ) + assert data["scope"] == "three_engine_mismatch_progress_ledger" + assert data["claim_status"] == "partial" + assert data["truth_matrix_allowed"] is False + assert data["summary"] == { + "source_queue_count": 60, + "attributed_no_tuning_count": 2, + "remaining_open_count": 58, + } + + +def test_three_engine_progress_ledger_does_not_close_queue_or_vote(): + data = json.loads(ARTIFACT.read_text(encoding="utf-8")) + assert {row["field"] for row in data["attributed_rows"]} == {"Rahu", "Ketu"} + assert all(row["closure_state"] == "attributed_no_tuning" for row in data["attributed_rows"]) + assert "no engine majority vote is allowed" in data["boundary"] + + +def test_evidence_index_registers_three_engine_progress_ledger(): + packets = { + row["packet_id"]: row + for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"] + } + assert packets["three_engine_mismatch_progress_ledger"]["claim_status"] == "partial"