ci(cmux-next): add advisory split-plan guard
Summary
Adds an advisory split-plan guard for pull requests targeting feat-cmux-next. The portable Python classifier reports the exact merge base and head, changed-file and commit counts, detected product surfaces, and paths it cannot classify. It emits a stable SPLIT_GUARD_JSON receipt and GitHub warning annotations without starting a native or web build.
The guard is advisory-only in this rollout. --mode required is available for a later promotion after review against historical pull requests, including #21200.
Testing
python3 -m unittest scripts/cmux-next/tests/test_check_pr_split.py— 4 passed.python3 -m py_compile scripts/cmux-next/check-pr-split.py scripts/cmux-next/tests/test_check_pr_split.py— passed./Users/leoli/go/bin/actionlint .github/workflows/cmux-next-split-guard.yml— passed.git diff --check bdce169c4b8af88023e0c5d21ca9502bdfe4f583..72d9dbac056171c6987ed7148bbdb2e66ff30d7f— passed.- Advisory replay for #21200 (
51b8f7a9f0b9118bcb5bd291f4044959770f21ec..c23c728479c293abccc6a4aa55a074b62379fd70) reported 88 changed files, 137 commits, six product surfaces plus CI, mixed native settings/webview changes, and 50 unclassified paths.
Changelog
none
Need help on this PR? Tag @codesmith-bot with what you need.
Summary by cubic
Adds an advisory split-plan guard for pull requests targeting feat-cmux-next. A portable Python classifier reports changed-file and commit counts, detected product surfaces, and unclassified paths, then emits a stable SPLIT_GUARD_JSON receipt and GitHub warning annotations without starting a native or web build.
- The guard is advisory-only;
--mode requiredis available for later promotion after review against historical PRs. - The workflow unshallows the full history with a blob-less filter so merge-base and commit counts are computed correctly.
- Adds a GitHub Actions workflow, the classifier script, and unit tests.