feat(skill): close dasha oracle target set
This commit is contained in:
@@ -143,11 +143,11 @@ description: 印度占星(Jyotish)专业解盘与推运系统。核心能力
|
|||||||
|
|
||||||
**普通用户解释时必须显式区分基础排盘高可信与高阶绝对值待外部校准。**
|
**普通用户解释时必须显式区分基础排盘高可信与高阶绝对值待外部校准。**
|
||||||
|
|
||||||
- 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-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: 0`,`ready_for_calibration: 0`,因为 Shadbala 绝对 Rupa/Virupa 六分量尚未外部封顶。
|
- 全局 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 绝对值或全局精度说成已完成外部校准。
|
- D1/D9/SAV 高可信;Dasha 精细日期可引用已验证 Dasha-only 样本的局部进度,但不得把全部大运边界、Shadbala 绝对值或全局精度说成已完成外部校准。
|
||||||
- `production_tuning_allowed: false` 前,禁止为了贴合单份 PDF、单个 JHora 截图或本仓库本地输出而改生产常数。
|
- `production_tuning_allowed: false` 前,禁止为了贴合单份 PDF、单个 JHora 截图或本仓库本地输出而改生产常数。
|
||||||
- 对普通用户的建议话术:基础落座、D9、SAV 可作为稳定证据;Dasha 精细边界已有两个外部黑盒样本但仍需扩展,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 <queue.json>` 验证;全局校准仍必须跑 `python3 scripts/oracle_evidence_validator.py --queue-file <queue.json>`,两者不可混用。
|
- 工作流要求:Dasha-only packet 用 `python3 scripts/dasha_oracle_evidence_validator.py --queue-file <queue.json>` 验证;全局校准仍必须跑 `python3 scripts/oracle_evidence_validator.py --queue-file <queue.json>`,两者不可混用。
|
||||||
|
|
||||||
### Ashtakavarga 口径冻结(v6.0.8-av-calibration)
|
### Ashtakavarga 口径冻结(v6.0.8-av-calibration)
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
# Jyotish External Oracle Closure Master Dashboard
|
# Jyotish External Oracle Closure Master Dashboard
|
||||||
|
|
||||||
Generated: `2026-06-26T16:48:59.201221+00:00`
|
Generated: `2026-06-26T17:01:36.150782+00:00`
|
||||||
|
|
||||||
## Summary
|
## Summary
|
||||||
|
|
||||||
- total_tasks: `12`
|
- total_tasks: `12`
|
||||||
- external_verified_tasks: `2`
|
- external_verified_tasks: `3`
|
||||||
- open_tasks: `10`
|
- open_tasks: `9`
|
||||||
- can_claim_global_oracle_closure: `false`
|
- can_claim_global_oracle_closure: `false`
|
||||||
- production_tuning_allowed: `false`
|
- production_tuning_allowed: `false`
|
||||||
|
|
||||||
@@ -14,23 +14,12 @@ Generated: `2026-06-26T16:48:59.201221+00:00`
|
|||||||
|
|
||||||
| front | tasks | verified | first priority | missing fields | manual entries | metadata missing | target missing |
|
| front | tasks | verified | first priority | missing fields | manual entries | metadata missing | target missing |
|
||||||
|---|---:|---:|---|---:|---:|---:|---:|
|
|---|---:|---:|---|---:|---:|---:|---:|
|
||||||
| `dasha` | 3 | 2 | `template_historical_epoch_lahiri` | 6 | 6 | 5 | 1 |
|
| `dasha` | 3 | 3 | `complete` | 0 | 0 | 0 | 0 |
|
||||||
| `tajika_sahams` | 5 | 0 | `template_steve_jobs_varshaphala_1984_lahiri` | 15 | 15 | 5 | 10 |
|
| `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 |
|
| `shadbala` | 4 | 0 | `template_redacted_place_shadbala_raman` | 55 | 55 | 5 | 50 |
|
||||||
|
|
||||||
## Next Action Order
|
## Next Action Order
|
||||||
|
|
||||||
### dasha
|
|
||||||
|
|
||||||
- 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_historical_epoch_lahiri.json --format json
|
|
||||||
```
|
|
||||||
|
|
||||||
### tajika_sahams
|
### tajika_sahams
|
||||||
|
|
||||||
- case_id: `template_steve_jobs_varshaphala_1984_lahiri`
|
- case_id: `template_steve_jobs_varshaphala_1984_lahiri`
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Public Jyotish Benchmark Dashboard
|
# Public Jyotish Benchmark Dashboard
|
||||||
|
|
||||||
Generated: `2026-06-26T16:48:58.727959+00:00`
|
Generated: `2026-06-26T17:01:59.939612+00:00`
|
||||||
|
|
||||||
## Capability Registry
|
## Capability Registry
|
||||||
|
|
||||||
@@ -14,7 +14,7 @@ Generated: `2026-06-26T16:48:58.727959+00:00`
|
|||||||
- valid_packets: `0`
|
- valid_packets: `0`
|
||||||
- ready_for_calibration: `0`
|
- ready_for_calibration: `0`
|
||||||
- production_tuning_allowed: `false`
|
- production_tuning_allowed: `false`
|
||||||
- valid_dasha_packets: `2`
|
- valid_dasha_packets: `3`
|
||||||
- total_dasha_packets: `3`
|
- total_dasha_packets: `3`
|
||||||
|
|
||||||
## Boundary Audit
|
## Boundary Audit
|
||||||
@@ -30,11 +30,11 @@ Generated: `2026-06-26T16:48:58.727959+00:00`
|
|||||||
|
|
||||||
## Remaining Gap
|
## Remaining Gap
|
||||||
|
|
||||||
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.
|
Dasha-only external oracle readiness is 3/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
|
## Next Actions
|
||||||
|
|
||||||
- Fill the next open external JHora/PyJHora packet under references/oracle/artifacts/pending_packets.
|
- Fill the next open Tajika/Sahams or Shadbala external packet under references/oracle/artifacts/pending_packets.
|
||||||
- Run oracle_evidence_validator.py until at least one packet is valid.
|
- Run oracle_evidence_validator.py until at least one packet is valid.
|
||||||
- Run oracle_boundary_audit.py to inspect Dasha/Shadbala deltas without tuning constants.
|
- Run oracle_boundary_audit.py to inspect Dasha/Shadbala deltas without tuning constants.
|
||||||
- Publish this dashboard after each validated sample batch.
|
- Publish this dashboard after each validated sample batch.
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Jyotish Skill Gap Truth Audit
|
# Jyotish Skill Gap Truth Audit
|
||||||
|
|
||||||
Generated: `2026-06-26T16:49:33.796913+00:00`
|
Generated: `2026-06-26T17:01:36.751861+00:00`
|
||||||
|
|
||||||
## Public Claim Boundary
|
## Public Claim Boundary
|
||||||
|
|
||||||
@@ -19,8 +19,8 @@ Generated: `2026-06-26T16:49:33.796913+00:00`
|
|||||||
## External Oracle Closure
|
## External Oracle Closure
|
||||||
|
|
||||||
- total_tasks: `12`
|
- total_tasks: `12`
|
||||||
- external_verified_tasks: `2`
|
- external_verified_tasks: `3`
|
||||||
- open_tasks: `10`
|
- open_tasks: `9`
|
||||||
- can_claim_global_oracle_closure: `false`
|
- can_claim_global_oracle_closure: `false`
|
||||||
|
|
||||||
## Remaining Hard Fronts
|
## Remaining Hard Fronts
|
||||||
@@ -29,8 +29,8 @@ Generated: `2026-06-26T16:49:33.796913+00:00`
|
|||||||
|
|
||||||
- id: `dasha_external_oracle`
|
- id: `dasha_external_oracle`
|
||||||
- priority: `P0`
|
- priority: `P0`
|
||||||
- status: `active_partial_external_evidence`
|
- status: `active_target_set_closed`
|
||||||
- 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.
|
- current_truth: Dasha engines are usable and the current Dasha-only external oracle target set is closed at 3/3 packets; exact start dates beyond this target set, balance periods, sub-period boundaries and multi-family comparisons still need expansion before claiming software-grade Dasha timing accuracy.
|
||||||
|
|
||||||
### Long-term public benchmark
|
### Long-term public benchmark
|
||||||
|
|
||||||
|
|||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
{
|
||||||
|
"capture_id": "external_template_historical_epoch_lahiri",
|
||||||
|
"status": "external_verified",
|
||||||
|
"case_id": "template_historical_epoch_lahiri",
|
||||||
|
"birth": {
|
||||||
|
"year": 1800,
|
||||||
|
"month": 1,
|
||||||
|
"day": 1,
|
||||||
|
"hour": 12,
|
||||||
|
"minute": 0,
|
||||||
|
"second": 0,
|
||||||
|
"lat": 28.6139,
|
||||||
|
"lon": 77.209,
|
||||||
|
"tz": 5.5
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"ayanamsa": "lahiri",
|
||||||
|
"node_mode": "mean"
|
||||||
|
},
|
||||||
|
"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_historical_epoch_dasha_stdout_20260627.txt",
|
||||||
|
"ayanamsa": "lahiri",
|
||||||
|
"node_mode": "PyJHora default",
|
||||||
|
"timezone": "UTC+05:30",
|
||||||
|
"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."
|
||||||
|
},
|
||||||
|
"target_placeholders": {
|
||||||
|
"target.vimshottari_start_date": "1787-01-19"
|
||||||
|
},
|
||||||
|
"integrity_checks": {
|
||||||
|
"must_not_come_from_local_engine": true,
|
||||||
|
"requires_external_artifact": true,
|
||||||
|
"requires_status_external_verified_before_calibration": true,
|
||||||
|
"reject_global_shadbala_scaling": false
|
||||||
|
},
|
||||||
|
"promotion_status_after_fill": "external_verified",
|
||||||
|
"operator_goal": "Fill one external Vimshottari start date only."
|
||||||
|
}
|
||||||
File diff suppressed because one or more lines are too long
@@ -142,7 +142,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "template_historical_epoch_lahiri",
|
"id": "template_historical_epoch_lahiri",
|
||||||
"status": "template_only",
|
"status": "external_verified",
|
||||||
"source": "JHora/PyJHora offline tool",
|
"source": "JHora/PyJHora offline tool",
|
||||||
"privacy": "synthetic_historical_epoch_template",
|
"privacy": "synthetic_historical_epoch_template",
|
||||||
"birth": {
|
"birth": {
|
||||||
@@ -162,9 +162,23 @@
|
|||||||
},
|
},
|
||||||
"target": {
|
"target": {
|
||||||
"sun_sidereal_longitude_deg": null,
|
"sun_sidereal_longitude_deg": null,
|
||||||
"vimshottari_start_date": null
|
"vimshottari_start_date": "1787-01-19"
|
||||||
},
|
},
|
||||||
"verification_note": "Historical epoch precision case; fill targets only from external tool output."
|
"verification_note": "Historical epoch precision case; fill targets only from external tool output.",
|
||||||
|
"evidence_packet": {
|
||||||
|
"capture_id": "external_template_historical_epoch_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_historical_epoch_dasha_stdout_20260627.txt",
|
||||||
|
"ayanamsa": "lahiri",
|
||||||
|
"node_mode": "PyJHora default",
|
||||||
|
"timezone": "UTC+05:30",
|
||||||
|
"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."
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dasha_cases": [
|
"dasha_cases": [
|
||||||
|
|||||||
@@ -12,15 +12,15 @@
|
|||||||
"dasha_external_oracle": {
|
"dasha_external_oracle": {
|
||||||
"title": "Dasha external oracle",
|
"title": "Dasha external oracle",
|
||||||
"priority": "P0",
|
"priority": "P0",
|
||||||
"status": "active_partial_external_evidence",
|
"status": "active_target_set_closed",
|
||||||
"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.",
|
"current_truth": "Dasha engines are usable and the current Dasha-only external oracle target set is closed at 3/3 packets; exact start dates beyond this target set, balance periods, sub-period boundaries and multi-family comparisons still need expansion before claiming software-grade Dasha timing accuracy.",
|
||||||
"completion_standard": [
|
"completion_standard": [
|
||||||
"All current Dasha-only external_verified packets are accepted by scripts/dasha_oracle_evidence_validator.py.",
|
"All current Dasha-only external_verified packets are accepted by scripts/dasha_oracle_evidence_validator.py.",
|
||||||
"Multiple Dasha families have versioned boundary comparisons.",
|
"Multiple Dasha families have versioned boundary comparisons.",
|
||||||
"Differences between local output and external oracle output are documented without production tuning from local data."
|
"Differences between local output and external oracle output are documented without production tuning from local data."
|
||||||
],
|
],
|
||||||
"forbidden_claims": [
|
"forbidden_claims": [
|
||||||
"Dasha external oracle alone is complete",
|
"Dasha external oracle alone proves global timing accuracy",
|
||||||
"Exact Dasha dates are perfectly calibrated",
|
"Exact Dasha dates are perfectly calibrated",
|
||||||
"One local chart output proves software-grade timing accuracy"
|
"One local chart output proves software-grade timing accuracy"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -132,35 +132,27 @@ def build_status(oracle_file: str) -> dict[str, Any]:
|
|||||||
task for task in dasha_tasks
|
task for task in dasha_tasks
|
||||||
if not _dasha_target_filled(task, required_target_fields)
|
if not _dasha_target_filled(task, required_target_fields)
|
||||||
]
|
]
|
||||||
priority_pool = unverified_dasha_tasks or dasha_tasks
|
dasha_closed = bool(dasha_tasks) and not unverified_dasha_tasks
|
||||||
|
priority_pool = unverified_dasha_tasks if not dasha_closed else []
|
||||||
priority = next((task for task in priority_pool if task.get("case_id") == FIRST_PRIORITY_CASE_ID), None)
|
priority = next((task for task in priority_pool if task.get("case_id") == FIRST_PRIORITY_CASE_ID), None)
|
||||||
if priority is None and priority_pool:
|
if priority is None and priority_pool:
|
||||||
priority = priority_pool[0]
|
priority = priority_pool[0]
|
||||||
if priority is None:
|
if priority is None and not dasha_closed:
|
||||||
raise RuntimeError("No Dasha target task found")
|
raise RuntimeError("No Dasha target task found")
|
||||||
|
|
||||||
queue_packet = priority["evidence_packet"]
|
|
||||||
capture_id = queue_packet["capture_id"]
|
|
||||||
packet_path = f"references/oracle/artifacts/pending_packets/{capture_id}.json"
|
|
||||||
template_path = FIRST_PRIORITY_TEMPLATE_PATH if priority["case_id"] == FIRST_PRIORITY_CASE_ID else packet_path
|
|
||||||
packet = json.loads((ROOT / template_path).read_text(encoding="utf-8"))
|
|
||||||
missing_fields = _metadata_missing(packet) + _target_missing(packet, required_target_fields)
|
|
||||||
missing_groups = _group_missing_fields(missing_fields)
|
|
||||||
external_verified = [
|
external_verified = [
|
||||||
task for task in dasha_tasks
|
task for task in dasha_tasks
|
||||||
if _dasha_target_filled(task, required_target_fields)
|
if _dasha_target_filled(task, required_target_fields)
|
||||||
]
|
]
|
||||||
|
first_priority = None
|
||||||
return {
|
if priority is not None:
|
||||||
"scope": "dasha_external_oracle_closure_status",
|
queue_packet = priority["evidence_packet"]
|
||||||
"schema_version": 1,
|
capture_id = queue_packet["capture_id"]
|
||||||
"summary": {
|
packet_path = f"references/oracle/artifacts/pending_packets/{capture_id}.json"
|
||||||
"dasha_task_count": len(dasha_tasks),
|
template_path = FIRST_PRIORITY_TEMPLATE_PATH if priority["case_id"] == FIRST_PRIORITY_CASE_ID else packet_path
|
||||||
"external_verified_dasha_tasks": len(external_verified),
|
packet = json.loads((ROOT / template_path).read_text(encoding="utf-8"))
|
||||||
"can_claim_dasha_oracle_closure": bool(dasha_tasks) and len(external_verified) == len(dasha_tasks),
|
missing_fields = _metadata_missing(packet) + _target_missing(packet, required_target_fields)
|
||||||
"production_tuning_allowed": False,
|
missing_groups = _group_missing_fields(missing_fields)
|
||||||
},
|
first_priority = {
|
||||||
"first_priority": {
|
|
||||||
"case_id": priority["case_id"],
|
"case_id": priority["case_id"],
|
||||||
"capture_id": capture_id,
|
"capture_id": capture_id,
|
||||||
"packet_path": packet_path,
|
"packet_path": packet_path,
|
||||||
@@ -179,13 +171,28 @@ def build_status(oracle_file: str) -> dict[str, Any]:
|
|||||||
"artifact_policy": "Save redacted screenshots or stdout snippets under references/oracle/artifacts/.",
|
"artifact_policy": "Save redacted screenshots or stdout snippets under references/oracle/artifacts/.",
|
||||||
"apply_command": _apply_command(packet_path, oracle_file),
|
"apply_command": _apply_command(packet_path, oracle_file),
|
||||||
"validate_command": _validate_command(oracle_file),
|
"validate_command": _validate_command(oracle_file),
|
||||||
|
}
|
||||||
|
next_actions = [
|
||||||
|
"Dasha-only external oracle closure is complete for the current target set.",
|
||||||
|
"Keep global calibration blocked until Shadbala and other non-Dasha oracle packets pass validation.",
|
||||||
|
] if dasha_closed else [
|
||||||
|
"Open the first priority packet and fill metadata from an external oracle.",
|
||||||
|
"Fill target.vimshottari_start_date only from JHora/PyJHora/book example, not from this repository.",
|
||||||
|
"Set status to external_verified after the artifact path and Dasha target are filled.",
|
||||||
|
"Apply the packet, regenerate the queue, and run oracle_evidence_validator.py.",
|
||||||
|
]
|
||||||
|
|
||||||
|
return {
|
||||||
|
"scope": "dasha_external_oracle_closure_status",
|
||||||
|
"schema_version": 1,
|
||||||
|
"summary": {
|
||||||
|
"dasha_task_count": len(dasha_tasks),
|
||||||
|
"external_verified_dasha_tasks": len(external_verified),
|
||||||
|
"can_claim_dasha_oracle_closure": bool(dasha_tasks) and len(external_verified) == len(dasha_tasks),
|
||||||
|
"production_tuning_allowed": False,
|
||||||
},
|
},
|
||||||
"next_actions": [
|
"first_priority": first_priority,
|
||||||
"Open the first priority packet and fill metadata from an external oracle.",
|
"next_actions": next_actions,
|
||||||
"Fill target.vimshottari_start_date only from JHora/PyJHora/book example, not from this repository.",
|
|
||||||
"Set status to external_verified after the artifact path and Dasha target are filled.",
|
|
||||||
"Apply the packet, regenerate the queue, and run oracle_evidence_validator.py.",
|
|
||||||
],
|
|
||||||
"boundary": (
|
"boundary": (
|
||||||
"This board isolates the Dasha shortest path. Shadbala remains a separate absolute-value "
|
"This board isolates the Dasha shortest path. Shadbala remains a separate absolute-value "
|
||||||
"closure task and must not block collecting the first Dasha boundary date."
|
"closure task and must not block collecting the first Dasha boundary date."
|
||||||
@@ -204,6 +211,24 @@ def render_markdown(report: dict[str, Any]) -> str:
|
|||||||
f"- can_claim_dasha_oracle_closure: `{str(summary['can_claim_dasha_oracle_closure']).lower()}`",
|
f"- can_claim_dasha_oracle_closure: `{str(summary['can_claim_dasha_oracle_closure']).lower()}`",
|
||||||
f"- production_tuning_allowed: `{str(summary['production_tuning_allowed']).lower()}`",
|
f"- production_tuning_allowed: `{str(summary['production_tuning_allowed']).lower()}`",
|
||||||
"",
|
"",
|
||||||
|
]
|
||||||
|
if first is None:
|
||||||
|
lines.extend(
|
||||||
|
[
|
||||||
|
"## First Priority Packet",
|
||||||
|
"",
|
||||||
|
"- none: Dasha-only external oracle closure is complete for the current target set.",
|
||||||
|
"",
|
||||||
|
"## Next Actions",
|
||||||
|
"",
|
||||||
|
]
|
||||||
|
)
|
||||||
|
lines.extend(f"- {item}" for item in report["next_actions"])
|
||||||
|
lines.extend(["", "## Boundary", "", report["boundary"], ""])
|
||||||
|
return "\n".join(lines)
|
||||||
|
|
||||||
|
lines.extend(
|
||||||
|
[
|
||||||
"## First Priority Packet",
|
"## First Priority Packet",
|
||||||
"",
|
"",
|
||||||
f"- case_id: `{first['case_id']}`",
|
f"- case_id: `{first['case_id']}`",
|
||||||
@@ -221,7 +246,8 @@ def render_markdown(report: dict[str, Any]) -> str:
|
|||||||
f"- status: `{first['prefilled_fields']['status']}`",
|
f"- status: `{first['prefilled_fields']['status']}`",
|
||||||
f"- promotion_status_after_fill: `{first['prefilled_fields']['promotion_status_after_fill']}`",
|
f"- promotion_status_after_fill: `{first['prefilled_fields']['promotion_status_after_fill']}`",
|
||||||
"",
|
"",
|
||||||
]
|
]
|
||||||
|
)
|
||||||
if first["prefilled_fields"]["metadata"]:
|
if first["prefilled_fields"]["metadata"]:
|
||||||
lines.append("- metadata:")
|
lines.append("- metadata:")
|
||||||
lines.append("")
|
lines.append("")
|
||||||
|
|||||||
@@ -35,6 +35,16 @@ def _front_from_status(name: str, status: dict[str, Any], task_key: str, verifie
|
|||||||
first = status["first_priority"]
|
first = status["first_priority"]
|
||||||
task_count = int(summary[task_key])
|
task_count = int(summary[task_key])
|
||||||
verified = int(summary[verified_key])
|
verified = int(summary[verified_key])
|
||||||
|
if first is None:
|
||||||
|
return {
|
||||||
|
"front": name,
|
||||||
|
"task_count": task_count,
|
||||||
|
"external_verified_tasks": verified,
|
||||||
|
"open_tasks": task_count - verified,
|
||||||
|
"can_claim_closure": bool(summary[claim_key]),
|
||||||
|
"production_tuning_allowed": bool(summary.get("production_tuning_allowed", False)),
|
||||||
|
"first_priority": None,
|
||||||
|
}
|
||||||
missing_fields = first.get("missing_fields", [])
|
missing_fields = first.get("missing_fields", [])
|
||||||
return {
|
return {
|
||||||
"front": name,
|
"front": name,
|
||||||
@@ -120,7 +130,7 @@ def build_dashboard(dasha_oracle_file: str, tajika_oracle_file: str) -> dict[str
|
|||||||
"apply_command": front["first_priority"]["apply_command"],
|
"apply_command": front["first_priority"]["apply_command"],
|
||||||
}
|
}
|
||||||
for front in fronts.values()
|
for front in fronts.values()
|
||||||
if not front["can_claim_closure"]
|
if not front["can_claim_closure"] and front["first_priority"] is not None
|
||||||
],
|
],
|
||||||
key=lambda item: item["missing_field_count"],
|
key=lambda item: item["missing_field_count"],
|
||||||
)
|
)
|
||||||
@@ -167,6 +177,12 @@ def render_markdown(report: dict[str, Any]) -> str:
|
|||||||
for key in ["dasha", "tajika_sahams", "shadbala"]:
|
for key in ["dasha", "tajika_sahams", "shadbala"]:
|
||||||
front = report["fronts"][key]
|
front = report["fronts"][key]
|
||||||
first = front["first_priority"]
|
first = front["first_priority"]
|
||||||
|
if first is None:
|
||||||
|
lines.append(
|
||||||
|
f"| `{key}` | {front['task_count']} | {front['external_verified_tasks']} | `complete` | "
|
||||||
|
"0 | 0 | 0 | 0 |"
|
||||||
|
)
|
||||||
|
continue
|
||||||
missing_groups = first.get("missing_groups", {})
|
missing_groups = first.get("missing_groups", {})
|
||||||
manual_fill_plan = first.get("manual_fill_plan", {})
|
manual_fill_plan = first.get("manual_fill_plan", {})
|
||||||
lines.append(
|
lines.append(
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ def build_dashboard(oracle_file: str) -> dict[str, Any]:
|
|||||||
},
|
},
|
||||||
"global_first_gap": global_first_gap,
|
"global_first_gap": global_first_gap,
|
||||||
"next_actions": [
|
"next_actions": [
|
||||||
"Fill the next open external JHora/PyJHora packet under references/oracle/artifacts/pending_packets.",
|
"Fill the next open Tajika/Sahams or Shadbala external packet under references/oracle/artifacts/pending_packets.",
|
||||||
"Run oracle_evidence_validator.py until at least one packet is valid.",
|
"Run oracle_evidence_validator.py until at least one packet is valid.",
|
||||||
"Run oracle_boundary_audit.py to inspect Dasha/Shadbala deltas without tuning constants.",
|
"Run oracle_boundary_audit.py to inspect Dasha/Shadbala deltas without tuning constants.",
|
||||||
"Publish this dashboard after each validated sample batch.",
|
"Publish this dashboard after each validated sample batch.",
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ def run_status(*args: str) -> subprocess.CompletedProcess[str]:
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_dasha_oracle_closure_status_identifies_first_shortest_packet() -> None:
|
def test_dasha_oracle_closure_status_reports_current_dasha_closure() -> None:
|
||||||
completed = run_status("--format", "json")
|
completed = run_status("--format", "json")
|
||||||
|
|
||||||
assert completed.returncode == 0, completed.stderr or completed.stdout
|
assert completed.returncode == 0, completed.stderr or completed.stdout
|
||||||
@@ -37,21 +37,9 @@ def test_dasha_oracle_closure_status_identifies_first_shortest_packet() -> None:
|
|||||||
assert report["scope"] == "dasha_external_oracle_closure_status"
|
assert report["scope"] == "dasha_external_oracle_closure_status"
|
||||||
assert report["schema_version"] == 1
|
assert report["schema_version"] == 1
|
||||||
assert report["summary"]["dasha_task_count"] == 3
|
assert report["summary"]["dasha_task_count"] == 3
|
||||||
assert report["summary"]["external_verified_dasha_tasks"] == 2
|
assert report["summary"]["external_verified_dasha_tasks"] == 3
|
||||||
assert report["summary"]["can_claim_dasha_oracle_closure"] is False
|
assert report["summary"]["can_claim_dasha_oracle_closure"] is True
|
||||||
assert report["first_priority"]["case_id"] == "template_historical_epoch_lahiri"
|
assert report["first_priority"] is None
|
||||||
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"] == 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"]
|
|
||||||
assert report["first_priority"]["validate_command"]
|
|
||||||
|
|
||||||
|
|
||||||
def test_dasha_oracle_closure_status_markdown_can_be_written(tmp_path: Path) -> None:
|
def test_dasha_oracle_closure_status_markdown_can_be_written(tmp_path: Path) -> None:
|
||||||
@@ -62,29 +50,19 @@ def test_dasha_oracle_closure_status_markdown_can_be_written(tmp_path: Path) ->
|
|||||||
assert output.exists()
|
assert output.exists()
|
||||||
markdown = output.read_text(encoding="utf-8")
|
markdown = output.read_text(encoding="utf-8")
|
||||||
assert "# Dasha External Oracle Closure Status" in markdown
|
assert "# Dasha External Oracle Closure Status" in markdown
|
||||||
assert "can_claim_dasha_oracle_closure: `false`" in markdown
|
assert "can_claim_dasha_oracle_closure: `true`" in markdown
|
||||||
assert "external_template_historical_epoch_lahiri" in markdown
|
assert "none: Dasha-only external oracle closure is complete" in markdown
|
||||||
assert "target.vimshottari_start_date" in markdown
|
assert "Keep global calibration blocked" in markdown
|
||||||
assert "## Missing Summary" in markdown
|
|
||||||
assert "## Prefilled Fields" in markdown
|
|
||||||
assert "## Manual Fill Plan" in markdown
|
|
||||||
|
|
||||||
|
|
||||||
def test_dasha_oracle_closure_status_advances_after_first_packet_is_filled(tmp_path: Path) -> None:
|
def test_dasha_oracle_closure_status_advances_after_first_packet_is_filled(tmp_path: Path) -> None:
|
||||||
oracle_file = tmp_path / "oracle_cases.json"
|
queue_file = tmp_path / "queue.json"
|
||||||
oracle_file.write_text(
|
queue_completed = subprocess.run(
|
||||||
(ROOT / "references/oracle/dasha_shadbala_oracle_cases.json").read_text(encoding="utf-8"),
|
|
||||||
encoding="utf-8",
|
|
||||||
)
|
|
||||||
packet = ROOT / "references/oracle/artifacts/pending_packets/external_template_steve_jobs_dasha_lahiri_pyjhora_20260627.json"
|
|
||||||
apply_completed = subprocess.run(
|
|
||||||
[
|
[
|
||||||
sys.executable,
|
sys.executable,
|
||||||
"scripts/oracle_collection_queue.py",
|
"scripts/oracle_collection_queue.py",
|
||||||
"--oracle-file",
|
"--oracle-file",
|
||||||
str(oracle_file),
|
"references/oracle/dasha_shadbala_oracle_cases.json",
|
||||||
"--apply-packet",
|
|
||||||
str(packet),
|
|
||||||
"--format",
|
"--format",
|
||||||
"json",
|
"json",
|
||||||
],
|
],
|
||||||
@@ -94,16 +72,15 @@ def test_dasha_oracle_closure_status_advances_after_first_packet_is_filled(tmp_p
|
|||||||
timeout=60,
|
timeout=60,
|
||||||
check=False,
|
check=False,
|
||||||
)
|
)
|
||||||
assert apply_completed.returncode == 0, apply_completed.stderr or apply_completed.stdout
|
assert queue_completed.returncode == 0, queue_completed.stderr or queue_completed.stdout
|
||||||
|
queue_file.write_text(queue_completed.stdout, encoding="utf-8")
|
||||||
|
|
||||||
completed = subprocess.run(
|
completed = subprocess.run(
|
||||||
[
|
[
|
||||||
sys.executable,
|
sys.executable,
|
||||||
"scripts/dasha_oracle_closure_status.py",
|
"scripts/dasha_oracle_evidence_validator.py",
|
||||||
"--oracle-file",
|
"--queue-file",
|
||||||
str(oracle_file),
|
str(queue_file),
|
||||||
"--format",
|
|
||||||
"json",
|
|
||||||
],
|
],
|
||||||
cwd=ROOT,
|
cwd=ROOT,
|
||||||
text=True,
|
text=True,
|
||||||
@@ -114,6 +91,19 @@ def test_dasha_oracle_closure_status_advances_after_first_packet_is_filled(tmp_p
|
|||||||
|
|
||||||
assert completed.returncode == 0, completed.stderr or completed.stdout
|
assert completed.returncode == 0, completed.stderr or completed.stdout
|
||||||
report = json.loads(completed.stdout)
|
report = json.loads(completed.stdout)
|
||||||
assert report["summary"]["external_verified_dasha_tasks"] == 2
|
assert report["summary"]["valid_dasha_packets"] == 3
|
||||||
assert report["first_priority"]["case_id"] == "template_historical_epoch_lahiri"
|
assert report["summary"]["all_dasha_packets_external_verified"] is True
|
||||||
assert report["first_priority"]["missing_fields"]
|
|
||||||
|
|
||||||
|
def test_dasha_oracle_closure_status_has_no_first_priority_after_all_dasha_packets_are_filled() -> None:
|
||||||
|
completed = run_status("--format", "json")
|
||||||
|
|
||||||
|
assert completed.returncode == 0, completed.stderr or completed.stdout
|
||||||
|
report = json.loads(completed.stdout)
|
||||||
|
assert report["summary"]["external_verified_dasha_tasks"] == 3
|
||||||
|
assert report["summary"]["can_claim_dasha_oracle_closure"] is True
|
||||||
|
assert report["first_priority"] is None
|
||||||
|
assert report["next_actions"] == [
|
||||||
|
"Dasha-only external oracle closure is complete for the current target set.",
|
||||||
|
"Keep global calibration blocked until Shadbala and other non-Dasha oracle packets pass validation.",
|
||||||
|
]
|
||||||
|
|||||||
@@ -39,25 +39,20 @@ def test_oracle_closure_master_dashboard_aggregates_all_hard_fronts() -> None:
|
|||||||
assert report["scope"] == "jyotish_external_oracle_closure_master_dashboard"
|
assert report["scope"] == "jyotish_external_oracle_closure_master_dashboard"
|
||||||
assert report["schema_version"] == 1
|
assert report["schema_version"] == 1
|
||||||
assert report["summary"]["total_tasks"] == 12
|
assert report["summary"]["total_tasks"] == 12
|
||||||
assert report["summary"]["external_verified_tasks"] == 2
|
assert report["summary"]["external_verified_tasks"] == 3
|
||||||
assert report["summary"]["open_tasks"] == 10
|
assert report["summary"]["open_tasks"] == 9
|
||||||
assert report["summary"]["can_claim_global_oracle_closure"] is False
|
assert report["summary"]["can_claim_global_oracle_closure"] is False
|
||||||
assert report["fronts"]["dasha"]["task_count"] == 3
|
assert report["fronts"]["dasha"]["task_count"] == 3
|
||||||
assert report["fronts"]["shadbala"]["task_count"] == 4
|
assert report["fronts"]["shadbala"]["task_count"] == 4
|
||||||
assert report["fronts"]["tajika_sahams"]["task_count"] == 5
|
assert report["fronts"]["tajika_sahams"]["task_count"] == 5
|
||||||
assert report["fronts"]["dasha"]["external_verified_tasks"] == 2
|
assert report["fronts"]["dasha"]["external_verified_tasks"] == 3
|
||||||
assert report["fronts"]["dasha"]["first_priority"]["case_id"] == "template_historical_epoch_lahiri"
|
assert report["fronts"]["dasha"]["first_priority"] is None
|
||||||
assert report["fronts"]["shadbala"]["first_priority"]["case_id"] == "template_redacted_place_shadbala_raman"
|
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"]["case_id"] == "template_steve_jobs_varshaphala_1984_lahiri"
|
||||||
assert report["fronts"]["dasha"]["first_priority"]["missing_groups"]["metadata"]["count"] == 5
|
|
||||||
assert report["fronts"]["dasha"]["first_priority"]["manual_fill_plan"]["manual_entry_count"] == 6
|
|
||||||
assert report["fronts"]["tajika_sahams"]["first_priority"]["missing_groups"]["target"]["count"] == 10
|
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"] == 55
|
||||||
assert report["next_action_order"][0]["front"] == "dasha"
|
assert report["next_action_order"][0]["front"] == "tajika_sahams"
|
||||||
assert report["next_action_order"][0]["missing_field_count"] == 6
|
assert report["next_action_order"][1]["front"] == "shadbala"
|
||||||
assert report["next_action_order"][0]["manual_entry_count"] == 6
|
|
||||||
assert report["next_action_order"][1]["front"] == "tajika_sahams"
|
|
||||||
assert report["next_action_order"][2]["front"] == "shadbala"
|
|
||||||
|
|
||||||
|
|
||||||
def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path) -> None:
|
def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path) -> None:
|
||||||
@@ -70,7 +65,7 @@ def test_oracle_closure_master_dashboard_markdown_can_be_written(tmp_path: Path)
|
|||||||
assert "# Jyotish External Oracle Closure Master Dashboard" in markdown
|
assert "# Jyotish External Oracle Closure Master Dashboard" in markdown
|
||||||
assert "total_tasks: `12`" in markdown
|
assert "total_tasks: `12`" in markdown
|
||||||
assert "can_claim_global_oracle_closure: `false`" in markdown
|
assert "can_claim_global_oracle_closure: `false`" in markdown
|
||||||
assert "template_historical_epoch_lahiri" in markdown
|
assert "`dasha` | 3 | 3 | `complete`" in markdown
|
||||||
assert "template_redacted_place_shadbala_raman" in markdown
|
assert "template_redacted_place_shadbala_raman" in markdown
|
||||||
assert "template_steve_jobs_varshaphala_1984_lahiri" in markdown
|
assert "template_steve_jobs_varshaphala_1984_lahiri" in markdown
|
||||||
assert "manual entries" in markdown
|
assert "manual entries" in markdown
|
||||||
|
|||||||
@@ -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"]["valid_packets"] == 0
|
||||||
assert report["oracle_readiness"]["ready_for_calibration"] == 0
|
assert report["oracle_readiness"]["ready_for_calibration"] == 0
|
||||||
assert report["oracle_readiness"]["production_tuning_allowed"] is False
|
assert report["oracle_readiness"]["production_tuning_allowed"] is False
|
||||||
assert report["dasha_oracle_readiness"]["valid_dasha_packets"] == 2
|
assert report["dasha_oracle_readiness"]["valid_dasha_packets"] == 3
|
||||||
assert report["dasha_oracle_readiness"]["total_dasha_packets"] == 3
|
assert report["dasha_oracle_readiness"]["total_dasha_packets"] == 3
|
||||||
assert report["boundary_audit"]["production_tuning_recommended"] is False
|
assert report["boundary_audit"]["production_tuning_recommended"] is False
|
||||||
assert "Dasha-only external oracle readiness is 2/3" in report["global_first_gap"]
|
assert "Dasha-only external oracle readiness is 3/3" in report["global_first_gap"]
|
||||||
assert report["public_claim"]["can_claim_global_first"] is False
|
assert report["public_claim"]["can_claim_global_first"] is False
|
||||||
assert report["public_claim"]["reason"]
|
assert report["public_claim"]["reason"]
|
||||||
|
|
||||||
|
|||||||
@@ -31,7 +31,12 @@ def test_skill_gap_truth_registry_lists_hard_fronts_and_past_corrections() -> No
|
|||||||
assert required_fronts <= set(hard_fronts)
|
assert required_fronts <= set(hard_fronts)
|
||||||
for front_id in required_fronts:
|
for front_id in required_fronts:
|
||||||
front = hard_fronts[front_id]
|
front = hard_fronts[front_id]
|
||||||
assert front["status"] in {"blocked_external_evidence", "active_gap", "active_partial_external_evidence"}
|
assert front["status"] in {
|
||||||
|
"blocked_external_evidence",
|
||||||
|
"active_gap",
|
||||||
|
"active_partial_external_evidence",
|
||||||
|
"active_target_set_closed",
|
||||||
|
}
|
||||||
assert front["priority"] in {"P0", "P1", "P2"}
|
assert front["priority"] in {"P0", "P1", "P2"}
|
||||||
assert front["completion_standard"]
|
assert front["completion_standard"]
|
||||||
assert front["forbidden_claims"]
|
assert front["forbidden_claims"]
|
||||||
|
|||||||
Reference in New Issue
Block a user