From 1d24ad0b68c81c16be7b216bb021d2733a69ac36 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Sat, 27 Jun 2026 01:48:47 +0800 Subject: [PATCH] feat(skill): advance shadbala oracle evidence --- SKILL.md | 4 +- .../oracle_closure_master_dashboard_latest.md | 18 ++--- .../public_benchmark_dashboard_latest.md | 14 ++-- docs/research/skill_gap_truth_audit_latest.md | 8 +-- .../oracle/dasha_shadbala_oracle_cases.json | 72 +++++++++++++++++-- references/skill_gap_truth_registry.json | 2 +- scripts/oracle_evidence_validator.py | 7 +- tests/test_oracle_closure_master_dashboard.py | 12 ++-- tests/test_oracle_evidence_validator.py | 57 ++++++++++++--- tests/test_public_benchmark_dashboard.py | 6 +- tests/test_shadbala_oracle_closure_status.py | 18 ++--- 11 files changed, 160 insertions(+), 58 deletions(-) diff --git a/SKILL.md b/SKILL.md index d0a3a2b2..815894af 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: 1`,`ready_for_calibration: 1`;首个 Shadbala 外部绝对值样本已通过,剩余 Shadbala rows 与非 Dasha 靶点尚未封顶。 +- 全局 Dasha/Shadbala Calibration Status 仍未完成:`external_oracle_evidence_validation.valid_packets: 2`,`ready_for_calibration: 2`;两个 Shadbala 外部绝对值样本已通过,剩余 Shadbala rows 与非 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 已有两个外部六分量样本,绝对值断语仍需更多 JHora/PyJHora/公开书例证据后再提升置信度。 - 工作流要求: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 81911d5e..5ff7e19d 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-26T17:25:44.270300+00:00` +Generated: `2026-06-26T17:46:35.915403+00:00` ## Summary - total_tasks: `12` -- external_verified_tasks: `4` -- open_tasks: `8` +- external_verified_tasks: `5` +- open_tasks: `7` - can_claim_global_oracle_closure: `false` - production_tuning_allowed: `false` @@ -16,7 +16,7 @@ Generated: `2026-06-26T17:25:44.270300+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 | 1 | `template_user_REDACTED_YEAR_moon_longitude_lahiri` | 55 | 55 | 5 | 50 | +| `shadbala` | 4 | 2 | `template_steve_jobs_dasha_lahiri` | 54 | 54 | 5 | 49 | ## Next Action Order @@ -33,13 +33,13 @@ python3 scripts/tajika_annual_oracle_queue.py --oracle-file references/oracle/ta ### shadbala -- case_id: `template_user_REDACTED_YEAR_moon_longitude_lahiri` -- capture_id: `external_template_user_REDACTED_YEAR_moon_longitude_lahiri` -- missing_field_count: `55` -- manual_entry_count: `55` +- case_id: `template_steve_jobs_dasha_lahiri` +- capture_id: `external_template_steve_jobs_dasha_lahiri` +- 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_user_REDACTED_YEAR_moon_longitude_lahiri.json --format json +python3 scripts/oracle_collection_queue.py --oracle-file references/oracle/dasha_shadbala_oracle_cases.json --apply-packet references/oracle/artifacts/pending_packets/external_template_steve_jobs_dasha_lahiri.json --format json ``` ## Boundary diff --git a/docs/research/public_benchmark_dashboard_latest.md b/docs/research/public_benchmark_dashboard_latest.md index e62a9ef5..401d0b4c 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-26T17:25:43.800702+00:00` +Generated: `2026-06-26T17:46:35.446001+00:00` ## Capability Registry @@ -11,18 +11,18 @@ Generated: `2026-06-26T17:25:43.800702+00:00` ## Dasha/Shadbala Oracle Readiness - total_packets: `5` -- valid_packets: `1` -- ready_for_calibration: `1` +- valid_packets: `2` +- ready_for_calibration: `2` - production_tuning_allowed: `false` - valid_dasha_packets: `3` - total_dasha_packets: `3` -- external_verified_shadbala_tasks: `1` +- external_verified_shadbala_tasks: `2` - shadbala_task_count: `4` ## Boundary Audit -- external_verified_template_cases: `1` -- template_comparison_count: `1` +- external_verified_template_cases: `2` +- template_comparison_count: `2` - production_tuning_recommended: `false` ## Global First Claim @@ -32,7 +32,7 @@ Generated: `2026-06-26T17:25:43.800702+00:00` ## Remaining Gap -Dasha-only external oracle readiness is 3/3; Shadbala external absolute-value readiness is 1/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 2/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 8b6da026..a4605707 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-26T17:25:44.917972+00:00` +Generated: `2026-06-26T17:46:36.511213+00:00` ## Public Claim Boundary @@ -19,8 +19,8 @@ Generated: `2026-06-26T17:25:44.917972+00:00` ## External Oracle Closure - total_tasks: `12` -- external_verified_tasks: `4` -- open_tasks: `8` +- external_verified_tasks: `5` +- open_tasks: `7` - can_claim_global_oracle_closure: `false` ## Remaining Hard Fronts @@ -44,7 +44,7 @@ Generated: `2026-06-26T17:25:44.917972+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 the first external Shadbala absolute-value packet is accepted; remaining Shadbala rows and broader source comparisons are not complete. +- current_truth: Internal six-component Rupa/Virupa aggregation is usable and two external Shadbala absolute-value packets are accepted; remaining Shadbala rows and broader source comparisons are not complete. ### Tajika / Sahams annual closure diff --git a/references/oracle/dasha_shadbala_oracle_cases.json b/references/oracle/dasha_shadbala_oracle_cases.json index 91ec0e19..fe441bbb 100644 --- a/references/oracle/dasha_shadbala_oracle_cases.json +++ b/references/oracle/dasha_shadbala_oracle_cases.json @@ -28,9 +28,73 @@ "node_mode": "mean" }, "target": { - "moon_sidereal_longitude_deg": null, + "moon_sidereal_longitude_deg": 311.774424, "vimshottari_start_date": "1986-05-25", - "shadbala_components": null + "shadbala_components": { + "Sun": { + "sthana": 3.964, + "dig": 1.5362, + "kala": 1.1985, + "chesta": 0.0, + "naisargika": 1.0, + "drik": 0.045, + "total_rupa": 7.7437 + }, + "Moon": { + "sthana": 3.1737, + "dig": -0.5255, + "kala": 1.5142, + "chesta": 0.0, + "naisargika": 0.8572, + "drik": -0.0947, + "total_rupa": 4.9249 + }, + "Mars": { + "sthana": 1.3982, + "dig": 1.4362, + "kala": 0.7107, + "chesta": 0.5905, + "naisargika": 0.2857, + "drik": 0.076, + "total_rupa": 4.4973 + }, + "Mercury": { + "sthana": 2.411, + "dig": 3.6523, + "kala": 0.1455, + "chesta": 0.6908, + "naisargika": 0.4285, + "drik": 0.0872, + "total_rupa": 7.4153 + }, + "Jupiter": { + "sthana": 1.9613, + "dig": 4.4507, + "kala": 0.8252, + "chesta": 0.9133, + "naisargika": 0.5715, + "drik": -0.0692, + "total_rupa": 8.6528 + }, + "Venus": { + "sthana": 2.7835, + "dig": 2.808, + "kala": 1.674, + "chesta": 0.1385, + "naisargika": 0.7143, + "drik": 0.1038, + "total_rupa": 8.2221 + }, + "Saturn": { + "sthana": 3.2332, + "dig": 1.994, + "kala": 0.9553, + "chesta": 1.6748, + "naisargika": 0.1428, + "drik": -0.0792, + "total_rupa": 7.9209 + } + } }, "verification_note": "Only fill target fields when the value comes from external oracle, not from this repo.", "evidence_packet": { @@ -40,11 +104,11 @@ "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_user_REDACTED_YEAR_dasha_stdout_20260627.txt", + "source_artifact": "references/oracle/artifacts/pyjhora_user_REDACTED_YEAR_shadbala_lahiri_stdout_20260627.txt", "ayanamsa": "lahiri", "node_mode": "PyJHora default", "timezone": "UTC+08:00", - "operator_note": "Black-box stdout from isolated /tmp virtualenv. PyJHora AGPL code was not copied into this repository; only the generated output artifact is stored as external evidence." + "operator_note": "Black-box stdout from isolated /tmp virtualenv. PyJHora AGPL code was not copied into this repository; only the generated output artifact is stored as external evidence. Shadbala raw values are Virupa; packet stores Rupa values by dividing by 60." } } }, diff --git a/references/skill_gap_truth_registry.json b/references/skill_gap_truth_registry.json index a2acc1ee..4d737cff 100644 --- a/references/skill_gap_truth_registry.json +++ b/references/skill_gap_truth_registry.json @@ -34,7 +34,7 @@ "title": "Shadbala external absolute values", "priority": "P0", "status": "active_partial_external_evidence", - "current_truth": "Internal six-component Rupa/Virupa aggregation is usable and the first external Shadbala absolute-value packet is accepted; remaining Shadbala rows and broader source comparisons are not complete.", + "current_truth": "Internal six-component Rupa/Virupa aggregation is usable and two external Shadbala absolute-value packets are accepted; remaining Shadbala 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/scripts/oracle_evidence_validator.py b/scripts/oracle_evidence_validator.py index 25d92f45..c5a4a92e 100644 --- a/scripts/oracle_evidence_validator.py +++ b/scripts/oracle_evidence_validator.py @@ -27,7 +27,8 @@ LOCAL_ENGINE_MARKERS = [ SHADBALA_REQUIRED_PLANETS = ["Sun", "Moon", "Mars", "Mercury", "Jupiter", "Venus", "Saturn"] SHADBALA_REQUIRED_COMPONENTS = ["sthana", "dig", "kala", "chesta", "naisargika", "drik"] SHADBALA_COMPONENT_MAX_RUPA = 20.0 -SHADBALA_DRIK_MIN_RUPA = -20.0 +SHADBALA_NEGATIVE_ALLOWED_COMPONENTS = {"dig", "drik"} +SHADBALA_COMPONENT_MIN_RUPA = -20.0 SHADBALA_TOTAL_TOLERANCE_RUPA = 0.05 ASHTAKOOT_SCORE_RANGES = { "target.total_score": (0.0, 36.0), @@ -154,10 +155,10 @@ def _validate_shadbala_components(value: Any) -> list[str]: if not isinstance(component_value, (int, float)) or isinstance(component_value, bool): problems.append(f"invalid_shadbala_component_type:{planet}.{component}") continue - if component == "drik" and component_value < SHADBALA_DRIK_MIN_RUPA: + if component in SHADBALA_NEGATIVE_ALLOWED_COMPONENTS and component_value < SHADBALA_COMPONENT_MIN_RUPA: problems.append(f"invalid_shadbala_component_range:{planet}.{component}") continue - if component != "drik" and component_value < 0: + if component not in SHADBALA_NEGATIVE_ALLOWED_COMPONENTS and component_value < 0: problems.append(f"invalid_shadbala_component_negative:{planet}.{component}") continue if component_value > SHADBALA_COMPONENT_MAX_RUPA: diff --git a/tests/test_oracle_closure_master_dashboard.py b/tests/test_oracle_closure_master_dashboard.py index 9c6311d9..98ebde0d 100644 --- a/tests/test_oracle_closure_master_dashboard.py +++ b/tests/test_oracle_closure_master_dashboard.py @@ -39,19 +39,19 @@ 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"] == 4 - assert report["summary"]["open_tasks"] == 8 + assert report["summary"]["external_verified_tasks"] == 5 + assert report["summary"]["open_tasks"] == 7 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"] == 1 - assert report["fronts"]["shadbala"]["first_priority"]["case_id"] == "template_user_REDACTED_YEAR_moon_longitude_lahiri" + assert report["fronts"]["shadbala"]["external_verified_tasks"] == 2 + assert report["fronts"]["shadbala"]["first_priority"]["case_id"] == "template_steve_jobs_dasha_lahiri" 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"] == 55 + assert report["fronts"]["shadbala"]["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 54 assert report["next_action_order"][0]["front"] == "tajika_sahams" assert report["next_action_order"][1]["front"] == "shadbala" @@ -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_user_REDACTED_YEAR_moon_longitude_lahiri" in markdown + assert "template_steve_jobs_dasha_lahiri" 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 ec27d0f4..8dfbbf06 100644 --- a/tests/test_oracle_evidence_validator.py +++ b/tests/test_oracle_evidence_validator.py @@ -80,7 +80,7 @@ def run_validator(input_path: Path) -> subprocess.CompletedProcess[str]: ) -def test_validator_rejects_draft_packets_without_external_artifacts(tmp_path: Path) -> None: +def test_validator_accepts_current_external_packets_but_rejects_remaining_drafts(tmp_path: Path) -> None: queue_path = tmp_path / "queue.json" queue_path.write_text(json.dumps(build_queue(), ensure_ascii=False), encoding="utf-8") @@ -90,14 +90,16 @@ def test_validator_rejects_draft_packets_without_external_artifacts(tmp_path: Pa report = json.loads(completed.stdout) assert report["scope"] == "external_oracle_evidence_validation" assert report["summary"]["total_packets"] == 5 - assert report["summary"]["valid_packets"] == 1 - assert report["summary"]["ready_for_calibration"] == 1 + assert report["summary"]["valid_packets"] == 2 + assert report["summary"]["ready_for_calibration"] == 2 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 False - assert "placeholder_unfilled:target.moon_sidereal_longitude_deg" in first["problems"] - assert "missing_shadbala_component:Sun.sthana" in first["problems"] + 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) def test_validator_accepts_filled_external_packet_but_not_whole_queue(tmp_path: Path) -> None: @@ -180,7 +182,7 @@ def test_validator_rejects_non_numeric_or_negative_shadbala_components(tmp_path: packet = queue["tasks"][0]["evidence_packet"] shadbala = complete_shadbala_components() shadbala["Sun"]["sthana"] = "100" - shadbala["Moon"]["dig"] = -1.0 + shadbala["Moon"]["kala"] = -1.0 packet["metadata"] = { "tool_name": "JHora", "tool_version_or_url": "manual-screenshot-v1", @@ -207,7 +209,7 @@ def test_validator_rejects_non_numeric_or_negative_shadbala_components(tmp_path: first = report["packets"][0] assert first["valid"] is False assert "invalid_shadbala_component_type:Sun.sthana" in first["problems"] - assert "invalid_shadbala_component_negative:Moon.dig" in first["problems"] + assert "invalid_shadbala_component_negative:Moon.kala" in first["problems"] def test_validator_accepts_negative_drik_bala_when_component_sum_matches(tmp_path: Path) -> None: @@ -244,6 +246,45 @@ def test_validator_accepts_negative_drik_bala_when_component_sum_matches(tmp_pat assert first["problems"] == [] +def test_validator_accepts_pyjhora_negative_dig_and_drik_values(tmp_path: Path) -> None: + queue = build_queue() + packet = queue["tasks"][0]["evidence_packet"] + shadbala = complete_shadbala_components() + for component in SHADBALA_COMPONENTS: + shadbala["Moon"][component] = 1.0 + shadbala["Moon"]["dig"] = -0.5255 + shadbala["Moon"]["drik"] = -0.0947 + shadbala["Moon"]["total_rupa"] = round(sum(shadbala["Moon"][component] for component in SHADBALA_COMPONENTS), 4) + shadbala["Jupiter"]["drik"] = -0.0692 + shadbala["Jupiter"]["total_rupa"] = round(sum(shadbala["Jupiter"][component] for component in SHADBALA_COMPONENTS), 4) + packet["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_user_REDACTED_YEAR_shadbala_lahiri_stdout_20260627.txt", + "ayanamsa": "lahiri", + "node_mode": "PyJHora default", + "timezone": "UTC+08:00", + "operator_note": "Black-box external stdout; PyJHora can emit negative Dig and Drik Bala values.", + } + packet["target_placeholders"] = { + "target.moon_sidereal_longitude_deg": 311.774424, + "target.vimshottari_start_date": "1986-05-25", + "target.shadbala_components": shadbala, + } + packet["status"] = "external_verified" + queue_path = tmp_path / "queue.json" + queue_path.write_text(json.dumps(queue, ensure_ascii=False), encoding="utf-8") + + completed = run_validator(queue_path) + + assert completed.returncode == 0, completed.stderr or completed.stdout + report = json.loads(completed.stdout) + first = report["packets"][0] + assert first["valid"] is True + assert first["problems"] == [] + + def test_validator_rejects_missing_shadbala_total_rupa(tmp_path: Path) -> None: queue = build_queue() packet = queue["tasks"][0]["evidence_packet"] diff --git a/tests/test_public_benchmark_dashboard.py b/tests/test_public_benchmark_dashboard.py index 8ed20128..1f13d7c2 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"] == 1 - assert report["oracle_readiness"]["ready_for_calibration"] == 1 + assert report["oracle_readiness"]["valid_packets"] == 2 + assert report["oracle_readiness"]["ready_for_calibration"] == 2 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 1/4" in report["global_first_gap"] + assert "Shadbala external absolute-value readiness is 2/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 eabda5ad..f2cf7cbf 100644 --- a/tests/test_shadbala_oracle_closure_status.py +++ b/tests/test_shadbala_oracle_closure_status.py @@ -37,26 +37,22 @@ 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"] == 1 + assert report["summary"]["external_verified_shadbala_tasks"] == 2 assert report["summary"]["can_claim_shadbala_absolute_closure"] is False 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_user_REDACTED_YEAR_moon_longitude_lahiri" - assert report["first_priority"]["capture_id"] == "external_template_user_REDACTED_YEAR_moon_longitude_lahiri" - assert report["first_priority"]["required_target_fields"] == [ - "target.moon_sidereal_longitude_deg", - "target.shadbala_components", - ] + assert report["first_priority"]["case_id"] == "template_steve_jobs_dasha_lahiri" + assert report["first_priority"]["capture_id"] == "external_template_steve_jobs_dasha_lahiri" + assert report["first_priority"]["required_target_fields"] == ["target.shadbala_components"] assert "metadata.tool_name" in report["first_priority"]["missing_fields"] - assert "target.moon_sidereal_longitude_deg" 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"] == 50 + assert report["first_priority"]["missing_groups"]["target"]["count"] == 49 assert report["first_priority"]["missing_groups"]["bodies"]["Sun"]["count"] == 7 assert report["first_priority"]["prefilled_fields"]["metadata"]["ayanamsa"] == "lahiri" assert report["first_priority"]["manual_fill_plan"]["status_value"] == "external_verified" - assert report["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 55 + assert report["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 54 assert report["first_priority"]["reject_global_scaling"] is True assert report["first_priority"]["validate_command"] @@ -70,7 +66,7 @@ def test_shadbala_oracle_closure_status_markdown_can_be_written(tmp_path: Path) 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_user_REDACTED_YEAR_moon_longitude_lahiri" in markdown + assert "external_template_steve_jobs_dasha_lahiri" in markdown assert "target.shadbala_components.Sun.sthana" in markdown assert "## Missing Summary" in markdown assert "## Prefilled Fields" in markdown