Branch Merge Readiness Review
Read-only pre-merge check of your branches: conflicts, scop ## How it works
Example input
[HAND-WRITTEN FICTIONAL SAMPLE - invented for testing.] I have three branches waiting for review in the throwaway repo at /tmp/demo4/repo-branch-merge-readiness-review. Target branch is main. Which can I merge, and in what order? Don't trust the authors' "all tests pass" claims, run the tests yourself. - feature/subtract - task: "Add a subtract() function in its own module with a unit test." Author says: 2 tests pass. - feature/multiply - task: "Add multiply() to calc.py with a unit test." Author says: 2 tests pass. - feature/divide - task: "Add a divide() function in its own module with a unit test." Author says: 2 tests pass. Test command: python3 -m unittest. I authorize running the tests in an exported copy of each branch (they are my own throwaway code, no network needed). Note on the fixture: this repo was generated for the demo. feature/subtract is meant to be clean, feature/multiply is meant to conflict with main, and feature/divide is meant to carry a fake secret (AKIAFAKEFAKEFAKE0000, not a real credential) plus out-of-scope files.
Example output
> **Read-only review.** Nothing was merged, pushed, checked out over your working tree, or modified. The secret scan is a pattern heuristic, not a security audit: a clean scan does **not** prove a branch has no secrets, and a MERGE verdict is a recommendation, not a guarantee that the code is correct or safe. The human who merges owns the decision. Repository: /tmp/demo4/repo-branch-merge-readiness-review, target: main @ b015557, reviewed on 2026-10-18. (Sample request was hand-written, fictional fixture repo. Test execution relied on the explicit authorization in the request: exported copies only, command `python3 -I -m unittest`, no network, no dependency install.) ## Verdicts | Branch | Tip | Verdict | One-line reason | |---|---|---|---| | feature/subtract | 3d222be | **MERGE** | Clean dry-run merge, in scope, nothing found by the scan, 2 tests pass on branch and on the merged tree. | | feature/multiply | 41c7f1e | **MERGE_AFTER_FIX** | Conflicts with main in calc.py (main added negate() at the same spot); otherwise in scope and tests pass. Rebase and re-test. | | feature/divide | c7ec94e | **HOLD** | Adds a .env containing an AWS-style key id and secret, a 3 MB minified bundle, and a deploy script, none of which the task asked for. | ## Evidence | Check | feature/subtract | feature/multiply | feature/divide | |---|---|---|---| | Conflicts vs main (merge-base 6f6658b; behind/ahead 1/1 each) | CLEAN (merge-tree exit 0, tree eac2c2f) | CONFLICT in `calc.py` (exit 1) | CLEAN (merge-tree exit 0, tree f673658) | | Scope vs brief | IN SCOPE: `subtract.py` (new), `test_calc.py` (+3 lines) | IN SCOPE: `calc.py` (+3), `test_calc.py` (+3/-1; the removed line is the import line being extended) | OUT OF SCOPE: `.env`, `deploy/release.sh`, `dist/bundle.min.js`. In scope: `divide.py`, `test_calc.py` | | Leaks / artifacts | NONE FOUND (checked: sensitive file names, secret patterns on added lines, build paths, blobs over 1 MB; added lines only, not full history) | NONE FOUND (same checks) | FINDINGS: `.env` added; line 1 `AWS_ACCESS_KEY_ID=AKIA****` (AWS access key id pattern; cannot be confirmed as fake from the diff alone); line 2 `AWS_SECRET_ACCESS_KEY=fake****` (generic secret assignment, value looks like a placeholder but cannot be confirmed); `dist/bundle.min.js` build output, 3,000,000 bytes (about 2.9 MB), text; `deploy/release.sh` prints "deploying to prod" only, no network or file deletion seen | …
Real output from running the skill on a sample problem, shortened. The skill file itself is not published here.