GlowHalo Skills

Branch Merge Readiness Review

Read-only pre-merge check of your branches: conflicts, scop ## How it works

Groble · 2,900원SkillHQ · €2

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.

Also in a bundle

← All skills