diff --git a/SKILL.md b/SKILL.md index 2a200d4a..1a86122f 100644 --- a/SKILL.md +++ b/SKILL.md @@ -144,10 +144,10 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力 **普通用户解释时必须显式区分基础排盘高可信与高阶绝对值待外部校准。** - Dasha-only 外部证据当前目标集已闭环:`dasha_external_oracle_evidence_validation.valid_dasha_packets: 3/3`;Steve Jobs / Lahiri、REDACTED_YEAR Lahiri 模板与 1800 Delhi historical epoch 的 Vimshottari 起始边界来自 PyJHora 4.8.7 隔离黑盒 stdout artifact。 -- 全局 Dasha/Shadbala Calibration Status 仍未完成:`external_oracle_evidence_validation.valid_packets: 3`,`ready_for_calibration: 3`;三个 Shadbala 外部绝对值样本已通过,剩余 Shadbala rows 与非 Dasha 靶点尚未封顶。 +- 全局 Dasha/Shadbala Calibration Status 仍未完成:`external_oracle_evidence_validation.valid_packets: 4`,`ready_for_calibration: 4`;Shadbala 外部绝对值当前目标集已通过 4/4,Raman 扩展样本与非 Dasha 靶点尚未封顶。 - D1/D9/SAV 高可信;Dasha 精细日期可引用已验证 Dasha-only 样本的局部进度,但不得把全部大运边界、Shadbala 绝对值或全局精度说成已完成外部校准。 - `production_tuning_allowed: false` 前,禁止为了贴合单份 PDF、单个 JHora 截图或本仓库本地输出而改生产常数。 -- 对普通用户的建议话术:基础落座、D9、SAV 可作为稳定证据;当前 Dasha-only 目标集已完成外部黑盒验证,但多 Dasha 家族、Antardasha/Pratyantar 细边界仍需扩展;Shadbala 已有三个外部六分量样本,绝对值断语仍需更多 JHora/PyJHora/公开书例证据后再提升置信度。 +- 对普通用户的建议话术:基础落座、D9、SAV 可作为稳定证据;当前 Dasha-only 目标集已完成外部黑盒验证,但多 Dasha 家族、Antardasha/Pratyantar 细边界仍需扩展;Shadbala 当前目标集已有四个外部六分量样本,绝对值断语可引用 4/4 闭合进度;但跨软件差异、Raman 扩展样本与公开书例仍需更多证据后再提升到全局置信。 - 工作流要求:Dasha-only packet 用 `python3 scripts/dasha_oracle_evidence_validator.py --queue-file ` 验证;全局校准仍必须跑 `python3 scripts/oracle_evidence_validator.py --queue-file `,两者不可混用。 ### Ashtakavarga 口径冻结(v6.0.8-av-calibration) diff --git a/docs/research/oracle_closure_master_dashboard_latest.md b/docs/research/oracle_closure_master_dashboard_latest.md index 5139eff7..da73923d 100644 --- a/docs/research/oracle_closure_master_dashboard_latest.md +++ b/docs/research/oracle_closure_master_dashboard_latest.md @@ -1,12 +1,12 @@ # Jyotish External Oracle Closure Master Dashboard -Generated: `2026-06-26T18:24:45.835960+00:00` +Generated: `2026-06-26T18:30:41.843216+00:00` ## Summary - total_tasks: `12` -- external_verified_tasks: `6` -- open_tasks: `6` +- external_verified_tasks: `7` +- open_tasks: `5` - can_claim_global_oracle_closure: `false` - production_tuning_allowed: `false` @@ -16,7 +16,7 @@ Generated: `2026-06-26T18:24:45.835960+00:00` |---|---:|---:|---|---:|---:|---:|---:| | `dasha` | 3 | 3 | `complete` | 0 | 0 | 0 | 0 | | `tajika_sahams` | 5 | 0 | `template_steve_jobs_varshaphala_1984_lahiri` | 15 | 15 | 5 | 10 | -| `shadbala` | 4 | 3 | `template_extreme_latitude_kp` | 54 | 54 | 5 | 49 | +| `shadbala` | 4 | 4 | `template_redacted_place_shadbala_raman` | 55 | 55 | 5 | 50 | ## Next Action Order @@ -31,17 +31,6 @@ Generated: `2026-06-26T18:24:45.835960+00:00` python3 scripts/tajika_annual_oracle_queue.py --oracle-file references/oracle/tajika_annual_oracle_cases.json --apply-packet references/oracle/artifacts/pending_packets/external_template_steve_jobs_varshaphala_1984_lahiri.json --format json ``` -### shadbala - -- case_id: `template_extreme_latitude_kp` -- capture_id: `external_template_extreme_latitude_kp` -- missing_field_count: `54` -- manual_entry_count: `54` - -```bash -python3 scripts/oracle_collection_queue.py --oracle-file references/oracle/dasha_shadbala_oracle_cases.json --apply-packet references/oracle/artifacts/pending_packets/external_template_extreme_latitude_kp.json --format json -``` - ## Boundary This dashboard merges external evidence readiness only. It does not claim prediction accuracy, does not tune production constants, and does not treat local engine output as oracle evidence. diff --git a/docs/research/public_benchmark_dashboard_latest.md b/docs/research/public_benchmark_dashboard_latest.md index 9741944e..eecfdd59 100644 --- a/docs/research/public_benchmark_dashboard_latest.md +++ b/docs/research/public_benchmark_dashboard_latest.md @@ -1,6 +1,6 @@ # Public Jyotish Benchmark Dashboard -Generated: `2026-06-26T18:24:45.350060+00:00` +Generated: `2026-06-26T18:30:41.336555+00:00` ## Capability Registry @@ -11,18 +11,18 @@ Generated: `2026-06-26T18:24:45.350060+00:00` ## Dasha/Shadbala Oracle Readiness - total_packets: `5` -- valid_packets: `3` -- ready_for_calibration: `3` +- valid_packets: `4` +- ready_for_calibration: `4` - production_tuning_allowed: `false` - valid_dasha_packets: `3` - total_dasha_packets: `3` -- external_verified_shadbala_tasks: `3` +- external_verified_shadbala_tasks: `4` - shadbala_task_count: `4` ## Boundary Audit -- external_verified_template_cases: `3` -- template_comparison_count: `3` +- external_verified_template_cases: `4` +- template_comparison_count: `4` - production_tuning_recommended: `false` ## Global First Claim @@ -32,7 +32,7 @@ Generated: `2026-06-26T18:24:45.350060+00:00` ## Remaining Gap -Dasha-only external oracle readiness is 3/3; Shadbala external absolute-value readiness is 3/4; public long-term benchmark history is not yet comparable to the strongest global open-source projects. +Dasha-only external oracle readiness is 3/3; Shadbala external absolute-value readiness is 4/4; public long-term benchmark history is not yet comparable to the strongest global open-source projects. ## Next Actions diff --git a/docs/research/skill_gap_truth_audit_latest.md b/docs/research/skill_gap_truth_audit_latest.md index ba21aee3..25e7f7b5 100644 --- a/docs/research/skill_gap_truth_audit_latest.md +++ b/docs/research/skill_gap_truth_audit_latest.md @@ -1,6 +1,6 @@ # Jyotish Skill Gap Truth Audit -Generated: `2026-06-26T18:24:46.495916+00:00` +Generated: `2026-06-26T18:30:42.500897+00:00` ## Public Claim Boundary @@ -19,8 +19,8 @@ Generated: `2026-06-26T18:24:46.495916+00:00` ## External Oracle Closure - total_tasks: `12` -- external_verified_tasks: `6` -- open_tasks: `6` +- external_verified_tasks: `7` +- open_tasks: `5` - can_claim_global_oracle_closure: `false` ## Remaining Hard Fronts @@ -43,8 +43,8 @@ Generated: `2026-06-26T18:24:46.495916+00:00` - id: `shadbala_external_absolute_values` - priority: `P0` -- status: `active_partial_external_evidence` -- current_truth: Internal six-component Rupa/Virupa aggregation is usable and three external Shadbala absolute-value packets are accepted; remaining Shadbala rows and broader source comparisons are not complete. +- status: `active_target_set_closed` +- current_truth: Internal six-component Rupa/Virupa aggregation is usable and the current Shadbala external absolute-value target set is closed at 4/4 packets; Raman expansion rows and broader source comparisons are not complete. ### Tajika / Sahams annual closure diff --git a/references/oracle/artifacts/pending_packets/external_template_extreme_latitude_kp_pyjhora_20260627.json b/references/oracle/artifacts/pending_packets/external_template_extreme_latitude_kp_pyjhora_20260627.json new file mode 100644 index 00000000..e104b912 --- /dev/null +++ b/references/oracle/artifacts/pending_packets/external_template_extreme_latitude_kp_pyjhora_20260627.json @@ -0,0 +1,115 @@ +{ + "capture_id": "external_template_extreme_latitude_kp", + "status": "external_verified", + "case_id": "template_extreme_latitude_kp", + "birth": { + "year": 2000, + "month": 6, + "day": 21, + "hour": 0, + "minute": 0, + "second": 0, + "lat": 65.0, + "lon": 15.0, + "tz": 1 + }, + "settings": { + "ayanamsa": "kp", + "node_mode": "true" + }, + "required_metadata_fields": [ + "tool_name", + "tool_version_or_url", + "capture_date", + "source_artifact", + "ayanamsa", + "node_mode", + "timezone", + "operator_note" + ], + "metadata": { + "tool_name": "PyJHora", + "tool_version_or_url": "PyJHora 4.8.7 isolated /tmp black-box run", + "capture_date": "2026-06-27", + "source_artifact": "references/oracle/artifacts/pyjhora_extreme_latitude_kp_shadbala_stdout_20260627.txt", + "ayanamsa": "kp", + "node_mode": "PyJHora default", + "timezone": "UTC+01:00", + "operator_note": "Black-box stdout from isolated /tmp virtualenv for synthetic high-latitude KP case. PyJHora AGPL code was not copied into this repository; only generated output is stored as external evidence. Shadbala raw values are Virupa; packet stores Rupa values by dividing by 60." + }, + "target_placeholders": { + "target.ascendant_longitude_deg": 327.8303, + "target.shadbala_components": { + "Jupiter": { + "chesta": 0.1965, + "dig": 3.161, + "drik": -0.1575, + "kala": 0.631, + "naisargika": 0.5715, + "sthana": 3.225, + "total_rupa": 7.6275 + }, + "Mars": { + "chesta": 0.0128, + "dig": 2.0753, + "drik": -0.0493, + "kala": 0.0193, + "naisargika": 0.2857, + "sthana": 2.4897, + "total_rupa": 4.8335 + }, + "Mercury": { + "chesta": 0.8185, + "dig": 2.4763, + "drik": -0.0563, + "kala": 0.3437, + "naisargika": 0.4285, + "sthana": 2.6547, + "total_rupa": 6.6654 + }, + "Moon": { + "chesta": 0.0, + "dig": 1.3733, + "drik": -0.2927, + "kala": 0.245, + "naisargika": 0.8572, + "sthana": 1.5518, + "total_rupa": 3.7346 + }, + "Saturn": { + "chesta": 0.1935, + "dig": 0.8512, + "drik": -0.1627, + "kala": 1.6447, + "naisargika": 0.1428, + "sthana": 3.2218, + "total_rupa": 5.8913 + }, + "Sun": { + "chesta": 0.0, + "dig": 1.7548, + "drik": -0.0622, + "kala": 0.0022, + "naisargika": 1.0, + "sthana": 3.1882, + "total_rupa": 5.883 + }, + "Venus": { + "chesta": 0.0508, + "dig": 4.6728, + "drik": -0.0513, + "kala": 0.9833, + "naisargika": 0.7143, + "sthana": 2.1638, + "total_rupa": 8.5337 + } + } + }, + "integrity_checks": { + "must_not_come_from_local_engine": true, + "requires_external_artifact": true, + "requires_status_external_verified_before_calibration": true, + "reject_global_shadbala_scaling": true + }, + "promotion_status_after_fill": "external_verified" +} diff --git a/references/oracle/artifacts/pyjhora_extreme_latitude_kp_shadbala_stdout_20260627.txt b/references/oracle/artifacts/pyjhora_extreme_latitude_kp_shadbala_stdout_20260627.txt new file mode 100644 index 00000000..556d353e --- /dev/null +++ b/references/oracle/artifacts/pyjhora_extreme_latitude_kp_shadbala_stdout_20260627.txt @@ -0,0 +1,13 @@ +panchanga /Users/wuyongnaren added to system path ['', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python311.zip', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload', '/private/tmp/jyotish_pyjhora_blackbox/lib/python3.11/site-packages', '/Users/wuyongnaren'] +/Users added to system path ['', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python311.zip', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11', '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/lib-dynload', '/private/tmp/jyotish_pyjhora_blackbox/lib/python3.11/site-packages', '/Users/wuyongnaren', '/Users'] +PYJHORA_BLACKBOX_VERSION 4.8.7 +CASE_ID template_extreme_latitude_kp +DOB (2000, 6, 21) +TOB (0, 0, 0) +PLACE Place(Place='Extreme latitude KP template', latitude=65.0, longitude=15.0, timezone=1.0, elevation=0.0) +AYANAMSA KP +JD 2451716.5 +RASI_CHART_RAW [['L', (10, 27.830334270442847)], [0, (2, 6.1319916123047165)], [1, (9, 19.83602057619521)], [2, (2, 9.220653806825894)], [3, (2, 25.98103840012601)], [4, (1, 4.24484087680559)], [5, (2, 8.745421533422743)], [6, (1, 1.7795831176787793)], [7, (3, 0.9326853852610668)], [8, (9, 0.9326853852610384)]] +ASCENDANT_LONGITUDE_DEG 327.8303 +SHADBALA_RAW_VIRUPA [[191.29, 93.11, 149.38, 159.28, 193.5, 129.83, 193.31], [105.29, 82.4, 124.52, 148.58, 189.66, 280.37, 51.07], [0.13, 14.7, 1.16, 20.62, 37.86, 59.0, 98.68], [0, 0, 0.77, 49.11, 11.79, 3.05, 11.61], [60.0, 51.43, 17.14, 25.71, 34.29, 42.86, 8.57], [-3.73, -17.56, -2.96, -3.38, -9.45, -3.08, -9.76], [352.98, 224.08, 290.01, 399.92, 457.65, 512.03, 353.48], [5.88, 3.73, 4.83, 6.67, 7.63, 8.53, 5.89], [1.18, 0.62, 0.97, 0.95, 1.17, 1.55, 1.18]] +SHADBALA_COMPONENT_RUPA_JSON {"Jupiter": {"chesta": 0.1965, "dig": 3.161, "drik": -0.1575, "kala": 0.631, "naisargika": 0.5715, "pyjhora_total_rupa": 7.6275, "sthana": 3.225, "total_rupa": 7.6275}, "Mars": {"chesta": 0.0128, "dig": 2.0753, "drik": -0.0493, "kala": 0.0193, "naisargika": 0.2857, "pyjhora_total_rupa": 4.8335, "sthana": 2.4897, "total_rupa": 4.8335}, "Mercury": {"chesta": 0.8185, "dig": 2.4763, "drik": -0.0563, "kala": 0.3437, "naisargika": 0.4285, "pyjhora_total_rupa": 6.6653, "sthana": 2.6547, "total_rupa": 6.6654}, "Moon": {"chesta": 0.0, "dig": 1.3733, "drik": -0.2927, "kala": 0.245, "naisargika": 0.8572, "pyjhora_total_rupa": 3.7347, "sthana": 1.5518, "total_rupa": 3.7346}, "Saturn": {"chesta": 0.1935, "dig": 0.8512, "drik": -0.1627, "kala": 1.6447, "naisargika": 0.1428, "pyjhora_total_rupa": 5.8913, "sthana": 3.2218, "total_rupa": 5.8913}, "Sun": {"chesta": 0.0, "dig": 1.7548, "drik": -0.0622, "kala": 0.0022, "naisargika": 1.0, "pyjhora_total_rupa": 5.883, "sthana": 3.1882, "total_rupa": 5.883}, "Venus": {"chesta": 0.0508, "dig": 4.6728, "drik": -0.0513, "kala": 0.9833, "naisargika": 0.7143, "pyjhora_total_rupa": 8.5338, "sthana": 2.1638, "total_rupa": 8.5337}} diff --git a/references/oracle/dasha_shadbala_oracle_cases.json b/references/oracle/dasha_shadbala_oracle_cases.json index d308af35..38c183da 100644 --- a/references/oracle/dasha_shadbala_oracle_cases.json +++ b/references/oracle/dasha_shadbala_oracle_cases.json @@ -322,7 +322,7 @@ }, { "id": "template_extreme_latitude_kp", - "status": "template_only", + "status": "external_verified", "source": "PyJHora/JHora output", "privacy": "synthetic_extreme_latitude_template", "birth": { @@ -341,10 +341,88 @@ "node_mode": "true" }, "target": { - "ascendant_longitude_deg": null, - "shadbala_components": null + "ascendant_longitude_deg": 327.8303, + "shadbala_components": { + "Jupiter": { + "chesta": 0.1965, + "dig": 3.161, + "drik": -0.1575, + "kala": 0.631, + "naisargika": 0.5715, + "sthana": 3.225, + "total_rupa": 7.6275 + }, + "Mars": { + "chesta": 0.0128, + "dig": 2.0753, + "drik": -0.0493, + "kala": 0.0193, + "naisargika": 0.2857, + "sthana": 2.4897, + "total_rupa": 4.8335 + }, + "Mercury": { + "chesta": 0.8185, + "dig": 2.4763, + "drik": -0.0563, + "kala": 0.3437, + "naisargika": 0.4285, + "sthana": 2.6547, + "total_rupa": 6.6654 + }, + "Moon": { + "chesta": 0.0, + "dig": 1.3733, + "drik": -0.2927, + "kala": 0.245, + "naisargika": 0.8572, + "sthana": 1.5518, + "total_rupa": 3.7346 + }, + "Saturn": { + "chesta": 0.1935, + "dig": 0.8512, + "drik": -0.1627, + "kala": 1.6447, + "naisargika": 0.1428, + "sthana": 3.2218, + "total_rupa": 5.8913 + }, + "Sun": { + "chesta": 0.0, + "dig": 1.7548, + "drik": -0.0622, + "kala": 0.0022, + "naisargika": 1.0, + "sthana": 3.1882, + "total_rupa": 5.883 + }, + "Venus": { + "chesta": 0.0508, + "dig": 4.6728, + "drik": -0.0513, + "kala": 0.9833, + "naisargika": 0.7143, + "sthana": 2.1638, + "total_rupa": 8.5337 + } + } }, - "verification_note": "High-latitude KP case; external oracle must document house and sunrise assumptions." + "verification_note": "High-latitude KP case; external oracle must document house and sunrise assumptions.", + "evidence_packet": { + "capture_id": "external_template_extreme_latitude_kp", + "status": "external_verified", + "metadata": { + "tool_name": "PyJHora", + "tool_version_or_url": "PyJHora 4.8.7 isolated /tmp black-box run", + "capture_date": "2026-06-27", + "source_artifact": "references/oracle/artifacts/pyjhora_extreme_latitude_kp_shadbala_stdout_20260627.txt", + "ayanamsa": "kp", + "node_mode": "PyJHora default", + "timezone": "UTC+01:00", + "operator_note": "Black-box stdout from isolated /tmp virtualenv for synthetic high-latitude KP case. PyJHora AGPL code was not copied into this repository; only generated output is stored as external evidence. Shadbala raw values are Virupa; packet stores Rupa values by dividing by 60." + } + } }, { "id": "template_historical_epoch_lahiri", diff --git a/references/skill_gap_truth_registry.json b/references/skill_gap_truth_registry.json index 8cffa8d1..b3b0c43a 100644 --- a/references/skill_gap_truth_registry.json +++ b/references/skill_gap_truth_registry.json @@ -33,8 +33,8 @@ "shadbala_external_absolute_values": { "title": "Shadbala external absolute values", "priority": "P0", - "status": "active_partial_external_evidence", - "current_truth": "Internal six-component Rupa/Virupa aggregation is usable and three external Shadbala absolute-value packets are accepted; remaining Shadbala rows and broader source comparisons are not complete.", + "status": "active_target_set_closed", + "current_truth": "Internal six-component Rupa/Virupa aggregation is usable and the current Shadbala external absolute-value target set is closed at 4/4 packets; Raman expansion rows and broader source comparisons are not complete.", "completion_standard": [ "All seven visible planets have external Sthana, Dig, Kala, Chesta, Naisargika, Drik and total Rupa evidence.", "Component sums match validated packet structure.", diff --git a/tests/test_oracle_closure_master_dashboard.py b/tests/test_oracle_closure_master_dashboard.py index f7ff57b6..8acb23ee 100644 --- a/tests/test_oracle_closure_master_dashboard.py +++ b/tests/test_oracle_closure_master_dashboard.py @@ -39,21 +39,21 @@ def test_oracle_closure_master_dashboard_aggregates_all_hard_fronts() -> None: assert report["scope"] == "jyotish_external_oracle_closure_master_dashboard" assert report["schema_version"] == 1 assert report["summary"]["total_tasks"] == 12 - assert report["summary"]["external_verified_tasks"] == 6 - assert report["summary"]["open_tasks"] == 6 + assert report["summary"]["external_verified_tasks"] == 7 + assert report["summary"]["open_tasks"] == 5 assert report["summary"]["can_claim_global_oracle_closure"] is False assert report["fronts"]["dasha"]["task_count"] == 3 assert report["fronts"]["shadbala"]["task_count"] == 4 assert report["fronts"]["tajika_sahams"]["task_count"] == 5 assert report["fronts"]["dasha"]["external_verified_tasks"] == 3 assert report["fronts"]["dasha"]["first_priority"] is None - assert report["fronts"]["shadbala"]["external_verified_tasks"] == 3 - assert report["fronts"]["shadbala"]["first_priority"]["case_id"] == "template_extreme_latitude_kp" + assert report["fronts"]["shadbala"]["external_verified_tasks"] == 4 + assert report["fronts"]["shadbala"]["first_priority"]["case_id"] == "template_redacted_place_shadbala_raman" assert report["fronts"]["tajika_sahams"]["first_priority"]["case_id"] == "template_steve_jobs_varshaphala_1984_lahiri" assert report["fronts"]["tajika_sahams"]["first_priority"]["missing_groups"]["target"]["count"] == 10 - assert report["fronts"]["shadbala"]["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 54 + assert report["fronts"]["shadbala"]["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 55 assert report["next_action_order"][0]["front"] == "tajika_sahams" - assert report["next_action_order"][1]["front"] == "shadbala" + assert len(report["next_action_order"]) == 1 def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path) -> None: @@ -67,7 +67,7 @@ def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path) assert "total_tasks: `12`" in markdown assert "can_claim_global_oracle_closure: `false`" in markdown assert "`dasha` | 3 | 3 | `complete`" in markdown - assert "template_extreme_latitude_kp" in markdown + assert "template_redacted_place_shadbala_raman" in markdown assert "template_steve_jobs_varshaphala_1984_lahiri" in markdown assert "manual entries" in markdown assert "metadata missing" in markdown diff --git a/tests/test_oracle_evidence_validator.py b/tests/test_oracle_evidence_validator.py index f48d0e69..8812c6fa 100644 --- a/tests/test_oracle_evidence_validator.py +++ b/tests/test_oracle_evidence_validator.py @@ -90,16 +90,16 @@ def test_validator_accepts_current_external_packets_but_rejects_remaining_drafts report = json.loads(completed.stdout) assert report["scope"] == "external_oracle_evidence_validation" assert report["summary"]["total_packets"] == 5 - assert report["summary"]["valid_packets"] == 3 - assert report["summary"]["ready_for_calibration"] == 3 + assert report["summary"]["valid_packets"] == 4 + assert report["summary"]["ready_for_calibration"] == 4 assert report["summary"]["all_packets_external_verified"] is False first = report["packets"][0] assert first["capture_id"] == "external_template_user_REDACTED_YEAR_moon_longitude_lahiri" assert first["valid"] is True assert first["problems"] == [] - remaining_drafts = [packet for packet in report["packets"] if not packet["valid"]] - assert remaining_drafts - assert any("status_not_external_verified:draft" in packet["problems"] for packet in remaining_drafts) + remaining_invalid = [packet for packet in report["packets"] if not packet["valid"]] + assert remaining_invalid + assert any("placeholder_unfilled:" in problem for packet in remaining_invalid for problem in packet["problems"]) def test_validator_accepts_filled_external_packet_but_not_whole_queue(tmp_path: Path) -> None: @@ -129,8 +129,8 @@ def test_validator_accepts_filled_external_packet_but_not_whole_queue(tmp_path: assert completed.returncode == 0, completed.stderr or completed.stdout report = json.loads(completed.stdout) - assert report["summary"]["valid_packets"] == 3 - assert report["summary"]["ready_for_calibration"] == 3 + assert report["summary"]["valid_packets"] == 4 + assert report["summary"]["ready_for_calibration"] == 4 assert report["summary"]["all_packets_external_verified"] is False first = report["packets"][0] assert first["valid"] is True @@ -562,8 +562,8 @@ def test_validator_accepts_external_verified_packet_generated_from_oracle_file(t assert completed.returncode == 0, completed.stderr or completed.stdout report = json.loads(completed.stdout) - assert report["summary"]["valid_packets"] == 3 - assert report["summary"]["ready_for_calibration"] == 3 + assert report["summary"]["valid_packets"] == 4 + assert report["summary"]["ready_for_calibration"] == 4 assert report["summary"]["production_tuning_allowed"] is False assert report["packets"][0]["valid"] is True assert report["packets"][0]["problems"] == [] diff --git a/tests/test_public_benchmark_dashboard.py b/tests/test_public_benchmark_dashboard.py index 8c3f22ac..a937504c 100644 --- a/tests/test_public_benchmark_dashboard.py +++ b/tests/test_public_benchmark_dashboard.py @@ -39,14 +39,14 @@ def test_public_benchmark_dashboard_outputs_stable_json_summary() -> None: assert report["summary"]["technique_count"] >= 60 assert report["summary"]["capability_valid"] is True assert report["oracle_readiness"]["total_packets"] == 5 - assert report["oracle_readiness"]["valid_packets"] == 3 - assert report["oracle_readiness"]["ready_for_calibration"] == 3 + assert report["oracle_readiness"]["valid_packets"] == 4 + assert report["oracle_readiness"]["ready_for_calibration"] == 4 assert report["oracle_readiness"]["production_tuning_allowed"] is False assert report["dasha_oracle_readiness"]["valid_dasha_packets"] == 3 assert report["dasha_oracle_readiness"]["total_dasha_packets"] == 3 assert report["boundary_audit"]["production_tuning_recommended"] is False assert "Dasha-only external oracle readiness is 3/3" in report["global_first_gap"] - assert "Shadbala external absolute-value readiness is 3/4" in report["global_first_gap"] + assert "Shadbala external absolute-value readiness is 4/4" in report["global_first_gap"] assert report["public_claim"]["can_claim_global_first"] is False assert report["public_claim"]["reason"] diff --git a/tests/test_shadbala_oracle_closure_status.py b/tests/test_shadbala_oracle_closure_status.py index 139f36fa..9bc09227 100644 --- a/tests/test_shadbala_oracle_closure_status.py +++ b/tests/test_shadbala_oracle_closure_status.py @@ -37,22 +37,25 @@ def test_shadbala_oracle_closure_status_identifies_first_absolute_value_packet() assert report["scope"] == "shadbala_external_absolute_value_closure_status" assert report["schema_version"] == 1 assert report["summary"]["shadbala_task_count"] == 4 - assert report["summary"]["external_verified_shadbala_tasks"] == 3 - assert report["summary"]["can_claim_shadbala_absolute_closure"] is False + assert report["summary"]["external_verified_shadbala_tasks"] == 4 + assert report["summary"]["can_claim_shadbala_absolute_closure"] is True assert report["summary"]["required_planets"] == ["Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"] assert report["summary"]["required_components"] == ["sthana", "dig", "kala", "chesta", "naisargika", "drik", "total_rupa"] - assert report["first_priority"]["case_id"] == "template_extreme_latitude_kp" - assert report["first_priority"]["capture_id"] == "external_template_extreme_latitude_kp" - assert report["first_priority"]["required_target_fields"] == ["target.shadbala_components"] + assert report["first_priority"]["case_id"] == "template_redacted_place_shadbala_raman" + assert report["first_priority"]["capture_id"] == "external_template_redacted_place_shadbala_raman" + assert report["first_priority"]["required_target_fields"] == [ + "target.moon_sidereal_longitude_deg", + "target.shadbala_components", + ] assert "metadata.tool_name" in report["first_priority"]["missing_fields"] assert "target.shadbala_components.Sun.sthana" in report["first_priority"]["missing_fields"] assert "target.shadbala_components.Saturn.total_rupa" in report["first_priority"]["missing_fields"] assert report["first_priority"]["missing_groups"]["metadata"]["count"] == 5 - assert report["first_priority"]["missing_groups"]["target"]["count"] == 49 + assert report["first_priority"]["missing_groups"]["target"]["count"] == 50 assert report["first_priority"]["missing_groups"]["bodies"]["Sun"]["count"] == 7 - assert report["first_priority"]["prefilled_fields"]["metadata"]["ayanamsa"] == "kp" + assert report["first_priority"]["prefilled_fields"]["metadata"]["ayanamsa"] == "Raman" assert report["first_priority"]["manual_fill_plan"]["status_value"] == "external_verified" - assert report["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 54 + assert report["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 55 assert report["first_priority"]["reject_global_scaling"] is True assert report["first_priority"]["validate_command"] @@ -65,8 +68,8 @@ def test_shadbala_oracle_closure_status_markdown_can_be_written(tmp_path: Path) assert output.exists() markdown = output.read_text(encoding="utf-8") assert "# Shadbala External Absolute-Value Closure Status" in markdown - assert "can_claim_shadbala_absolute_closure: `false`" in markdown - assert "external_template_extreme_latitude_kp" in markdown + assert "can_claim_shadbala_absolute_closure: `true`" in markdown + assert "external_template_redacted_place_shadbala_raman" in markdown assert "target.shadbala_components.Sun.sthana" in markdown assert "## Missing Summary" in markdown assert "## Prefilled Fields" in markdown