Review pull requests for exploitable bugs
This agent reads a pull request diff and posts one review comment. It reports exploitable bugs: injection, authz bypass, secret leaks, SSRF, RCE. Style nits stay out.
This template is one model turn: read the diff, then post one comment.
Scaffold
bdk init ./security-reviewer --template security-reviewer \ --var repos=acme/api--var repos must name a repository already connected in Cursor for
your account. Separate multiple repositories with commas; they must
share one owner. init writes the list to bot/lib/repos.ts.
Connect GitHub through Cursor
Connect GitHub in Cursor for those repositories (Settings or cursor.com/dashboard). Sign the host in:
cd security-reviewerbdk logincursorAccount pulls SCM events from Cursor and mints a short-lived,
repo-scoped credential. ctx.host.github and child gh commands share
it. See the GitHub guide.
First review
bdk devdev starts the Cursor event relay for the watched repos. To drive a
known PR without waiting on a live push:
bdk github replay https://github.com/acme/api/pull/12 --dir .replay needs pull access. Draft PRs and repos outside
bot/lib/repos.ts are ignored. The channel writes pr/diff.patch
after the wake is acknowledged, then starts a model turn. The model
calls post_findings once.
Chat replies stay in the playground. post_findings writes the GitHub
comment.
What to edit
bot/lib/repos.ts: watched reposbot/instructions.md: what counts as a finding and the comment shapeevals/review.eval.ts: smoke cases
Evals
Use the two smoke cases, one XSS fixture and one docs-only change, as a local exercise:
bdk evalEval sessions skip the GitHub write.
Deploy
bdk deployRun it from the agent's git checkout. The command infers repository, ref, path, and slug. The deployment uses the team's Cursor GitHub connection for the same watched repos.