ai / review
An agent writes most of the code in my changes. How much of it I read depends on the project and the change. This is how I decide.
Checks gate the merge
cibot runs the checks on every push and refuses to merge
a change whose checks are not green. The checks are the
Go checks, the project's tests, and project-specific
scans such as nullscan. A check that a reviewer used
to do by reading, such as "does this scan NULL into a string", is a
line in a Checkfile.
When a check fails, I paste its output into the agent in that worktree. See git / workflow.
Skim and approve
Most of a teammate's changes get a skim. I open the change in the cibot web page, read the title and description, confirm the checks are green, and scroll the diff. If nothing stops me, I reply in Slack with a green check emoji. No agent runs.
When the agent reviews
I bring in an agent when the skim raises a question, when the change is large, or when the change looks over-engineered and a simpler version is possible. Then I open a new tab and:
cd "$(cibot checkout APP-1A)"
The command checks out the remote branch into a local git worktree.
I prompt the agent with my question, or ask it to find what the
change could drop. I read what it finds and the lines it points at.
Then I post feedback with cibot comment APP-1A.
One comment per review, no threading. cibot has no approve verb. A yes is the emoji in Slack or a sentence in the comment.
Screenshots
A check can tell me a template renders. It cannot tell me the page looks right. For a change to a stylesheet or a template, the agent runs browse on each changed page at phone, laptop, and desktop widths and puts the screenshots in its reply. I review the visible outcome.
What I read
I read the title and description in full. Then I scroll the diff and stop where something stands out. That can be a schema change, a new Go package, a set of unit tests that backfill coverage for a bug fix, or a file I did not expect the change to touch. I do not read check output unless a check fails.