Security, architecture, and performance issues land in pull requests faster than a human review queue can cover them, and style bots do not cite the standards an organisation actually uses. Platform, security, and architecture teams on GitHub and Bitbucket need a reviewer that checks each change against OWASP, the organisation's own rules, and performance checks, and that publishes a finding only when the code can be anchored to a real line.
From this repository:
uv sync --frozen
uv run tollgate standards list
uv run tollgate review --local --base main --dry-runAfter a PyPI release (package name tollgate-review; the CLI stays tollgate):
pip install tollgate-review
tollgate review --local --base main --dry-runSee docs/publishing.md for tagging a release.
flowchart LR
diff[Diff] --> plan[Plan units]
plan --> llm[Lens review]
llm --> verify[Verify anchors]
verify --> report[Verdict and comments]
The model proposes findings. Verification, ranking, and the verdict are ordinary code. Tollgate never approves a pull request.
Scripted eval report from uv run python eval/harness.py (eval/reports/latest.json):
| Lens | Recall | Precision |
|---|---|---|
| architecture | 1.0 | 0.909 |
| llm_security | 1.0 | 1.0 |
| performance | 1.0 | 1.0 |
| security | 1.0 | 1.0 |
41 seeded cases (Python, TypeScript, Java, Go, and C#), 10 clean cases, 0 clean-case false positives at medium or above, 0 inline comments per PR in the scripted run, and 0 USD because the scripted model is unpriced. The critic stays on for high and above; a rejection dismisses the finding so it cannot block.
- 0001 Config merge
- 0002 Tree-sitter
- 0003 Unit token budget
- 0004 Bitbucket Cloud auth
- 0005 Bitbucket Data Center 8.19
tollgate serve queues signed GitHub and Bitbucket webhooks. A live GitHub App review still needs credentials this checkout does not have.
Apache-2.0. See LICENSE.
