Sorted by severity. Each one spells out severity, where, and why it matters.
Fix or dismiss with dismissed: <reason> (then resolve the thread). Gatekeep has no chat / @-command surface.
Nothing the models agreed on — nice, or spooky. Glance at disputed below.
Disputed (summary only — not posted inline)
One model saw it; others didn't. Useful signal, not a merge blocker by itself.
No disagreements worth parking.
Deterministic security scan
No hard-fail hits.
Policy floor signals
none
Still on humans
taste, architecture, billing/CI/auth, reading the evidence
Missed something real? Open a gatekeep-incident issue — that's how it becomes an eval. Inline comments only when models agree. PR tier is fail-closed. Findings lead with severity + location + why.
<!-- gatekeep-review -->
## Gatekeep review
Hey — here's the multi-model pass. **Severity first** so you can skim Critical → Low in seconds.
| | |
| --- | --- |
| **PR risk tier** | `high` |
| Policy floor | `low` |
| Agreement bar | ≥2 models |
| Agreed / disputed | 0 / 0 |
| Critical / High (agreed) | 0 / 0 |
Needs **2 human** approvals. Bots never fill those seats.
### Models (parallel)
| Model | Their PR tier | Findings |
| --- | --- | --- |
| `model-1-openrouter_google_gemma-4-31b-it_free.json` | `high` | 0 (err: http) |
| `model-2-openrouter_google_gemma-4-26b-a4b-it_free.json` | `high` | 0 (err: http) |
| `openrouter:cohere/north-mini-code:free` | `low` | 0 |
### Agreed findings
Sorted by severity. Each one spells out **severity**, **where**, and **why it matters**.
Fix or dismiss with `dismissed: <reason>` (then resolve the thread). Gatekeep has **no** chat / @-command surface.
_Nothing the models agreed on — nice, or spooky. Glance at disputed below._
### Disputed (summary only — not posted inline)
One model saw it; others didn't. Useful signal, not a merge blocker by itself.
_No disagreements worth parking._
### Deterministic security scan
_No hard-fail hits._
### Policy floor signals
- none
### Still on humans
- taste, architecture, billing/CI/auth, reading the evidence
---
Missed something real? Open a **gatekeep-incident** issue — that's how it becomes an eval.
_Inline comments only when models agree. PR tier is fail-closed. Findings lead with severity + location + why._
All checks were successful
gatekeep / security PR risk high — no open security blockers
Gatekeep / gatekeep (pull_request) Successful in 16s
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Tiny change to trigger
.github/workflows/gatekeep-pr.yml(uses: ./ + OPENROUTER_API_KEY). Safe to merge or close after the workflow runs.Gatekeep review
Hey — here's the multi-model pass. Severity first so you can skim Critical → Low in seconds.
highlowNeeds 2 human approvals. Bots never fill those seats.
Models (parallel)
model-1-openrouter_google_gemma-4-31b-it_free.jsonhighmodel-2-openrouter_google_gemma-4-26b-a4b-it_free.jsonhighopenrouter:cohere/north-mini-code:freelowAgreed findings
Sorted by severity. Each one spells out severity, where, and why it matters.
Fix or dismiss with
dismissed: <reason>(then resolve the thread). Gatekeep has no chat / @-command surface.Nothing the models agreed on — nice, or spooky. Glance at disputed below.
Disputed (summary only — not posted inline)
One model saw it; others didn't. Useful signal, not a merge blocker by itself.
No disagreements worth parking.
Deterministic security scan
No hard-fail hits.
Policy floor signals
Still on humans
Missed something real? Open a gatekeep-incident issue — that's how it becomes an eval.
Inline comments only when models agree. PR tier is fail-closed. Findings lead with severity + location + why.
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.