Lanes and rules
| Lane | Meaning | Check run |
|---|---|---|
🟢 auto | Safe to merge once required checks pass | success |
🟡 review | A human must look | neutral |
🔴 block | Do not merge | failure |
Built-in rules
- Protected globs (default
.github/**,deploy/**,**/auth/**,**/migrations/**,wrangler.toml,_headers,**/.env*) → at least review. - Auto globs (
docs/**,**/*.md,**/*.css,public/**) → auto if at mostmax_auto_lines(200) lines changed, otherwise review. - Everything else → review. Lockfile and manifest changes → review. Removed binaries or files with no diff → review.
- Obvious secrets in added lines (AWS keys, private key blocks,
ghp_tokens,api_key = "…") → block. This is a coarse screen, not a replacement for a secret scanner. - Labels:
labels.block→ block;labels.review→ at least review. - Learning branch: PRs from
learning.branchare always block.
Mixed PRs
When a PR mixes auto files with review or block files, the comment suggests which files could go in their own auto-mergeable PR. Nothing is split automatically.
The model's role
The LLM, rubrics and policy files can only raise a lane. Final lane = max(rules, labels, LLM, rubric). If the LLM call fails or returns invalid JSON (after one repair retry), MergeJudge falls back to rules-only and says so.