From be0976ad306056c53ff892ab1b0f3d7c1fbeb220 Mon Sep 17 00:00:00 2001 From: yaojingang Date: Mon, 15 Jun 2026 23:46:57 +0800 Subject: [PATCH] Expose adaptive reports in Review Studio data --- scripts/review_studio_data.py | 6 ++++++ tests/verify_review_studio.py | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/scripts/review_studio_data.py b/scripts/review_studio_data.py index f0dfd60..4c216f3 100644 --- a/scripts/review_studio_data.py +++ b/scripts/review_studio_data.py @@ -80,6 +80,9 @@ def evidence_paths(skill_dir: Path) -> dict[str, str]: "adoption_drift": "reports/adoption_drift_report.md", "review_waivers": "reports/review_waivers.md", "review_annotations": "reports/review_annotations.md", + "adaptation_proposals": "reports/adaptation_proposals.md", + "adaptation_approval_ledger": "reports/adaptation_approval_ledger.json", + "adaptation_regression": "reports/adaptation_regression_report.md", "world_class_evidence_plan": "reports/world_class_evidence_plan.md", "world_class_evidence_ledger": "reports/world_class_evidence_ledger.md", "world_class_evidence_intake": "reports/world_class_evidence_intake.md", @@ -123,6 +126,9 @@ def load_review_data(skill_dir: Path) -> dict[str, dict[str, Any]]: "adoption_drift": load_json(reports / "adoption_drift_report.json"), "review_waivers": load_json(reports / "review_waivers.json"), "review_annotations": load_json(reports / "review_annotations.json"), + "adaptation_proposals": load_json(reports / "adaptation_proposals.json"), + "adaptation_approval_ledger": load_json(reports / "adaptation_approval_ledger.json"), + "adaptation_regression": load_json(reports / "adaptation_regression_report.json"), "world_class_evidence_ledger": load_json(reports / "world_class_evidence_ledger.json"), "world_class_evidence_intake": load_json(reports / "world_class_evidence_intake.json"), "world_class_submission_review": load_json(reports / "world_class_submission_review.json"), diff --git a/tests/verify_review_studio.py b/tests/verify_review_studio.py index a469921..100a7fb 100644 --- a/tests/verify_review_studio.py +++ b/tests/verify_review_studio.py @@ -405,6 +405,9 @@ def main() -> None: if (ROOT / "reports" / "skill_os2_coverage.md").exists(): assert full_payload["evidence_paths"]["skill_os2_coverage"] == "reports/skill_os2_coverage.md", full_payload["evidence_paths"] assert full_payload["evidence_paths"]["review_annotations"] == "reports/review_annotations.md", full_payload["evidence_paths"] + assert full_payload["evidence_paths"]["adaptation_proposals"] == "reports/adaptation_proposals.md", full_payload["evidence_paths"] + assert full_payload["evidence_paths"]["adaptation_approval_ledger"] == "reports/adaptation_approval_ledger.json", full_payload["evidence_paths"] + assert full_payload["evidence_paths"]["adaptation_regression"] == "reports/adaptation_regression_report.md", full_payload["evidence_paths"] if (ROOT / "reports" / "world_class_evidence_plan.md").exists(): assert full_payload["evidence_paths"]["world_class_evidence_plan"] == "reports/world_class_evidence_plan.md", full_payload["evidence_paths"] if (ROOT / "reports" / "world_class_evidence_ledger.md").exists(): @@ -444,6 +447,12 @@ def main() -> None: assert all(not item["answer_key_visible"] for item in output_review_checklist), output_review_checklist assert output_review_checklist[0]["commands"]["adjudicate"] == "python3 scripts/yao.py output-review", output_review_checklist[0] assert full_payload["data"]["review_annotations"]["summary"]["annotation_count"] == 0, full_payload["data"]["review_annotations"] + assert full_payload["data"]["adaptation_proposals"]["report_contract"]["contract"] == "adaptation-proposals", full_payload["data"]["adaptation_proposals"] + assert full_payload["data"]["adaptation_proposals"]["proposal_count"] == full_payload["data"]["adaptation_proposals"]["summary"]["proposal_count"], full_payload["data"]["adaptation_proposals"] + assert full_payload["data"]["adaptation_approval_ledger"]["report_contract"]["contract"] == "adaptation-approval-ledger", full_payload["data"]["adaptation_approval_ledger"] + assert full_payload["data"]["adaptation_approval_ledger"]["pending_review_count"] == 0, full_payload["data"]["adaptation_approval_ledger"] + assert full_payload["data"]["adaptation_regression"]["report_contract"]["contract"] == "adaptation-regression-report", full_payload["data"]["adaptation_regression"] + assert full_payload["data"]["adaptation_regression"]["approval_draft_supported"] is True, full_payload["data"]["adaptation_regression"] waiver_summary = full_payload["data"]["review_waivers"]["summary"] assert waiver_summary["waiver_candidate_count"] == 2, waiver_summary assert waiver_summary["waiverable_open_count"] == 1, waiver_summary