Reasons: what it means
By Soumen Sarkar · October 2026
Reasons are what a change is for, the calls made in it, and what was assumed, attached to the change for whoever reviews it.
A change's reasons let a reviewer understand it without asking its author. A diff shows what changed. The reasons show why: the goal, the decisions taken along the way, the assumptions nobody has confirmed yet, and the approaches that were tried and dropped.
At agent pace this matters more, not less. When dozens of changes a day are written by agents, the person reviewing one often wasn't in the session that made it. Without reasons, they either reverse-engineer intent from the code or interrupt someone.
A change's reasons might read:
- For: let customers pay invoices in two instalments.
- Calls made: instalments are stored as rows in a new table, not as a field on the invoice, so partial refunds stay simple.
- Assumed: the second instalment is always due 30 days after the first. Not confirmed.
- Tried and dropped: splitting the Stripe charge, because refunds then needed two calls.
The reviewer now knows exactly where to look: the 30-day assumption.
You can write reasons by hand with the change reasons template in any pull request description. In Claude Code, Campfyrr writes them for the reviewer on each commit or pull request, from what the session recorded, and gives a link to put in the description.
The principle behind this: Let the work speak: Our work explains itself, so nobody ever has to come and ask us.
Related: Landed · Decision · Assumption · Handoff
Questions that use it
Move as one at agent speed. Nobody waits. Add Campfyrr to Claude: it briefs every agent before it touches the code, keeps assumptions and handoffs where the team can see them, and never takes your code (what it keeps).