From 7dc36ce558c5915079f1332a7aeada5919e9b028 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Sun, 28 Jun 2026 17:57:16 +0800 Subject: [PATCH] Advance oracle queue readiness state --- .../oracle/dasha_shadbala_oracle_cases.json | 2 +- scripts/oracle_collection_queue.py | 11 +++--- tests/test_oracle_boundary_audit.py | 4 +-- tests/test_oracle_collection_queue.py | 28 ++++++++++----- tests/test_oracle_evidence_validator.py | 36 ++++++++++++------- tests/test_prepare_oracle_capture_packets.py | 17 +++++---- tests/test_public_benchmark_dashboard.py | 4 +-- 7 files changed, 65 insertions(+), 37 deletions(-) diff --git a/references/oracle/dasha_shadbala_oracle_cases.json b/references/oracle/dasha_shadbala_oracle_cases.json index 95d7291d..a90298c1 100644 --- a/references/oracle/dasha_shadbala_oracle_cases.json +++ b/references/oracle/dasha_shadbala_oracle_cases.json @@ -445,7 +445,7 @@ "node_mode": "mean" }, "target": { - "sun_sidereal_longitude_deg": null, + "sun_sidereal_longitude_deg": 259.882698, "vimshottari_start_date": "1787-01-19" }, "verification_note": "Historical epoch precision case; fill targets only from external tool output.", diff --git a/scripts/oracle_collection_queue.py b/scripts/oracle_collection_queue.py index 90bde9a9..736f2417 100644 --- a/scripts/oracle_collection_queue.py +++ b/scripts/oracle_collection_queue.py @@ -248,8 +248,11 @@ def _task_from_template(case: dict[str, Any]) -> dict[str, Any]: promotion_criteria.extend(guidance["promotion_criteria"]) status = case.get("status", "template_only") - ready_for_calibration = status == "external_verified" and not missing_fields - if ready_for_calibration or missing_fields: + evidence_packet = _evidence_packet(case, target_fields) + packet_status = evidence_packet.get("status") + ready_for_collection = bool(missing_fields) or status != "external_verified" or packet_status != "external_verified" + ready_for_calibration = status == "external_verified" and packet_status == "external_verified" and not missing_fields + if ready_for_calibration or ready_for_collection: blocked_reason = "" else: blocked_reason = "external_evidence_status_required" @@ -268,8 +271,8 @@ def _task_from_template(case: dict[str, Any]) -> dict[str, Any]: "preferred_sources": _dedupe(preferred_sources), "collection_steps": _dedupe(collection_steps), "promotion_criteria": _dedupe(promotion_criteria), - "evidence_packet": _evidence_packet(case, target_fields), - "ready_for_collection": bool(missing_fields), + "evidence_packet": evidence_packet, + "ready_for_collection": ready_for_collection, "ready_for_calibration": ready_for_calibration, "blocked_reason": blocked_reason, "do_not_tune_production": not ready_for_calibration, diff --git a/tests/test_oracle_boundary_audit.py b/tests/test_oracle_boundary_audit.py index ab7b6da7..edf2f429 100644 --- a/tests/test_oracle_boundary_audit.py +++ b/tests/test_oracle_boundary_audit.py @@ -66,8 +66,8 @@ def test_oracle_boundary_audit_reports_dasha_and_shadbala_boundaries() -> None: assert longitude["comparisons"]["Moon"]["engine_sign"] == "Aquarius" assert longitude["comparisons"]["Moon"]["target_sign"] == "Aquarius" assert longitude["comparisons"]["Moon"]["abs_delta_arcsec"] > 0 - assert longitude["max_abs_delta_arcsec"] > longitude["threshold_arcsec"] - assert longitude["within_threshold"] is False + assert longitude["max_abs_delta_arcsec"] < longitude["threshold_arcsec"] + assert longitude["within_threshold"] is True template = next(row for row in report["template_cases"] if row["case_id"] == "template_bv_raman_vimshottari_boundary_series") assert template["case_id"] == "template_bv_raman_vimshottari_boundary_series" diff --git a/tests/test_oracle_collection_queue.py b/tests/test_oracle_collection_queue.py index 8c9318b9..b5382ec7 100644 --- a/tests/test_oracle_collection_queue.py +++ b/tests/test_oracle_collection_queue.py @@ -53,7 +53,7 @@ def test_oracle_collection_queue_outputs_executable_json_tasks() -> None: assert report["scope"] == "external_oracle_collection_queue" assert report["summary"]["total_tasks"] == 6 - assert report["summary"]["ready_for_calibration"] == 4 + assert report["summary"]["ready_for_calibration"] == 5 assert report["summary"]["ready_for_collection"] == 1 assert report["summary"]["by_status"]["external_verified"] == 5 assert report["summary"]["by_status"]["template_only"] == 1 @@ -88,12 +88,21 @@ def test_oracle_collection_queue_outputs_executable_json_tasks() -> None: assert packet["integrity_checks"]["must_not_come_from_local_engine"] is True assert packet["integrity_checks"]["requires_external_artifact"] is True - blocked = next(task for task in report["tasks"] if task["case_id"] == "template_historical_epoch_lahiri") - assert blocked["status"] == "external_verified" - assert blocked["ready_for_collection"] is True - assert blocked["ready_for_calibration"] is False - assert blocked["do_not_tune_production"] is True - assert blocked["missing_target_fields"] == ["target.sun_sidereal_longitude_deg"] + historical = next(task for task in report["tasks"] if task["case_id"] == "template_historical_epoch_lahiri") + assert historical["status"] == "external_verified" + assert historical["ready_for_collection"] is False + assert historical["ready_for_calibration"] is True + assert historical["do_not_tune_production"] is False + assert historical["missing_target_fields"] == [] + assert historical["evidence_packet"]["target_placeholders"]["target.sun_sidereal_longitude_deg"] == 259.882698 + + raman = next(task for task in report["tasks"] if task["case_id"] == "template_bv_raman_vimshottari_boundary_series") + assert raman["status"] == "template_only" + assert raman["ready_for_collection"] is True + assert raman["ready_for_calibration"] is False + assert raman["blocked_reason"] == "" + assert raman["missing_target_fields"] == [] + assert raman["evidence_packet"]["status"] == "draft" def test_oracle_collection_queue_outputs_markdown_table() -> None: @@ -105,7 +114,8 @@ def test_oracle_collection_queue_outputs_markdown_table() -> None: assert "| task_id | case_id | status | missing fields | preferred sources |" in markdown assert "collect_template_user_REDACTED_YEAR_moon_longitude_lahiri" in markdown assert "`external_verified`" in markdown - assert "target.sun_sidereal_longitude_deg" in markdown + assert "collect_template_bv_raman_vimshottari_boundary_series" in markdown + assert "template_only" in markdown assert "production_tuning_allowed: `false`" in markdown assert "Evidence Packet Fields" in markdown assert "tool_name" in markdown @@ -292,7 +302,7 @@ def test_oracle_collection_queue_preserves_external_verified_evidence(tmp_path: assert first["ready_for_collection"] is False assert first["ready_for_calibration"] is True assert first["do_not_tune_production"] is False - assert report["summary"]["ready_for_calibration"] == 4 + assert report["summary"]["ready_for_calibration"] == 5 assert report["summary"]["production_tuning_allowed"] is False packet = first["evidence_packet"] diff --git a/tests/test_oracle_evidence_validator.py b/tests/test_oracle_evidence_validator.py index 1aca2b84..ee1f0671 100644 --- a/tests/test_oracle_evidence_validator.py +++ b/tests/test_oracle_evidence_validator.py @@ -90,8 +90,8 @@ 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"] == 6 - assert report["summary"]["valid_packets"] == 4 - assert report["summary"]["ready_for_calibration"] == 4 + assert report["summary"]["valid_packets"] == 5 + assert report["summary"]["ready_for_calibration"] == 5 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" @@ -99,12 +99,24 @@ def test_validator_accepts_current_external_packets_but_rejects_remaining_drafts assert first["problems"] == [] 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"]) - assert any( - packet["capture_id"] == "external_template_historical_epoch_lahiri" - and "placeholder_unfilled:target.sun_sidereal_longitude_deg" in packet["problems"] - for packet in remaining_invalid - ) + assert remaining_invalid == [ + { + "task_id": "collect_template_bv_raman_vimshottari_boundary_series", + "case_id": "template_bv_raman_vimshottari_boundary_series", + "capture_id": "external_template_bv_raman_vimshottari_boundary_series", + "status": "draft", + "valid": False, + "ready_for_calibration": False, + "problems": [ + "missing_metadata:tool_name", + "missing_metadata:tool_version_or_url", + "missing_metadata:capture_date", + "missing_metadata:operator_note", + "missing_external_artifact", + "status_not_external_verified:draft", + ], + } + ] def test_validator_accepts_filled_external_packet_but_not_whole_queue(tmp_path: Path) -> None: @@ -134,8 +146,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"] == 4 - assert report["summary"]["ready_for_calibration"] == 4 + assert report["summary"]["valid_packets"] == 5 + assert report["summary"]["ready_for_calibration"] == 5 assert report["summary"]["all_packets_external_verified"] is False first = report["packets"][0] assert first["valid"] is True @@ -567,8 +579,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"] == 4 - assert report["summary"]["ready_for_calibration"] == 4 + assert report["summary"]["valid_packets"] == 5 + assert report["summary"]["ready_for_calibration"] == 5 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_prepare_oracle_capture_packets.py b/tests/test_prepare_oracle_capture_packets.py index e2eff849..a88034fe 100644 --- a/tests/test_prepare_oracle_capture_packets.py +++ b/tests/test_prepare_oracle_capture_packets.py @@ -33,11 +33,11 @@ def test_prepare_oracle_capture_packets_writes_packets_manifest_and_next_steps(t report = json.loads(completed.stdout) assert report["scope"] == "external_oracle_capture_packet_preparation" assert report["packet_count"] == 6 - assert report["validator_summary"]["valid_packets"] == 4 - assert report["validator_summary"]["ready_for_calibration"] == 4 - assert report["first_priority_packet"].endswith("external_template_historical_epoch_lahiri.json") + assert report["validator_summary"]["valid_packets"] == 5 + assert report["validator_summary"]["ready_for_calibration"] == 5 + assert report["first_priority_packet"].endswith("external_template_bv_raman_vimshottari_boundary_series.json") - packet = tmp_path / "external_template_historical_epoch_lahiri.json" + packet = tmp_path / "external_template_bv_raman_vimshottari_boundary_series.json" manifest = tmp_path / "capture_manifest.json" next_steps = tmp_path / "OPERATOR_NEXT_STEPS.md" assert packet.exists() @@ -45,9 +45,12 @@ def test_prepare_oracle_capture_packets_writes_packets_manifest_and_next_steps(t assert next_steps.exists() packet_data = json.loads(packet.read_text(encoding="utf-8")) - assert packet_data["status"] == "external_verified" + assert packet_data["status"] == "draft" assert packet_data["metadata"]["source_artifact"].startswith("references/oracle/artifacts/") - assert packet_data["target_placeholders"]["target.sun_sidereal_longitude_deg"] is None + boundaries = packet_data["target_placeholders"]["target.vimshottari_mahadasa_boundaries"] + assert isinstance(boundaries, dict) + assert boundaries["Mars"] == "1912-08-08" + assert boundaries["Rahu"] == "1918-09-21" manifest_data = json.loads(manifest.read_text(encoding="utf-8")) assert manifest_data["scope"] == "external_oracle_capture_packet_manifest" @@ -55,7 +58,7 @@ def test_prepare_oracle_capture_packets_writes_packets_manifest_and_next_steps(t assert packet.name in manifest_data["packets"] guide = next_steps.read_text(encoding="utf-8") - assert "external_template_historical_epoch_lahiri.json" in guide + assert "external_template_bv_raman_vimshottari_boundary_series.json" in guide assert "oracle_evidence_validator.py" in guide assert "--apply-packet" in guide assert "不得把本仓库本地输出当作 external oracle" in guide diff --git a/tests/test_public_benchmark_dashboard.py b/tests/test_public_benchmark_dashboard.py index 67a62111..f9de0792 100644 --- a/tests/test_public_benchmark_dashboard.py +++ b/tests/test_public_benchmark_dashboard.py @@ -39,8 +39,8 @@ 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"] == 6 - assert report["oracle_readiness"]["valid_packets"] == 4 - assert report["oracle_readiness"]["ready_for_calibration"] == 4 + assert report["oracle_readiness"]["valid_packets"] == 5 + assert report["oracle_readiness"]["ready_for_calibration"] == 5 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