skip to content

code review that shows its work

bduck is a github app that reviews pull requests with a fixed team of models: triage, scouts, two reviewers and a verifier. ask it questions in the thread, watch every run as it happens, and get fixes as draft prs.

01how it works19-4052 classic blue

how a review runs

every review runs the same pipeline, pinned to the head commit. triage reads the change and plans up to four scouts; scouts collect facts from the source around it; two reviewers propose findings; a verifier keeps or rejects each one before anything is posted.

models are set by the operator, not by comments. every result names the workflow that produced it.

[ review ]
[ on the pr ]
  • inline findings above your confidence bar
  • a summary, with how the review ran
  • an advisory checknever a merge gate
  • 🚀 when it's donenot an approval
4 of 4 done

02commands18-3838 ultra violet

ask it in the thread

post /bduck and a question on any pull request. bduck routes it by intent and answers from the source, the conversation and its own run records. it only listens to people who can write to the repository.

[ pr #142 ]
  1. you
    /bduck is F2 real? the cache is cleared on logout.
  2. bduck
    reads session.ts and logout.ts
  3. bduck
    yes. logout clears the cache, but refresh() writes the old token back after it returns (session.ts:88).
  4. you
    /bduck fix F2 in a draft pr
[ commands ]
/bduck review# review the full current diff/bduck <question or request># "is F2 real?", "why was a proposal dropped?"/bduck status# mode, last reviewed head, queue position/bduck help

03live runs15-0343 greenery

watch every run

every review, question and fix gets a page that streams while it runs: each stage's reasoning and answer, the files it reads (path and lines, never contents), and its time and tokens. finished stages fold into one line.

viewers sign in with github and need read access to the repository. transcripts are kept for 7 days.

[ live ]
  • run #318 · review
  • triageopus · 9s
  • scouts3 × haiku · 41s
  • src/session.tslines 60–140
  • src/logout.tslines 1–48
  • correctnessgpt-6.1-sol · 1m 52s
  • securitygpt-6-astra · 1m 20s
  • verifyopus · 38s
  • summarygemini · 11s
Tree with 9 nodes
[ on the page ]
  • reasoning and answers as they stream
  • files read: path and lines
  • time and tokens per stage
  • file contentsnever sent to the page
  • promptsnever sent to the page
3 of 5 done

04fixes16-1546 living coral

fixes arrive as a draft pr

ask for a fix and bduck applies it in a disposable sandbox, runs checks there without network, and opens a draft pull request against your branch. when ci finishes on it, bduck reports the result back on your pr.

fixes are off until the operator turns them on, and each repository can turn them off again.

[ fix ]
/bduck fix
sandbox checks
draft pr
draft pr
your ci
result on your pr
[ never ]
  • never pushes to your branch
  • never merges
  • no credentials in the sandbox
  • no network unless you allow itbase branch .bduck.yaml
4 of 4 done

05guardrails18-1750 viva magenta

the model is never the gate

everything in a pull request is untrusted, including what the models write about it. permissions, pins and limits live in code, never in a prompt.

signed webhooks
github's signature is checked over the raw bytes before anything is parsed or queued.
write access, every time
each command re-checks that the commenter can write to the repository. the model never decides who may ask.
pinned to one commit
reads use the reviewed head. if the branch moves mid-review, nothing stale gets posted.
config from the base branch
.bduck.yaml is read from the base branch only, so a pull request cannot loosen its own review.
fixed models
models, reasoning and limits come from the operator's workflow file. a comment cannot pick a model.
one tool
agents can only read the pinned source: no shell, no network, no file writes, no github api.

06join the list13-0647 illuminating

join the list

bduck runs only on github accounts and orgs we approve. tell us where you want it, and we'll email you when it's on.

one email when you're approved. nothing else, and no cookies on this site.

checking you're a person…