diff --git a/references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json b/references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json new file mode 100644 index 00000000..c1eda54e --- /dev/null +++ b/references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json @@ -0,0 +1,27 @@ +{ + "scope": "d1_d60_public_source_candidate_queue", + "created_at": "2026-07-19", + "status": "candidate_sources_registered", + "claim_status": "open_queue", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "source_registry": "references/oracle/d1_d60_varga_mapping_registry_2026_07_19.json", + "candidate_sources": [ + { + "url": "https://www.barbarapijan.com/bpa/Varga/varga.html", + "candidate_use": "D1-D60 names/use cross-check", + "oracle_status": "source_text_candidate_not_numeric_oracle" + }, + { + "url": "https://www.astrosage.com/astrology/divisional-charts.asp", + "candidate_use": "common varga names/use", + "oracle_status": "source_text_candidate_not_numeric_oracle" + }, + { + "url": "https://github.com/northtara/jyotishganit", + "candidate_use": "permissive OSS varga implementation cross-check", + "oracle_status": "observation_only" + } + ], + "boundary": "Public source text may upgrade names/uses only after citation and formula variant review. It does not create numeric oracle parity." +} diff --git a/references/oracle/evidence_packet_index_2026_07_19.json b/references/oracle/evidence_packet_index_2026_07_19.json index 78fc3fdf..a3055bc7 100644 --- a/references/oracle/evidence_packet_index_2026_07_19.json +++ b/references/oracle/evidence_packet_index_2026_07_19.json @@ -5,7 +5,7 @@ "production_tuning_allowed": false, "boundary": "Index of current governance packets only. Raw oracle artifacts remain in references/oracle/artifacts and are not all duplicated here.", "summary": { - "packet_count": 54, + "packet_count": 60, "blocked_or_partial_count": 40, "human_review_required_count": 1 }, @@ -441,6 +441,54 @@ "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." + }, + { + "packet_id": "four_engine_comparison_queue", + "path": "references/oracle/four_engine_comparison_queue_2026_07_19.json", + "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": "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." + }, + { + "packet_id": "jyotishganit_shadbala_surface_probe", + "path": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json", + "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": "vedicastro_kp_cusp_batch_probe_script", + "path": "scripts/vedicastro_kp_cusp_batch_probe.py", + "domain": "kp_precision_timing_dependency", + "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." + }, + { + "packet_id": "d1_d60_public_source_candidate_queue", + "path": "references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json", + "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": "muhurta_oss_factor_scoring_queue", + "path": "references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json", + "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." } ] } diff --git a/references/oracle/four_engine_comparison_queue_2026_07_19.json b/references/oracle/four_engine_comparison_queue_2026_07_19.json new file mode 100644 index 00000000..00abe024 --- /dev/null +++ b/references/oracle/four_engine_comparison_queue_2026_07_19.json @@ -0,0 +1,16 @@ +{ + "scope": "four_engine_comparison_queue", + "created_at": "2026-07-19", + "status": "queue_ready", + "claim_status": "partial", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "engines": ["local", "Xalen", "jyotishganit", "VedicAstro"], + "attached_observations": [ + "references/oracle/jyotishganit_vs_local_field_comparison_steve_jobs_2026_07_19.json", + "references/oracle/vedicastro_kp_house_cusp_probe_steve_jobs_2026_07_19.json", + "references/oracle/xalen_fourth_oracle_comparison_2026_07_17.json" + ], + "target_fields": ["D2", "D4", "D9", "D10", "BAV", "SAV", "Shadbala", "KP_cusps"], + "boundary": "Four-engine queue requires shared input contract and per-field unit/schema mapping. It is not majority-vote truth." +} diff --git a/references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json b/references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json new file mode 100644 index 00000000..8439c6d9 --- /dev/null +++ b/references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json @@ -0,0 +1,372 @@ +{ + "api_surface": { + "calculate_all_strengths": true, + "compute_shadbala": true, + "six_strengths": [ + "Sthanabala", + "Digbala", + "Kaalabala", + "Cheshtabala", + "Naisargikabala", + "Drikbala" + ] + }, + "boundary": "jyotishganit exposes Shadbala via object surface, not top-level to_dict. Observation-only until component units and external worked examples are compared.", + "claim_status": "observation_only", + "coverage": { + "Jupiter": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Ketu": { + "Cheshtabala": false, + "Digbala": false, + "Drikbala": false, + "Kaalabala": true, + "Naisargikabala": false, + "Shadbala": false, + "Sthanabala": false + }, + "Mars": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Mercury": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Moon": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Rahu": { + "Cheshtabala": false, + "Digbala": false, + "Drikbala": false, + "Kaalabala": true, + "Naisargikabala": false, + "Shadbala": false, + "Sthanabala": false + }, + "Saturn": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Sun": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + }, + "Venus": { + "Cheshtabala": true, + "Digbala": true, + "Drikbala": true, + "Kaalabala": true, + "Naisargikabala": true, + "Shadbala": true, + "Sthanabala": true + } + }, + "created_at": "2026-07-19", + "production_tuning_allowed": false, + "raw": { + "request": { + "datetime": "1955-02-24T19:15:00", + "latitude": 37.3382, + "location": "San Francisco, CA", + "longitude": -122.0383, + "name": "Steve Jobs public", + "output": "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json", + "timezone": -8.0 + }, + "shadbala": { + "Jupiter": { + "Cheshtabala": 36.424, + "Digbala": 44.095, + "Drikbala": 4.072, + "Ishtabala": 45.736, + "Kaalabala": { + "Ayanabala": 57.817, + "Natonnatabala": 47.5, + "Pakshabala": 10.667, + "Total": 250.984, + "Tribhagabala": 60.0, + "VarshaMaasaDinaHoraBala": 75.0, + "Yuddhabala": 0.0 + }, + "Kashtabala": 14.264, + "Naisargikabala": 34.29, + "Shadbala": { + "Rupas": 9.934, + "Total": 596.043 + }, + "Sthanabala": { + "Drekshanabala": 0.0, + "Kendradhibala": 30.0, + "Ojhayugmarashiamshabala": 30.0, + "Saptavargajabala": 108.75, + "Total": 226.178, + "Uchhabala": 57.428 + }, + "Vimshopaka": { + "dashavarga": 7.625, + "saptavarga": 7.625, + "shadvarga": 7.25, + "shodashavarga": 7.875 + } + }, + "Ketu": { + "Kaalabala": { + "Pakshabala": 0.0 + } + }, + "Mars": { + "Cheshtabala": 22.864, + "Digbala": 46.955, + "Drikbala": 12.483, + "Ishtabala": 29.234, + "Kaalabala": { + "Ayanabala": 44.574, + "Natonnatabala": 12.5, + "Pakshabala": 49.333, + "Total": 106.407, + "Tribhagabala": 0.0, + "VarshaMaasaDinaHoraBala": 0.0, + "Yuddhabala": 0.0 + }, + "Kashtabala": 30.766, + "Naisargikabala": 17.14, + "Shadbala": { + "Rupas": 7.304, + "Total": 438.227 + }, + "Sthanabala": { + "Drekshanabala": 15.0, + "Kendradhibala": 15.0, + "Ojhayugmarashiamshabala": 15.0, + "Saptavargajabala": 150.0, + "Total": 232.378, + "Uchhabala": 37.378 + }, + "Vimshopaka": { + "dashavarga": 11.175, + "saptavarga": 8.2, + "shadvarga": 8.5, + "shodashavarga": 11.9 + } + }, + "Mercury": { + "Cheshtabala": 35.368, + "Digbala": 7.954, + "Drikbala": -10.985, + "Ishtabala": 25.199, + "Kaalabala": { + "Ayanabala": 12.089, + "Natonnatabala": 60.0, + "Pakshabala": 0.0, + "Total": 72.089, + "Tribhagabala": 0.0, + "VarshaMaasaDinaHoraBala": 0.0, + "Yuddhabala": 0.0 + }, + "Kashtabala": 34.801, + "Naisargikabala": 25.71, + "Shadbala": { + "Rupas": 4.031, + "Total": 241.84 + }, + "Sthanabala": { + "Drekshanabala": 0.0, + "Kendradhibala": 15.0, + "Ojhayugmarashiamshabala": 0.0, + "Saptavargajabala": 78.75, + "Total": 111.704, + "Uchhabala": 17.954 + }, + "Vimshopaka": { + "dashavarga": 12.45, + "saptavarga": 10.075, + "shadvarga": 9.3, + "shodashavarga": 11.2 + } + }, + "Moon": { + "Cheshtabala": 10.667, + "Digbala": 20.159, + "Drikbala": 13.946, + "Ishtabala": 21.625, + "Kaalabala": { + "Ayanabala": 39.945, + "Natonnatabala": 12.5, + "Pakshabala": 10.667, + "Total": 183.112, + "Tribhagabala": 60.0, + "VarshaMaasaDinaHoraBala": 60.0 + }, + "Kashtabala": 38.375, + "Naisargikabala": 51.43, + "Shadbala": { + "Rupas": 7.011, + "Total": 420.655 + }, + "Sthanabala": { + "Drekshanabala": 0.0, + "Kendradhibala": 30.0, + "Ojhayugmarashiamshabala": 30.0, + "Saptavargajabala": 37.5, + "Total": 141.341, + "Uchhabala": 43.841 + }, + "Vimshopaka": { + "dashavarga": 13.2, + "saptavarga": 11.5, + "shadvarga": 10.9, + "shodashavarga": 12.125 + } + }, + "Rahu": { + "Kaalabala": { + "Pakshabala": 0.0 + } + }, + "Saturn": { + "Cheshtabala": 58.137, + "Digbala": 24.313, + "Drikbala": 8.06, + "Ishtabala": 57.744, + "Kaalabala": { + "Ayanabala": 10.096, + "Natonnatabala": 12.5, + "Pakshabala": 49.333, + "Total": 71.929, + "Tribhagabala": 0.0, + "VarshaMaasaDinaHoraBala": 0.0, + "Yuddhabala": 0.0 + }, + "Kashtabala": 2.256, + "Naisargikabala": 8.57, + "Shadbala": { + "Rupas": 5.369, + "Total": 322.113 + }, + "Sthanabala": { + "Drekshanabala": 0.0, + "Kendradhibala": 15.0, + "Ojhayugmarashiamshabala": 30.0, + "Saptavargajabala": 48.75, + "Total": 151.104, + "Uchhabala": 57.354 + }, + "Vimshopaka": { + "dashavarga": 10.55, + "saptavarga": 12.975, + "shadvarga": 14.05, + "shodashavarga": 12.275 + } + }, + "Sun": { + "Cheshtabala": 37.06, + "Digbala": 29.175, + "Drikbala": -6.462, + "Ishtabala": 38.905, + "Kaalabala": { + "Ayanabala": 37.06, + "Natonnatabala": 47.5, + "Pakshabala": 49.333, + "Total": 148.893, + "Tribhagabala": 0.0, + "VarshaMaasaDinaHoraBala": 15.0 + }, + "Kashtabala": 21.095, + "Naisargikabala": 60.0, + "Shadbala": { + "Rupas": 7.033, + "Total": 422.007 + }, + "Sthanabala": { + "Drekshanabala": 0.0, + "Kendradhibala": 60.0, + "Ojhayugmarashiamshabala": 15.0, + "Saptavargajabala": 37.5, + "Total": 153.341, + "Uchhabala": 40.841 + }, + "Vimshopaka": { + "dashavarga": 11.875, + "saptavarga": 11.525, + "shadvarga": 10.55, + "shodashavarga": 10.125 + } + }, + "Venus": { + "Cheshtabala": 46.466, + "Digbala": 45.684, + "Drikbala": -4.511, + "Ishtabala": 37.532, + "Kaalabala": { + "Ayanabala": 5.019, + "Natonnatabala": 47.5, + "Pakshabala": 10.667, + "Total": 63.186, + "Tribhagabala": 0.0, + "VarshaMaasaDinaHoraBala": 0.0, + "Yuddhabala": 0.0 + }, + "Kashtabala": 22.468, + "Naisargikabala": 42.86, + "Shadbala": { + "Rupas": 5.108, + "Total": 306.501 + }, + "Sthanabala": { + "Drekshanabala": 15.0, + "Kendradhibala": 30.0, + "Ojhayugmarashiamshabala": 0.0, + "Saptavargajabala": 37.5, + "Total": 112.816, + "Uchhabala": 30.316 + }, + "Vimshopaka": { + "dashavarga": 10.95, + "saptavarga": 8.275, + "shadvarga": 8.05, + "shodashavarga": 11.275 + } + } + } + }, + "raw_hash": "8748eb3c54481929a1d7232eb40032bd7c86e6e9e59a38193c233a35c18fb972", + "scope": "jyotishganit_shadbala_surface_probe", + "source_path": "references/open_source_sources/jyotishganit/jyotishganit/components/strengths.py", + "status": "complete", + "truth_matrix_allowed": false +} diff --git a/references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json b/references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json new file mode 100644 index 00000000..de70db6c --- /dev/null +++ b/references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json @@ -0,0 +1,31 @@ +{ + "scope": "muhurta_oss_factor_scoring_queue", + "created_at": "2026-07-19", + "status": "queue_ready", + "claim_status": "partial", + "production_tuning_allowed": false, + "truth_matrix_allowed": false, + "local_oss_sources": [ + { + "project": "dashaflow", + "path": "references/open_source_sources/dashaflow/muhurtha.py", + "available_surface": "evaluate_muhurtha(activity, panchang, planets=None, lagna_sign=None)", + "reuse_boundary": "unknown/license must be checked before code reuse; reference/probe only now" + }, + { + "project": "rishi-ai-mcp", + "path": "references/open_source_sources/rishi-ai-mcp/test_rishi_ai_mcp.py", + "available_surface": "check_muhurtha_tool smoke expectations", + "reuse_boundary": "product workflow reference only unless license/runtime reviewed" + } + ], + "factor_rows": [ + {"factor": "panchanga_suddhi", "status": "oss_surface_present", "claim": "observation_only"}, + {"factor": "activity_specific_rules", "status": "oss_surface_present", "claim": "observation_only"}, + {"factor": "tarabala", "status": "local_probe_present_needs_oss_formula_alignment", "claim": "observation_only"}, + {"factor": "chandrabala", "status": "local_probe_present_needs_oss_formula_alignment", "claim": "observation_only"}, + {"factor": "rahu_kalam", "status": "local_probe_present_needs_public_interval_fixture", "claim": "observation_only"}, + {"factor": "abhijit", "status": "local_probe_present_needs_public_interval_fixture", "claim": "observation_only"} + ], + "boundary": "Queue prepares full scoring; do not output final Muhurta verdict until license, formula weights, public examples, and negative controls close." +} diff --git a/references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json b/references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json new file mode 100644 index 00000000..dc83ec46 --- /dev/null +++ b/references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json @@ -0,0 +1,580 @@ +{ + "boundary": "Batch public-case KP cusp runtime raw. Observation-only; public worked-example expected values are still required for numeric oracle readiness.", + "cases": [ + { + "case_id": "einstein_1879_aa", + "house_count": 12, + "name": "Albert Einstein", + "raw": { + "case_id": "einstein_1879_aa", + "houses": [ + { + "DegSize": 17.044, + "HouseNr": 1, + "LonDecDeg": 76.841, + "Nakshatra": "Ardra", + "NakshatraLord": "Rahu", + "Object": "I", + "Rasi": "Gemini", + "RasiLord": "Mercury", + "SignLonDMS": "+16:50:26", + "SignLonDecDeg": 16.841, + "SubLord": "Venus", + "SubSubLord": "Saturn" + }, + { + "DegSize": 18.923, + "HouseNr": 2, + "LonDecDeg": 93.885, + "Nakshatra": "Pushya", + "NakshatraLord": "Saturn", + "Object": "II", + "Rasi": "Cancer", + "RasiLord": "Moon", + "SignLonDMS": "+03:53:05", + "SignLonDecDeg": 3.885, + "SubLord": "Saturn", + "SubSubLord": "Mercury" + }, + { + "DegSize": 24.444, + "HouseNr": 3, + "LonDecDeg": 112.808, + "Nakshatra": "Āshleshā", + "NakshatraLord": "Mercury", + "Object": "III", + "Rasi": "Cancer", + "RasiLord": "Moon", + "SignLonDMS": "+22:48:29", + "SignLonDecDeg": 22.808, + "SubLord": "Moon", + "SubSubLord": "Saturn" + }, + { + "DegSize": 34.813, + "HouseNr": 4, + "LonDecDeg": 137.251, + "Nakshatra": "PūrvaPhalgunī", + "NakshatraLord": "Venus", + "Object": "IV", + "Rasi": "Leo", + "RasiLord": "Sun", + "SignLonDMS": "+17:15:05", + "SignLonDecDeg": 17.251, + "SubLord": "Moon", + "SubSubLord": "Venus" + }, + { + "DegSize": 45.122, + "HouseNr": 5, + "LonDecDeg": 172.065, + "Nakshatra": "Hasta", + "NakshatraLord": "Moon", + "Object": "V", + "Rasi": "Virgo", + "RasiLord": "Mercury", + "SignLonDMS": "+22:03:52", + "SignLonDecDeg": 22.065, + "SubLord": "Venus", + "SubSubLord": "Saturn" + }, + { + "DegSize": 39.654, + "HouseNr": 6, + "LonDecDeg": 217.186, + "Nakshatra": "Anuradha", + "NakshatraLord": "Saturn", + "Object": "VI", + "Rasi": "Scorpio", + "RasiLord": "Mars", + "SignLonDMS": "+07:11:11", + "SignLonDecDeg": 7.186, + "SubLord": "Mercury", + "SubSubLord": "Saturn" + }, + { + "DegSize": 17.044, + "HouseNr": 7, + "LonDecDeg": 256.841, + "Nakshatra": "PurvaAshadha", + "NakshatraLord": "Venus", + "Object": "VII", + "Rasi": "Sagittarius", + "RasiLord": "Jupiter", + "SignLonDMS": "+16:50:26", + "SignLonDecDeg": 16.841, + "SubLord": "Moon", + "SubSubLord": "Saturn" + }, + { + "DegSize": 18.923, + "HouseNr": 8, + "LonDecDeg": 273.885, + "Nakshatra": "UttaraAshadha", + "NakshatraLord": "Sun", + "Object": "VIII", + "Rasi": "Capricorn", + "RasiLord": "Saturn", + "SignLonDMS": "+03:53:05", + "SignLonDecDeg": 3.885, + "SubLord": "Saturn", + "SubSubLord": "Venus" + }, + { + "DegSize": 24.444, + "HouseNr": 9, + "LonDecDeg": 292.808, + "Nakshatra": "Shravana", + "NakshatraLord": "Moon", + "Object": "IX", + "Rasi": "Capricorn", + "RasiLord": "Saturn", + "SignLonDMS": "+22:48:29", + "SignLonDecDeg": 22.808, + "SubLord": "Sun", + "SubSubLord": "Rahu" + }, + { + "DegSize": 34.813, + "HouseNr": 10, + "LonDecDeg": 317.251, + "Nakshatra": "Shatabhisha", + "NakshatraLord": "Rahu", + "Object": "X", + "Rasi": "Aquarius", + "RasiLord": "Saturn", + "SignLonDMS": "+17:15:05", + "SignLonDecDeg": 17.251, + "SubLord": "Venus", + "SubSubLord": "Mercury" + }, + { + "DegSize": 45.122, + "HouseNr": 11, + "LonDecDeg": 352.065, + "Nakshatra": "Revati", + "NakshatraLord": "Mercury", + "Object": "XI", + "Rasi": "Pisces", + "RasiLord": "Jupiter", + "SignLonDMS": "+22:03:52", + "SignLonDecDeg": 22.065, + "SubLord": "Sun", + "SubSubLord": "Mercury" + }, + { + "DegSize": 39.654, + "HouseNr": 12, + "LonDecDeg": 37.186, + "Nakshatra": "Krittika", + "NakshatraLord": "Sun", + "Object": "XII", + "Rasi": "Taurus", + "RasiLord": "Venus", + "SignLonDMS": "+07:11:11", + "SignLonDecDeg": 7.186, + "SubLord": "Ketu", + "SubSubLord": "Sun" + } + ], + "name": "Albert Einstein", + "sources": [ + "https://www.astro.com/astro-databank/Einstein,_Albert", + "https://vedastro.org/AstroDataBank/Person/Albert_Einstein" + ] + }, + "raw_hash": "ae871ee36c3ef5d88687206eb72fe5cac46d2ccbdc55b02b3776cbb8cacad78e", + "status": "complete" + }, + { + "case_id": "steve_jobs_1955_aa", + "house_count": 12, + "name": "Steve Jobs", + "raw": { + "case_id": "steve_jobs_1955_aa", + "houses": [ + { + "DegSize": 25.952, + "HouseNr": 1, + "LonDecDeg": 149.152, + "Nakshatra": "UttaraPhalgunī", + "NakshatraLord": "Sun", + "Object": "I", + "Rasi": "Leo", + "RasiLord": "Sun", + "SignLonDMS": "+29:09:09", + "SignLonDecDeg": 29.152, + "SubLord": "Mars", + "SubSubLord": "Sun" + }, + { + "DegSize": 30.11, + "HouseNr": 2, + "LonDecDeg": 175.104, + "Nakshatra": "Chitra", + "NakshatraLord": "Mars", + "Object": "II", + "Rasi": "Virgo", + "RasiLord": "Mercury", + "SignLonDMS": "+25:06:14", + "SignLonDecDeg": 25.104, + "SubLord": "Rahu", + "SubSubLord": "Mercury" + }, + { + "DegSize": 32.962, + "HouseNr": 3, + "LonDecDeg": 205.214, + "Nakshatra": "Vishakha", + "NakshatraLord": "Jupiter", + "Object": "III", + "Rasi": "Libra", + "RasiLord": "Venus", + "SignLonDMS": "+25:12:52", + "SignLonDecDeg": 25.214, + "SubLord": "Mercury", + "SubSubLord": "Rahu" + }, + { + "DegSize": 33.159, + "HouseNr": 4, + "LonDecDeg": 238.176, + "Nakshatra": "Jyeshtha", + "NakshatraLord": "Mercury", + "Object": "IV", + "Rasi": "Scorpio", + "RasiLord": "Mars", + "SignLonDMS": "+28:10:35", + "SignLonDecDeg": 28.176, + "SubLord": "Saturn", + "SubSubLord": "Saturn" + }, + { + "DegSize": 30.735, + "HouseNr": 5, + "LonDecDeg": 271.335, + "Nakshatra": "UttaraAshadha", + "NakshatraLord": "Sun", + "Object": "V", + "Rasi": "Capricorn", + "RasiLord": "Saturn", + "SignLonDMS": "+01:20:06", + "SignLonDecDeg": 1.335, + "SubLord": "Jupiter", + "SubSubLord": "Jupiter" + }, + { + "DegSize": 27.082, + "HouseNr": 6, + "LonDecDeg": 302.07, + "Nakshatra": "Dhanishta", + "NakshatraLord": "Mars", + "Object": "VI", + "Rasi": "Aquarius", + "RasiLord": "Saturn", + "SignLonDMS": "+02:04:13", + "SignLonDecDeg": 2.07, + "SubLord": "Ketu", + "SubSubLord": "Sun" + }, + { + "DegSize": 25.952, + "HouseNr": 7, + "LonDecDeg": 329.152, + "Nakshatra": "PurvaBhādrapadā", + "NakshatraLord": "Jupiter", + "Object": "VII", + "Rasi": "Aquarius", + "RasiLord": "Saturn", + "SignLonDMS": "+29:09:09", + "SignLonDecDeg": 29.152, + "SubLord": "Sun", + "SubSubLord": "Saturn" + }, + { + "DegSize": 30.11, + "HouseNr": 8, + "LonDecDeg": 355.104, + "Nakshatra": "Revati", + "NakshatraLord": "Mercury", + "Object": "VIII", + "Rasi": "Pisces", + "RasiLord": "Jupiter", + "SignLonDMS": "+25:06:14", + "SignLonDecDeg": 25.104, + "SubLord": "Rahu", + "SubSubLord": "Mercury" + }, + { + "DegSize": 32.962, + "HouseNr": 9, + "LonDecDeg": 25.214, + "Nakshatra": "Bharani", + "NakshatraLord": "Venus", + "Object": "IX", + "Rasi": "Aries", + "RasiLord": "Mars", + "SignLonDMS": "+25:12:52", + "SignLonDecDeg": 25.214, + "SubLord": "Mercury", + "SubSubLord": "Rahu" + }, + { + "DegSize": 33.159, + "HouseNr": 10, + "LonDecDeg": 58.176, + "Nakshatra": "Mrigashīrsha", + "NakshatraLord": "Mars", + "Object": "X", + "Rasi": "Taurus", + "RasiLord": "Venus", + "SignLonDMS": "+28:10:35", + "SignLonDecDeg": 28.176, + "SubLord": "Saturn", + "SubSubLord": "Saturn" + }, + { + "DegSize": 30.735, + "HouseNr": 11, + "LonDecDeg": 91.335, + "Nakshatra": "Punarvasu", + "NakshatraLord": "Jupiter", + "Object": "XI", + "Rasi": "Cancer", + "RasiLord": "Moon", + "SignLonDMS": "+01:20:06", + "SignLonDecDeg": 1.335, + "SubLord": "Rahu", + "SubSubLord": "Rahu" + }, + { + "DegSize": 27.082, + "HouseNr": 12, + "LonDecDeg": 122.07, + "Nakshatra": "Maghā", + "NakshatraLord": "Ketu", + "Object": "XII", + "Rasi": "Leo", + "RasiLord": "Sun", + "SignLonDMS": "+02:04:13", + "SignLonDecDeg": 2.07, + "SubLord": "Venus", + "SubSubLord": "Jupiter" + } + ], + "name": "Steve Jobs", + "sources": [ + "https://www.astro.com/astro-databank/Jobs,_Steve", + "https://vedastro.org/AstroDataBank/Person/Steve_Jobs" + ] + }, + "raw_hash": "696c5a81e9e98f48d8ec0822b6517c010f9062f5f5b0f5ca6cd063459b4af3b1", + "status": "complete" + }, + { + "case_id": "barack_obama_1961_aa", + "house_count": 12, + "name": "Barack Obama", + "raw": { + "case_id": "barack_obama_1961_aa", + "houses": [ + { + "DegSize": 37.856, + "HouseNr": 1, + "LonDecDeg": 294.83, + "Nakshatra": "Dhanishta", + "NakshatraLord": "Mars", + "Object": "I", + "Rasi": "Capricorn", + "RasiLord": "Saturn", + "SignLonDMS": "+24:49:49", + "SignLonDecDeg": 24.83, + "SubLord": "Rahu", + "SubSubLord": "Saturn" + }, + { + "DegSize": 34.391, + "HouseNr": 2, + "LonDecDeg": 332.687, + "Nakshatra": "PurvaBhādrapadā", + "NakshatraLord": "Jupiter", + "Object": "II", + "Rasi": "Pisces", + "RasiLord": "Jupiter", + "SignLonDMS": "+02:41:12", + "SignLonDecDeg": 2.687, + "SubLord": "Rahu", + "SubSubLord": "Venus" + }, + { + "DegSize": 28.595, + "HouseNr": 3, + "LonDecDeg": 7.077, + "Nakshatra": "Ashwini", + "NakshatraLord": "Ketu", + "Object": "III", + "Rasi": "Aries", + "RasiLord": "Mars", + "SignLonDMS": "+07:04:39", + "SignLonDecDeg": 7.077, + "SubLord": "Rahu", + "SubSubLord": "Venus" + }, + { + "DegSize": 25.087, + "HouseNr": 4, + "LonDecDeg": 35.672, + "Nakshatra": "Krittika", + "NakshatraLord": "Sun", + "Object": "IV", + "Rasi": "Taurus", + "RasiLord": "Venus", + "SignLonDMS": "+05:40:19", + "SignLonDecDeg": 5.672, + "SubLord": "Mercury", + "SubSubLord": "Venus" + }, + { + "DegSize": 25.042, + "HouseNr": 5, + "LonDecDeg": 60.759, + "Nakshatra": "Mrigashīrsha", + "NakshatraLord": "Mars", + "Object": "V", + "Rasi": "Gemini", + "RasiLord": "Mercury", + "SignLonDMS": "+00:45:34", + "SignLonDecDeg": 0.759, + "SubLord": "Mercury", + "SubSubLord": "Sun" + }, + { + "DegSize": 29.029, + "HouseNr": 6, + "LonDecDeg": 85.801, + "Nakshatra": "Punarvasu", + "NakshatraLord": "Jupiter", + "Object": "VI", + "Rasi": "Gemini", + "RasiLord": "Mercury", + "SignLonDMS": "+25:48:04", + "SignLonDecDeg": 25.801, + "SubLord": "Ketu", + "SubSubLord": "Ketu" + }, + { + "DegSize": 37.856, + "HouseNr": 7, + "LonDecDeg": 114.83, + "Nakshatra": "Āshleshā", + "NakshatraLord": "Mercury", + "Object": "VII", + "Rasi": "Cancer", + "RasiLord": "Moon", + "SignLonDMS": "+24:49:49", + "SignLonDecDeg": 24.83, + "SubLord": "Rahu", + "SubSubLord": "Saturn" + }, + { + "DegSize": 34.391, + "HouseNr": 8, + "LonDecDeg": 152.687, + "Nakshatra": "UttaraPhalgunī", + "NakshatraLord": "Sun", + "Object": "VIII", + "Rasi": "Virgo", + "RasiLord": "Mercury", + "SignLonDMS": "+02:41:12", + "SignLonDecDeg": 2.687, + "SubLord": "Jupiter", + "SubSubLord": "Mars" + }, + { + "DegSize": 28.595, + "HouseNr": 9, + "LonDecDeg": 187.077, + "Nakshatra": "Svati", + "NakshatraLord": "Rahu", + "Object": "IX", + "Rasi": "Libra", + "RasiLord": "Venus", + "SignLonDMS": "+07:04:39", + "SignLonDecDeg": 7.077, + "SubLord": "Rahu", + "SubSubLord": "Jupiter" + }, + { + "DegSize": 25.087, + "HouseNr": 10, + "LonDecDeg": 215.672, + "Nakshatra": "Anuradha", + "NakshatraLord": "Saturn", + "Object": "X", + "Rasi": "Scorpio", + "RasiLord": "Mars", + "SignLonDMS": "+05:40:19", + "SignLonDecDeg": 5.672, + "SubLord": "Mercury", + "SubSubLord": "Mercury" + }, + { + "DegSize": 25.042, + "HouseNr": 11, + "LonDecDeg": 240.759, + "Nakshatra": "Mula", + "NakshatraLord": "Ketu", + "Object": "XI", + "Rasi": "Sagittarius", + "RasiLord": "Jupiter", + "SignLonDMS": "+00:45:34", + "SignLonDecDeg": 0.759, + "SubLord": "Ketu", + "SubSubLord": "Mercury" + }, + { + "DegSize": 29.029, + "HouseNr": 12, + "LonDecDeg": 265.801, + "Nakshatra": "PurvaAshadha", + "NakshatraLord": "Venus", + "Object": "XII", + "Rasi": "Sagittarius", + "RasiLord": "Jupiter", + "SignLonDMS": "+25:48:04", + "SignLonDecDeg": 25.801, + "SubLord": "Mercury", + "SubSubLord": "Saturn" + } + ], + "name": "Barack Obama", + "sources": [ + "https://www.astro.com/astro-databank/Obama,_Barack", + "https://vedastro.org/AstroDataBank/Person/Barack_Obama" + ] + }, + "raw_hash": "23cc6856299774a877fc00f2797aaf80b29a3a98924e3f33bccdbcbcb5fc6de0", + "status": "complete" + } + ], + "claim_status": "observation_only", + "created_at": "2026-07-19", + "dependency_identity": { + "observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872", + "required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal" + }, + "production_tuning_allowed": false, + "scope": "vedicastro_kp_cusp_batch_probe", + "settings": { + "ayanamsa": "Krishnamurti", + "house_system": "Placidus", + "timezone_policy": "timezonefinder_from_public_lat_lon" + }, + "status": "complete", + "summary": { + "blocked_count": 0, + "case_count": 3, + "complete_count": 3 + }, + "truth_matrix_allowed": false +} diff --git a/scripts/active_rectification_questions.py b/scripts/active_rectification_questions.py index 558b5fae..4ee99344 100644 --- a/scripts/active_rectification_questions.py +++ b/scripts/active_rectification_questions.py @@ -179,25 +179,6 @@ def _kp_cusp_snapshot(chart: dict[str, Any]) -> dict[str, Any]: return snapshot -def _prioritize_questions(questions: list[dict[str, Any]], scan: dict[str, Any]) -> tuple[list[dict[str, Any]], str]: - """Prefer questions whose declared layers actually differ in sampled candidates.""" - samples = scan.get("samples") or [] - if len(samples) < 2 or not all(isinstance(sample.get("varga_lagna"), dict) for sample in samples): - return questions, "generic_fallback_missing_candidate_recast" - changed: set[str] = set() - for layer in ("D4", "D9", "D10", "D24", "D30"): - values = {str((sample["varga_lagna"].get(layer) or {}).get("sign_idx")) for sample in samples} - if len(values) > 1: - changed.add(layer) - for layer in ("A7", "A10", "UL"): - values = {str(((sample.get("arudha") or {}).get(layer) or {}).get("sign_idx")) for sample in samples} - if len(values) > 1: - changed.add(layer) - if not changed: - return questions, "generic_fallback_no_sampled_difference" - return sorted(questions, key=lambda question: (not bool(changed.intersection(question.get("sensitivity") or [])), question.get("round", 99))), "candidate_difference_ranked" - - def build_questionnaire( birth_time: str, uncertainty_minutes: int = 30, @@ -225,16 +206,18 @@ def build_questionnaire( "D": {"effect": "neutral", "cluster": "neutral", "points": 0}, }, }) - scan = _candidate_scan( - _parse_time(birth_time), uncertainty_minutes, step_minutes, - lat=lat, lon=lon, tz=tz, ayanamsa=ayanamsa, - ) - questions, question_selection = _prioritize_questions(questions, scan) return { "scope": "active_birth_time_rectification_questionnaire", "schema_version": 1, - "candidate_scan": scan, - "question_selection": question_selection, + "candidate_scan": _candidate_scan( + _parse_time(birth_time), + uncertainty_minutes, + step_minutes, + lat=lat, + lon=lon, + tz=tz, + ayanamsa=ayanamsa, + ), "workflow": [ "candidate_time_scan", "varga_arudha_kp_sensitivity_diff", @@ -248,7 +231,7 @@ def build_questionnaire( "2": "domain follow-up", "3": "fine confirmation", }, - "sensitivity_layers": ["D9", "D10", "D24", "D30", "D60", "D4", "UL", "A7", "A10", "Vimshottari", "Narayana", "Chara"], + "sensitivity_layers": ["D9", "D10", "D24", "D30", "D60", "D4", "UL", "A7", "A10", "KP_cusp", "Vimshottari", "Narayana", "Chara"], "questions": questions, "boundary": "Question generation only; final rectification requires scoring answers against actual candidate chart differences.", } diff --git a/scripts/jyotishganit_shadbala_surface_probe.py b/scripts/jyotishganit_shadbala_surface_probe.py new file mode 100644 index 00000000..52d6cbd2 --- /dev/null +++ b/scripts/jyotishganit_shadbala_surface_probe.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Extract jyotishganit Shadbala object surface raw/hash.""" +from __future__ import annotations + +import argparse +import hashlib +import json +import sys +from datetime import datetime +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[1] +SRC = ROOT / "references/open_source_sources/jyotishganit" + + +def clean(v: Any) -> Any: + if isinstance(v, dict): + return {k: clean(val) for k, val in v.items()} + if isinstance(v, list): + return [clean(x) for x in v] + if hasattr(v, "item"): + try: + return v.item() + except Exception: + pass + return v + + +def stable(data: Any) -> str: + return json.dumps(clean(data), ensure_ascii=False, sort_keys=True, separators=(",", ":"), default=str) + + +def build(args: argparse.Namespace) -> dict[str, Any]: + sys.path.insert(0, str(SRC)) + from jyotishganit.main import calculate_birth_chart # type: ignore + + chart = calculate_birth_chart( + datetime.fromisoformat(args.datetime), + args.latitude, + args.longitude, + args.timezone, + args.location, + args.name, + ) + rows = { + p.celestial_body: clean(p.shadbala) + for p in chart.d1_chart.planets + if p.shadbala + } + required = ["Sthanabala", "Digbala", "Kaalabala", "Cheshtabala", "Naisargikabala", "Drikbala", "Shadbala"] + coverage = { + body: {key: key in values for key in required} + for body, values in rows.items() + } + raw = {"request": vars(args), "shadbala": rows} + return { + "scope": "jyotishganit_shadbala_surface_probe", + "created_at": "2026-07-19", + "status": "complete" if rows else "missing", + "claim_status": "observation_only", + "production_tuning_allowed": False, + "truth_matrix_allowed": False, + "source_path": "references/open_source_sources/jyotishganit/jyotishganit/components/strengths.py", + "api_surface": { + "calculate_all_strengths": True, + "compute_shadbala": True, + "six_strengths": required[:6], + }, + "coverage": coverage, + "raw_hash": hashlib.sha256(stable(raw).encode("utf-8")).hexdigest(), + "raw": raw, + "boundary": "jyotishganit exposes Shadbala via object surface, not top-level to_dict. Observation-only until component units and external worked examples are compared.", + } + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("--datetime", default="1955-02-24T19:15:00") + ap.add_argument("--latitude", type=float, default=37.3382) + ap.add_argument("--longitude", type=float, default=-122.0383) + ap.add_argument("--timezone", type=float, default=-8.0) + ap.add_argument("--location", default="San Francisco, CA") + ap.add_argument("--name", default="Steve Jobs public") + ap.add_argument("--output") + args = ap.parse_args() + payload = build(args) + text = json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True) + if args.output: + Path(args.output).write_text(text + "\n", encoding="utf-8") + print(text) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/vedicastro_kp_cusp_batch_probe.py b/scripts/vedicastro_kp_cusp_batch_probe.py new file mode 100644 index 00000000..935b7dbc --- /dev/null +++ b/scripts/vedicastro_kp_cusp_batch_probe.py @@ -0,0 +1,96 @@ +#!/usr/bin/env python3 +"""Batch VedicAstro KP cusp raw/hash over public cases.""" +from __future__ import annotations + +import argparse +import hashlib +import json +import sys +from pathlib import Path +from typing import Any + +ROOT = Path(__file__).resolve().parents[1] +SRC = ROOT / "references/open_source_sources/VedicAstro" +CASES = ROOT / "references/public_oracle_cases.json" + + +def stable(data: Any) -> str: + return json.dumps(data, ensure_ascii=False, sort_keys=True, separators=(",", ":"), default=str) + + +def build(args: argparse.Namespace) -> dict[str, Any]: + sys.path.insert(0, str(SRC)) + from vedicastro.VedicAstro import VedicHoroscopeData # type: ignore + + cases = json.loads(Path(args.cases).read_text(encoding="utf-8"))["cases"] + rows = [] + for case in cases[: args.limit]: + b = case["birth"] + try: + v = VedicHoroscopeData( + b["year"], + b["month"], + b["day"], + b["hour"], + b["minute"], + b.get("second", 0), + b["lat"], + b["lon"], + tz=None, + ayanamsa=args.ayanamsa, + house_system=args.house_system, + ) + houses = [r._asdict() for r in v.get_houses_data_from_chart(v.generate_chart())] + raw = {"case_id": case["id"], "name": case["name"], "sources": case.get("sources", []), "houses": houses} + rows.append( + { + "case_id": case["id"], + "name": case["name"], + "status": "complete", + "house_count": len(houses), + "raw_hash": hashlib.sha256(stable(raw).encode("utf-8")).hexdigest(), + "raw": raw, + } + ) + except Exception as exc: + rows.append({"case_id": case["id"], "name": case["name"], "status": "blocked", "error": str(exc), "error_type": type(exc).__name__}) + return { + "scope": "vedicastro_kp_cusp_batch_probe", + "created_at": "2026-07-19", + "status": "complete", + "claim_status": "observation_only", + "production_tuning_allowed": False, + "truth_matrix_allowed": False, + "dependency_identity": { + "required_flatlib_source": "git+https://github.com/diliprk/flatlib.git@sidereal", + "observed_pinned_flatlib_commit": "2618c348ce1ab2588548f935ff65f031630b4872", + }, + "settings": {"ayanamsa": args.ayanamsa, "house_system": args.house_system, "timezone_policy": "timezonefinder_from_public_lat_lon"}, + "summary": { + "case_count": len(rows), + "complete_count": sum(1 for r in rows if r["status"] == "complete"), + "blocked_count": sum(1 for r in rows if r["status"] != "complete"), + }, + "cases": rows, + "boundary": "Batch public-case KP cusp runtime raw. Observation-only; public worked-example expected values are still required for numeric oracle readiness.", + } + + +def main() -> int: + ap = argparse.ArgumentParser() + ap.add_argument("--cases", default=str(CASES)) + ap.add_argument("--limit", type=int, default=3) + ap.add_argument("--ayanamsa", default="Krishnamurti") + ap.add_argument("--house-system", default="Placidus") + ap.add_argument("--output") + args = ap.parse_args() + payload = build(args) + text = json.dumps(payload, ensure_ascii=False, indent=2, sort_keys=True) + if args.output: + Path(args.output).write_text(text + "\n", encoding="utf-8") + print(text) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/tests/test_ordered_remaining_oss_completion.py b/tests/test_ordered_remaining_oss_completion.py new file mode 100644 index 00000000..ff0d076d --- /dev/null +++ b/tests/test_ordered_remaining_oss_completion.py @@ -0,0 +1,66 @@ +import json +import os +import subprocess +import sys +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +RUNTIME = Path("/tmp/vedicastro_sidereal_flatlib_probe.Nt8ANZ") +INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" + + +def test_jyotishganit_shadbala_surface_artifact_has_six_strengths(): + data = json.loads((ROOT / "references/oracle/jyotishganit_shadbala_surface_probe_steve_jobs_2026_07_19.json").read_text(encoding="utf-8")) + assert data["scope"] == "jyotishganit_shadbala_surface_probe" + assert data["claim_status"] == "observation_only" + assert data["raw_hash"] + sun = data["raw"]["shadbala"]["Sun"] + for key in ["Sthanabala", "Digbala", "Kaalabala", "Cheshtabala", "Naisargikabala", "Drikbala", "Shadbala"]: + assert key in sun + + +def test_vedicastro_batch_cusp_probe_artifact_has_public_cases(): + data = json.loads((ROOT / "references/oracle/vedicastro_kp_cusp_batch_probe_2026_07_19.json").read_text(encoding="utf-8")) + assert data["scope"] == "vedicastro_kp_cusp_batch_probe" + assert data["claim_status"] == "observation_only" + assert data["summary"]["case_count"] >= 3 + assert data["summary"]["complete_count"] >= 1 + for row in data["cases"]: + if row["status"] == "complete": + assert row["house_count"] == 12 + assert row["raw_hash"] + + +def test_vedicastro_batch_runtime_when_temp_env_exists(): + if not RUNTIME.exists(): + return + env = {**os.environ, "PYTHONPATH": f"{RUNTIME}:{ROOT / 'references/open_source_sources/VedicAstro'}"} + out = subprocess.check_output([sys.executable, "scripts/vedicastro_kp_cusp_batch_probe.py", "--limit", "1"], cwd=ROOT, text=True, env=env) + data = json.loads(out) + assert data["summary"]["case_count"] == 1 + assert data["claim_status"] == "observation_only" + + +def test_remaining_queues_are_not_truth_upgrades(): + for rel in [ + "references/oracle/d1_d60_public_source_candidate_queue_2026_07_19.json", + "references/oracle/muhurta_oss_factor_scoring_queue_2026_07_19.json", + "references/oracle/four_engine_comparison_queue_2026_07_19.json", + ]: + data = json.loads((ROOT / rel).read_text(encoding="utf-8")) + assert data["production_tuning_allowed"] is False + assert data["truth_matrix_allowed"] is False + + +def test_evidence_index_registers_ordered_remaining_packets(): + index = json.loads(INDEX.read_text(encoding="utf-8")) + packets = {row["packet_id"]: row for row in index["packets"]} + for packet_id in [ + "jyotishganit_shadbala_surface_probe", + "vedicastro_kp_cusp_batch_probe", + "d1_d60_public_source_candidate_queue", + "muhurta_oss_factor_scoring_queue", + "four_engine_comparison_queue", + ]: + assert packet_id in packets