From 089d0a77f2c21afaf70d3eb6370ec27de6644cdb Mon Sep 17 00:00:00 2001 From: yaojingang Date: Tue, 16 Jun 2026 05:09:49 +0800 Subject: [PATCH] Integrate weekly curator into report flow --- AGENTS.md | 2 ++ scripts/evidence_consistency_release.py | 3 +++ scripts/yao_cli_report_commands.py | 2 ++ tests/verify_yao_cli.py | 12 ++++++------ tests/yao_cli_report_refresh.py | 16 ++++++++++++++++ 5 files changed, 29 insertions(+), 6 deletions(-) create mode 100644 tests/yao_cli_report_refresh.py diff --git a/AGENTS.md b/AGENTS.md index e105f79..7a0c1f6 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -55,6 +55,7 @@ python3 scripts/render_world_class_submission_review.py . --generated-at "$GENER python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT" python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT" python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT" +python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT" python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT" python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT" python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT" @@ -73,6 +74,7 @@ For final release evidence, commit source and generated package evidence first, python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT" python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT" python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT" +python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT" python3 scripts/render_skill_overview.py . python3 scripts/render_skill_interpretation.py . python3 scripts/render_review_viewer.py . diff --git a/scripts/evidence_consistency_release.py b/scripts/evidence_consistency_release.py index bca6a9f..72e16c4 100644 --- a/scripts/evidence_consistency_release.py +++ b/scripts/evidence_consistency_release.py @@ -32,6 +32,7 @@ SOURCE_REFRESH_REPORT_COMMANDS = [ 'python3 scripts/render_world_class_operator_runbook.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_world_class_claim_guard.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"', + 'python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_skill_os2_audit.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_skill_os2_coverage.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"', @@ -47,6 +48,7 @@ CLEAN_LOCK_REPORT_COMMANDS = [ 'python3 scripts/render_context_reports.py --generated-at "$GENERATED_AT"', 'python3 scripts/render_benchmark_reproducibility.py . --generated-at "$GENERATED_AT"', 'python3 scripts/render_daily_skillops_report.py . --generated-at "$GENERATED_AT"', + 'python3 scripts/render_weekly_curator_report.py . --generated-at "$GENERATED_AT"', "python3 scripts/render_skill_overview.py .", "python3 scripts/render_skill_interpretation.py .", "python3 scripts/render_review_viewer.py .", @@ -119,6 +121,7 @@ def build_release_evidence_flow_check(skill_dir: Path) -> dict[str, Any]: "reports/review-viewer.json", "reports/world_class_evidence_preflight.json", "reports/skillops/daily", + "reports/skillops/weekly", "reports/review-studio.json", "reports/evidence_consistency.json", ], diff --git a/scripts/yao_cli_report_commands.py b/scripts/yao_cli_report_commands.py index 703638d..53d2636 100644 --- a/scripts/yao_cli_report_commands.py +++ b/scripts/yao_cli_report_commands.py @@ -77,6 +77,7 @@ def command_report(args: argparse.Namespace) -> int: run_script("render_world_class_operator_runbook.py", [str(ROOT)]), run_script("render_world_class_claim_guard.py", [str(ROOT)]), run_script("render_daily_skillops_report.py", [str(ROOT)]), + run_script("render_weekly_curator_report.py", [str(ROOT)]), run_script("render_skill_os2_coverage.py", [str(ROOT)]), run_script("render_benchmark_reproducibility.py", [str(ROOT)]), run_script("render_skill_overview.py", [str(ROOT)]), @@ -122,6 +123,7 @@ def command_report(args: argparse.Namespace) -> int: "world_class_operator_runbook": "reports/world_class_operator_runbook.json", "world_class_claim_guard": "reports/world_class_claim_guard.json", "daily_skillops": "reports/skillops/daily", + "weekly_curator": "reports/skillops/weekly", "skill_os2_coverage": "reports/skill_os2_coverage.json", "benchmark_reproducibility": "reports/benchmark_reproducibility.json", "skill_overview": "reports/skill-overview.json", diff --git a/tests/verify_yao_cli.py b/tests/verify_yao_cli.py index a983e22..20e460a 100644 --- a/tests/verify_yao_cli.py +++ b/tests/verify_yao_cli.py @@ -17,7 +17,7 @@ import yao_cli_output_commands # noqa: E402 import yao_cli_parser # noqa: E402 import yao_cli_report_commands # noqa: E402 import yao_cli_runtime # noqa: E402 - +from yao_cli_report_refresh import refresh_root_report_consistency_inputs # noqa: E402 def run(*args: str, input_text: str | None = None) -> dict: env = dict(os.environ) @@ -79,10 +79,8 @@ def main() -> None: parser_help = yao_cli_module.build_parser().format_help() expected_help = ( "quickstart skill-interpretation review-studio python-compat architecture-audit skill-os2-audit skill-os2-coverage " - "world-class-evidence world-class-ledger world-class-intake world-class-preflight world-class-submission-kit " - "world-class-submission-review world-class-runbook world-class-claim-guard " - "benchmark-reproducibility evidence-consistency output-review-kit adapt-scan adapt-propose adapt-apply " - "telemetry-import telemetry-emit telemetry-hooks --record-cli-telemetry" + "world-class-evidence world-class-ledger world-class-intake world-class-preflight world-class-submission-kit world-class-submission-review world-class-runbook world-class-claim-guard " + "benchmark-reproducibility evidence-consistency output-review-kit adapt-scan adapt-propose adapt-apply telemetry-import telemetry-emit telemetry-hooks weekly-curator --record-cli-telemetry" ).split() assert all(item in parser_help for item in expected_help), parser_help @@ -330,6 +328,8 @@ def main() -> None: assert benchmark_reproducibility_result["payload"]["summary"]["reproducibility_ready"] is True, benchmark_reproducibility_result assert benchmark_reproducibility_result["payload"]["summary"]["world_class_ready"] is False, benchmark_reproducibility_result + refresh_root_report_consistency_inputs(run, ROOT) + evidence_consistency_result = run( "evidence-consistency", str(ROOT), "--output-json", str(tmp_root / "evidence_consistency.json"), @@ -763,6 +763,7 @@ def main() -> None: assert "benchmark_reproducibility" in report_result["payload"]["artifacts"], report_result assert "evidence_consistency" in report_result["payload"]["artifacts"], report_result assert "skill_os2_coverage" in report_result["payload"]["artifacts"], report_result + assert "weekly_curator" in report_result["payload"]["artifacts"], report_result assert report_result["payload"]["artifacts"]["skill_overview"] == "reports/skill-overview.json", report_result assert report_result["payload"]["artifacts"]["skill_interpretation"] == "reports/skill-interpretation.json", report_result assert report_result["payload"]["artifacts"]["skill_interpretation_html"] == "reports/skill-interpretation.html", report_result @@ -894,6 +895,5 @@ def main() -> None: print(json.dumps({"ok": True}, ensure_ascii=False, indent=2)) - if __name__ == "__main__": main() diff --git a/tests/yao_cli_report_refresh.py b/tests/yao_cli_report_refresh.py new file mode 100644 index 0000000..f112f16 --- /dev/null +++ b/tests/yao_cli_report_refresh.py @@ -0,0 +1,16 @@ +from pathlib import Path +from typing import Callable + + +def refresh_root_report_consistency_inputs(run: Callable[..., dict], root: Path) -> None: + """Refresh root reports that evidence-consistency compares by value.""" + + for refresh_args in [ + ("benchmark-reproducibility", str(root), "--generated-at", "2026-06-15"), + ("skill-report", str(root)), + ("skill-interpretation", str(root)), + ("world-class-preflight", str(root), "--generated-at", "2026-06-15"), + ("review-studio", str(root)), + ]: + refresh_result = run(*refresh_args) + assert refresh_result["ok"], refresh_result