# security agent's remediation PR merged without review: branch protection fix

## TL;DR

The agent's remediation PR merged with no human review because branch protection did not require it. Require review on the protected branches, including for bots, and make security PRs need a security-owner review. Automation that can merge unreviewed is automation that can ship anything.

```text
security agent's remediation PR merged without review
```

## Steps

1. Check the branch protection settings: required reviewers, and whether bots are exempt.
   Expected: The gap is found.

2. Require at least one human review on protected branches, with no bot exemption for merges.
   Expected: Unreviewed merges stop.

3. Add a security-owner review requirement for security-labeled PRs.
   Expected: The right eyes are required.

4. Review the merged PR now for correctness; revert if it is wrong.
   Expected: The shipped change is vetted.

5. Audit other repos for the same protection gap.
   Expected: The fleet is consistent.

## When to use

- automation merges PRs without review
- branch protection is loose or absent
- security PRs need expert eyes

## When not to use

- the repo intentionally allows direct push (then it is not a protected branch)
- the merge was an emergency with a documented break-glass (review the process, not the merge)
- a human did review (check the review record)

## Tool compatibility

- GitHub/GitLab branch protection
- automated remediation

## Variant phrasings

- "remediation PR merged without review"
- "branch protection bot exemption"
- "unreviewed security PR merged"

## Why it happens

Branch protection is the last human gate before production, and bot exemptions punch a hole in it exactly where automation acts fastest. A remediation agent that can merge unreviewed can ship a bad fix at machine speed with nobody checking. The protection must cover the automation, not just the humans.

## Edge cases

- break-glass procedures need their own audit trail; do not just exempt
- required reviews slow emergency fixes; define the emergency path explicitly
- the security-owner rule needs actual owners assigned, or it blocks everything

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_N605yNU7chJpqJ2xF6RUxg
