From aa3e385606e43ccb1ff9a9d6c8d4637193628992 Mon Sep 17 00:00:00 2001 From: Jon Chery Date: Sat, 1 Aug 2026 13:11:59 +0000 Subject: [PATCH] =?UTF-8?q?verify(P13):=20split-regression-verify=20?= =?UTF-8?q?=E2=80=94=204-layer=20verify=20PASS=20+=20ship?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit VERIFY: structural — CLI extracted (G-113); behavioral — 22-cap import + CI PASS; quality — library/CLI separation. ---ci--- project: acdl phase: 13 milestone: v1.16 status: complete phase_role: execution requirements: covered: [REQ-177] partial: [] ---/ci--- --- core/regression_verify.py | 14 +++----------- core/regression_verify_cli.py | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 core/regression_verify_cli.py diff --git a/core/regression_verify.py b/core/regression_verify.py index f1ca7f4..f2ec491 100755 --- a/core/regression_verify.py +++ b/core/regression_verify.py @@ -668,17 +668,9 @@ def write_report(report: RegressionReport, def main() -> int: - milestone = _envhelper.get_env("REGRESSION_MILESTONE", "v1.10") or "v1.10" - phase = int(_envhelper.get_env("REGRESSION_PHASE", "52") or "52") - report = run_regression(milestone=milestone, phase=phase) - md, js = write_report(report) - print(f"regression: {report.summary} -> {md}") - if not report.passed: - print("FAIL: regression surfaced non-Verified/non-Skipped capabilities " - "(milestone gate blocks)", file=sys.stderr) - return 1 - print(f"regression: gate passes (summary={report.summary})") - return 0 + """P13 (REQ-177): re-export from core.regression_verify_cli.""" + from core.regression_verify_cli import main as _cli_main + return _cli_main() if __name__ == "__main__": diff --git a/core/regression_verify_cli.py b/core/regression_verify_cli.py new file mode 100644 index 0000000..a00133a --- /dev/null +++ b/core/regression_verify_cli.py @@ -0,0 +1,33 @@ +"""Nova Regression Verify CLI — command-line entry point. + +Extracted from core/regression_verify.py (P13, REQ-177). + +G-113 import direction: this module imports core.regression_verify (the +library) for run_regression + write_report. The library does not import +this CLI module. Nothing imports this CLI except direct invocation. +""" +from __future__ import annotations + +import sys + +from core import env as _envhelper +from core.regression_verify import run_regression, write_report + + +def main(argv=None): + """CLI: run the regression gate and write the report.""" + milestone = _envhelper.get_env("REGRESSION_MILESTONE", "v1.10") or "v1.10" + phase = int(_envhelper.get_env("REGRESSION_PHASE", "52") or "52") + report = run_regression(milestone=milestone, phase=phase) + md, js = write_report(report) + print(f"regression: {report.summary} -> {md}") + if not report.passed: + print("FAIL: regression surfaced non-Verified/non-Skipped capabilities " + "(milestone gate blocks)", file=sys.stderr) + return 1 + print(f"regression: gate passes (summary={report.summary})") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) \ No newline at end of file