From 898d006d076995727babb52493a1e6cf49c25527 Mon Sep 17 00:00:00 2001 From: 732642856 <732642856@qq.com> Date: Mon, 20 Jul 2026 00:57:46 +0800 Subject: [PATCH] feat: sync advanced technique progress dashboard --- .../evidence_packet_index_2026_07_19.json | 12 ++- ...blocked_progress_dashboard_2026_07_20.json | 84 +++++++++++++++++ .../five_track_blocked_progress_dashboard.py | 90 +++++++++++++++++++ .../three_engine_owner_track_batch_plan.py | 4 +- ...t_five_track_blocked_progress_dashboard.py | 44 +++++++++ 5 files changed, 229 insertions(+), 5 deletions(-) create mode 100644 references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json create mode 100644 scripts/five_track_blocked_progress_dashboard.py create mode 100644 tests/test_five_track_blocked_progress_dashboard.py diff --git a/references/oracle/evidence_packet_index_2026_07_19.json b/references/oracle/evidence_packet_index_2026_07_19.json index e3bc8019..df1b31dd 100644 --- a/references/oracle/evidence_packet_index_2026_07_19.json +++ b/references/oracle/evidence_packet_index_2026_07_19.json @@ -625,14 +625,22 @@ "claim_status": "open_queue", "consumer_policy": "research_to_commercial_contract_only", "claim_boundary": "Groups remaining three-engine mismatches by owner track for closure planning; no production tuning or truth upgrade." + }, + { + "packet_id": "five_track_blocked_progress_dashboard_2026_07_20", + "path": "references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json", + "domain": "closure_governance", + "claim_status": "open_queue", + "consumer_policy": "research_to_commercial_contract_only", + "claim_boundary": "Progress dashboard for five blocked-but-code-progressable domains; does not unblock production-ready claims." } ], "production_tuning_allowed": false, "scope": "evidence_packet_index", "status": "active_index_v1", "summary": { - "packet_count": 78, - "blocked_or_partial_count": 51, + "packet_count": 79, + "blocked_or_partial_count": 52, "human_review_required_count": 2 } } diff --git a/references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json b/references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json new file mode 100644 index 00000000..7b485291 --- /dev/null +++ b/references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json @@ -0,0 +1,84 @@ +{ + "boundary": "Dashboard only; tracks remain blocked/open until their source packets close with reproducible evidence.", + "claim_status": "open_queue", + "created_at": "2026-07-20", + "production_tuning_allowed": false, + "scope": "five_track_blocked_progress_dashboard", + "status": "progress_dashboard_ready", + "summary": { + "blocked_track_count": 2, + "open_queue_or_partial_count": 3, + "oracle_ready_count": 0, + "track_count": 5 + }, + "tracks": [ + { + "claim_status": "open_queue", + "domain": "three_engine_parity", + "next_action": "process owner-track batches: endpoint_contract, formula_source, unit_schema, worked_example", + "progress": { + "already_attributed_count": 2, + "batched_source_row_count": 60, + "owner_track_count": 4, + "remaining_ticket_count": 58, + "source_queue_count": 60 + }, + "source_packets": [ + "references/oracle/three_engine_owner_track_batch_plan_2026_07_20.json" + ] + }, + { + "claim_status": "blocked", + "domain": "kp_precision_timing", + "next_action": "collect exact KP cusp numeric worked example with input/settings/raw hash", + "progress": { + "exact_cusp_status": "blocked_missing_oracle", + "runtime_policy": "supporting_probe_only" + }, + "source_packets": [ + "references/oracle/kp_cusp_precision_contract_2026_07_19.json" + ] + }, + { + "claim_status": "open_queue", + "domain": "worked_example_collection", + "next_action": "capture raw/hash for candidate pages and promote only field-complete numeric packets", + "progress": { + "candidate_count": 5, + "oracle_ready_count": 0, + "raw_capture_needed_count": 2, + "runtime_only_count": 1 + }, + "source_packets": [ + "references/oracle/worked_example_numeric_packet_eligibility_2026_07_20.json" + ] + }, + { + "claim_status": "blocked", + "domain": "horary_annual_sensitive_points", + "next_action": "collect public numeric worked examples for Prashna/Tajika/Saham/Gulika/Sphuta", + "progress": { + "packet_status": "oracle_packet_registry_v1", + "technique_count": 5 + }, + "source_packets": [ + "references/oracle/prashna_tajika_saham_gulika_sphuta_oracle_packet_2026_07_19.json" + ] + }, + { + "claim_status": "partial", + "domain": "varga_mapping", + "next_action": "promote D1-D60 public source candidates from names/use notes to verified formula packets only when numeric oracle exists", + "progress": { + "allowed_scope": "names_and_use_notes_only", + "candidate_source_count": 3, + "generic_only_count": 0, + "numeric_oracle_ready_count": 0 + }, + "source_packets": [ + "references/oracle/d1_d60_source_use_readiness_2026_07_19.json" + ] + } + ], + "truth_matrix_allowed": false +} diff --git a/scripts/five_track_blocked_progress_dashboard.py b/scripts/five_track_blocked_progress_dashboard.py new file mode 100644 index 00000000..ce6d8690 --- /dev/null +++ b/scripts/five_track_blocked_progress_dashboard.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python3 +"""Dashboard for the five blocked domains that can still make code progress.""" + +from __future__ import annotations + +import argparse +import json +from pathlib import Path +from typing import Any + + +ROOT = Path(__file__).resolve().parents[1] +ORACLE = ROOT / "references/oracle" + + +def load(name: str) -> dict[str, Any]: + return json.loads((ORACLE / name).read_text(encoding="utf-8")) + + +def build(date: str) -> dict[str, Any]: + three = load("three_engine_owner_track_batch_plan_2026_07_20.json") + worked = load("worked_example_numeric_packet_eligibility_2026_07_20.json") + kp = load("kp_cusp_precision_contract_2026_07_19.json") + horary = load("prashna_tajika_saham_gulika_sphuta_oracle_packet_2026_07_19.json") + varga = load("d1_d60_source_use_readiness_2026_07_19.json") + tracks = [ + { + "domain": "three_engine_parity", + "claim_status": three["claim_status"], + "progress": three["summary"], + "next_action": "process owner-track batches: endpoint_contract, formula_source, unit_schema, worked_example", + "source_packets": [str((ORACLE / "three_engine_owner_track_batch_plan_2026_07_20.json").relative_to(ROOT))], + }, + { + "domain": "kp_precision_timing", + "claim_status": "blocked", + "progress": {"exact_cusp_status": kp["exact_cusp_status"], "runtime_policy": kp["kp_significator_runtime_policy"]}, + "next_action": "collect exact KP cusp numeric worked example with input/settings/raw hash", + "source_packets": [str((ORACLE / "kp_cusp_precision_contract_2026_07_19.json").relative_to(ROOT))], + }, + { + "domain": "worked_example_collection", + "claim_status": worked["claim_status"], + "progress": worked["summary"], + "next_action": "capture raw/hash for candidate pages and promote only field-complete numeric packets", + "source_packets": [str((ORACLE / "worked_example_numeric_packet_eligibility_2026_07_20.json").relative_to(ROOT))], + }, + { + "domain": "horary_annual_sensitive_points", + "claim_status": "blocked", + "progress": {"packet_status": horary["status"], "technique_count": len(horary.get("techniques", []))}, + "next_action": "collect public numeric worked examples for Prashna/Tajika/Saham/Gulika/Sphuta", + "source_packets": [str((ORACLE / "prashna_tajika_saham_gulika_sphuta_oracle_packet_2026_07_19.json").relative_to(ROOT))], + }, + { + "domain": "varga_mapping", + "claim_status": varga["claim_status"], + "progress": varga["summary"], + "next_action": "promote D1-D60 public source candidates from names/use notes to verified formula packets only when numeric oracle exists", + "source_packets": [str((ORACLE / "d1_d60_source_use_readiness_2026_07_19.json").relative_to(ROOT))], + }, + ] + return { + "scope": "five_track_blocked_progress_dashboard", + "created_at": date, + "status": "progress_dashboard_ready", + "claim_status": "open_queue", + "production_tuning_allowed": False, + "truth_matrix_allowed": False, + "summary": { + "track_count": len(tracks), + "oracle_ready_count": 0, + "blocked_track_count": sum(1 for row in tracks if row["claim_status"] == "blocked"), + "open_queue_or_partial_count": sum(1 for row in tracks if row["claim_status"] != "blocked"), + }, + "tracks": tracks, + "boundary": "Dashboard only; tracks remain blocked/open until their source packets close with reproducible evidence.", + } + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--date", default="2026-07-20") + args = parser.parse_args() + print(json.dumps(build(args.date), ensure_ascii=False, indent=2, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/scripts/three_engine_owner_track_batch_plan.py b/scripts/three_engine_owner_track_batch_plan.py index b296394b..5072fd5c 100644 --- a/scripts/three_engine_owner_track_batch_plan.py +++ b/scripts/three_engine_owner_track_batch_plan.py @@ -25,8 +25,6 @@ def build(date: str) -> dict[str, Any]: } groups: dict[str, list[dict[str, Any]]] = defaultdict(list) for row in queue["queue"]: - if (row["section"], row["field"].split(".")[0]) in already: - continue groups[row["owner_track"]].append(row) batches = [] @@ -56,7 +54,7 @@ def build(date: str) -> dict[str, Any]: "summary": { "source_queue_count": len(queue["queue"]), "already_attributed_count": len(already), - "remaining_ticket_count": max(len(queue["queue"]) - len(already), 0), + "remaining_ticket_count": progress["summary"]["remaining_open_count"], "batched_source_row_count": sum(batch["ticket_count"] for batch in batches), "owner_track_count": len(batches), }, diff --git a/tests/test_five_track_blocked_progress_dashboard.py b/tests/test_five_track_blocked_progress_dashboard.py new file mode 100644 index 00000000..8400ea65 --- /dev/null +++ b/tests/test_five_track_blocked_progress_dashboard.py @@ -0,0 +1,44 @@ +import json +import subprocess +from pathlib import Path + + +ROOT = Path(__file__).resolve().parents[1] +ARTIFACT = ROOT / "references/oracle/five_track_blocked_progress_dashboard_2026_07_20.json" +INDEX = ROOT / "references/oracle/evidence_packet_index_2026_07_19.json" + + +def test_five_track_dashboard_summarizes_requested_tracks(): + data = json.loads( + subprocess.check_output( + ["python3", "scripts/five_track_blocked_progress_dashboard.py", "--date", "2026-07-20"], + cwd=ROOT, + text=True, + ) + ) + assert data["scope"] == "five_track_blocked_progress_dashboard" + assert data["summary"]["track_count"] == 5 + assert data["summary"]["oracle_ready_count"] == 0 + assert data["production_tuning_allowed"] is False + assert {row["domain"] for row in data["tracks"]} == { + "three_engine_parity", + "kp_precision_timing", + "worked_example_collection", + "horary_annual_sensitive_points", + "varga_mapping", + } + + +def test_five_track_dashboard_preserves_numeric_progress_counts(): + data = json.loads(ARTIFACT.read_text(encoding="utf-8")) + tracks = {row["domain"]: row for row in data["tracks"]} + assert tracks["three_engine_parity"]["progress"]["remaining_ticket_count"] == 58 + assert tracks["worked_example_collection"]["progress"]["candidate_count"] == 5 + assert tracks["worked_example_collection"]["progress"]["oracle_ready_count"] == 0 + assert tracks["varga_mapping"]["progress"]["numeric_oracle_ready_count"] == 0 + assert all(row["claim_status"] in {"blocked", "open_queue", "partial"} for row in data["tracks"]) + + +def test_five_track_dashboard_is_indexed(): + packets = {row["packet_id"]: row for row in json.loads(INDEX.read_text(encoding="utf-8"))["packets"]} + assert packets["five_track_blocked_progress_dashboard_2026_07_20"]["claim_status"] == "open_queue"