From baf73d5eb4a9f2fb49a927059498c778d93fb791 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Sat, 27 Jun 2026 00:51:51 +0800 Subject: [PATCH] feat(skill): advance dasha oracle evidence --- SKILL.md | 4 ++-- .../oracle_closure_master_dashboard_latest.md | 14 ++++++------- .../public_benchmark_dashboard_latest.md | 6 +++--- docs/research/skill_gap_truth_audit_latest.md | 10 +++++----- .../oracle/dasha_shadbala_oracle_cases.json | 20 ++++++++++++++++--- references/skill_gap_truth_registry.json | 8 ++++---- tests/test_dasha_oracle_closure_status.py | 14 ++++++------- tests/test_oracle_closure_master_dashboard.py | 10 +++++----- tests/test_public_benchmark_dashboard.py | 4 ++-- tests/test_skill_gap_truth_audit.py | 2 +- 10 files changed, 53 insertions(+), 39 deletions(-) diff --git a/SKILL.md b/SKILL.md index 7884c6da..da1cdaf8 100644 --- a/SKILL.md +++ b/SKILL.md @@ -143,11 +143,11 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力 **普通用户解释时必须显式区分基础排盘高可信与高阶绝对值待外部校准。** -- Dasha-only 外部证据已进入专项闭环:`dasha_external_oracle_evidence_validation.valid_dasha_packets: 1/3`;首个 Steve Jobs / Lahiri / Vimshottari 起始边界来自 PyJHora 4.8.7 隔离黑盒 stdout artifact。 +- Dasha-only 外部证据已进入专项闭环:`dasha_external_oracle_evidence_validation.valid_dasha_packets: 2/3`;Steve Jobs / Lahiri 与 REDACTED_YEAR Lahiri 模板的 Vimshottari 起始边界来自 PyJHora 4.8.7 隔离黑盒 stdout artifact。 - 全局 Dasha/Shadbala Calibration Status 仍未完成:`external_oracle_evidence_validation.valid_packets: 0`,`ready_for_calibration: 0`,因为 Shadbala 绝对 Rupa/Virupa 六分量尚未外部封顶。 - D1/D9/SAV 高可信;Dasha 精细日期可引用已验证 Dasha-only 样本的局部进度,但不得把全部大运边界、Shadbala 绝对值或全局精度说成已完成外部校准。 - `production_tuning_allowed: false` 前,禁止为了贴合单份 PDF、单个 JHora 截图或本仓库本地输出而改生产常数。 -- 对普通用户的建议话术:基础落座、D9、SAV 可作为稳定证据;Dasha 精细边界已有首个外部黑盒样本但仍需扩展,Shadbala 绝对值仍需 JHora/PyJHora/公开书例六分量证据后再提升置信度。 +- 对普通用户的建议话术:基础落座、D9、SAV 可作为稳定证据;Dasha 精细边界已有两个外部黑盒样本但仍需扩展,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 ebb2cb07..c9ee516d 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-26T16:35:14.439008+00:00` +Generated: `2026-06-26T16:48:59.201221+00:00` ## Summary - total_tasks: `12` -- external_verified_tasks: `1` -- open_tasks: `11` +- external_verified_tasks: `2` +- open_tasks: `10` - can_claim_global_oracle_closure: `false` - production_tuning_allowed: `false` @@ -14,7 +14,7 @@ Generated: `2026-06-26T16:35:14.439008+00:00` | front | tasks | verified | first priority | missing fields | manual entries | metadata missing | target missing | |---|---:|---:|---|---:|---:|---:|---:| -| `dasha` | 3 | 1 | `template_user_REDACTED_YEAR_moon_longitude_lahiri` | 6 | 6 | 5 | 1 | +| `dasha` | 3 | 2 | `template_historical_epoch_lahiri` | 6 | 6 | 5 | 1 | | `tajika_sahams` | 5 | 0 | `template_steve_jobs_varshaphala_1984_lahiri` | 15 | 15 | 5 | 10 | | `shadbala` | 4 | 0 | `template_redacted_place_shadbala_raman` | 55 | 55 | 5 | 50 | @@ -22,13 +22,13 @@ Generated: `2026-06-26T16:35:14.439008+00:00` ### dasha -- case_id: `template_user_REDACTED_YEAR_moon_longitude_lahiri` -- capture_id: `external_template_user_REDACTED_YEAR_moon_longitude_lahiri` +- case_id: `template_historical_epoch_lahiri` +- capture_id: `external_template_historical_epoch_lahiri` - missing_field_count: `6` - manual_entry_count: `6` ```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_historical_epoch_lahiri.json --format json ``` ### tajika_sahams diff --git a/docs/research/public_benchmark_dashboard_latest.md b/docs/research/public_benchmark_dashboard_latest.md index 47fca507..87e249bf 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-26T16:35:34.078774+00:00` +Generated: `2026-06-26T16:48:58.727959+00:00` ## Capability Registry @@ -14,7 +14,7 @@ Generated: `2026-06-26T16:35:34.078774+00:00` - valid_packets: `0` - ready_for_calibration: `0` - production_tuning_allowed: `false` -- valid_dasha_packets: `1` +- valid_dasha_packets: `2` - total_dasha_packets: `3` ## Boundary Audit @@ -30,7 +30,7 @@ Generated: `2026-06-26T16:35:34.078774+00:00` ## Remaining Gap -Dasha-only external oracle readiness is 1/3; Shadbala absolute values still need component-level external evidence, and public long-term benchmark history is not yet comparable to the strongest global open-source projects. +Dasha-only external oracle readiness is 2/3; Shadbala absolute values still need component-level external evidence, and 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 c9154d40..49a9cc6d 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-26T16:35:14.991645+00:00` +Generated: `2026-06-26T16:49:33.796913+00:00` ## Public Claim Boundary @@ -19,8 +19,8 @@ Generated: `2026-06-26T16:35:14.991645+00:00` ## External Oracle Closure - total_tasks: `12` -- external_verified_tasks: `1` -- open_tasks: `11` +- external_verified_tasks: `2` +- open_tasks: `10` - can_claim_global_oracle_closure: `false` ## Remaining Hard Fronts @@ -29,8 +29,8 @@ Generated: `2026-06-26T16:35:14.991645+00:00` - id: `dasha_external_oracle` - priority: `P0` -- status: `blocked_external_evidence` -- current_truth: Dasha engines are usable, but exact start dates, balance periods and sub-period boundaries cannot be called externally closed until real JHora/PyJHora/book-example packets pass validation. +- status: `active_partial_external_evidence` +- current_truth: Dasha engines are usable and Dasha-only external oracle evidence is partially closed at 2/3 packets; exact start dates, balance periods and sub-period boundaries cannot be called fully closed until the remaining packet and multi-family comparisons pass validation. ### Long-term public benchmark diff --git a/references/oracle/dasha_shadbala_oracle_cases.json b/references/oracle/dasha_shadbala_oracle_cases.json index 090eca98..a7de8e68 100644 --- a/references/oracle/dasha_shadbala_oracle_cases.json +++ b/references/oracle/dasha_shadbala_oracle_cases.json @@ -9,7 +9,7 @@ "template_cases": [ { "id": "template_user_REDACTED_YEAR_moon_longitude_lahiri", - "status": "template_only", + "status": "external_verified", "source": "JHora/PyJHora/VedAstro/Manual screenshot", "privacy": "user_supplied_reference_template", "birth": { @@ -29,10 +29,24 @@ }, "target": { "moon_sidereal_longitude_deg": null, - "vimshottari_start_date": null, + "vimshottari_start_date": "1986-05-25", "shadbala_components": null }, - "verification_note": "Only fill target fields when the value comes from external oracle, not from this repo." + "verification_note": "Only fill target fields when the value comes from external oracle, not from this repo.", + "evidence_packet": { + "capture_id": "external_template_user_REDACTED_YEAR_moon_longitude_lahiri", + "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_user_REDACTED_YEAR_dasha_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." + } + } }, { "id": "template_steve_jobs_dasha_lahiri", diff --git a/references/skill_gap_truth_registry.json b/references/skill_gap_truth_registry.json index 2ee85ede..f5b2b49d 100644 --- a/references/skill_gap_truth_registry.json +++ b/references/skill_gap_truth_registry.json @@ -12,10 +12,10 @@ "dasha_external_oracle": { "title": "Dasha external oracle", "priority": "P0", - "status": "blocked_external_evidence", - "current_truth": "Dasha engines are usable, but exact start dates, balance periods and sub-period boundaries cannot be called externally closed until real JHora/PyJHora/book-example packets pass validation.", + "status": "active_partial_external_evidence", + "current_truth": "Dasha engines are usable and Dasha-only external oracle evidence is partially closed at 2/3 packets; exact start dates, balance periods and sub-period boundaries cannot be called fully closed until the remaining packet and multi-family comparisons pass validation.", "completion_standard": [ - "At least one real external_verified packet is accepted for the first Dasha target.", + "All current Dasha-only external_verified packets are accepted by scripts/dasha_oracle_evidence_validator.py.", "Multiple Dasha families have versioned boundary comparisons.", "Differences between local output and external oracle output are documented without production tuning from local data." ], @@ -25,7 +25,7 @@ "One local chart output proves software-grade timing accuracy" ], "next_actions": [ - "Use scripts/dasha_oracle_closure_status.py to fill the first external packet.", + "Use scripts/dasha_oracle_closure_status.py to fill the next open external packet.", "Collect redacted JHora/PyJHora/book evidence under references/oracle/artifacts.", "Re-run scripts/oracle_evidence_validator.py after packet application." ] diff --git a/tests/test_dasha_oracle_closure_status.py b/tests/test_dasha_oracle_closure_status.py index aa2e30dd..d2850f4c 100644 --- a/tests/test_dasha_oracle_closure_status.py +++ b/tests/test_dasha_oracle_closure_status.py @@ -37,17 +37,17 @@ def test_dasha_oracle_closure_status_identifies_first_shortest_packet() -> None: assert report["scope"] == "dasha_external_oracle_closure_status" assert report["schema_version"] == 1 assert report["summary"]["dasha_task_count"] == 3 - assert report["summary"]["external_verified_dasha_tasks"] == 1 + assert report["summary"]["external_verified_dasha_tasks"] == 2 assert report["summary"]["can_claim_dasha_oracle_closure"] is False - 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"]["case_id"] == "template_historical_epoch_lahiri" + assert report["first_priority"]["capture_id"] == "external_template_historical_epoch_lahiri" assert report["first_priority"]["required_target_fields"] == ["target.vimshottari_start_date"] assert "metadata.tool_name" in report["first_priority"]["missing_fields"] assert "target.vimshottari_start_date" in report["first_priority"]["missing_fields"] assert report["first_priority"]["missing_groups"]["metadata"]["count"] == 5 assert report["first_priority"]["missing_groups"]["target"]["count"] == 1 assert report["first_priority"]["prefilled_fields"]["metadata"]["ayanamsa"] == "lahiri" - assert report["first_priority"]["prefilled_fields"]["metadata"]["timezone"] == 8 + assert report["first_priority"]["prefilled_fields"]["metadata"]["timezone"] == 5.5 assert report["first_priority"]["manual_fill_plan"]["status_value"] == "external_verified" assert report["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 6 assert report["first_priority"]["apply_command"] @@ -63,7 +63,7 @@ def test_dasha_oracle_closure_status_markdown_can_be_written(tmp_path: Path) -> markdown = output.read_text(encoding="utf-8") assert "# Dasha External Oracle Closure Status" in markdown assert "can_claim_dasha_oracle_closure: `false`" in markdown - assert "external_template_user_REDACTED_YEAR_moon_longitude_lahiri" in markdown + assert "external_template_historical_epoch_lahiri" in markdown assert "target.vimshottari_start_date" in markdown assert "## Missing Summary" in markdown assert "## Prefilled Fields" in markdown @@ -114,6 +114,6 @@ def test_dasha_oracle_closure_status_advances_after_first_packet_is_filled(tmp_p assert completed.returncode == 0, completed.stderr or completed.stdout report = json.loads(completed.stdout) - assert report["summary"]["external_verified_dasha_tasks"] == 1 - assert report["first_priority"]["case_id"] != "template_steve_jobs_dasha_lahiri" + assert report["summary"]["external_verified_dasha_tasks"] == 2 + assert report["first_priority"]["case_id"] == "template_historical_epoch_lahiri" assert report["first_priority"]["missing_fields"] diff --git a/tests/test_oracle_closure_master_dashboard.py b/tests/test_oracle_closure_master_dashboard.py index 7ce2803c..afff2a93 100644 --- a/tests/test_oracle_closure_master_dashboard.py +++ b/tests/test_oracle_closure_master_dashboard.py @@ -39,14 +39,14 @@ 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"] == 1 - assert report["summary"]["open_tasks"] == 11 + assert report["summary"]["external_verified_tasks"] == 2 + assert report["summary"]["open_tasks"] == 10 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"] == 1 - assert report["fronts"]["dasha"]["first_priority"]["case_id"] == "template_user_REDACTED_YEAR_moon_longitude_lahiri" + assert report["fronts"]["dasha"]["external_verified_tasks"] == 2 + assert report["fronts"]["dasha"]["first_priority"]["case_id"] == "template_historical_epoch_lahiri" 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"]["dasha"]["first_priority"]["missing_groups"]["metadata"]["count"] == 5 @@ -70,7 +70,7 @@ def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path) assert "# Jyotish External Oracle Closure Master Dashboard" in markdown assert "total_tasks: `12`" in markdown assert "can_claim_global_oracle_closure: `false`" in markdown - assert "template_user_REDACTED_YEAR_moon_longitude_lahiri" in markdown + assert "template_historical_epoch_lahiri" in markdown assert "template_redacted_place_shadbala_raman" in markdown assert "template_steve_jobs_varshaphala_1984_lahiri" in markdown assert "manual entries" in markdown diff --git a/tests/test_public_benchmark_dashboard.py b/tests/test_public_benchmark_dashboard.py index 340f3598..1715abbd 100644 --- a/tests/test_public_benchmark_dashboard.py +++ b/tests/test_public_benchmark_dashboard.py @@ -42,10 +42,10 @@ def test_public_benchmark_dashboard_outputs_stable_json_summary() -> None: assert report["oracle_readiness"]["valid_packets"] == 0 assert report["oracle_readiness"]["ready_for_calibration"] == 0 assert report["oracle_readiness"]["production_tuning_allowed"] is False - assert report["dasha_oracle_readiness"]["valid_dasha_packets"] == 1 + assert report["dasha_oracle_readiness"]["valid_dasha_packets"] == 2 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 1/3" in report["global_first_gap"] + assert "Dasha-only external oracle readiness is 2/3" 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_skill_gap_truth_audit.py b/tests/test_skill_gap_truth_audit.py index 09d2152e..bdf94c61 100644 --- a/tests/test_skill_gap_truth_audit.py +++ b/tests/test_skill_gap_truth_audit.py @@ -31,7 +31,7 @@ def test_skill_gap_truth_registry_lists_hard_fronts_and_past_corrections() -> No assert required_fronts <= set(hard_fronts) for front_id in required_fronts: front = hard_fronts[front_id] - assert front["status"] in {"blocked_external_evidence", "active_gap"} + assert front["status"] in {"blocked_external_evidence", "active_gap", "active_partial_external_evidence"} assert front["priority"] in {"P0", "P1", "P2"} assert front["completion_standard"] assert front["forbidden_claims"]